weac.components.layer module¶
Mechanical properties of snow-pack layers.
Layer - a regular slab layer (no foundation springs)
WeakLayer - a slab layer that also acts as a Winkler-type foundation
- class weac.components.layer.Layer(*, rho=150, h=200, nu=0.25, E=0.0, G=0.0, tensile_strength=0.0, tensile_strength_method='sigrist', E_method='bergfeld', grain_type=None, grain_size=None, hand_hardness=None)[source]¶
Bases:
BaseModel
Regular slab layer (no foundation springs).
- Parameters:
rho (Annotated[float, Gt(gt=0)])
h (Annotated[float, Gt(gt=0)])
nu (Annotated[float, Ge(ge=0), Lt(lt=0.5)])
E (Annotated[float, Ge(ge=0)])
G (Annotated[float, Ge(ge=0)])
tensile_strength (Annotated[float, Ge(ge=0)])
tensile_strength_method (Literal['sigrist'])
E_method (Literal['bergfeld', 'scapazzo', 'gerling'])
grain_type (GrainType | None)
grain_size (float | None)
hand_hardness (HandHardness | None)
- rho¶
Density of the layer [kg m⁻³].
- Type:
float
- h¶
Height/Thickness of the layer [mm].
- Type:
float
- nu¶
Poisson’s ratio [-] Defaults to weac.constants.NU).
- Type:
float
- E¶
Young’s modulus E [MPa]. If omitted it is derived from
rho
.- Type:
float, optional
- G¶
Shear modulus G [MPa]. If omitted it is derived from
E
andnu
.- Type:
float, optional
- rho: float¶
- h: float¶
- nu: float¶
- E: float¶
- G: float¶
- tensile_strength: float¶
- tensile_strength_method: Literal['sigrist']¶
- E_method: Literal['bergfeld', 'scapazzo', 'gerling']¶
- grain_size: float | None¶
- hand_hardness: HandHardness | None¶
- model_post_init(_ctx)[source]¶
Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class weac.components.layer.WeakLayer(*, rho=125, h=20, collapse_height=0.0, nu=0.25, E=0.0, G=0.0, kn=0.0, kt=0.0, G_c=1.0, G_Ic=0.56, G_IIc=0.79, sigma_c=6.16, tau_c=5.09, E_method='bergfeld', grain_type=None, grain_size=None, hand_hardness=None)[source]¶
Bases:
BaseModel
Weak layer that also behaves as a Winkler foundation.
- Parameters:
rho (Annotated[float, Gt(gt=0)])
h (Annotated[float, Gt(gt=0)])
collapse_height (Annotated[float, Ge(ge=0)])
nu (Annotated[float, Ge(ge=0), Lt(lt=0.5)])
E (Annotated[float, Ge(ge=0)])
G (Annotated[float, Ge(ge=0)])
kn (float)
kt (float)
G_c (Annotated[float, Gt(gt=0)])
G_Ic (Annotated[float, Gt(gt=0)])
G_IIc (Annotated[float, Gt(gt=0)])
sigma_c (Annotated[float, Gt(gt=0)])
tau_c (Annotated[float, Gt(gt=0)])
E_method (Literal['bergfeld', 'scapazzo', 'gerling'])
grain_type (GrainType | None)
grain_size (float | None)
hand_hardness (HandHardness | None)
- rho¶
Density of the layer [kg m⁻³].
- Type:
float
- h¶
Height/Thickness of the layer [mm].
- Type:
float
- nu¶
Poisson’s ratio [-] Defaults to weac.constants.NU).
- Type:
float
- E¶
Young’s modulus E [MPa]. If omitted it is derived from
rho
.- Type:
float, optional
- G¶
Shear modulus G [MPa]. If omitted it is derived from
E
andnu
.- Type:
float, optional
- kn¶
Normal (compression) spring stiffness kₙ [N mm⁻³]. If omitted it is computed as
E_plane / t
whereE_plane = E / (1 - nu²)
.- Type:
float, optional
- kt¶
Shear spring stiffness kₜ [N mm⁻³]. If omitted it is
G / t
.- Type:
float, optional
- G_c¶
Total fracture energy Gc [J/m^2]. Default 1.0 J/m^2.
- Type:
float
- G_Ic¶
Mode-I fracture toughness GIc [J/m^2]. Default 0.56 J/m^2.
- Type:
float
- G_IIc¶
Mode-II fracture toughness GIIc [J/m^2]. Default 0.79 J/m^2.
- Type:
float
- rho: float¶
- h: float¶
- collapse_height: float¶
- nu: float¶
- E: float¶
- G: float¶
- kn: float¶
- kt: float¶
- G_c: float¶
- G_Ic: float¶
- G_IIc: float¶
- sigma_c: float¶
- tau_c: float¶
- E_method: Literal['bergfeld', 'scapazzo', 'gerling']¶
- grain_size: float | None¶
- hand_hardness: HandHardness | None¶
- model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].