#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.
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.
_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 :
.
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.
_name | Geo parameter name. |
_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.