stem.load module

class stem.load.GravityLoad(active: ~typing.List[bool] = <factory>, value: ~typing.List[float] = <factory>)

Bases: LoadParametersABC

Class containing the load parameters for a gravity load.

Inheritance:
Attributes:
  • active (List[bool]): Activate/deactivate load for each direction. Input True only in the vertical direction.

  • value (List[float]): Entity of the gravity acceleration in the 3 directions [m/s^2]. Should be -9.81 only in the vertical direction

active: List[bool]
static get_element_name(n_dim_model, n_nodes_element, analysis_type) str | None

Static method to get the element name for a gravity load.

Args:
  • n_dim_model (int): The number of dimensions of the model

  • n_nodes_element (int): The number of nodes per element

  • analysis_type (stem.solver.AnalysisType): The analysis type

Raises:
  • ValueError: If the analysis type is not mechanical or mechanical groundwater flow

Returns:
  • None: Gravity load does not have a name

value: List[float]
class stem.load.LineLoad(active: List[bool], value: List[float | Table])

Bases: LoadParametersABC

Class containing the load parameters for a line load

Attributes:
  • active (List[bool]): Activate/deactivate load for each direction.

  • value (List[Union[float, stem.table.Table]]): Entity of the load in the 3 directions [N/m]. It should be a list of either float or table for each load. If a float is specified, the load is time-independent, otherwise the table specifies the amplitude of the load [N/m] over time [s] for each direction.

active: List[bool]
static get_element_name(n_dim_model: int, n_nodes_element: int, analysis_type: AnalysisType) str | None

Static method to get the element name for a line load.

Args:
  • n_dim_model (int): The number of dimensions of the model (2 or 3)

  • n_nodes_element (int): The number of nodes per condition-element (2, 3)

  • analysis_type (stem.solver.AnalysisType): The analysis type

Raises:
  • ValueError: If the analysis type is not mechanical or mechanical groundwater flow

Returns:
  • Optional[str]: The element name for a line load

value: List[float | Table]
class stem.load.LoadParametersABC

Bases: ABC

Abstract base class for load parameters

abstract static get_element_name(n_dim_model: int, n_nodes_element: int, analysis_type: AnalysisType) str | None

Abstract static method to get the element name for a load.

Args:
  • n_dim_model (int): The number of dimensions of the model

  • n_nodes_element (int): The number of nodes per condition-element

  • analysis_type (stem.solver.AnalysisType): The analysis type.

Raises:
  • Exception: abstract method is called

class stem.load.MovingLoad(load: List[float] | List[str], direction_signs: List[int], velocity: float | str, origin: List[float], offset: float = 0.0)

Bases: LoadParametersABC

Class containing the load parameters for a moving load.

Inheritance:
Attributes:
  • load (Union[List[float], List[str]]): Entity of the load [N] in the 3 directions. Can be defined as strings (when function of time) or as float. Mixed types are not accepted.

  • direction_signs (List[int]): Sign of motion along each axis (+1 or -1 for x, y, z).

    The actual direction is defined by the existing load path geometry.

  • velocity (Union[float, str]): Velocity of the moving load [m/s].

  • origin (List[float]): Starting coordinates of the moving load [m].

  • offset (float): Offset of the moving load [m].

direction_signs: List[int]
static get_element_name(n_dim_model: int, n_nodes_element: int, analysis_type: AnalysisType) str | None

Static method to get the element name for a moving load.

Args:
  • n_dim_model (int): The number of dimensions of the model (2 or 3)

  • n_nodes_element (int): The number of nodes per condition-element (2, 3)

  • analysis_type (stem.solver.AnalysisType): The analysis type

Raises:
  • ValueError: If the analysis type is not mechanical or mechanical groundwater flow

Returns:
  • Optional[str]: The element name for a moving load

load: List[float] | List[str]
offset: float = 0.0
origin: List[float]
velocity: float | str
class stem.load.PointLoad(active: List[bool], value: List[float | Table])

Bases: LoadParametersABC

Class containing the load parameters for a point load

Inheritance:
Attributes:
  • active (List[bool]): Activate/deactivate load for each direction.

  • value (List[Union[float, stem.table.Table]]): Entity of the load in the 3 directions [N]. It should be a list of either float or table for each load. If a float is specified, the load is time-independent, otherwise the table specifies the amplitude of the load [N] over time [s] for each direction.

active: List[bool]
static get_element_name(n_dim_model: int, n_nodes_element: int, analysis_type: AnalysisType) str | None

Static method to get the element name for a point load. Point load does not have a name.

Args:
  • n_dim_model (int): The number of dimensions of the model (2 or 3)

  • n_nodes_element (int): The number of nodes per condition-element (1)

  • analysis_type (stem.solver.AnalysisType): The analysis type

Raises:
  • ValueError: If the analysis type is not mechanical or mechanical groundwater flow

Returns:
  • Optional[str]: The element name for a point load

value: List[float | Table]
class stem.load.SurfaceLoad(active: List[bool], value: List[float] | List[Table])

Bases: LoadParametersABC

Class containing the load parameters for a surface load

Attributes:
  • active (List[bool]): Activate/deactivate load for each direction.

  • value (List[Union[float, stem.table.Table]]): Entity of the load in the 3 directions [Pa]. It should be a list of either float or table for each load. If a float is specified, the load is time-independent, otherwise the table specifies the amplitude of the load [Pa] over time [s] for each direction.

active: List[bool]
static get_element_name(n_dim_model: int, n_nodes_element: int, analysis_type: AnalysisType) str | None

Static method to get the element name for a surface load.

Args:
  • n_dim_model (int): The number of dimensions of the model (3)

  • n_nodes_element (int): The number of nodes per condition-element

  • analysis_type (stem.solver.AnalysisType): The analysis type

Raises:
  • ValueError: If the analysis type is not mechanical or mechanical groundwater flow

Returns:
  • Optional[str]: The element name for a surface load

value: List[float] | List[Table]
class stem.load.UvecLoad(direction_signs: ~typing.List[int], velocity: float | str, origin: ~typing.List[float], wheel_configuration: ~typing.List[float], uvec_parameters: ~typing.Dict[str, ~typing.Any] = <factory>, uvec_state_variables: ~typing.Dict[str, ~typing.Any] = <factory>, uvec_model: ~types.ModuleType | ~typing.Any = None, uvec_file: str = '', uvec_function_name: str = '')

Bases: LoadParametersABC

Class containing the load parameters for a UVEC (User-defined VEhiCle) load.

Inheritance:
Attributes:
  • direction_signs (List[int]): Sign of motion along each axis (+1 or -1 for x, y, z).

    The actual direction is defined by the existing load path geometry.

  • velocity (Union[float, str]): Velocity of the moving load [m/s].

  • origin (List[float]): Starting coordinates of the first wheel [m].

  • wheel_configuration (List[float]): Wheel configuration, i.e. distances from the origin of each wheel [m].

  • uvec_parameters (Dict[str, Any]): Parameters of the UVEC function.

  • uvec_state_variables (Dict[str, Any]): State variables of the UVEC function.

  • uvec_model (ModuleType): UVEC model.

  • uvec_file (str): Path to the UVEC file.

  • uvec_function_name (str): Name of the UVEC function.

direction_signs: List[int]
static get_element_name(n_dim_model: int, n_nodes_element: int, analysis_type: AnalysisType) str | None

Static method to get the element name for a UVEC load.

origin: List[float]
uvec_file: str = ''
uvec_function_name: str = ''
uvec_model: ModuleType | Any = None
uvec_parameters: Dict[str, Any]
uvec_state_variables: Dict[str, Any]
velocity: float | str
wheel_configuration: List[float]
class stem.load.UvecSupportedModels(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

Enum class containing the supported UVEC models.

Inheritance:
  • Enum

Attributes:
  • TEN_DOF (str): 10 degrees of freedom UVEC model.

  • TWO_DOF (str): 2 degrees of freedom UVEC model.

TEN_DOF = 'UVEC.uvec_ten_dof_vehicle_2D'
TWO_DOF = 'UVEC.uvec_two_dof_vehicle_2D'