Skip to main content

Weak layer anticrack nucleation model

Project description

Logo

WEAC  ·  Weak Layer Anticrack Nucleation Model

Weac Release PyPI Contributors Stargazers Issues DOI
Implementation of closed-form analytical models for the analysis of dry-snow slab avalanche release.

View demo · Report bug · Request feature · Read the docs

Contents

  1. About the project
  2. Installation
  3. Usage
  4. Roadmap
  5. Release history
  6. How to contribute
  7. License
  8. Contact

About the project

WEAC implements closed-form analytical models for the mechanical analysis of dry-snow slabs on compliant weak layers, the prediction of anticrack onset, and, in particular, allows for the analysis of stratified snow covers. The model covers propagation saw tests (a), and uncracked (b) or cracked (c) skier-loaded buried weak layers.

Boundary conditions

Please refer to the companion papers for model derivations, illustrations, dimensions, material properties, and kinematics:

  • Rosendahl, P. L., & Weißgraeber, P. (2020). Modeling snow slab avalanches caused by weak-layer failure – Part 1: Slabs on compliant and collapsible weak layers. The Cryosphere, 14(1), 115–130. https://doi.org/10.5194/tc-14-115-2020
  • Rosendahl, P. L., & Weißgraeber, P. (2020). Modeling snow slab avalanches caused by weak-layer failure – Part 2: Coupled mixed-mode criterion for skier-triggered anticracks. The Cryosphere, 14(1), 131–145. https://doi.org/10.5194/tc-14-131-2020

Written in Python and built with Atom, GitKraken, and Jupyter. Note that release v1.0 was written and built in MATLAB.

Installation

Install globally using the pip Package Installer for Python

pip install -U weac

or clone the repo

git clone https://github.com/2phi/weac

for local use.

Needs

Usage

The following describes the basic usage of WEAC. Please refer to the demo for more examples and read the documentation for details.

Load the module.

import weac

Choose a profile from the database (see demo) or create your own.

myprofile = [[180, 100],
             [190,  40],
             [230, 130],
             [380,  20],
             [270, 100]]

Create a model instance with optional custom layering.

skier = weac.Layered(system='skier', layers=myprofile)

Calculate lists of segment lengths, locations of foundations, and position and magnitude of skier loads from the inputs total length L (mm), crack length a (mm), and skier weight m (kg). We can choose to analyze the situtation before a crack appears even if a crack length > 0 is set by replacing the 'crack' key thorugh the 'uncracked' key.

segments = skier.calc_segments(L=10000, a=300, m=80)['crack']

Assemble the system of linear equations and solve the boundary-value problem for the free constants C providing the inclination phi in degrees.

C = skier.assemble_and_solve(phi=38, **segments)

Prepare the output by rasterizing the solution vector at all horizontal positions xq. The result is returned in the form of the ndarray zq. We also get xb that only contains x-coordinates that lie on a foundation.

xq, zq, xb = skier.rasterize_solution(C=C, phi=38, **segments)

Visualize the results.

# Visualize deformations as a contour plot
weac.plot.contours(skier, x=xq, z=zq, window=200, scale=100)

# Plot slab displacements
weac.plot.displacements(skier, x=xq, z=zq, **segments)

# Plot weak-layer stresses
weac.plot.stresses(skier, x=xb, z=zq, **segments)

Roadmap

See the open issues for a list of proposed features and known issues.

v2.2

  • Finite fracture mechanics implementation for layered snow covers

Release history

v2.1

  • Consistent use of coordinate system with downward pointing z-axis
  • Consitent top-to-bottom ordering of slab layers
  • Implementation of PSTs cut from either left or right side

v2.0

  • Completely rewritten in Python
  • Coupled bending-extension ODE solver implemented
  • Stress analysis of arbitrarily layered snow slabs
  • FEM validation of
    • displacements
    • weak-layer stresses
    • energy release rates in weak layers
  • Documentation
  • Demo and examples

v1.0

  • Written in MATLAB
  • Deformation analysis of homogeneous snow labs
  • Weak-layer stress prediction
  • Energy release rates of cracks in weak layers
  • Finite fracture mechanics implementation
  • Prediction of anticrack nucleation

How to contribute

  1. Fork the project
  2. Create your feature branch (git checkout -b feature/amazingfeature)
  3. Commit your changes (git commit -m 'Add some amazingfeature')
  4. Push to the branch (git push origin feature/amazingfeature)
  5. Open a pull request

License

Copyright 2phi GbR, 2021.

We currently do not offer an open source license. Please contact us for private licensing options.

Contact

E-mail: mail@2phi.de · Web: https://2phi.de · Project Link: https://github.com/2phi/weac · Project DOI: http://dx.doi.org/10.5281/zenodo.5773113

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

weac-2.1.0.tar.gz (341.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

weac-2.1.0-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file weac-2.1.0.tar.gz.

File metadata

  • Download URL: weac-2.1.0.tar.gz
  • Upload date:
  • Size: 341.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for weac-2.1.0.tar.gz
Algorithm Hash digest
SHA256 4a3349a8394f5494d1a60faf24580af2691e6e852f9f19fbaca6fbc2de07e046
MD5 864656cf345c92c09ae4931de7e327bf
BLAKE2b-256 aa54293bc4d49f9a76a4b16b15a559ae6ee1ac45bab8c8463a56ac51ef5b4a30

See more details on using hashes here.

File details

Details for the file weac-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: weac-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 24.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.10.0

File hashes

Hashes for weac-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 caa149c2b05a3f31a9edb7db923d238d6365a0ca1213b234d0465c6053b780ee
MD5 ab059eab117d38ee200b294c80c3cfa7
BLAKE2b-256 d587121b73df295386cb8ed250f9daf1e45ec66b2cb5f32c0b26794c3f1a7799

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page