stem.boundary module
- class stem.boundary.AbsorbingBoundary(absorbing_factors: List[float], virtual_thickness: float)
Bases:
BoundaryParametersABCClass containing the boundary parameters for a point boundary
- Inheritance:
- Attributes:
absorbing_factors (List[float]): Indicated how much of the P-wave and S-wave should be damped from the boundaries and is comprised between 0 (no damping) and 1 (full damping).
virtual_thickness (float): Entity of the virtual thickness [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 an absorbing boundary.
- Args:
n_dim_model (int): The number of dimensions of the model (2 or 3)
n_nodes_element (int): The number of nodes per element
analysis_type (
stem.solver.AnalysisType): The analysis type.
- Raises:
ValueError: Absorbing boundary conditions can only be applied in mechanical or mechanical groundwater flow analysis
- Returns:
Optional[str]: The element name
- class stem.boundary.BoundaryParametersABC
Bases:
ABCAbstract base class for boundary 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 boundary condition.
- 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:
Exception: abstract method is called
- class stem.boundary.DisplacementConstraint(is_fixed: List[bool], value: List[float | Table])
Bases:
BoundaryParametersABCClass containing the boundary parameters for displacement constraint
- Inheritance:
- Attributes:
is_fixed (List[bool]): Specify if constraint is fixed for each direction.
value (List[Union[float,
stem.table.Table]]): Displacement value for direction [m]. It should be a list of either float or table for each displacement. If a float is specified, the displacement is time-independent, otherwise the table specifies the amplitude of the amplitude of the displacement [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 displacement constraint. Displacement constraint 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 element
analysis_type (
stem.solver.AnalysisType): The analysis type.
- Raises:
ValueError: Displacement constraint can only be applied in mechanical or mechanical groundwater flow
- Returns:
None: Displacement constraint does not have a name
- class stem.boundary.RotationConstraint(is_fixed: List[bool], value: List[float | Table])
Bases:
BoundaryParametersABCClass containing the boundary parameters for rotation constraint
- Inheritance:
- Attributes:
is_fixed (List[bool]): Specify if constraint is fixed around each axis.
value (List[Union[float,
stem.table.Table]]): Rotation value around x, y and z axis [Rad]. It should be a list of either float or table for each direction. If a float is specified, the rotation is time-independent, otherwise the table specifies the amplitude of the rotation [Rad] over time [s] around each axis.
- 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 rotation constraint. Rotation constraint does not have a name.
- 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: Rotation constraint can only be applied in mechanical or mechanical groundwater flow
- Returns:
None: Rotation constraint does not have a name