mmg3d
|
Fonctions for anisotropic size map computation. More...
#include "inlined_functions_3d.h"
Functions | |
int | _MMG3D_chk4ridVertices (MMG5_pMesh mesh, MMG5_pTetra pt) |
int | _MMG5_moymet (MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTetra pt, double *m1) |
static int | _MMG5_defmetsin (MMG5_pMesh mesh, MMG5_pSol met, int kel, int iface, int ip) |
static int | _MMG5_defmetrid (MMG5_pMesh mesh, MMG5_pSol met, int kel, int iface, int ip) |
static int | _MMG5_defmetref (MMG5_pMesh mesh, MMG5_pSol met, int kel, int iface, int ip) |
static int | _MMG5_defmetreg (MMG5_pMesh mesh, MMG5_pSol met, int kel, int iface, int ip) |
static int | _MMG5_defmetvol (MMG5_pMesh mesh, MMG5_pSol met) |
static int | _MMG3D_intextmet (MMG5_pMesh mesh, MMG5_pSol met, int np, double me[6]) |
static int | _MMG3D_nosurfsiz_ani (MMG5_pMesh mesh, MMG5_pSol met, int iel, int iploc, int iface, int ismet) |
int | _MMG3D_defsiz_ani (MMG5_pMesh mesh, MMG5_pSol met) |
static int | _MMG5_grad2metVol (MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTetra pt, int ia) |
int | _MMG5_gradsiz_ani (MMG5_pMesh mesh, MMG5_pSol met) |
Fonctions for anisotropic size map computation.
int _MMG3D_chk4ridVertices | ( | MMG5_pMesh | mesh, |
MMG5_pTetra | pt | ||
) |
int _MMG3D_defsiz_ani | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
mesh | pointer toward the mesh structure. |
met | pointer toward the metric stucture. |
Define size at points by intersecting the surfacic metric and the physical metric.
|
inlinestatic |
mesh | pointer toward the mesh structure. |
met | pointer toward the metric structure. |
np | global index of vertex in which we intersect the metrics. |
me | physical metric at point np. |
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 and
fields that contains respectively the specific sizes in the
and
directions.
|
inlinestatic |
mesh | pointer toward the mesh structure. |
met | pointer toward the metric structure. |
iel | tetra in which we work |
iploc | local index of point where metric must be defined |
iface | face to which belong iploc |
Define metric at point iploc of tetra iel for iploc a surface point marked by option nosurf.
If a metric is provided, preserve it except on ridges points where a metric with hmax size and directions normal to the ridges is intersected with the user metric.
Without initial metric, an isotropic metric is computed from the mean of the lengths of the edges passing through the point (except on ridges points).
A metric is provided: metric truncature
No metric is provided: Define size at regular surface point for the -nosurf option (ie a manifold point): the size is computed as the mean of the length of edges passing through the point
First step: search for local parameters
Second step: Very rough eval of the metric at non-manifold point: take the non-manifold edge length
|
static |
mesh | pointer toward the mesh structure. |
met | pointer toward the metric structure. |
kel | index of the triangle in which we work. |
iface | face of the tetra on which we work. |
ip | index of the point on which we want to compute the metric (in tetra kel). |
Define metric map at a REF vertex of the mesh, associated to the geometric approx of the surface.
|
static |
mesh | pointer toward the mesh structure. |
met | pointer toward the metric structure. |
kel | index of the triangle in which we work. |
iface | working face. |
ip | index of the point on which we want to compute the metric in (tetra kel). |
Define metric map at a REGULAR vertex of the mesh, associated to the geometric approx of the surface.
|
static |
mesh | pointer toward the mesh structure. |
met | pointer toward the metric structure. |
kel | index of the tetra in which we work. |
iface | face of the tetra on which we work. |
ip | index of the point on which we want to compute the metric (in tetra kel). |
Compute metric tensor associated to a ridge point : convention is a bit weird here : p->m[0] is the specific size in direction t, p->m[1] is the specific size in direction p->m[2] is the specific size in direction
, and at each time, metric tensor has to be recomputed, depending on the side.
|
static |
mesh | pointer toward the mesh structure. |
met | pointer toward the metric structure. |
kel | index of the tetra in which we work. |
iface | face of the tetra on which we work. |
ip | index of the point on which we want to compute the metric (in tetra kel). |
Define metric map at a SINGULARITY of the geometry, associated to the geometric approx of the surface. metric ,
size.
|
inlinestatic |
mesh | pointer toward the mesh structure. |
met | pointer toward the metric structure. |
Define metric map at a non-boundary vertex of the mesh. Allocate the metric if needed. Truncate the metric at the hmin/hmax values.
|
inlinestatic |
mesh | pointer toward the mesh. |
met | pointer toward the metric structure. |
pt | pointer toward a tetra. |
ia | edge index in tetra pt. |
Enforces gradation of metric in one extremity of edge ia in tetra pt with respect to the other.
int _MMG5_gradsiz_ani | ( | MMG5_pMesh | mesh, |
MMG5_pSol | met | ||
) |
mesh | pointer toward the mesh structure. |
met | pointer toward the metric structure. |
Enforces mesh gradation by truncating metric field.
|
inline |
mesh | pointer toward the mesh structure. |
met | pointer toward the sol structure. |
pt | pointer toward a tetra. |
m1 | computed metric. |
Compute mean metric over the internal tetra pt. Do not take into account the metric values at ridges points (because we don't know how to build it).