diff --git a/Geo/MElement.h b/Geo/MElement.h index 922ddd2ea14a9485c5a33d6d078f757acba37df4..5bab37d7b9416f4e20144678b12a6fd83b29a497 100644 --- a/Geo/MElement.h +++ b/Geo/MElement.h @@ -129,7 +129,7 @@ class MElement virtual MEdge getEdge(int num) = 0; // give an MEdge as input and get its local number and sign - virtual void getEdgeInfo(const MEdge & edge, int &ithEdge, int &sign) const + virtual void getEdgeInfo(const MEdge & edge, int &ithEdge, int &sign) const { Msg::Error("Edge information not available for this element"); } @@ -187,7 +187,7 @@ class MElement virtual double etaShapeMeasure(){ return 0.; } virtual double distoShapeMeasure(){ return 1.0; } virtual double angleShapeMeasure() { return 1.0; } - + // get the radius of the inscribed circle/sphere if it exists, // otherwise get the minimum radius of all the circles/spheres // tangent to the most boundaries of the element. diff --git a/Geo/MHexahedron.h b/Geo/MHexahedron.h index 68fcd89efca001414d1454582b3c8ddd8d09fda5..ed982b52df54032138dad746faa7acf007d15a3b 100644 --- a/Geo/MHexahedron.h +++ b/Geo/MHexahedron.h @@ -18,7 +18,7 @@ * | \ | | \ * | 7------+---6 * | | +-- |-- | -> u - * 0---+---\--1 | + * 0---+---\--1 | * \ | \ \ | * \ | \ \ | * \| w \| @@ -41,14 +41,14 @@ class MHexahedron : public MElement { v[3] = _v[faces_hexa(num, 3)]; } public : - MHexahedron(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, - MVertex *v5, MVertex *v6, MVertex *v7, int num=0, int part=0) + MHexahedron(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + MVertex *v5, MVertex *v6, MVertex *v7, int num=0, int part=0) : MElement(num, part) { _v[0] = v0; _v[1] = v1; _v[2] = v2; _v[3] = v3; _v[4] = v4; _v[5] = v5; _v[6] = v6; _v[7] = v7; } - MHexahedron(std::vector<MVertex*> &v, int num=0, int part=0) + MHexahedron(std::vector<MVertex*> &v, int num=0, int part=0) : MElement(num, part) { for(int i = 0; i < 8; i++) _v[i] = v[i]; @@ -60,12 +60,12 @@ class MHexahedron : public MElement { virtual MVertex *getVertexMED(int num) { static const int map[8] = {0, 3, 2, 1, 4, 7, 6, 5}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getVertexDIFF(int num) { static const int map[8] = {2, 3, 7, 6, 0, 1, 5, 4}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual int getNumEdges(){ return 12; } virtual MEdge getEdge(int num) @@ -92,10 +92,10 @@ class MHexahedron : public MElement { _v[faces_hexa(num, 2)], _v[faces_hexa(num, 3)]); } - virtual void getFaceInfo (const MFace & face, int &ithFace, int &sign, int &rot)const; + virtual void getFaceInfo (const MFace & face, int &ithFace, int &sign, int &rot)const; virtual int getNumFacesRep(){ return 12; } virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int f[12][3] = { {0, 3, 2}, {0, 2, 1}, {0, 1, 5}, {0, 5, 4}, @@ -127,7 +127,7 @@ class MHexahedron : public MElement { tmp = _v[4]; _v[4] = _v[6]; _v[6] = tmp; } virtual int getVolumeSign(); - virtual void getShapeFunctions(double u, double v, double w, double s[], int o) + virtual void getShapeFunctions(double u, double v, double w, double s[], int o) { s[0] = (1. - u) * (1. - v) * (1. - w) * 0.125; s[1] = (1. + u) * (1. - v) * (1. - w) * 0.125; @@ -138,7 +138,7 @@ class MHexahedron : public MElement { s[6] = (1. + u) * (1. + v) * (1. + w) * 0.125; s[7] = (1. - u) * (1. + v) * (1. + w) * 0.125; } - virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int o) + virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int o) { s[0][0] = -0.125 * (1. - v) * (1. - w); s[0][1] = -0.125 * (1. - u) * (1. - w); @@ -168,7 +168,7 @@ class MHexahedron : public MElement { virtual bool isInside(double u, double v, double w) { double tol = _isInsideTolerance; - if(u < -(1. + tol) || v < -(1. + tol) || w < -(1. + tol) || + if(u < -(1. + tol) || v < -(1. + tol) || w < -(1. + tol) || u > (1. + tol) || v > (1. + tol) || w > (1. + tol)) return false; return true; @@ -216,7 +216,7 @@ class MHexahedron : public MElement { * 9 \ 11 \ * | 7----19+---6 * | | | | - * 0---+-8----1 | + * 0---+-8----1 | * \ 17 \ 18 * 10 | 12| * \| \| @@ -227,19 +227,19 @@ class MHexahedron20 : public MHexahedron { protected: MVertex *_vs[12]; public : - MHexahedron20(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + MHexahedron20(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, MVertex *v5, MVertex *v6, MVertex *v7, MVertex *v8, MVertex *v9, MVertex *v10, MVertex *v11, MVertex *v12, MVertex *v13, MVertex *v14, MVertex *v15, MVertex *v16, MVertex *v17, MVertex *v18, MVertex *v19, - int num=0, int part=0) + int num=0, int part=0) : MHexahedron(v0, v1, v2, v3, v4, v5, v6, v7, num, part) { - _vs[0] = v8; _vs[1] = v9; _vs[2] = v10; _vs[3] = v11; _vs[4] = v12; - _vs[5] = v13; _vs[6] = v14; _vs[7] = v15; _vs[8] = v16; _vs[9] = v17; - _vs[10] = v18; _vs[11] = v19; + _vs[0] = v8; _vs[1] = v9; _vs[2] = v10; _vs[3] = v11; _vs[4] = v12; + _vs[5] = v13; _vs[6] = v14; _vs[7] = v15; _vs[8] = v16; _vs[9] = v17; + _vs[10] = v18; _vs[11] = v19; for(int i = 0; i < 12; i++) _vs[i]->setPolynomialOrder(2); } - MHexahedron20(std::vector<MVertex*> &v, int num=0, int part=0) + MHexahedron20(std::vector<MVertex*> &v, int num=0, int part=0) : MHexahedron(v, num, part) { for(int i = 0; i < 12; i++) _vs[i] = v[8 + i]; @@ -251,32 +251,32 @@ class MHexahedron20 : public MHexahedron { virtual MVertex *getVertex(int num){ return num < 8 ? _v[num] : _vs[num - 8]; } virtual MVertex *getVertexUNV(int num) { - static const int map[20] = {0, 8, 1, 11, 2, 13, 3, 9, 10, 12, + static const int map[20] = {0, 8, 1, 11, 2, 13, 3, 9, 10, 12, 14, 15, 4, 16, 5, 18, 6, 19, 7, 17}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getVertexBDF(int num) { - static const int map[20] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 13, + static const int map[20] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 13, 9, 10, 12, 14, 15, 16, 18, 19, 17}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getVertexMED(int num) { - static const int map[20] = {0, 3, 2, 1, 4, 7, 6, 5, 9, 13, 11, + static const int map[20] = {0, 3, 2, 1, 4, 7, 6, 5, 9, 13, 11, 8, 17, 19, 18, 16, 10, 15, 14, 12}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getVertexDIFF(int num) { - static const int map[20] = {2, 3, 7, 6, 0, 1, 5, 4, 9, 18, 12, + static const int map[20] = {2, 3, 7, 6, 0, 1, 5, 4, 9, 18, 12, 19, 14, 11, 15, 13, 8, 16, 17, 10}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual int getNumEdgeVertices() const { return 12; } virtual int getNumEdgesRep(){ return 24; } virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int e[24][2] = { {0, 8}, {8, 1}, {0, 9}, {9, 3}, @@ -302,7 +302,7 @@ class MHexahedron20 : public MHexahedron { } virtual int getNumFacesRep(){ return 36; } virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int f[36][3] = { {0, 9, 8}, {3, 13, 9}, {2, 11, 13}, {1, 8, 11}, {8, 9, 13}, {8, 13, 11}, {0, 8, 10}, {1, 12, 8}, {5, 16, 12}, {4, 10, 16}, {8, 12, 16}, {8, 16, 10}, @@ -371,21 +371,21 @@ class MHexahedron27 : public MHexahedron { protected: MVertex *_vs[19]; public : - MHexahedron27(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + MHexahedron27(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, MVertex *v5, MVertex *v6, MVertex *v7, MVertex *v8, MVertex *v9, MVertex *v10, MVertex *v11, MVertex *v12, MVertex *v13, MVertex *v14, MVertex *v15, MVertex *v16, MVertex *v17, MVertex *v18, MVertex *v19, MVertex *v20, MVertex *v21, MVertex *v22, MVertex *v23, MVertex *v24, - MVertex *v25, MVertex *v26, int num=0, int part=0) + MVertex *v25, MVertex *v26, int num=0, int part=0) : MHexahedron(v0, v1, v2, v3, v4, v5, v6, v7, num, part) { - _vs[0] = v8; _vs[1] = v9; _vs[2] = v10; _vs[3] = v11; _vs[4] = v12; - _vs[5] = v13; _vs[6] = v14; _vs[7] = v15; _vs[8] = v16; _vs[9] = v17; + _vs[0] = v8; _vs[1] = v9; _vs[2] = v10; _vs[3] = v11; _vs[4] = v12; + _vs[5] = v13; _vs[6] = v14; _vs[7] = v15; _vs[8] = v16; _vs[9] = v17; _vs[10] = v18; _vs[11] = v19; _vs[12] = v20; _vs[13] = v21; _vs[14] = v22; _vs[15] = v23; _vs[16] = v24; _vs[17] = v25; _vs[18] = v26; for(int i = 0; i < 19; i++) _vs[i]->setPolynomialOrder(2); } - MHexahedron27(std::vector<MVertex*> &v, int num=0, int part=0) + MHexahedron27(std::vector<MVertex*> &v, int num=0, int part=0) : MHexahedron(v, num, part) { for(int i = 0; i < 19; i++) _vs[i] = v[8 + i]; @@ -397,16 +397,16 @@ class MHexahedron27 : public MHexahedron { virtual MVertex *getVertex(int num){ return num < 8 ? _v[num] : _vs[num - 8]; } virtual MVertex *getVertexDIFF(int num) { - static const int map[27] = {6, 8, 26, 24, 0, 2, 20, 18, 7, 15, 3, 17, 5, 25, + static const int map[27] = {6, 8, 26, 24, 0, 2, 20, 18, 7, 15, 3, 17, 5, 25, 23, 21, 1, 9, 11, 19, 16, 4, 12, 14, 22, 10, 13}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual int getNumEdgeVertices() const { return 12; } virtual int getNumFaceVertices() const { return 6; } virtual int getNumVolumeVertices() const { return 1; } virtual int getNumEdgesRep(){ return 24; } virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int e[24][2] = { {0, 8}, {8, 1}, {0, 9}, {9, 3}, @@ -432,20 +432,20 @@ class MHexahedron27 : public MHexahedron { } virtual int getNumFacesRep(){ return 48; } virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int f[48][3] = { - {0, 9, 20}, {0, 20, 8}, {3, 13, 20}, {3, 20, 9}, + {0, 9, 20}, {0, 20, 8}, {3, 13, 20}, {3, 20, 9}, {2, 11, 20}, {2, 20, 13}, {1, 8, 20}, {1, 20, 11}, - {0, 8, 21}, {0, 21, 10}, {1, 12, 21}, {1, 21, 8}, - {5, 16, 21}, {5, 21, 12}, {4, 10, 21}, {4, 21, 16}, - {0, 10, 22}, {0, 22, 9}, {4, 17, 22}, {4, 22, 10}, - {7, 15, 22}, {7, 22, 17}, {3, 9, 22}, {3, 22, 15}, - {1, 11, 23}, {1, 23, 12}, {2, 14, 23}, {2, 23, 11}, - {6, 18, 23}, {6, 23, 14}, {5, 12, 23}, {5, 23, 18}, - {2, 13, 24}, {2, 24, 14}, {3, 15, 24}, {3, 24, 13}, - {7, 19, 24}, {7, 24, 15}, {6, 14, 24}, {6, 24, 19}, - {4, 16, 25}, {4, 25, 17}, {5, 18, 25}, {5, 25, 16}, - {6, 19, 25}, {6, 25, 18}, {7, 17, 25}, {7, 25, 19} + {0, 8, 21}, {0, 21, 10}, {1, 12, 21}, {1, 21, 8}, + {5, 16, 21}, {5, 21, 12}, {4, 10, 21}, {4, 21, 16}, + {0, 10, 22}, {0, 22, 9}, {4, 17, 22}, {4, 22, 10}, + {7, 15, 22}, {7, 22, 17}, {3, 9, 22}, {3, 22, 15}, + {1, 11, 23}, {1, 23, 12}, {2, 14, 23}, {2, 23, 11}, + {6, 18, 23}, {6, 23, 14}, {5, 12, 23}, {5, 23, 18}, + {2, 13, 24}, {2, 24, 14}, {3, 15, 24}, {3, 24, 13}, + {7, 19, 24}, {7, 24, 15}, {6, 14, 24}, {6, 24, 19}, + {4, 16, 25}, {4, 25, 17}, {5, 18, 25}, {5, 25, 16}, + {6, 19, 25}, {6, 25, 18}, {7, 17, 25}, {7, 25, 19} }; _getFaceRep(getVertex(f[num][0]), getVertex(f[num][1]), getVertex(f[num][2]), x, y, z, n); diff --git a/Geo/MLine.h b/Geo/MLine.h index d7eb030499a3df73c5403cf5328abaf4f853e508..19319f8939e55bb9ffa53f41c43119288873aebf 100644 --- a/Geo/MLine.h +++ b/Geo/MLine.h @@ -23,12 +23,12 @@ class MLine : public MElement { v[1] = _v[1]; } public : - MLine(MVertex *v0, MVertex *v1, int num=0, int part=0) + MLine(MVertex *v0, MVertex *v1, int num=0, int part=0) : MElement(num, part) { _v[0] = v0; _v[1] = v1; } - MLine(std::vector<MVertex*> &v, int num=0, int part=0) + MLine(std::vector<MVertex*> &v, int num=0, int part=0) : MElement(num, part) { for(int i = 0; i < 2; i++) _v[i] = v[i]; @@ -39,14 +39,14 @@ class MLine : public MElement { virtual MVertex *getVertex(int num){ return _v[num]; } virtual double getInnerRadius(); // length of segment line virtual void getVertexInfo(const MVertex * vertex, int &ithVertex) const - { + { ithVertex = _v[0] == vertex ? 0 : 1; } virtual int getNumEdges(){ return 1; } virtual MEdge getEdge(int num){ return MEdge(_v[0], _v[1]); } virtual int getNumEdgesRep(){ return 1; } virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { _getEdgeRep(_v[0], _v[1], x, y, z, n); } virtual void getEdgeVertices(const int num, std::vector<MVertex*> &v) const @@ -65,7 +65,7 @@ class MLine : public MElement { virtual const char *getStringForPOS() const { return "SL"; } virtual const char *getStringForBDF() const { return "CBAR"; } virtual const char *getStringForINP() const { return "C1D2"; } - virtual void revert() + virtual void revert() { MVertex *tmp = _v[0]; _v[0] = _v[1]; _v[1] = tmp; } @@ -92,13 +92,13 @@ class MLine3 : public MLine { protected: MVertex *_vs[1]; public : - MLine3(MVertex *v0, MVertex *v1, MVertex *v2, int num=0, int part=0) + MLine3(MVertex *v0, MVertex *v1, MVertex *v2, int num=0, int part=0) : MLine(v0, v1, num, part) { _vs[0] = v2; _vs[0]->setPolynomialOrder(2); } - MLine3(std::vector<MVertex*> &v, int num=0, int part=0) + MLine3(std::vector<MVertex*> &v, int num=0, int part=0) : MLine(v, num, part) { _vs[0] = v[2]; @@ -111,13 +111,13 @@ class MLine3 : public MLine { virtual MVertex *getVertexUNV(int num) { static const int map[3] = {0, 2, 1}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getVertexINP(int num){ return getVertexUNV(num); } virtual int getNumEdgeVertices() const { return 1; } virtual int getNumEdgesRep(){ return 2; } virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int e[2][2] = { {0, 2}, {2, 1} }; @@ -147,13 +147,13 @@ class MLineN : public MLine { protected: std::vector<MVertex *> _vs; public : - MLineN(MVertex *v0, MVertex *v1, const std::vector<MVertex*> &vs, int num=0, int part=0) + MLineN(MVertex *v0, MVertex *v1, const std::vector<MVertex*> &vs, int num=0, int part=0) : MLine(v0, v1, num, part), _vs(vs) { for(unsigned int i = 0; i < _vs.size(); i++) _vs[i]->setPolynomialOrder(_vs.size() + 1); } - MLineN(const std::vector<MVertex*> &v, int num=0, int part=0) + MLineN(const std::vector<MVertex*> &v, int num=0, int part=0) : MLine(v[0] , v[1], num, part) { for(unsigned int i = 2; i < v.size(); i++) @@ -168,8 +168,8 @@ class MLineN : public MLine { virtual int getNumEdgeVertices() const { return _vs.size(); } virtual int getNumEdgesRep(){ return _vs.size() + 1; } virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n) - { - _getEdgeRep(getVertex((num == 0) ? 0 : num + 1), + { + _getEdgeRep(getVertex((num == 0) ? 0 : num + 1), getVertex((num == getNumEdgesRep() - 1) ? 1 : num + 2), x, y, z, n); } @@ -179,16 +179,16 @@ class MLineN : public MLine { MLine::_getEdgeVertices(v); for(unsigned int i = 0; i != _vs.size(); ++i) v[i+2] = _vs[i]; } - virtual int getTypeForMSH() const - { - if(_vs.size() == 2) return MSH_LIN_4; - if(_vs.size() == 3) return MSH_LIN_5; - if(_vs.size() == 4) return MSH_LIN_6; - if(_vs.size() == 5) return MSH_LIN_7; - if(_vs.size() == 6) return MSH_LIN_8; - if(_vs.size() == 7) return MSH_LIN_9; - if(_vs.size() == 8) return MSH_LIN_10; - if(_vs.size() == 9) return MSH_LIN_11; + virtual int getTypeForMSH() const + { + if(_vs.size() == 2) return MSH_LIN_4; + if(_vs.size() == 3) return MSH_LIN_5; + if(_vs.size() == 4) return MSH_LIN_6; + if(_vs.size() == 5) return MSH_LIN_7; + if(_vs.size() == 6) return MSH_LIN_8; + if(_vs.size() == 7) return MSH_LIN_9; + if(_vs.size() == 8) return MSH_LIN_10; + if(_vs.size() == 9) return MSH_LIN_11; return 0; } }; @@ -197,7 +197,7 @@ struct compareMLinePtr { bool operator () (MLine *l1, MLine *l2) const { static Less_Edge le; - return le(l1->getEdge(0), l2->getEdge(0)); + return le(l1->getEdge(0), l2->getEdge(0)); } }; diff --git a/Geo/MPoint.h b/Geo/MPoint.h index 92be1b850ba9a20a4c9cce729865a0a89bd80e3a..dae3bcb0b45be025205621d8702bb5e12d06891f 100644 --- a/Geo/MPoint.h +++ b/Geo/MPoint.h @@ -16,12 +16,12 @@ class MPoint : public MElement { protected: MVertex *_v[1]; public : - MPoint(MVertex *v0, int num=0, int part=0) + MPoint(MVertex *v0, int num=0, int part=0) : MElement(num, part) { _v[0] = v0; } - MPoint(std::vector<MVertex*> &v, int num=0, int part=0) + MPoint(std::vector<MVertex*> &v, int num=0, int part=0) : MElement(num, part) { _v[0] = v[0]; @@ -42,21 +42,21 @@ class MPoint : public MElement { virtual int getTypeForMSH() const { return MSH_PNT; } virtual int getTypeForVTK() const { return 1; } virtual const char *getStringForPOS() const { return "SP"; } - virtual void getShapeFunctions(double u, double v, double w, double s[], int o) + virtual void getShapeFunctions(double u, double v, double w, double s[], int o) { s[0] = 1.; } - virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int o) + virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int o) { s[0][0] = s[0][1] = s[0][2] = 0.; } virtual const polynomialBasis* getFunctionSpace(int o) const - { - return polynomialBases::find(MSH_PNT); + { + return polynomialBases::find(MSH_PNT); } - virtual const JacobianBasis* getJacobianFuncSpace(int o) const - { - return JacobianBases::find(MSH_PNT); + virtual const JacobianBasis* getJacobianFuncSpace(int o) const + { + return JacobianBases::find(MSH_PNT); } virtual bool isInside(double u, double v, double w) { @@ -64,7 +64,7 @@ class MPoint : public MElement { } virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts) { - static IntPt GQL[1]; + static IntPt GQL[1]; GQL[0].pt[0] = 0; GQL[0].pt[1] = 0; GQL[0].pt[2] = 0; diff --git a/Geo/MPrism.h b/Geo/MPrism.h index 4703450d5e05feca50b04c0a96c7eda559069f4e..c16a81efe284ad3f2d4151e34c14e29c4cf8688e 100644 --- a/Geo/MPrism.h +++ b/Geo/MPrism.h @@ -48,14 +48,14 @@ class MPrism : public MElement { if(num >= 2) v[3] = _v[faces_prism(num, 3)]; } public : - MPrism(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, - MVertex *v5, int num=0, int part=0) + MPrism(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + MVertex *v5, int num=0, int part=0) : MElement(num, part) { _v[0] = v0; _v[1] = v1; _v[2] = v2; _v[3] = v3; - _v[4] = v4; _v[5] = v5; + _v[4] = v4; _v[5] = v5; } - MPrism(std::vector<MVertex*> &v, int num=0, int part=0) + MPrism(std::vector<MVertex*> &v, int num=0, int part=0) : MElement(num, part) { for(int i = 0; i < 6; i++) _v[i] = v[i]; @@ -68,7 +68,7 @@ class MPrism : public MElement { virtual MVertex *getVertexMED(int num) { static const int map[6] = {0, 2, 1, 3, 5, 4}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual int getNumEdges(){ return 9; } virtual MEdge getEdge(int num) @@ -88,7 +88,7 @@ class MPrism : public MElement { _getEdgeVertices(num, v); } virtual int getNumFaces(){ return 5; } - virtual void getFaceInfo(const MFace & face, int &ithFace, int &sign, int &rot) const; + virtual void getFaceInfo(const MFace & face, int &ithFace, int &sign, int &rot) const; virtual MFace getFace(int num) { if(num < 2) @@ -103,7 +103,7 @@ class MPrism : public MElement { } virtual int getNumFacesRep(){ return 8; } virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int f[8][3] = { {0, 2, 1}, {3, 4, 5}, @@ -135,7 +135,7 @@ class MPrism : public MElement { virtual const polynomialBasis* getFunctionSpace(int o=-1) const; virtual const JacobianBasis* getJacobianFuncSpace(int o=-1) const; virtual int getVolumeSign(); -/* virtual void getShapeFunctions(double u, double v, double w, double s[], int o) +/* virtual void getShapeFunctions(double u, double v, double w, double s[], int o) { s[0] = (1. - u - v) * (1. - w) * 0.5; s[1] = u * (1. - w) * 0.5; @@ -144,7 +144,7 @@ class MPrism : public MElement { s[4] = u * (1. + w) * 0.5; s[5] = v * (1. + w) * 0.5; }*/ -/* virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int o) +/* virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int o) { s[0][0] = -0.5 * (1. - w) ; s[0][1] = -0.5 * (1. - w) ; @@ -229,17 +229,17 @@ class MPrism15 : public MPrism { protected: MVertex *_vs[9]; public : - MPrism15(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + MPrism15(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, MVertex *v5, MVertex *v6, MVertex *v7, MVertex *v8, MVertex *v9, MVertex *v10, MVertex *v11, MVertex *v12, MVertex *v13, MVertex *v14, - int num=0, int part=0) + int num=0, int part=0) : MPrism(v0, v1, v2, v3, v4, v5, num, part) { - _vs[0] = v6; _vs[1] = v7; _vs[2] = v8; _vs[3] = v9; _vs[4] = v10; + _vs[0] = v6; _vs[1] = v7; _vs[2] = v8; _vs[3] = v9; _vs[4] = v10; _vs[5] = v11; _vs[6] = v12; _vs[7] = v13; _vs[8] = v14; for(int i = 0; i < 9; i++) _vs[i]->setPolynomialOrder(2); } - MPrism15(std::vector<MVertex*> &v, int num=0, int part=0) + MPrism15(std::vector<MVertex*> &v, int num=0, int part=0) : MPrism(v, num, part) { for(int i = 0; i < 9; i++) _vs[i] = v[6 + i]; @@ -252,22 +252,22 @@ class MPrism15 : public MPrism { virtual MVertex *getVertexUNV(int num) { static const int map[15] = {0, 6, 1, 9, 2, 7, 8, 10, 11, 3, 12, 4, 14, 5, 13}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getVertexBDF(int num) { static const int map[15] = {0, 1, 2, 3, 4, 5, 6, 9, 7, 8, 10, 11, 12, 14, 13}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getVertexMED(int num) { static const int map[15] = {0, 2, 1, 3, 5, 4, 7, 9, 6, 13, 14, 12, 8, 11, 10}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual int getNumEdgeVertices() const { return 9; } virtual int getNumEdgesRep(){ return 18; } virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int e[18][2] = { {0, 6}, {6, 1}, {0, 7}, {7, 2}, @@ -290,7 +290,7 @@ class MPrism15 : public MPrism { } virtual int getNumFacesRep(){ return 26; } virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int f[26][3] = { {0, 7, 6}, {2, 9, 7}, {1, 6, 9}, {6, 7, 9}, {3, 12, 13}, {4, 14, 12}, {5, 13, 14}, {12, 14, 13}, @@ -356,18 +356,18 @@ class MPrism18 : public MPrism { protected: MVertex *_vs[12]; public : - MPrism18(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + MPrism18(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, MVertex *v5, MVertex *v6, MVertex *v7, MVertex *v8, MVertex *v9, MVertex *v10, MVertex *v11, MVertex *v12, MVertex *v13, MVertex *v14, - MVertex *v15, MVertex *v16, MVertex *v17, int num=0, int part=0) + MVertex *v15, MVertex *v16, MVertex *v17, int num=0, int part=0) : MPrism(v0, v1, v2, v3, v4, v5, num, part) { - _vs[0] = v6; _vs[1] = v7; _vs[2] = v8; _vs[3] = v9; _vs[4] = v10; - _vs[5] = v11; _vs[6] = v12; _vs[7] = v13; _vs[8] = v14; _vs[9] = v15; - _vs[10] = v16; _vs[11] = v17; + _vs[0] = v6; _vs[1] = v7; _vs[2] = v8; _vs[3] = v9; _vs[4] = v10; + _vs[5] = v11; _vs[6] = v12; _vs[7] = v13; _vs[8] = v14; _vs[9] = v15; + _vs[10] = v16; _vs[11] = v17; for(int i = 0; i < 12; i++) _vs[i]->setPolynomialOrder(2); } - MPrism18(std::vector<MVertex*> &v, int num=0, int part=0) + MPrism18(std::vector<MVertex*> &v, int num=0, int part=0) : MPrism(v, num, part) { for(int i = 0; i < 12; i++) _vs[i] = v[6 + i]; @@ -381,7 +381,7 @@ class MPrism18 : public MPrism { virtual int getNumFaceVertices() const { return 3; } virtual int getNumEdgesRep(){ return 18; } virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int e[18][2] = { {0, 6}, {6, 1}, {0, 7}, {7, 2}, @@ -404,15 +404,15 @@ class MPrism18 : public MPrism { } virtual int getNumFacesRep(){ return 32; } virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int f[32][3] = { {0, 7, 6}, {2, 9, 7}, {1, 6, 9}, {6, 7, 9}, {3, 12, 13}, {4, 14, 12}, {5, 13, 14}, {12, 14, 13}, - {0, 6, 15}, {0, 15, 8}, {1, 10, 15}, {1, 15, 6}, - {4, 12, 15}, {4, 15, 10}, {3, 8, 15}, {3, 15, 12}, - {0, 8, 16}, {0, 16, 7}, {3, 13, 16}, {3, 16, 8}, - {5, 11, 16}, {5, 16, 13}, {2, 7, 16}, {2, 16, 11}, - {1, 9, 17}, {1, 17, 10}, {2, 11, 17}, {2, 17, 9}, + {0, 6, 15}, {0, 15, 8}, {1, 10, 15}, {1, 15, 6}, + {4, 12, 15}, {4, 15, 10}, {3, 8, 15}, {3, 15, 12}, + {0, 8, 16}, {0, 16, 7}, {3, 13, 16}, {3, 16, 8}, + {5, 11, 16}, {5, 16, 13}, {2, 7, 16}, {2, 16, 11}, + {1, 9, 17}, {1, 17, 10}, {2, 11, 17}, {2, 17, 9}, {5, 14, 17}, {5, 17, 11}, {4, 10, 17}, {4, 17, 14} }; _getFaceRep(getVertex(f[num][0]), getVertex(f[num][1]), getVertex(f[num][2]), diff --git a/Geo/MPyramid.h b/Geo/MPyramid.h index 19341f66a9bbd61b2a8410c7e0de5e383436b201..a17859360f6834b7800d595896d25708e0c1a03a 100644 --- a/Geo/MPyramid.h +++ b/Geo/MPyramid.h @@ -19,7 +19,7 @@ * ,/ | '. \ * ,/ .' w | \ * ,/ | ^ | \ - * 0----------.'--|-3 `. + * 0----------.'--|-3 `. * `\ | | `\ \ * `\ .' +----`\ - \ -> v * `\ | `\ `\ \ @@ -52,13 +52,13 @@ class MPyramid : public MElement { } } public : - MPyramid(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, - int num=0, int part=0) + MPyramid(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + int num=0, int part=0) : MElement(num, part) { _v[0] = v0; _v[1] = v1; _v[2] = v2; _v[3] = v3; _v[4] = v4; } - MPyramid(std::vector<MVertex*> &v, int num=0, int part=0) + MPyramid(std::vector<MVertex*> &v, int num=0, int part=0) : MElement(num, part) { for(int i = 0; i < 5; i++) _v[i] = v[i]; @@ -70,7 +70,7 @@ class MPyramid : public MElement { virtual MVertex *getVertexMED(int num) { static const int map[5] = {0, 3, 2, 1, 4}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual int getNumEdges(){ return 8; } virtual MEdge getEdge(int num) @@ -101,7 +101,7 @@ class MPyramid : public MElement { } virtual int getNumFacesRep(){ return 6; } virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int f[6][3] = { {0, 1, 4}, {3, 0, 4}, @@ -127,7 +127,7 @@ class MPyramid : public MElement { MVertex *tmp = _v[0]; _v[0] = _v[2]; _v[2] = tmp; } virtual int getVolumeSign(); - virtual void getShapeFunctions(double u, double v, double w, double s[], int o) + virtual void getShapeFunctions(double u, double v, double w, double s[], int o) { double r = (w != 1.) ? (u * v * w / (1. - w)) : 0.; s[0] = 0.25 * ((1. - u) * (1. - v) - w + r); @@ -136,37 +136,37 @@ class MPyramid : public MElement { s[3] = 0.25 * ((1. - u) * (1. + v) - w - r); s[4] = w; } - virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int o) + virtual void getGradShapeFunctions(double u, double v, double w, double s[][3], int o) { if(w == 1.) { - s[0][0] = -0.25 ; + s[0][0] = -0.25 ; s[0][1] = -0.25 ; - s[0][2] = -0.25 ; - s[1][0] = 0.25 ; + s[0][2] = -0.25 ; + s[1][0] = 0.25 ; s[1][1] = -0.25 ; - s[1][2] = -0.25 ; - s[2][0] = 0.25 ; + s[1][2] = -0.25 ; + s[2][0] = 0.25 ; s[2][1] = 0.25 ; - s[2][2] = -0.25 ; - s[3][0] = -0.25 ; + s[2][2] = -0.25 ; + s[3][0] = -0.25 ; s[3][1] = 0.25 ; - s[3][2] = -0.25 ; + s[3][2] = -0.25 ; } else{ s[0][0] = 0.25 * ( -(1. - v) + v * w / (1. - w)) ; s[0][1] = 0.25 * ( -(1. - u) + u * w / (1. - w)) ; - s[0][2] = 0.25 * ( -1. + u * v / (1. - w) + u * v * w / (1. - w) / (1. - w)) ; + s[0][2] = 0.25 * ( -1. + u * v / (1. - w) + u * v * w / (1. - w) / (1. - w)) ; s[1][0] = 0.25 * ( (1. - v) - v * w / (1. - w)) ; s[1][1] = 0.25 * ( -(1. + u) - u * w / (1. - w)) ; - s[1][2] = 0.25 * ( -1. - u * v / (1. - w) - u * v * w / (1. - w) / (1. - w)) ; + s[1][2] = 0.25 * ( -1. - u * v / (1. - w) - u * v * w / (1. - w) / (1. - w)) ; s[2][0] = 0.25 * ( (1. + v) + v * w / (1. - w)) ; s[2][1] = 0.25 * ( (1. + u) + u * w / (1. - w)) ; - s[2][2] = 0.25 * ( -1. + u * v / (1. - w) + u * v * w / (1. - w) / (1. - w)) ; + s[2][2] = 0.25 * ( -1. + u * v / (1. - w) + u * v * w / (1. - w) / (1. - w)) ; s[3][0] = 0.25 * ( -(1. + v) - v * w / (1. - w)) ; s[3][1] = 0.25 * ( (1. - u) - u * w / (1. - w)) ; - s[3][2] = 0.25 * ( -1. - u * v / (1. - w) - u * v * w / (1. - w) / (1. - w)) ; + s[3][2] = 0.25 * ( -1. - u * v / (1. - w) - u * v * w / (1. - w) / (1. - w)) ; } - s[4][0] = 0.; + s[4][0] = 0.; s[4][1] = 0.; s[4][2] = 1.; } @@ -217,28 +217,28 @@ class MPyramid : public MElement { * ,7 | 12 \ * ,/ .' | \ * ,/ 9 | 11 - * 0--------6-.'----3 `. + * 0--------6-.'----3 `. * `\ | `\ \ - * `5 .' 10 \ + * `5 .' 10 \ * `\ | `\ \ * `\.' `\` * 1--------8-------2 - * + * */ class MPyramid13 : public MPyramid { protected: MVertex *_vs[8]; public : - MPyramid13(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + MPyramid13(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, MVertex *v5, MVertex *v6, MVertex *v7, MVertex *v8, MVertex *v9, - MVertex *v10, MVertex *v11, MVertex *v12, int num=0, int part=0) + MVertex *v10, MVertex *v11, MVertex *v12, int num=0, int part=0) : MPyramid(v0, v1, v2, v3, v4, num, part) { - _vs[0] = v5; _vs[1] = v6; _vs[2] = v7; _vs[3] = v8; _vs[4] = v9; + _vs[0] = v5; _vs[1] = v6; _vs[2] = v7; _vs[3] = v8; _vs[4] = v9; _vs[5] = v10; _vs[6] = v11; _vs[7] = v12; for(int i = 0; i < 8; i++) _vs[i]->setPolynomialOrder(2); } - MPyramid13(std::vector<MVertex*> &v, int num=0, int part=0) + MPyramid13(std::vector<MVertex*> &v, int num=0, int part=0) : MPyramid(v, num, part) { for(int i = 0; i < 8; i++) _vs[i] = v[5 + i]; @@ -251,12 +251,12 @@ class MPyramid13 : public MPyramid { virtual MVertex *getVertexMED(int num) { static const int map[13] = {0, 3, 2, 1, 4, 6, 10, 8, 5, 7, 12, 11, 9}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual int getNumEdgeVertices() const { return 8; } virtual int getNumEdgesRep(){ return 16; } virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int e[16][2] = { {0, 5}, {5, 1}, {0, 6}, {6, 3}, @@ -278,7 +278,7 @@ class MPyramid13 : public MPyramid { } virtual int getNumFacesRep(){ return 22; } virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int f[22][3] = { {0, 5, 7}, {1, 9, 5}, {4, 7, 9}, {5, 9, 7}, {3, 6, 12}, {0, 7, 6}, {4, 12, 7}, {6, 7, 12}, @@ -333,9 +333,9 @@ class MPyramid13 : public MPyramid { * ,7 | 12 \ * ,/ .' | \ * ,/ 9 | 11 - * 0--------6-.'----3 `. + * 0--------6-.'----3 `. * `\ | `\ \ - * `5 .' 13 10 \ + * `5 .' 13 10 \ * `\ | `\ \ * `\.' `\` * 1--------8-------2 @@ -345,21 +345,21 @@ class MPyramid14 : public MPyramid { protected: MVertex *_vs[9]; public : - MPyramid14(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + MPyramid14(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, MVertex *v5, MVertex *v6, MVertex *v7, MVertex *v8, MVertex *v9, - MVertex *v10, MVertex *v11, MVertex *v12, MVertex *v13, - int num=0, int part=0) + MVertex *v10, MVertex *v11, MVertex *v12, MVertex *v13, + int num=0, int part=0) : MPyramid(v0, v1, v2, v3, v4, num, part) { - _vs[0] = v5; _vs[1] = v6; _vs[2] = v7; _vs[3] = v8; _vs[4] = v9; - _vs[5] = v10; _vs[6] = v11; _vs[7] = v12; _vs[8] = v13; - for(int i = 0; i < 9; i++) _vs[i]->setPolynomialOrder(2); + _vs[0] = v5; _vs[1] = v6; _vs[2] = v7; _vs[3] = v8; _vs[4] = v9; + _vs[5] = v10; _vs[6] = v11; _vs[7] = v12; _vs[8] = v13; + for(int i = 0; i < 9; i++) _vs[i]->setPolynomialOrder(2); } - MPyramid14(std::vector<MVertex*> &v, int num=0, int part=0) + MPyramid14(std::vector<MVertex*> &v, int num=0, int part=0) : MPyramid(v, num, part) { for(int i = 0; i < 9; i++) _vs[i] = v[5 + i]; - for(int i = 0; i < 9; i++) _vs[i]->setPolynomialOrder(2); + for(int i = 0; i < 9; i++) _vs[i]->setPolynomialOrder(2); } ~MPyramid14(){} virtual int getPolynomialOrder() const { return 2; } @@ -369,7 +369,7 @@ class MPyramid14 : public MPyramid { virtual int getNumFaceVertices() const { return 1; } virtual int getNumEdgesRep(){ return 16; } virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int e[16][2] = { {0, 5}, {5, 1}, {0, 6}, {6, 3}, @@ -391,13 +391,13 @@ class MPyramid14 : public MPyramid { } virtual int getNumFacesRep(){ return 24; } virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { static const int f[24][3] = { {0, 5, 7}, {1, 9, 5}, {4, 7, 9}, {5, 9, 7}, {3, 6, 12}, {0, 7, 6}, {4, 12, 7}, {6, 7, 12}, {1, 8, 9}, {2, 11, 8}, {4, 9, 11}, {8, 11, 9}, {2, 10, 11}, {3, 12, 10}, {4, 11, 12}, {10, 12, 11}, - {0, 6, 13}, {0, 13, 5}, {3, 10, 13}, {3, 13, 6}, + {0, 6, 13}, {0, 13, 5}, {3, 10, 13}, {3, 13, 6}, {2, 8, 13}, {2, 13, 10}, {1, 5, 13}, {1, 13, 8} }; _getFaceRep(getVertex(f[num][0]), getVertex(f[num][1]), getVertex(f[num][2]), diff --git a/Geo/MQuadrangle.cpp b/Geo/MQuadrangle.cpp index 2d74ebfc12c3113b32de5a2b1a8d8c355129723f..bc9aa6f41b616dff4e4d3daed8f5d5d6c0f79c19 100644 --- a/Geo/MQuadrangle.cpp +++ b/Geo/MQuadrangle.cpp @@ -20,7 +20,7 @@ const polynomialBasis* MQuadrangle::getFunctionSpace(int o) const { int order = (o == -1) ? getPolynomialOrder() : o; - int nf = getNumFaceVertices(); + int nf = getNumFaceVertices(); if ((nf == 0) && (o == -1)) { switch (order) { @@ -58,7 +58,7 @@ const JacobianBasis* MQuadrangle::getJacobianFuncSpace(int o) const { int order = (o == -1) ? getPolynomialOrder() : o; - int nf = getNumFaceVertices(); + int nf = getNumFaceVertices(); if ((nf == 0) && (o == -1)) { switch (order) { @@ -106,7 +106,7 @@ static void _myGetEdgeRep(MQuadrangle *q, int num, double *x, double *y, double double xi2 = -1. + (2.*(isub+1))/numSubEdges; SPoint3 pnt1, pnt2; switch(ie){ - case 0: + case 0: q->pnt( xi1, -1., 0., pnt1); q->pnt( xi2, -1., 0., pnt2); break; @@ -243,8 +243,8 @@ double MQuadrangle::etaShapeMeasure() double angle = fabs(90. - a1); angle = std::max(fabs(90. - a2),angle); angle = std::max(fabs(90. - a3),angle); - angle = std::max(fabs(90. - a4),angle); - + angle = std::max(fabs(90. - a4),angle); + return 1.-angle/90; } @@ -274,7 +274,7 @@ double MQuadrangle::getInnerRadius() double x[4] = {_v[0]->x(), _v[1]->x(), _v[2]->x(), _v[3]->x()}; double y[4] = {_v[0]->y(), _v[1]->y(), _v[2]->y(), _v[3]->y()}; double z[4] = {_v[0]->z(), _v[1]->z(), _v[2]->z(), _v[3]->z()}; - + // get the coefficient (a,b,c,d) of the mean plane - least square! // the plane has for equation " a*x+b*y+c*z+d=0 " @@ -282,7 +282,7 @@ double MQuadrangle::getInnerRadius() double xm = (x[0] + x[1] + x[2] + x[3]) / 4; double ym = (y[0] + y[1] + y[2] + y[3]) / 4; double zm = (z[0] + z[1] + z[2] + z[3]) / 4; - + // using svd decomposition fullMatrix<double> U(4,3), V(3,3); fullVector<double> sigma(3); @@ -291,7 +291,7 @@ double MQuadrangle::getInnerRadius() U(i, 1) = y[i] - ym; U(i, 2) = z[i] - zm; } - + U.svd(V, sigma); double svd[3]; svd[0] = sigma(0); @@ -307,29 +307,29 @@ double MQuadrangle::getInnerRadius() double a = V(0, min); double b = V(1, min); double c = V(2, min); - + double d = -(xm * a + ym * b + zm * c); - + double norm = sqrt(a*a+b*b+c*c); - + // projection of the 4 original points on the mean_plane - + double xp[4], yp[4], zp[4]; - + for (int i = 0; i < 4; i++) { xp[i] = ((b*b+c*c)*x[i]-a*b*y[i]-a*c*z[i]-d*a)/norm; yp[i] = (-a*b*x[i]+(a*a+c*c)*y[i]-b*c*z[i]-d*b)/norm; zp[i] = (-a*c*x[i]-b*c*y[i]+(a*a+b*b)*z[i]-d*c)/norm; } - + // go from XYZ-plane to XY-plane - + // 4 points, 4 edges => 4 inner radii of circles tangent to (at // least) 3 of the four edges! double xn[4], yn[4], r[4]; - + planarQuad_xyz2xy(xp, yp, zp, xn, yn); - + // compute for each of the 4 possibilities the incircle radius, // keeping the minimum double R = 1.e22; diff --git a/Geo/MQuadrangle.h b/Geo/MQuadrangle.h index 2edbb12c7e07269c65d7c67555eef8b7e3a6b9fd..0ec0310863575b65d7fcc50308a4a8083d7f78a6 100644 --- a/Geo/MQuadrangle.h +++ b/Geo/MQuadrangle.h @@ -426,7 +426,7 @@ struct compareMQuadrangleLexicographic { bool operator () (MQuadrangle *t1, MQuadrangle *t2) const { - MVertex *_v1[] = {t1->getVertex(0), t1->getVertex(1), + MVertex *_v1[] = {t1->getVertex(0), t1->getVertex(1), t1->getVertex(2), t1->getVertex(3)}; MVertex *_v2[] = {t2->getVertex(0), t2->getVertex(1), t2->getVertex(2), t2->getVertex(3)}; diff --git a/Geo/MTetrahedron.cpp b/Geo/MTetrahedron.cpp index 83785d50e3a53ea0d4c8e754cadf94af27165ab6..c25f871522695dee3b4bd3a781ae3ed49e5ae454 100644 --- a/Geo/MTetrahedron.cpp +++ b/Geo/MTetrahedron.cpp @@ -66,15 +66,15 @@ double MTetrahedron::getInnerRadius() // radius of inscribed sphere = 3 * Volume / sum(Area_i) double dist[3], face_area = 0.; double vol = getVolume(); - for(int i = 0; i < 4; i++){ + for(int i = 0; i < 4; i++){ MFace f = getFace(i); for (int j = 0; j < 3; j++){ MEdge e = f.getEdge(j); dist[j] = e.getVertex(0)->distance(e.getVertex(1)); } - face_area += 0.25 * sqrt((dist[0] + dist[1] + dist[2]) * - (-dist[0] + dist[1] + dist[2]) * - (dist[0] - dist[1] + dist[2]) * + face_area += 0.25 * sqrt((dist[0] + dist[1] + dist[2]) * + (-dist[0] + dist[1] + dist[2]) * + (dist[0] - dist[1] + dist[2]) * (dist[0] + dist[1] - dist[2])); } return 3 * vol / face_area; @@ -122,7 +122,7 @@ const polynomialBasis* MTetrahedron::getFunctionSpace(int o) const int order = (o == -1) ? getPolynomialOrder() : o; int nv = getNumVolumeVertices(); - + if ((nv == 0) && (o == -1)) { switch (order) { case 0: return polynomialBases::find(MSH_TET_1); @@ -139,7 +139,7 @@ const polynomialBasis* MTetrahedron::getFunctionSpace(int o) const default: Msg::Error("Order %d tetrahedron function space not implemented", order); } } - else { + else { switch (order) { case 0: return polynomialBases::find(MSH_TET_1); case 1: return polynomialBases::find(MSH_TET_4); @@ -163,7 +163,7 @@ const JacobianBasis* MTetrahedron::getJacobianFuncSpace(int o) const int order = (o == -1) ? getPolynomialOrder() : o; int nv = getNumVolumeVertices(); - + if ((nv == 0) && (o == -1)) { switch (order) { case 1: return JacobianBases::find(MSH_TET_4); @@ -174,7 +174,7 @@ const JacobianBasis* MTetrahedron::getJacobianFuncSpace(int o) const default: Msg::Error("Order %d tetrahedron function space not implemented", order); } } - else { + else { switch (order) { case 1: return JacobianBases::find(MSH_TET_4); case 2: return JacobianBases::find(MSH_TET_10); @@ -201,7 +201,7 @@ static void _myGetEdgeRep(MTetrahedron *tet, int num, double *x, double *y, doub static double pp[4][3] = {{0,0,0},{1,0,0},{0,1,0},{0,0,1}}; static int ed [6][2] = {{0,1},{0,2},{0,3},{1,2},{1,3},{2,3}}; int iEdge = num / numSubEdges; - int iSubEdge = num % numSubEdges; + int iSubEdge = num % numSubEdges; int iVertex1 = ed [iEdge][0]; int iVertex2 = ed [iEdge][1]; @@ -218,7 +218,7 @@ static void _myGetEdgeRep(MTetrahedron *tet, int num, double *x, double *y, doub SPoint3 pnt1, pnt2; tet->pnt(u1,v1,w1,pnt1); tet->pnt(u2,v2,w2,pnt2); - x[0] = pnt1.x(); x[1] = pnt2.x(); + x[0] = pnt1.x(); x[1] = pnt2.x(); y[0] = pnt1.y(); y[1] = pnt2.y(); z[0] = pnt1.z(); z[1] = pnt2.z(); @@ -240,14 +240,14 @@ void MTetrahedronN::getEdgeRep(int num, double *x, double *y, double *z, SVector int MTetrahedronN::getNumFacesRep(){ return 4 * SQU(CTX::instance()->mesh.numSubEdges); } int MTetrahedron10::getNumFacesRep(){ return 4 * SQU(CTX::instance()->mesh.numSubEdges); } -static void _myGetFaceRep(MTetrahedron *tet, int num, double *x, double *y, double *z, +static void _myGetFaceRep(MTetrahedron *tet, int num, double *x, double *y, double *z, SVector3 *n, int numSubEdges) { static double pp[4][3] = {{0,0,0},{1,0,0},{0,1,0},{0,0,1}}; static int fak [4][3] = {{0,1,2},{0,1,3},{0,2,3},{1,2,3}}; int iFace = num / (numSubEdges * numSubEdges); - int iSubFace = num % (numSubEdges * numSubEdges); - + int iSubFace = num % (numSubEdges * numSubEdges); + int iVertex1 = fak[iFace][0]; int iVertex2 = fak[iFace][1]; int iVertex3 = fak[iFace][2]; @@ -366,7 +366,7 @@ void MTetrahedron::getFaceInfo(const MFace &face, int &ithFace, int &sign, int & static std::vector<std::vector<int> > tetReverseIndices(20); -const std::vector<int> &MTetrahedronN::_getReverseIndices (int order) +const std::vector<int> &MTetrahedronN::_getReverseIndices (int order) { if(order >= (int)tetReverseIndices.size()) tetReverseIndices.resize(order + 1); @@ -380,10 +380,10 @@ const std::vector<int> &MTetrahedronN::_getReverseIndices (int order) int p=0; for (int layerOrder = order; layerOrder>=0; layerOrder-=4) { //principal vertices - r[p+0] = p+0; + r[p+0] = p+0; if (layerOrder ==0) break; - r[p+1] = p+2; - r[p+2] = p+1; + r[p+1] = p+2; + r[p+2] = p+1; r[p+3] = p+3; p+=4; for (int i = 0; i<layerOrder-1; i++) { diff --git a/Geo/MTetrahedron.h b/Geo/MTetrahedron.h index 32c9c7fe6db11593aa6916d22f16c3751b08ce22..b7b12890105bec317de403e341eae27fc3fc26b0 100644 --- a/Geo/MTetrahedron.h +++ b/Geo/MTetrahedron.h @@ -46,12 +46,12 @@ class MTetrahedron : public MElement { v[2] = _v[faces_tetra(num, 2)]; } public : - MTetrahedron(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, int num=0, int part=0) + MTetrahedron(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, int num=0, int part=0) : MElement(num, part) { _v[0] = v0; _v[1] = v1; _v[2] = v2; _v[3] = v3; } - MTetrahedron(std::vector<MVertex*> &v, int num=0, int part=0) + MTetrahedron(std::vector<MVertex*> &v, int num=0, int part=0) : MElement(num, part) { for(int i = 0; i < 4; i++) _v[i] = v[i]; @@ -89,10 +89,10 @@ class MTetrahedron : public MElement { _v[faces_tetra(num, 1)], _v[faces_tetra(num, 2)]); } - virtual void getFaceInfo(const MFace & face, int &ithFace, int &sign, int &rot) const; + virtual void getFaceInfo(const MFace & face, int &ithFace, int &sign, int &rot) const; virtual int getNumFacesRep(){ return 4; } virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { MFace f(getFace(num)); _getFaceRep(f.getVertex(0), f.getVertex(1), f.getVertex(2), x, y, z, n); } @@ -172,7 +172,7 @@ class MTetrahedron : public MElement { /* * MTetrahedron10 * - * 2 + * 2 * ,/|`\ * ,/ | `\ * ,6 '. `5 @@ -190,15 +190,15 @@ class MTetrahedron10 : public MTetrahedron { protected: MVertex *_vs[6]; public : - MTetrahedron10(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + MTetrahedron10(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, MVertex *v5, MVertex *v6, MVertex *v7, MVertex *v8, MVertex *v9, - int num=0, int part=0) + int num=0, int part=0) : MTetrahedron(v0, v1, v2, v3, num, part) { _vs[0] = v4; _vs[1] = v5; _vs[2] = v6; _vs[3] = v7; _vs[4] = v8; _vs[5] = v9; for(int i = 0; i < 6; i++) _vs[i]->setPolynomialOrder(2); } - MTetrahedron10(std::vector<MVertex*> &v, int num=0, int part=0) + MTetrahedron10(std::vector<MVertex*> &v, int num=0, int part=0) : MTetrahedron(v, num, part) { for(int i = 0; i < 6; i++) _vs[i] = v[4 + i]; @@ -211,22 +211,22 @@ class MTetrahedron10 : public MTetrahedron { virtual MVertex *getVertexUNV(int num) { static const int map[10] = {0, 4, 1, 5, 2, 6, 7, 9, 8, 3}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getVertexBDF(int num) { static const int map[10] = {0, 1, 2, 3, 4, 5, 6, 7, 9, 8}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getVertexMED(int num) { static const int map[10] = {0, 2, 1, 3, 6, 5, 4, 7, 8, 9}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getVertexDIFF(int num) { static const int map[10] = {0, 1, 2, 3, 4, 5, 6, 7, 9, 8}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual int getNumEdgeVertices() const { return 6; } @@ -275,13 +275,13 @@ class MTetrahedron10 : public MTetrahedron { * MTetrahedronN FIXME: check the plot * * 2 - * ,/|`\ + * ,/|`\ * ,/ | `\ E = order - 1 - * ,/ '. `\ C = 4 + 6*E + * ,/ '. `\ C = 4 + 6*E * ,/ | `\ F = ((order - 1)*(order - 2))/2 * ,/ | `\ N = total number of vertices * 0-----------'.--------1 - * `\. | ,/ Interior vertex numbers + * `\. | ,/ Interior vertex numbers * `\. | ,/ for edge 0 <= i <= 5: 4+i*E to 3+(i+1)*E * `\. '. ,/ for face 0 <= j <= 3: C+j*F to C-1+(j+1)*F * `\. |/ in volume : C+4*F to N-1 @@ -290,11 +290,11 @@ class MTetrahedron10 : public MTetrahedron { */ /* tet order 3 - + * 2 - * ,/|`\ + * ,/|`\ * ,5 | `6 E = order - 1 - * ,/ 12 `\ C = 4 + 6*E + * ,/ 12 `\ C = 4 + 6*E * ,4 | `7 F = ((order - 1)*(order - 2))/2 * ,/ | `\ N = total number of vertices * 0-----9-----'.--8-----1 @@ -313,13 +313,13 @@ class MTetrahedronN : public MTetrahedron { const char _order; double _disto; public: - MTetrahedronN(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, - std::vector<MVertex*> &v, char order, int num=0, int part=0) + MTetrahedronN(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, + std::vector<MVertex*> &v, char order, int num=0, int part=0) : MTetrahedron(v0, v1, v2, v3, num, part) , _vs (v), _order(order),_disto(-1.e22) { for(unsigned int i = 0; i < _vs.size(); i++) _vs[i]->setPolynomialOrder(_order); } - MTetrahedronN(std::vector<MVertex*> &v, char order, int num=0, int part=0) + MTetrahedronN(std::vector<MVertex*> &v, char order, int num=0, int part=0) : MTetrahedron(v[0], v[1], v[2], v[3], num, part) , _order(order),_disto(-1.e22) { for(unsigned int i = 4; i < v.size(); i++) _vs.push_back(v[i]); @@ -352,7 +352,7 @@ class MTetrahedronN : public MTetrahedron { const int ie = (num+1)*nbV; for(int i = num*nbV; i != ie; ++i) v[j++] = _vs[i]; } - virtual int getNumVolumeVertices() const + virtual int getNumVolumeVertices() const { switch(getTypeForMSH()){ case MSH_TET_35 : return 1; @@ -363,27 +363,27 @@ class MTetrahedronN : public MTetrahedron { case MSH_TET_220 : return 56; case MSH_TET_286 : return 84; default : return 0; - } + } } - virtual int getTypeForMSH() const + virtual int getTypeForMSH() const { // (p+1)*(p+2)*(p+3)/6 - if(_order == 3 && _vs.size() + 4 == 20) return MSH_TET_20; - if(_order == 4 && _vs.size() + 4 == 34) return MSH_TET_34; - if(_order == 4 && _vs.size() + 4 == 35) return MSH_TET_35; - if(_order == 5 && _vs.size() + 4 == 56) return MSH_TET_56; - if(_order == 5 && _vs.size() + 4 == 52) return MSH_TET_52; - if(_order == 6 && _vs.size() + 4 == 84) return MSH_TET_84; - if(_order == 7 && _vs.size() + 4 == 120) return MSH_TET_120; - if(_order == 8 && _vs.size() + 4 == 165) return MSH_TET_165; - if(_order == 9 && _vs.size() + 4 == 220) return MSH_TET_220; - if(_order == 10 && _vs.size() + 4 == 286) return MSH_TET_286; + if(_order == 3 && _vs.size() + 4 == 20) return MSH_TET_20; + if(_order == 4 && _vs.size() + 4 == 34) return MSH_TET_34; + if(_order == 4 && _vs.size() + 4 == 35) return MSH_TET_35; + if(_order == 5 && _vs.size() + 4 == 56) return MSH_TET_56; + if(_order == 5 && _vs.size() + 4 == 52) return MSH_TET_52; + if(_order == 6 && _vs.size() + 4 == 84) return MSH_TET_84; + if(_order == 7 && _vs.size() + 4 == 120) return MSH_TET_120; + if(_order == 8 && _vs.size() + 4 == 165) return MSH_TET_165; + if(_order == 9 && _vs.size() + 4 == 220) return MSH_TET_220; + if(_order == 10 && _vs.size() + 4 == 286) return MSH_TET_286; return 0; } - virtual void revert() - { + virtual void revert() + { MVertex *tmp; - tmp = _v[1]; _v[1] = _v[2]; _v[2] = tmp; + tmp = _v[1]; _v[1] = _v[2]; _v[2] = tmp; std::vector<MVertex*> inv(_vs.size()); std::vector<int> reverseIndices = _getReverseIndices(_order); for (unsigned int i = 0; i< _vs.size(); i++) diff --git a/Geo/MTriangle.cpp b/Geo/MTriangle.cpp index 0c4f6322bad7be7d23a6c2145752a039f632f3a2..8ed49986f6e36c3042bdcf3c7ad97036e21249f3 100644 --- a/Geo/MTriangle.cpp +++ b/Geo/MTriangle.cpp @@ -37,7 +37,7 @@ double MTriangle::distoShapeMeasure() double MTriangle::getInnerRadius() { - // radius of inscribed circle = 2 * Area / sum(Line_i) + // radius of inscribed circle = 2 * Area / sum(Line_i) double dist[3], k = 0.; for (int i = 0; i < 3; i++){ MEdge e = getEdge(i); @@ -80,7 +80,7 @@ const polynomialBasis* MTriangle::getFunctionSpace(int o) const { int order = (o == -1) ? getPolynomialOrder() : o; - int nf = getNumFaceVertices(); + int nf = getNumFaceVertices(); if ((nf == 0) && (o == -1)) { switch (order) { @@ -98,7 +98,7 @@ const polynomialBasis* MTriangle::getFunctionSpace(int o) const default: Msg::Error("Order %d triangle incomplete function space not implemented", order); } } - else { + else { switch (order) { case 0: return polynomialBases::find(MSH_TRI_1); case 1: return polynomialBases::find(MSH_TRI_3); @@ -122,7 +122,7 @@ const JacobianBasis* MTriangle::getJacobianFuncSpace(int o) const int order = (o == -1) ? getPolynomialOrder() : o; - int nf = getNumFaceVertices(); + int nf = getNumFaceVertices(); if ((nf == 0) && (o == -1)) { switch (order) { @@ -140,7 +140,7 @@ const JacobianBasis* MTriangle::getJacobianFuncSpace(int o) const default: Msg::Error("Order %d triangle incomplete function space not implemented", order); } } - else { + else { switch (order) { case 1: return JacobianBases::find(MSH_TRI_3); case 2: return JacobianBases::find(MSH_TRI_6); @@ -174,7 +174,7 @@ static void _myGetEdgeRep(MTriangle *t, int num, double *x, double *y, double *z y[0] = pnt1.y(); y[1] = pnt2.y(); z[0] = pnt1.z(); z[1] = pnt2.z(); return; - } + } if (num < 2 * numSubEdges){ SPoint3 pnt1, pnt2; num -= numSubEdges; @@ -184,7 +184,7 @@ static void _myGetEdgeRep(MTriangle *t, int num, double *x, double *y, double *z y[0] = pnt1.y(); y[1] = pnt2.y(); z[0] = pnt1.z(); z[1] = pnt2.z(); return ; - } + } { SPoint3 pnt1, pnt2; num -= 2 * numSubEdges; diff --git a/Geo/MTriangle.h b/Geo/MTriangle.h index 60be6b993589d8ea37711b51b893a94a8b71bcd9..3cb6b223310b2d1a2364bc18dc50335b258b4a7f 100644 --- a/Geo/MTriangle.h +++ b/Geo/MTriangle.h @@ -8,7 +8,7 @@ #include "MElement.h" -/* +/* * MTriangle * * v @@ -43,7 +43,7 @@ class MTriangle : public MElement { { _v[0] = v0; _v[1] = v1; _v[2] = v2; } - MTriangle(std::vector<MVertex*> &v, int num=0, int part=0) + MTriangle(std::vector<MVertex*> &v, int num=0, int part=0) : MElement(num, part) { for(int i = 0; i < 3; i++) _v[i] = v[i]; @@ -60,10 +60,10 @@ class MTriangle : public MElement { virtual MVertex *getVertexMED(int num) { static const int map[3] = {0, 2, 1}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getOtherVertex(MVertex *v1, MVertex *v2) - { + { if(_v[0] != v1 && _v[0] != v2) return _v[0]; if(_v[1] != v1 && _v[1] != v2) return _v[1]; if(_v[2] != v1 && _v[2] != v2) return _v[2]; @@ -90,7 +90,7 @@ class MTriangle : public MElement { } virtual int getNumEdgesRep(){ return 3; } virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { MEdge e(getEdge(num)); _getEdgeRep(e.getVertex(0), e.getVertex(1), x, y, z, n, 0); } @@ -101,12 +101,12 @@ class MTriangle : public MElement { } virtual int getNumFaces(){ return 1; } virtual MFace getFace(int num) - { - return MFace(_v[0], _v[1], _v[2]); + { + return MFace(_v[0], _v[1], _v[2]); } virtual int getNumFacesRep(){ return 1; } virtual void getFaceRep(int num, double *x, double *y, double *z, SVector3 *n) - { + { _getFaceRep(_v[0], _v[1], _v[2], x, y, z, n); } virtual void getFaceVertices(const int num, std::vector<MVertex*> &v) const @@ -122,7 +122,7 @@ class MTriangle : public MElement { virtual const char *getStringForBDF() const { return "CTRIA3"; } virtual const char *getStringForDIFF() const { return "ElmT3n2D"; } virtual const char *getStringForINP() const { return "C2D3"; } - virtual void revert() + virtual void revert() { MVertex *tmp = _v[1]; _v[1] = _v[2]; _v[2] = tmp; } @@ -132,7 +132,7 @@ class MTriangle : public MElement { { double tol = _isInsideTolerance; if(u < (-tol) || v < (-tol) || u > ((1. + tol) - v)) - return false; + return false; return true; } virtual void getIntegrationPoints(int pOrder, int *npts, IntPt **pts); @@ -168,13 +168,13 @@ class MTriangle6 : public MTriangle { MVertex *_vs[3]; public : MTriangle6(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, - MVertex *v5, int num=0, int part=0) + MVertex *v5, int num=0, int part=0) : MTriangle(v0, v1, v2, num, part) { _vs[0] = v3; _vs[1] = v4; _vs[2] = v5; for(int i = 0; i < 3; i++) _vs[i]->setPolynomialOrder(2); } - MTriangle6(std::vector<MVertex*> &v, int num=0, int part=0) + MTriangle6(std::vector<MVertex*> &v, int num=0, int part=0) : MTriangle(v, num, part) { for(int i = 0; i < 3; i++) _vs[i] = v[3 + i]; @@ -187,12 +187,12 @@ class MTriangle6 : public MTriangle { virtual MVertex *getVertexUNV(int num) { static const int map[6] = {0, 3, 1, 4, 2, 5}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual MVertex *getVertexMED(int num) { static const int map[6] = {0, 2, 1, 5, 4, 3}; - return getVertex(map[num]); + return getVertex(map[num]); } virtual int getNumEdgeVertices() const { return 3; } virtual int getNumEdgesRep(); @@ -220,7 +220,7 @@ class MTriangle6 : public MTriangle { virtual const char *getStringForBDF() const { return "CTRIA6"; } virtual const char *getStringForDIFF() const { return "ElmT6n2D"; } virtual const char *getStringForINP() const { return "C2D6"; } - virtual void revert() + virtual void revert() { MVertex *tmp; tmp = _v[1]; _v[1] = _v[2]; _v[2] = tmp; @@ -249,13 +249,13 @@ class MTriangleN : public MTriangle { std::vector<MVertex *> _vs; const char _order; public: - MTriangleN(MVertex *v0, MVertex *v1, MVertex *v2, - std::vector<MVertex*> &v, char order, int num=0, int part=0) + MTriangleN(MVertex *v0, MVertex *v1, MVertex *v2, + std::vector<MVertex*> &v, char order, int num=0, int part=0) : MTriangle(v0, v1, v2, num, part), _vs(v), _order(order) { for(unsigned int i = 0; i < _vs.size(); i++) _vs[i]->setPolynomialOrder(_order); } - MTriangleN(std::vector<MVertex*> &v, char order, int num=0, int part=0) + MTriangleN(std::vector<MVertex*> &v, char order, int num=0, int part=0) : MTriangle(v[0], v[1], v[2], num, part), _order(order) { for(unsigned int i = 3; i < v.size(); i++) _vs.push_back(v[i]); @@ -265,7 +265,7 @@ class MTriangleN : public MTriangle { virtual int getPolynomialOrder() const { return _order; } virtual int getNumVertices() const { return 3 + _vs.size(); } virtual MVertex *getVertex(int num){ return num < 3 ? _v[num] : _vs[num - 3]; } - virtual int getNumFaceVertices() const + virtual int getNumFaceVertices() const { if(_order == 3 && _vs.size() == 6) return 0; if(_order == 3 && _vs.size() == 7) return 1; @@ -306,21 +306,21 @@ class MTriangleN : public MTriangle { } virtual int getTypeForMSH() const { - if(_order == 2 && _vs.size() == 3) return MSH_TRI_6; - if(_order == 3 && _vs.size() == 6) return MSH_TRI_9; - if(_order == 3 && _vs.size() == 7) return MSH_TRI_10; - if(_order == 4 && _vs.size() == 9) return MSH_TRI_12; - if(_order == 4 && _vs.size() == 12) return MSH_TRI_15; - if(_order == 5 && _vs.size() == 12) return MSH_TRI_15I; + if(_order == 2 && _vs.size() == 3) return MSH_TRI_6; + if(_order == 3 && _vs.size() == 6) return MSH_TRI_9; + if(_order == 3 && _vs.size() == 7) return MSH_TRI_10; + if(_order == 4 && _vs.size() == 9) return MSH_TRI_12; + if(_order == 4 && _vs.size() == 12) return MSH_TRI_15; + if(_order == 5 && _vs.size() == 12) return MSH_TRI_15I; if(_order == 5 && _vs.size() == 18) return MSH_TRI_21; - if(_order == 6 && _vs.size() == 25) return MSH_TRI_28; - if(_order == 7 && _vs.size() == 33) return MSH_TRI_36; - if(_order == 8 && _vs.size() == 42) return MSH_TRI_45; - if(_order == 9 && _vs.size() == 52) return MSH_TRI_55; - if(_order ==10 && _vs.size() == 63) return MSH_TRI_66; + if(_order == 6 && _vs.size() == 25) return MSH_TRI_28; + if(_order == 7 && _vs.size() == 33) return MSH_TRI_36; + if(_order == 8 && _vs.size() == 42) return MSH_TRI_45; + if(_order == 9 && _vs.size() == 52) return MSH_TRI_55; + if(_order ==10 && _vs.size() == 63) return MSH_TRI_66; return 0; } - virtual void revert() + virtual void revert() { MVertex *tmp; tmp = _v[1]; _v[1] = _v[2]; _v[2] = tmp; @@ -330,7 +330,7 @@ class MTriangleN : public MTriangle { } }; -template <class T> +template <class T> void sort3(T *t[3]) { T *temp; diff --git a/Solver/quadratureRules.h b/Solver/quadratureRules.h index 12c12b3dc006f418276875438f1d1a67605ed527..e41f8510068f7729a36ecaad1ef270361053fb0a 100644 --- a/Solver/quadratureRules.h +++ b/Solver/quadratureRules.h @@ -1,7 +1,7 @@ // // C++ Interface: quadratureRules // -// Description: +// Description: // // // Author: <Eric Bechet>, (C) 2009 @@ -19,7 +19,7 @@ class QuadratureBase { - public : + public : virtual ~QuadratureBase(){} virtual int getIntPoints(MElement *e,IntPt **GP) =0; }; @@ -27,12 +27,12 @@ class QuadratureBase class GaussQuadrature : public QuadratureBase { - public : + public : enum IntegCases {Other,Val,Grad,ValVal,GradGrad}; private : int order; IntegCases info; - public : + public : GaussQuadrature(int order_=0):order(order_),info(Other) {} GaussQuadrature(IntegCases info_):order(0),info(info_) {} virtual ~GaussQuadrature(){} @@ -40,7 +40,7 @@ class GaussQuadrature : public QuadratureBase { int integrationOrder; int npts; - int geoorder=e->getPolynomialOrder(); + int geoorder=e->getPolynomialOrder(); switch(info) { case Other :