Recent Releases of weac

weac - v3.0.1

Packaging structure refactor

  • Moved the weac/ to src/weac/
  • Fixed subpackage discovery

License update

  • Switched from CC4.0 to MIT license

Changes

  • Removed unused static assets and coverage files from the repository by @zacczakk in https://github.com/2phi/weac/pull/28
  • Packaging hotfix by @pillowbeast in https://github.com/2phi/weac/pull/29
  • License update by @pillowbeast in https://github.com/2phi/weac/pull/30

Full Changelog: https://github.com/2phi/weac/compare/v3.0.0...v3.0.1

- Python
Published by pillowbeast 6 months ago

weac - v3.0.0

WEAC v3.0

WEAC v3.0 represents a major architectural upgrade that completely restructures the codebase into a modern, modular package. This release significantly improves code organization, performance, and maintainability while adding comprehensive testing and enhanced documentation.

Highlights

  • Core refactor to a modular architecture under weac/:

    • New packages: analysis/, components/, core/, utils/
    • Introduces analysis.Analyzer, analysis.criteria_evaluator, and analysis.plotter
    • New Pydantic-backed configuration and data models in components/
    • Adds core.system_model, core.eigensystem, core.slab, core.scenario, core.slab_touchdown, core.unknown_constants_solver
    • Utility modules for data handling and conversions (e.g., utils.snowpilot_parser, utils.geldsetzer)
  • Performance improvements:

    • Property caching for improved efficiency
    • Input validation with Pydantic models
  • Comprehensive test suite:

    • Tests across tests/analysis, tests/components, tests/core, and tests/utils
    • Integration and regression tests, including comparison to reference WEAC version
    • Test materials and consolidated test structure
  • Documentation improvements:

    • Enhanced Sphinx project with fixed builds for Sphinx 8.x compatibility
    • README improvements for usage, roadmap, and links
    • Removed deprecated sphinxawesome_theme.highlighting extension
  • CI and tooling enhancements:

    • Updated GitHub Actions workflows for formatting, linting, testing, and docs deployment
    • Standardized configuration in pyproject.toml
    • Dependency caching and streamlined setup
    • Cleaned .gitignore/.cursorignore and added .gitmodules

BREAKING CHANGES

  • Legacy modules removed: weac/layered.py, weac/mixins.py, weac/plot.py, weac/tools.py, weac/inverse.py, weac/eigensystem.py
  • API restructuring: imports move under weac/analysis, weac/components, weac/core, weac/utils
  • Renaming: crack_length β†’ cut_length across scenario-related APIs
  • Constants alignment and internal behavior changes consistent with new architecture
  • Scripts removed: main.py and validation_cc.py are no longer available

Migration Guide

Update your imports to the new package layout:

```python

New imports

from weac.components import ScenarioConfig, Segment, Layer, Config, ModelInput from weac.core.system_model import SystemModel from weac.analysis.analyzer import Analyzer from weac.analysis.plotter import Plotter ```

API Changes: - Replace crack_length with cut_length in your scenario/config usage - Use analysis.Plotter and analysis.Analyzer for plotting and analysis APIs - Migrate from removed legacy modules to their new equivalents listed above

Documentation and CI

  • Docs build now succeeds with Sphinx 8.x:

    • docs/sphinx/conf.py derives version via importlib.metadata.version("weac")
    • Deprecated extensions removed for better compatibility
  • CI improvements use pyproject.toml for lint settings, add caching, and streamline setup

How to Verify

  • Run the full test suite: python -m pytest -q
  • Build docs locally: bash sphinx-apidoc -o docs/sphinx/ weac --force --separate cd docs/sphinx && make clean html

This major release maintains WEAC's core functionality while providing a significantly improved foundation for future development. The modular architecture, comprehensive testing, and enhanced documentation make WEAC more maintainable and extensible than ever before.

- Python
Published by zacczakk 6 months ago

weac - v2.6.4

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.6 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

  • Store touchdown parameters

Full Changelog: https://github.com/2phi/weac/commits/v2.6.4

- Python
Published by zacczakk 6 months ago

weac - v2.6.3

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.6 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

  • Set slope angle before the calculation of the collapse height

Full Changelog: https://github.com/2phi/weac/commits/v2.6.3

- Python
Published by zacczakk 6 months ago

weac - v2.6.2

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.6 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

FEATURES

  • Improved parameter precision of Bergfeld's Young-modulus calculation
  • Implemented parametrized collapse heights

Full Changelog: https://github.com/2phi/weac/commits/v2.6.2

- Python
Published by zacczakk 6 months ago

weac - v2.6.1

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.6 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

FEATURES

  • Migrated setup.cfg to pyproject.toml
  • Migrated .bumpversion.cfg to pyproject.toml

Full Changelog: https://github.com/2phi/weac/commits/v2.6.1

- Python
Published by zacczakk 12 months ago

weac - v2.6.0

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.6 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

FEATURES

  • Introduces unit tests
  • Fixes #1

Full Changelog: https://github.com/2phi/weac/commits/v2.6.0

- Python
Published by zacczakk 12 months ago

weac -

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.5 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

FEATURES

  • Adds the computation of the cut length where the slab comes into full contact (more than a singular point) with the base layer in a propagation saw test to weac.tools.touchdown_distance()

Full Changelog: https://github.com/2phi/weac/commits/v2.5.2

- Python
Published by zacczakk almost 2 years ago

weac - v2.5.1

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.5 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

  • Fixed typos
  • Removed inconsistencies

FEATURES

  • Improved documentation πŸ“–

Full Changelog: https://github.com/2phi/weac/commits/v2.5.1

- Python
Published by zacczakk almost 2 years ago

weac - v2.5.0

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.5 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

FEATURES

  • Analyze slab touchdown 🏈 after weak-layer collapse in propagation saw tests (PSTs) by setting touchdown=True at model setup
  • Use weal.tools.touchdown_distance() to calculate the PST cut length at initial contact between slab and base layer after weak-layer collapse and the steady-state touchdown distance during unstable crack propagation.

Full Changelog: https://github.com/2phi/weac/commits/v2.5.0

- Python
Published by zacczakk almost 2 years ago

weac -

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.4 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

  • Fixed Zenodo indexing

FEATURES

  • Choose between slope-normal or vertical PST boundary conditions ('-pst', 'pst-' or '-vpst', 'vpst-', respectively)

Full Changelog: https://github.com/2phi/weac/commits/v2.4.1

- Python
Published by zacczakk about 2 years ago

weac - v2.4.0

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.4 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

  • Fixed data format of energy release rates
  • Added switch for touchdown computations

FEATURES

  • Choose between slope-normal or vertical PST boundary conditions ('-pst', 'pst-' or '-vpst', 'vpst-', respectively)

Full Changelog: https://github.com/2phi/weac/commits/v2.4.0

- Python
Published by zacczakk about 2 years ago

weac - v2.3.2

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.3 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

  • Makes nondimensional density parametrization according to Bergfeld et al. (2023) the default

FEATURES

  • Contour plots of stress and displacement fields on deformed geometries
  • Now accounts for slab touchdown in propagation saw tests

Full Changelog: https://github.com/2phi/weac/commits/v2.3.1

- Python
Published by zacczakk almost 3 years ago

weac - v2.3.1

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.3 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

  • Fixes contour plot axis labels
  • Installing weac now requires Python 🐍 3.10 or newer

FEATURES

  • Contour plots of stress and displacement fields on deformed geometries
  • Now accounts for slab touchdown in propagation saw tests

Full Changelog: https://github.com/2phi/weac/commits/v2.3.1

- Python
Published by zacczakk over 3 years ago

weac - v2.3.0

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.3 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

FEATURES

  • Contour plots of stress and displacement fields on deformed geometries
  • Now accounts for slab touchdown in propagation saw tests

Full Changelog: https://github.com/2phi/weac/commits/v2.3.0

- Python
Published by zacczakk over 3 years ago

weac - v2.2.1

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.2 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

v2.2.1

  • Fixed a bug where end coordinates could mistakenly be identified as unsupported when they were actually supported
  • Fixed a bug where edge cracks could mistakenly be identified as center cracks

FEATURES

  • Sign of inclination phi consistent with the coordinate system (positive counterclockwise)
  • Dimension arguments to field-quantity methods added
  • Improved aspect ratio of profile views and contour plots
  • Improved plot labels
  • Convenience methods for the export of weak-layer stresses and slab deformations
  • Wrapper for (re)calculation of the fundamental system
  • Now allows for distributed surface loads

Full Changelog: https://github.com/2phi/weac/commits/v2.2.1

- Python
Published by 2phi almost 4 years ago

weac - v2.2.0

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.2 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

FEATURES

  • Sign of inclination phi consistent with the coordinate system (positive counterclockwise)
  • Dimension arguments to field-quantity methods added
  • Improved aspect ratio of profile views and contour plots
  • Improved plot labels
  • Convenience methods for the export of weak-layer stresses and slab deformations
  • Wrapper for (re)calculation of the fundamental system
  • Now allows for distributed surface loads

Full Changelog: https://github.com/2phi/weac/commits/v2.2.0

- Python
Published by zacczakk about 4 years ago

weac - v2.1.2

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.1 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

v2.1.2

  • Add wrapper for the (re)calculation of the fundamental system

v2.1.1

  • Make sign of inclination phi consistent with the coordinate system (positive counterclockwise)
  • Add dimension arguments to field-quantity methods
  • Improved aspect ratio of profile views and contour plots
  • Improved plot labels
  • Provide convenience methods for the export of weak-layer stresses and slab deformations

FEATURES

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

Full Changelog: https://github.com/2phi/weac/commits/v2.1.2

- Python
Published by zacczakk about 4 years ago

weac - v2.1.1

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.1 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

v2.1.1

  • Make sign of inclination phi consistent with the coordinate system (positive counterclockwise)
  • Add dimension arguments to field-quantity methods
  • Improved aspect ratio of profile views and contour plots
  • Improved plot labels
  • Provide convenience methods for the export of weak-layer stresses and slab deformations

FEATURES

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

Full Changelog: https://github.com/2phi/weac/commits/v2.1.1

- Python
Published by 2phi about 4 years ago

weac - v2.1.0

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.1 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

FEATURES

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

Full Changelog: https://github.com/2phi/weac/commits/v2.1.0

- Python
Published by 2phi about 4 years ago

weac - v2.0.3

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.0 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

v2.0.3

  • Added automatic version bumping

v2.0.2

  • Fixed PyPI version error

v2.0.1

  • Fixed PyPI publish workflow

FEATURES

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

Full Changelog: https://github.com/2phi/weac/commits/v2.0.3

- Python
Published by 2phi about 4 years ago

weac - v2.0.2

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.0 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

v2.0.2

  • Fixed PyPI version error

v2.0.1

  • Fixed PyPI publish workflow

FEATURES

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

Full Changelog: https://github.com/2phi/weac/commits/v2.0.2

- Python
Published by 2phi about 4 years ago

weac - v2.0.1

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.0 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

BUG FIXES

v2.0.1

  • Fixed PyPI publish workflow

FEATURES

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

Full Changelog: https://github.com/2phi/weac/commits/v2.0.1

- Python
Published by 2phi about 4 years ago

weac - v2.0.0

LAYERED SLABS ON COMPLIANT WEAK LAYERS

WEAC v2.0 provides Python 🐍 implementations of closed-form analytical models for the mechanical analysis of stratified snow covers on compliant weak layers.

FEATURES

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

Full Changelog: https://github.com/2phi/weac/commits/v2.0.0

- Python
Published by 2phi about 4 years ago

weac - v1.0.0

SNOW SLAB AVALANCHE RELEASE

WEAC v1.0.0 provides MATLAB implementations of closed-form analytical models for the mechanical analysis of homogeneous dry-snow slabs on compliant weak layers and the prediction of anticrack onset. Please refer to the companion papers for a full documentation of the model derivation:

  • 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

FEATURES

  • Slab deformation analysis
  • Weak-layer stress prediction
  • Finite fracture mechanics implementation
  • Anticrack nucleation

Full Changelog: https://github.com/2phi/weac/commits/v1.0.0

- Python
Published by 2phi about 4 years ago