mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-09-22 10:48:32 +00:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user