diff --git a/Geo/GModelIO.cpp b/Geo/GModelIO.cpp index 4ea273fa3977a98ce2fd2cabc74ff29d68d67118..e0b64aa7b215a1bd088eda090fb31f49ea8cd84e 100644 --- a/Geo/GModelIO.cpp +++ b/Geo/GModelIO.cpp @@ -1,4 +1,4 @@ -// $Id: GModelIO.cpp,v 1.41 2006-09-03 17:26:07 geuzaine Exp $ +// $Id: GModelIO.cpp,v 1.42 2006-09-04 15:58:22 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -246,7 +246,7 @@ static void createElementMSH(GModel *m, int num, int type, int physical, break; case TRI2: elements[1][elementary].push_back - (new MTriangle2(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], + (new MTriangle6(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], num, partition)); dim = 2; break; @@ -257,7 +257,7 @@ static void createElementMSH(GModel *m, int num, int type, int physical, break; case QUA2: elements[2][elementary].push_back - (new MQuadrangle2(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], + (new MQuadrangle9(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], v[n[6]], v[n[7]], v[n[8]], num, partition)); dim = 2; break; @@ -268,8 +268,8 @@ static void createElementMSH(GModel *m, int num, int type, int physical, break; case TET2: elements[3][elementary].push_back - (new MTetrahedron2(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], - v[n[6]], v[n[7]], v[n[8]], v[n[9]], num, partition)); + (new MTetrahedron10(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], + v[n[6]], v[n[7]], v[n[8]], v[n[9]], num, partition)); dim = 3; break; case HEX1: @@ -280,11 +280,11 @@ static void createElementMSH(GModel *m, int num, int type, int physical, break; case HEX2: elements[4][elementary].push_back - (new MHexahedron2(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], - v[n[6]], v[n[7]], v[n[8]], v[n[9]], v[n[10]], v[n[11]], - v[n[12]], v[n[13]], v[n[14]], v[n[15]], v[n[16]], v[n[17]], - v[n[18]], v[n[19]], v[n[20]], v[n[21]], v[n[22]], v[n[23]], - v[n[24]], v[n[25]], v[n[26]], num, partition)); + (new MHexahedron27(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], + v[n[6]], v[n[7]], v[n[8]], v[n[9]], v[n[10]], v[n[11]], + v[n[12]], v[n[13]], v[n[14]], v[n[15]], v[n[16]], v[n[17]], + v[n[18]], v[n[19]], v[n[20]], v[n[21]], v[n[22]], v[n[23]], + v[n[24]], v[n[25]], v[n[26]], num, partition)); dim = 3; break; case PRI1: @@ -295,10 +295,10 @@ static void createElementMSH(GModel *m, int num, int type, int physical, break; case PRI2: elements[5][elementary].push_back - (new MPrism2(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], - v[n[6]], v[n[7]], v[n[8]], v[n[9]], v[n[10]], v[n[11]], - v[n[12]], v[n[13]], v[n[14]], v[n[15]], v[n[16]], v[n[17]], - num, partition)); + (new MPrism18(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], + v[n[6]], v[n[7]], v[n[8]], v[n[9]], v[n[10]], v[n[11]], + v[n[12]], v[n[13]], v[n[14]], v[n[15]], v[n[16]], v[n[17]], + num, partition)); dim = 3; break; case PYR1: @@ -308,9 +308,9 @@ static void createElementMSH(GModel *m, int num, int type, int physical, break; case PYR2: elements[6][elementary].push_back - (new MPyramid2(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], - v[n[6]], v[n[7]], v[n[8]], v[n[9]], v[n[10]], v[n[11]], - v[n[12]], v[n[13]], num, partition)); + (new MPyramid14(v[n[0]], v[n[1]], v[n[2]], v[n[3]], v[n[4]], v[n[5]], + v[n[6]], v[n[7]], v[n[8]], v[n[9]], v[n[10]], v[n[11]], + v[n[12]], v[n[13]], num, partition)); dim = 3; break; default: @@ -1625,7 +1625,7 @@ int GModel::readBDF(const std::string &name) } else if(!strncmp(buffer, "CTRIA6", 6)){ if(readElementBDF(fp, buffer, 6, 6, &num, ®ion, n, vertices)) - elements[1][region].push_back(new MTriangle2(n, num)); + elements[1][region].push_back(new MTriangle6(n, num)); } else if(!strncmp(buffer, "CQUAD4", 6)){ if(readElementBDF(fp, buffer, 6, 4, &num, ®ion, n, vertices)) diff --git a/Geo/MElement.h b/Geo/MElement.h index 654195e0e727ba65aae3d49b6a2f5be118eefd58..7f639644abea8b5f8d88fc3f2b39c5fac78b02f0 100644 --- a/Geo/MElement.h +++ b/Geo/MElement.h @@ -247,22 +247,22 @@ class MTriangle : public MElement { virtual char *getStringForBDF(){ return "CTRIA3"; } }; -class MTriangle2 : public MTriangle { +class MTriangle6 : public MTriangle { protected: MVertex *_vs[3]; public : - MTriangle2(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + MTriangle6(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, MVertex *v5, int num=0, int part=0) : MTriangle(v0, v1, v2, num, part) { _vs[0] = v3; _vs[1] = v4; _vs[2] = v5; } - MTriangle2(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]; } - ~MTriangle2(){} + ~MTriangle6(){} virtual int getPolynomialOrder(){ return 2; } virtual int getNumVertices(){ return 6; } virtual MVertex *getVertex(int num){ return num < 3 ? _v[num] : _vs[num - 3]; } @@ -332,22 +332,22 @@ class MQuadrangle : public MElement { virtual char *getStringForBDF(){ return "CQUAD4"; } }; -class MQuadrangle2 : public MQuadrangle { +class MQuadrangle9 : public MQuadrangle { protected: MVertex *_vs[5]; public : - MQuadrangle2(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, + MQuadrangle9(MVertex *v0, MVertex *v1, MVertex *v2, MVertex *v3, MVertex *v4, MVertex *v5, MVertex *v6, MVertex *v7, MVertex *v8, int num=0, int part=0) : MQuadrangle(v0, v1, v2, v3, num, part) { _vs[0] = v4; _vs[1] = v5; _vs[2] = v6; _vs[3] = v7; _vs[4] = v8; } - MQuadrangle2(std::vector<MVertex*> &v, int num=0, int part=0) + MQuadrangle9(std::vector<MVertex*> &v, int num=0, int part=0) : MQuadrangle(v, num, part) { for(int i = 0; i < 5; i++) _vs[i] = v[4 + i]; } - ~MQuadrangle2(){} + ~MQuadrangle9(){} virtual int getPolynomialOrder(){ return 2; } virtual int getNumVertices(){ return 9; } virtual MVertex *getVertex(int num){ return num < 4 ? _v[num] : _vs[num - 4]; } @@ -420,23 +420,23 @@ class MTetrahedron : public MElement { virtual double etaShapeMeasure(); }; -class MTetrahedron2 : public MTetrahedron { +class MTetrahedron10 : public MTetrahedron { protected: MVertex *_vs[6]; public : - MTetrahedron2(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) + 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) : 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; } - MTetrahedron2(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]; } - ~MTetrahedron2(){} + ~MTetrahedron10(){} virtual int getPolynomialOrder(){ return 2; } virtual int getNumVertices(){ return 10; } virtual MVertex *getVertex(int num){ return num < 4 ? _v[num] : _vs[num - 4]; } @@ -518,16 +518,16 @@ class MHexahedron : public MElement { } }; -class MHexahedron2 : public MHexahedron { +class MHexahedron27 : public MHexahedron { protected: MVertex *_vs[19]; public : - MHexahedron2(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) + 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) : 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; @@ -535,12 +535,12 @@ class MHexahedron2 : public MHexahedron { _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; } - MHexahedron2(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]; } - ~MHexahedron2(){} + ~MHexahedron27(){} virtual int getPolynomialOrder(){ return 2; } virtual int getNumVertices(){ return 27; } virtual MVertex *getVertex(int num){ return num < 8 ? _v[num] : _vs[num - 8]; } @@ -634,26 +634,26 @@ class MPrism : public MElement { } }; -class MPrism2 : public MPrism { +class MPrism18 : public MPrism { protected: MVertex *_vs[12]; public : - MPrism2(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) + 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) : 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; } - MPrism2(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]; } - ~MPrism2(){} + ~MPrism18(){} virtual int getPolynomialOrder(){ return 2; } virtual int getNumVertices(){ return 18; } virtual MVertex *getVertex(int num){ return num < 6 ? _v[num] : _vs[num - 6]; } @@ -741,25 +741,25 @@ class MPyramid : public MElement { } }; -class MPyramid2 : public MPyramid { +class MPyramid14 : public MPyramid { protected: MVertex *_vs[9]; public : - MPyramid2(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) + 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) : 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; } - MPyramid2(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]; } - ~MPyramid2(){} + ~MPyramid14(){} virtual int getPolynomialOrder(){ return 2; } virtual int getNumVertices(){ return 14; } virtual MVertex *getVertex(int num){ return num < 5 ? _v[num] : _vs[num - 5]; } diff --git a/Mesh/SecondOrder.cpp b/Mesh/SecondOrder.cpp index ad20d1ee22b6e08fe0a92b727c7cee59fd78b96f..ff4316d90f6ba869559a374d8c6c639f0ce42fe6 100644 --- a/Mesh/SecondOrder.cpp +++ b/Mesh/SecondOrder.cpp @@ -1,4 +1,4 @@ -// $Id: SecondOrder.cpp,v 1.43 2006-08-22 01:58:35 geuzaine Exp $ +// $Id: SecondOrder.cpp,v 1.44 2006-09-04 15:58:22 geuzaine Exp $ // // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // @@ -214,7 +214,7 @@ void setSecondOrder(GFace *gf, std::vector<MVertex*> ve; getEdgeVertices(gf, t, ve, edgeVertices, linear); triangles2.push_back - (new MTriangle2(t->getVertex(0), t->getVertex(1), t->getVertex(2), + (new MTriangle6(t->getVertex(0), t->getVertex(1), t->getVertex(2), ve[0], ve[1], ve[2])); delete t; } @@ -227,7 +227,7 @@ void setSecondOrder(GFace *gf, getEdgeVertices(gf, q, ve, edgeVertices, linear); getFaceVertices(gf, q, vf, faceVertices, linear); quadrangles2.push_back - (new MQuadrangle2(q->getVertex(0), q->getVertex(1), q->getVertex(2), + (new MQuadrangle9(q->getVertex(0), q->getVertex(1), q->getVertex(2), q->getVertex(3), ve[0], ve[1], ve[2], ve[3], vf[0])); delete q; } @@ -247,8 +247,8 @@ void setSecondOrder(GRegion *gr, std::vector<MVertex*> ve; getEdgeVertices(gr, t, ve, edgeVertices, linear); tetrahedra2.push_back - (new MTetrahedron2(t->getVertex(0), t->getVertex(1), t->getVertex(2), - t->getVertex(3), ve[0], ve[1], ve[2], ve[3], ve[4], ve[5])); + (new MTetrahedron10(t->getVertex(0), t->getVertex(1), t->getVertex(2), + t->getVertex(3), ve[0], ve[1], ve[2], ve[3], ve[4], ve[5])); delete t; } gr->tetrahedra = tetrahedra2; @@ -263,11 +263,11 @@ void setSecondOrder(GRegion *gr, MVertex *v = new MVertex(pc.x(), pc.y(), pc.z(), gr); gr->mesh_vertices.push_back(v); hexahedra2.push_back - (new MHexahedron2(h->getVertex(0), h->getVertex(1), h->getVertex(2), - h->getVertex(3), h->getVertex(4), h->getVertex(5), - h->getVertex(6), h->getVertex(7), ve[0], ve[1], ve[2], - ve[3], ve[4], ve[5], ve[6], ve[7], ve[8], ve[9], ve[10], - ve[11], vf[0], vf[1], vf[2], vf[3], vf[4], vf[5], v)); + (new MHexahedron27(h->getVertex(0), h->getVertex(1), h->getVertex(2), + h->getVertex(3), h->getVertex(4), h->getVertex(5), + h->getVertex(6), h->getVertex(7), ve[0], ve[1], ve[2], + ve[3], ve[4], ve[5], ve[6], ve[7], ve[8], ve[9], ve[10], + ve[11], vf[0], vf[1], vf[2], vf[3], vf[4], vf[5], v)); delete h; } gr->hexahedra = hexahedra2; @@ -279,10 +279,10 @@ void setSecondOrder(GRegion *gr, getEdgeVertices(gr, p, ve, edgeVertices, linear); getFaceVertices(gr, p, vf, faceVertices, linear); prisms2.push_back - (new MPrism2(p->getVertex(0), p->getVertex(1), p->getVertex(2), - p->getVertex(3), p->getVertex(4), p->getVertex(5), - ve[0], ve[1], ve[2], ve[3], ve[4], ve[5], ve[6], ve[7], - ve[8], vf[0], vf[1], vf[2])); + (new MPrism18(p->getVertex(0), p->getVertex(1), p->getVertex(2), + p->getVertex(3), p->getVertex(4), p->getVertex(5), + ve[0], ve[1], ve[2], ve[3], ve[4], ve[5], ve[6], ve[7], + ve[8], vf[0], vf[1], vf[2])); delete p; } gr->prisms = prisms2; @@ -294,9 +294,9 @@ void setSecondOrder(GRegion *gr, getEdgeVertices(gr, p, ve, edgeVertices, linear); getFaceVertices(gr, p, vf, faceVertices, linear); pyramids2.push_back - (new MPyramid2(p->getVertex(0), p->getVertex(1), p->getVertex(2), - p->getVertex(3), p->getVertex(4), ve[0], ve[1], ve[2], - ve[3], ve[4], ve[5], ve[6], ve[7], vf[0])); + (new MPyramid14(p->getVertex(0), p->getVertex(1), p->getVertex(2), + p->getVertex(3), p->getVertex(4), ve[0], ve[1], ve[2], + ve[3], ve[4], ve[5], ve[6], ve[7], vf[0])); delete p; } gr->pyramids = pyramids2;