weac.components.scenario_config module

This module defines the ScenarioConfig class, which contains the configuration for a given scenario.

class weac.components.scenario_config.ScenarioConfig(*, system_type='skiers', phi=0.0, theta=0.0, b=300, cut_length=0.0, stiffness_ratio=1000.0, surface_load=0.0, load_vector_left=<factory>, load_vector_right=<factory>)[source]

Bases: BaseModel

Configuration for the overall scenario, such as slope angle.

Parameters:
  • system_type (Literal['skier', 'skiers', 'pst-', '-pst', 'rot', 'trans', 'vpst-', '-vpst'])

  • phi (Annotated[float, Ge(ge=-90.0), Le(le=90.0)])

  • theta (Annotated[float, Ge(ge=-90.0), Le(le=90.0)])

  • b (Annotated[float, Ge(ge=1)])

  • cut_length (Annotated[float, Ge(ge=0)])

  • stiffness_ratio (Annotated[float, Gt(gt=0)])

  • surface_load (Annotated[float, Ge(ge=0)])

  • load_vector_left (Annotated[ndarray, PlainSerializer(func=~weac.components.scenario_config._serialize_ndarray, return_type=list, when_used=always), WithJsonSchema(json_schema={'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}}, mode=None)])

  • load_vector_right (Annotated[ndarray, PlainSerializer(func=~weac.components.scenario_config._serialize_ndarray, return_type=list, when_used=always), WithJsonSchema(json_schema={'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}}, mode=None)])

phi

Slope angle in degrees (counterclockwise positive).

Type:

float, optional

theta

Rotation of the slab around its axis (counterclockwise positive)

Type:

float, optional

b

Out-of-plane width of the model in [mm]. Default is 300 mm.

Type:

float, optional

system_type

Type of system. Allowed values are: - skier: single skier in-between two segments - skiers: multiple skiers spread over the slope - pst-: positive PST: down-slope + slab-normal cuts - -pst: negative PST: up-slope + slab-normal cuts - rot: rotation: rotation of the slab - trans: translation: translation of the slab - vpst-: positive VPST: down-slope + vertical cuts - -vpst: negative VPST: up-slope + vertical cuts

Type:

SystemType

cut_length

Cut length for PST/VPST [mm].

Type:

float, optional

stiffness_ratio

Stiffness ratio between collapsed and uncollapsed weak layer.

Type:

float, optional

surface_load

Surface line-load on slab [N/mm] (force per mm of out-of-plane width)

Type:

float, optional

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

system_type: Literal['skier', 'skiers', 'pst-', '-pst', 'rot', 'trans', 'vpst-', '-vpst']
phi: float
theta: float
b: float
cut_length: float
stiffness_ratio: float
surface_load: float
load_vector_left: WithJsonSchema(json_schema={'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}}, mode=None)]
load_vector_right: WithJsonSchema(json_schema={'type': 'array', 'items': {'type': 'array', 'items': {'type': 'number'}}}, mode=None)]
classmethod check_load_vector_shape(value)[source]
Parameters:

value (Any)

Return type:

Any