stem.load module
- class stem.load.GravityLoad(active: ~typing.List[bool] = <factory>, value: ~typing.List[float] = <factory>)
Bases:
LoadParametersABCClass 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
- 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
- class stem.load.LineLoad(active: List[bool], value: List[float | Table])
Bases:
LoadParametersABCClass 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.
- 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
- class stem.load.LoadParametersABC
Bases:
ABCAbstract 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:
LoadParametersABCClass 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].
- 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
- class stem.load.PointLoad(active: List[bool], value: List[float | Table])
Bases:
LoadParametersABCClass 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.
- 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
- class stem.load.SurfaceLoad(active: List[bool], value: List[float] | List[Table])
Bases:
LoadParametersABCClass 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.
- 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
- 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:
LoadParametersABCClass 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.
- 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.
- uvec_model: ModuleType | Any = None
- class stem.load.UvecSupportedModels(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)
Bases:
EnumEnum 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'