Structured tensors — isotropic
Compact storage for isotropic tensors, in arbitrary dimension. Theory: Isotropic tensors; usage: Structured tensors.
TensND.TensISO Type
TensISO{order,dim,T,N}Isotropic tensor stored as N scalars instead of dim^order components, in arbitrary dimension.
| Parametrization | Role | Invariance group | Stored coefficients |
|---|---|---|---|
TensISO{2, dim, T, 1} | 2nd-order isotropic | O(dim) | data = (λ,): λ 𝟏 |
TensISO{4, dim, T, 2} | 4th-order isotropic | O(dim) | data = (α, β): α 𝕁 + β 𝕂 |
with 𝕁 = (𝟏⊗𝟏)/dim the spherical projector and 𝕂 = 𝕀 − 𝕁 the deviatoric one. In 3-D elasticity α = 3k and β = 2μ.
Because 𝕁 and 𝕂 are complementary orthogonal projectors, the algebra is that of a pair of independent scalars: products multiply them termwise and inverses take their reciprocals, both in closed form and both staying in the type; an isotropic tensor is its own transpose and major-symmetric. It has no orientation, so it needs none stored. As TensTI and TensOrtho, the type carries its order and number of coefficients.
Constructors
TensISO{dim}(λ) and TensISO{dim}(α, β), plus the named ones tens_Id2, tens_Id4, tens_J4, tens_K4, and iso_projectors.
Examples
julia> ℂ = TensISO{3}(3 * 20.0, 2 * 8.0);
julia> get_data(inv(ℂ))
(0.016666666666666666, 0.0625)
julia> typeof(inv(ℂ)) === typeof(ℂ)
trueSee also Isotropic tensors, Structured tensors.
TensND.tens_Id2 Function
tens_Id2(::Val{dim}, ::Val{T}) where {dim,T<:Number}Identity tensor of second order 𝟏ᵢⱼ = δᵢⱼ = 1 if i=j otherwise 0
Examples
julia> 𝟏 = t𝟏() ; mandel(𝟏)
6-element Vector{Sym}:
1
1
1
0
0
0
julia> 𝟏.data
3×3 SymmetricTensor{2, 3, Sym, 6}:
1 0 0
0 1 0
0 0 1TensND.tens_Id4 Function
tens_Id4(::Val{dim} = Val(3), ::Val{T} = Val(Sym))Symmetric identity tensor of fourth order 𝕀 = 𝟏 ⊠ˢ 𝟏 i.e. (𝕀)ᵢⱼₖₗ = (δᵢₖδⱼₗ+δᵢₗδⱼₖ)/2
Examples
julia> 𝕀 = t𝕀() ; mandel(𝕀)
6×6 Matrix{Sym}:
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1TensND.tens_J4 Function
tens_J4(::Val{dim} = Val(3), ::Val{T} = Val(Sym))Spherical projector of fourth order 𝕁 = (𝟏 ⊗ 𝟏) / dim i.e. (𝕁)ᵢⱼₖₗ = δᵢⱼδₖₗ/dim
Examples
julia> 𝕁 = t𝕁() ; mandel(𝕁)
6×6 Matrix{Sym}:
1/3 1/3 1/3 0 0 0
1/3 1/3 1/3 0 0 0
1/3 1/3 1/3 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0TensND.tens_K4 Function
tens_K4(::Val{dim} = Val(3), ::Val{T} = Val(Sym))Deviatoric projector of fourth order 𝕂 = 𝕀 - 𝕁 i.e. (𝕂)ᵢⱼₖₗ = (δᵢₖδⱼₗ+δᵢₗδⱼₖ)/2 - δᵢⱼδₖₗ/dim
Examples
julia> 𝕂 = t𝕂() ; mandel(𝕂)
6×6 Matrix{Sym}:
2/3 -1/3 -1/3 0 0 0
-1/3 2/3 -1/3 0 0 0
-1/3 -1/3 2/3 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1TensND.iso_projectors Function
iso_projectors(::Val{dim} = Val(3), ::Val{T} = Val(Sym))Return the three fourth-order isotropic tensors (𝕀, 𝕁, 𝕂) — the symmetric identity, spherical projector, and deviatoric projector. Any isotropic 4th-order tensor can be written as α·𝕁 + β·𝕂.
Examples
julia> 𝕀, 𝕁, 𝕂 = iso_projectors();
julia> 𝕁 + 𝕂 == 𝕀
trueBlocks of a symmetry class
The small matrices whose products and inverses are those of the tensors of a class; usage on Blocks: a class as a sum of small matrices.
TensND.symmetry_blocks Function
symmetry_blocks(A) -> Tuple of SMatrixThe blocks of A in the matrix algebra of its symmetry class: the small matrices whose products and inverses, block by block, are those of the tensors,
| class | order 4 | order 2 |
|---|---|---|
TensISO | ||
TensCubic | — | |
TensTI | ||
TensOrtho | the normal |
The frame (axis, material frame) is not part of the blocks: from_symmetry_blocks takes it from a tensor of the class.
julia> A = TensTI{4}(4.0, 3.0, 1.0, 1.0, 2.0, 5.0, (0.0, 0.0, 1.0));
julia> symmetry_blocks(A)[1]
2×2 StaticArraysCore.SMatrix{2, 2, Float64, 4} with indices SOneTo(2)×SOneTo(2):
4.0 1.0
1.0 3.0symmetry_blocks(A, M::AbstractMatrix) -> Tuple of SMatrixThe blocks, in the class and frame of A, of the matrix M: a M belongs to the class, symmetry_matrix(A, symmetry_blocks(A, M)) ≈ M, and the blocks are those of the tensor M stands for.
TensND.from_symmetry_blocks Function
from_symmetry_blocks(A, blocks) -> AbstractTensThe tensor of the class and frame of A whose blocks are blocks: the inverse of symmetry_blocks. A product of two symmetric tensors of a class need not be symmetric, so a transversely isotropic or orthotropic result takes the general shape of its class (six Walpole coefficients, twelve orthotropic constants).
TensND.symmetry_basis Function
symmetry_basis(A) -> SMatrixThe orthonormal basis, as columns, in which the matrix of a member of the class and frame of A is block diagonal: Kelvin-Mandel vectors (symmetry_blocks sits on the diagonal of symmetry_layout lists, once per copy.
| class | columns (in the material frame) |
|---|---|
| ISO, CUBIC | the spherical direction, the two normal deviators, the three shears |
| TI about | axial, transverse spherical, the two in-plane deviators, the two out-of-plane shears |
| ORTHO | the frame's normal and shear directions |
TensND.symmetry_layout Function
symmetry_layout(A) -> TupleFor each block of symmetry_blocks(A), the index sets of its copies on the diagonal of symmetry_basis(A): the isotropic shear modulus
TensND.symmetry_matrix Function
symmetry_matrix(A, blocks) -> SMatrixThe matrix (Kelvin-Mandel at order 4, of components at order 2, in the canonical basis) of the member of the class and frame of A whose blocks are blocks: the inverse of symmetry_blocks(A, M) on the class.
Isotropic elastic moduli
The stiffness and the compliance from any pair of the six moduli, every modulus read from either (role = :stiffness or :compliance), and plane strain and plane stress are explained on Elastic moduli.
TensND.iso_stiffness Function
iso_stiffness(k, μ) → TensISO{4,3}
iso_stiffness(Val(dim), k, μ) → TensISO{4,dim}Isotropic stiffness k and the shear modulus μ, in dimension k is the in-plane bulk modulus bulk_shear. The compliance is iso_compliance(k, μ).
iso_stiffness_bulk_shear, iso_stiffness_k_mu and iso_stiffness_k_μ are the same function. The stiffness from any other pair of moduli is iso_stiffness_<pair>: see iso_stiffness_young_poisson.
TensND.iso_stiffness_bulk_young Function
iso_stiffness_bulk_young(a, b) → TensISO{4,3}
iso_stiffness_bulk_young(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its bulk and young moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_bulk_lame Function
iso_stiffness_bulk_lame(a, b) → TensISO{4,3}
iso_stiffness_bulk_lame(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its bulk and lame moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_bulk_poisson Function
iso_stiffness_bulk_poisson(a, b) → TensISO{4,3}
iso_stiffness_bulk_poisson(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its bulk and poisson moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_bulk_pwave Function
iso_stiffness_bulk_pwave(a, b) → TensISO{4,3}
iso_stiffness_bulk_pwave(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its bulk and pwave moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_young_lame Function
iso_stiffness_young_lame(a, b) → TensISO{4,3}
iso_stiffness_young_lame(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its young and lame moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_young_shear Function
iso_stiffness_young_shear(a, b) → TensISO{4,3}
iso_stiffness_young_shear(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its young and shear moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_young_poisson Function
iso_stiffness_young_poisson(E, ν) → TensISO{4,3}
iso_stiffness_young_poisson(Val(dim), E, ν) → TensISO{4,dim}Isotropic stiffness from Young's modulus and Poisson's ratio, young_poisson. With Val(2), the plane-strain stiffness of that material.
The stiffness is built in the same way from any pair of the six moduli, named in the order bulk k, Young E, Lamé λ, shear μ, Poisson ν, P-wave M, and the compliance likewise by iso_compliance_<pair>, written directly (
| pair | stiffness | compliance | aliases (iso_stiffness_ or iso_compliance_ then) |
|---|---|---|---|
iso_stiffness_bulk_young | iso_compliance_bulk_young | k_E | |
iso_stiffness_bulk_lame | iso_compliance_bulk_lame | k_lambda, k_λ | |
iso_stiffness, iso_stiffness_bulk_shear | iso_compliance, iso_compliance_bulk_shear | k_mu, k_μ | |
iso_stiffness_bulk_poisson | iso_compliance_bulk_poisson | k_nu, k_ν | |
iso_stiffness_bulk_pwave | iso_compliance_bulk_pwave | ||
iso_stiffness_young_lame | iso_compliance_young_lame | E_lambda, E_λ | |
iso_stiffness_young_shear | iso_compliance_young_shear | E_mu, E_μ | |
iso_stiffness_young_poisson | iso_compliance_young_poisson | E_nu, E_ν | |
iso_stiffness_young_pwave | iso_compliance_young_pwave | ||
iso_stiffness_lame_shear | iso_compliance_lame_shear | lambda_mu, λ_μ | |
iso_stiffness_lame_poisson | iso_compliance_lame_poisson | lambda_nu, λ_ν | |
iso_stiffness_lame_pwave | iso_compliance_lame_pwave | ||
iso_stiffness_shear_poisson | iso_compliance_shear_poisson | mu_nu, μ_ν | |
iso_stiffness_shear_pwave | iso_compliance_shear_pwave | ||
iso_stiffness_poisson_pwave | iso_compliance_poisson_pwave |
The pair Val(2) or Val(3). The pairs with the P-wave modulus have no short alias: k_M or μ_M already name the moduli of a matrix in MeanFieldHomogenization.
Two conversions solve a quadratic. From
TensND.iso_stiffness_young_pwave Function
iso_stiffness_young_pwave(a, b) → TensISO{4,3}
iso_stiffness_young_pwave(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its young and pwave moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_lame_shear Function
iso_stiffness_lame_shear(a, b) → TensISO{4,3}
iso_stiffness_lame_shear(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its lame and shear moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_lame_poisson Function
iso_stiffness_lame_poisson(a, b) → TensISO{4,3}
iso_stiffness_lame_poisson(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its lame and poisson moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_lame_pwave Function
iso_stiffness_lame_pwave(a, b) → TensISO{4,3}
iso_stiffness_lame_pwave(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its lame and pwave moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_shear_poisson Function
iso_stiffness_shear_poisson(a, b) → TensISO{4,3}
iso_stiffness_shear_poisson(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its shear and poisson moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_shear_pwave Function
iso_stiffness_shear_pwave(a, b) → TensISO{4,3}
iso_stiffness_shear_pwave(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its shear and pwave moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_stiffness_poisson_pwave Function
iso_stiffness_poisson_pwave(a, b) → TensISO{4,3}
iso_stiffness_poisson_pwave(Val(dim), a, b) → TensISO{4,dim}Isotropic stiffness from its poisson and pwave moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance Function
iso_compliance(k, μ) → TensISO{4,3}
iso_compliance(Val(dim), k, μ) → TensISO{4,dim}Isotropic compliance k (in 2-D, the in-plane μ, written directly, without an inverse: the inverse of iso_stiffness(k, μ).
iso_compliance_bulk_shear, iso_compliance_k_mu and iso_compliance_k_μ are the same function. The compliance from any other pair of moduli is iso_compliance_<pair>: see iso_stiffness_young_poisson for the table.
TensND.iso_compliance_bulk_young Function
iso_compliance_bulk_young(a, b) → TensISO{4,3}
iso_compliance_bulk_young(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its bulk and young moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_bulk_lame Function
iso_compliance_bulk_lame(a, b) → TensISO{4,3}
iso_compliance_bulk_lame(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its bulk and lame moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_bulk_poisson Function
iso_compliance_bulk_poisson(a, b) → TensISO{4,3}
iso_compliance_bulk_poisson(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its bulk and poisson moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_bulk_pwave Function
iso_compliance_bulk_pwave(a, b) → TensISO{4,3}
iso_compliance_bulk_pwave(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its bulk and pwave moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_young_lame Function
iso_compliance_young_lame(a, b) → TensISO{4,3}
iso_compliance_young_lame(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its young and lame moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_young_shear Function
iso_compliance_young_shear(a, b) → TensISO{4,3}
iso_compliance_young_shear(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its young and shear moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_young_poisson Function
iso_compliance_young_poisson(E, ν) → TensISO{4,3}
iso_compliance_young_poisson(Val(dim), E, ν) → TensISO{4,dim}Isotropic compliance from Young's modulus and Poisson's ratio, written directly: Val(2), the compliance of the plane-strain stiffness of that material. The inverse of iso_stiffness_young_poisson, whose docstring gives the table of every pair. iso_compliance_E_nu and iso_compliance_E_ν are the same function.
TensND.iso_compliance_young_pwave Function
iso_compliance_young_pwave(a, b) → TensISO{4,3}
iso_compliance_young_pwave(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its young and pwave moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_lame_shear Function
iso_compliance_lame_shear(a, b) → TensISO{4,3}
iso_compliance_lame_shear(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its lame and shear moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_lame_poisson Function
iso_compliance_lame_poisson(a, b) → TensISO{4,3}
iso_compliance_lame_poisson(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its lame and poisson moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_lame_pwave Function
iso_compliance_lame_pwave(a, b) → TensISO{4,3}
iso_compliance_lame_pwave(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its lame and pwave moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_shear_poisson Function
iso_compliance_shear_poisson(a, b) → TensISO{4,3}
iso_compliance_shear_poisson(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its shear and poisson moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_shear_pwave Function
iso_compliance_shear_pwave(a, b) → TensISO{4,3}
iso_compliance_shear_pwave(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its shear and pwave moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.iso_compliance_poisson_pwave Function
iso_compliance_poisson_pwave(a, b) → TensISO{4,3}
iso_compliance_poisson_pwave(Val(dim), a, b) → TensISO{4,dim}Isotropic compliance from its poisson and pwave moduli (Poisson's ratio for poisson, Lamé's first parameter for lame), in 3-D or, with Val(2), in plane strain. See iso_stiffness_young_poisson for the table of the pairs and their conventions.
TensND.lame_lambda Function
lame_lambda(t::TensISO{4,dim}; role = :stiffness)Lamé's first parameter role = :compliance, of the material whose compliance is t; in 2-D, that of the 3-D material whose plane-strain stiffness (or compliance) is t.
Each modulus has its reader, which computes that modulus alone, from the two coefficients of t on bulk_modulus (in 2-D, the in-plane young_modulus, lame_lambda, shear_modulus, poisson_ratio, pwave_modulus (
Each pair has one too, named as its builder without iso_stiffness_ (bulk_shear, young_poisson, lame_shear, young_pwave, …), with the same aliases (k_mu, E_nu, λ_μ, …), the same role keyword, and the two moduli of its readers: the conversion of a pair of moduli to another is young_shear(iso_stiffness_lame_poisson(λ, ν)).
TensND.bulk_modulus Function
The bulk modulus of an isotropic stiffness, in 2-D the in-plane one role = :compliance; see lame_lambda.
TensND.young_modulus Function
Young's modulus of an isotropic stiffness, or of a compliance with role = :compliance; see lame_lambda.
TensND.shear_modulus Function
The shear modulus of an isotropic stiffness, or of a compliance with role = :compliance; see lame_lambda.
TensND.poisson_ratio Function
poisson_ratio(k, μ) → νPoisson's ratio of a 3-D isotropic material from its bulk and shear moduli, lame_lambda.
TensND.pwave_modulus Function
The P-wave (oedometric) modulus role = :compliance; see lame_lambda.
TensND.bulk_young Function
bulk_young(t::TensISO{4}; role = :stiffness) → (bulk, young)The bulk and young moduli of an isotropic stiffness, or of a compliance with role = :compliance (bulk_modulus(t; role), young_modulus(t; role)); see lame_lambda for the conventions.
TensND.bulk_lame Function
bulk_lame(t::TensISO{4}; role = :stiffness) → (bulk, lame)The bulk and lame moduli of an isotropic stiffness, or of a compliance with role = :compliance (bulk_modulus(t; role), lame_lambda(t; role)); see lame_lambda for the conventions.
TensND.bulk_shear Function
bulk_shear(t::TensISO{4,dim}; role = :stiffness) → (k, μ)Bulk and shear moduli of an isotropic stiffness role = :compliance: TensISO, take its isotropic part first: isotropify (the exact rotation average) or best_fit_iso (the closest isotropic tensor).
k_mu and k_μ are the same function, under the symbols of the moduli.
TensND.bulk_poisson Function
bulk_poisson(t::TensISO{4}; role = :stiffness) → (bulk, poisson)The bulk and poisson moduli of an isotropic stiffness, or of a compliance with role = :compliance (bulk_modulus(t; role), poisson_ratio(t; role)); see lame_lambda for the conventions.
TensND.bulk_pwave Function
bulk_pwave(t::TensISO{4}; role = :stiffness) → (bulk, pwave)The bulk and pwave moduli of an isotropic stiffness, or of a compliance with role = :compliance (bulk_modulus(t; role), pwave_modulus(t; role)); see lame_lambda for the conventions.
TensND.young_lame Function
young_lame(t::TensISO{4}; role = :stiffness) → (young, lame)The young and lame moduli of an isotropic stiffness, or of a compliance with role = :compliance (young_modulus(t; role), lame_lambda(t; role)); see lame_lambda for the conventions.
TensND.young_shear Function
young_shear(t::TensISO{4}; role = :stiffness) → (young, shear)The young and shear moduli of an isotropic stiffness, or of a compliance with role = :compliance (young_modulus(t; role), shear_modulus(t; role)); see lame_lambda for the conventions.
TensND.young_poisson Function
young_poisson(t::TensISO{4,dim}; role = :stiffness) → (E, ν)Young's modulus and Poisson's ratio of an isotropic stiffness, or of a compliance with role = :compliance. In 3-D, poisson_ratio(k, μ) on a stiffness, t: on
See also bulk_shear, shear_poisson, iso_stiffness_young_poisson, and lame_lambda for every other modulus and pair.
E_nu and E_ν are the same function, under the symbols of the moduli.
TensND.young_pwave Function
young_pwave(t::TensISO{4}; role = :stiffness) → (young, pwave)The young and pwave moduli of an isotropic stiffness, or of a compliance with role = :compliance (young_modulus(t; role), pwave_modulus(t; role)); see lame_lambda for the conventions.
TensND.lame_shear Function
lame_shear(t::TensISO{4}; role = :stiffness) → (lame, shear)The lame and shear moduli of an isotropic stiffness, or of a compliance with role = :compliance (lame_lambda(t; role), shear_modulus(t; role)); see lame_lambda for the conventions.
TensND.lame_poisson Function
lame_poisson(t::TensISO{4}; role = :stiffness) → (lame, poisson)The lame and poisson moduli of an isotropic stiffness, or of a compliance with role = :compliance (lame_lambda(t; role), poisson_ratio(t; role)); see lame_lambda for the conventions.
TensND.lame_pwave Function
lame_pwave(t::TensISO{4}; role = :stiffness) → (lame, pwave)The lame and pwave moduli of an isotropic stiffness, or of a compliance with role = :compliance (lame_lambda(t; role), pwave_modulus(t; role)); see lame_lambda for the conventions.
TensND.shear_poisson Function
shear_poisson(t::TensISO{4,dim}; role = :stiffness) → (μ, ν)Shear modulus and Poisson's ratio of an isotropic stiffness, or of a compliance with role = :compliance, the pair the Kelvin and plane-strain Green functions are written with; in 2-D, t (see young_poisson).
mu_nu and μ_ν are the same function, under the symbols of the moduli.
TensND.shear_pwave Function
shear_pwave(t::TensISO{4}; role = :stiffness) → (shear, pwave)The shear and pwave moduli of an isotropic stiffness, or of a compliance with role = :compliance (shear_modulus(t; role), pwave_modulus(t; role)); see lame_lambda for the conventions.
TensND.poisson_pwave Function
poisson_pwave(t::TensISO{4}; role = :stiffness) → (poisson, pwave)The poisson and pwave moduli of an isotropic stiffness, or of a compliance with role = :compliance (poisson_ratio(t; role), pwave_modulus(t; role)); see lame_lambda for the conventions.
TensND.plane_strain_stiffness Function
plane_strain_stiffness(ℂ::TensISO{4,3}) → TensISO{4,2}The in-plane stiffness of an isotropic material under plane strain (TensISO{4,2} here: its young_poisson are those of ℂ.
See also plane_stress_stiffness.
TensND.plane_stress_stiffness Function
plane_stress_stiffness(ℂ::TensISO{4,3}) → TensISO{4,2}The in-plane stiffness of an isotropic material under plane stress (TensISO{4,2} is, its moduli are plane_stress_to_plane_strain(E, ν).
See also plane_strain_stiffness.
TensND.plane_stress_to_plane_strain Function
plane_stress_to_plane_strain(E, ν) → (E′, ν′)The moduli with which a plane-strain computation reproduces a plane-stress state of the material plane_strain_to_plane_stress is the reciprocal.
TensND.plane_strain_to_plane_stress Function
plane_strain_to_plane_stress(E, ν) → (E′, ν′)The moduli with which a plane-stress computation reproduces a plane-strain state of the material plane_stress_to_plane_strain.
isotropify is the exact rotation-group average, not a form of compact storage, so it is documented with the other averages under Exact rotation-group averages.