Mmg
Simplicial remeshers (mesh adaptation, isovalue discretization, lagrangian movement)
|
Various tools for the mmg libraries. More...
#include "mmgcommon_private.h"
Go to the source code of this file.
Functions | |
void | MMG5_nsort (int8_t n, double *val, int8_t *perm) |
void | MMG5_nperm (int8_t n, int8_t shift, int8_t stride, double *val, double *oldval, int8_t *perm) |
int | MMG5_devangle (double *n1, double *n2, double crit) |
int | MMG5_nonUnitNorPts (MMG5_pMesh mesh, MMG5_int ip1, MMG5_int ip2, MMG5_int ip3, double *n) |
double | MMG5_nonorsurf (MMG5_pMesh mesh, MMG5_pTria pt) |
int | MMG5_norpts (MMG5_pMesh mesh, MMG5_int ip1, MMG5_int ip2, MMG5_int ip3, double *n) |
int | MMG5_nortri (MMG5_pMesh mesh, MMG5_pTria pt, double *n) |
void | MMG5_transpose3d (double m[3][3]) |
int | MMG5_test_transpose3d () |
void | MMG5_dotprod (int8_t dim, double *a, double *b, double *result) |
int | MMG5_test_dotprod () |
void | MMG5_crossprod3d (double *a, double *b, double *result) |
int | MMG5_test_crossprod3d () |
void | MMG5_mn (double m[6], double n[6], double mn[9]) |
int | MMG5_test_mn () |
int | MMG5_rmtr (double r[3][3], double m[6], double mr[6]) |
int | MMG5_test_rmtr () |
int | MMG5_rotmatrix (double n[3], double r[3][3]) |
int | MMG5_test_rotmatrix () |
int | MMG5_invmat (double *m, double *mi) |
int | MMG5_invmatg (double m[9], double mi[9]) |
int | MMG5_invmat33 (double m[3][3], double mi[3][3]) |
int | MMG5_invmat22 (double m[2][2], double mi[2][2]) |
int | MMG5_sys33sym (double a[6], double b[3], double r[3]) |
void | MMG5_printTria (MMG5_pMesh mesh, char *fileName) |
size_t | MMG5_memSize (void) |
void | MMG5_memOption_memSet (MMG5_pMesh mesh) |
double | MMG5_det3pt1vec (double c0[3], double c1[3], double c2[3], double v[3]) |
double | MMG5_det4pt (double c0[3], double c1[3], double c2[3], double c3[3]) |
double | MMG5_orvol (MMG5_pPoint point, MMG5_int *v) |
double | MMG2D_quickarea (double a[2], double b[2], double c[2]) |
void | MMG5_mark_verticesAsUnused (MMG5_pMesh mesh) |
void | MMG5_mark_usedVertices (MMG5_pMesh mesh, void(*delPt)(MMG5_pMesh, MMG5_int)) |
void | MMG5_keep_subdomainElts (MMG5_pMesh mesh, int nsd, int(*delElt)(MMG5_pMesh, MMG5_int)) |
double | MMG5_test_mat_error (int8_t nelem, double m1[], double m2[]) |
int | MMG5_test_invmat22 () |
int | MMG5_test_invmat33 () |
Various tools for the mmg libraries.
Definition in file tools.c.
double MMG2D_quickarea | ( | double | a[2], |
double | b[2], | ||
double | c[2] | ||
) |
void MMG5_crossprod3d | ( | double * | a, |
double * | b, | ||
double * | result | ||
) |
|
inline |
|
inline |
int MMG5_devangle | ( | double * | n1, |
double * | n2, | ||
double | crit | ||
) |
void MMG5_dotprod | ( | int8_t | dim, |
double * | a, | ||
double * | b, | ||
double * | result | ||
) |
int MMG5_invmat | ( | double * | m, |
double * | mi | ||
) |
int MMG5_invmat22 | ( | double | m[2][2], |
double | mi[2][2] | ||
) |
int MMG5_invmat33 | ( | double | m[3][3], |
double | mi[3][3] | ||
) |
int MMG5_invmatg | ( | double | m[9], |
double | mi[9] | ||
) |
void MMG5_keep_subdomainElts | ( | MMG5_pMesh | mesh, |
int | nsd, | ||
int(*)(MMG5_pMesh, MMG5_int) | delElt | ||
) |
void MMG5_mark_usedVertices | ( | MMG5_pMesh | mesh, |
void(*)(MMG5_pMesh, MMG5_int) | delPt | ||
) |
void MMG5_mark_verticesAsUnused | ( | MMG5_pMesh | mesh | ) |
void MMG5_memOption_memSet | ( | MMG5_pMesh | mesh | ) |
mesh | pointer toward the mesh structure |
Set the memMax value to its "true" value if memory asked by user. Here the MMG5_MEMPERCENT coef is already applied on memMax.
Definition at line 891 of file tools.c.
size_t MMG5_memSize | ( | void | ) |
void MMG5_mn | ( | double | m[6], |
double | n[6], | ||
double | mn[9] | ||
) |
|
inline |
|
inline |
mesh | pointer toward the mesh stucture. |
ip1 | first point of face. |
ip2 | second point of face. |
ip3 | third point of face. |
n | pointer to store the computed normal. |
Compute non-normalized face normal given three points on the surface.
Definition at line 127 of file tools.c.
|
inline |
mesh | pointer toward the mesh stucture. |
ip1 | first point of face. |
ip2 | second point of face. |
ip3 | third point of face. |
n | pointer to store the computed normal. |
Compute normalized face normal given three points on the surface.
Definition at line 183 of file tools.c.
|
inline |
|
inline |
n | array size |
shift | shift to apply when taking array value |
stride | stride to apply when taking array value |
val | array of double precision floating points |
oldval | array to store input values |
perm | permutation array |
Naively permute a small array. Use shift and stride to eventually permute matrix columns.
Definition at line 80 of file tools.c.
|
inline |
n | array size |
val | array of double precision floating points |
perm | permutation array |
naive (increasing) sorting algorithm, for very small tabs ; permutation is stored in perm
Definition at line 49 of file tools.c.
|
inline |
void MMG5_printTria | ( | MMG5_pMesh | mesh, |
char * | fileName | ||
) |
|
inline |
|
inline |
|
inline |
int MMG5_test_crossprod3d | ( | ) |
int MMG5_test_dotprod | ( | ) |
int MMG5_test_invmat22 | ( | ) |
int MMG5_test_invmat33 | ( | ) |
|
inline |
int MMG5_test_mn | ( | ) |
|
inline |
int MMG5_test_rotmatrix | ( | ) |
Test computation of the rotation matrix that sends vector n to the third vector of canonical basis.
Rodrigues' rotation formula (transposed to give a map from n to [0,0,1]). Input vector must be a unit vector.
Approximate z-unit vector
Check orthonormality
Definition at line 512 of file tools.c.
int MMG5_test_transpose3d | ( | ) |