diff --git a/src/domains/continuum/abstract.jl b/src/domains/continuum/abstract.jl index 34ec813..4a84903 100644 --- a/src/domains/continuum/abstract.jl +++ b/src/domains/continuum/abstract.jl @@ -17,27 +17,27 @@ Concrete types are in types.jl, implementations are in theory-specific files. Abstract type for discretization formulations. -**DESIGN PHILOSOPHY: Formulations are DOMAIN-AGNOSTIC dimensionality concepts.** +DESIGN PHILOSOPHY: Formulations are DOMAIN-AGNOSTIC dimensionality concepts. # Key Distinction: Formulation vs Theory -**Formulation** (domain-agnostic): +Formulation (domain-agnostic): - Describes DIMENSIONALITY and geometric simplifications - Used by multiple physics domains - Examples: FullThreeD, Axisymmetric - Can be reused across continuum, heat, acoustics, etc. -**Theory** (domain-specific): +Theory (domain-specific): - Describes PHYSICS assumptions (stress/strain, kinematics) - Only meaningful for one physics domain - Examples: PlaneStress (continuum), Kirchhoff (plates) # Why Separate Them? -**Problem**: Heat transfer needs FullThreeD and Axisymmetric, just like continuum! +Problem: Heat transfer needs FullThreeD and Axisymmetric, just like continuum! If FullThreeD is defined in domains/continuum/, heat can't use it without duplication. -**Solution**: Formulations are dimensionality (shared), theories are physics (domain-specific). +Solution: Formulations are dimensionality (shared), theories are physics (domain-specific). # Examples @@ -49,13 +49,10 @@ Axisymmetric() # Used by: continuum, heat, etc. # Domain-specific theories (in domains/*/types.jl) PlaneStress # domains/continuum/types.jl PlaneStrain # domains/continuum/types.jl -Kirchhoff # domains/plates/types.jl ``` # See Also - Concrete formulation types: `continuum/types.jl` (ContinuumFormulation) -- Formulation implementations: `continuum/formulations.jl` -- Architecture docs: `docs/src/design/formulations_and_theories.md` """ abstract type AbstractFormulation end @@ -64,43 +61,42 @@ abstract type AbstractFormulation end Abstract type for continuum mechanics theories. -**Domain-specific physics assumptions** for solid mechanics. +Domain-specific physics assumptions for solid mechanics. # Theories -**PlaneStress (σ_xx, σ_yy, σ_xy, σ_zz = 0):** +PlaneStress (σ_xx, σ_yy, σ_xy, σ_zz = 0): - Thin plates and membranes (thickness << length/width) - Out-of-plane stress σ_zz = 0 - Examples: Sheet metal, aircraft skin, thin-walled structures -**PlaneStrain (ε_xx, ε_yy, ε_xy, ε_zz = 0):** +PlaneStrain (ε_xx, ε_yy, ε_xy, ε_zz = 0): - Thick sections with no variation in z-direction - Out-of-plane strain ε_zz = 0 - Examples: Dams, tunnels, retaining walls, long cylinders -**FullThreeD:** +FullThreeD: - No simplifications, all six stress/strain components - Most accurate but most expensive -**Axisymmetric:** +Axisymmetric: - Geometry and loading symmetric about z-axis - No circumferential variations (∂/∂θ = 0) - Examples: Pressure vessels, pipes, rotating disks # Mathematical Details -**Plane Stress (thin plate):** +Plane Stress (thin plate): - Stress state: σ_zz = σ_xz = σ_yz = 0 - Strain: ε_zz ≠ 0 (computed from σ_zz = 0 condition) - Constitutive: 3×3 reduced stiffness matrix -**Plane Strain (thick section):** +Plane Strain (thick section): - Strain state: ε_zz = γ_xz = γ_yz = 0 - Stress: σ_zz ≠ 0 (computed from ε_zz = 0 condition) - Constitutive: 3×3 reduced stiffness matrix (different from plane stress!) # See Also - Concrete theories: `continuum/types.jl` (FullThreeD, PlaneStress, PlaneStrain, Axisymmetric) -- Theory implementations: `continuum/formulations.jl` """ abstract type AbstractContinuumTheory end