Dune Core Modules (unstable)
Read Gmsh mesh file. More...
#include <dune/grid/io/file/gmshreader.hh>
Public Types | |
| using | Opts = Gmsh::ReaderOptions |
| Dynamic Gmsh reader interface. | |
Public Member Functions | |
| GmshReader (const std::string &fileName, Gmsh::ReaderOptions options=defaultOpts) | |
| Construct a Gmsh reader object (alternatively use one of the static member functions) More... | |
| GmshReader (const std::string &fileName, GridFactory< Grid > &factory, Gmsh::ReaderOptions options=defaultOpts) | |
| Construct a Gmsh reader object from a file name and a grid factory. More... | |
| const std::vector< int > & | elementData () const |
| Access element data (maps element index to Gmsh physical entity) | |
| const std::vector< int > & | boundaryData () const |
| Access boundary data (maps boundary segment index to Gmsh physical entity) | |
| bool | hasElementData () const |
| If element data is available. More... | |
| bool | hasBoundaryData () const |
| If boundary data is available. More... | |
| std::vector< int > | extractElementData () |
| Erase element data from reader and return the data. | |
| std::vector< int > | extractBoundaryData () |
| Erase boundary data from reader and return the data. | |
| std::unique_ptr< Grid > | createGrid () |
| Create the grid. | |
Static Public Member Functions | |
| static std::unique_ptr< Grid > | read (const std::string &fileName, bool verbose=true, bool insertBoundarySegments=true) |
| static std::unique_ptr< Grid > | read (const std::string &fileName, std::vector< int > &boundarySegmentToPhysicalEntity, std::vector< int > &elementToPhysicalEntity, bool verbose=true, bool insertBoundarySegments=true) |
| Read Gmsh file, possibly with data. More... | |
| static void | read (Dune::GridFactory< Grid > &factory, const std::string &fileName, bool verbose=true, bool insertBoundarySegments=true) |
Read Gmsh grid file into a GridFactory object. More... | |
| static void | read (Dune::GridFactory< Grid > &factory, const std::string &fileName, DataFlagArg boundarySegmentData, DataArg elementData, bool verbose=true) |
| read Gmsh file, possibly with data More... | |
| static void | read (Dune::GridFactory< Grid > &factory, const std::string &fileName, std::vector< int > &boundarySegmentToPhysicalEntity, std::vector< int > &elementToPhysicalEntity, bool verbose, bool insertBoundarySegments) |
| Read Gmsh file, possibly with data. More... | |
Detailed Description
class Dune::GmshReader< GridType >
Read Gmsh mesh file.
Read a .msh (version 2) file generated using Gmsh and construct a grid using the grid factory interface.
The file format used by gmsh can hold grids that are more general than the simplex grids that the gmsh grid generator is able to construct. We try to read as many grids as possible, as long as they are valid files. You can test this by checking whether gmsh will load the file and display its content.
All grids in a gmsh file live in three-dimensional Euclidean space. If the world dimension of the grid type that you are reading the file into is less than three, the remaining coordinates are simply ignored.
Constructor & Destructor Documentation
◆ GmshReader() [1/2]
|
inline |
Construct a Gmsh reader object (alternatively use one of the static member functions)
Construct a Gmsh reader object from a file name
- Parameters
-
fileName Name of the file to read from. options Options of the type Dune::Gmsh::ReaderOptions
To pass several options, combine them with the |-operator like this
Per default the reader has enabled the following options
- Dune::Gmsh::ReaderOptions::verbose
- Dune::Gmsh::ReaderOptions::insertBoundarySegments
- Dune::Gmsh::ReaderOptions::readBoundaryData
- Dune::Gmsh::ReaderOptions::readElementData
Passing any option to the interface will overwrite these defaults.
A Dune grid object can be obtained via the createGrid() member
- Warning
- All options are automatically
falsewhen the file is in Version 4 Gmsh format.
◆ GmshReader() [2/2]
|
inline |
Construct a Gmsh reader object from a file name and a grid factory.
- Parameters
-
fileName Name of the file to read from. options Options of the type Dune::Gmsh::ReaderOptions
Use this constructor if you need access to the grid factory after the grid has been read, e.g., for obtaining boundary segment insertion indices.
Member Function Documentation
◆ hasBoundaryData()
|
inline |
If boundary data is available.
- Note
- This is false if no such data was requested
◆ hasElementData()
|
inline |
If element data is available.
- Note
- This is false if no such data was requested
◆ read() [1/5]
|
inlinestatic |
- Todo:
- doc me
References Dune::GridFactory< GridType >::createGrid(), and Dune::GmshReader< GridType >::read().
Referenced by Dune::GmshReader< GridType >::read().
◆ read() [2/5]
|
inlinestatic |
Read Gmsh file, possibly with data.
- Parameters
-
fileName Name of the file to read from. boundarySegmentToPhysicalEntity Container to fill with boundary segment physical entity data (if insertBoundarySegments=true) elementToPhysicalEntity Container to fill with element physical entity data verbose Whether to be chatty insertBoundarySegments Whether boundary segments are inserted into the factory
- Note
- When insertBoundarySegments=false there is no way to correctly use the values returned in boundarySegmentToPhysicalEntity. Make sure to set insertBoundarySegments=true if you intent to do this. An alternative is to use the other overloads which provide compile-time checking of the provided parameter combinations.
- Warning
- The following does not work when the file is in Version 4 Gmsh format: Filling the boundarySegmentToPhysicalEntity and elementToPhysicalEntity fields, controlling verbosity, and inserting boundary segments.
- Todo:
- This interface is error-prone and should not be exposed to the user. However, the compile-time overloads may not provide sufficient runtime flexibility in all cases. Therefore this interface is kept until a better interface can be agreed on. See https://gitlab.dune-project.org/core/dune-grid/-/issues/107
◆ read() [3/5]
|
inlinestatic |
Read Gmsh grid file into a GridFactory object.
- Warning
- Controlling verbosity, and inserting boundary segments does not work when the file is in Version 4 Gmsh format.
◆ read() [4/5]
|
inlinestatic |
read Gmsh file, possibly with data
- Parameters
-
factory The GridFactory to fill. fileName Name of the file to read from. boundarySegmentData Container to fill with boundary segment physical entity data, or std::ignore, or aboolvalue. Boundary segments are inserted when a container ortrueis given, otherwise they are not inserted.elementData Container to fill with element physical entity data, or std::ignore.verbose Whether to be chatty.
Containers to fill with data must be std::vector<int> lvalues. Element data is indexed by the insertion index of the element, boundarySegment data is indexed by the insertion index of the boundary intersection. These can be obtained from the factory, and are lost once the grid gets modified (refined or load-balanced).
- Warning
- The following does not work when the file is in Version 4 Gmsh format: Filling the boundarySegmentData and elementData fields, and controlling verbosity.
- Note
- At the moment the data containers are still filled internally, even if they are ignored. So not having to pass them is more of a convenience feature and less of an optimization. This may however change in the future.
◆ read() [5/5]
|
inlinestatic |
Read Gmsh file, possibly with data.
- Parameters
-
factory The GridFactory to fill. fileName Name of the file to read from. boundarySegmentToPhysicalEntity Container to fill with boundary segment physical entity data (if insertBoundarySegments=true) elementToPhysicalEntity Container to fill with element physical entity data verbose Whether to be chatty insertBoundarySegments Whether boundary segments are inserted into the factory
- Note
- When insertBoundarySegments=false there is no way to correctly use the values returned in boundarySegmentToPhysicalEntity. Make sure to set insertBoundarySegments=true if you intent to do this. An alternative is to use the other overloads which provide compile-time checking of the provided parameter combinations.
- Warning
- The following does not work when the file is in Version 4 Gmsh format: Filling the boundarySegmentToPhysicalEntity and elementToPhysicalEntity fields, controlling verbosity, and inserting boundary segments.
- Todo:
- This interface is error-prone and should not be exposed to the user. However, the compile-time overloads may not provide sufficient runtime flexibility in all cases. Therefore this interface is kept until a better interface can be agreed on. See https://gitlab.dune-project.org/core/dune-grid/-/issues/107
The documentation for this class was generated from the following file:
- dune/grid/io/file/gmshreader.hh
|
Legal Statements / Impressum |
Hosted by TU Dresden & Uni Heidelberg |
generated with Hugo v0.111.3
(Nov 1, 23:35, 2025)