Skip to content

Dynamic soil spring stiffness and dashpot damping for an infinite elastic isotropic layered system.

License

Notifications You must be signed in to change notification settings

PlatypusBytes/WolfStiffness

Repository files navigation

WolfStiffness

Tests

Background

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.

How to use it

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.

To run the code in python

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.

About

Dynamic soil spring stiffness and dashpot damping for an infinite elastic isotropic layered system.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages