Skip to content

Refactor time-integrator storage resolution#47

Merged
pruliere merged 2 commits into
masterfrom
refactor/time_integrator
Jul 9, 2026
Merged

Refactor time-integrator storage resolution#47
pruliere merged 2 commits into
masterfrom
refactor/time_integrator

Conversation

@pruliere

@pruliere pruliere commented Jul 9, 2026

Copy link
Copy Markdown
Collaborator

Summary

This PR refactors transient storage resolution so weak forms expose their own storage providers instead of time integrators inferring storage from implementation-specific material attributes.

Main Changes

  • Add WeakFormBase.get_storage() and get_dissipation() hooks.
  • Update BackwardEuler and GeneralizedAlpha / Newmark to resolve storage through weakform.get_storage().
  • Keep first-order weakforms without storage static under BackwardEuler.
  • Keep second-order mechanical weakforms explicit: missing density still raises a clear error.
  • Move solid inertia resolution into StressEquilibrium.get_storage().
  • Add plate/shell storage through section-level density properties:
    • ShellBase.area_density
    • ShellBase.rotary_density
    • homogeneous shell support
    • laminate shell support
  • Add beam storage through section-level density properties:
    • BeamProperties.linear_density
    • BeamProperties.rotary_density
  • Make GeneralizedAlphaWeakFormSum delegate missing attributes/methods to the wrapped stiffness weakform, preserving APIs such as generalized_strain_operator() after transient wrapping.
  • Add focused tests for storage resolution, explicit storage overrides, missing-density errors, plate/shell inertia, laminate density integration, beam section inertia, and first-order no-storage fallback.

Motivation

Previously GeneralizedAlpha fell back to weakform.constitutivelaw.density, which worked for solid StressEquilibrium but was not general enough for structural weakforms. In particular, plate/shell dynamics need area density and rotary inertia, not raw volumetric density.

This PR moves that responsibility to the weakform/constitutive-law layer, where the correct physical storage terms can be defined per formulation.

@pruliere pruliere merged commit 8acdff5 into master Jul 9, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant