Core routines used when reading/writing ABAQUS files. More...
Classes | |
struct | readHelper |
Raw reader structure. More... | |
Public Types | |
enum | shapeType : uint8_t { abaqusUnknownShape = 0 , abaqusTria = 0x03 , abaqusQuad = 0x04 , abaqusTet = 0x84 , abaqusPyr = 0x85 , abaqusPrism = 0x86 , abaqusHex = 0x88 } |
Shape-Type - the values are for internal use only! More... | |
Static Public Member Functions | |
static shapeType | getElementType (const std::string &elemTypeName) |
static int | nPoints (shapeType tag) |
The number of points associated with the element type. More... | |
static bool | isValidType (shapeType tag) |
True if element type is not unknown/invalid. More... | |
static bool | isShellType (shapeType tag) |
True if element type is a 2D shell. More... | |
static bool | isSolidType (shapeType tag) |
True if element type is a 3D element. More... | |
static bool | isEncodedSolidId (const label combinedId) |
Is a combined (synthetic) face Id? More... | |
static label | encodeSolidId (const label id, const label side) |
Combine solid element Id and side Id into synthetic face Id. More... | |
static label | decodeSolidElementId (const label combinedId) |
Entangle solid element id from synthetic face Id. More... | |
static label | decodeSolidSideNum (const label combinedId) |
static void | writePoints (Ostream &os, const UList< point > &points, const scalar scaleFactor=1.0) |
Write '*NODE' header and entries to file, optionally with scaling. More... | |
static label | faceDecomposition (const UList< point > &points, const UList< face > &faces, labelList &decompOffsets, DynamicList< face > &decompFaces) |
Calculate face decomposition for non tri/quad faces. More... | |
Protected Member Functions | |
ABAQUSCore ()=default | |
Default construct. More... | |
Static Protected Member Functions | |
static void | renumber0_elemId (label &elemId) |
From 1-based to 0-based. More... | |
static const Map< labelList > & | abaqusToFoamFaceAddr () |
Face addressing from ABAQUS faces to OpenFOAM faces. More... | |
Core routines used when reading/writing ABAQUS files.
Face mappings for abaqus deduced from libmesh internals
Tet4 cells
Face | OpenFOAM | libmesh | abaqus | starcd |
---|---|---|---|---|
(1 2 3) | 0 | 2 | 2 | 5 |
(0 3 2) | 1 | 3 | 3 | 4 |
(0 1 3) | 2 | 1 | 1 | 2 |
(0 2 1) | 3 | 0 | 0 | 0 |
Pyr5 cells
Face | OpenFOAM | libmesh | abaqus | starcd |
---|---|---|---|---|
(0 3 2 1) | 0 | 4 | n/a | 0 |
(0 4 3) | 1 | 3 | n/a | 4 |
(3 4 2) | 2 | 2 | n/a | 3 |
(1 2 4) | 3 | 1 | n/a | 5 |
(0 1 4) | 4 | 0 | n/a | 2 |
Prism6 cells
Face | OpenFOAM | libmesh | abaqus | starcd |
---|---|---|---|---|
(0 2 1) | 0 | 0 | 0 | 0 |
(3 4 5) | 1 | 4 | 1 | 1 |
(0 3 5 2) | 2 | 3 | 4 | 4 |
(1 2 5 4) | 3 | 2 | 3 | 5 |
(0 1 4 3) | 4 | 1 | 2 | 2 |
Hex8 cells
Face | OpenFOAM | libmesh | abaqus | starcd |
---|---|---|---|---|
(0 4 7 3) | 0 | 4 | 5 | 4 |
(1 2 6 5) | 1 | 2 | 3 | 5 |
(0 1 5 4) | 2 | 1 | 2 | 2 |
(3 7 6 2) | 3 | 3 | 4 | 3 |
(0 3 2 1) | 4 | 0 | 0 | 0 |
(4 5 6 7) | 5 | 5 | 1 | 1 |
Definition at line 243 of file ABAQUSCore.H.
enum shapeType : uint8_t |
Shape-Type - the values are for internal use only!
Enumerator | |
---|---|
abaqusUnknownShape | |
abaqusTria | |
abaqusQuad | |
abaqusTet | |
abaqusPyr | |
abaqusPrism | |
abaqusHex |
Definition at line 250 of file ABAQUSCore.H.
|
protecteddefault |
Default construct.
|
static |
Classify named element type (eg, S4R) to known/supported element types.
The input string must be Uppercase!
Definition at line 204 of file ABAQUSCore.C.
References checkElemType.
|
inlinestatic |
The number of points associated with the element type.
Definition at line 270 of file ABAQUSCore.H.
True if element type is not unknown/invalid.
Definition at line 276 of file ABAQUSCore.H.
True if element type is a 2D shell.
Definition at line 282 of file ABAQUSCore.H.
True if element type is a 3D element.
Definition at line 288 of file ABAQUSCore.H.
|
inlinestatic |
Is a combined (synthetic) face Id?
Definition at line 294 of file ABAQUSCore.H.
Referenced by ABAQUSCore::decodeSolidElementId(), ABAQUSCore::decodeSolidSideNum(), ABAQUSCore::renumber0_elemId(), and abaqusWriter::writeFaceValue().
|
inlinestatic |
Combine solid element Id and side Id into synthetic face Id.
Definition at line 300 of file ABAQUSCore.H.
Referenced by ABAQUSCore::readHelper::readSurfaceElements().
|
inlinestatic |
Entangle solid element id from synthetic face Id.
Definition at line 306 of file ABAQUSCore.H.
References ABAQUSCore::isEncodedSolidId().
Referenced by abaqusWriter::writeFaceValue().
|
inlinestatic |
Entangle solid side id from synthetic face Id Synthesize faceId from solid element Id and sideId
Definition at line 318 of file ABAQUSCore.H.
References ABAQUSCore::isEncodedSolidId().
Referenced by abaqusWriter::writeFaceValue().
|
inlinestaticprotected |
From 1-based to 0-based.
Definition at line 334 of file ABAQUSCore.H.
References ABAQUSCore::isEncodedSolidId().
|
staticprotected |
Face addressing from ABAQUS faces to OpenFOAM faces.
For hex, prism, tet primitive shapes.
Definition at line 190 of file ABAQUSCore.C.
References ABAQUSCore::abaqusHex, ABAQUSCore::abaqusPrism, ABAQUSCore::abaqusTet, and abaqusToFoamFaceAddr_.
|
static |
Write '*NODE' header and entries to file, optionally with scaling.
This is a no-op for an empty list
Definition at line 787 of file ABAQUSCore.C.
References Foam::nl, os(), p, points, and ABAQUSCore::writePoints().
Referenced by ABAQUSCore::writePoints().
|
static |
Calculate face decomposition for non tri/quad faces.
points | the surface points |
faces | the surface faces |
decompOffsets | begin/end offsets (size+1) into decompFaces |
decompFaces | List of non-tri/quad decomposed into triangles |
Definition at line 822 of file ABAQUSCore.C.
References UList< T >::begin(), DynamicList< T, SizeMin >::clear(), f(), n, points, List< T >::resize(), and UList< T >::size().
Referenced by abaqusWriter::writeTemplate().