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:
StructuralParametersABCClass 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].
- 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:
StructuralParametersABCClass 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 [-].
- 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
- class stem.structural_material.NodalConcentrated(NODAL_DISPLACEMENT_STIFFNESS: List[float], NODAL_MASS: float, NODAL_DAMPING_COEFFICIENT: List[float])
Bases:
StructuralParametersABCClass 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].
- 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:
objectClass 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
- class stem.structural_material.StructuralParametersABC
Bases:
ABCAbstract 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