Loading...
Searching...
No Matches
ABAQUSCore Class Reference

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

#include <ABAQUSCore.H>

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.
static int nPoints (shapeType tag)
 The number of points associated with the element type.
static bool isValidType (shapeType tag)
 True if element type is not unknown/invalid.
static bool isShellType (shapeType tag)
 True if element type is a 2D shell.
static bool isSolidType (shapeType tag)
 True if element type is a 3D element.
static bool isEncodedSolidId (const label combinedId)
 Is a combined (synthetic) face Id?
static label encodeSolidId (const label id, const label side)
 Combine solid element Id and side Id into synthetic face Id.
static label decodeSolidElementId (const label combinedId)
 Entangle solid element id from synthetic face Id.
static label decodeSolidSideNum (const label combinedId)
 Entangle solid side id from synthetic face Id Synthesize faceId from solid element Id and sideId.
static void writePoints (Ostream &os, const UList< point > &points, const scalar scaleFactor=1.0)
 Write '*NODE' header and entries to file, optionally with scaling.
static label faceDecomposition (const UList< point > &points, const UList< face > &faces, labelList &decompOffsets, DynamicList< face > &decompFaces)
 Calculate face decomposition for non tri/quad faces.

Protected Member Functions

 ABAQUSCore ()=default
 Default construct.

Static Protected Member Functions

static void renumber0_elemId (label &elemId)
 From 1-based to 0-based.
static const Map< labelList > & abaqusToFoamFaceAddr ()
 Face addressing from ABAQUS faces to OpenFOAM faces.

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.

References os(), and points.

Here is the call graph for this function:

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 abaqusHex, abaqusPrism, abaqusPyr, abaqusQuad, abaqusTet, abaqusTria, abaqusUnknownShape, and checkElemType.

Referenced by ABAQUSCore::readHelper::read().

Here is the caller graph for this function:

◆ nPoints()

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::compact_nodes(), ABAQUSCore::readHelper::read(), and ABAQUSCore::readHelper::readElements().

Here is the caller graph for this function:

◆ isValidType()

bool isValidType ( shapeType tag)
inlinestatic

True if element type is not unknown/invalid.

Definition at line 281 of file ABAQUSCore.H.

Referenced by ABAQUSCore::readHelper::purge_solids().

Here is the caller graph for this function:

◆ isShellType()

bool isShellType ( shapeType tag)
inlinestatic

True if element type is a 2D shell.

Definition at line 289 of file ABAQUSCore.H.

◆ isSolidType()

bool isSolidType ( shapeType tag)
inlinestatic

True if element type is a 3D element.

Definition at line 297 of file ABAQUSCore.H.

Referenced by ABAQUSCore::readHelper::purge_solids().

Here is the caller graph for this function:

◆ isEncodedSolidId()

bool isEncodedSolidId ( const label combinedId)
inlinestatic

Is a combined (synthetic) face Id?

Definition at line 305 of file ABAQUSCore.H.

Referenced by decodeSolidElementId(), decodeSolidSideNum(), renumber0_elemId(), and abaqusWriter::writeFaceValue().

Here is the caller graph for this function:

◆ encodeSolidId()

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

label decodeSolidElementId ( const label combinedId)
inlinestatic

Entangle solid element id from synthetic face Id.

Definition at line 321 of file ABAQUSCore.H.

References isEncodedSolidId().

Referenced by abaqusWriter::writeFaceValue().

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

◆ decodeSolidSideNum()

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

Referenced by abaqusWriter::writeFaceValue().

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

◆ renumber0_elemId()

void renumber0_elemId ( label & elemId)
inlinestaticprotected

From 1-based to 0-based.

Definition at line 353 of file ABAQUSCore.H.

References isEncodedSolidId().

Referenced by ABAQUSCore::readHelper::renumber_elements_1to0().

Here is the call graph for this function:
Here is the caller 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 abaqusHex, abaqusPrism, abaqusTet, and abaqusToFoamFaceAddr_.

Referenced by ABAQUSCore::readHelper::readSurfaceElements().

Here is the caller graph for this function:

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

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

Referenced by ABAQUSsurfaceFormat< Face >::write().

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