FileMeshGenerator

Read a mesh from a file.

Supported File Formats

The FileMeshGenerator is the default type for MOOSE and as the name suggests it reads the mesh from an external file. MOOSE supports reading and writing a large number of formats and could be extended to read more.

Reading with the FileMeshGenerator. These capabilities are inherited from the libMesh file IO readers.

ExtensionDescription
.e, .exdSandia's ExodusII format
.bxtDynaIO
.cprCheckpoint file
.froACDL's surface triangulation file
.matMatlab triangular ASCII file
.mshGMSH ASCII file
.n, .nemSandia's Nemesis format
.node, .ele; .polyTetGen ASCII file
.inpAbaqus .inp format
.offOFF
.ucdAVS's ASCII UCD format
.unvI-deas Universal format
.xda, .xdrlibMesh formats
.vtk, .pvtuVisualization Toolkit

Writing (using the Outputs block). We list these formats here for convenience if you are considering using MOOSE as a mesh file converter.

ExtensionDescriptionOutput type
.e, .exdSandia's ExodusII formatExodus
.cprCheckpoint fileCheckpoint
.datTecplot ASCII fileTecplot
.gmvLANL's GMV (General Mesh Viewer) formatGMV
.n, .nemSandia's Nemesis formatNemesis
.pltTecplot binary fileTecplot
.xda, .xdrlibMesh formatsXDA/XDR
.vtk, .pvtuVisualization ToolkitVTK

These formats (for writing meshes) are supported by libMesh and could easily be added to MOOSE if needed:

ExtensionDescription
.froACDL's surface triangulation file
.mesh, .meshbMedit
.mshGMSH ASCII file
.node, .ele; .polyTetGen ASCII file
.ucdAVS's ASCII UCD format

Unsupported File Formats

These file formats are unsupported, however, using other tools they can be converted to supported formats. In general, the mesh must respect the limitations of the target format for a successful conversion.

Tools offering conversion capabilities:

The conversion capabilities to be able to read those files are summarized here for convenience:

ExtensionDescriptionConversion toolTarget format
.mshANSYS mshmeshioExodus
.avsAVS-UCDmeshioExodus
.cgnsCGNSmeshio/ParaviewExodus
.xmlDOLFIN xmlmeshioExodus
.caseEnSightParaviewExodus
.f3gridFLAC3DmeshioExodus
.grdeclEclipseem2exExodus
.csvLeapfrog Geothermalem2exExodus
.h5mH5MmeshioExodus
.mdpaKratos/MDPAmeshioExodus
.mesh, .meshbMeditmeshioExodus
.medMED/SalomemeshioExodus
.bdf/.fem/.nasNastranmeshioExodus
.volNetgenmeshioExodus
NeuroglancermeshioExodus
.objOBJmeshioExodus
.post, .datoPERMASmeshioExodus
.plyPLYmeshioExodus
.stlSTLmeshioExodus
.svgSVGmeshioExodus
.su2SU2meshioExodus
.ugridUGRIDmeshioExodus
.tinWKT TINmeshioExodus
.xdmf, .xmfXDMFmeshioExodus

Extra element integer

When reading a mesh file in Sandia's ExodusII format, users can use parameter exodus_extra_element_integers to load elemental variables for setting extra element integers of the mesh. The names of the extra element integers will be the same as the names of the element variables in the mesh file.

Exodus restart

This generator can also be used for restarting variables from the Exodus file format. In order to indicate that the mesh file can be used to restart variables, simply set the parameter use_for_exodus_restart = true. The initial_from_file_var parameter must also be set in the variables sub-block as described in Restart in order to perform variable restart.

Additional documentation about restarting from Exodus may be found in the restart-recovery page.

Loading a split mesh

Mesh splits usually do not require a FileMeshGenerator, they can be performed and loaded from the command line. The only use case for loading a split mesh using a FileMeshGenerator is to perform additional mesh generation on the split. For example, a 2D split mesh can be pre-split before extrusion to avoid ever having to load the full 3D mesh in serial.

To load a split mesh using the FileMeshGenerator, split your mesh as usual using the command line:


- mpirun -n 4 <executable> -i <input_file> --split-mesh 16 --split-file mesh_splitted

then load it with the FileMeshGenerator input parameter by using distributed meshes with the command line option:


- mpirun -n 4 <executable> -i <input_file> --distributed-mesh

Input file:


[fmg]
  type = FileMeshGenerator
  file = 'mesh_splitted.cpr'
[]

Input Parameters

  • fileThe filename to read.

    C++ Type:MeshFileName

    Controllable:No

    Description:The filename to read.

Required Parameters

  • allow_renumberingTrueWhether to allow the mesh to renumber nodes and elements. Note that this parameter is only relevant for non-exodus files, e.g. if reading from checkpoint for example. For exodus we always disallow renumbering.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to allow the mesh to renumber nodes and elements. Note that this parameter is only relevant for non-exodus files, e.g. if reading from checkpoint for example. For exodus we always disallow renumbering.

  • clear_spline_nodesFalseIf clear_spline_nodes=true, IsoGeometric Analyis spline nodes and constraints are removed from an IGA mesh, after which only C^0 Rational-Bernstein-Bezier elements will remain.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:If clear_spline_nodes=true, IsoGeometric Analyis spline nodes and constraints are removed from an IGA mesh, after which only C^0 Rational-Bernstein-Bezier elements will remain.

  • discontinuous_spline_extractionFalseIf discontinuous_spline_extraction=true, Rational-Bernstein-Bezier elements extracted from a spline mesh will be disconnected from neighboring elements, coupled only via their extraction operators. This may be less efficient than the default C^0 extracted mesh, but may be necessary if the extracted mesh is non-conforming.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:If discontinuous_spline_extraction=true, Rational-Bernstein-Bezier elements extracted from a spline mesh will be disconnected from neighboring elements, coupled only via their extraction operators. This may be less efficient than the default C^0 extracted mesh, but may be necessary if the extracted mesh is non-conforming.

  • exodus_extra_element_integersThe variable names in the mesh file for loading extra element integers

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:The variable names in the mesh file for loading extra element integers

  • skip_partitioningFalseTrue to skip partitioning, only after this mesh generator, because the mesh was pre-split for example.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:True to skip partitioning, only after this mesh generator, because the mesh was pre-split for example.

  • use_for_exodus_restartFalseTrue to indicate that the mesh file this generator is reading can be used for restarting variables

    Default:False

    C++ Type:bool

    Controllable:No

    Description:True to indicate that the mesh file this generator is reading can be used for restarting variables

Optional Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

  • save_with_nameKeep the mesh from this mesh generator in memory with the name specified

    C++ Type:std::string

    Controllable:No

    Description:Keep the mesh from this mesh generator in memory with the name specified

Advanced Parameters

  • nemesisFalseWhether or not to output the mesh file in the nemesisformat (only if output = true)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to output the mesh file in the nemesisformat (only if output = true)

  • outputFalseWhether or not to output the mesh file after generating the mesh

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to output the mesh file after generating the mesh

  • show_infoFalseWhether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not to show mesh info after generating the mesh (bounding box, element types, sidesets, nodesets, subdomains, etc)

Debugging Parameters