Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
|
C API functions definitions for MMGS library. More...
Go to the source code of this file.
Functions | |
int | MMGS_Init_mesh (const int starter,...) |
Initialize a mesh structure and optionally the associated solution and metric structures. | |
void | MMGS_Init_fileNames (MMG5_pMesh mesh, MMG5_pSol sol) |
Initialize file names to their default values. | |
int | MMGS_Set_inputMeshName (MMG5_pMesh mesh, const char *meshin) |
Set the name of the input mesh. | |
int | MMGS_Set_inputSolName (MMG5_pMesh mesh, MMG5_pSol sol, const char *solin) |
Set the name of the input solution file. | |
int | MMGS_Set_inputParamName (MMG5_pMesh mesh, const char *fparamin) |
Set the name of the input parameter file. | |
int | MMGS_Set_outputMeshName (MMG5_pMesh mesh, const char *meshout) |
Set the name of the output mesh file. | |
int | MMGS_Set_outputSolName (MMG5_pMesh mesh, MMG5_pSol sol, const char *solout) |
Set the name of the output solution file. | |
void | MMGS_Init_parameters (MMG5_pMesh mesh) |
Initialize the input parameters. | |
int | MMGS_Set_solSize (MMG5_pMesh mesh, MMG5_pSol sol, int typEntity, MMG5_int np, int typSol) |
Initialize an array of solution fields: set dimension, types and number of fields. | |
int | MMGS_Set_solsAtVerticesSize (MMG5_pMesh mesh, MMG5_pSol *sol, int nsols, MMG5_int nentities, int *typSol) |
Initialize an array of solution fields defined at vertices: set dimension, types and number of fields. | |
int | MMGS_Set_meshSize (MMG5_pMesh mesh, MMG5_int np, MMG5_int nt, MMG5_int na) |
Set the number of vertices, triangles and edges of the mesh and allocate the associated tables. | |
int | MMGS_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. | |
int | MMGS_Get_solsAtVerticesSize (MMG5_pMesh mesh, MMG5_pSol *sol, int *nsols, MMG5_int *np, int *typSol) |
Get the number of elements, type, and dimensions of several solutions defined on vertices. | |
int | MMGS_Get_meshSize (MMG5_pMesh mesh, MMG5_int *np, MMG5_int *nt, MMG5_int *na) |
Get the number of vertices, triangles, and edges of the mesh. | |
int | MMGS_Set_vertex (MMG5_pMesh mesh, double c0, double c1, double c2, MMG5_int ref, MMG5_int pos) |
Set the coordinates of a single vertex. | |
int | MMGS_Set_vertices (MMG5_pMesh mesh, double *vertices, MMG5_int *refs) |
Set the coordinates and references of all vertices in a mesh. | |
int | MMGS_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. | |
int | MMGS_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. | |
int | MMGS_Get_vertices (MMG5_pMesh mesh, double *vertices, MMG5_int *refs, int *areCorners, int *areRequired) |
Get the coordinates, references and attributes of all vertices in the mesh. | |
int | MMGS_Set_triangle (MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int v2, MMG5_int ref, MMG5_int pos) |
Set the coordinates and reference of a single triangle. | |
int | MMGS_Get_triangle (MMG5_pMesh mesh, MMG5_int *v0, MMG5_int *v1, MMG5_int *v2, MMG5_int *ref, int *isRequired) |
Get the vertices, reference, and required attribute of the next triangle in the mesh. | |
int | MMGS_Set_triangles (MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs) |
Set the vertices and references of all triangles in the mesh. | |
int | MMGS_Get_triangles (MMG5_pMesh mesh, MMG5_int *tria, MMG5_int *refs, int *areRequired) |
Get the vertices, references, and required attributes of all triangles in the mesh. | |
int | MMGS_Set_edge (MMG5_pMesh mesh, MMG5_int v0, MMG5_int v1, MMG5_int ref, MMG5_int pos) |
Set the vertices and reference of one edge in the mesh. | |
int | MMGS_Get_edge (MMG5_pMesh mesh, MMG5_int *e0, MMG5_int *e1, MMG5_int *ref, int *isRidge, int *isRequired) |
Get the vertices, reference, and attributes of the next edge in the mesh. | |
int | MMGS_Set_edges (MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs) |
Set the vertices and references of all edges in a mesh. | |
int | MMGS_Get_edges (MMG5_pMesh mesh, MMG5_int *edges, MMG5_int *refs, int *areRidges, int *areRequired) |
Get vertices, references and attributes of all edges in the mesh. | |
int | MMGS_Set_corner (MMG5_pMesh mesh, MMG5_int k) |
Assign the "corner" attribute to a vertex. | |
int | MMGS_Unset_corner (MMG5_pMesh mesh, MMG5_int k) |
Remove the "corner" attribute from a vertex. | |
int | MMGS_Set_requiredVertex (MMG5_pMesh mesh, MMG5_int k) |
Assign the "required" attribute to a vertex. | |
int | MMGS_Unset_requiredVertex (MMG5_pMesh mesh, MMG5_int k) |
Remove the "required" attribute from a vertex. | |
int | MMGS_Set_requiredTriangle (MMG5_pMesh mesh, MMG5_int k) |
Assign the "required" attribute to a triangle. | |
int | MMGS_Unset_requiredTriangle (MMG5_pMesh mesh, MMG5_int k) |
Remove the "required" attribute from a vertex. | |
int | MMGS_Set_ridge (MMG5_pMesh mesh, MMG5_int k) |
Assign the "ridge" attribute to an edge. | |
int | MMGS_Unset_ridge (MMG5_pMesh mesh, MMG5_int k) |
Remove the "ridge" attribute from an edge. | |
int | MMGS_Set_requiredEdge (MMG5_pMesh mesh, MMG5_int k) |
Assign the "required" attribute to an edge. | |
int | MMGS_Unset_requiredEdge (MMG5_pMesh mesh, MMG5_int k) |
Remove the "required" attribute from an edge. | |
int | MMGS_Set_normalAtVertex (MMG5_pMesh mesh, MMG5_int k, double n0, double n1, double n2) |
Set the normal orientation at a single vertex. | |
int | MMGS_Get_normalAtVertex (MMG5_pMesh mesh, MMG5_int k, double *n0, double *n1, double *n2) |
Get the normal orientation at an edge. | |
double | MMGS_Get_triangleQuality (MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k) |
Get the quality measure of a triangle. | |
int | MMGS_Set_scalarSol (MMG5_pSol met, double s, MMG5_int pos) |
Set a single element of a scalar solution structure. | |
int | MMGS_Get_scalarSol (MMG5_pSol met, double *s) |
Get the next element of a scalar solution structure. | |
int | MMGS_Set_scalarSols (MMG5_pSol met, double *s) |
Set the values of all elements of a scalar solution structure. | |
int | MMGS_Get_scalarSols (MMG5_pSol met, double *s) |
Get all elements of a scalar solution structure. | |
int | MMGS_Set_vectorSol (MMG5_pSol met, double vx, double vy, double vz, MMG5_int pos) |
Set a single element of a vector solution structure. | |
int | MMGS_Get_vectorSol (MMG5_pSol met, double *vx, double *vy, double *vz) |
Get the next element of a vector solution structure. | |
int | MMGS_Set_vectorSols (MMG5_pSol met, double *sols) |
Set all elements of a vector solution structure. | |
int | MMGS_Get_vectorSols (MMG5_pSol met, double *sols) |
Get all elements of a vector solution structure. | |
int | MMGS_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. | |
int | MMGS_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. | |
int | MMGS_Set_tensorSols (MMG5_pSol met, double *sols) |
Set all elements of a tensor solution structure. | |
int | MMGS_Get_tensorSols (MMG5_pSol met, double *sols) |
Get all elements of a tensor solution field. | |
int | MMGS_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. | |
int | MMGS_Get_ithSol_inSolsAtVertices (MMG5_pSol sol, int i, double *s, MMG5_int pos) |
Get one out of several solutions at a specific vertex. | |
int | MMGS_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. | |
int | MMGS_Get_ithSols_inSolsAtVertices (MMG5_pSol sol, int i, double *s) |
Get one out of several solutions at all vertices in the mesh. | |
int | MMGS_Chk_meshData (MMG5_pMesh mesh, MMG5_pSol met) |
Check if the numbers of given entities match with mesh and solution size and check mesh data. | |
int | MMGS_Set_iparameter (MMG5_pMesh mesh, MMG5_pSol sol, int iparam, MMG5_int val) |
set an integer parameter of the remesher | |
int | MMGS_Get_iparameter (MMG5_pMesh mesh, MMG5_int iparam) |
Get the value of an integer parameter of the remesher. | |
int | MMGS_Set_dparameter (MMG5_pMesh mesh, MMG5_pSol sol, int dparam, double val) |
set a real-valued parameter of the remesher | |
int | MMGS_Set_localParameter (MMG5_pMesh mesh, MMG5_pSol sol, int typ, MMG5_int ref, double hmin, double hmax, double hausd) |
set a local parameter | |
int | MMGS_Set_multiMat (MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int ref, int split, MMG5_int rin, MMG5_int rout) |
Set the reference mapping for the elements of reference ref in level-set discretization mode. | |
int | MMGS_Set_lsBaseReference (MMG5_pMesh mesh, MMG5_pSol sol, MMG5_int br) |
Set a new level-set base reference. | |
int | MMGS_Free_allSols (MMG5_pMesh mesh, MMG5_pSol *sol) |
Deallocate an array of solution fields. | |
int | MMGS_Free_all (const int starter,...) |
Deallocations before return. | |
int | MMGS_Free_structures (const int starter,...) |
Structure deallocations before return. | |
int | MMGS_Free_names (const int starter,...) |
Structure deallocations before return. | |
C API functions definitions for MMGS library.
C API for MMGS library.
Definition in file API_functions_s.c.
int MMGS_Chk_meshData | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
Check if the numbers of given entities match with mesh and solution size and check mesh data.
mesh | pointer to the mesh structure. |
met | pointer to the solution structure. |
This function checks if the numbers of given entities match with the mesh and solution sizes and checks the mesh data. Use of this function is not mandatory.
SUBROUTINE MMGS_CHK_MESHDATA(mesh,met,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,met
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1260 of file API_functions_s.c.
int MMGS_Free_all | ( | const int | starter, |
... | |||
) |
Deallocations before return.
starter | dummy argument used to initialize the variadic argument list. |
... | variadic arguments. |
For the MMGS_mmgslib function, you need to call the MMGS_Init_mesh function with the following arguments : MMGS_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet, &your_metric,MMG5_ARG_end).
For the MMGS_mmgsls function, you need to call the MMGS_Init_mesh function with the following arguments : MMGS_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppLs, &your_level_set,MMG5_ARG_end).
Here, your_mesh is a MMG5_pMesh, your_metric and your_level_set are MMG5_pSol.
Definition at line 1690 of file API_functions_s.c.
int MMGS_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 structures (that stores solution fields). |
SUBROUTINE MMGS_Free_allSols(mesh,sol,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1685 of file API_functions_s.c.
int MMGS_Free_names | ( | const int | starter, |
... | |||
) |
Structure deallocations before return.
starter | dummy argument used to initialize the variadic argument list. |
... | variadic arguments. |
For the MMGS_mmgslib function, you need to call the MMGS_Init_mesh function with the following arguments : MMGS_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet, &your_metric,MMG5_ARG_end).
For the MMGS_mmgsls function, you need to call the MMGS_Init_mesh function with the following arguments : MMGS_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppLs, &your_level_set,MMG5_ARG_end).
Here, your_mesh is a MMG5_pMesh, your_metric and your_level_set are MMG5_pSol.
Definition at line 1718 of file API_functions_s.c.
int MMGS_Free_structures | ( | const int | starter, |
... | |||
) |
Structure deallocations before return.
starter | dummy argument used to initialize the variadic argument list. |
... | variadic arguments. |
For the MMGS_mmgslib function, you need to call the MMGS_Init_mesh function with the following arguments : MMGS_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet, &your_metric,MMG5_ARG_end).
For the MMGS_mmgsls function, you need to call the MMGS_Init_mesh function with the following arguments : MMGS_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppLs, &your_level_set,MMG5_ARG_end).
Here, your_mesh is a pointer to MMG5_pMesh and your_metric and your_level_set are pointers to MMG5_pSol.
Definition at line 1704 of file API_functions_s.c.
int MMGS_Get_edge | ( | MMG5_pMesh | mesh, |
MMG5_int * | e0, | ||
MMG5_int * | e1, | ||
MMG5_int * | ref, | ||
int * | isRidge, | ||
int * | isRequired | ||
) |
Get the vertices, reference, and attributes of the next edge in the mesh.
mesh | pointer to the mesh structure. |
e0 | pointer to the index of the first vertex of the edge. |
e1 | pointer to the index of the second vertex 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, reference ref, and attributes of the 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 MMGS_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 617 of file API_functions_s.c.
int MMGS_Get_edges | ( | MMG5_pMesh | mesh, |
MMG5_int * | edges, | ||
MMG5_int * | refs, | ||
int * | areRidges, | ||
int * | areRequired | ||
) |
Get vertices, references and attributes of all edges in the mesh.
mesh | pointer to the mesh structure. |
edges | pointer to an array of edges. The vertices of edge i are stored in edges[(i-1)*2] and edges[(i-1)*2+1]. |
refs | edge references. refs[i-1] is the reference of edge i. |
areRidges | 1 if the edge is a ridge, 0 otherwise. |
areRequired | 1 if the edge is required, 0 otherwise. |
SUBROUTINE MMGS_GET_EDGES(mesh,edges,refs,areRidges,areRequired,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: refs(*),edges(*)
INTEGER, INTENT(OUT) :: areRequired(*),areRidges(*)
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 680 of file API_functions_s.c.
int MMGS_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 MMGS_Param structure). |
This function retrieves the value of integer parameter iparam (see MMGS_Param for a list of parameters). It returns the value of the parameter, or zero if the value of iparam is not recognized.
SUBROUTINE MMGS_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 1461 of file API_functions_s.c.
int MMGS_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. |
This function retreives the value of field i of the solution array at vertex pos. (pos from 1 to the number of vertices included and i from 1 to the number of solutions). It works for any type of solution; the types are inferred from sol.
SUBROUTINE MMGS_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 1173 of file API_functions_s.c.
int MMGS_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 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 field i of the solution array sol (i from 1 to the number of solutions). It works for any type of solution; the type is inferred from sol.
SUBROUTINE MMGS_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 1231 of file API_functions_s.c.
int MMGS_Get_meshSize | ( | MMG5_pMesh | mesh, |
MMG5_int * | np, | ||
MMG5_int * | nt, | ||
MMG5_int * | na | ||
) |
Get the number of vertices, triangles, and edges of the mesh.
recover data
mesh | pointer to the mesh structure. |
np | pointer to the number of vertices. |
nt | pointer to the number of triangles. |
na | pointer to the number of edges. |
SUBROUTINE MMGS_GET_MESHSIZE(mesh,np,nt,na,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT) :: np,nt,na
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 285 of file API_functions_s.c.
int MMGS_Get_normalAtVertex | ( | MMG5_pMesh | mesh, |
MMG5_int | k, | ||
double * | n0, | ||
double * | n1, | ||
double * | n2 | ||
) |
Get the normal orientation at an edge.
mesh | pointer to the mesh structure. |
k | vertex number |
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 MMGS_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 786 of file API_functions_s.c.
int MMGS_Get_scalarSol | ( | MMG5_pSol | met, |
double * | s | ||
) |
Get the next element of a scalar solution structure.
met | pointer to the sol structure. |
s | pointer to the scalar solution value. |
This function retrieves the next element s of the solution field met. 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 MMGS_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 858 of file API_functions_s.c.
int MMGS_Get_scalarSols | ( | MMG5_pSol | met, |
double * | s | ||
) |
Get all elements of a scalar solution structure.
met | pointer to the solution structure. |
s | array of scalar solutions at mesh vertices. s[i-1] is the solution at vertex i. |
SUBROUTINE MMGS_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 904 of file API_functions_s.c.
int MMGS_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 structures. |
nsols | number of solutions per entity |
nentities | pointer to the number of entities. |
typSol | array of size MMG5_NSOL_MAX to store type of each solution (scalar, vectorial, ..., see MMG5_type for possible values). |
SUBROUTINE MMGS_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 256 of file API_functions_s.c.
int MMGS_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.
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 elements in the solution. |
typSol | pointer to the type of the solution (MMG5_Scalar, MMG5_Vector, MMG5_Tensor, MMG5_Notype) |
SUBROUTINE MMGS_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 230 of file API_functions_s.c.
int MMGS_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 MMGS_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 1064 of file API_functions_s.c.
int MMGS_Get_tensorSols | ( | MMG5_pSol | met, |
double * | sols | ||
) |
Get all elements of a tensor solution field.
met | pointer to the sol structure. |
sols | array of solution values. sols[6*(i-1)]@6 is the solution at vertex i. |
SUBROUTINE MMGS_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 1127 of file API_functions_s.c.
int MMGS_Get_triangle | ( | MMG5_pMesh | mesh, |
MMG5_int * | v0, | ||
MMG5_int * | v1, | ||
MMG5_int * | v2, | ||
MMG5_int * | ref, | ||
int * | isRequired | ||
) |
Get the vertices, reference, and required attribute of the next triangle in the mesh.
mesh | pointer to the mesh structure. |
v0 | pointer to the first 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. |
isRequired | pointer to the flag saying if the triangle is required. |
This function retrieves the vertices v0, v1, v2, reference ref, and required attribute isRequired 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 MMGS_GET_TRIANGLE(mesh,v0,v1,v2,ref,isRequired,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(OUT):: v0,v1,v2,ref
INTEGER :: isRequired
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 494 of file API_functions_s.c.
double MMGS_Get_triangleQuality | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
MMG5_int | k | ||
) |
Get the quality measure of a triangle.
mesh | pointer to the mesh structure. |
met | pointer to the metric structure. |
k | index of the triangle for which we want to get the quality. |
SUBROUTINE MMGS_GET_TRIANGLEQUALITY(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 796 of file API_functions_s.c.
int MMGS_Get_triangles | ( | MMG5_pMesh | mesh, |
MMG5_int * | tria, | ||
MMG5_int * | refs, | ||
int * | areRequired | ||
) |
Get the vertices, references, and required attributes of all triangles in the mesh.
mesh | pointer to the mesh structure. |
tria | pointer to an array of vertices Vertices of triangle i are stored in tria[(i-1)*3]@3. |
refs | pointer to the array of triangles references. refs[i-1] is the ref of triangle i. |
areRequired | pointer to an array of flags saying if triangles are required. areRequired[i-1]=1 if triangle i is required. |
! SUBROUTINE MMGS_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 559 of file API_functions_s.c.
int MMGS_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 a solution field. 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 MMGS_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 952 of file API_functions_s.c.
int MMGS_Get_vectorSols | ( | MMG5_pSol | met, |
double * | sols | ||
) |
Get all elements of a vector solution structure.
met | pointer to the sol structure. |
sols | array of solutions at mesh vertices. sols[3*(i-1)]@3 is the solution at vertex i. |
This function retrieves all elements of a vector-valued solution field.
SUBROUTINE MMGS_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 1007 of file API_functions_s.c.
int MMGS_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 the vertex is corner. |
isRequired | pointer to the flag saying if the vertex is required. |
This function retrieves the coordinates c0, c1,c2, reference ref, and attributes 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 MMGS_GetByIdx_vertex function can be used instead.
SUBROUTINE MMGS_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 360 of file API_functions_s.c.
int MMGS_Get_vertices | ( | MMG5_pMesh | mesh, |
double * | vertices, | ||
MMG5_int * | refs, | ||
int * | areCorners, | ||
int * | areRequired | ||
) |
Get the coordinates, references and attributes of all vertices in the mesh.
mesh | pointer to the mesh structure. |
vertices | pointer to the array of coordinates. The coordinates of vertex i are stored in vertices[(i-1)*3]@3. |
refs | pointer to the array of vertex references. The ref of vertex i is stored in refs[i-1]. |
areCorners | pointer to the array of flags saying if vertices are corners. areCorners[i-1]=1 if vertex i is corner. |
areRequired | pointer to the table of flags saying if vertices are required. areRequired[i-1]=1 if vertex i is required. |
! SUBROUTINE MMGS_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 420 of file API_functions_s.c.
int MMGS_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 the vertex is corner. |
isRequired | pointer to the flag saying if the vertex is required. |
idx | index of vertex to get. |
This function retrieves the coordinates c0, c1, c2 and reference ref of vertex idx of mesh, as well as its "corner" and "required" attributes.
SUBROUTINE MMGS_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 :: isCorner,isRequired
INTEGER(MMG5F_INT) :: ref,idx
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 387 of file API_functions_s.c.
void MMGS_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. |
SUBROUTINE MMGS_INIT_FILENAMES(mesh,sol)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
END SUBROUTINE
Definition at line 56 of file API_functions_s.c.
int MMGS_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. |
For the MMGS_mmgslib function, you need to call the MMGS_Init_mesh function with the following arguments : MMGS_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppMet, &your_metric,MMG5_ARG_end).
For the MMGS_mmgsls function, you need to call the MMGS_Init_mesh function with the following arguments : MMGS_Init_mesh(MMG5_ARG_start,MMG5_ARG_ppMesh, &your_mesh, MMG5_ARG_ppLs, &your_level_set,MMG5_ARG_end).
Here, your_mesh is a MMG5_pMesh, your_metric and your_level_set are MMG5_pSol.
Definition at line 43 of file API_functions_s.c.
void MMGS_Init_parameters | ( | MMG5_pMesh | mesh | ) |
Initialize the input parameters.
mesh | pointer to the mesh structure. |
Initialization of the input parameters (stored in the Info structure).
SUBROUTINE MMGS_INIT_PARAMETERS(mesh)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
END SUBROUTINE
Definition at line 84 of file API_functions_s.c.
int MMGS_Set_corner | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "corner" attribute to a vertex.
mesh | pointer to the mesh structure. |
k | vertex number. |
This function sets the corner attribute at vertex pos (pos from 1 to the number of vertices included).
SUBROUTINE MMGS_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 710 of file API_functions_s.c.
int MMGS_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 MMGS_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 MMGS_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 1511 of file API_functions_s.c.
int MMGS_Set_edge | ( | MMG5_pMesh | mesh, |
MMG5_int | v0, | ||
MMG5_int | v1, | ||
MMG5_int | ref, | ||
MMG5_int | pos | ||
) |
Set the vertices and reference of one edge in the 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. |
Assigns vertices v0, v1 and reference ref to the edge at position pos in the mesh structure (pos from 1 to the number of edges included).
SUBROUTINE MMGS_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 585 of file API_functions_s.c.
int MMGS_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 an array of edges. The vertices of edge i should be given in edges[(i-1)*2] and edges[(i-1)*2+1]. |
refs | pointer to an array of references. refs[i-1] is the reference of edge i. |
SUBROUTINE MMGS_SET_EDGES(mesh,edges,refs,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT), INTENT(IN):: edges(*),refs(*)
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 663 of file API_functions_s.c.
int MMGS_Set_inputMeshName | ( | MMG5_pMesh | mesh, |
const char * | meshin | ||
) |
Set the name of the input mesh.
mesh | pointer to the mesh structure. |
meshin | input mesh name. |
SUBROUTINE MMGS_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 63 of file API_functions_s.c.
int MMGS_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 MMGS_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 72 of file API_functions_s.c.
int MMGS_Set_inputSolName | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
const char * | solin | ||
) |
Set the name of the input solution file.
mesh | pointer to the mesh structure. |
sol | pointer to the sol structure. |
solin | name of the input solution file. |
SUBROUTINE MMGS_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 68 of file API_functions_s.c.
int MMGS_Set_iparameter | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
int | iparam, | ||
MMG5_int | val | ||
) |
set an integer parameter of the remesher
functions to set parameters
mesh | pointer to the mesh structure. |
sol | pointer to the sol structure (unused). |
iparam | integer parameter to set (see MMGS_Param for a list of parameters that can be set). |
val | value for the parameter. |
This function sets integer parameter iparam to value val.
SUBROUTINE MMGS_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 1305 of file API_functions_s.c.
int MMGS_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 field i of the solution array and at position \pos (pos from 1 to the number of vertices included and i from 1 to the number of solutions). The type of solution is determined from sol.
SUBROUTINE MMGS_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 1146 of file API_functions_s.c.
int MMGS_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 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 solution at field i of the solution array (i from 1 to the number of solutions). The type of solution is determined from sol.
SUBROUTINE MMGS_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 1203 of file API_functions_s.c.
int MMGS_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 length. |
hmax | maximal edge length. |
Hausdorff | distance. |
Set local parameters: set the hausdorff distance at hausd, the minmal edge length at hmin and the maximal edge length at hmax for all elements of type typ and reference ref.
SUBROUTINE MMGS_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 1591 of file API_functions_s.c.
int MMGS_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 level-set discretization mode. Base references are boundary conditions to which an implicit domain can be attached. All implicit volumes that are not attached to listed base references are deleted as spurious volumes by the rmc option.
SUBROUTINE MMGS_SET_LSBASEREFERENCE(mesh,sol,br,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER(MMG5F_INT), INTENT(IN):: br
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1681 of file API_functions_s.c.
int MMGS_Set_meshSize | ( | MMG5_pMesh | mesh, |
MMG5_int | np, | ||
MMG5_int | nt, | ||
MMG5_int | na | ||
) |
Set the number of vertices, triangles and edges of the mesh and allocate the associated tables.
mesh | pointer to the mesh structure. |
np | number of vertices. |
nt | number of triangles. |
na | number of edges. |
If called again, this function resets the whole mesh to reallocate it at the new size
SUBROUTINE MMGS_SET_MESHSIZE(mesh,np,nt,na,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
INTEGER(MMG5F_INT) :: np,nt,na
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 185 of file API_functions_s.c.
int MMGS_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 triangle reference. |
split | MMG5_MMAT_NoSplit if the entity must not be split, 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 triangles on both sides of the level set, after discretization. Negative and positive here refer to areas where the function is smaller or larger, respectively, than the isovalue of the level set.
SUBROUTINE MMGS_SET_MULTIMAT(mesh,sol,ref,split,rmin,rplus,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER(MMG5F_INT), INTENT(IN):: ref,rmin,rplus
INTEGER, INTENT(IN) :: split
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 1676 of file API_functions_s.c.
int MMGS_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 MMGS_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 774 of file API_functions_s.c.
int MMGS_Set_outputMeshName | ( | MMG5_pMesh | mesh, |
const char * | meshout | ||
) |
Set the name of the output mesh file.
mesh | pointer to the mesh structure. |
meshout | name of the output mesh file. |
SUBROUTINE MMGS_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 76 of file API_functions_s.c.
int MMGS_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 MMGS_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 81 of file API_functions_s.c.
int MMGS_Set_requiredEdge | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "required" attribute to an edge.
mesh | pointer to the mesh structure. |
k | edge index. |
This function makes edge k a required edge. Required edges will not be modified by the remesher.
SUBROUTINE MMGS_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 762 of file API_functions_s.c.
int MMGS_Set_requiredTriangle | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "required" attribute to a triangle.
mesh | pointer to the mesh structure. |
k | triangle index. |
This function sets the required attribute at triangle k.
SUBROUTINE MMGS_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 735 of file API_functions_s.c.
int MMGS_Set_requiredVertex | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "required" attribute to a vertex.
mesh | pointer to the mesh structure. |
k | vertex number. |
This function sets the required attribute at vertex k. Vertices with this attribute will not be modified by the remesher.
SUBROUTINE MMGS_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 722 of file API_functions_s.c.
int MMGS_Set_ridge | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Assign the "ridge" attribute to an edge.
mesh | pointer to the mesh structure. |
k | edge index. |
This function gives the ridge attribute to edge k. This influences how this edge is treated by the remesher.
SUBROUTINE MMGS_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 751 of file API_functions_s.c.
int MMGS_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. |
This function sets the scalar value s at position pos in the solution structure (pos from 1 to the number of vertices included).
SUBROUTINE MMGS_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 823 of file API_functions_s.c.
int MMGS_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 scalar solutions values. s[i-1] is the solution at vertex i. |
SUBROUTINE MMGS_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 887 of file API_functions_s.c.
int MMGS_Set_solsAtVerticesSize | ( | MMG5_pMesh | mesh, |
MMG5_pSol * | sol, | ||
int | nsols, | ||
MMG5_int | nentities, | ||
int * | typSol | ||
) |
Initialize an array of solution fields defined at vertices: set dimension, types and number of fields.
mesh | pointer to the mesh structure. |
sol | pointer to an allocatable sol structure. |
nsols | number of solutions per entity |
nentities | number of entities |
typSol | Array of size nsol listing the type of the solutions (scalar, vectorial, ..., see MMG5_type for possible values) |
To use to initialize an array of solution fields (not used by Mmg itself).
SUBROUTINE MMGS_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 140 of file API_functions_s.c.
int MMGS_Set_solSize | ( | MMG5_pMesh | mesh, |
MMG5_pSol | sol, | ||
int | typEntity, | ||
MMG5_int | np, | ||
int | typSol | ||
) |
Initialize an array of solution fields: set dimension, types and number of fields.
mesh | pointer to the mesh structure. |
sol | pointer to the sol structure. |
typEntity | types of solution entities (vertices, triangles, ... see MMG5_entities for possible values). |
np | number of solutions. |
typSol | type of solution (scalar, vectorial, ..., see MMG5_type for possible values) |
To use to initialize an array of solution fields (not used by Mmg itself).
SUBROUTINE MMGS_SET_SOLSIZE(mesh,sol,typEntity,np,typSol,retval)
MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh,sol
INTEGER, INTENT(IN) :: typEntity,typSol
INTEGER(MMG5F_INT), INTENT(IN):: np
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
Definition at line 93 of file API_functions_s.c.
int MMGS_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). |
This function sets a tensor value at position pos in solution structure (pos from 1 to the number of vertices included).
SUBROUTINE MMGS_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 1022 of file API_functions_s.c.
int MMGS_Set_tensorSols | ( | MMG5_pSol | met, |
double * | sols | ||
) |
Set all elements of a tensor solution structure.
met | pointer to the sol structure. |
sols | array of tensorial solutions. sols[6*(i-1)]@6 is the solution at vertex i |
SUBROUTINE MMGS_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 1101 of file API_functions_s.c.
int MMGS_Set_triangle | ( | MMG5_pMesh | mesh, |
MMG5_int | v0, | ||
MMG5_int | v1, | ||
MMG5_int | v2, | ||
MMG5_int | ref, | ||
MMG5_int | pos | ||
) |
Set the coordinates and reference of a single triangle.
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 sets a triangle with vertices v0, v1, v2 and reference ref at position pos in the mesh structure (pos from 1 to the number of triangles included).
SUBROUTINE MMGS_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 456 of file API_functions_s.c.
int MMGS_Set_triangles | ( | MMG5_pMesh | mesh, |
MMG5_int * | tria, | ||
MMG5_int * | refs | ||
) |
Set the vertices and references of all triangles in the mesh.
mesh | pointer to the mesh structure. |
tria | pointer to an array of vertex numbers Vertices of the \(i^{th}\) triangles are stored in tria[(i-1)*3]@3. |
refs | pointer to an array of triangle references. refs[i-1] is the reference of the \(i^{th}\) triangle. |
! SUBROUTINE MMGS_SET_TRIANGLES(mesh,tria,refs,retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! INTEGER(MMG5F_INT),DIMENSION(*), INTENT(IN) :: tria,refs
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 537 of file API_functions_s.c.
int MMGS_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). |
This function sets the vectorial value \((v_x,v_y,v_z)\) at position pos in the solution structure (pos from 1 to the number of vertices included).
SUBROUTINE MMGS_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 914 of file API_functions_s.c.
int MMGS_Set_vectorSols | ( | MMG5_pSol | met, |
double * | sols | ||
) |
Set all elements of a vector solution structure.
met | pointer to the sol structure. |
sols | array of vectorial solutions sols[3*(i-1)]@3 is the solution at vertex i |
This function sets a vector-valued solution at each element of solution structure.
SUBROUTINE MMGS_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 984 of file API_functions_s.c.
int MMGS_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. |
Set vertex coordinates c0, c1,c2 and reference ref at position pos in the mesh structure (pos from 1 to the number of vertices included).
SUBROUTINE MMGS_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 297 of file API_functions_s.c.
int MMGS_Set_vertices | ( | MMG5_pMesh | mesh, |
double * | vertices, | ||
MMG5_int * | refs | ||
) |
Set the coordinates and references of all vertices in a mesh.
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. |
refs | array of references. The reference of vertex \(i\) is stored in refs[ \(i-1\)]. |
! SUBROUTINE MMGS_SET_VERTICES(mesh,vertices,refs,retval)
! MMG5_DATA_PTR_T,INTENT(INOUT) :: mesh
! REAL(KIND=8), DIMENSION(*),INTENT(IN) :: vertices
! INTEGER(MMG5F_INT),DIMENSION(*), INTENT(IN) :: refs
! INTEGER, INTENT(OUT) :: retval
! END SUBROUTINE
Definition at line 333 of file API_functions_s.c.
int MMGS_Unset_corner | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove the "corner" attribute from a vertex.
mesh | pointer to the mesh structure. |
k | vertex number. |
This function removes the corner attribute from vertex pos (from 1 to the number of vertices included).
SUBROUTINE MMGS_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 716 of file API_functions_s.c.
int MMGS_Unset_requiredEdge | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove the "required" attribute from an edge.
mesh | pointer to the mesh structure. |
k | edge index. |
This function removes the "required" attribute from edge k.
SUBROUTINE MMGS_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 768 of file API_functions_s.c.
int MMGS_Unset_requiredTriangle | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove the "required" attribute from a vertex.
mesh | pointer to the mesh structure. |
k | triangle index. |
This function removes the required attribute from triangle k.
SUBROUTINE MMGS_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 743 of file API_functions_s.c.
int MMGS_Unset_requiredVertex | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove the "required" attribute from a vertex.
mesh | pointer to the mesh structure. |
k | vertex number. |
This function removes the required attribute from vertex k.
SUBROUTINE MMGS_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 729 of file API_functions_s.c.
int MMGS_Unset_ridge | ( | MMG5_pMesh | mesh, |
MMG5_int | k | ||
) |
Remove the "ridge" attribute from an edge.
mesh | pointer to the mesh structure. |
k | edge index. |
This function removes the ridge attribute from edge k.
SUBROUTINE MMGS_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 756 of file API_functions_s.c.