#include <gmsh.hpp>
The Gmsh class helps with the generation of meshes using the program gmsh. Typically one would generate a .geo std::string for example and pass it to generate() along with the prefix name of the .geo and .msh files to create/generate.
Inheritance diagram for Feel::Gmsh:Public Types | |
| enum | DomainType { GMSH_REFERENCE_DOMAIN = 0, GMSH_REAL_DOMAIN } |
Public Member Functions | |
Constructors, destructor | |
| Gmsh (int nDim=1, int nOrder=GMSH_ORDER_ONE, WorldComm const &worldComm=Environment::worldComm()) | |
| Gmsh (Gmsh const &__g) | |
| virtual | ~Gmsh () |
Accessors | |
| int | dimension () const |
| GMSH_ORDER | order () const |
| std::string | version () const |
| GMSH_FORMAT | format () const |
| bool | isASCIIFormat () const |
| bool | isBinaryFormat () const |
| std::string | prefix () const |
| std::vector< std::pair< double, double > > const & | boundingBox () const |
| double | xmin () const |
| double | xmax () const |
| double | ymin () const |
| double | ymax () const |
| double | zmin () const |
| double | zmax () const |
| double const & | h () const |
| std::string | description () const |
| double | geoParameter (std::string const &_name) |
| Get the value of a GMSH geometry parameter. If the parameter does not match any parameter, the function throws an out_of_range exception. More... | |
| std::map< std::string, std::string > | geoParameters () |
| Get all GMSH geometry parameters. More... | |
| bool | addMidPoint () const |
| bool | usePhysicalNames () const |
| WorldComm const & | worldComm () const |
| int | numberOfPartitions () const |
| bool | mshFileByPartition () const |
| GMSH_PARTITIONER | partitioner () const |
| double | shear () const |
| get the shear | |
| bool | recombine () const |
| return true if recombine, false otherwise | |
| int | structuredMesh () const |
| int | refinementLevels () const |
Mutators | |
| Gmsh & | setDimension (int dim) |
| Gmsh & | ref () |
| Gmsh & | h (double _h) |
| void | setOrder (int o) |
| void | setVersion (std::string version, GMSH_FORMAT format=GMSH_FORMAT_ASCII) |
| void | setFileFormat (GMSH_FORMAT format) |
| void | setDescription (std::string const &desc) |
| void | setSubStructuring (bool substruct) |
| bool | subStructuring () const |
| void | setPrefix (std::string const &name) |
| virtual void | setX (std::pair< double, double > const &x) |
| virtual void | setY (std::pair< double, double > const &y) |
| virtual void | setZ (std::pair< double, double > const &z) |
| virtual void | setReferenceDomain () |
| the gmsh generator to generate a reference domain | |
| virtual void | setCharacteristicLength (double _h) |
set the characteristic length to h | |
| void | setAddMidPoint (bool add) |
| void | setGeoParameter (std::string const &_name, double _value) |
| Modify an existing geo parameter. If the parameter does not match any parameter, the function throws an out_of_range exception. More... | |
| void | setGeoParameters (std::map< std::string, std::string > const &geomap, bool _update=1) |
| Modify geo gmsh geometry parameters from a map of parameters. If the parameter does not match any parameter, the function throws an out_of_range exception. More... | |
| void | usePhysicalNames (bool option) |
| void | setWorldComm (WorldComm const &_worldcomm) |
| set the communicator | |
| void | setNumberOfPartitions (int n) |
| set the number of partitions | |
| void | setMshFileByPartition (bool p) |
| set save msh file by partitions | |
| void | setStructuredMesh (int s) |
| void | setRefinementLevels (int levels) |
| void | setPartitioner (GMSH_PARTITIONER const &p) |
| set the partitioner | |
| void | setShear (double _shear) |
| shear the domain | |
| void | setRecombine (bool _recombine) |
| recombine simplices into quads | |
Protected Member Functions | |
| bool | generateGeo (std::string const &name, std::string const &geo, bool const modifGeo=true) const |
| virtual std::string | getDescription () const |
Protected Attributes | |
| bool | M_addmidpoint |
| mid point | |
| std::string | M_desc |
| int | M_dimension |
| mesh dimension | |
| GMSH_FORMAT | M_format |
|
std::map< std::string, std::string > | M_geoParamMap |
| double | M_h |
| characteristic length | |
|
std::vector< std::pair< double, double > > | M_I |
| bounding box | |
| std::string | M_name |
| int | M_order |
| mesh order | |
| bool | M_partition_file |
| save msh file by partition | |
| GMSH_PARTITIONER | M_partitioner |
| partitioner type | |
| int | M_partitions |
| number of partitions | |
| bool | M_recombine |
| recombine simplices into hypercubes | |
| int | M_refine_levels |
| number of refinement levels | |
| double | M_shear |
| shear | |
| int | M_structured |
| bool | M_substructuring |
| bool | M_usePhysicalNames |
| add physical names to msh files | |
| std::string | M_version |
| WorldComm | M_worldComm |
| communicator | |
Operator overloads | |
| Gmsh & | operator= (Gmsh const &__g) |
| static boost::shared_ptr< Gmsh > | New (po::variables_map const &vm) |
| static boost::shared_ptr< Gmsh > | New (std::string const &shape, uint16_type d=2, uint16_type o=1, std::string const &ct="simplex") |
Methods | |
| std::string | generate (std::string const &name) const |
| boost::tuple< std::string, bool > | generate (std::string const &name, std::string const &geo, bool const forceRebuild=false, bool const parametric=false, bool const modifGeo=true) const |
| std::string | refine (std::string const &name, int level=1, bool const parametric=false) const |
| std::string | preamble () const |
| std::string | getDescriptionFromFile (std::string const &file) const |
| void | rebuildPartitionMsh (std::string const &nameMshInput, std::string const &nameMshOutput) const |
| std::map< std::string, std::string > | retrieveGeoParameters (std::string const &geo) const |
| static std::map< std::string, std::string > | gpstr2map (std::string const &geopars) |
Create a map from a list of geometry parameters string and separated by a character :. More... | |
|
inline |
add the mid point of the domain
References M_addmidpoint.
|
inline |
References M_I.
|
inline |
References getDescription().
|
inline |
References M_dimension.
|
inline |
| std::string Feel::Gmsh::generate | ( | std::string const & | name | ) | const |
generate a Gmsh msh file from name
| boost::tuple< std::string, bool > Feel::Gmsh::generate | ( | std::string const & | name, |
| std::string const & | geo, | ||
| bool const | forceRebuild = false, |
||
| bool const | parametric = false, |
||
| bool const | modifGeo = true |
||
| ) | const |
| name | filename prefix to create the geo and msh file from geo |
| geo | gmsh geometry description |
| forceRebuild | if true, rebuild the mesh even if geofile is unchanged if false, rebuild only if geo file has changed. Useful if generateGeo has been called outside or if gmsh lybrary has changed. |
gmsh (with the .msh extension)
|
protected |
| name | filename prefix to create the geo |
| geo | gmsh geometry description |
|
inline |
Get the value of a GMSH geometry parameter. If the parameter does not match any parameter, the function throws an out_of_range exception.
\param _name Geo parameter name.
|
inline |
Get all GMSH geometry parameters.
|
inlineprotectedvirtual |
sublass must provide the geo description
Reimplemented in Feel::GmshEllipsoidDomain.
| std::string Feel::Gmsh::getDescriptionFromFile | ( | std::string const & | file | ) | const |
file in a std::string
|
static |
Create a map from a list of geometry parameters string and separated by a character :.
\param geopars List of parameters as `key=value`. Each new parameter
is separated by a char :.
TODO modify message !
|
inline |
References M_h.
|
inline |
set the characteristic length
| h | the characteristic length |
References setCharacteristicLength().
|
inline |
|
inline |
|
inline |
References M_partition_file.
|
inline |
References M_partitions.
assignment operator
| __g | another Gmsh object instance |
References M_addmidpoint, M_dimension, M_order, M_refine_levels, M_shear, and M_usePhysicalNames.
|
inline |
get the order of the elements of the mesh
References M_order.
|
inline |
References M_partitioner.
| std::string Feel::Gmsh::preamble | ( | ) | const |
|
inline |
| void Feel::Gmsh::rebuildPartitionMsh | ( | std::string const & | nameMshInput, |
| std::string const & | nameMshOutput | ||
| ) | const |
load mesh and generate a new partion of this mesh
|
inline |
the gmsh generator to generate a reference domain
References setReferenceDomain().
| std::string Feel::Gmsh::refine | ( | std::string const & | name, |
| int | level = 1, |
||
| bool const | parametric = false |
||
| ) | const |
refine the mesh uniformly by splitting
| name | name of the gmsh mesh file |
| level | the number of refinements |
| std::map< std::string, std::string > Feel::Gmsh::retrieveGeoParameters | ( | std::string const & | geo | ) | const |
|
inline |
if add is true, set M_addmidpoint to true, false otherwise
References M_addmidpoint.
|
inline |
set the description of the geometry
|
inline |
set the dimension
References M_dimension.
|
inline |
set file format: ascii or binary
References format().
|
inline |
Modify an existing geo parameter. If the parameter does not match any parameter, the function throws an out_of_range exception.
\param _name Geo parameter name. \param _value Geo parameter value.
|
inline |
Modify geo gmsh geometry parameters from a map of parameters. If the parameter does not match any parameter, the function throws an out_of_range exception.
| geomap | A map containing the geo parameters (param,value). |
|
inline |
set the order of the elements of the mesh it can be either GMSH_ORDER_ONE (order 1/linear) or GMSH_ORDER_TWO(order 2/quadratic)
| o | order of the elements |
References M_order.
|
inline |
set the prefix of the Gmsh files
|
inline |
|
inline |
References M_usePhysicalNames.
|
inline |
Set the use of physical names to describe the boundaries of the domain: if option is set to true then the generator will generate a PhysicalNames Section and replace numerical id by strings for the Physical boundaries
References M_usePhysicalNames.
|
inline |
|
inline |
References M_worldComm.
1.8.5