37 #ifndef _INLINED_FUNC_H 38 #define _INLINED_FUNC_H 55 double *m0,
double *m1,
char isedg) {
57 double gammaprim0[3],gammaprim1[3],t[3],*
n1,*
n2,ux,uy,uz,ps1,ps2,l0,l1;
58 static char mmgWarn=0;
63 ux = p1->
c[0] - p0->
c[0];
64 uy = p1->
c[1] - p0->
c[1];
65 uz = p1->
c[2] - p0->
c[2];
74 memcpy(t,p0->
n,3*
sizeof(
double));
75 ps1 = ux*t[0] + uy*t[1] + uz*t[2];
76 gammaprim0[0] = ps1*t[0];
77 gammaprim0[1] = ps1*t[1];
78 gammaprim0[2] = ps1*t[2];
85 ps1 = ux*
n1[0] + uy*
n1[1] + uz*
n1[2];
86 ps2 = ux*
n2[0] + uy*
n2[1] + uz*
n2[2];
88 if ( fabs(ps2) < fabs(ps1) ) {
96 ps1 = ux*
n1[0] + uy*
n1[1] + uz*
n1[2];
102 ps1 = ux*
n1[0] + uy*
n1[1] + uz*
n1[2];
104 gammaprim0[0] = ux - ps1*
n1[0];
105 gammaprim0[1] = uy - ps1*
n1[1];
106 gammaprim0[2] = uz - ps1*
n1[2];
115 memcpy(t,p1->
n,3*
sizeof(
double));
116 ps1 = -ux*t[0] - uy*t[1] - uz*t[2];
117 gammaprim1[0] = ps1*t[0];
118 gammaprim1[1] = ps1*t[1];
119 gammaprim1[2] = ps1*t[2];
125 ps1 = -ux*
n1[0] - uy*
n1[1] - uz*
n1[2];
126 ps2 = -ux*
n2[0] - uy*
n2[1] - uz*
n2[2];
128 if ( fabs(ps2) < fabs(ps1) ) {
136 ps1 = - ux*
n1[0] - uy*
n1[1] - uz*
n1[2];
142 ps1 = -ux*
n1[0] - uy*
n1[1] - uz*
n1[2];
144 gammaprim1[0] = - ux - ps1*
n1[0];
145 gammaprim1[1] = - uy - ps1*
n1[1];
146 gammaprim1[2] = - uz - ps1*
n1[2];
153 l0 = m0[0]*gammaprim0[0]*gammaprim0[0] + m0[3]*gammaprim0[1]*gammaprim0[1] \
154 + m0[5]*gammaprim0[2]*gammaprim0[2] \
155 + 2.0*m0[1]*gammaprim0[0]*gammaprim0[1] + 2.0*m0[2]*gammaprim0[0]*gammaprim0[2] \
156 + 2.0*m0[4]*gammaprim0[1]*gammaprim0[2];
158 l1 = m1[0]*gammaprim1[0]*gammaprim1[0] + m1[3]*gammaprim1[1]*gammaprim1[1] \
159 + m1[5]*gammaprim1[2]*gammaprim1[2] \
160 +2.0*m1[1]*gammaprim1[0]*gammaprim1[1] + 2.0*m1[2]*gammaprim1[0]*gammaprim1[2] \
161 + 2.0*m1[4]*gammaprim1[1]*gammaprim1[2];
165 fprintf(stderr,
" ## Warning: %s: at least 1 negative edge length " 166 "(%e)\n",__func__,l0);
173 fprintf(stderr,
" ## Warning: %s: at least 1 negative edge length " 174 "(%e)\n",__func__,l1);
179 l0 = 0.5*(sqrt(l0) + sqrt(l1));
200 double *m0,*m1,met0[6],met1[6],ux,uy,uz,rbasis[3][3];
201 static char mmgWarn = 0;
206 ux = p1->
c[0] - p0->
c[0];
207 uy = p1->
c[1] - p0->
c[1];
208 uz = p1->
c[2] - p0->
c[2];
218 fprintf(stderr,
" ## Warning: %s: a- unable to compute at least 1 ridge" 219 " metric.\n",__func__);
237 fprintf(stderr,
" ## Warning: %s: b- unable to compute at least 1 ridge" 238 " metric.\n",__func__);
267 int np0,
int np1,
char isedg) {
293 double h1,h2,l,r,len;
299 l = (p2->
c[0]-p1->
c[0])*(p2->
c[0]-p1->
c[0]) + (p2->
c[1]-p1->
c[1])*(p2->
c[1]-p1->
c[1]) \
300 + (p2->
c[2]-p1->
c[2])*(p2->
c[2]-p1->
c[2]);
303 len = fabs(r) <
MMG5_EPS ? l / h1 : l / (h2-h1) * log(r+1.0);
double n2[3]
Definition: libmmgtypes.h:234
MMG5_pPoint point
Definition: libmmgtypes.h:542
MMG5_pxPoint xpoint
Definition: libmmgtypes.h:543
#define MG_REF
Definition: mmgcommon.h:141
double * m
Definition: libmmgtypes.h:571
Definition: libmmgtypes.h:563
#define MG_BDY
Definition: mmgcommon.h:145
int16_t tag
Definition: libmmgtypes.h:223
static double MMG5_lenSurfEdg_iso(MMG5_pMesh mesh, MMG5_pSol met, int ip1, int ip2, char isedg)
Definition: inlined_functions.h:291
MMG5_pMesh * mesh
Definition: API_functionsf_2d.c:63
static double MMG5_lenEdg(MMG5_pMesh mesh, int np0, int np1, double *m0, double *m1, char isedg)
Definition: inlined_functions.h:54
#define MG_SIN(tag)
Definition: mmgcommon.h:163
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:214
static double MMG5_lenSurfEdg_ani(MMG5_pMesh mesh, MMG5_pSol met, int np0, int np1, char isedg)
Definition: inlined_functions.h:198
int xp
Definition: libmmgtypes.h:218
MMG mesh structure.
Definition: libmmgtypes.h:509
! double n2[3]
Definition: libmmgtypesf.h:275
static double MMG5_lenSurfEdg33_ani(MMG5_pMesh mesh, MMG5_pSol met, int np0, int np1, char isedg)
Definition: inlined_functions.h:266
double n1[3]
Definition: libmmgtypes.h:234
#define MMG5_EPS
Definition: eigenv.h:32
double c[3]
Definition: libmmgtypes.h:215
! double n1[3]
Definition: libmmgtypesf.h:275
#define MG_NOM
Definition: mmgcommon.h:144
double n[3]
Definition: libmmgtypes.h:216
#define MG_GEO
Definition: mmgcommon.h:142