weac.eigensystem module¶
Base class for the elastic analysis of layered snow slabs.
- class weac.eigensystem.Eigensystem(system='pst-', touchdown=False)[source]¶
Bases:
object
Base class for a layered beam on an elastic foundation.
Provides geometry, material and loading attributes, and methods for the assembly of a fundamental system.
- g¶
Gravitational constant (mm/s^2). Default is 9180.
- Type:
float
- lski¶
Effective out-of-plance length of skis (mm). Default is 1000.
- Type:
float
- tol¶
Relative Romberg integration toleranc. Default is 1e-3.
- Type:
float
- system¶
Type of boundary value problem. Default is ‘pst-‘.
- Type:
str
- weak¶
Dictionary that holds the weak layer properties Young’s modulus (MPa) and Poisson’s ratio. Defaults are 0.25 and 0.25, respectively.
- Type:
dict
- t¶
Weak-layer thickness (mm). Default is 30.
- Type:
float
- kn¶
Compressive foundation (weak-layer) stiffness (N/mm^3).
- Type:
float
- kt¶
Shear foundation (weak-layer) stiffness (N/mm^3).
- Type:
float
- tc¶
Weak-layer thickness after collapse (mm).
- Type:
float
- slab¶
Matrix that holds the elastic properties of all slab layers. Columns are density (kg/m^3), layer heigth (mm), Young’s modulus (MPa), shear modulus (MPa), and Poisson’s ratio.
- Type:
ndarray
- k¶
Shear correction factor of the slab. Default is 5/6.
- Type:
float
- h¶
Slab thickness (mm). Default is 300.
- Type:
float
- zs¶
Z-coordinate of the center of gravity of the slab (mm).
- Type:
float
- A11¶
Extensional stiffness of the slab (N/mm).
- Type:
float
- B11¶
Bending-extension coupling stiffness of the slab (N).
- Type:
float
- D11¶
Bending stiffness of the slab (Nmm).
- Type:
float
- kA55¶
Shear stiffness of the slab (N/mm).
- Type:
float
- K0¶
Characteristic stiffness value (N).
- Type:
float
- ewC¶
List of complex eigenvalues.
- Type:
ndarray
- ewR¶
List of real eigenvalues.
- Type:
ndarray
- evC¶
Matrix with eigenvectors corresponding to complex eigenvalues as columns.
- Type:
ndarray
- evR¶
Matrix with eigenvectors corresponding to real eigenvalues as columns.
- Type:
ndarray
- sC¶
X-coordinate shift (mm) of complex parts of the solution. Used for numerical stability.
- Type:
float
- sR¶
X-coordinate shift (mm) of real parts of the solution. Used for numerical stability.
- Type:
float
- sysmat¶
System matrix.
- Type:
ndarray
- lC¶
Cracklength whose maximum deflection equals the weak-layer thickness (mm).
- Type:
float
- lS¶
Cracklength when touchdown exerts maximum support on the slab (mm). Corresponds to the longest possible unbedded length.
- Type:
float
- ratio¶
Increment factor for the weak-layer stiffness from intact to collapsed state.
- Type:
float
- beta¶
Describes the stiffnesses of weak-layer and slab.
- Type:
float
- calc_laminate_stiffness_matrix()[source]¶
Provide ABD matrix.
Return plane-strain laminate stiffness matrix (ABD matrix).
- calc_system_matrix()[source]¶
Assemble first-order ODE system matrix K.
Using the solution vector z = [u, u’, w, w’, psi, psi’] the ODE system is written in the form Az’ + Bz = d and rearranged to z’ = -(A ^ -1)Bz + (A ^ -1)d = Kz + q
- Returns:
System matrix K (6x6).
- Return type:
ndarray
- get_load_vector(phi)[source]¶
Compute sytem load vector q.
Using the solution vector z = [u, u’, w, w’, psi, psi’] the ODE system is written in the form Az’ + Bz = d and rearranged to z’ = -(A ^ -1)Bz + (A ^ -1)d = Kz + q
- Parameters:
phi (float) – Inclination (degrees). Counterclockwise positive.
- Returns:
System load vector q (6x1).
- Return type:
ndarray
- get_ply_coordinates()[source]¶
Calculate ply (layer) z-coordinates.
- Returns:
Ply (layer) z-coordinates (top to bottom) in coordinate system with downward pointing z-axis (z-list will be negative to positive).
- Return type:
ndarray
- get_skier_load(m, phi)[source]¶
Calculate skier point load.
- Parameters:
m (float) – Skier weight (kg).
phi (float) – Inclination (degrees). Counterclockwise positive.
- Returns:
Fn (float) – Skier load (N) in normal direction.
Ft (float) – Skier load (N) in tangential direction.
- get_surface_load(phi)[source]¶
Calculate surface line loads.
- Parameters:
phi (float) – Inclination (degrees). Counterclockwise positive.
- Returns:
pn (float) – Surface line load (N/mm) in normal direction.
pt (float) – Surface line load (N/mm) in tangential direction.
- get_weight_load(phi)[source]¶
Calculate line loads from slab mass.
- Parameters:
phi (float) – Inclination (degrees). Counterclockwise positive.
- Returns:
qn (float) – Line load (N/mm) at center of gravity in normal direction.
qt (float) – Line load (N/mm) at center of gravity in tangential direction.
- set_beam_properties(layers, C0=6.5, C1=4.4, nu=0.25, update=False)[source]¶
Set material and properties geometry of beam (slab).
- Parameters:
layers (list or str) – 2D list of top-to-bottom layer densities and thicknesses. Columns are density (kg/m^3) and thickness (mm). One row corresponds to one layer. If entered as str, last split must be available in database.
C0 (float, optional) – Multiplicative constant of Young modulus parametrization according to Bergfeld et al. (2023). Default is 6.5.
C1 (float, optional) – Exponent of Young modulus parameterization according to Bergfeld et al. (2023). Default is 4.6.
nu (float, optional) – Possion’s ratio. Default is 0.25
update (bool, optional) – If true, recalculate the fundamental system after foundation properties have changed.
- set_foundation_properties(t: float = 30.0, E: float = 0.25, nu: float = 0.25, update: bool = False)[source]¶
Set material properties and geometry of foundation (weak layer).
- Parameters:
t (float, optional) – Weak-layer thickness (mm). Default is 30.
cf (float) – Fraction by which the weak-layer thickness is reduced due to collapse. Default is 0.5.
E (float, optional) – Weak-layer Young modulus (MPa). Default is 0.25.
nu (float, optional) – Weak-layer Poisson ratio. Default is 0.25.
update (bool, optional) – If true, recalculate the fundamental system after foundation properties have changed.
- set_surface_load(p)[source]¶
Set surface line load.
Define a distributed surface load (N/mm) that acts in vertical (gravity) direction on the top surface of the slab.
- Parameters:
p (float) – Surface line load (N/mm) that acts in vertical (gravity) direction onm the top surface of the slab.
- z(x, C, l, phi, bed=True)[source]¶
Assemble solution vector at positions x.
- Parameters:
x (float or squence) – Horizontal coordinate (mm). Can be sequence of length N.
C (ndarray) – Vector of constants (6xN) at positions x.
l (float) – Segment length (mm).
phi (float) – Inclination (degrees).
bed (bool) – Indicates whether segment has foundation (True) or not (False). Default is True.
- Returns:
z – Solution vector (6xN) at position x.
- Return type:
ndarray
- zh(x, l=0, bed=True)[source]¶
Compute bedded or free complementary solution at position x.
- Parameters:
x (float) – Horizontal coordinate (mm).
l (float, optional) – Segment length (mm). Default is 0.
bed (bool) – Indicates whether segment has foundation or not. Default is True.
- Returns:
zh – Complementary solution matrix (6x6) at position x.
- Return type:
ndarray
- zp(x, phi, bed=True)[source]¶
Compute bedded or free particular integrals at position x.
- Parameters:
x (float) – Horizontal coordinate (mm).
phi (float) – Inclination (degrees).
bed (bool) – Indicates whether segment has foundation (True) or not (False). Default is True.
- Returns:
zp – Particular integral vector (6x1) at position x.
- Return type:
ndarray