Isotropic tensors
The most constrained symmetry class, and the template for every other one: a small closed algebra in which products and inverses are computed on a couple of scalars rather than on TensISO in src/tens_isotropic.jl, in arbitrary dimension
The two projectors
With
Their Frobenius norms are the dimensions of the subspaces they project onto:
In TensND the triple is ISO / iso_projectors, and individually tens_J4, tens_K4, tens_Id4, tens_Id2.
The algebra
Every isotropic minor-symmetric order-4 tensor is
and since
In elasticity TensISO{4} stores exactly the pair TensISO{2} stores the single scalar of
Isotropization
The closest isotropic tensor to an arbitrary
the general-isotropify, and it is the simplest instance of the general machinery of Projection onto a symmetry class: no orientation to optimize, because an isotropic tensor has none.
Isotropization does not commute with inversion
Projecting a stiffness and projecting the corresponding compliance give different isotropic materials. This is not a defect of the implementation but of the Euclidean distance itself, which is not invariant under inversion. Distances that are — log-Euclidean, power-Euclidean, arctan-Euclidean — are constructed and compared in [5]; TensND implements the Euclidean one, so the choice of which of
Relation to the wider classes
Isotropy is the intersection of every other class, so an isotropic tensor satisfies all three predicates:
is_ISO, is_TI and is_ORTHO reflect this — all three return true on fromISO re-expresses an isotropic tensor on the Walpole basis about a chosen axis, and iso_to_ortho on an orthotropic frame; the coefficients that result are computed on Walpole basis and Orthotropy.