Source code for foamgen.umesh

"""
Unstructured meshing module
===========================
:synopsis: Create unstructured tetrahedral mesh.

.. moduleauthor:: Pavel Ferkl <pavel.ferkl@gmail.com>
"""
from __future__ import print_function
import subprocess as sp
from . import geo_tools


[docs]def unstructured_mesh(fname, sizing, convert): """Create unstructured mesh. Optionally, convert mesh to ``*.xml`` format. Args: fname (str): base filename sizing (list): mesh size near points, edges and in cells convert (bool): convert mesh to fenics format if True """ geo_tools.prep_mesh_config( fname + "Morphology.geo", fname + "UMesh.geo", sizing) mesh_domain(fname + "UMesh.geo") if convert: convert_mesh(fname + "UMesh.msh", fname + "UMesh.xml")
[docs]def mesh_domain(fname): """Mesh computational domain using Gmsh. Save mesh in old ``msh2`` format for denics compatibility. Args: fname (str): filename with mesh specification of doamin in gmsh format """ sp.Popen(['gmsh', '-3', '-v', '3', '-format', 'msh2', fname]).wait()
[docs]def convert_mesh(input_mesh, output_mesh): """Convert mesh to xml using dolfin-convert. Args: input_mesh (str): input mesh filename output_mesh (str): output mesh filename """ sp.Popen(['dolfin-convert', input_mesh, output_mesh]).wait()