mmg3d
mettools.c File Reference

Metric tools for the mmg applications. More...

#include "mmgcommon.h"
Include dependency graph for mettools.c:

Functions

int _MMG5_buildridmetfic (MMG5_pMesh mesh, double t[3], double n[3], double dtan, double dv, double dn, double m[6])
 
int _MMG5_intmetsavedir (MMG5_pMesh mesh, double *m, double *n, double *mr)
 
int _MMG5_buildridmet (MMG5_pMesh mesh, MMG5_pSol met, int np0, double ux, double uy, double uz, double mr[6])
 
int _MMG5_buildridmetnor (MMG5_pMesh mesh, MMG5_pSol met, int np0, double nt[3], double mr[6])
 
int _MMG5_intersecmet22 (MMG5_pMesh mesh, double *m, double *n, double *mr)
 
int _MMG5_mmgIntextmet (MMG5_pMesh mesh, MMG5_pSol met, int np, double me[6], double n[3])
 
int _MMG5_paratmet (double c0[3], double n0[3], double m[6], double c1[3], double n1[3], double mt[6])
 

Detailed Description

Metric tools for the mmg applications.

Author
Charles Dapogny (UPMC)
Cécile Dobrzynski (Bx INP/Inria/UBordeaux)
Pascal Frey (UPMC)
Algiane Froehly (Inria/UBordeaux)
Version
5

Function Documentation

◆ _MMG5_buildridmet()

int _MMG5_buildridmet ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  np0,
double  ux,
double  uy,
double  uz,
double  mr[6] 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the sol structure.
np0index of edge's extremity.
uxdistance $[p0;p1]$ along x axis.
uydistance $[p0;p1]$ along y axis.
uzdistance $[p0;p1]$ along z axis.
mrcomputed metric tensor.
Returns
1 if success

Build metric tensor at ridge point p0, when computations with respect to p1 are to be held.

Here is the caller graph for this function:

◆ _MMG5_buildridmetfic()

int _MMG5_buildridmetfic ( MMG5_pMesh  mesh,
double  t[3],
double  n[3],
double  dtan,
double  dv,
double  dn,
double  m[6] 
)
inline
Parameters
meshpointer toward the mesh structure.
ttangent at the ridge point.
nnormal at the ridge point.
dtanmetric size along the tangent direction.
dvmetric size along the $t^{}n$ direction.
dnmetric size along the normal direction.
mcomputed metric at the ridge point.
Returns
1

Build metric tensor at a fictitious ridge point, whose normal and tangent are provided.

Here is the caller graph for this function:

◆ _MMG5_buildridmetnor()

int _MMG5_buildridmetnor ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  np0,
double  nt[3],
double  mr[6] 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the sol structure.
np0index of edge's extremity.
ntnormal direction at the ridge point.
mrcomputed metric tensor.

Build metric tensor at ridge point p0, when the 'good' normal direction is given by nt.

Here is the caller graph for this function:

◆ _MMG5_intersecmet22()

int _MMG5_intersecmet22 ( MMG5_pMesh  mesh,
double *  m,
double *  n,
double *  mr 
)
Parameters
meshpointer toward the mesh structure.
mpointer toward a $(2x2)$ metric.
npointer toward a $(2x2)$ metric.
mrcomputed $(2x2)$ metric.
Returns
0 if fail, 1 otherwise.

Compute the intersected (2 x 2) metric from metrics m and n : take simultaneous reduction, and proceed to truncation in sizes.

Here is the caller graph for this function:

◆ _MMG5_intmetsavedir()

int _MMG5_intmetsavedir ( MMG5_pMesh  mesh,
double *  m,
double *  n,
double *  mr 
)
Parameters
meshpointer toward the mesh structure.
mpointer toward the first metric to intersect.
npointer toward the second metric to intersect.
mrpointer toward the computed intersected metric.
Returns
1.

Compute the intersected (2 x 2) metric between metrics m and n, PRESERVING the directions of m. Result is stored in mr.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _MMG5_mmgIntextmet()

int _MMG5_mmgIntextmet ( MMG5_pMesh  mesh,
MMG5_pSol  met,
int  np,
double  me[6],
double  n[3] 
)
Parameters
meshpointer toward the mesh structure.
metpointer toward the metric structure.
npglobal index of vertex in which we intersect the metrics.
mephysical metric at point np.
nnormal or tangent at point np.
Returns
0 if fail, 1 otherwise.

Intersect the surface metric held in np (supported in tangent plane of np) with 3*3 physical metric in me. For ridge points, this function fill the $ p_0->m[3]$ and $ p_0->m[4]$ fields that contains respectively the specific sizes in the $n_1$ and $n_2$ directions.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ _MMG5_paratmet()

int _MMG5_paratmet ( double  c0[3],
double  n0[3],
double  m[6],
double  c1[3],
double  n1[3],
double  mt[6] 
)
Parameters
c0table of the coordinates of the starting point.
n0normal at the starting point.
mmetric to be transported.
c1table of the coordinates of the ending point.
n1normal at the ending point.
mtcomputed metric.
Returns
0 if fail, 1 otherwise.

Parallel transport of a metric tensor field, attached to point c0, with normal n0, to point c1, with normal n1.

Here is the call graph for this function:
Here is the caller graph for this function: