stem.soil_material module

class stem.soil_material.FluidProperties(DENSITY_FLUID: float = 1000, DYNAMIC_VISCOSITY: float = 0.0013, BULK_MODULUS_FLUID: float = 2000000000.0)

Bases: object

Class containing the parameters for a fluid. Default values are for water at 12 degrees Celsius.

Attributes:
  • DENSITY_FLUID (float): The density of fluid [kg/m^3].

  • DYNAMIC_VISCOSITY (float): The dynamic viscosity of fluid [Pa s].

  • BULK_MODULUS_FLUID (float): The bulk modulus of fluid [Pa].

BULK_MODULUS_FLUID: float = 2000000000.0
DENSITY_FLUID: float = 1000
DYNAMIC_VISCOSITY: float = 0.0013
class stem.soil_material.LinearElasticSoil(YOUNG_MODULUS: float, POISSON_RATIO: float)

Bases: SoilConstitutiveLawABC

Class containing the material parameters for a 2D linear elastic material

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

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

POISSON_RATIO: float
YOUNG_MODULUS: float
class stem.soil_material.OnePhaseSoil(ndim: int, IS_DRAINED: bool, DENSITY_SOLID: float, POROSITY: float, BULK_MODULUS_SOLID: float = 50000000000.0, BIOT_COEFFICIENT: float | None = None, RAYLEIGH_M: float | None = None, RAYLEIGH_K: float | None = None)

Bases: SoilFormulationParametersABC

Class containing the material parameters for an undrained soil material

Inheritance:
Attributes:
  • IS_UNDRAINED (bool): Boolean indicating if the soil is undrained.

  • DENSITY_SOLID (float): The density of the solid material [kg/m^3].

  • POROSITY (float): The porosity of the soil [-].

  • BULK_MODULUS_SOLID (float): The bulk modulus of the solid material [Pa].

  • BIOT_COEFFICIENT (Optional[float]): The Biot coefficient [-].

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

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

BIOT_COEFFICIENT: float | None = None
BULK_MODULUS_SOLID: float = 50000000000.0
DENSITY_SOLID: float
IS_DRAINED: bool
POROSITY: float
RAYLEIGH_K: float | None = None
RAYLEIGH_M: float | None = None
class stem.soil_material.RetentionLawABC

Bases: ABC

Abstract class containing the parameters for a retention law. This class is created for type checking purposes.

class stem.soil_material.SaturatedBelowPhreaticLevelLaw(SATURATED_SATURATION: float = 1.0, RESIDUAL_SATURATION: float = 1e-10)

Bases: RetentionLawABC

Class containing the parameters for the retention law: saturated below phreatic level

Inheritance:
Attributes:
  • SATURATED_SATURATION (float): The saturation ratio below phreatic level [-].

  • RESIDUAL_SATURATION (float): The residual saturation ratio [-].

RESIDUAL_SATURATION: float = 1e-10
SATURATED_SATURATION: float = 1.0
class stem.soil_material.SaturatedLaw(SATURATED_SATURATION: float = 1.0)

Bases: RetentionLawABC

Class containing the parameters for the retention law: saturated

Inheritance:
Attributes:
  • SATURATED_SATURATION (float): The saturation ratio [-].

SATURATED_SATURATION: float = 1.0
class stem.soil_material.SmallStrainUdsmLaw(UDSM_NAME: str, UDSM_NUMBER: int, IS_FORTRAN_UDSM: bool, UDSM_PARAMETERS: List[Any])

Bases: SoilConstitutiveLawABC

Class containing the material parameters for small strain udsm material

Inheritance:
Attributes:
  • UDSM_NAME (str): The name and location of the udsm .dll or .so file.

  • UDSM_NUMBER (int): The model number within the udsm.

  • IS_FORTRAN_UDSM (bool): A boolean to indicate whether the udsm is written in Fortran.

  • UDSM_PARAMETERS (list): The parameters of the udsm.

IS_FORTRAN_UDSM: bool
UDSM_NAME: str
UDSM_NUMBER: int
UDSM_PARAMETERS: List[Any]
class stem.soil_material.SmallStrainUmatLaw(UMAT_NAME: str, IS_FORTRAN_UMAT: bool, UMAT_PARAMETERS: List[Any], STATE_VARIABLES: List[Any])

Bases: SoilConstitutiveLawABC

Class containing the material parameters for a 2D small strain umat material

Inheritance:
Attributes:
  • UMAT_NAME (str): The name and location of the umat .dll or .so file.

  • IS_FORTRAN_UMAT (bool): A boolean to indicate whether the umat is written in Fortran.

  • UMAT_PARAMETERS (list): The parameters of the umat.

  • STATE_VARIABLES (list): The state variables of the umat.

IS_FORTRAN_UMAT: bool
STATE_VARIABLES: List[Any]
UMAT_NAME: str
UMAT_PARAMETERS: List[Any]
class stem.soil_material.SoilConstitutiveLawABC

Bases: ABC

Abstract base class for soil constitutive laws

class stem.soil_material.SoilFormulationParametersABC(ndim: int)

Bases: ABC

Abstract base class for soil formulation parameters

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

ndim: int
class stem.soil_material.SoilMaterial(name: str, soil_formulation: ~stem.soil_material.SoilFormulationParametersABC, constitutive_law: ~stem.soil_material.SoilConstitutiveLawABC, retention_parameters: ~stem.soil_material.RetentionLawABC, fluid_properties: ~stem.soil_material.FluidProperties = <factory>)

Bases: object

Class containing the parameters for a soil material

Attributes:
constitutive_law: SoilConstitutiveLawABC
fluid_properties: FluidProperties
static get_element_name(n_dim_model: int, n_nodes_element: int, analysis_type: AnalysisType) str

Function to get the element name based on the number of dimensions, the number of nodes and the analysis type.

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 nodal concentrated elements.

Returns:
  • element_name (str): The name of the element.

get_property_in_material(property_name: str) Any

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

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

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

Returns:
  • Any : The value of the soil property.

name: str
retention_parameters: RetentionLawABC
soil_formulation: SoilFormulationParametersABC
to_dict() Dict[str, Any]

Function to convert the soil material to a dictionary. For serialization purposes.

Returns:
  • Dict[str, Any]: The soil material as a dictionary.

class stem.soil_material.TwoPhaseSoil(ndim: int, DENSITY_SOLID: float, POROSITY: float, PERMEABILITY_XX: float, PERMEABILITY_YY: float, PERMEABILITY_XY: float = 0, BULK_MODULUS_SOLID: float = 50000000000.0, BIOT_COEFFICIENT: float | None = None, RAYLEIGH_M: float | None = None, RAYLEIGH_K: float | None = None, PERMEABILITY_YZ: float | None = 0, PERMEABILITY_ZX: float | None = 0, PERMEABILITY_ZZ: float | None = None)

Bases: SoilFormulationParametersABC

Class containing the material parameters for a two phase soil material

Inheritance:
Attributes:
  • DENSITY_SOLID (float): The density of the solid material [kg/m^3].

  • POROSITY (float): The porosity of the soil [-].

  • PERMEABILITY_XX (float): The permeability in the x-direction [m^2].

  • PERMEABILITY_YY (float): The permeability in the y-direction [m^2].

  • PERMEABILITY_XY (float): The permeability in the xy-direction [m^2].

  • BULK_MODULUS_SOLID (float): The bulk modulus of the solid material [Pa].

  • BIOT_COEFFICIENT (Optional[float]): The Biot coefficient [-].

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

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

  • PERMEABILITY_YZ (Optional[float]): The permeability in the yz-direction [m^2].

  • PERMEABILITY_ZX (Optional[float]): The permeability in the zx-direction [m^2].

  • PERMEABILITY_ZZ (Optional[float]): The permeability in the z-direction [m^2].

BIOT_COEFFICIENT: float | None = None
BULK_MODULUS_SOLID: float = 50000000000.0
DENSITY_SOLID: float
PERMEABILITY_XX: float
PERMEABILITY_XY: float = 0
PERMEABILITY_YY: float
PERMEABILITY_YZ: float | None = 0
PERMEABILITY_ZX: float | None = 0
PERMEABILITY_ZZ: float | None = None
POROSITY: float
RAYLEIGH_K: float | None = None
RAYLEIGH_M: float | None = None
class stem.soil_material.VanGenuchtenLaw(VAN_GENUCHTEN_AIR_ENTRY_PRESSURE: float, VAN_GENUCHTEN_GN: float, VAN_GENUCHTEN_GL: float, SATURATED_SATURATION: float = 1.0, RESIDUAL_SATURATION: float = 1e-10, MINIMUM_RELATIVE_PERMEABILITY: float = 0.0001)

Bases: RetentionLawABC

Class containing the parameters for a retention law

Inheritance:
Attributes:
  • VAN_GENUCHTEN_AIR_ENTRY_PRESSURE (float): The air entry pressure [Pa].

  • VAN_GENUCHTEN_GN (float): The pore size distribution index [-].

  • VAN_GENUCHTEN_GL (float): exponent for calculating relative permeability [-].

  • SATURATED_SATURATION (float): The maximum saturation ratio [-].

  • RESIDUAL_SATURATION (float): The minumum saturation ratio [-].

  • MINIMUM_RELATIVE_PERMEABILITY (float): The minimum relative permeability [-].

MINIMUM_RELATIVE_PERMEABILITY: float = 0.0001
RESIDUAL_SATURATION: float = 1e-10
SATURATED_SATURATION: float = 1.0
VAN_GENUCHTEN_AIR_ENTRY_PRESSURE: float
VAN_GENUCHTEN_GL: float
VAN_GENUCHTEN_GN: float