Loads
_FELoadsMixin
Bases: ABC
addFrameLoad(loadCase, tagFrame, tp, GCX1=None, GCX2=None, GCY1=None, GCY2=None, GCZ1=None, GCZ2=None, local=False)
Apply a distributed load or moment to a single frame mesh element.
Each direction is defined by two [relative_distance, value] pairs
that describe a linearly varying load along the element length.
Relative distances are in [0, 1] where 0 is the start node and 1 is
the end node. Omitting GCX2 / GCY2 / GCZ2 replicates the
corresponding start value at the element end (uniform load).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loadCase
|
str
|
Id of an existing load case. |
required |
tagFrame
|
myInt64
|
Mesh tag of the target frame element. |
required |
tp
|
Literal['force', 'moment']
|
Load type — |
required |
GCX1
|
Optional[List[float]]
|
|
None
|
GCX2
|
Optional[List[float]]
|
|
None
|
GCY1
|
Optional[List[float]]
|
|
None
|
GCY2
|
Optional[List[float]]
|
|
None
|
GCZ1
|
Optional[List[float]]
|
|
None
|
GCZ2
|
Optional[List[float]]
|
|
None
|
local
|
bool
|
If |
False
|
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If loadCase is not a string or is unknown, if tagFrame is not in the mesh, if tp is invalid, if any load list has the wrong length or contains non-float values. |
addLoadCase(idCase, tp='U', descr='')
Register a new load case.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
idCase
|
str
|
Unique string identifier for the load case. |
required |
tp
|
str
|
Load case type code from |
'U'
|
descr
|
str
|
Optional human-readable description. |
''
|
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If idCase or tp are not strings, if tp is not a known type code, or if idCase already exists. |
addLoadCombination(keyCombination, combination)
Register a load combination.
The combination coefficients must appear in the same order as the load cases were added (Python dicts preserve insertion order from 3.7+).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
keyCombination
|
str
|
Unique string identifier for the combination. |
required |
combination
|
List[float]
|
List of scale factors, one per load case in insertion order. |
required |
addMacroFrameLoadLine(loadCase, tagsMacro, tp, direction, load_value_1, load_value_2, load_position_absolute=True, local=False)
Apply a linearly-varying distributed load over a macro-frame alignment.
The load is distributed across all mesh frames that belong to tagsMacro, spanning from load_value_1 to load_value_2 along the alignment's local axis 3. Each underlying frame element receives the correct trapezoidal portion of the load, including partial coverage (the load window may start or end inside a frame element).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loadCase
|
str
|
Identifier of the load case to add the load to. |
required |
tagsMacro
|
List[myInt64]
|
List of macro-element tags that define the alignment. All elements must be collinear and ordered along the same axis. |
required |
tp
|
Literal['force', 'moment']
|
Load type — |
required |
direction
|
Literal['X', 'Y', 'Z']
|
Global Cartesian direction of the load —
|
required |
load_value_1
|
List[float]
|
|
required |
load_value_2
|
List[float]
|
|
required |
load_position_absolute
|
bool
|
If |
True
|
local
|
bool
|
If |
False
|
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If load_value_1 does not have exactly 2 elements,
if the normalised position of load_value_1 is outside
|
addMultiFrameLoad(loadCase, tagsFrames, tp, GCX1=None, GCX2=None, GCY1=None, GCY2=None, GCZ1=None, GCZ2=None, local=False)
Apply a distributed load or moment to multiple frame mesh elements.
Delegates to :meth:addFrameLoad for each tag in tagsFrames.
See :meth:addFrameLoad for a full description of the load parameters.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loadCase
|
str
|
Id of an existing load case. |
required |
tagsFrames
|
List[myInt64]
|
List of mesh frame element tags to load. |
required |
tp
|
Literal['force', 'moment']
|
Load type — |
required |
GCX1
|
Optional[List[float]]
|
|
None
|
GCX2
|
Optional[List[float]]
|
|
None
|
GCY1
|
Optional[List[float]]
|
|
None
|
GCY2
|
Optional[List[float]]
|
|
None
|
GCZ1
|
Optional[List[float]]
|
|
None
|
GCZ2
|
Optional[List[float]]
|
|
None
|
local
|
bool
|
If |
False
|
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If tagsFrames is not a list, or if any per-element
call to :meth: |
addMultiFrameLoadHydro(loadCase, tagsMacro, dirLoad, gamma, K, H0, p0, Bref, local=False, coordVariation='Z', oneSignPositive=None, constValue=False)
Add a linear load on macro-element
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
constValue
|
if true value is considered constant on frame p0 * Bref |
False
|
|
loadCase
|
load case as str |
required | |
tagsMacro
|
macro-element tag |
required | |
dirLoad
|
load direction |
required | |
gamma
|
peso del terreno specifico |
required | |
K
|
coefficiente di spinta del terreno |
required | |
H0
|
distanza dallo zero della copertura del terreno |
required | |
p0
|
pressione di partenza ovvero il sovraccarico |
required | |
Bref
|
largezza di riferimento per il calcolo della pressione |
required | |
local
|
reference system for pressure direction |
False
|
|
coordVariation
|
coordinate in global reference that for variation |
'Z'
|
|
oneSignPositive
|
If None function considers positive and negative values, If True function considers only positive values and negative values if it is False |
None
|
addMultiFrameWinklerSpring(tagsMacro, tp, dirSprings, subgradeModulus, Bref)
Convert a Winkler subgrade modulus into nodal springs for multiple frame macro-elements.
For each mesh frame element belonging to the specified macro-elements, the tributary length is computed and the equivalent nodal spring stiffness is distributed equally to the two end nodes.
Unlike :meth:assignFrameWinklerSupport, which stores the support
parameters directly on the frame, this method immediately creates
nodal springs by calling :meth:addNodeSpring on each node.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tagsMacro
|
List[myInt64]
|
List of macro-element tags whose mesh frames are processed. |
required |
tp
|
NodalSpringsTp
|
Spring behaviour type ( |
required |
dirSprings
|
NodalSpringsDir
|
Global direction of the spring (e.g. |
required |
subgradeModulus
|
float
|
Winkler subgrade modulus [force/length³]. |
required |
Bref
|
int
|
Reference width used to convert the modulus to a linear stiffness per unit length [length]. |
required |
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If tagsMacro is not a list. |
addMultiNodeContraints(tagsNodes, dof)
Apply boundary condition constraints to multiple mesh nodes.
Delegates to :meth:addNodeContraints for each tag in tagsNodes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tagsNodes
|
List[myInt64]
|
List of mesh node tags to constrain. |
required |
dof
|
List[bool]
|
Degrees-of-freedom flags |
required |
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If tagsNodes is not a list. |
addMultiNodeLoad(loadCase, tagsNodes, NCS)
Apply a nodal load to multiple mesh nodes.
Delegates to :meth:assignNodeLoad for each tag in tagsNodes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loadCase
|
str
|
Id of an existing load case. |
required |
tagsNodes
|
List[myInt64]
|
List of mesh node tags to load. |
required |
NCS
|
List[float]
|
Nodal Coordinate System force/moment vector
|
required |
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If tagsNodes is not a list. |
addMultiNodeSpring(tagsNodes, tp, dirSpring, stiffness)
Add a nodal spring to multiple mesh nodes.
Delegates to :meth:addNodeSpring for each tag in tagsNodes.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tagsNodes
|
List[myInt64]
|
List of mesh node tags to spring. |
required |
tp
|
NodalSpringsTp
|
Spring behaviour type ( |
required |
dirSpring
|
NodalSpringsDir
|
Direction of the spring (e.g. |
required |
stiffness
|
float
|
Spring stiffness in force/length units. |
required |
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If tagsNodes is not a list. |
addNodeContraints(tagNode, dof)
Apply boundary condition constraints to a single mesh node.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tagNode
|
myInt64
|
Mesh tag of the target node. |
required |
dof
|
List[bool]
|
Degrees-of-freedom flags |
required |
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If tagNode is not in the mesh, if dof contains non-bool values, or if its length is not 6. |
addNodeSpring(tagNode, tp, dirSpring, stiffness, add=False)
Add or accumulate a nodal spring on a single mesh node.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tagNode
|
myInt64 | int
|
Mesh tag of the target node ( |
required |
tp
|
NodalSpringsTp
|
Spring behaviour type ( |
required |
dirSpring
|
NodalSpringsDir
|
Direction of the spring (e.g. |
required |
stiffness
|
float
|
Spring stiffness in force/length units. |
required |
add
|
bool
|
If |
False
|
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If tagNode is not an |
addSelfWeight(loadCase, GCS)
Add a self-weight (gravity) load to a load case.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loadCase
|
str
|
Id of an existing load case. |
required |
GCS
|
List[float]
|
Global Coordinate System multipliers |
required |
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If loadCase is not a string, if loadCase is unknown, if GCS contains non-float values, or if its length is not 3. |
assignFrameTemperature(loadCase, tagFrame, temp, tpTemp='gradient')
Assign a temperature gradient to a single frame element for a given load case.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loadCase
|
str
|
Id of an existing load case. |
required |
tagFrame
|
int
|
Mesh tag of the target frame element. |
required |
temp
|
Tuple[float, float]
|
Temperature pair |
required |
tpTemp
|
Literal['gradient']
|
Type of temperature assignment. Currently only
|
'gradient'
|
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If loadCase is not a string, if loadCase is unknown, if tagFrame is not in the mesh, if tpTemp is not a valid type, or if temp is not a 2-tuple. |
assignNodeLoad(loadCase, tagNode, NCS)
Apply a nodal load to a single mesh node.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loadCase
|
str
|
Id of an existing load case. |
required |
tagNode
|
myInt64
|
Mesh tag of the target node. |
required |
NCS
|
List[float]
|
Nodal Coordinate System force/moment vector
|
required |
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If loadCase is not a string or is unknown, if tagNode is not in the mesh, if NCS contains non-float values, or if its length is not 6. |
assignNodeTemperature(loadCase, tagNode, temp, tpTemp='fixed')
Assign a temperature value to a single mesh node for a given load case.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loadCase
|
str
|
Id of an existing load case. |
required |
tagNode
|
int
|
Mesh tag of the target node. |
required |
temp
|
float
|
Temperature value in degrees Celsius. |
required |
tpTemp
|
Literal['fixed', 'reference', 'initial']
|
Type of temperature assignment. One of:
|
'fixed'
|
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If loadCase is not a string, if loadCase is unknown, if tagNode is not in the mesh, if temp is not a float, or if tpTemp is not a string. |
getFrameTemperatures()
Return the frame temperature (gradient) assignments.
Returns:
| Type | Description |
|---|---|
Dict[str, Dict[int, Dict[str, Tuple[float, float]]]]
|
Nested dict structured as |
Dict[str, Dict[int, Dict[str, Tuple[float, float]]]]
|
|
Dict[str, Dict[int, Dict[str, Tuple[float, float]]]]
|
Currently only the |
getInertialAcceleration()
Return the inertial acceleration (body-force) assigned to each load case.
Returns:
| Type | Description |
|---|---|
Dict[str, Tuple[float, float, float]]
|
A dict mapping each load case id to its acceleration vector |
Dict[str, Tuple[float, float, float]]
|
|
getInitialTemperatures()
Return the uniform initial temperature assigned to each load case.
Returns:
| Type | Description |
|---|---|
Dict[str, float]
|
A dict mapping each load case id to its initial (reference) |
Dict[str, float]
|
temperature value. |
getLoadCases()
Return all registered load cases.
Returns:
| Type | Description |
|---|---|
Dict[str, Tuple[str, str]]
|
A dict mapping each load case id to a tuple |
getLoadCombinations()
Return all registered load combinations.
Returns:
| Type | Description |
|---|---|
Dict[str, List[float]]
|
A dict mapping each combination id to its list of scale factors. |
getLoads()
getNodeContraints()
Return all nodal boundary condition constraints.
Returns:
| Type | Description |
|---|---|
Dict[myInt64, Tuple[bool, bool, bool, bool, bool, bool]]
|
A dict mapping each constrained node tag to a 6-tuple of booleans |
Dict[myInt64, Tuple[bool, bool, bool, bool, bool, bool]]
|
|
getNodeSprings()
Return all nodal spring assignments.
Returns:
| Type | Description |
|---|---|
Dict[myInt64, Dict[NodalSpringsTp, Dict[NodalSpringsDir, float]]]
|
Nested dict structured as |
Dict[myInt64, Dict[NodalSpringsTp, Dict[NodalSpringsDir, float]]]
|
|
getNodeTemperatures()
Return the node temperature assignments.
Returns:
| Type | Description |
|---|---|
Dict[str, Dict[int, Dict[str, float]]]
|
Nested dict structured as |
Dict[str, Dict[int, Dict[str, float]]]
|
|
Dict[str, Dict[int, Dict[str, float]]]
|
Temperature types are |
setInertialAcceleration(loadCase, acc)
Set the inertial (body-force) acceleration for a load case.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loadCase
|
str
|
Id of an existing load case. |
required |
acc
|
Tuple[float, float, float]
|
Acceleration vector |
required |
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If loadCase is not a string, if loadCase is unknown, if acc is not a tuple, or if its length is not 3. |
setInitialTemperature(loadCase, temp)
Set the uniform initial (reference) temperature for a load case.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
loadCase
|
str
|
Id of an existing load case. |
required |
temp
|
float
|
Initial temperature value in degrees Celsius. |
required |
Raises:
| Type | Description |
|---|---|
EXAExceptions
|
If loadCase is not a string, if loadCase is unknown, or if temp is not a float. |