pypi weac 3.2.0
v3.2.0

4 hours ago

Hybrid Steady-State Evaluation, Weak-Layer Split & Analysis Refactor

This release reworks steady-state PST evaluation, splits weak-layer modeling from slab layers, and reorganizes the analysis package. Key improvements include:

  • Hybrid Steady-State Evaluation: Rewrote evaluate_SteadyState as a hybrid of independent critical-cut (tensile ease) and tip-contact / touchdown (ERR) PST configurations, with orientation winners chosen separately for each leg.
  • Analysis Package Split: Extracted steady_state.py, coupled_criterion.py, and envelopes.py from CriteriaEvaluator, keeping evaluate_SteadyState as a thin facade.
  • WeakLayer Component: Split WeakLayer into weac.components.weak_layer, leaving slab layers in Layer.
  • Schöttner E(ρ) Elasticity: Derive weak-layer Young’s modulus from the Schöttner FC&DH density law (E_method="schottner_fc_dh"); lowered weak-layer preset densities to 100/150/200 kg/m³ so named presets stay within the Schöttner ≤250 kg/m³ range.
  • Jamieson & Johnson Tensile Strength: Added tensile_strength_method="jamieson_johnson" (now the default) for slab tensile strength.
  • Coupled-Criterion & Rasterization Refinements: Denser sampling near segment boundaries; improved CC search (damping, max iterations, reuse of min-force / x-coords).
  • Surface-Load Stress Fix: Pointwise stress evaluation now passes surface_load (qs) so CC envelope root-finding agrees with rasterize_solution when surface_load != 0.

⚠️ Breaking changes

  • CriteriaEvaluator.evaluate_SteadyState inputs/outputs differ from the previous flat result shape. Tensile and ERR now live under nested blocks (SteadyStateResult.tensile / .err).

🛠️ Code Maintenance

  • Test Suite Migration: Migrated from unittest to pytest (CI + pyproject.toml); removed the legacy test runner.
  • Version Bump: Formalized the transition to v3.2.0 across project metadata (pyproject.toml, CITATION.cff, and uv.lock).
  • Linting: Applied ruff formatting across the analysis and component modules.

🧪 Testing

Added dedicated coverage for hybrid steady-state / critical-cut–touchdown workflows, denser boundary rasterization, Jamieson–Johnson tensile strength, and nonzero surface-load stress consistency.

📦 Pull Requests Included

  • PR #54: Feat/Split WL and Layer + Feat/Add Schöttner E(ρ) elasticity + Chore/Test Suite to Pytest
  • PR #56: Feat/hybrid steady-state evaluation and analysis package split (v3.2.0)
  • PR #55: Fix/pass surface_load in pointwise stress evaluation

Full Changelog: v3.1.9...v3.2.0

Don't miss a new weac release

NewReleases is sending notifications on new releases.