This package computes the dynamic soil spring stiffness and dashpot damping, for an infinite elastic isotropic layered system.
The computation is based on the semi-analytical cone model presented by Wolf and Deeks (2004). This model assumes that the load is applied to a disk.
The model is based on one-dimensional wave propagation surface, which induces stresses on an area that increases with depth; the displacements are constant at the cross-section of the cone. Discontinuities can be modelled by assuming at the interface between two layers that one cone leads to the creation of two new cones: reflected and refracted. This allows the modelling of multi-layered soils.
In this model the dynamic stiffness, Kdyn and damping, D, follow the definition proposed in Wolf and Deeks (2004):
where S is the dynamic stiffness matrix (complex frequency response function) and ω the angular frequency.
The package reads an input CSV file that has the following format:
Layer | G | nu | rho | damping | thickness | radius | direction |
---|---|---|---|---|---|---|---|
Force | - | - | - | - | - | 1 | V |
Layer 1 | 1000 | 0.25 | 2000 | 0.05 | 1 | - | - |
Layer 2 | 2000 | 0.3 | 1500 | 0.05 | 5 | - | - |
Halfspace | 2500 | 0.20 | 2500 | 0.025 | inf | - | - |
where:
- Layer is the layer name
- G is the dynamic shear modulus (Pa)
- nu is the Poisson ratio
- rho is the material density (kg/m3)
- damping is the material damping
- thickness is layer thickness (m)
- radius is loading radius (m)
- direction is loading direction (can be either V or H)
The first row of the file needs to be the information about the loading. The last layer needs to have inf thickness.
Install the package using:
pip install git+https://github.com/PlatypusBytes/WolfStiffness.git
To run the code, please follow:
import numpy as np
from WolfStiffness.wolfStiffness import WolfStiffness
# define omegas
omega = np.linspace(0, 5, 150)
# runs stiffness
wolf = WolfStiffness(omega, output_folder="./example")
wolf.read_csv("./example/input_H.csv")
wolf.compute()
wolf.write()
In this example the dynamic stiffness is computed for angular frequencies between 0 and 5 rad/s. The results are saved in a json file in the output_folder.
An example of a calculation is here.