refactor(materials): dedupe PerfectPlasticity fourth-order helper

Stop defining `symmetric_identity_tensor` inside `perfect_plasticity.jl` now
that `materials/symmetric_fourth_identity.jl` provides the shared definition.

- Remove `include(\"abstract_material.jl\")`.
- Delete the local `symmetric_identity_tensor` implementation (call sites keep
  resolving against the earlier include in `JuliaFEM.jl`).
This commit is contained in:
Jukka Aho
2026-05-09 17:35:41 +03:00
parent 14f3baf24e
commit 98d08b6bc9
-14
View File
@@ -7,9 +7,6 @@ Classical von Mises plasticity with radial return mapping algorithm.
using Tensors
using LinearAlgebra
# Load abstract types
include("abstract_material.jl")
# PlasticityState struct removed - now using compositional NamedTuple
# State is represented as: (ε_p=SymmetricTensor{2,3}, α=SymmetricTensor{2,3}, κ=Float64)
# This compositional design is inferred automatically from material traits
@@ -163,14 +160,3 @@ function compute_stress(material::PerfectPlasticity,
return σ, 𝔻, state_new
end
"""
symmetric_identity_tensor()
Fourth-order symmetric identity tensor: 𝕀 = ½(δᵢₖδⱼₗ + δᵢₗδⱼₖ)
"""
@inline function symmetric_identity_tensor()
# Construct 4th order identity with major and minor symmetry
return SymmetricTensor{4,3}((i, j, k, l) ->
(i == k && j == l ? 0.5 : 0.0) + (i == l && j == k ? 0.5 : 0.0))
end