ABAQUSCore Class Reference

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

Inheritance diagram for ABAQUSCore:

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 string &elemTypeName)
 Classify named element type (eg, S4R) to known/supported element types. More...
 
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)
 Entangle solid side id from synthetic face Id Synthesize faceId from solid element Id and sideId. More...
 
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 239 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 248 of file ABAQUSCore.H.

Constructor & Destructor Documentation

◆ ABAQUSCore()

ABAQUSCore ( )
protecteddefault

Default construct.

Member Function Documentation

◆ getElementType()

Foam::fileFormats::ABAQUSCore::shapeType getElementType ( const string elemTypeName)
static

Classify named element type (eg, S4R) to known/supported element types.

The input string must be Uppercase!

Definition at line 198 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 273 of file ABAQUSCore.H.

Referenced by ABAQUSCore::readHelper::read(), and ABAQUSCore::readHelper::readElements().

Here is the caller graph for this function:

◆ isValidType()

static bool isValidType ( shapeType  tag)
inlinestatic

True if element type is not unknown/invalid.

Definition at line 281 of file ABAQUSCore.H.

◆ isShellType()

static bool isShellType ( shapeType  tag)
inlinestatic

True if element type is a 2D shell.

Definition at line 289 of file ABAQUSCore.H.

◆ isSolidType()

static bool isSolidType ( shapeType  tag)
inlinestatic

True if element type is a 3D element.

Definition at line 297 of file ABAQUSCore.H.

◆ isEncodedSolidId()

static bool isEncodedSolidId ( const label  combinedId)
inlinestatic

Is a combined (synthetic) face Id?

Definition at line 305 of file ABAQUSCore.H.

Referenced by ABAQUSCore::decodeSolidElementId(), ABAQUSCore::decodeSolidSideNum(), and ABAQUSCore::renumber0_elemId().

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 313 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 321 of file ABAQUSCore.H.

References ABAQUSCore::isEncodedSolidId().

Here is the call 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 335 of file ABAQUSCore.H.

References ABAQUSCore::isEncodedSolidId().

Here is the call graph for this function:

◆ renumber0_elemId()

static void renumber0_elemId ( label &  elemId)
inlinestaticprotected

From 1-based to 0-based.

Definition at line 353 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 184 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 782 of file ABAQUSCore.C.

References Foam::nl, os(), p, and points.

Here is the call 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 817 of file ABAQUSCore.C.

References UList< T >::begin(), DynamicList< T, SizeMin >::clear(), f(), n, points, List< T >::resize(), and UList< T >::size().

Here is the call graph for this function:

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