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

add support for 2nd order prisms & hexes in abaqus export (not tested...)

parent a758b5f0
No related branches found
No related tags found
No related merge requests found
......@@ -232,6 +232,7 @@ class MHexahedron20 : public MHexahedron {
9, 10, 12, 14, 15, 16, 18, 19, 17};
return getVertex(map[num]);
}
virtual MVertex *getVertexINP(int num){ return getVertexBDF(); }
virtual MVertex *getVertexDIFF(int num)
{
static const int map[20] = {2, 3, 7, 6, 0, 1, 5, 4, 9, 18, 12,
......@@ -300,6 +301,7 @@ class MHexahedron20 : public MHexahedron {
virtual int getTypeForUNV() const { return 116; } // solid parabolic brick
//virtual int getTypeForVTK() const { return 25; }
virtual const char *getStringForBDF() const { return "CHEXA"; }
virtual const char *getStringForINP() const { return "C3D20"; }
virtual const char *getStringForDIFF() const { return "ElmB20n3D"; }
virtual void revert()
{
......
......@@ -129,36 +129,6 @@ 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)
{
s[0] = (1. - u - v) * (1. - w) * 0.5;
s[1] = u * (1. - w) * 0.5;
s[2] = v * (1. - w) * 0.5;
s[3] = (1. - u - v) * (1. + w) * 0.5;
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)
{
s[0][0] = -0.5 * (1. - w) ;
s[0][1] = -0.5 * (1. - w) ;
s[0][2] = -0.5 * (1. - u - v);
s[1][0] = 0.5 * (1. - w) ;
s[1][1] = 0. ;
s[1][2] = -0.5 * u ;
s[2][0] = 0. ;
s[2][1] = 0.5 * (1. - w) ;
s[2][2] = -0.5 * v ;
s[3][0] = -0.5 * (1. + w) ;
s[3][1] = -0.5 * (1. + w) ;
s[3][2] = 0.5 * (1. - u - v);
s[4][0] = 0.5 * (1. + w) ;
s[4][1] = 0. ;
s[4][2] = 0.5 * u ;
s[5][0] = 0. ;
s[5][1] = 0.5 * (1. + w) ;
s[5][2] = 0.5 * v ;
}*/
virtual void getNode(int num, double &u, double &v, double &w)
{
switch(num) {
......@@ -263,6 +233,7 @@ class MPrism15 : public MPrism {
static const int map[15] = {0, 1, 2, 3, 4, 5, 6, 9, 7, 8, 10, 11, 12, 14, 13};
return getVertex(map[num]);
}
virtual MVertex *getVertexINP(int num){ return getVertexBDF(); }
virtual int getNumEdgeVertices() const { return 9; }
virtual int getNumEdgesRep(){ return 18; }
virtual void getEdgeRep(int num, double *x, double *y, double *z, SVector3 *n)
......@@ -320,6 +291,7 @@ class MPrism15 : public MPrism {
virtual int getTypeForMSH() const { return MSH_PRI_15; }
virtual int getTypeForUNV() const { return 113; } // solid parabolic wedge
virtual const char *getStringForBDF() const { return "CPENTA"; }
virtual const char *getStringForINP() const { return "C3D15"; }
virtual void revert()
{
MVertex *tmp;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment