Skip to content
Snippets Groups Projects
Commit 1674ef93 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

*** empty log message ***

parent 0cbea8d3
No related branches found
No related tags found
No related merge requests found
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
#include "MElement.h" #include "MElement.h"
#include "Numeric.h" #include "Numeric.h"
double qmTriangle(const BDS_Point *p1, const BDS_Point *p2, const BDS_Point *p3,
double qmTriangle ( const BDS_Point *p1, const BDS_Point *p2, const BDS_Point *p3, const gmshQualityMeasure4Triangle &cr) const gmshQualityMeasure4Triangle &cr)
{ {
return qmTriangle(p1->X, p1->Y, p1->Z, p2->X, p2->Y, p2->Z, p3->X, p3->Y, p3->Z, cr); return qmTriangle(p1->X, p1->Y, p1->Z, p2->X, p2->Y, p2->Z, p3->X, p3->Y, p3->Z, cr);
} }
...@@ -22,9 +22,11 @@ double qmTriangle ( MTriangle*t, const gmshQualityMeasure4Triangle &cr) ...@@ -22,9 +22,11 @@ double qmTriangle ( MTriangle*t, const gmshQualityMeasure4Triangle &cr)
return qmTriangle(t->getVertex(0), t->getVertex(1), t->getVertex(2), cr); return qmTriangle(t->getVertex(0), t->getVertex(1), t->getVertex(2), cr);
} }
double qmTriangle ( const MVertex *v1, const MVertex *v2, const MVertex *v3, const gmshQualityMeasure4Triangle &cr) double qmTriangle(const MVertex *v1, const MVertex *v2, const MVertex *v3,
const gmshQualityMeasure4Triangle &cr)
{ {
return qmTriangle (v1->x(),v1->y(),v1->z(),v2->x(),v2->y(),v2->z(),v3->x(),v3->y(),v3->z(),cr); return qmTriangle(v1->x(), v1->y(), v1->z(), v2->x(), v2->y(), v2->z(),
v3->x(), v3->y(), v3->z(), cr);
} }
// Triangle abc // Triangle abc
...@@ -36,12 +38,10 @@ double qmTriangle ( const double &xa, const double &ya, const double &z ...@@ -36,12 +38,10 @@ double qmTriangle ( const double &xa, const double &ya, const double &z
const gmshQualityMeasure4Triangle &cr) const gmshQualityMeasure4Triangle &cr)
{ {
double quality; double quality;
switch(cr) switch(cr){
{
case QMTRI_RHO: case QMTRI_RHO:
{ {
// quality = rho / R = 2 * inscribed radius / circumradius // quality = rho / R = 2 * inscribed radius / circumradius
double a [3] = {xc-xb,yc-yb,zc-zb}; double a [3] = {xc-xb,yc-yb,zc-zb};
double b [3] = {xa-xc,ya-yc,za-zc}; double b [3] = {xa-xc,ya-yc,za-zc};
double c [3] = {xb-xa,yb-ya,zb-za}; double c [3] = {xb-xa,yb-ya,zb-za};
...@@ -62,28 +62,30 @@ double qmTriangle ( const double &xa, const double &ya, const double &z ...@@ -62,28 +62,30 @@ double qmTriangle ( const double &xa, const double &ya, const double &z
throw; throw;
} }
return quality; return quality;
} }
double qmTet(MTetrahedron *t, const gmshQualityMeasure4Tet &cr, double *volume) double qmTet(MTetrahedron *t, const gmshQualityMeasure4Tet &cr, double *volume)
{ {
return qmTet (t->getVertex(0),t->getVertex(1),t->getVertex(2),t->getVertex(3),cr,volume); return qmTet(t->getVertex(0), t->getVertex(1), t->getVertex(2), t->getVertex(3),
cr, volume);
} }
double qmTet ( const MVertex *v1, const MVertex *v2, const MVertex *v3, const MVertex *v4, const gmshQualityMeasure4Tet &cr, double *volume) double qmTet(const MVertex *v1, const MVertex *v2, const MVertex *v3,
const MVertex *v4, const gmshQualityMeasure4Tet &cr, double *volume)
{ {
return qmTet (v1->x(),v1->y(),v1->z(),v2->x(),v2->y(),v2->z(),v3->x(),v3->y(),v3->z(),v4->x(),v4->y(),v4->z(),cr,volume); return qmTet(v1->x(), v1->y(), v1->z(), v2->x(), v2->y(), v2->z(),
v3->x(), v3->y(), v3->z(), v4->x(), v4->y(), v4->z(), cr, volume);
} }
double qmTet(const double &x1, const double &y1, const double &z1, double qmTet(const double &x1, const double &y1, const double &z1,
const double &x2, const double &y2, const double &z2, const double &x2, const double &y2, const double &z2,
const double &x3, const double &y3, const double &z3, const double &x3, const double &y3, const double &z3,
const double &x4, const double &y4, const double &z4, const double &x4, const double &y4, const double &z4,
const gmshQualityMeasure4Tet &cr, double *volume ){ const gmshQualityMeasure4Tet &cr, double *volume)
double quality;
switch(cr)
{ {
double quality;
switch(cr){
case QMTET_ONE: case QMTET_ONE:
return 1.0; return 1.0;
case QMTET_3: case QMTET_3:
......
...@@ -11,15 +11,19 @@ enum gmshQualityMeasure4Tet {QMTET_1,QMTET_2,QMTET_3,QMTET_ONE}; ...@@ -11,15 +11,19 @@ enum gmshQualityMeasure4Tet {QMTET_1,QMTET_2,QMTET_3,QMTET_ONE};
double qmTriangle(MTriangle *f, const gmshQualityMeasure4Triangle &cr); double qmTriangle(MTriangle *f, const gmshQualityMeasure4Triangle &cr);
double qmTriangle(BDS_Face *f, const gmshQualityMeasure4Triangle &cr); double qmTriangle(BDS_Face *f, const gmshQualityMeasure4Triangle &cr);
double qmTriangle ( const BDS_Point *p1, const BDS_Point *p2, const BDS_Point *p3, const gmshQualityMeasure4Triangle &cr); double qmTriangle(const BDS_Point *p1, const BDS_Point *p2, const BDS_Point *p3,
double qmTriangle ( const MVertex *v1, const MVertex *v2, const MVertex *v3, const gmshQualityMeasure4Triangle &cr); const gmshQualityMeasure4Triangle &cr);
double qmTriangle ( const double *d1, const double *d2, const double *d3, const gmshQualityMeasure4Triangle &cr); double qmTriangle(const MVertex *v1, const MVertex *v2, const MVertex *v3,
const gmshQualityMeasure4Triangle &cr);
double qmTriangle(const double *d1, const double *d2, const double *d3,
const gmshQualityMeasure4Triangle &cr);
double qmTriangle(const double &x1, const double &y1, const double &z1, double qmTriangle(const double &x1, const double &y1, const double &z1,
const double &x2, const double &y2, const double &z2, const double &x2, const double &y2, const double &z2,
const double &x3, const double &y3, const double &z3, const double &x3, const double &y3, const double &z3,
const gmshQualityMeasure4Triangle &cr); const gmshQualityMeasure4Triangle &cr);
double qmTet(MTetrahedron *t, const gmshQualityMeasure4Tet &cr, double *volume = 0); double qmTet(MTetrahedron *t, const gmshQualityMeasure4Tet &cr, double *volume = 0);
double qmTet ( const MVertex *v1, const MVertex *v2, const MVertex *v3, const MVertex *v4, const gmshQualityMeasure4Tet &cr, double *volume = 0); double qmTet(const MVertex *v1, const MVertex *v2, const MVertex *v3,
const MVertex *v4, const gmshQualityMeasure4Tet &cr, double *volume = 0);
double qmTet(const double &x1, const double &y1, const double &z1, double qmTet(const double &x1, const double &y1, const double &z1,
const double &x2, const double &y2, const double &z2, const double &x2, const double &y2, const double &z2,
const double &x3, const double &y3, const double &z3, const double &x3, const double &y3, const double &z3,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment