ABAQUSCore Class Reference

Core routines used when reading/writing ABAQUS files. More...

Inheritance diagram for ABAQUSCore:
[legend]

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...
 

Detailed Description

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
Source files

Definition at line 243 of file ABAQUSCore.H.

Member Enumeration Documentation

◆ shapeType

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.

Constructor & Destructor Documentation

◆ ABAQUSCore()

ABAQUSCore ( )
protecteddefault

Default construct.

Member Function Documentation

◆ getElementType()

Foam::fileFormats::ABAQUSCore::shapeType getElementType ( const std::string &  elemTypeName)
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.

◆ nPoints()

static int nPoints ( shapeType  tag)
inlinestatic

The number of points associated with the element type.

Definition at line 270 of file ABAQUSCore.H.

◆ isValidType()

static bool isValidType ( shapeType  tag)
inlinestatic

True if element type is not unknown/invalid.

Definition at line 276 of file ABAQUSCore.H.

◆ isShellType()

static bool isShellType ( shapeType  tag)
inlinestatic

True if element type is a 2D shell.

Definition at line 282 of file ABAQUSCore.H.

◆ isSolidType()

static bool isSolidType ( shapeType  tag)
inlinestatic

True if element type is a 3D element.

Definition at line 288 of file ABAQUSCore.H.

◆ isEncodedSolidId()

static bool isEncodedSolidId ( const label  combinedId)
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().

Here is the caller graph for this function:

◆ encodeSolidId()

static label encodeSolidId ( const label  id,
const label  side 
)
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().

Here is the caller graph for this function:

◆ decodeSolidElementId()

static label decodeSolidElementId ( const label  combinedId)
inlinestatic

Entangle solid element id from synthetic face Id.

Definition at line 306 of file ABAQUSCore.H.

References ABAQUSCore::isEncodedSolidId().

Referenced by abaqusWriter::writeFaceValue().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ decodeSolidSideNum()

static label decodeSolidSideNum ( const label  combinedId)
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ renumber0_elemId()

static void renumber0_elemId ( label &  elemId)
inlinestaticprotected

From 1-based to 0-based.

Definition at line 334 of file ABAQUSCore.H.

References ABAQUSCore::isEncodedSolidId().

Here is the call graph for this function:

◆ abaqusToFoamFaceAddr()

const Foam::Map< Foam::labelList > & abaqusToFoamFaceAddr ( )
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_.

◆ writePoints()

void writePoints ( Ostream os,
const UList< point > &  points,
const scalar  scaleFactor = 1.0 
)
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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ faceDecomposition()

Foam::label faceDecomposition ( const UList< point > &  points,
const UList< face > &  faces,
labelList decompOffsets,
DynamicList< face > &  decompFaces 
)
static

Calculate face decomposition for non tri/quad faces.

Parameters
pointsthe surface points
facesthe surface faces
decompOffsetsbegin/end offsets (size+1) into decompFaces
decompFacesList of non-tri/quad decomposed into triangles
Returns
number of decomposed faces

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().

Here is the call graph for this function:
Here is the caller graph for this function:

The documentation for this class was generated from the following files: