Isotropic tensors
<!– crosslinks: written by .github/scripts/crosslinks.py from docs/crosslinks.toml; do not edit –>
See also
Theory: The Walpole basis
Manual: Structured tensors · Elastic moduli · Parametrizations and conversions
Tutorials: Elastic Green's functions · The elastic sphere, solved symbolically · A two-point Green tensor between offset frames · Acoustic and Hill tensors
<!– /crosslinks –>
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_projectors / 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 by Morin et al. (2020); TensND implements the Euclidean one, so the choice of which of
Storage
| Storage | Coefficients | Case |
|---|---|---|
TensISO{2,dim,T,1} | ||
TensISO{4,dim,T,2} |
One shape per order, invariant under the whole orthogonal group: an isotropic tensor is its own transpose, and the products and inverses above stay in the shape, so there is no wider one as there is for the transversely isotropic and orthotropic classes.
Relation to the wider classes
Isotropy is the intersection of every other class, so an isotropic tensor satisfies all three predicates:
isisotropic, istransverselyisotropic and isorthotropic reflect this — all three return true on iso_to_ti 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.