-
Notifications
You must be signed in to change notification settings - Fork 62
Geometric Models
Improving the approximation of the mesh to the geometric model during mesh adaptation ('snapping') is only supported with the analytic, Parasolid, Acis, and GeomSim models; they provide parametric representations of the boundary. When there is adaptation on a model without snapping then the spatial position of the boundary is defined by the positions of the original mesh entities. Note, the topology on the boundary can still change (e.g., vertices added along a facet).
AVOID THIS UNLESS YOU ARE DEBUGGING A MESH ISSUE
Use the mkmodel
tool to generate a 'null' model from a mesh:
$ module load pumi
$ mkmodel
Create a discrete geometric model from a mesh
Usage: mkmodel <mesh> <out model (.dmg)>
Note, the model created with this code only exists to debug mesh related issues. The null model works by creating a dummy model entity for the first call to retrieve classification for each mesh entity.
Analytic models are defined by closed form expressions defined via APIs. API documentation is here: https://github.com/SCOREC/core/blob/master/gmi/gmi_analytic.h and an example is here: https://github.com/SCOREC/core/blob/59d03165714ac2c2069f4de6a3d08bd3ba041d20/test/bezierSubdivision.cc#L57-L71
See https://github.com/SCOREC/core/wiki/Mesh-Generation#gmsh
Parasolid and ACIS Models are supported through use of the Simmetrix SimModSuite GeomSim APIs (note that this interface is different from the GeomSim Models discussed next).
Parasolid and ACIS are commercial/closed-source kernels that are only available on x86 gnu/linux systems. This means that Parasolid and ACIS models cannot be used on IBM Power systems and or the BlueGene/Q.
A .smd
Simmetrix model file is created by either translating a Parasolid or ACIS model OR by creating a Simmetrix discrete (i.e. topological info + bounding box) model from a surface mesh or otherwise.
Note, a Simmetrix .smd
file can also contain problem definition and mesh generation attributes; e.g. SimModeler saves 'models' this way.
The core tool simTranslate
does the Parasolid/ACIS conversion:
$ simTranslate
Usage: simTranslate <acis .sat or parasolid .xmt_txt> <output .smd>
to translate a native model into a GeomSim model
or: simTranslate <acis .sat or parasolid .xmt_txt> <attribute .smd> <output .smd>
to do the above and combine it with attributes into one file
The mktopomodel
tool can create a topological model ('.dmg' file extension) from a mesh. The underlying call to deriveMdsModel(...)
"will classify all interior entities onto a model region and all boundary entities onto a boundary model entity, as defined by mesh upward adjacencies."
The mdlConvert
tool can create a topological model from a Parasolid or Simmetrix GeomSim file. Note, this discrete model maintains the same classification as the original model, but drops nearly all the geometry info; I believe it maintains a bounding box.
$ mdlConvert
Convert parasolid or simmetrix geomsim model to a gmi topological model
Usage: ./mdlConvert <input model> <output model prefix>.dmg
See https://github.com/SCOREC/core/blob/0b6940649ccf6e928bdcbb411eb6df7de5cb96e1/test/generate.cc#L243