Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
|
API headers and documentation for the mmg3d library, for volumetric meshes in 3D. More...
#include "mmg/common/libmmgtypes.h"
#include "mmg/mmg3d/mmg3d_export.h"
Go to the source code of this file.
Macros | |
#define | MMG3D_LMAX 10240 |
Functions | |
LIBMMG3D_EXPORT int | MMG3D_Init_mesh (const int starter,...) |
Initialize a mesh structure and optionally the associated solution and metric structures. | |
LIBMMG3D_EXPORT void | MMG3D_Init_fileNames (MMG5_pMesh mesh, MMG5_pSol sol) |
Initialize file names to their default values. | |
LIBMMG3D_EXPORT void | MMG3D_Init_parameters (MMG5_pMesh mesh) |
Initialize parameters to their default values. | |
LIBMMG3D_EXPORT int | MMG3D_Set_inputMeshName (MMG5_pMesh mesh, const char *meshin) |
Set the name of input mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Set_outputMeshName (MMG5_pMesh mesh, const char *meshout) |
Set the name of output mesh file. | |
LIBMMG3D_EXPORT int | MMG3D_Set_inputSolName (MMG5_pMesh mesh, MMG5_pSol sol, const char *solin) |
Set the name of input solution file. | |
LIBMMG3D_EXPORT int | MMG3D_Set_outputSolName (MMG5_pMesh mesh, MMG5_pSol sol, const char *solout) |
Set the name of the output solution file. | |
LIBMMG3D_EXPORT int | MMG3D_Set_inputParamName (MMG5_pMesh mesh, const char *fparamin) |
Set the name of the input parameter file. | |
LIBMMG3D_EXPORT int | MMG3D_Set_solSize (MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, MMG5_int np, int typSol) |
Initialize a solution field. | |
LIBMMG3D_EXPORT int | MMG3D_Set_solsAtVerticesSize (MMG5_pMesh mesh, MMG5_pSol *sol, int nsols, MMG5_int nentities, int *typSol) |
Initialize an array of solution values defined at vertices. | |
LIBMMG3D_EXPORT int | MMG3D_Set_meshSize (MMG5_pMesh mesh, MMG5_int np, MMG5_int ne, MMG5_int nprism, MMG5_int nt, MMG5_int nquad, MMG5_int na) |
Set the number of vertices, tetrahedra, prisms, triangles, quadrilaterals, and edges of a mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Set_vertex (MMG5_pMesh mesh, double c0, double c1, double c2, MMG5_int ref, MMG5_int pos) |
Set the coordinates of a single vertex. | |
LIBMMG3D_EXPORT int | MMG3D_Set_vertices (MMG5_pMesh mesh, double *vertices, MMG5_int *refs) |
Set all vertex coordinates and references in a mesh structure. | |
LIBMMG3D_EXPORT int | MMG3D_Set_tetrahedron (MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int v3, MMG5_int ref, MMG5_int pos) |
set a single tetrahedron's vertices | |
LIBMMG3D_EXPORT int | MMG3D_Set_tetrahedra (MMG5_pMesh mesh, MMG5_int *tetra, MMG5_int *refs) |
Set the vertices and references of all tetrahedra in a mesh structure. | |
LIBMMG3D_EXPORT int | MMG3D_Set_prism (MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int v3, MMG5_int v4, MMG5_int v5, MMG5_int ref, MMG5_int pos) |
Set the vertices and reference of a single prism in a mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Set_prisms (MMG5_pMesh mesh, MMG5_int *prisms, MMG5_int *refs) |
Set the vertices and references of all prisms in a mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Set_triangle (MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int ref, MMG5_int pos) |
Set the vertices and reference of a single triangle in a mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Set_triangles (MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs) |
Set the vertices and references of all triangles in a mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Set_quadrilateral (MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int v3, MMG5_int ref, MMG5_int pos) |
Set the vertices and reference of a single quadrilateral in a mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Set_quadrilaterals (MMG5_pMesh mesh, MMG5_int *quads, MMG5_int *refs) |
Set the vertices and references of all quadrilaterals in a mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Set_edge (MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int ref, MMG5_int pos) |
Set the vertices and reference of a single edge in a mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Set_corner (MMG5_pMesh mesh, MMG5_int k) |
Assign the "corner" attribute to a vertex. | |
LIBMMG3D_EXPORT int | MMG3D_Unset_corner (MMG5_pMesh mesh, MMG5_int k) |
Remove the "corner" attribute from a vertex. | |
LIBMMG3D_EXPORT int | MMG3D_Set_requiredVertex (MMG5_pMesh mesh, MMG5_int k) |
Assign the "required" attribute to a vertex. | |
LIBMMG3D_EXPORT int | MMG3D_Unset_requiredVertex (MMG5_pMesh mesh, MMG5_int k) |
Remove required attribute from a vertex. | |
LIBMMG3D_EXPORT int | MMG3D_Set_requiredTetrahedron (MMG5_pMesh mesh, MMG5_int k) |
Assign the "required" attribute to a tetrahedron. | |
LIBMMG3D_EXPORT int | MMG3D_Unset_requiredTetrahedron (MMG5_pMesh mesh, MMG5_int k) |
Remove the "required" attribute from a tetrahedron. | |
LIBMMG3D_EXPORT int | MMG3D_Set_requiredTetrahedra (MMG5_pMesh mesh, MMG5_int *reqIdx, MMG5_int nreq) |
Assign the "required" attribute to multiple tetrahedra. | |
LIBMMG3D_EXPORT int | MMG3D_Unset_requiredTetrahedra (MMG5_pMesh mesh, MMG5_int *reqIdx, MMG5_int nreq) |
Remove the "required" attribute from multiple tetrahedra. | |
LIBMMG3D_EXPORT int | MMG3D_Set_requiredTriangle (MMG5_pMesh mesh, MMG5_int k) |
Assign the "required" attribute to a single triangle. | |
LIBMMG3D_EXPORT int | MMG3D_Unset_requiredTriangle (MMG5_pMesh mesh, MMG5_int k) |
Remove the "required" attribute from a single triangle. | |
LIBMMG3D_EXPORT int | MMG3D_Set_requiredTriangles (MMG5_pMesh mesh, MMG5_int *reqIdx, MMG5_int nreq) |
Assign the "required" attribute to multiple triangles. | |
LIBMMG3D_EXPORT int | MMG3D_Unset_requiredTriangles (MMG5_pMesh mesh, MMG5_int *reqIdx, MMG5_int nreq) |
Remove the "required" attribute from multiple triangles. | |
LIBMMG3D_EXPORT int | MMG3D_Set_parallelTriangle (MMG5_pMesh mesh, MMG5_int k) |
Assign the "parallel" attribute to a single triangle. | |
LIBMMG3D_EXPORT int | MMG3D_Unset_parallelTriangle (MMG5_pMesh mesh, MMG5_int k) |
Remove the "parallel" attribute from a single triangle. | |
LIBMMG3D_EXPORT int | MMG3D_Set_parallelTriangles (MMG5_pMesh mesh, MMG5_int *parIdx, MMG5_int npar) |
Assign the "parallel" attribute to multiple triangles. | |
LIBMMG3D_EXPORT int | MMG3D_Unset_parallelTriangles (MMG5_pMesh mesh, MMG5_int *parIdx, MMG5_int npar) |
Remove the "parallel" attribute from multiple triangles. | |
LIBMMG3D_EXPORT int | MMG3D_Set_ridge (MMG5_pMesh mesh, MMG5_int k) |
Assign the "ridge" attribute to a single edge. | |
LIBMMG3D_EXPORT int | MMG3D_Unset_ridge (MMG5_pMesh mesh, MMG5_int k) |
Remove the "ridge" attribute from a single edge. | |
LIBMMG3D_EXPORT int | MMG3D_Set_requiredEdge (MMG5_pMesh mesh, MMG5_int k) |
Assign the "required" attribute to a single edge. | |
LIBMMG3D_EXPORT int | MMG3D_Unset_requiredEdge (MMG5_pMesh mesh, MMG5_int k) |
Remove the "required" attribute from a single edge. | |
LIBMMG3D_EXPORT int | MMG3D_Set_normalAtVertex (MMG5_pMesh mesh, MMG5_int k, double n0, double n1, double n2) |
Set the normal orientation at a single vertex. | |
LIBMMG3D_EXPORT int | MMG3D_Set_scalarSol (MMG5_pSol met, double s, MMG5_int pos) |
Set a single element of a scalar solution structure. | |
LIBMMG3D_EXPORT int | MMG3D_Set_scalarSols (MMG5_pSol met, double *s) |
Set the values of all elements of a scalar solution structure. | |
LIBMMG3D_EXPORT int | MMG3D_Set_vectorSol (MMG5_pSol met, double vx, double vy, double vz, MMG5_int pos) |
Set a single element of a vector solution structure. | |
LIBMMG3D_EXPORT int | MMG3D_Set_vectorSols (MMG5_pSol met, double *sols) |
Set all elements of a vector solution structure. | |
LIBMMG3D_EXPORT int | MMG3D_Set_tensorSol (MMG5_pSol met, double m11, double m12, double m13, double m22, double m23, double m33, MMG5_int pos) |
Set a single element of a tensor solution structure. | |
LIBMMG3D_EXPORT int | MMG3D_Set_tensorSols (MMG5_pSol met, double *sols) |
Set all elements of a tensor solution structure. | |
LIBMMG3D_EXPORT int | MMG3D_Set_ithSol_inSolsAtVertices (MMG5_pSol sol, int i, double *s, MMG5_int pos) |
Set a single element of one out of multiple solution fields that are defined on vertices. | |
LIBMMG3D_EXPORT int | MMG3D_Set_ithSols_inSolsAtVertices (MMG5_pSol sol, int i, double *s) |
Set all elements of one out of multiple solution fields that are defined on vertices. | |
LIBMMG3D_EXPORT void | MMG3D_Set_handGivenMesh (MMG5_pMesh mesh) |
Finish providing mesh data without using the API functions. | |
LIBMMG3D_EXPORT int | MMG3D_Chk_meshData (MMG5_pMesh mesh, MMG5_pSol met) |
Check if the number of given entities match with mesh and sol size. | |
LIBMMG3D_EXPORT int | MMG3D_Set_iparameter (MMG5_pMesh mesh, MMG5_pSol sol, int iparam, MMG5_int val) |
set an integer parameter of the remesher | |
LIBMMG3D_EXPORT int | MMG3D_Set_dparameter (MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val) |
set a real-valued parameter of the remesher | |
LIBMMG3D_EXPORT int | MMG3D_Set_localParameter (MMG5_pMesh mesh, MMG5_pSol sol, int typ, MMG5_int ref, double hmin, double hmax, double hausd) |
set a local parameter | |
LIBMMG3D_EXPORT int | MMG3D_Set_multiMat (MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int ref, int split, MMG5_int rmin, MMG5_int rplus) |
Set the reference mapping for the elements of reference ref in level-set discretization mode. | |
LIBMMG3D_EXPORT int | MMG3D_Set_lsBaseReference (MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int br) |
Set a new level-set base reference. | |
LIBMMG3D_EXPORT int | MMG3D_Get_meshSize (MMG5_pMesh mesh, MMG5_int *np, MMG5_int *ne, MMG5_int *nprism, MMG5_int *nt, MMG5_int *nquad, MMG5_int *na) |
Get the number of vertices, tetrahedra, prisms, triangles, quadrilaterals and edges of the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_solSize (MMG5_pMesh mesh, MMG5_pSol sol, int *typEntity, MMG5_int *np, int *typSol) |
Get the number of elements, dimension, and type of a solution structure. | |
LIBMMG3D_EXPORT int | MMG3D_Get_solsAtVerticesSize (MMG5_pMesh mesh, MMG5_pSol *sol, int *nsols, MMG5_int *nentities, int *typSol) |
Get the number of elements, type, and dimensions of several solutions defined on vertices. | |
LIBMMG3D_EXPORT int | MMG3D_Get_vertex (MMG5_pMesh mesh, double *c0, double *c1, double *c2, MMG5_int *ref, int *isCorner, int *isRequired) |
Get the coordinates c0, c1,c2 and reference ref of the next vertex of mesh. | |
LIBMMG3D_EXPORT int | MMG3D_GetByIdx_vertex (MMG5_pMesh mesh, double *c0, double *c1, double *c2, MMG5_int *ref, int *isCorner, int *isRequired, MMG5_int idx) |
Get the coordinates and reference of a specific vertex in the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_vertices (MMG5_pMesh mesh, double *vertices, MMG5_int *refs, int *areCorners, int *areRequired) |
Get the coordinates and references of all vertices in the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_tetrahedron (MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *v3, MMG5_int *ref, int *isRequired) |
Get the vertices and reference of the next tetrahedron in the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_tetrahedra (MMG5_pMesh mesh, MMG5_int *tetra, MMG5_int *refs, int *areRequired) |
Get the vertices and reference of all tetrahedra in the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_prism (MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *v3, MMG5_int *v4, MMG5_int *v5, MMG5_int *ref, int *isRequired) |
Get the vertices and reference of the next prism in the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_prisms (MMG5_pMesh mesh, MMG5_int *prisms, MMG5_int *refs, int *areRequired) |
Get the vertices and references of all prisms in the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_triangle (MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *ref, int *isRequired) |
Get the vertices and reference of the next triangle in the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_triangles (MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs, int *areRequired) |
Get the vertices and references of all triangles in the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_quadrilateral (MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *v3, MMG5_int *ref, int *isRequired) |
Get the vertices and reference of the next quadrilateral of the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_quadrilaterals (MMG5_pMesh mesh, MMG5_int *quads, MMG5_int *refs, int *areRequired) |
Get the vertices and references of all quadrilaterals of the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_edge (MMG5_pMesh mesh, MMG5_int *e0, MMG5_int *e1, MMG5_int *ref, int *isRidge, int *isRequired) |
Get the vertices and reference of the next edge in the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Set_edges (MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs) |
Set the vertices and references of all edges in a mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_edges (MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs, int *areRidges, int *areRequired) |
Get the vertices and references of all edges in a mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_normalAtVertex (MMG5_pMesh mesh, MMG5_int k, double *n0, double *n1, double *n2) |
Get the normal orientation at a single mesh vertex. | |
LIBMMG3D_EXPORT double | MMG3D_Get_tetrahedronQuality (MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k) |
Get the quality measure of a single tetrahedron in the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_scalarSol (MMG5_pSol met, double *s) |
Get the next element of a scalar solution structure defined at vertices. | |
LIBMMG3D_EXPORT int | MMG3D_Get_scalarSols (MMG5_pSol met, double *s) |
Get all elements of a scalar solution structure defined at vertices. | |
LIBMMG3D_EXPORT int | MMG3D_Get_vectorSol (MMG5_pSol met, double *vx, double *vy, double *vz) |
Get the next element of a vector solution structure. | |
LIBMMG3D_EXPORT int | MMG3D_Get_vectorSols (MMG5_pSol met, double *sols) |
Get all elements of a vector solution structure. | |
LIBMMG3D_EXPORT int | MMG3D_Get_tensorSol (MMG5_pSol met, double *m11, double *m12, double *m13, double *m22, double *m23, double *m33) |
Get the next element of a tensor solution structure. | |
LIBMMG3D_EXPORT int | MMG3D_Get_tensorSols (MMG5_pSol met, double *sols) |
Get all elements of a tensor solution field. | |
LIBMMG3D_EXPORT int | MMG3D_Get_ithSol_inSolsAtVertices (MMG5_pSol sol, int i, double *s, MMG5_int pos) |
Get one out of several solutions at a specific vertex. | |
LIBMMG3D_EXPORT int | MMG3D_Get_ithSols_inSolsAtVertices (MMG5_pSol sol, int i, double *s) |
Get one out of several solutions at all vertices in the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_Get_iparameter (MMG5_pMesh mesh, MMG5_int iparam) |
Get the value of an integer parameter of the remesher. | |
LIBMMG3D_EXPORT int | MMG3D_Add_tetrahedron (MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int v3, MMG5_int ref) |
Add a tetrahedron to the mesh. | |
LIBMMG3D_EXPORT MMG5_int | MMG3D_Add_vertex (MMG5_pMesh mesh, double c0, double c1, double c2, MMG5_int ref) |
Add a vertex to the mesh. | |
LIBMMG3D_EXPORT int | MMG3D_loadMesh (MMG5_pMesh mesh, const char *filename) |
Load a mesh (in .mesh/.mesb format) from file. | |
LIBMMG3D_EXPORT int | MMG3D_loadMshMesh (MMG5_pMesh mesh, MMG5_pSol sol, const char *filename) |
Load a mesh and possibly a solution in .msh format from file. | |
LIBMMG3D_EXPORT int | MMG3D_loadVtuMesh (MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, const char *filename) |
Load a mesh and possibly a solution in VTU (VTK) format from file. | |
LIBMMG3D_EXPORT int | MMG3D_loadVtuMesh_and_allData (MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename) |
Load a mesh and multiple solutions in VTU (VTK) format from file. | |
LIBMMG3D_EXPORT int | MMG3D_loadVtkMesh (MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, const char *filename) |
Load a mesh and possibly a solution from a file in VTK format. | |
LIBMMG3D_EXPORT int | MMG3D_loadVtkMesh_and_allData (MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename) |
Load a mesh and multiple solutions from a file in VTK format. | |
LIBMMG3D_EXPORT int | MMG3D_loadMshMesh_and_allData (MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename) |
Load a mesh and all data from a file in MSH format. | |
LIBMMG3D_EXPORT int | MMG3D_loadGenericMesh (MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, const char *filename) |
Read mesh data in a format determined by the filename extension. | |
LIBMMG3D_EXPORT int | MMG3D_saveMesh (MMG5_pMesh mesh, const char *filename) |
Save a mesh in .mesh/.meshb format. | |
LIBMMG3D_EXPORT int | MMG3D_saveMshMesh (MMG5_pMesh mesh, MMG5_pSol sol, const char *filename) |
Save a mesh in MSH format, ascii or binary depending on the filename extension. | |
LIBMMG3D_EXPORT int | MMG3D_saveMshMesh_and_allData (MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename) |
Save a mesh and data in MSH format, ascii or binary depending on the filename extension. | |
LIBMMG3D_EXPORT int | MMG3D_saveVtkMesh (MMG5_pMesh mesh, MMG5_pSol sol, const char *filename) |
Save a mesh and optionally one solution in VTK format. | |
LIBMMG3D_EXPORT int | MMG3D_saveVtkMesh_and_allData (MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename) |
Save a mesh and multiple data fields in VTK format. | |
LIBMMG3D_EXPORT int | MMG3D_saveVtuMesh (MMG5_pMesh mesh, MMG5_pSol sol, const char *filename) |
Save a mesh and optionally one data field in VTU format. | |
LIBMMG3D_EXPORT int | MMG3D_saveVtuMesh_and_allData (MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename) |
Save a mesh and multiple data fields in VTU format. | |
LIBMMG3D_EXPORT int | MMG3D_saveTetgenMesh (MMG5_pMesh, const char *) |
Save data in Tetgen's Triangle format. | |
LIBMMG3D_EXPORT int | MMG3D_saveGenericMesh (MMG5_pMesh mesh, MMG5_pSol sol, const char *filename) |
Save mesh data in a file whose format depends on the filename extension. | |
LIBMMG3D_EXPORT int | MMG3D_loadSol (MMG5_pMesh mesh, MMG5_pSol met, const char *filename) |
Load a metric field (or other solution). | |
LIBMMG3D_EXPORT int | MMG3D_loadAllSols (MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename) |
Load one or more solutions in a solution file in medit file format. | |
LIBMMG3D_EXPORT int | MMG3D_saveSol (MMG5_pMesh mesh, MMG5_pSol met, const char *filename) |
Write isotropic or anisotropic metric. | |
LIBMMG3D_EXPORT int | MMG3D_saveAllSols (MMG5_pMesh mesh, MMG5_pSol *sol, const char *filename) |
Save 1 or more solutions in medit solution file format. | |
LIBMMG3D_EXPORT int | MMG3D_Free_allSols (MMG5_pMesh mesh, MMG5_pSol *sol) |
Deallocate an array of solution fields. | |
LIBMMG3D_EXPORT int | MMG3D_Free_all (const int starter,...) |
Deallocations before return. | |
LIBMMG3D_EXPORT int | MMG3D_Free_structures (const int starter,...) |
Structure deallocations before return. | |
LIBMMG3D_EXPORT int | MMG3D_Free_names (const int starter,...) |
Structure deallocations before return. | |
LIBMMG3D_EXPORT int | MMG3D_mmg3dlib (MMG5_pMesh mesh, MMG5_pSol met) |
Main "program" for the mesh adaptation library. | |
LIBMMG3D_EXPORT int | MMG3D_mmg3dls (MMG5_pMesh mesh, MMG5_pSol sol, MMG5_pSol met) |
Main "program" for the level-set discretization library. | |
LIBMMG3D_EXPORT int | MMG3D_mmg3dmov (MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol disp) |
Main program for the rigid-body movement library. | |
LIBMMG3D_EXPORT int | MMG3D_defaultValues (MMG5_pMesh mesh) |
Print the default parameters values. | |
LIBMMG3D_EXPORT int | MMG3D_parsar (int argc, char *argv[], MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol) |
Store command-line arguments. | |
LIBMMG3D_EXPORT int | MMG3D_parsop (MMG5_pMesh mesh, MMG5_pSol met) |
Read a file containing Local parameters (.mmg3d extension) | |
LIBMMG3D_EXPORT int | MMG3D_usage (char *prog) |
Print help for mmg3d options. | |
LIBMMG3D_EXPORT int | MMG3D_stockOptions (MMG5_pMesh mesh, MMG5_Info *info) |
Store the info structure in the mesh structure. | |
LIBMMG3D_EXPORT void | MMG3D_destockOptions (MMG5_pMesh mesh, MMG5_Info *info) |
Recover the info structure stored in the mesh structure. | |
LIBMMG3D_EXPORT int | MMG3D_mmg3dcheck (MMG5_pMesh mesh, MMG5_pSol met, MMG5_pSol sol, double critmin, double lmin, double lmax, MMG5_int *eltab, int8_t metRidTyp) |
Search invalid elements (in term of quality or edge length) in a mesh. | |
LIBMMG3D_EXPORT void | MMG3D_searchqua (MMG5_pMesh mesh, MMG5_pSol met, double critmin, MMG5_int *eltab, int8_t metRidTyp) |
List bad elements. | |
LIBMMG3D_EXPORT int | MMG3D_searchlen (MMG5_pMesh mesh, MMG5_pSol met, double lmin, double lmax, MMG5_int *eltab, int8_t metRidTyp) |
List edges that are too short or too long. | |
LIBMMG3D_EXPORT int | MMG3D_Get_adjaTet (MMG5_pMesh mesh, MMG5_int kel, MMG5_int listet[4]) |
Return adjacent elements of a tetrahedron. | |
LIBMMG3D_EXPORT int | MMG3D_hashTetra (MMG5_pMesh mesh, int pack) |
Create array of adjacency. | |
LIBMMG3D_EXPORT int | MMG3D_Set_constantSize (MMG5_pMesh mesh, MMG5_pSol met) |
Compute a constant size map according to the hsiz, hmin and hmax parameters. | |
LIBMMG3D_EXPORT int | MMG3D_switch_metricStorage (MMG5_pMesh mesh, MMG5_pSol met) |
Swap the m22 and m23 values of the metric. | |
LIBMMG3D_EXPORT void | MMG3D_setfunc (MMG5_pMesh mesh, MMG5_pSol met) |
Set function pointers for caltet, lenedg, lenedgCoor defsiz, gradsiz... depending if the metric that was read is anisotropic or isotropic. | |
LIBMMG3D_EXPORT int | MMG3D_Get_numberOfNonBdyTriangles (MMG5_pMesh mesh, MMG5_int *nb_tria) |
Get the number of non-boundary triangles. | |
LIBMMG3D_EXPORT int | MMG3D_Get_nonBdyTriangle (MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *ref, MMG5_int idx) |
Get vertices and reference of a non-boundary triangle. | |
LIBMMG3D_EXPORT int | MMG3D_Get_tetFromTria (MMG5_pMesh mesh, MMG5_int ktri, MMG5_int *ktet, int *iface) |
Get a tetrahedron given one of its triangles and the index by which it refers to this triangle (DEPRECATED). | |
LIBMMG3D_EXPORT int | MMG3D_Get_tetsFromTria (MMG5_pMesh mesh, MMG5_int ktri, MMG5_int ktet[2], int iface[2]) |
Get two tetrahedra given a triangle and face indices. | |
LIBMMG3D_EXPORT int | MMG3D_Compute_eigenv (double m[6], double lambda[3], double vp[3][3]) |
Compute the real eigenvalues and eigenvectors of a symmetric matrix. | |
LIBMMG3D_EXPORT int | MMG3D_Clean_isoSurf (MMG5_pMesh mesh) |
Clean data (triangles and edges) linked to isosurface. | |
LIBMMG3D_EXPORT void | MMG3D_Free_solutions (MMG5_pMesh mesh, MMG5_pSol sol) |
Free the solution structure of a given mesh. | |
LIBMMG3D_EXPORT void | MMG3D_Set_commonFunc (void) |
Variables | |
LIBMMG3D_EXPORT double(* | MMG3D_lenedgCoor )(double *ca, double *cb, double *sa, double *sb) |
Compute the length of an edge according to the size prescription. | |
LIBMMG3D_EXPORT int(* | MMG3D_doSol )(MMG5_pMesh mesh, MMG5_pSol met) |
Compute isotropic size map according to the mean of the length of the edges passing through a vertex. | |
API headers and documentation for the mmg3d library, for volumetric meshes in 3D.
These are the API functions for the mmg3d library. These functions allow to load and save meshes and data defined on meshes; add, extract, or modify mesh data; and to call the library functions that perform remeshing, level-set discretization, and Lagrangian motion.
Meshes are here defined in terms of vertices and three-dimensional objects: tetrahedra and prisms. Optionally lower-dimensional entities can be present: triangles, quadrilaterals and edges. All of these entities can have a reference: an integer value that can serve as a group identifier. In addition mesh entities can have attributes such as "ridge" or "required".
Data defined on meshes can be for example functions that are meant for level-set discretization, metric tensors that will govern edge lengths, and vector fields governing lagrangian motion. These data can be scalar, vector, or (symmetric) tensor-valued; and there can be more than one data item associated with a mesh entity. These data are often referred to as solutions.
Three of the functions here are referred to as "programs", because they perform the tasks for which Mmg is meant: remeshing, level-set discretization and Lagrangian motion. The other functions merely serve to load and save data and to perform pre- and post-processing. These programs actually behave much like independent programs: they send diagnostic output to stdout and in rare cases they may call the exit() function.
A very simple example code for mesh adaptation with automatic parsing of .mesh files
Mesh adaptation example in which get/set functions are used to provide input to the library and to extract the output mesh.
Fortran example.
Another Fortran example.
Mesh adaptation example.
Another mesh adaptation example.
Isosurface discretization example (with metric)
Lagrangian motion example.
Definition in file libmmg3d.h.
#define MMG3D_LMAX 10240 |
Maximum array size when storing adjacent vertices (or ball) of a vertex.
Definition at line 130 of file libmmg3d.h.
enum MMG3D_Param |
Input parameters for the mmg library.
These are the input parameters for the mmg3d library functions. Options prefixed by MMG3D_IPARAM require integer values and options prefixed by MMG3D_DPARAM require real values. They can be set with the MMG3D_Set_iparameter and MMG3D_Set_dparameter functions, respectively.
Enumerator | |
---|---|
MMG3D_IPARAM_verbose | [-1..10], Level of verbosity |
MMG3D_IPARAM_mem | [n/-1], Max memory size in MB or keep the default value |
MMG3D_IPARAM_debug | [1/0], Turn on/off debug mode |
MMG3D_IPARAM_angle | [1/0], Turn on/off angle detection |
MMG3D_IPARAM_iso | [1/0], Enable level-set discretization (volume and surfaces) |
MMG3D_IPARAM_isosurf | [1/0], Enable level-set discretization on the surfaces only |
MMG3D_IPARAM_nofem | [1/0], Do not attempt to make the mesh suitable for finite-element computations |
MMG3D_IPARAM_opnbdy | [1/0], Preserve triangles at interface of 2 domains with the same reference |
MMG3D_IPARAM_lag | [-1/0/1/2], Enable Lagrangian motion |
MMG3D_IPARAM_optim | [1/0], Optimize mesh keeping its initial edge sizes |
MMG3D_IPARAM_optimLES | [1/0], Strong mesh optimization for LES computations |
MMG3D_IPARAM_noinsert | [1/0], Avoid/allow vertex insertion |
MMG3D_IPARAM_noswap | [1/0], Avoid/allow edge or face flipping |
MMG3D_IPARAM_nomove | [1/0], Avoid/allow vertex relocation |
MMG3D_IPARAM_nosurf | [1/0], Avoid/allow surface modifications |
MMG3D_IPARAM_nreg | [0/1], Enable regularization of normals |
MMG3D_IPARAM_xreg | [0/1], Enable boundary regularization by moving vertices |
MMG3D_IPARAM_numberOfLocalParam | [n], Number of local parameters (which will be set with MMG3D_Set_localParameter) |
MMG3D_IPARAM_numberOfLSBaseReferences | [n], Number of base references for bubble removal (requires MMG3D_DPARAM_rmc) |
MMG3D_IPARAM_numberOfMat | [n], Number of materials in level-set mode |
MMG3D_IPARAM_numsubdomain | [0/n], Save only the subdomain (reference) n (0==all subdomains) |
MMG3D_IPARAM_renum | [1/0], Turn on/off renumbering with Scotch |
MMG3D_IPARAM_anisosize | [1/0], Turn on/off anisotropic metric creation when no metric is provided |
MMG3D_IPARAM_octree | [n], Max number of vertices per PROctree cell (DELAUNAY) |
MMG3D_IPARAM_nosizreq | [0/1], Allow/avoid overwriting of sizes at required vertices (advanced usage) |
MMG3D_IPARAM_isoref | [0/n], Isosurface boundary material reference |
MMG3D_DPARAM_angleDetection | [val], Value for angle detection (degrees) |
MMG3D_DPARAM_hmin | [val], Minimal edge length |
MMG3D_DPARAM_hmax | [val], Maximal edge length |
MMG3D_DPARAM_hsiz | [val], Constant edge length |
MMG3D_DPARAM_hausd | [val], Global Hausdorff distance (on all boundaries in the mesh) |
MMG3D_DPARAM_hgrad | [val], Gradation |
MMG3D_DPARAM_hgradreq | [val], Gradation on required entites (advanced usage) |
MMG3D_DPARAM_ls | [val], Function value where the level set is to be discretized |
MMG3D_DPARAM_xreg | [val], Relaxation parameter for boundary regularization (0<val<1) |
MMG3D_DPARAM_rmc | [-1/val], Remove small disconnected components in level-set mode |
MMG3D_PARAM_size | [n], Number of parameters |
Definition at line 143 of file libmmg3d.h.
LIBMMG3D_EXPORT int MMG3D_Add_tetrahedron | ( | MMG5_pMesh | mesh, |
MMG5_int | v0, | ||
MMG5_int | v1, | ||
MMG5_int | v2, | ||
MMG5_int | v3, | ||
MMG5_int | ref | ||
) |
Add a tetrahedron to the mesh.
mesh | pointer to the mesh structure. |
v0 | first vertex of tetrahedron. |
v1 | second vertex of tetrahedron. |
v2 | third vertex of tetrahedron. |
v3 | fourth vertex of tetrahedron. |
ref | tetrahedron reference. |
This function adds a tetrahedron with vertices v0, v1, v2, v3 and reference ref at the first available position of the mesh.
SUBROUTINE MMG3D_ADD_TETRAHEDRON(mesh,v0,v1,v2,v3,ref,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: v0,v1,v2,v3,ref
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2007 of file API_functions_3d.c.
LIBMMG3D_EXPORT MMG5_int MMG3D_Add_vertex | ( | MMG5_pMesh | mesh, |
double | c0, | ||
double | c1, | ||
double | c2, | ||
MMG5_int | ref | ||
) |
Add a vertex to the mesh.
mesh | pointer to the mesh structure. |
c0 | x coor of the new vertex |
c1 | y coor of the new vertex |
c2 | z coor of the new vertex |
ref | vertex reference. |
This function adds a vertex with coordinates c0 c1 c2 and reference ref at the first available position of the mesh.
SUBROUTINE MMG3D_ADD_VERTEX(mesh,c0,c1,c2,ref,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
REAL(KIND=8), INTENT(IN) :: c0,c1,c2
INTEGER(MMG5F_INT), INTENT(IN) :: ref
INTEGER(MMG5F_INT), INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2081 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Chk_meshData | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
Check if the number of given entities match with mesh and sol size.
mesh | pointer to the mesh structure. |
met | pointer to the sol structure. |
Check if the number of given entities match with mesh and sol size (not mandatory) and check mesh datas.
SUBROUTINE MMG3D_CHK_MESHDATA(mesh,met,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,met
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1883 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Clean_isoSurf | ( | MMG5_pMesh | mesh | ) |
Clean data (triangles and edges) linked to isosurface.
mesh | pointer to the mesh structure |
SUBROUTINE MMG3D_CLEAN_ISOSURF(mesh,retval)
MMG5_DATA_PTR_T, INTENT(IN) :: mesh
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Step 1: a. deletion of triangles that belong to isosurf
Step 2: deletion of edges that belong to isosurf
Definition at line 1777 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_Compute_eigenv | ( | double | m[6], |
double | lambda[3], | ||
double | vp[3][3] | ||
) |
Compute the real eigenvalues and eigenvectors of a symmetric matrix.
m | upper part of a symmetric matrix diagonalizable in |R |
lambda | array of the metric eigenvalues |
vp | array of the metric eigenvectors |
Compute the real eigenvalues and eigenvectors of a symmetric matrix m whose upper part is provided (m11, m12, m13, m22, m23, m33 in this order).
lambda[0] is the eigenvalue associated to the eigenvector ( v[0][0], v[0,1], v[0,2] ) in C and to the eigenvector v(1,:) in fortran
lambda[1] is the eigenvalue associated to the eigenvector ( v[1][0], v[1,1], v[1,2] ) in C and to the eigenvector v(2,:) in fortran
lambda[2] is the eigenvalue associated to the eigenvector ( v[2][0], v[2,1], v[2,2] ) in C and to the eigenvector v(3,:) in fortran
SUBROUTINE MMG3D_COMPUTE_EIGENV(m,lambda,vp,retval)
REAL(KIND=8), INTENT(IN) :: m(*)
REAL(KIND=8), INTENT(OUT) :: lambda(*),vp(*)
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1744 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_defaultValues | ( | MMG5_pMesh | mesh | ) |
Print the default parameters values.
Tools for the library
mesh | pointer to the mesh structure. |
SUBROUTINE MMG3D_DEFAULTVALUES(mesh,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 205 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT void MMG3D_destockOptions | ( | MMG5_pMesh | mesh, |
MMG5_Info * | info | ||
) |
Recover the info structure stored in the mesh structure.
mesh | pointer to the mesh structure. |
info | pointer to the info structure. |
SUBROUTINE MMG3D_DESTOCKOPTIONS(mesh,info)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,info
END SUBROUTINE
Definition at line 1190 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_Free_all | ( | const int | starter, |
... | |||
) |
Deallocations before return.
starter | dummy argument used to initialize the variadic argument list. |
... | variadic arguments that depend on the library function that you have call. |
For the MMG3D_mmg3dlib function, you need to call the MMG3D_Init_mesh function with the following arguments : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet,&your_metric,MMG5_ARG_end).
For the MMG3D_mmg3dls function, you need to call the MMG3D_Init_mesh function with the following arguments : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppLs, &your_level_set,MMG5_ARG_end).
For the MMG3D_mmg3dmov function, you must call : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet,&empty_metric,MMG5_ARG_ppDisp, &your_displacement, MMG5_ARG_end).
Definition at line 2547 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Free_allSols | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol | ||
) |
Deallocate an array of solution fields.
mesh | pointer to the mesh structure. |
sol | pointer to an array of solution structure (that stores solution fields). |
SUBROUTINE MMG3D_Free_allSols(mesh,sol,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2542 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Free_names | ( | const int | starter, |
... | |||
) |
Structure deallocations before return.
starter | dummy argument used to initialize the variadic argument list. |
... | variadic arguments that depend on the library function that you have call. |
For the MMG3D_mmg3dlib function, you need to call the MMG3D_Init_mesh function with the following arguments : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet,&your_metric,MMG5_ARG_end).
For the MMG3D_mmg3dls function, you need to call the MMG3D_Init_mesh function with the following arguments : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppLs, &your_level_set,MMG5_ARG_end).
For the MMG3D_mmg3dmov function, you must call : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet,&empty_metric,MMG5_ARG_ppDisp, &your_displacement, MMG5_ARG_end).
Definition at line 2575 of file API_functions_3d.c.
LIBMMG3D_EXPORT void MMG3D_Free_solutions | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol | ||
) |
Free the solution structure of a given mesh.
mesh | pointer to the mesh structure |
sol | pointer to the solution structure |
SUBROUTINE MMG3D_FREE_SOLUTIONS(mesh,sol)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
END SUBROUTINE
Definition at line 1750 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_Free_structures | ( | const int | starter, |
... | |||
) |
Structure deallocations before return.
starter | dummy argument used to initialize the variadic argument list. |
... | variadic arguments that depend on the library function that you have call. |
For the MMG3D_mmg3dlib function, you need to call the MMG3D_Init_mesh function with the following arguments : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet,&your_metric,MMG5_ARG_end).
For the MMG3D_mmg3dls function, you need to call the MMG3D_Init_mesh function with the following arguments : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppLs, &your_level_set,MMG5_ARG_end).
For the MMG3D_mmg3dmov function, you must call : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet,&empty_metric,MMG5_ARG_ppDisp, &your_displacement, MMG5_ARG_end).
Definition at line 2561 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_adjaTet | ( | MMG5_pMesh | mesh, |
MMG5_int | kel, | ||
MMG5_int | listet[4] | ||
) |
Return adjacent elements of a tetrahedron.
Utils
mesh | pointer to the mesh structure. |
kel | tetrahedron index. |
listet | pointer to the array of the 4 tetra adjacent to kel. (the index is 0 if there is no adjacent) |
Find the indices of the 4 adjacent elements of tetrahedron kel. \(listet[i] = 0\) if the \(i^{th}\) face has no adjacent element (so we are on a boundary face).
SUBROUTINE MMG3D_GET_ADJATET(mesh,kel,listet,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN) :: kel
INTEGER(MMG5F_INT), DIMENSION(4), INTENT(OUT) :: listet
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 148 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_Get_edge | ( | MMG5_pMesh | mesh, |
MMG5_int * | e0, | ||
MMG5_int * | e1, | ||
MMG5_int * | ref, | ||
int * | isRidge, | ||
int * | isRequired | ||
) |
Get the vertices and reference of the next edge in the mesh.
mesh | pointer to the mesh structure. |
e0 | pointer to the first extremity of the edge. |
e1 | pointer to the second extremity of the edge. |
ref | pointer to the edge reference. |
isRidge | pointer to the flag saying if the edge is ridge. |
isRequired | pointer to the flag saying if the edge is required. |
This function retrieves the extremities e0, e1 and reference ref of next edge of mesh. It is meant to be called in a loop over all edges. When it has been called as many times as there are edges in the mesh, the internal edge counter will be reset.
SUBROUTINE MMG3D_GET_EDGE(mesh,e0,e1,ref,isRidge,isRequired,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(OUT) :: e0,e1
INTEGER(MMG5F_INT) :: ref
INTEGER :: isRidge,isRequired
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1130 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_edges | ( | MMG5_pMesh | mesh, |
MMG5_int * | edges, | ||
MMG5_int * | refs, | ||
int * | areRidges, | ||
int * | areRequired | ||
) |
Get the vertices and references of all edges in a mesh.
mesh | pointer to the mesh structure. |
edges | pointer to the array of edges. The vertices of the \(i^{th}\) edge are stored in edges[(i-1)*2] and edges[(i-1)*2+1]. |
refs | edges references. refs[i-1] is the ref of the \(i^{th}\) edge. |
areRidges | 1 if the edge is a ridge, 0 otherwise. |
areRequired | 1 if the edge is required, 0 otherwise. |
SUBROUTINE MMG3D_GET_EDGES(mesh,edges,refs,areRidges,areRequired,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN) :: edges(*)
INTEGER(MMG5F_INT), INTENT(OUT):: refs(*)
INTEGER, INTENT(OUT) :: areRequired(*),areRidges(*)
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1193 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_iparameter | ( | MMG5_pMesh | mesh, |
MMG5_int | iparam | ||
) |
Get the value of an integer parameter of the remesher.
mesh | pointer to the mesh structure. |
iparam | integer parameter to get (see MMG3D_Param for a list of parameters that can be set). |
Get the value of integer parameter iparam.
SUBROUTINE MMG3D_GET_IPARAMETER(mesh,iparam,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: iparam
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2297 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_ithSol_inSolsAtVertices | ( | MMG5_pSol | sol, |
int | i, | ||
double * | s, | ||
MMG5_int | pos | ||
) |
Get one out of several solutions at a specific vertex.
sol | pointer to the array of solutions |
i | position of the solution field that we want to get. |
s | solution(s) at mesh vertex pos. The required size of this array depends on the type of solution. |
pos | index of the vertex on which we get the solution. |
Get values of the ith field of the solution array at vertex pos. (pos from 1 to nb_vertices included and i from 1 to nb_sols). The type of solution is inferred from sol.
SUBROUTINE MMG3D_GET_ITHSOL_INSOLSATVERTICES(sol,i,s,pos,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: sol
INTEGER, INTENT(IN) :: i
INTEGER(MMG5F_INT), INTENT(IN) :: pos
REAL(KIND=8), DIMENSION(*),INTENT(OUT) :: s
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1781 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_ithSols_inSolsAtVertices | ( | MMG5_pSol | sol, |
int | i, | ||
double * | s | ||
) |
Get one out of several solutions at all vertices in the mesh.
sol | pointer to the array of solutions |
i | position of the solution field that we want to get. |
s | array of the solutions at mesh vertices. The solution at vertex k is given by s[k-1] for a scalar sol, s[3*(k-1)]@3 for a vectorial solution and s[6*(k-1)]@6 for a tensor solution. |
This function retrieves the values of the solution at the ith field of the solution array (i from 1 to nb_sols).
SUBROUTINE MMG3D_GET_ITHSOLS_INSOLSATVERTICES(sol,i,s,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: sol
INTEGER, INTENT(IN) :: i
REAL(KIND=8), DIMENSION(*),INTENT(OUT) :: s
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1839 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_meshSize | ( | MMG5_pMesh | mesh, |
MMG5_int * | np, | ||
MMG5_int * | ne, | ||
MMG5_int * | nprism, | ||
MMG5_int * | nt, | ||
MMG5_int * | nquad, | ||
MMG5_int * | na | ||
) |
Get the number of vertices, tetrahedra, prisms, triangles, quadrilaterals and edges of the mesh.
recover data
mesh | pointer to the mesh structure. |
np | pointer to the number of vertices. |
ne | pointer to the number of tetrahedra. |
nprism | pointer to the number of prisms. |
nt | pointer to the number of triangles. |
nquad | pointer to the number of quads. |
na | pointer to the number of edges. |
SUBROUTINE MMG3D_GET_MESHSIZE(mesh,np,ne,nprism,nt,nquad,na,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT) :: np,ne,nprism,nt,nquad,na
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 343 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_nonBdyTriangle | ( | MMG5_pMesh | mesh, |
MMG5_int * | v0, | ||
MMG5_int * | v1, | ||
MMG5_int * | v2, | ||
MMG5_int * | ref, | ||
MMG5_int | idx | ||
) |
Get vertices and reference of a non-boundary triangle.
mesh | pointer to the mesh structure. |
v0 | pointer to the firts vertex of the triangle |
v1 | pointer to the second vertex of the triangle. |
v2 | pointer to the third vertex of the triangle. |
ref | pointer to the triangle reference. |
idx | index of the non-boundary triangle to get (between 1 and nb_tria) |
Get vertices and reference ref of the idx^th non-boundary triangle (for DG methods for example). A tria is boundary if it is located at the interface of 2 domains with different references or if it belongs to one tetra only.
SUBROUTINE MMG3D_GET_NONBDYTRIANGLE(mesh,v0,v1,v2,ref,idx,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(OUT):: v0,v1,v2
INTEGER(MMG5F_INT) :: ref
INTEGER(MMG5F_INT), INTENT(IN) :: idx
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1131 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_Get_normalAtVertex | ( | MMG5_pMesh | mesh, |
MMG5_int | k, | ||
double * | n0, | ||
double * | n1, | ||
double * | n2 | ||
) |
Get the normal orientation at a single mesh vertex.
mesh | pointer to the mesh structure. |
k | vertex index |
n0 | x componant of the normal at vertex k. |
n1 | y componant of the normal at vertex k. |
n2 | z componant of the normal at vertex k. |
This function retrieves the normal (n0,n1,n2) at vertex k.
SUBROUTINE MMG3D_GET_NORMALATVERTEX(mesh,k,n0,n1,n2,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
REAL(KIND=8) :: n0,n1,n2
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1392 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_numberOfNonBdyTriangles | ( | MMG5_pMesh | mesh, |
MMG5_int * | nb_tria | ||
) |
Get the number of non-boundary triangles.
mesh | pointer to the mesh structure. |
nb_tria | pointer to the number of non-boundary triangles. |
Get the number of non-boundary triangles (for DG methods for example). A triangle is boundary if it is located at the interface of 2 domains with different references or if it belongs to one tetra only. Append these triangles to the list of triangles.
SUBROUTINE MMG3D_GET_NUMBEROFNONBDYTRIANGLESS(mesh,nb_tria,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(OUT) :: nb_tria
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
First step: Mesh analysis to detect the tetra/prisms boundary faces and to store the info in the xtetra/xprisms structures
Second step: Count the number of non boundary faces
Third step: Append the non boundary edges to the boundary edges array
Definition at line 916 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_Get_prism | ( | MMG5_pMesh | mesh, |
MMG5_int * | v0, | ||
MMG5_int * | v1, | ||
MMG5_int * | v2, | ||
MMG5_int * | v3, | ||
MMG5_int * | v4, | ||
MMG5_int * | v5, | ||
MMG5_int * | ref, | ||
int * | isRequired | ||
) |
Get the vertices and reference of the next prism in the mesh.
mesh | pointer to the mesh structure. |
v0 | pointer to the first vertex of prism. |
v1 | pointer to the second vertex of prism. |
v2 | pointer to the third vertex of prism. |
v3 | pointer to the fourth vertex of prism. |
v4 | pointer to the fifth vertex of prism. |
v5 | pointer to the sixth vertex of prism. |
ref | pointer to the prism reference. |
isRequired | pointer to the flag saying if prism is required. |
This function retrieves the vertices v0, v1, v2, v3, v4, v5 and reference ref of the next prism of mesh. It is meant to be called in a loop over all prisms. When it has been called as many times as there are prisms, the internal loop counter will be reset.
SUBROUTINE MMG3D_GET_PRISM(mesh,v0,v1,v2,v3,v4,v5,ref,isRequired,&
retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(OUT) :: v0,v1,v2,v3,v4,v5
INTEGER(MMG5F_INT) :: ref
INTEGER :: isRequired
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 757 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_prisms | ( | MMG5_pMesh | mesh, |
MMG5_int * | prisms, | ||
MMG5_int * | refs, | ||
int * | areRequired | ||
) |
Get the vertices and references of all prisms in the mesh.
mesh | pointer to the mesh structure. |
prisms | pointer to the array where the vertices are to be stored Vertices of the \(i^{th}\) prism are stored in prisms[(i-1)*6] to prisms[(i-1)*6+5]. |
refs | pointer to the array of the prism references. The reference of the \(i^{th}\) prism is stored in refs[i-1]. |
areRequired | pointer to the array of the flags saying if the prisms are required. areRequired[i-1]=1 if the \(i^{th}\) prism is required. |
! SUBROUTINE MMG3D_GET_PRISMS(mesh,prisms,refs,areRequired,&
! retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! INTEGER(MMG5F_INT), DIMENSION(*),INTENT(OUT) :: prisms
! INTEGER(MMG5F_INT), DIMENSION(*) :: refs
! INTEGER, DIMENSION(*) :: areRequired
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 833 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_quadrilateral | ( | MMG5_pMesh | mesh, |
MMG5_int * | v0, | ||
MMG5_int * | v1, | ||
MMG5_int * | v2, | ||
MMG5_int * | v3, | ||
MMG5_int * | ref, | ||
int * | isRequired | ||
) |
Get the vertices and reference of the next quadrilateral of the mesh.
mesh | pointer to the mesh structure. |
v0 | pointer to the first vertex of quadrilateral. |
v1 | pointer to the second vertex of quadrilateral. |
v2 | pointer to the third vertex of quadrilateral. |
v3 | pointer to the fourth vertex of quadrilateral. |
ref | pointer to the quadrilateral reference. |
isRequired | pointer to the flag saying if quadrilateral is required. |
Get the vertices v0,v1,v2,v3 and reference ref of the next quadrilateral of mesh. This function is meant to be called in a loop over all quadrilaterals. When it has been called as many times as there are quadrilaterals, the internal loop counter will be reset.
SUBROUTINE MMG3D_GET_QUADRILATERAL(mesh,v0,v1,v2,v3,ref,isRequired,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(OUT) :: v0,v1,v2,v3,ref
INTEGER :: isRequired
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1009 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_quadrilaterals | ( | MMG5_pMesh | mesh, |
MMG5_int * | quads, | ||
MMG5_int * | refs, | ||
int * | areRequired | ||
) |
Get the vertices and references of all quadrilaterals of the mesh.
mesh | pointer to the mesh structure. |
quads | pointer to the array where the vertices will be stored. Vertices of the \(i^{th}\) quadrilateral are stored in quads[(i-1)*4] to quads[(i-1)*4+3]. |
refs | pointer to the array of the quadrilaterals references. refs[i-1] is the ref of the \(i^{th}\) quadrilateral. |
areRequired | pointer to array of the flags saying if quadrilaterals are required. areRequired[i-1]=1 if the \(i^{th}\) quadrilateral is required. |
! SUBROUTINE MMG3D_GET_QUADRILATERALS(mesh,quads,refs,areRequired,retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! INTEGER(MMG5F_INT), DIMENSION(*),INTENT(OUT) :: quads
! INTEGER(MMG5F_INT), DIMENSION(*) :: refs
! INTEGER, DIMENSION(*) :: areRequired
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 1072 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_scalarSol | ( | MMG5_pSol | met, |
double * | s | ||
) |
Get the next element of a scalar solution structure defined at vertices.
met | pointer to the sol structure. |
s | pointer to the scalar solution value. |
This function retrieves the solution s of the next vertex of mesh. It is meant to be called in a loop over all vertices. When it has been called as many times as there are vertices in the mesh, the internal loop counter will be reset.
SUBROUTINE MMG3D_GET_SCALARSOL(met,s,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8), INTENT(OUT) :: s
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1468 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_scalarSols | ( | MMG5_pSol | met, |
double * | s | ||
) |
Get all elements of a scalar solution structure defined at vertices.
met | pointer to the sol structure. |
s | array of the scalar solutions at mesh vertices. The solution at vertex i will be stored in s[i-1]. |
SUBROUTINE MMG3D_GET_SCALARSOLS(met,s,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8), DIMENSION(*),INTENT(OUT) :: s
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1515 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_solsAtVerticesSize | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol, | ||
int * | nsols, | ||
MMG5_int * | nentities, | ||
int * | typSol | ||
) |
Get the number of elements, type, and dimensions of several solutions defined on vertices.
mesh | pointer to the mesh structure. |
sol | pointer to an array of sol structure. |
nsols | pointer to the number of solutions per entity. |
nentities | pointer to the number of solutions. |
typSol | array of size MMG5_NSOLS_MAX to store type of each solution (scalar, vectorial, ..., see MMG5_type for possible values). |
SUBROUTINE MMG3D_GET_SOLSATVERTICESSIZE(mesh,sol,nsols,nentities,typSol,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER :: nsols
INTEGER(MMG5F_INT) :: nentities
INTEGER :: typSol(*)
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 314 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_solSize | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
int * | typEntity, | ||
MMG5_int * | np, | ||
int * | typSol | ||
) |
Get the number of elements, dimension, and type of a solution structure.
mesh | pointer to the mesh structure. |
sol | pointer to the sol structure. |
typEntity | pointer to the type of entities to which solutions are applied (see MMG5_entities for possible values) |
np | pointer to the number of solutions. |
typSol | pointer to the type of the solutions (scalar, vectorial, ..., see MMG5_type for possible values) |
SUBROUTINE MMG3D_GET_SOLSIZE(mesh,sol,typEntity,np,typSol,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER :: typEntity,typSol
INTEGER(MMG5F_INT) :: np
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 290 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_tensorSol | ( | MMG5_pSol | met, |
double * | m11, | ||
double * | m12, | ||
double * | m13, | ||
double * | m22, | ||
double * | m23, | ||
double * | m33 | ||
) |
Get the next element of a tensor solution structure.
met | pointer to the sol structure. |
m11 | pointer to the position (1,1) in the solution tensor. |
m12 | pointer to the position (1,2) in the solution tensor. |
m13 | pointer to the position (1,3) in the solution tensor. |
m22 | pointer to the position (2,2) in the solution tensor. |
m23 | pointer to the position (2,3) in the solution tensor. |
m33 | pointer to the position (3,3) in the solution tensor. |
This function retrieves the next element \((m_{11},m_{12},m_{13},m_{22},m_{23},m_{33})\) of a tensor-valued solution field. It is meant to be called in a loop over all vertices. When it has been called as many times as there are elements in the solution, the internal loop counter will be reset.
SUBROUTINE MMG3D_GET_TENSORSOL(met,m11,m12,m13,m22,m23,m33,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8), INTENT(OUT) :: m11,m12,m13,m22,m23,m33
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1673 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_tensorSols | ( | MMG5_pSol | met, |
double * | sols | ||
) |
Get all elements of a tensor solution field.
met | pointer to the sol structure. |
sols | array of the solutions at mesh vertices. The solution at vertex i will be stored in sols[6*(i-1)] to sols[6*(i-1)+5]. |
SUBROUTINE MMG3D_GET_TENSORSOLS(met,sols,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8), DIMENSION(*), INTENT(OUT) :: sols
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1735 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_tetFromTria | ( | MMG5_pMesh | mesh, |
MMG5_int | ktri, | ||
MMG5_int * | ktet, | ||
int * | iface | ||
) |
Get a tetrahedron given one of its triangles and the index by which it refers to this triangle (DEPRECATED).
mesh | pointer to the mesh structure. |
ktri | index of the boundary triangle. |
ktet | pointer to an integer that will contains the tetra index. |
iface | pointer to the triangle in ktet. |
Fill ktet by the index of a tetrahedron to which belongs a boundary triangle and iface by the index of the triangle in the tetra.
SUBROUTINE MMG3D_GET_TETFROMTRIA(mesh,ktri,ktet,iface,retval)
MMG5_DATA_PTR_T, INTENT(IN) :: mesh
INTEGER(MMG5F_INT), INTENT(IN) :: ktri
INTEGER(MMG5F_INT), INTENT(OUT) :: ktet
INTEGER, INTENT(OUT) :: iface
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1323 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_Get_tetrahedra | ( | MMG5_pMesh | mesh, |
MMG5_int * | tetra, | ||
MMG5_int * | refs, | ||
int * | areRequired | ||
) |
Get the vertices and reference of all tetrahedra in the mesh.
mesh | pointer to the mesh structure. |
tetra | pointer to the array where the vertices are to be stored. Vertices of the \(i^{th}\) tetra are stored in tetra[(i-1)*4] to tetra[(i-1)*4+3] |
refs | pointer to the array of the tetrahedron references. References of the \(i^{th}\) tetra is stored in refs[i-1]. |
areRequired | pointer to the array of the flags saying if the tetrahedra are required. areRequired[i-1]=1 if the \(i^{th}\) tetrahedron is required. |
! SUBROUTINE MMG3D_GET_TETRAHEDRA(mesh,tetra,refs,areRequired,&
! retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! INTEGER(MMG5F_INT), DIMENSION(*),INTENT(OUT) :: tetra
! INTEGER(MMG5F_INT), DIMENSION(*) :: refs
! INTEGER, DIMENSION(*) :: areRequired
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 693 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_tetrahedron | ( | MMG5_pMesh | mesh, |
MMG5_int * | v0, | ||
MMG5_int * | v1, | ||
MMG5_int * | v2, | ||
MMG5_int * | v3, | ||
MMG5_int * | ref, | ||
int * | isRequired | ||
) |
Get the vertices and reference of the next tetrahedron in the mesh.
mesh | pointer to the mesh structure. |
v0 | pointer to the first vertex of tetrahedron. |
v1 | pointer to the second vertex of tetrahedron. |
v2 | pointer to the third vertex of tetrahedron. |
v3 | pointer to the fourth vertex of tetrahedron. |
ref | pointer to the tetrahedron reference. |
isRequired | pointer to the flag saying if tetrahedron is required. |
This function retrieves the vertices v0, v1, v2, v3 and reference ref of the next tetrahedron of mesh. It is meant to be called in a loop over all tetrahedra. When it has been called as many times as there are tetrahedra, the internal loop counter will be reset.
SUBROUTINE MMG3D_GET_TETRAHEDRON(mesh,v0,v1,v2,v3,ref,isRequired,&
retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(OUT):: v0,v1,v2,v3
INTEGER(MMG5F_INT) :: ref
INTEGER :: isRequired
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 593 of file API_functions_3d.c.
LIBMMG3D_EXPORT double MMG3D_Get_tetrahedronQuality | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
MMG5_int | k | ||
) |
Get the quality measure of a single tetrahedron in the mesh.
mesh | pointer to the mesh structure. |
met | pointer to the metric structure (may be NULL for an isotropic metric). |
k | index of the tetrahedron for which we want to get the quality (from 1 to the number of tetrahedra included) |
This function returns the quality measure of tetrahedron k. Quality values range from 0 (degenerate) to 1 (best attainable). The function returns 0 if the tetrahedron is flat or has a negative volume, and also if k is out of range. In the latter case it will also print a diagnostic message to standard output.
SUBROUTINE MMG3D_GET_TETRAHEDRONQUALITY(mesh,met,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,met
INTEGER(MMG5F_INT), INTENT(IN):: k
REAL(KIND=8), INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1402 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_tetsFromTria | ( | MMG5_pMesh | mesh, |
MMG5_int | ktri, | ||
MMG5_int | ktet[2], | ||
int | iface[2] | ||
) |
Get two tetrahedra given a triangle and face indices.
mesh | pointer to the mesh structure. |
ktri | index of the boundary triangle. |
ktet | array of size 2 that will contain the indices of the tetra (filled by the function). |
iface | pointer to an array of size 2 that will contains the indices of the faces of the tetras ktet[i] that corresponds to the boundary tria ktri. |
Fill ktet by the indices of the tetrahedra that have a boundary triangle and iface by the indices of the faces of the tetras that correspond to the triangle. Fill ktet[1] and iface[1] by 0 if the triangle belongs to 1 tetrahedron only.
SUBROUTINE MMG3D_GET_TETSFROMTRIA(mesh,ktri,ktet,iface,retval)
MMG5_DATA_PTR_T, INTENT(IN) :: mesh
INTEGER(MMG5F_INT), INTENT(IN) :: ktri
INTEGER(MMG5F_INT), DIMENSION(2), INTENT(OUT):: ktet
INTEGER, DIMENSION(2), INTENT(OUT) :: iface
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1342 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_Get_triangle | ( | MMG5_pMesh | mesh, |
MMG5_int * | v0, | ||
MMG5_int * | v1, | ||
MMG5_int * | v2, | ||
MMG5_int * | ref, | ||
int * | isRequired | ||
) |
Get the vertices and reference of the next triangle in the mesh.
mesh | pointer to the mesh structure. |
v0 | pointer to the first vertex of triangle. |
v1 | pointer to the second vertex of triangle. |
v2 | pointer to the third vertex of triangle. |
ref | pointer to the triangle reference. |
isRequired | pointer to the flag saying if triangle is required. |
This function retrieves the vertices v0, v1, v2, and reference ref of the next triangle of mesh. It is meant to be called in a loop over all triangles. When it has been called as many times as there are triangles, the internal loop counter will be reset.
SUBROUTINE MMG3D_GET_TRIANGLE(mesh,v0,v1,v2,ref,isRequired,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(OUT) :: v0,v1,v2
INTEGER(MMG5F_INT) :: ref
INTEGER :: isRequired
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 896 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_triangles | ( | MMG5_pMesh | mesh, |
MMG5_int * | tria, | ||
MMG5_int * | refs, | ||
int * | areRequired | ||
) |
Get the vertices and references of all triangles in the mesh.
mesh | pointer to the mesh structure. |
tria | pointer to the array where the vertices are to be stored Vertices of the \(i^{th}\) triangle are stored in tria[(i-1)*3] to tria[(i-1)*3+2]. |
refs | pointer to the array where the references are to be stored. refs[i-1] is the reference of the \(i^{th}\) triangle. |
areRequired | pointer to array of the flags saying if triangles are required. areRequired[i-1]=1 if the \(i^{th}\) tria is required. |
! SUBROUTINE MMG3D_GET_TRIANGLES(mesh,tria,refs,areRequired,retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! INTEGER(MMG5F_INT), DIMENSION(*),INTENT(OUT) :: tria
! INTEGER(MMG5F_INT), DIMENSION(*) :: refs
! INTEGER, DIMENSION(*) :: areRequired
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 956 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_vectorSol | ( | MMG5_pSol | met, |
double * | vx, | ||
double * | vy, | ||
double * | vz | ||
) |
Get the next element of a vector solution structure.
met | pointer to the sol structure. |
vx | x value of the vectorial solution. |
vy | y value of the vectorial solution. |
vz | z value of the vectorial solution. |
This function retrieves the next vector-valued element \((v_x,v_y,vz)\) of the solution. It is meant to be called in a loop over all elements. When it has been called as many times as there are elements in the solution, the internal loop counter will be reset.
SUBROUTINE MMG3D_GET_VECTORSOL(met,vx,vy,vz,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8), INTENT(OUT) :: vx,vy,vz
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1561 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_vectorSols | ( | MMG5_pSol | met, |
double * | sols | ||
) |
Get all elements of a vector solution structure.
met | pointer to the sol structure. |
sols | array of the solutions at mesh vertices. sols[3*(i-1)]@3 is the solution at vertex i. |
Get vectorial solutions at mesh vertices
SUBROUTINE MMG3D_GET_VECTORSOLS(met,sols,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8), DIMENSION(*),INTENT(OUT) :: sols
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1616 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_vertex | ( | MMG5_pMesh | mesh, |
double * | c0, | ||
double * | c1, | ||
double * | c2, | ||
MMG5_int * | ref, | ||
int * | isCorner, | ||
int * | isRequired | ||
) |
Get the coordinates c0, c1,c2 and reference ref of the next vertex of mesh.
mesh | pointer to the mesh structure. |
c0 | pointer to the coordinate of the vertex along the first dimension. |
c1 | pointer to the coordinate of the vertex along the second dimension. |
c2 | pointer to the coordinate of the vertex along the third dimension. |
ref | pointer to the vertex reference. |
isCorner | pointer to the flag saying if vertex is corner. |
isRequired | pointer to the flag saying if vertex is required. |
This function retrieves the coordinates c0, c1,c2 and reference ref of the next vertex of a mesh. It is meant to be used in a loop over all vertices. When this function has been called as many times as there are vertices, the internal loop counter will be reset. To obtain data for a specific vertex, the MMG3D_GetByIdx_vertex function can be used instead.
SUBROUTINE MMG3D_GET_VERTEX(mesh,c0,c1,c2,ref,isCorner,isRequired, &
retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
REAL(KIND=8), INTENT(OUT) :: c0,c1,c2
INTEGER(MMG5F_INT) :: ref
INTEGER :: isCorner,isRequired
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 398 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Get_vertices | ( | MMG5_pMesh | mesh, |
double * | vertices, | ||
MMG5_int * | refs, | ||
int * | areCorners, | ||
int * | areRequired | ||
) |
Get the coordinates and references of all vertices in the mesh.
mesh | pointer to the mesh structure. |
vertices | pointer to the array of coordinates. The coordinates of the \(i^{th}\) vertex are stored in vertices[(i-1)*3]@3. |
refs | pointer to the array of the vertex references. The ref of the \(i^th\) vertex is stored in refs[i-1]. |
areCorners | pointer to the array of the flags saying if vertices are corners. areCorners[i-1]=1 if the \(i^{th}\) vertex is corner. |
areRequired | pointer to the array of flags saying if vertices are required. areRequired[i-1]=1 if the \(i^{th}\) vertex is required. |
! SUBROUTINE MMG3D_GET_VERTICES(mesh,vertices,refs,areCorners,&
! areRequired,retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! REAL(KIND=8),DIMENSION(*), INTENT(OUT) :: vertices
! INTEGER(MMG5F_INT), DIMENSION(*) :: refs
! INTEGER, DIMENSION(*) :: areCorners,areRequired
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 485 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_GetByIdx_vertex | ( | MMG5_pMesh | mesh, |
double * | c0, | ||
double * | c1, | ||
double * | c2, | ||
MMG5_int * | ref, | ||
int * | isCorner, | ||
int * | isRequired, | ||
MMG5_int | idx | ||
) |
Get the coordinates and reference of a specific vertex in the mesh.
mesh | pointer to the mesh structure. |
c0 | pointer to the coordinate of the vertex along the first dimension. |
c1 | pointer to the coordinate of the vertex along the second dimension. |
c2 | pointer to the coordinate of the vertex along the third dimension. |
ref | pointer to the vertex reference. |
isCorner | pointer to the flag saying if vertex is corner. |
isRequired | pointer to the flag saying if vertex is required. |
idx | index of vertex to get. |
Get coordinates c0, c1, c2 and reference ref of vertex idx of mesh.
SUBROUTINE MMG3D_GETBYIDX_VERTEX(mesh,c0,c1,c2,ref,isCorner,isRequired,idx,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
REAL(KIND=8), INTENT(OUT) :: c0,c1,c2
INTEGER(MMG5F_INT) :: ref,idx
INTEGER :: isCorner,isRequired
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 425 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_hashTetra | ( | MMG5_pMesh | mesh, |
int | pack | ||
) |
Create array of adjacency.
mesh | pointer to the mesh structure. |
pack | we pack the mesh at function begining if \(pack=1\). |
Create array of adjacency. Set pack variable to 0 for a compact mesh and to 1 for a mesh that need to be packed.
SUBROUTINE MMG3D_HASHTETRA(mesh,pack,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh
INTEGER, INTENT(IN) :: pack
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
mesh | pointer to the mesh structure. |
pack | we pack the mesh at function begining if \(pack=1\). |
Create table of adjacency. Set pack variable to 0 for a compact mesh and to 1 for a mesh that need to be packed.
Definition at line 122 of file hash_3d.c.
LIBMMG3D_EXPORT void MMG3D_Init_fileNames | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol | ||
) |
Initialize file names to their default values.
mesh | pointer to the mesh structure. |
sol | pointer to the sol structure. |
This function initializes all file names to their default values.
SUBROUTINE MMG3D_INIT_FILENAMES(mesh,sol)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
END SUBROUTINE
Definition at line 58 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Init_mesh | ( | const int | starter, |
... | |||
) |
Initialize a mesh structure and optionally the associated solution and metric structures.
starter | dummy argument used to initialize the variadic argument list |
... | variadic arguments that depend on the library function that you want to call. |
For the MMG3D_mmg3dlib function, you need to call the MMG3D_Init_mesh function with the following arguments : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet MMG5_ARG_ppMet, &your_metric,MMG5_ARG_end).
For the MMG3D_mmg3dls function, you need to call the MMG3D_Init_mesh function with the following arguments : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppLs, &your_level_set,MMG5_ARG_end).
For the MMG3D_mmg3dmov function, you must call : MMG3D_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet,&empty_metric,MMG5_ARG_ppDisp, &your_displacement, MMG5_ARG_end).
Here, your_mesh is a MMG5_pMesh, your_metric your_level_set and your_displacement are MMG5_pSol.
This function allocates and initializes MMG structures. All structures of types MMG5_pMesh and MMG5_pSol that will be given as arguments to Mmg functions must be initialized with this function.
Definition at line 46 of file API_functions_3d.c.
LIBMMG3D_EXPORT void MMG3D_Init_parameters | ( | MMG5_pMesh | mesh | ) |
Initialize parameters to their default values.
mesh | pointer to the mesh structure. |
Initialization of the input parameters (stored in the Info structure).
SUBROUTINE MMG3D_INIT_PARAMETERS(mesh)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
END SUBROUTINE
Definition at line 87 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_loadAllSols | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol, | ||
const char * | filename | ||
) |
Load one or more solutions in a solution file in medit file format.
mesh | pointer to the mesh structure. |
sol | pointer to the solutions array |
filename | name of file. |
SUBROUTINE MMG3D_LOADALLSOLS(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Read the file header
Sol tab allocation
Definition at line 2216 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_loadGenericMesh | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
MMG5_pSol | sol, | ||
const char * | filename | ||
) |
Read mesh data in a format determined by the filename extension.
mesh | pointer to the mesh structure. |
met | pointer to the metric structure or the NULL pointer. |
sol | pointer to the level-set structure or the NULL pointer. |
filename | name of file. |
SUBROUTINE MMG3D_LOADGENERICMESH(mesh,met,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1190 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_loadMesh | ( | MMG5_pMesh | mesh, |
const char * | filename | ||
) |
Load a mesh (in .mesh/.mesb format) from file.
mesh | pointer to the mesh structure. |
filename | name of the file. |
Read mesh data.
SUBROUTINE MMG3D_LOADMESH(mesh,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
mesh | pointer to the mesh structure. |
filename | name of file. |
Read mesh data.
Definition at line 1049 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_loadMshMesh | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
const char * | filename | ||
) |
Load a mesh and possibly a solution in .msh format from file.
mesh | pointer to the mesh structure. |
sol | pointer to the solution structure. |
filename | name of file. |
This function reads a mesh and 0 or 1 data fields in MSH file format (.msh extension). We read only low-order vertices, edges, triangles, quadrangles, tetrahedra and prisms.
SUBROUTINE MMG3D_LOADMSHMESH(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1063 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_loadMshMesh_and_allData | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol, | ||
const char * | filename | ||
) |
Load a mesh and all data from a file in MSH format.
mesh | pointer to the mesh structure. |
sol | pointer to a list of solution structures. |
filename | name of file. |
Read mesh and a list of data in MSH file format (.msh extension). We read only low-order vertices, edges, tria, quadra, tetra and prisms.
SUBROUTINE MMG3D_LOADMSHMESH_AND_ALLDATA(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1132 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_loadSol | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
const char * | filename | ||
) |
Load a metric field (or other solution).
mesh | pointer to the mesh structure. |
met | pointer to the sol structure. |
filename | name of file. |
Load metric field. The solution file must contains only 1 solution: the metric
SUBROUTINE MMG3D_LOADSOL(mesh,met,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Read the file header
Definition at line 2143 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_loadVtkMesh | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
MMG5_pSol | sol, | ||
const char * | filename | ||
) |
Load a mesh and possibly a solution from a file in VTK format.
mesh | pointer to the mesh structure. |
met | pointer to the metric structure or the NULL pointer. |
sol | pointer to the level-set structure or the NULL pointer. |
filename | name of file. |
This function reads a mesh and 0 or 1 data fields in VTK file format (.vtu extension). We read only low-order vertices, edges, tria, quadra, tetra and prisms. Point and cell references must be stored in PointData or CellData whose names contain the "medit:ref" keyword.
SUBROUTINE MMG3D_LOADVTKMESH(mesh,met,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 153 of file inoutcpp_3d.cpp.
LIBMMG3D_EXPORT int MMG3D_loadVtkMesh_and_allData | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol, | ||
const char * | filename | ||
) |
Load a mesh and multiple solutions from a file in VTK format.
mesh | pointer to the mesh structure. |
sol | pointer to the solution structure. |
filename | name of file. |
Read mesh and a list of data in VTK file format (.vtu extension). We read only low-order vertices, edges, tria, quadra, tetra and prisms. Point and cell references must be stored in PointData or CellData whose names contains the "medit:ref" keyword.
SUBROUTINE MMG3D_LOADVTKMESH_AND_ALLDATA(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 196 of file inoutcpp_3d.cpp.
LIBMMG3D_EXPORT int MMG3D_loadVtuMesh | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
MMG5_pSol | sol, | ||
const char * | filename | ||
) |
Load a mesh and possibly a solution in VTU (VTK) format from file.
mesh | pointer to the mesh structure. |
met | pointer to the metric structure or the NULL pointer. |
sol | pointer to the level-set structure or the NULL pointer. |
filename | name of file. |
This function reads a mesh and 0 or 1 data field in VTU (VTK) file format (.vtu extension). We read only low-order vertices, edges, tria, quadra, tetra and prisms. Point and cell references must be stored in PointData or CellData whose names contain the "medit:ref" keyword.
SUBROUTINE MMG3D_LOADVTUMESH(mesh,met,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 74 of file inoutcpp_3d.cpp.
LIBMMG3D_EXPORT int MMG3D_loadVtuMesh_and_allData | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol, | ||
const char * | filename | ||
) |
Load a mesh and multiple solutions in VTU (VTK) format from file.
mesh | pointer to the mesh structure. |
sol | pointer to the solution structure. |
filename | name of file. |
This functionreads a mesh and a list of data in VTU file format (.vtu extension). We read only low-order vertices, edges, tria, quadra, tetra and prisms. Point and cell references must be stored in PointData or CellData whose names contains the "medit:ref" keyword.
SUBROUTINE MMG3D_LOADVTUMESH_AND_ALLDATA(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 117 of file inoutcpp_3d.cpp.
LIBMMG3D_EXPORT int MMG3D_mmg3dcheck | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
MMG5_pSol | sol, | ||
double | critmin, | ||
double | lmin, | ||
double | lmax, | ||
MMG5_int * | eltab, | ||
int8_t | metRidTyp | ||
) |
Search invalid elements (in term of quality or edge length) in a mesh.
Checks
mesh | pointer to the mesh structure. |
met | pointer to the sol structure (metric). |
sol | pointer to the sol structure (ls or displacement). |
critmin | minimum quality for elements. |
lmin | minimum edge length. |
lmax | maximum ede length. |
eltab | array of invalid elements. |
metRidTyp | Type of storage of ridges metrics: 0 for classic storage (before the MMG5_defsiz call), 1 for special storage (after this call). |
SUBROUTINE MMG3D_MMG3DCHECK(mesh,met,sol,critmin,lmin,lmax,eltab,&
metridtyp,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met,sol
REAL(KIND=8), INTENT(IN) :: critmin,lmin,lmax
INTEGER(MMG5F_INT),DIMENSION(*), INTENT(OUT) :: eltab
INTEGER, INTENT(IN) :: metridtyp
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Free topologic tables (adja, xpoint, xtetra) resulting from a previous run
Definition at line 1196 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_mmg3dlib | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
Main "program" for the mesh adaptation library.
mesh | pointer to the mesh structure. |
met | pointer to the sol (metric) structure. |
SUBROUTINE MMG3D_MMG3DLIB(mesh,met,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
In debug mode, check that all structures are allocated
Free topologic tables (adja, xpoint, xtetra) resulting from a previous run
Definition at line 975 of file libmmg3d.c.
LIBMMG3D_EXPORT int MMG3D_mmg3dls | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
MMG5_pSol | met | ||
) |
Main "program" for the level-set discretization library.
mesh | pointer to the mesh structure. |
sol | pointer to the sol (level-set) structure. |
met | pointer to a sol structure (metric), optional. |
Main program for the level-set discretization library. If a metric met is provided, use it to adapt the mesh.
SUBROUTINE MMG3D_MMG3DLS(mesh,sol,met,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
MMG5_DATA_PTR_T :: met
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
In debug mode, check that all structures are allocated
Free topologic tables (adja, xpoint, xtetra) resulting from a previous run
Definition at line 1192 of file libmmg3d.c.
LIBMMG3D_EXPORT int MMG3D_mmg3dmov | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
MMG5_pSol | disp | ||
) |
Main program for the rigid-body movement library.
mesh | pointer to the mesh structure. |
met | pointer to the sol (output metric) structure. |
disp | pointer to a sol (displacement for the lagrangian motion mode) structure. |
SUBROUTINE MMG3D_MMG3DMOV(mesh,met,disp,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met,disp
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
In debug mode, check that all structures are allocated
Free topologic tables (adja, xpoint, xtetra) resulting from a previous run
Definition at line 1475 of file libmmg3d.c.
LIBMMG3D_EXPORT int MMG3D_parsar | ( | int | argc, |
char * | argv[], | ||
MMG5_pMesh | mesh, | ||
MMG5_pSol | met, | ||
MMG5_pSol | sol | ||
) |
Store command-line arguments.
argc | number of command line arguments. |
argv | command line arguments. |
mesh | pointer to the mesh structure. |
met | pointer to a metric |
sol | pointer to a level-set or displacement |
Definition at line 660 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_parsop | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
Read a file containing Local parameters (.mmg3d extension)
mesh | pointer to the mesh structure. |
met | pointer to the sol structure. |
Read local parameters file. This file must have the same name as the mesh with the .mmg3d extension or must be named DEFAULT.mmg3d.
SUBROUTINE MMG3D_PARSOP(mesh,met,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 768 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_saveAllSols | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol, | ||
const char * | filename | ||
) |
Save 1 or more solutions in medit solution file format.
mesh | pointer to the mesh structure. |
sol | pointer to the solutions array |
filename | name of the solution file. |
SUBROUTINE MMG3D_SAVEALLSOLS(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2352 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_saveGenericMesh | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
const char * | filename | ||
) |
Save mesh data in a file whose format depends on the filename extension.
mesh | pointer to the mesh structure. |
filename | name of file. |
SUBROUTINE MMG3D_SAVEGENERICMESH(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2062 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_saveMesh | ( | MMG5_pMesh | mesh, |
const char * | filename | ||
) |
Save a mesh in .mesh/.meshb format.
mesh | pointer to the mesh structure. |
filename | pointer to the name of file. |
SUBROUTINE MMG3D_SAVEMESH(mesh,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
mesh | pointer to the mesh structure. |
filename | pointer to the name of file. |
Save mesh data.
Definition at line 1273 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_saveMshMesh | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
const char * | filename | ||
) |
Save a mesh in MSH format, ascii or binary depending on the filename extension.
mesh | pointer to the mesh structure. |
sol | pointer to the solution structure. |
filename | name of file. |
Write mesh and 0 or 1 data in MSH file format (.msh extension). Write binary file for .mshb extension and ASCII for .msh one.
SUBROUTINE MMG3D_SAVEMSHMESH(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2133 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_saveMshMesh_and_allData | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol, | ||
const char * | filename | ||
) |
Save a mesh and data in MSH format, ascii or binary depending on the filename extension.
mesh | pointer to the mesh structure. |
sol | pointer to the solution structure. |
filename | name of file. |
Write mesh and a list of data fields (that are considered as solutions and not metrics, thus, we do nothing over the ridge vertices) in MSH file format (.msh extension). Save file in ASCII format for .msh extension, in binary format for .mshb one.
SUBROUTINE MMG3D_SAVEMSHMESH_AND_ALLDATA(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2138 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_saveSol | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
const char * | filename | ||
) |
Write isotropic or anisotropic metric.
mesh | pointer to the mesh structure. |
met | pointer to the sol structure. |
filename | name of file. |
SUBROUTINE MMG3D_SAVESOL(mesh,met,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2314 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_saveTetgenMesh | ( | MMG5_pMesh | mesh, |
const char * | filename | ||
) |
Save data in Tetgen's Triangle format.
mesh | pointer to the mesh structure. |
filename | name of the readed file. |
Save mesh data in Triangle (or equivalent to Tetgen in 3D) file format.
SUBROUTINE MMG3D_SAVETETGENMESH(mesh,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2658 of file inout_3d.c.
LIBMMG3D_EXPORT int MMG3D_saveVtkMesh | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
const char * | filename | ||
) |
Save a mesh and optionally one solution in VTK format.
mesh | pointer to the mesh structure. |
sol | pointer to the solution structure. |
filename | name of file. |
Write mesh and 0 or 1 data in Vtk file format (.vtk extension).
SUBROUTINE MMG3D_SAVEVTKMESH(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 266 of file inoutcpp_3d.cpp.
LIBMMG3D_EXPORT int MMG3D_saveVtkMesh_and_allData | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol, | ||
const char * | filename | ||
) |
Save a mesh and multiple data fields in VTK format.
mesh | pointer to the mesh structure. |
sol | pointer to the solution structure. |
filename | name of file. |
Write mesh and a list of data fields in Vtk file format (.vtk extension).
SUBROUTINE MMG3D_SAVEVTKMESH_AND_ALLDATA(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 281 of file inoutcpp_3d.cpp.
LIBMMG3D_EXPORT int MMG3D_saveVtuMesh | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
const char * | filename | ||
) |
Save a mesh and optionally one data field in VTU format.
mesh | pointer to the mesh structure. |
sol | pointer to the solution structure. |
filename | name of file. |
Write mesh and 0 or 1 data in vtu Vtk file format (.vtu extension).
SUBROUTINE MMG3D_SAVEVTUMESH(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 232 of file inoutcpp_3d.cpp.
LIBMMG3D_EXPORT int MMG3D_saveVtuMesh_and_allData | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol, | ||
const char * | filename | ||
) |
Save a mesh and multiple data fields in VTU format.
mesh | pointer to the mesh structure. |
sol | pointer to the solution structure. |
filename | name of file. |
Write mesh and a list of data fields in vtu Vtk file format (.vtu extension).
SUBROUTINE MMG3D_SAVEVTUMESH_AND_ALLDATA(mesh,sol,filename,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: filename
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 246 of file inoutcpp_3d.cpp.
LIBMMG3D_EXPORT int MMG3D_searchlen | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
double | lmin, | ||
double | lmax, | ||
MMG5_int * | eltab, | ||
int8_t | metRidTyp | ||
) |
List edges that are too short or too long.
mesh | pointer to the mesh structure. |
met | pointer to the sol structure. |
lmin | minimum edge length. |
lmax | maximum ede length. |
eltab | array of invalid elements. |
metRidTyp | Type of storage of ridges metrics: 0 for classic storage (before the MMG5_defsiz call), 1 for special storage (after this call). |
Store in eltab elements which have edge lengths shorter than lmin or longer than lmax, eltab is allocated and could contain mesh->ne elements.
SUBROUTINE MMG3D_SEARCHLEN(mesh,met,lmin,lmax,eltab,metridtyp,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
REAL(KIND=8), INTENT(IN) :: lmin,lmax
INTEGER(MMG5F_INT),DIMENSION(*), INTENT(OUT) :: eltab
INTEGER, INTENT(IN) :: metridtyp
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1387 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT void MMG3D_searchqua | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
double | critmin, | ||
MMG5_int * | eltab, | ||
int8_t | metRidTyp | ||
) |
List bad elements.
mesh | pointer to the mesh structure. |
met | pointer to the sol structure. |
critmin | minimum quality for elements. |
eltab | pointer to the array of invalid elements. |
metRidTyp | Type of storage of ridges metrics: 0 for classic storage (before the MMG5_defsiz call), 1 for special storage (after this call). |
Store elements which have worse quality than critmin in eltab, eltab is allocated and could contain mesh->ne elements.
SUBROUTINE MMG3D_SEARCHQUA(mesh,met,critmin,eltab,metridtyp)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
REAL(KIND=8), INTENT(IN) :: critmin
INTEGER(MMG5F_INT),DIMENSION(*), INTENT(OUT) :: eltab
INTEGER, INTENT(IN) :: metridtyp
END SUBROUTINE
Definition at line 1295 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT void MMG3D_Set_commonFunc | ( | void | ) |
Set common pointer functions between mmgs and mmg3d to the matching mmg3d functions.
Definition at line 1745 of file libmmg3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_constantSize | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
Compute a constant size map according to the hsiz, hmin and hmax parameters.
mesh | pointer to the mesh structure |
met | pointer to the sol structure |
This function computes a constant size map according to mesh->info.hsiz, mesh->info.hmin and mesh->info.hmax. It updates these 3 values if not compatible.
SUBROUTINE MMG3D_SET_CONSTANTSIZE(mesh,met,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1699 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_Set_corner | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "corner" attribute to a vertex.
mesh | pointer to the mesh structure. |
k | vertex index. |
Set the "corner" attribute at vertex k. This affects how the vertex is treated during remeshing.
SUBROUTINE MMG3D_SET_CORNER(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1223 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_dparameter | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
int | dparam, | ||
double | val | ||
) |
set a real-valued parameter of the remesher
mesh | pointer to the mesh structure. |
sol | pointer to the sol structure (unused). |
dparam | double parameter to set (see MMG3D_Param for a list of parameters that can be set). |
val | value of the parameter. |
This function sets the double parameter dparam to value val.
SUBROUTINE MMG3D_SET_DPARAMETER(mesh,sol,dparam,val,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
MMG5_DATA_PTR_T :: sol
INTEGER, INTENT(IN) :: dparam
REAL(KIND=8), INTENT(IN) :: val
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2364 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_edge | ( | MMG5_pMesh | mesh, |
MMG5_int | v0, | ||
MMG5_int | v1, | ||
MMG5_int | ref, | ||
MMG5_int | pos | ||
) |
Set the vertices and reference of a single edge in a mesh.
mesh | pointer to the mesh structure. |
v0 | first extremity of the edge. |
v1 | second extremity of the edge. |
ref | edge reference. |
pos | edge position in the mesh. |
Set edges of extremities v0, v1 and reference ref at position pos in mesh structure (from 1 to nb_edges included)
SUBROUTINE MMG3D_SET_EDGE(mesh,v0,v1,ref,pos,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: v0,v1,ref,pos
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1098 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_edges | ( | MMG5_pMesh | mesh, |
MMG5_int * | edges, | ||
MMG5_int * | refs | ||
) |
Set the vertices and references of all edges in a mesh.
mesh | pointer to the mesh structure. |
edges | pointer to the array of edges. The vertices of the \(i^{th}\) edge should be given in edges[(i-1)*2] and edges[(i-1)*2+1]. |
refs | edges references. refs[i-1] is the ref of the \(i^{th}\) edge. |
SUBROUTINE MMG3D_SET_EDGES(mesh,edges,refs,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN) :: edges(*)
INTEGER(MMG5F_INT), INTENT(IN) :: refs(*)
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1176 of file API_functions_3d.c.
LIBMMG3D_EXPORT void MMG3D_Set_handGivenMesh | ( | MMG5_pMesh | mesh | ) |
Finish providing mesh data without using the API functions.
mesh | pointer to the mesh structure. |
To mark as ended a mesh given without using the API functions (for example, mesh given by mesh->point[i] = 0 ...). This function performs verifications, e.g. to make sure that all tetrahedra are consistently oriented.
SUBROUTINE MMG3D_SET_HANDGIVENMESH(mesh)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
END SUBROUTINE
Definition at line 1867 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_inputMeshName | ( | MMG5_pMesh | mesh, |
const char * | meshin | ||
) |
Set the name of input mesh.
mesh | pointer to the mesh structure. |
meshin | input mesh name. |
SUBROUTINE MMG3D_SET_INPUTMESHNAME(mesh,meshin,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh
CHARACTER(LEN=*), INTENT(IN) :: meshin
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 65 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_inputParamName | ( | MMG5_pMesh | mesh, |
const char * | fparamin | ||
) |
Set the name of the input parameter file.
mesh | pointer to the mesh structure. |
fparamin | name of the input parameter file. |
SUBROUTINE MMG3D_SET_INPUTPARAMNAME(mesh,fparamin,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh
CHARACTER(LEN=*), INTENT(IN) :: fparamin
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 74 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_inputSolName | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
const char * | solin | ||
) |
Set the name of input solution file.
mesh | pointer to the mesh structure. |
sol | pointer to the sol structure. |
solin | name of the input solution file. |
SUBROUTINE MMG3D_SET_INPUTSOLNAME(mesh,sol,solin,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: solin
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 70 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_iparameter | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
int | iparam, | ||
MMG5_int | val | ||
) |
set an integer parameter of the remesher
mesh | pointer to the mesh structure. |
sol | pointer to the sol structure (unused). |
iparam | integer parameter to set (see MMG3D_Param for a list of parameters that can be set). |
val | value for the parameter. |
This function sets the integer parameter iparam to value val.
SUBROUTINE MMG3D_SET_IPARAMETER(mesh,sol,iparam,val,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
MMG5_DATA_PTR_T :: sol
INTEGER, INTENT(IN) :: iparam
INTEGER(MMG5F_INT), INTENT(IN) :: val
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2113 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_ithSol_inSolsAtVertices | ( | MMG5_pSol | sol, |
int | i, | ||
double * | s, | ||
MMG5_int | pos | ||
) |
Set a single element of one out of multiple solution fields that are defined on vertices.
sol | pointer to the array of solutions |
i | position of the solution field that we want to set. |
s | solution(s) at mesh vertex pos. |
pos | index of the vertex on which we set the solution. |
Set values of the solution at the ith field of the solution array and at position pos (pos from 1 to nb_vertices included and i from 1 to nb_sols).
SUBROUTINE MMG3D_SET_ITHSOL_INSOLSATVERTICES(sol,i,s,pos,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: sol
INTEGER, INTENT(IN) :: i
INTEGER(MMG5F_INT), INTENT(IN) :: pos
REAL(KIND=8), DIMENSION(*),INTENT(OUT) :: s
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1754 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_ithSols_inSolsAtVertices | ( | MMG5_pSol | sol, |
int | i, | ||
double * | s | ||
) |
Set all elements of one out of multiple solution fields that are defined on vertices.
sol | pointer to the array of solutions |
i | position of the solution field that we want to set. |
s | array of the solutions at mesh vertices. The solution at vertex k is given by s[k-1] for a scalar sol, s[3*(k-1)]@3 for a vectorial solution and s[6*(k-1)]@6 for a tensor solution. |
Set values of the ith field of the solution array by array (i from 1 to nb_sols).
SUBROUTINE MMG3D_SET_ITHSOLS_INSOLSATVERTICES(sol,i,s,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: sol
INTEGER, INTENT(IN) :: i
REAL(KIND=8), DIMENSION(*),INTENT(OUT) :: s
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1811 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_localParameter | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
int | typ, | ||
MMG5_int | ref, | ||
double | hmin, | ||
double | hmax, | ||
double | hausd | ||
) |
set a local parameter
mesh | pointer to the mesh structure |
sol | pointer to the sol structure |
typ | type of entity (triangle, edge,...) |
ref | reference of the entity |
hmin | minimal edge size |
hmax | maximal edge size |
hausd | Hausdorff distance |
Set local parameters: set the Hausdorff distance, minimum edge length, and maximum edge length for all entities of type typ and reference ref.
SUBROUTINE MMG3D_SET_LOCALPARAMETER(mesh,sol,typ,ref,&
hmin,hmax,hausd,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER, INTENT(IN) :: typ
INTEGER(MMG5F_INT), INTENT(IN):: ref
REAL(KIND=8), INTENT(IN) :: hmin,hmax,hausd
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2444 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_lsBaseReference | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
MMG5_int | br | ||
) |
Set a new level-set base reference.
mesh | pointer to the mesh structure. |
sol | pointer to the sol structure. |
br | new level-set base reference. |
Set a new level-set base reference of ref br in LS discretization mode. Base references are boundary conditions to which implicit domains can be attached. All implicit volumes that are not attached to listed base references are deleted as spurious volumes by the rmc option.
SUBROUTINE MMG3D_SET_LSBASEREFERENCE(mesh,sol,br,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER(MMG5F_INT) :: br
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2537 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_meshSize | ( | MMG5_pMesh | mesh, |
MMG5_int | np, | ||
MMG5_int | ne, | ||
MMG5_int | nprism, | ||
MMG5_int | nt, | ||
MMG5_int | nquad, | ||
MMG5_int | na | ||
) |
Set the number of vertices, tetrahedra, prisms, triangles, quadrilaterals, and edges of a mesh.
mesh | pointer to the mesh structure. |
np | number of vertices. |
ne | number of tetrahedra. |
nprism | number of prisms. |
nt | number of triangles. |
nquad | number of quads. |
na | number of edges. |
This function sets the number of vertices, tetrahedra, prisms, triangles, quadrilaterals and edges of the mesh and allocates the associated arrays. If called again, it will reset the whole mesh to reallocate it at the new size
SUBROUTINE MMG3D_SET_MESHSIZE(mesh,np,ne,nprism,nt,nquad,na,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT) :: np,ne,nprism,nt,nquad,na
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 264 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_multiMat | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
MMG5_int | ref, | ||
int | split, | ||
MMG5_int | rmin, | ||
MMG5_int | rplus | ||
) |
Set the reference mapping for the elements of reference ref in level-set discretization mode.
mesh | pointer to the mesh structure |
sol | pointer to the sol structure |
ref | input tetrahedron reference |
split | MMG5_MMAT_NoSplit if the entity must not be splitted, MMG5_MMAT_Split otherwise |
rmin | reference for the negative side after LS discretization |
rplus | reference for the positive side after LS discretization |
With this function you can determine which references will be given to the tetrahedra on both sides of the level set, after discretization. Negative and positive here refer to volumes where the function is smaller or larger, respectively, than the isovalue of the level set. SUBROUTINE MMG3D_SET_MULTIMAT(mesh,sol,ref,split,rmin,rplus,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER, INTENT(IN) :: split
INTEGER(MMG5F_INT), INTENT(IN):: ref,rmin,rplus
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 2533 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_normalAtVertex | ( | MMG5_pMesh | mesh, |
MMG5_int | k, | ||
double | n0, | ||
double | n1, | ||
double | n2 | ||
) |
Set the normal orientation at a single vertex.
mesh | pointer to the mesh structure. |
k | vertex index |
n0 | x componant of the normal at vertex k. |
n1 | y componant of the normal at vertex k. |
n2 | z componant of the normal at vertex k. |
Set normal (n0,n1,n2) at vertex k.
SUBROUTINE MMG3D_SET_NORMALATVERTEX(mesh,k,n0,n1,n2,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
REAL(KIND=8), INTENT(IN) :: n0,n1,n2
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1380 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_outputMeshName | ( | MMG5_pMesh | mesh, |
const char * | meshout | ||
) |
Set the name of output mesh file.
mesh | pointer to the mesh structure. |
meshout | name of the output mesh file. |
SUBROUTINE MMG3D_SET_OUTPUTMESHNAME(mesh,meshout,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh
CHARACTER(LEN=*), INTENT(IN) :: meshout
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 78 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_outputSolName | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
const char * | solout | ||
) |
Set the name of the output solution file.
mesh | pointer to the mesh structure. |
sol | pointer to the sol structure. |
solout | name of the output solution file. |
SUBROUTINE MMG3D_SET_OUTPUTSOLNAME(mesh,sol,solout,strlen0,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,sol
CHARACTER(LEN=*), INTENT(IN) :: solout
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 83 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_parallelTriangle | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "parallel" attribute to a single triangle.
mesh | pointer to the mesh structure. |
k | triangle index. |
Set triangle k as parallel (triangle at the interface between two processors, ie, this triangle is required). (k from 1 to nb_tria included).
SUBROUTINE MMG3D_SET_PARALLELTRIANGLE(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1318 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_parallelTriangles | ( | MMG5_pMesh | mesh, |
MMG5_int * | parIdx, | ||
MMG5_int | npar | ||
) |
Assign the "parallel" attribute to multiple triangles.
mesh | pointer to the mesh structure |
parIdx | array of indices of triangles |
npar | number of triangles |
Set the parallel triangles (triangles at the interface between processors, i.e. these triangles are required).
SUBROUTINE MMG3D_SET_PARALLELTRIANGLES(mesh,parIdx,npar,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), DIMENSION(*),INTENT(IN) :: parIdx
INTEGER(MMG5F_INT), INTENT(IN) :: npar
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1334 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_prism | ( | MMG5_pMesh | mesh, |
MMG5_int | v0, | ||
MMG5_int | v1, | ||
MMG5_int | v2, | ||
MMG5_int | v3, | ||
MMG5_int | v4, | ||
MMG5_int | v5, | ||
MMG5_int | ref, | ||
MMG5_int | pos | ||
) |
Set the vertices and reference of a single prism in a mesh.
mesh | pointer to the mesh structure. |
v0 | first vertex of prism. |
v1 | second vertex of prism. |
v2 | third vertex of prism. |
v3 | fourth vertex of prism. |
v4 | fifth vertex of prism. |
v5 | sixth vertex of prism. |
ref | prism reference. |
pos | prism position in the mesh. |
This function sets the six vertices v0, v1,v2,v3,v4,v5 and reference ref for the prism at position pos in the mesh structure (from 1 to nb_prisms included).
SUBROUTINE MMG3D_SET_PRISM(mesh,v0,v1,v2,v3,v4,v5,ref,pos,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: v0,v1,v2,v3,v4,v5,ref,pos
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 717 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_prisms | ( | MMG5_pMesh | mesh, |
MMG5_int * | prisms, | ||
MMG5_int * | refs | ||
) |
Set the vertices and references of all prisms in a mesh.
mesh | pointer to the mesh structure. |
prisms | vertices of the prisms of the mesh Vertices of the \(i^{th}\) prism are stored in prism[(i-1)*6] to prism[(i-1)*6+5] included. |
refs | array of the prisms references. The references of the \(i^{th}\) prism is stored in refs[i-1]. |
This function sets the vertices and references of all prisms in a mesh.
! SUBROUTINE MMG3D_SET_PRISMS(mesh,prisms,refs,retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! INTEGER(MMG5F_INT), DIMENSION(*), INTENT(IN) :: prisms
! INTEGER(MMG5F_INT), DIMENSION(*), INTENT(IN) :: refs
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 803 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_quadrilateral | ( | MMG5_pMesh | mesh, |
MMG5_int | v0, | ||
MMG5_int | v1, | ||
MMG5_int | v2, | ||
MMG5_int | v3, | ||
MMG5_int | ref, | ||
MMG5_int | pos | ||
) |
Set the vertices and reference of a single quadrilateral in a mesh.
mesh | pointer to the mesh structure. |
v0 | first vertex of quadrilateral. |
v1 | second vertex of quadrilateral. |
v2 | third vertex of quadrilateral. |
v3 | fourth vertex of quadrilateral. |
ref | quadrilateral reference. |
pos | quadrilateral position in the mesh. |
Set a quadrilateral of vertices v0, v1, v2, v3 and reference ref at position pos in mesh structure (from 1 to nb_quadrangles included).
SUBROUTINE MMG3D_SET_QUADRILATERAL(mesh,v0,v1,v2,v3,ref,pos,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: v0,v1,v2,v3,ref,pos
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 981 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_quadrilaterals | ( | MMG5_pMesh | mesh, |
MMG5_int * | quads, | ||
MMG5_int * | refs | ||
) |
Set the vertices and references of all quadrilaterals in a mesh.
mesh | pointer to the mesh structure. |
quads | pointer to the array of the quads vertices Vertices of the \(i^{th}\) quadra are stored in quads[(i-1)*3]@3. |
refs | pointer to the array of the quadrilateral references. refs[i-1] is the ref of the \(i^{th}\) quadra. |
! SUBROUTINE MMG3D_SET_QUADRILATERALS(mesh,quads,refs,retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! INTEGER(MMG5F_INT),DIMENSION(*), INTENT(IN) :: quads
! INTEGER(MMG5F_INT),DIMENSION(*), INTENT(IN) :: refs
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 1054 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_requiredEdge | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "required" attribute to a single edge.
mesh | pointer to the mesh structure. |
k | edge index. |
Set edge k as required.
SUBROUTINE MMG3D_SET_REQUIREDEDGE(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1368 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_requiredTetrahedra | ( | MMG5_pMesh | mesh, |
MMG5_int * | reqIdx, | ||
MMG5_int | nreq | ||
) |
Assign the "required" attribute to multiple tetrahedra.
mesh | pointer to the mesh structure. |
reqIdx | array of the indices of the required elements. |
nreq | number of required elements |
Determine which tetrahedra have the "required" attribute.
SUBROUTINE MMG3D_SET_REQUIREDTETRAHEDRA(mesh,reqIdx,nreq,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), DIMENSION(*),INTENT(IN) :: reqIdx
INTEGER(MMG5F_INT), INTENT(IN) :: nreq
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1260 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_requiredTetrahedron | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "required" attribute to a tetrahedron.
mesh | pointer to the mesh structure. |
k | element index. |
Set element k as required (k from 1 to nb_tetra included).
SUBROUTINE MMG3D_SET_REQUIREDTETRAHEDRON(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1248 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_requiredTriangle | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "required" attribute to a single triangle.
mesh | pointer to the mesh structure. |
k | triangle index. |
Set triangle k as required (k from 1 to nb_tria included).
SUBROUTINE MMG3D_SET_REQUIREDTRIANGLE(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1280 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_requiredTriangles | ( | MMG5_pMesh | mesh, |
MMG5_int * | reqIdx, | ||
MMG5_int | nreq | ||
) |
Assign the "required" attribute to multiple triangles.
mesh | pointer to the mesh structure. |
reqIdx | array of the indices of the required triangles. |
nreq | number of required triangles |
SUBROUTINE MMG3D_SET_REQUIREDTRIANGLES(mesh,reqIdx,nreq,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), DIMENSION(*),INTENT(IN) :: reqIdx
INTEGER(MMG5F_INT), INTENT(IN) :: nreq
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1296 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_requiredVertex | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "required" attribute to a vertex.
mesh | pointer to the mesh structure. |
k | vertex index. |
Set vertex k as required (k from 1 to nb_vertices included). This prevents the remesher from moving the vertex.
SUBROUTINE MMG3D_SET_REQUIREDVERTEX(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1235 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_ridge | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "ridge" attribute to a single edge.
mesh | pointer to the mesh structure. |
k | edge index. |
Set the "ridge" attribute at edge k. This affects how the remesher treats the edge and the adjacent triangles or tetrahedra.
SUBROUTINE MMG3D_SET_RIDGE(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1356 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_scalarSol | ( | MMG5_pSol | met, |
double | s, | ||
MMG5_int | pos | ||
) |
Set a single element of a scalar solution structure.
met | pointer to the sol structure. |
s | solution scalar value. |
pos | position of the solution in the mesh. |
Set scalar value s at position pos in solution structure (pos from 1 to nb_vertices included).
SUBROUTINE MMG3D_SET_SCALARSOL(met,s,pos,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8), INTENT(IN) :: s
INTEGER(MMG5F_INT), INTENT(IN):: pos
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1434 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_scalarSols | ( | MMG5_pSol | met, |
double * | s | ||
) |
Set the values of all elements of a scalar solution structure.
met | pointer to the sol structure. |
s | array of the scalar solutions values. s[i-1] is the solution at vertex i. |
Set scalar solutions at mesh vertices.
SUBROUTINE MMG3D_SET_SCALARSOLS(met,s,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8),DIMENSION(*), INTENT(IN) :: s
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1498 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_solsAtVerticesSize | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol, | ||
int | nsols, | ||
MMG5_int | nentities, | ||
int * | typSol | ||
) |
Initialize an array of solution values defined at vertices.
mesh | pointer to the mesh structure. |
sol | pointer to an allocatable sol structure. |
nsols | number of solutions per entity |
nentities | number of vertices |
typSol | Array of size nsols listing the type of the solutions (scalar, vectorial, ..., see MMG5_type for possible values). |
Initialize a solution field defined at vertices: set dimension, types and number of data values. (not used by Mmg itself).
SUBROUTINE MMG3D_SET_SOLSATVERTICESSIZE(mesh,sol,nsols,nentities,typSol,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER, INTENT(IN) :: nsols
INTEGER(MMG5F_INT), INTENT(IN):: nentities
INTEGER, INTENT(IN) :: typSol(*)
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Sol tab allocation
Definition at line 161 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_solSize | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
int | typEntity, | ||
MMG5_int | np, | ||
int | typSol | ||
) |
Initialize a solution field.
mesh | pointer to the mesh structure. |
sol | pointer to the sol structure. |
typEntity | type of entities on which the solution is defined (vertices, triangles, ...). See MMG5_entities for the defined entity types. Currently only MMG5_Vertex is supported. |
np | number of solutions. |
typSol | type of solution (scalar, vectorial, ..., see MMG5_type for possible values). |
Initialize a solution field: set dimension, types and number of data. To use to initialize a metric, a level-set or a displacement field.
SUBROUTINE MMG3D_SET_SOLSIZE(mesh,sol,typEntity,np,typSol,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER(MMG5F_INT), INTENT(IN):: np
INTEGER, INTENT(IN) :: typEntity,typSol
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 116 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_tensorSol | ( | MMG5_pSol | met, |
double | m11, | ||
double | m12, | ||
double | m13, | ||
double | m22, | ||
double | m23, | ||
double | m33, | ||
MMG5_int | pos | ||
) |
Set a single element of a tensor solution structure.
met | pointer to the sol structure. |
m11 | value of the tensorial solution at position (1,1) in the tensor |
m12 | value of the tensorial solution at position (1,2) in the tensor |
m13 | value of the tensorial solution at position (1,3) in the tensor |
m22 | value of the tensorial solution at position (2,2) in the tensor |
m23 | value of the tensorial solution at position (2,3) in the tensor |
m33 | value of the tensorial solution at position (3,3) in the tensor |
pos | position of the solution in the mesh (begin to 1). |
Set tensorial values at position pos in solution structure. (pos from 1 to nb_vertices included).
SUBROUTINE MMG3D_SET_TENSORSOL(met,m11,m12,m13,m22,m23,m33,pos,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8), INTENT(IN) :: m11,m12,m13,m22,m23,m33
INTEGER(MMG5F_INT), INTENT(IN):: pos
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1631 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_tensorSols | ( | MMG5_pSol | met, |
double * | sols | ||
) |
Set all elements of a tensor solution structure.
met | pointer to the sol structure. |
sols | array of the tensorial solutions. sols[6*(i-1)]@6 is the solution at vertex i |
Set tensorial values by array.
SUBROUTINE MMG3D_SET_TENSORSOLS(met,sols,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8),DIMENSION(*), INTENT(IN) :: sols
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1709 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_tetrahedra | ( | MMG5_pMesh | mesh, |
MMG5_int * | tetra, | ||
MMG5_int * | refs | ||
) |
Set the vertices and references of all tetrahedra in a mesh structure.
mesh | pointer to the mesh structure. |
tetra | vertices of the tetras of the mesh given. The vertices of the \(i^{th}\) tetrahedron are given by tetra[(i-1)*4] to tetra[(i-1)*4+3] included. |
refs | array of the tetrahedra references. The references of the \(i^{th}\) tetrahedron is given by refs[i-1]. |
This function sets the vertices and references of all tetrahedra in a mesh.
! SUBROUTINE MMG3D_SET_TETRAHEDRA(mesh,tetra,refs,retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! INTEGER(MMG5F_INT), DIMENSION(*), INTENT(IN) :: tetra
! INTEGER(MMG5F_INT), DIMENSION(*), INTENT(IN) :: refs
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 635 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_tetrahedron | ( | MMG5_pMesh | mesh, |
MMG5_int | v0, | ||
MMG5_int | v1, | ||
MMG5_int | v2, | ||
MMG5_int | v3, | ||
MMG5_int | ref, | ||
MMG5_int | pos | ||
) |
set a single tetrahedron's vertices
mesh | pointer to the mesh structure. |
v0 | first vertex of tetrahedron. |
v1 | second vertex of tetrahedron. |
v2 | third vertex of tetrahedron. |
v3 | fourth vertex of tetrahedron. |
ref | tetrahedron reference. |
pos | tetrahedron position in the mesh. |
Assign the vertices v0, v1,v2,v3 and reference ref to the tetrahedron at position pos in the mesh structure. pos ranges from 1 to nb_tetra included.
SUBROUTINE MMG3D_SET_TETRAHEDRON(mesh,v0,v1,v2,v3,ref,pos,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: v0,v1,v2,v3,pos
INTEGER(MMG5F_INT), INTENT(IN):: ref
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 521 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_triangle | ( | MMG5_pMesh | mesh, |
MMG5_int | v0, | ||
MMG5_int | v1, | ||
MMG5_int | v2, | ||
MMG5_int | ref, | ||
MMG5_int | pos | ||
) |
Set the vertices and reference of a single triangle in a mesh.
mesh | pointer to the mesh structure. |
v0 | first vertex of triangle. |
v1 | second vertex of triangle. |
v2 | third vertex of triangle. |
ref | triangle reference. |
pos | triangle position in the mesh. |
This function defines a triangle of vertices v0, v1, v2 and reference ref at position pos in mesh structure (from 1 to nb_triangle included).
SUBROUTINE MMG3D_SET_TRIANGLE(mesh,v0,v1,v2,ref,pos,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN) :: v0,v1,v2,ref,pos
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 862 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_triangles | ( | MMG5_pMesh | mesh, |
MMG5_int * | tria, | ||
MMG5_int * | refs | ||
) |
Set the vertices and references of all triangles in a mesh.
mesh | pointer to the mesh structure. |
tria | pointer to the array of the tria vertices Vertices of the \(i^{th}\) tria are stored in tria[(i-1)*3]@3. |
refs | pointer to the array of the triangle references. refs[i-1] is the ref of the \(i^{th}\) tria. |
This function sets the vertices and references of all triangles in a mesh.
! SUBROUTINE MMG3D_SET_TRIANGLES(mesh,tria,refs,retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! INTEGER(MMG5F_INT),DIMENSION(*), INTENT(IN) :: tria
! INTEGER(MMG5F_INT),DIMENSION(*), INTENT(IN) :: refs
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 938 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_vectorSol | ( | MMG5_pSol | met, |
double | vx, | ||
double | vy, | ||
double | vz, | ||
MMG5_int | pos | ||
) |
Set a single element of a vector solution structure.
met | pointer to the sol structure. |
vx | x value of the vectorial solution. |
vy | y value of the vectorial solution. |
vz | z value of the vectorial solution. |
pos | position of the solution in the mesh (begin to 1). |
Set vectorial value \((v_x,v_y,v_z)\) at position pos in solution structure. (pos from 1 to nb_vertices included).
SUBROUTINE MMG3D_SET_VECTORSOL(met,vx,vy,vz,pos,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8), INTENT(IN) :: vx,vy,vz
INTEGER(MMG5F_INT), INTENT(IN):: pos
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1524 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_vectorSols | ( | MMG5_pSol | met, |
double * | sols | ||
) |
Set all elements of a vector solution structure.
met | pointer to the sol structure. |
sols | array of the vectorial solutions sols[3*(i-1)]@3 is the solution at vertex i |
Set vectorial solutions at mesh vertices
SUBROUTINE MMG3D_SET_VECTORSOLS(met,sols,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: met
REAL(KIND=8),DIMENSION(*), INTENT(IN) :: sols
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1593 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_vertex | ( | MMG5_pMesh | mesh, |
double | c0, | ||
double | c1, | ||
double | c2, | ||
MMG5_int | ref, | ||
MMG5_int | pos | ||
) |
Set the coordinates of a single vertex.
mesh | pointer to the mesh structure. |
c0 | coordinate of the vertex along the first dimension. |
c1 | coordinate of the vertex along the second dimension. |
c2 | coordinate of the vertex along the third dimension. |
ref | vertex reference. |
pos | position of the vertex in the mesh. |
This function sets the coordinates of a vertex c0, c1,c2 and reference ref at position pos in mesh structure (from 1 to nb_vertices included).
SUBROUTINE MMG3D_SET_VERTEX(mesh,c0,c1,c2,ref,pos,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
REAL(KIND=8), INTENT(IN) :: c0,c1,c2
INTEGER(MMG5F_INT), INTENT(IN):: ref,pos
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 362 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Set_vertices | ( | MMG5_pMesh | mesh, |
double * | vertices, | ||
MMG5_int * | refs | ||
) |
Set all vertex coordinates and references in a mesh structure.
mesh | pointer to the mesh structure. |
vertices | array of vertex coordinates in the order \([x_1, y_1, z_1, x_2, \ldots, z_N]\) where \(N\) is the number of vertices in the mesh. |
refs | array of vertex references. The reference of vertex \(i\) is stored in refs[ \(i-1\)]. |
This function sets the coordinates and references of all vertices in a mesh structure. The number of vertices in the mesh must have been set before.
! SUBROUTINE MMG3D_SET_VERTICES(mesh,vertices,refs,retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! REAL(KIND=8), INTENT(IN) :: vertices(*)
! INTEGER(MMG5F_INT),INTENT(IN) :: refs(*)
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 458 of file API_functions_3d.c.
LIBMMG3D_EXPORT void MMG3D_setfunc | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
Set function pointers for caltet, lenedg, lenedgCoor defsiz, gradsiz... depending if the metric that was read is anisotropic or isotropic.
To associate function pointers without calling MMG3D_mmg3dlib
mesh | pointer to the mesh structure (unused). |
met | pointer to the sol structure (unused). |
SUBROUTINE MMG3D_SETFUNC(mesh,met)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
END SUBROUTINE
Definition at line 48 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_stockOptions | ( | MMG5_pMesh | mesh, |
MMG5_Info * | info | ||
) |
Store the info structure in the mesh structure.
mesh | pointer to the mesh structure. |
info | pointer to the info structure. |
SUBROUTINE MMG3D_STOCKOPTIONS(mesh,info,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,info
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1177 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_switch_metricStorage | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
Swap the m22 and m23 values of the metric.
mesh | pointer to the mesh structure |
met | pointer to the sol structure |
Switch the m22 and m23 value of the metric to allow to pass from the API storage to the medit storage.
SUBROUTINE MMG3D_SWITCH_METRICSTORAGE(mesh,met,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1727 of file libmmg3d_tools.c.
LIBMMG3D_EXPORT int MMG3D_Unset_corner | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove the "corner" attribute from a vertex.
mesh | pointer to the mesh structure. |
k | vertex index. |
Remove corner attribute from vertex k (from 1 to the number of vertices included).
SUBROUTINE MMG3D_UNSET_CORNER(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1229 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Unset_parallelTriangle | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove the "parallel" attribute from a single triangle.
mesh | pointer to the mesh structure. |
k | triangle index. |
Remove parallel attribute from triangle k (i.e. triangles aren't preserved anymore). (k from 1 to nb_tria included).
SUBROUTINE MMG3D_UNSET_PARALLELTRIANGLE(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1326 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Unset_parallelTriangles | ( | MMG5_pMesh | mesh, |
MMG5_int * | parIdx, | ||
MMG5_int | npar | ||
) |
Remove the "parallel" attribute from multiple triangles.
mesh | pointer to the mesh structure. |
parIdx | array of the indices of triangles |
npar | number of triangles |
Remove parallel attributes from triangles (i.e. triangles aren't preserved anymore).
SUBROUTINE MMG3D_UNSET_PARALLELTRIANGLES(mesh,parIdx,npar,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), DIMENSION(*),INTENT(IN) :: parIdx
INTEGER(MMG5F_INT), INTENT(IN) :: npar
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1345 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Unset_requiredEdge | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove the "required" attribute from a single edge.
mesh | pointer to the mesh structure. |
k | edge index. |
Remove required attribute from edge k.
SUBROUTINE MMG3D_UNSET_REQUIREDEDGE(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1374 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Unset_requiredTetrahedra | ( | MMG5_pMesh | mesh, |
MMG5_int * | reqIdx, | ||
MMG5_int | nreq | ||
) |
Remove the "required" attribute from multiple tetrahedra.
mesh | pointer to the mesh structure. |
reqIdx | array of the indices of the required elements. |
nreq | number of required elements |
Remove required attribute from a list of Tetra whose indices are contained in array reqIdx.
SUBROUTINE MMG3D_UNSET_REQUIREDTETRAHEDRA(mesh,reqIdx,nreq,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), DIMENSION(*),INTENT(IN) :: reqIdx
INTEGER(MMG5F_INT), INTENT(IN) :: nreq
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1270 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Unset_requiredTetrahedron | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove the "required" attribute from a tetrahedron.
mesh | pointer to the mesh structure. |
k | element index. |
Remove required attribute from element k (k from 1 to nb_tetra included).
SUBROUTINE MMG3D_UNSET_REQUIREDTETRAHEDRON(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1254 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Unset_requiredTriangle | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove the "required" attribute from a single triangle.
mesh | pointer to the mesh structure. |
k | triangle index. |
Remove required attribute from triangle k.
SUBROUTINE MMG3D_UNSET_REQUIREDTRIANGLE(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1288 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Unset_requiredTriangles | ( | MMG5_pMesh | mesh, |
MMG5_int * | reqIdx, | ||
MMG5_int | nreq | ||
) |
Remove the "required" attribute from multiple triangles.
mesh | pointer to the mesh structure. |
reqIdx | array of the indices of the required trias. |
nreq | number of required trias |
SUBROUTINE MMG3D_UNSET_REQUIREDTRIANGLES(mesh,reqIdx,nreq,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), DIMENSION(*),INTENT(IN) :: reqIdx
INTEGER(MMG5F_INT), INTENT(IN) :: nreq
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1307 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Unset_requiredVertex | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove required attribute from a vertex.
mesh | pointer to the mesh structure. |
k | vertex index. |
This function removes the required attribute from vertex k.
SUBROUTINE MMG3D_UNSET_REQUIREDVERTEX(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1242 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_Unset_ridge | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove the "ridge" attribute from a single edge.
mesh | pointer to the mesh structure. |
k | edge index. |
Remove ridge attribute at edge k.
SUBROUTINE MMG3D_UNSET_RIDGE(mesh,k,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: k
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1362 of file API_functions_3d.c.
LIBMMG3D_EXPORT int MMG3D_usage | ( | char * | prog | ) |
Print help for mmg3d options.
prog | pointer to the program name. |
return | 1 if success, 0 if fail. |
SUBROUTINE MMG3D_USAGE(prog,strlen0,retval)
CHARACTER(LEN=*), INTENT(IN) :: prog
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 165 of file libmmg3d_tools.c.
|
extern |
Compute isotropic size map according to the mean of the length of the edges passing through a vertex.
mesh | pointer to the mesh structure |
met | pointer to the sol structure |
SUBROUTINE MMG3D_DOSOL(mesh,met,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 11 of file mmg3dexterns.c.
|
extern |
Compute the length of an edge according to the size prescription.
ca | pointer to the coordinates of the first edge's extremity. |
cb | pointer to the coordinates of the second edge's extremity. |
ma | pointer to the metric associated to the first edge's extremity. |
mb | pointer to the metric associated to the second edge's extremity. |
Compute the length of edge \([ca,cb]\) (with ca and cb coordinates of edge endpoints) according to the size prescription.
SUBROUTINE MMG3D_LENEDGCOOR(ca,cb,sa,sb,retval)
REAL(KIND=8), INTENT(IN) :: ca,cb,sa,sb
REAL(KIND=8), INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 10 of file mmg3dexterns.c.