mmg3d
|
Tools functions for the mmg3d library. More...
#include "inlined_functions_3d.h"
Tools functions for the mmg3d library.
int MMG3D_defaultValues | ( | MMG5_pMesh | mesh | ) |
Tools for the library
mesh | pointer toward the mesh structure. |
Print the default parameters values.
SUBROUTINE MMG3D_DEFAULTVALUES(mesh,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
void MMG3D_destockOptions | ( | MMG5_pMesh | mesh, |
MMG5_Info * | info | ||
) |
mesh | pointer toward the mesh structure. |
info | pointer toward the info structure. |
Recover the info structure stored in the mesh structure.
SUBROUTINE MMG3D_DESTOCKOPTIONS(mesh,info)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,info
END SUBROUTINE
int MMG3D_doSol | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
mesh | pointer toward the mesh structure |
met | pointer toward the sol structure |
Compute isotropic size map according to the mean of the length of the edges passing through a point.
SUBROUTINE MMG3D_DOSOL(mesh,met,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
int MMG3D_Get_adjaTet | ( | MMG5_pMesh | mesh, |
int | kel, | ||
int | listet[4] | ||
) |
Return adjacent elements of a tetrahedron.
Utils
mesh | pointer toward the mesh structure. |
kel | tetrahedron index. |
listet | pointer toward the table 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. if the
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, INTENT(IN) :: kel
INTEGER, DIMENSION(4), INTENT(OUT) :: listet
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
int MMG3D_Get_tetFromTria | ( | MMG5_pMesh | mesh, |
int | ktri, | ||
int * | ktet, | ||
int * | iface | ||
) |
mesh | pointer toward the mesh structure. |
ktri | index of the boundary triangle. |
ktet | pointer toward an integer that will contains the tetra index. |
iface | pointer toward the triangle in ktet. |
Fill ktet by the indice of a tetra to which belong a boundary triangle and iface by the indice of the triangle in the tetra.
SUBROUTINE MMG3D_GET_TETFROMTRIA(mesh,ktri,ktet,iface,retval)
MMG5_DATA_PTR_T, INTENT(IN) :: mesh
INTEGER, INTENT(IN) :: ktri
INTEGER, INTENT(OUT) :: ktet,iface
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
int MMG3D_Get_tetsFromTria | ( | MMG5_pMesh | mesh, |
int | ktri, | ||
int | ktet[2], | ||
int | iface[2] | ||
) |
mesh | pointer toward 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 toward 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 tetra to which belong 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 tetra only.
SUBROUTINE MMG3D_GET_TETSFROMTRIA(mesh,ktri,ktet,iface,retval)
MMG5_DATA_PTR_T, INTENT(IN) :: mesh
INTEGER, INTENT(IN) :: ktri
INTEGER, DIMENSION(2), INTENT(OUT) :: ktet,iface
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
int MMG3D_mmg3dcheck | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
double | critmin, | ||
double | lmin, | ||
double | lmax, | ||
int * | eltab, | ||
char | metRidTyp | ||
) |
Checks
mesh | pointer toward the mesh structure. |
met | pointer toward the sol structure. |
critmin | minimum quality for elements. |
lmin | minimum edge length. |
lmax | maximum ede length. |
eltab | table 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). |
Search invalid elements (in term of quality or edge length).
SUBROUTINE MMG3D_MMG3DCHECK(mesh,met,critmin,lmin,lmax,eltab,&
metridtyp,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
REAL(KIND=8), INTENT(IN) :: critmin,lmin,lmax
INTEGER,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
int MMG3D_parsar | ( | int | argc, |
char * | argv[], | ||
MMG5_pMesh | mesh, | ||
MMG5_pSol | met | ||
) |
argc | number of command line arguments. |
argv | command line arguments. |
mesh | pointer toward the mesh structure. |
met | pointer toward the sol structure. |
Store command line arguments.
int MMG3D_parsop | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
mesh | pointer toward the mesh structure. |
met | pointer toward 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
int MMG3D_searchlen | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
double | lmin, | ||
double | lmax, | ||
int * | eltab, | ||
char | metRidTyp | ||
) |
mesh | pointer toward the mesh structure. |
met | pointer toward the sol structure. |
lmin | minimum edge length. |
lmax | maximum ede length. |
eltab | table 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,DIMENSION(*), INTENT(OUT) :: eltab
INTEGER, INTENT(IN) :: metridtyp
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
void MMG3D_searchqua | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met, | ||
double | critmin, | ||
int * | eltab, | ||
char | metRidTyp | ||
) |
mesh | pointer toward the mesh structure. |
met | pointer toward the sol structure. |
critmin | minimum quality for elements. |
eltab | pointer toward the table 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,DIMENSION(*), INTENT(OUT) :: eltab
INTEGER, INTENT(IN) :: metridtyp
END SUBROUTINE
int MMG3D_Set_constantSize | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
mesh | pointer toward the mesh structure |
met | pointer toward the sol structure |
Compute constant size map according to mesh->info.hsiz, mesh->info.hmin and mesh->info.hmax. Update this 3 value if not compatible.
SUBROUTINE MMG3D_SET_CONSTANTSIZE(mesh,met,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
void MMG3D_setfunc | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
To associate function pointers without calling MMG3D_mmg3dlib
mesh | pointer toward the mesh structure (unused). |
met | pointer toward the sol structure (unused). |
Set function pointers for caltet, lenedg, lenedgCoor defsiz, gradsiz... depending if the readed metric is anisotropic or isotropic
SUBROUTINE MMG3D_SETFUNC(mesh,met)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
END SUBROUTINE
int MMG3D_stockOptions | ( | MMG5_pMesh | mesh, |
MMG5_Info * | info | ||
) |
mesh | pointer toward the mesh structure. |
info | pointer toward the info structure. |
Store the info structure in the mesh structure.
SUBROUTINE MMG3D_STOCKOPTIONS(mesh,info,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,info
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
int MMG3D_switch_metricStorage | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
mesh | pointer toward the mesh structure |
met | pointer toward the sol structure |
Switch the m22 and m23 value of the metric to allow to pass from the API storage to the medit one.
SUBROUTINE MMG3D_SWITCH_METRICSTORAGE(mesh,met,retval)
MMG5_DATA_PTR_T, INTENT(INOUT) :: mesh,met
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE
int MMG3D_usage | ( | char * | prog | ) |
prog | pointer toward the program name. |
return | 1 if success, 0 if fail. |
Print help for mmg3d options.
SUBROUTINE MMG3D_USAGE(prog,strlen0,retval)
CHARACTER(LEN=*), INTENT(IN) :: prog
INTEGER, INTENT(IN) :: strlen0
INTEGER, INTENT(OUT) :: retval
END SUBROUTINE