Source code for febio_python.core.enums
from enum import Enum, IntEnum
[docs]
class FEB_2_5_LEAD_TAGS(Enum):
MODULE = "Module"
CONTROL = "Control"
MATERIAL = "Material"
GLOBALS = "Globals"
GEOMETRY = "Geometry"
BOUNDARY = "Boundary"
LOADS = "Loads"
DISCRETE = "Discrete"
LOADDATA = "LoadData"
OUTPUT = "Output"
MESHDATA = "MeshData"
[docs]
class FEB_3_0_LEAD_TAGS(Enum):
MODULE = "Module"
CONTROL = "Control"
MATERIAL = "Material"
GLOBALS = "Globals"
MESH = "Mesh"
MESHDOMAINS = "MeshDomains"
MESHDATA = "MeshData"
BOUNDARY = "Boundary"
LOADS = "Loads"
DISCRETE = "Discrete"
LOADDATA = "LoadData"
OUTPUT = "Output"
[docs]
class FEB_4_0_LEAD_TAGS(Enum):
MODULE = "Module"
CONTROL = "Control"
MATERIAL = "Material"
GLOBALS = "Globals"
MESH = "Mesh"
MESHDOMAINS = "MeshDomains"
MESHDATA = "MeshData"
BOUNDARY = "Boundary"
LOADS = "Loads"
DISCRETE = "Discrete"
LOADDATA = "LoadData"
OUTPUT = "Output"
[docs]
class FEB_MAJOR_TAGS(Enum):
NODES = "Nodes"
NODESET = "NodeSet"
NODEDATA = "NodeData" # Need to check this
ELEMENTS = "Elements"
ELEMENTSET = "ElementSet" # Need to check this
ELEMENTDATA = "ElementData"
DISCRETESET = "DiscreteSet"
DISCRETE = "discrete"
DISCRETEMATERIAL = "discrete_material"
SURFACE = "Surface"
SURFACESET = "SurfaceSet" # Need to check this
SURFACE_DATA = "SurfaceData"
LOADCURVE = "loadcurve"
MATERIAL = "material"
NODALLOAD = "nodal_load"
SURFACELOAD = "surface_load"
SHELLDOMAIN = "ShellDomain"
SOLIDDOMAIN = "SolidDomain"
[docs]
class ELEM_TYPES(Enum):
TRIANGLE = "tri3"
TETRAHEDRON = "tet4"
HEXAHEDRON = "hex8"
QUADRATIC_HEXAHEDRON = "hex20"
QUADRATIC_TRIANGLE = "tri6"
[docs]
class N_PTS_IN_ELEMENT(IntEnum):
TRIANGLE = 3
TETRAHEDRON = 4
HEXAHEDRON = 8
QUADRATIC_HEXAHEDRON = 20
QUADRATIC_TRIANGLE = 6
[docs]
class SURFACE_EL_TYPE(IntEnum):
tri3 = 3
TRIANGLE = 3
quad4 = 4
QUAD = 4
tri6 = 6
QUADRATIC_TRIANGLE = 6
quad8 = 8
QUADRATIC_QUAD = 8
# ==================================================================================
# XPLT_TAGS
# ==================================================================================
[docs]
class XPLT_TAGS(IntEnum):
FEBIO = int("0x00464542", base=16)
VERSION_2_5 = int("0x0005", base=16)
VERSION_3_0 = int("0x0008", base=16)
ROOT = int("0x01000000", base=16)
HEADER = int("0x01010000", base=16)
HDR_VERSION = int("0x01010001", base=16)
HDR_NODES = int("0x01010002", base=16)
HDR_MAX_FACET_NODES = int("0x01010003", base=16)
HDR_COMPRESSION = int("0x01010004", base=16)
DICTIONARY = int("0x01020000", base=16)
DIC_ITEM = int("0x01020001", base=16)
DIC_ITEM_TYPE = int("0x01020002", base=16)
DIC_ITEM_FMT = int("0x01020003", base=16)
DIC_ITEM_NAME = int("0x01020004", base=16)
DIC_GLOBAL = int("0x01021000", base=16)
DIC_MATERIAL = int("0x01022000", base=16)
DIC_NODAL = int("0x01023000", base=16)
DIC_DOMAIN = int("0x01024000", base=16)
DIC_SURFACE = int("0x01025000", base=16)
MATERIALS = int("0x01030000", base=16)
MATERIAL = int("0x01030001", base=16)
MAT_ID = int("0x01030002", base=16)
MAT_NAME = int("0x01030003", base=16)
GEOMETRY = int("0x01040000", base=16) # spec 2.5
MESH = int("0x01040000", base=16) # spec 3.0
# -- Node section
NODE_SECTION = int("0x01041000", base=16)
NODE_HEADER = int("0x01041100", base=16)
NODE_COORDS_2_5 = int("0x01041001", base=16) # spec 2.5
NODE_COORDS_3_0 = int("0x01041200", base=16) # spec 3.0
NODE_N_NODES = int("0x01041101", base=16)
NODE_DIM = int("0x01041102", base=16)
NODE_NAME = int("0x01041103", base=16)
# -- domain section
DOMAIN_SECTION = int("0x01042000", base=16)
DOMAIN = int("0x01042100", base=16)
DOMAIN_HEADER = int("0x01042101", base=16)
DOM_ELEM_TYPE = int("0x01042102", base=16)
DOM_MAT_ID = int("0x01042103", base=16) # spec 2.4
DOM_PART_ID = int("0x01042103", base=16) # spec 3.0
DOM_N_ELEMS = int("0x01032104", base=16)
DOM_NAME = int("0x01032105", base=16)
DOM_ELEM_LIST = int("0x01042200", base=16)
ELEMENT = int("0x01042201", base=16)
# -- surface section
SURFACE_SECTION = int("0x01043000", base=16)
SURFACE = int("0x01043100", base=16)
SURFACE_HEADER = int("0x01043101", base=16)
SURFACE_ID = int("0x01043102", base=16)
SURFACE_N_FACETS = int("0x01043103", base=16)
SURFACE_NAME = int("0x01043104", base=16)
MAX_FACET_NODES = int("0x01043105", base=16)
FACET_LIST = int("0x01043200", base=16)
FACET = int("0x01043201", base=16)
# -- nodeset section
NODESET_SECTION = int("0x01044000", base=16)
NODESET = int("0x01044100", base=16)
NODESET_HEADER = int("0x01044101", base=16)
NODESET_ID = int("0x01044102", base=16)
NODESET_NAME = int("0x01044103", base=16)
NODESET_N_NODES = int("0x01044104", base=16)
NODESET_LIST = int("0x01044200", base=16)
# -- parts section
PART_SECTION = int("0x01045000", base=16)
PART = int("0x01045100", base=16)
PART_ID = int("0x01045101", base=16)
PART_NAME = int("0x01045102", base=16)
# -- states section
STATE = int("0x02000000", base=16)
STATE_HEADER = int("0x02010000", base=16)
STATE_HEADER_ID = int("0x02010001", base=16)
STATE_HEADER_TIME = int("0x02010002", base=16)
STATE_DATA = int("0x02020000", base=16)
STATE_VARIABLE = int("0x02020001", base=16)
STATE_VAR_ID = int("0x02020002", base=16)
STATE_VAR_DATA = int("0x02020003", base=16)
GLOBAL_DATA = int("0x02020100", base=16)
MATERIAL_DATA = int("0x02020200", base=16)
NODE_DATA = int("0x02020300", base=16)
ELEMENT_DATA = int("0x02020400", base=16)
SURFACE_DATA = int("0x02020500", base=16)
[docs]
class XPLT_DATA_TYPES(IntEnum):
SCALAR = 0 # float
VECTOR = 1 # vector of size 3
MATRIX = 2 # vector of size 6 (due to element symmetry)