weac.core.unknown_constants_solver module

This module defines the system model for the WEAC simulation. The system model is the heart of the WEAC simulation. All data sources are bundled into the system model. The system model initializes and calculates all the parameterizations and passes relevant data to the different components.

We utilize the pydantic library to define the system model.

class weac.core.unknown_constants_solver.UnknownConstantsSolver[source]

Bases: object

This class solves the unknown constants for the WEAC simulation.

classmethod solve_for_unknown_constants(scenario, eigensystem, system_type, touchdown_distance=None, touchdown_mode=None, collapsed_weak_layer_kR=None)[source]

Compute free constants C for system. Assemble LHS from supported and unsupported segments in the form:

[  ]   [ zh1  0   0  ...  0   0   0  ][   ]   [    ]   [     ]  (left)
[  ]   [ zh1 zh2  0  ...  0   0   0  ][   ]   [    ]   [     ]  (mid)
[  ]   [  0  zh2 zh3 ...  0   0   0  ][   ]   [    ]   [     ]  (mid)
[z0] = [ ... ... ... ... ... ... ... ][ C ] + [ zp ] = [ rhs ]  (mid)
[  ]   [  0   0   0  ... zhL zhM  0  ][   ]   [    ]   [     ]  (mid)
[  ]   [  0   0   0  ...  0  zhM zhN ][   ]   [    ]   [     ]  (mid)
[  ]   [  0   0   0  ...  0   0  zhN ][   ]   [    ]   [     ]  (right)

and solve for constants C.

Returns:

C – Matrix(6xN) of solution constants for a system of N segements. Columns contain the 6 constants of each segement.

Return type:

ndarray

Parameters:
  • scenario (Scenario)

  • eigensystem (Eigensystem)

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

  • touchdown_distance (float | None)

  • touchdown_mode (Literal['A_free_hanging', 'B_point_contact', 'C_in_contact'] | None)

  • collapsed_weak_layer_kR (float | None)