stem.structural_material module

class stem.structural_material.ElasticSpringDamper(NODAL_DISPLACEMENT_STIFFNESS: List[float], NODAL_ROTATIONAL_STIFFNESS: List[float], NODAL_DAMPING_COEFFICIENT: List[float], NODAL_ROTATIONAL_DAMPING_COEFFICIENT: List[float])

Bases: StructuralParametersABC

Class containing the constitutive parameters for an elastic spring-damper

Inheritance:
Attributes:
  • NODAL_DISPLACEMENT_STIFFNESS (List[float]): The stiffness of the spring in x,y,z direction [N/m].

  • NODAL_ROTATIONAL_STIFFNESS (List[float]): The stiffness of the rotational spring around x,y,z axis [Nm/rad].

  • NODAL_DAMPING_COEFFICIENT (List[float]): The damping coefficient of the spring in x,y,z direction [Ns/m].

  • NODAL_ROTATIONAL_DAMPING_COEFFICIENT (List[float]): The damping coefficient of the rotational spring around x,y,z axis [Ns/rad].

NODAL_DAMPING_COEFFICIENT: List[float]
NODAL_DISPLACEMENT_STIFFNESS: List[float]
NODAL_ROTATIONAL_DAMPING_COEFFICIENT: List[float]
NODAL_ROTATIONAL_STIFFNESS: List[float]
static get_element_name(n_dim_model, n_nodes_element, analysis_type) str | None

Static method to get the element name for an elastic spring damper element.

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 implemented yet for elastic spring damper elements.

Returns:
  • Optional[str]: The element name

class stem.structural_material.EulerBeam(ndim: int, YOUNG_MODULUS: float, POISSON_RATIO: float, DENSITY: float, CROSS_AREA: float, I33: float, I22: float | None = None, TORSIONAL_INERTIA: float | None = None, RAYLEIGH_M: float | None = None, RAYLEIGH_K: float | None = None)

Bases: StructuralParametersABC

Class containing the material parameters for beam material

Inheritance:
Attributes:
  • ndim (int): The number of dimensions of the beam formulation (2 or 3)

  • YOUNG_MODULUS (float): The Young’s modulus [Pa].

  • POISSON_RATIO (float): The Poisson’s ratio [-].

  • DENSITY (float): The density [kg/m3].

  • CROSS_AREA (float): The cross-sectional area [m2].

  • I33 (float): The second moment of area around the z-axis [m4].

  • I22 (float): The second moment of area around the y-axis [m4].

  • TORSIONAL_INERTIA (float): The torsional inertia [m4].

  • RAYLEIGH_M (Optional[float]): Mass proportional rayleigh damping parameter [-].

  • RAYLEIGH_K (Optional[float]): Stiffness proportional rayleigh damping parameter [-].

CROSS_AREA: float
DENSITY: float
I22: float | None = None
I33: float
POISSON_RATIO: float
RAYLEIGH_K: float | None = None
RAYLEIGH_M: float | None = None
TORSIONAL_INERTIA: float | None = None
YOUNG_MODULUS: 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 Euler beam element.

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 implemented yet for Euler beam elements.

Returns:
  • Optional[str]: The element name

ndim: int
class stem.structural_material.NodalConcentrated(NODAL_DISPLACEMENT_STIFFNESS: List[float], NODAL_MASS: float, NODAL_DAMPING_COEFFICIENT: List[float])

Bases: StructuralParametersABC

Class containing the material parameters for a nodal concentrated element

Inheritance:
Attributes:
  • NODAL_DISPLACEMENT_STIFFNESS (List[float]): The stiffness of the spring in x,y,z direction [N/m].

  • NODAL_MASS (float): The mass of the concentrated element [kg].

  • NODAL_DAMPING_COEFFICIENT (List[float]): The damping coefficient of the spring in x,y,z direction [Ns/m].

NODAL_DAMPING_COEFFICIENT: List[float]
NODAL_DISPLACEMENT_STIFFNESS: List[float]
NODAL_MASS: float
static get_element_name(n_dim_model: int, n_nodes_element: int, analysis_type: AnalysisType) str | None

Get the element name for the nodal concentrated element

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

  • n_nodes_element (int): The number of nodes of the element (1)

  • analysis_type (AnalysisType): The analysis type of the model

Raises:
  • ValueError: If the analysis type is not implemented yet for nodal concentrated elements.

Returns:
  • Optional[str]: The element name

class stem.structural_material.StructuralMaterial(name: str, material_parameters: StructuralParametersABC)

Bases: object

Class containing material information about a body part, e.g. a soil layer or track components

Attributes:
  • name (str): The name to describe the structural material.

  • material_parameters (StructuralParametersABC): class containing material parameters

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

Get the element name for the structural material

Args:
  • n_dim_model (int): The dimension of the model.

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

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

Returns:
  • Optional[str]: The element name.

get_property_in_material(property_name: str) Any

Function to retrieve the requested property for the structural material. The function is capital sensitive!

Args:
  • property_name (str): The desired structural property name.

Raises:
  • ValueError: If the property is not in not available in the structural material.

Returns:
  • Any : The value of the structural property

material_parameters: StructuralParametersABC
name: str
class stem.structural_material.StructuralParametersABC

Bases: ABC

Abstract base class for structural material 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 structural material.

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