Skip to content

Python tools for solving problems related to soil liquefaction

License

Notifications You must be signed in to change notification settings

eng-tools/liquepy

Repository files navigation

Testing Status https://circleci.com/gh/eng-tools/liquepy.svg?style=svg PyPi version License DOI

Liquepy

Python tools for solving problems related to soil liquefaction

Features

  • Triggering:
    • Calculate liquefaction factor of safety according to Boulanger and Idriss (2014)
    • Calculate expected lateral strain and volumetric strain according to Zhang et al (2002)
  • Settlement:
    • Calculate foundation settlement on liquefiable deposit according to Karamitros et al. (2013) or Bray et al. (2018)
  • Element tests:
    • Calculate the dissipated energy required to liquefy
  • Site response analysis
    • Perform equivalent linear site response analysis using the pysra package

Installation

pip install liquepy

Optional modules (sra, fig, spatial) require large third-party dependencies and therefore do not import unless dependencies are satisfied.

to install all dependencies for these optional modules run (example for installing sra dependencies)

pip install liquepy[sra]

Contributors

How do I get set up?

  1. Run pip install -r requirements.txt

Code suggestions

  • Implementations of published liquefaction methods should be written as calc_<property>_<first_author>[_et_al]_<date>() for two authors include both.
  • Plotting and visualisation should be not included in computation objects. Instead plotting functions or objects should receive computation objects as inputs.

Formatting

  • Follow pep8 formatting standard (except for line character limit not strictly observed)
  • Docstrings written in numpy format
  • Tabulated data stored as comma separated or semi-colon separated files (not xlsx or xls)

Testing

Tests are run with pytest

  • Locally run: pytest on the command line.
  • Tests are run on every push using travis, see the .travis.yml file

To test the docs:

  1. Install the check docs package: Run pip install collective.checkdocs
  2. Run the check docs package and fix the errors: Run python setup.py checkdocs

Deployment

To deploy the package to pypi.com you need to:

  1. Push to the pypi branch. This executes the tests on circleci.com
  2. Create a git tag and push to github, run: trigger_deploy.py or manually:
git tag 0.5.2 -m "version 0.5.2"
git push --tags origin pypi

Python 3.10+ and numpy 2.x are required. See pyproject.toml for full dependency and build requirements.

Code style and formatting are enforced with black and isort via pre-commit hooks. To set up development tools:

pip install -r requirements.txt
pip install .[test,maps,sra,fig]
pip install pre-commit
pre-commit install

All code contributions should include complete docstrings and type annotations for public APIs.

About

Python tools for solving problems related to soil liquefaction

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages