From c84ad4e228fc2513bcc33b367506705004859cac Mon Sep 17 00:00:00 2001 From: Jukka Aho Date: Wed, 19 Nov 2025 10:03:45 +0200 Subject: [PATCH] feat(materials): Declare LinearElastic as StatelessConstantTangent - Add material_behavior(::LinearElastic) = StatelessConstantTangent() - Enables generic integration to optimize constant tangent case - Single line trait declaration, zero code duplication - Integration computes tangent once and reuses for all IPs --- src/materials/linear_elastic.jl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/materials/linear_elastic.jl b/src/materials/linear_elastic.jl index 80cf68c..6a58875 100644 --- a/src/materials/linear_elastic.jl +++ b/src/materials/linear_elastic.jl @@ -68,6 +68,9 @@ steel = LinearElastic(E=200e9, ν=0.3) """ LinearElastic(; E, ν) = LinearElastic(Float64(E), Float64(ν)) +# Trait declaration: LinearElastic has constant tangent modulus +material_behavior(::LinearElastic) = StatelessConstantTangent() + """ λ(material::LinearElastic) -> Float64