diff --git a/src/silo/extface.c b/src/silo/extface.c index 9a2a3780..6ce74249 100644 --- a/src/silo/extface.c +++ b/src/silo/extface.c @@ -307,6 +307,7 @@ CalcExternalFaces(int *zoneList, int nNodes, int lowOffset, int highOffset, { switch (shapeType[i]) { + case DB_ZONETYPE_QUAD_TET: case DB_ZONETYPE_TET: for (j = 0; j < shapeCnt[i]; j++) { @@ -330,6 +331,7 @@ CalcExternalFaces(int *zoneList, int nNodes, int lowOffset, int highOffset, iZoneList += 4; } break; + case DB_ZONETYPE_QUAD_PYRAMID: case DB_ZONETYPE_PYRAMID: for (j = 0; j < shapeCnt[i]; j++) { @@ -358,6 +360,7 @@ CalcExternalFaces(int *zoneList, int nNodes, int lowOffset, int highOffset, iZoneList += 5; } break; + case DB_ZONETYPE_QUAD_PRISM: case DB_ZONETYPE_PRISM: for (j = 0; j < shapeCnt[i]; j++) { @@ -388,6 +391,7 @@ CalcExternalFaces(int *zoneList, int nNodes, int lowOffset, int highOffset, iZoneList += 6; } break; + case DB_ZONETYPE_QUAD_HEX: case DB_ZONETYPE_HEX: for (j = 0; j < shapeCnt[i]; j++) { @@ -438,6 +442,30 @@ CalcExternalFaces(int *zoneList, int nNodes, int lowOffset, int highOffset, iZone++; } break; + case DB_ZONETYPE_QUAD_BEAM: + for (j = 0; j < shapeCnt[i]; j++) + { + InsertFace(&st, &zoneList[iZoneList], 2, iZone); + iZoneList += shapeSize[i]; + iZone++; + } + break; + case DB_ZONETYPE_QUAD_TRIANGLE: + for (j = 0; j < shapeCnt[i]; j++) + { + InsertFace(&st, &zoneList[iZoneList], 3, iZone); + iZoneList += shapeSize[i]; + iZone++; + } + break; + case DB_ZONETYPE_QUAD_QUAD: + for (j = 0; j < shapeCnt[i]; j++) + { + InsertFace(&st, &zoneList[iZoneList], 4, iZone); + iZoneList += shapeSize[i]; + iZone++; + } + break; case DB_ZONETYPE_BEAM: case DB_ZONETYPE_TRIANGLE: case DB_ZONETYPE_QUAD: diff --git a/src/silo/silo.h.in b/src/silo/silo.h.in index 760ae1c3..a022740f 100644 --- a/src/silo/silo.h.in +++ b/src/silo/silo.h.in @@ -1031,6 +1031,17 @@ typedef struct DBmultimatspecies_ { #define DB_ZONETYPE_PRISM 36 #define DB_ZONETYPE_HEX 38 +/* Definitions for quadratic elements */ +#define DB_ZONETYPE_QUAD_BEAM 11 + +#define DB_ZONETYPE_QUAD_TRIANGLE 25 +#define DB_ZONETYPE_QUAD_QUAD 26 + +#define DB_ZONETYPE_QUAD_TET 118 +#define DB_ZONETYPE_QUAD_PYRAMID 120 +#define DB_ZONETYPE_QUAD_PRISM 113 +#define DB_ZONETYPE_QUAD_HEX 116 + typedef struct DBzonelist_ { int ndims; /* Number of dimensions (2,3) */ int nzones; /* Number of zones in list */ diff --git a/src/silo/silo.inc b/src/silo/silo.inc index 5c06e965..f9d44547 100644 --- a/src/silo/silo.inc +++ b/src/silo/silo.inc @@ -524,6 +524,13 @@ C...Parameters. INTEGER DB_ZONETYPE_PRISM INTEGER DB_ZONETYPE_PYRAMID INTEGER DB_ZONETYPE_QUAD + INTEGER DB_ZONETYPE_QUAD_BEAM + INTEGER DB_ZONETYPE_QUAD_HEX + INTEGER DB_ZONETYPE_QUAD_PRISM + INTEGER DB_ZONETYPE_QUAD_PYRAMID + INTEGER DB_ZONETYPE_QUAD_QUAD + INTEGER DB_ZONETYPE_QUAD_TET + INTEGER DB_ZONETYPE_QUAD_TRIANGLE INTEGER DB_ZONETYPE_TET INTEGER DB_ZONETYPE_TRIANGLE INTEGER SILO_VERS_MAJ @@ -865,6 +872,13 @@ C...Parameters. PARAMETER (DB_ZONETYPE_PYRAMID=35) PARAMETER (DB_ZONETYPE_PRISM=36) PARAMETER (DB_ZONETYPE_HEX=38) + PARAMETER (DB_ZONETYPE_QUAD_BEAM=11) + PARAMETER (DB_ZONETYPE_QUAD_TRIANGLE=25) + PARAMETER (DB_ZONETYPE_QUAD_QUAD=26) + PARAMETER (DB_ZONETYPE_QUAD_TET=118) + PARAMETER (DB_ZONETYPE_QUAD_PYRAMID=120) + PARAMETER (DB_ZONETYPE_QUAD_PRISM=113) + PARAMETER (DB_ZONETYPE_QUAD_HEX=116) PARAMETER (DB_MAX_H5_OBJ_VALS=64) PARAMETER (DB_F77NULLSTRING="NULLSTRING") diff --git a/src/silo/silo_f9x.inc b/src/silo/silo_f9x.inc index 7296c53c..dfbf7c90 100644 --- a/src/silo/silo_f9x.inc +++ b/src/silo/silo_f9x.inc @@ -441,6 +441,13 @@ integer, parameter :: DB_ZONETYPE_PYRAMID = 35 integer, parameter :: DB_ZONETYPE_PRISM = 36 integer, parameter :: DB_ZONETYPE_HEX = 38 + integer, parameter :: DB_ZONETYPE_QUAD_BEAM = 11 + integer, parameter :: DB_ZONETYPE_QUAD_TRIANGLE = 25 + integer, parameter :: DB_ZONETYPE_QUAD_QUAD = 26 + integer, parameter :: DB_ZONETYPE_QUAD_TET = 118 + integer, parameter :: DB_ZONETYPE_QUAD_PYRAMID = 120 + integer, parameter :: DB_ZONETYPE_QUAD_PRISM = 113 + integer, parameter :: DB_ZONETYPE_QUAD_HEX = 116 integer, parameter :: DB_MAX_H5_OBJ_VALS = 64 character (len=10), parameter :: DB_F77NULLSTRING = "NULLSTRING" diff --git a/tools/python/pysilo.cpp b/tools/python/pysilo.cpp index 6176c147..d2fda804 100644 --- a/tools/python/pysilo.cpp +++ b/tools/python/pysilo.cpp @@ -351,6 +351,14 @@ void SILOMODULE_API initSilo(void) ADD_CONSTANT(DB_ZONETYPE_PRISM); ADD_CONSTANT(DB_ZONETYPE_HEX); + ADD_CONSTANT(DB_ZONETYPE_QUAD_BEAM); + ADD_CONSTANT(DB_ZONETYPE_QUAD_TRIANGLE); + ADD_CONSTANT(DB_ZONETYPE_QUAD_QUAD); + ADD_CONSTANT(DB_ZONETYPE_QUAD_TET); + ADD_CONSTANT(DB_ZONETYPE_QUAD_PYRAMID); + ADD_CONSTANT(DB_ZONETYPE_QUAD_PRISM); + ADD_CONSTANT(DB_ZONETYPE_QUAD_HEX); + #if PY_VERSION_GE(3,0,0) Py_INCREF(&DBfileType);