100 fprintf(stderr,
"\n ## Warning: %s: 0. unable to get edge info"
104 assert ( (!(tag &
MG_BDY)) &&
"Boundary edge is seen as internal");
201 m1 = &met->
m[met->
size*ip1];
202 m2 = &met->
m[met->
size*ip2];
203 mm = &met->
m[met->
size*ip];
227 int ifa0, ifa1, iloc,
ier;
253 fprintf(stderr,
" %s: %d: interpreg_ani error.\n",__func__,__LINE__);
254 fprintf(stderr,
" Elt %"MMG5_PRId
": %"MMG5_PRId
" %"MMG5_PRId
" %"MMG5_PRId
" %"MMG5_PRId
"\n",
276 double dma[6],dmb[6],mai[6],mbi[6],mi[6];
278 static int8_t mmgWarn=0;
280 for (i=0; i<6; i++) {
287 fprintf(stderr,
"\n ## Warning: %s: at least 1 invalid metric.\n",__func__);
292 mi[i] = (1.0-t)*mai[i] + t*mbi[i];
297 fprintf(stderr,
"\n ## Warning: %s: at least 1 invalid metric.\n",__func__);
302 for (i=0; i<6; i++) mp[i] = mai[i];
340 for ( l=0; l<6; ++l )
341 m1[l] = met->
m[6*ip1+l];
346 for ( l=0; l<6; ++l )
347 m2[l] = met->
m[6*ip2+l];
352 fprintf(stderr,
" ## Error: %s:\n",__func__);
353 fprintf(stderr,
" pp1 : %d %d \n",
355 fprintf(stderr,
" m1 %e %e %e %e %e %e\n",
356 m1[0],m1[1],m1[2],m1[3],m1[4],m1[5]);
357 fprintf(stderr,
" pp2 : %d %d \n",
359 fprintf(stderr,
" m2 %e %e %e %e %e %e\n",
360 m2[0],m2[1],m2[2],m2[3],m2[4],m2[5]);
361 fprintf(stderr,
" mr %e %e %e %e %e %e\n",
362 mr[0],mr[1],mr[2],mr[3],mr[4],mr[5]);
386 met->
m[ip] = cb[0]*met->
m[pt->
v[0]]+cb[1]*met->
m[pt->
v[1]] +
387 cb[2]*met->
m[pt->
v[2]]+cb[3]*met->
m[pt->
v[3]];
409 double dm1[6],
double dm2[6],
double dm3[6]) {
410 double m0i[6],m1i[6],m2i[6],m3i[6],mi[6];
412 static int8_t mmgWarn=0;
418 fprintf(stderr,
"\n ## Warning: %s: at least 1 invalid metric.\n",__func__);
423 mi[i] = cb[0]*m0i[i] + cb[1]*m1i[i] + cb[2]*m2i[i] + cb[3]*m3i[i];
428 fprintf(stderr,
"\n ## Warning: %s: at least 1 invalid metric.\n",__func__);
433 for (i=0; i<6; i++) met->
m[met->
size*ip+i] = m0i[i];
454 double dm0[6],dm1[6],dm2[6],dm3[6];
460 for (i=0; i<6; i++) {
461 dm0[i] = met->
m[met->
size*pt->
v[0]+i];
466 for (i=0; i<6; i++) {
467 dm0[i] = met->
m[met->
size*pt->
v[0]+i];
472 for (i=0; i<6; i++) {
473 dm1[i] = met->
m[met->
size*pt->
v[1]+i];
478 for (i=0; i<6; i++) {
479 dm1[i] = met->
m[met->
size*pt->
v[1]+i];
484 for (i=0; i<6; i++) {
485 dm2[i] = met->
m[met->
size*pt->
v[2]+i];
490 for (i=0; i<6; i++) {
491 dm2[i] = met->
m[met->
size*pt->
v[2]+i];
496 for (i=0; i<6; i++) {
497 dm3[i] = met->
m[met->
size*pt->
v[3]+i];
502 for (i=0; i<6; i++) {
503 dm3[i] = met->
m[met->
size*pt->
v[3]+i];
525 double dm0[6],dm1[6],dm2[6],dm3[6];
529 for (i=0; i<6; i++) {
530 dm0[i] = met->
m[met->
size*pt->
v[0]+i];
533 for (i=0; i<6; i++) {
534 dm1[i] = met->
m[met->
size*pt->
v[1]+i];
537 for (i=0; i<6; i++) {
538 dm2[i] = met->
m[met->
size*pt->
v[2]+i];
541 for (i=0; i<6; i++) {
542 dm3[i] = met->
m[met->
size*pt->
v[3]+i];
int MMG5_moymet(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTetra pt, double *m1)
int MMG3D_get_shellEdgeTag(MMG5_pMesh mesh, MMG5_int start, int8_t ia, uint16_t *tag, MMG5_int *ref)
int MMG5_interp_iso(double *ma, double *mb, double *mp, double t)
int MMG5_mmgIntmet33_ani(double *m, double *n, double *mr, double s)
int MMG5_interpreg_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTria pt, int8_t i, double s, double mr[6])
int MMG5_intridmet(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int ip1, MMG5_int ip2, double s, double v[3], double mr[6])
int MMG5_interp4bar33_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, MMG5_int ip, double cb[4])
int MMG3D_intmet33_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, int8_t i, MMG5_int ip, double s)
int MMG5_intvolmet(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, int8_t i, double s, double mr[6])
int MMG5_interp4bar_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, MMG5_int ip, double cb[4])
int MMG5_interp4bar_iso(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, MMG5_int ip, double cb[4])
int MMG5_intmet_iso(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, int8_t i, MMG5_int ip, double s)
int MMG3D_intmet33_ani_edge(MMG5_pSol met, MMG5_int ip1, MMG5_int ip2, MMG5_int ip, double s)
int MMG5_intmet_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, int8_t i, MMG5_int ip, double s)
static int MMG5_intregvolmet(double *ma, double *mb, double *mp, double t)
static int MMG5_interp4barintern(MMG5_pSol met, MMG5_int ip, double cb[4], double dm0[6], double dm1[6], double dm2[6], double dm3[6])
int MMG5_intmet_iso_edge(MMG5_pSol met, MMG5_int ip1, MMG5_int ip2, MMG5_int ip, double s)
int MMG5_intregmet(MMG5_pMesh mesh, MMG5_pSol met, MMG5_int k, int8_t i, double s, double mr[6])
MMG5_int MMG3D_indPt(MMG5_pMesh mesh, MMG5_int kp)
static const int8_t MMG5_iarfinv[4][6]
num of the j^th edge in the i^th face
static const uint8_t MMG5_iare[6][2]
vertices of extremities of the edges of the tetra
static const uint8_t MMG5_ifar[6][2]
ifar[i][]: faces sharing the ith edge of the tetra
void MMG5_tet2tri(MMG5_pMesh mesh, MMG5_int k, int8_t ie, MMG5_Tria *ptt)
MMG5_int MMG3D_indElt(MMG5_pMesh mesh, MMG5_int kel)
#define MG_SIN_OR_NOM(tag)
int MMG5_invmat(double *m, double *mi)
Structure to store vertices of an MMG mesh.
Structure to store tetrahedra of an MMG mesh.
Structure to store triangles of a MMG mesh.
Structure to store surface vertices of an MMG mesh.
Structure to store additional information for the surface tetrahedra of an MMG mesh.