Skip to content

Orthotropy ​

<!– crosslinks: written by .github/scripts/crosslinks.py from docs/crosslinks.toml; do not edit –>

<!– /crosslinks –>

Orthotropy is invariance under the reflections through three mutually orthogonal planes. It is the least constrained class TensND gives a dedicated storage type (TensOrtho, src/tens_anisotropic.jl): nine constants plus a material frame, against 21 for a general minor- and major-symmetric tensor, or twelve constants for an orthotropic tensor without major symmetry.

The coefficients ​

Let be the orthonormal material frame and    the associated projectors. Then

Block-diagonal in the material frame ​

The whole point of the class is that in its own frame the Kelvin–Mandel matrix splits:

Extension and shear decouple entirely. This is mandel_material; the matrix in the canonical frame is mandel, and the two are related by the orthogonal congruence of Kelvin–Mandel representation,

with built from the frame vectors directly (_km_congruence), without going through Euler angles. Because the two blocks never mix, the closed-form inverse is one   inverse plus three reciprocals, and the closed-form double contraction one   product plus three scalar products — instead of two dense 81-component expansions.

Major symmetry and storage ​

with the normal   block, its entry in row (stress) and column (strain), the coefficient of  . A major-symmetric orthotropic tensor therefore needs nine constants, a general one twelve:

StorageCoefficientsCase
TensOrtho{4,T,9}major-symmetric,  
TensOrtho{4,T,12}the nine, then general

The widening is not cosmetic: the product of two major-symmetric orthotropic tensors is generally not major-symmetric, because     unless the two blocks commute, so TensOrtho{4,T,9} ⊡ TensOrtho{4,T,9} returns an N=12 container, as TensTI{4,T,5} ⊡ TensTI{4,T,5} returns N=6 (The Walpole basis). The cause is the same in both classes: the major-symmetric tensors of a class do not form a subalgebra, only the class itself does. The twelve-constant tensors of a frame do: products and inverses act on the blocks,

and the transpose transposes . Writing   , a twelve-constant tensor is its symmetric part plus

a skew part orthogonal to every major-symmetric tensor: the orthogonal projection onto the nine-constant class is the major-symmetric part (Tensors.majorsymmetric).

Cubic symmetry is the exception that shows what is really at stake. There each irreducible representation of the group appears with multiplicity one, so the commutant is spanned by three mutually orthogonal projectors, any two cubic tensors about the same cube commute, and the product stays in the class and stays major-symmetric. Orthotropy fails on both counts for the same reason: its   block is a two-dimensional family of representations, not three one-dimensional ones.

When the two operands are expressed in different material frames the product is generally fully anisotropic, and the implementation falls back to the generic route bit for bit. A transversely isotropic operand whose axis is one of the frame axes is orthotropic on that frame, and its product with an orthotropic tensor stays in the twelve-constant form.

No chiral shape ​

Transverse isotropy has two families of shapes: those invariant under the full group (rotations about and the mirrors), and the larger ones invariant under the rotations only, which hold the terms odd in (The extended Walpole algebra). Orthotropy has no such pair. Its group is the rotation group (the half-turns about the three frame axes) times the inversion , and the inversion acts on a tensor of order as  , trivially at even order: and have the same invariant tensors of order 2 and 4, and the shapes above are the whole family. The test suite checks it by averaging tensors over both groups.

Where the classes sit ​

Each arrow is an exact re-expression, not an approximation: an isotropic tensor really is transversely isotropic about every axis, and a transversely isotropic one really is orthotropic in any frame containing its axis. The converse direction — pushing an arbitrary tensor down the chain — is approximation, and is the subject of Projection onto a symmetry class.

The promotions are implemented in src/structured_tens_promotion.jl and are what allow mixed-class arithmetic (TensISO ⊡ TensOrtho, TensTI{2} ⊡ TensTI{4}) to stay in closed form.

Order-2 orthotropy ​

The same construction one order down: an orthotropic order-2 tensor is

three coefficients and a frame, stored as TensOrtho{2,T,3}. A second-order tensor invariant under the three mirror planes is necessarily diagonal in the frame, hence symmetric: there is no general order-2 shape, unlike the skew   of transverse isotropy under . Products and inverses are termwise, since the are complementary orthogonal projectors, and the tensor is isotropic exactly when   . With an order-4 tensor on the same frame the double contraction is the normal block acting on the coefficients,

the shear terms vanishing on a diagonal tensor, and the tensor product   has the normal block   and no shear: twelve constants, nine for  . Every symmetric order-2 tensor is orthotropic in its own eigenframe, which is why order-2 orthotropy is never an interesting hypothesis, only a useful representation; the projection at fixed frame keeps the diagonal and returns a TensOrtho{2}, as Projection onto a symmetry class makes explicit.