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 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 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 244 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 251 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 203 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 271 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 277 of file ABAQUSCore.H.

◆ isShellType()

static bool isShellType ( shapeType  tag)
inlinestatic

True if element type is a 2D shell.

Definition at line 283 of file ABAQUSCore.H.

◆ isSolidType()

static bool isSolidType ( shapeType  tag)
inlinestatic

True if element type is a 3D element.

Definition at line 289 of file ABAQUSCore.H.

◆ 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 189 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 627 of file ABAQUSCore.C.

References Foam::nl, p, points, Ostream::precision(), and IOstream::setf().

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 662 of file ABAQUSCore.C.

References 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: