stem.boundary module

class stem.boundary.AbsorbingBoundary(absorbing_factors: List[float], virtual_thickness: float)

Bases: BoundaryParametersABC

Class 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].

absorbing_factors: List[float]
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

property is_constraint: bool

Property which indicates if boundary condition is a constraint. False for AbsorbingBoundary.

Returns:
  • bool

virtual_thickness: float
class stem.boundary.BoundaryParametersABC

Bases: ABC

Abstract 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

abstract property is_constraint: bool

Property which indicates if boundary condition is a constraint.

Raises:
  • Exception: abstract method is called

class stem.boundary.DisplacementConstraint(is_fixed: List[bool], value: List[float | Table])

Bases: BoundaryParametersABC

Class 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

property is_constraint: bool

Property which indicates if boundary condition is a constraint. True for DisplacementConstraint.

Returns:
  • bool

is_fixed: List[bool]
value: List[float | Table]
class stem.boundary.RotationConstraint(is_fixed: List[bool], value: List[float | Table])

Bases: BoundaryParametersABC

Class 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

property is_constraint: bool

Property which indicates if boundary condition is a constraint. True for RotationConstraint.

Returns:
  • bool

is_fixed: List[bool]
value: List[float | Table]