Voigt Form
Tensorial.frommandel — Methodfrommandel(S::Type{<: Union{SymmetricSecondOrderTensor, SymmetricFourthOrderTensor}}, A::AbstractArray{T})Create a tensor of type S from Mandel form. This is equivalent to fromvoigt(S, A, offdiagscale = √2).
See also fromvoigt.
Tensorial.fromvoigt — Functionfromvoigt(S::Type{<: Union{SecondOrderTensor, FourthOrderTensor}}, A::AbstractArray{T}; [order])
fromvoigt(S::Type{<: Union{SymmetricSecondOrderTensor, SymmetricFourthOrderTensor}}, A::AbstractArray{T}; [order, offdiagscale])Converts an array A stored in Voigt format to a Tensor of type S.
Keyword arguments:
offdiagscale: Determines the scaling factor for the offdiagonal elements.order: A vector of cartesian indices (Tuple{Int, Int}) determining the Voigt order. The default order is[(1,1), (2,2), (3,3), (2,3), (1,3), (1,2), (3,2), (3,1), (2,1)]fordim=3.
Since offdiagscale is the scaling factor for the offdiagonal elements in Voigt form, they are multiplied by 1/offdiagscale in fromvoigt unlike tovoigt. Thus fromvoigt(tovoigt(x, offdiagscale = 2), offdiagscale = 2) returns original x.
See also tovoigt.
Examples
julia> fromvoigt(Mat{3,3}, 1.0:1.0:9.0)
3×3 Tensor{Tuple{3, 3}, Float64, 2, 9}:
1.0 6.0 5.0
9.0 2.0 4.0
8.0 7.0 3.0
julia> fromvoigt(SymmetricSecondOrderTensor{3},
1.0:1.0:6.0,
offdiagscale = 2.0,
order = [(1,1), (2,2), (3,3), (1,2), (1,3), (2,3)])
3×3 SymmetricSecondOrderTensor{3, Float64, 6}:
1.0 2.0 2.5
2.0 2.0 3.0
2.5 3.0 3.0Tensorial.tomandel — Methodtomandel(A::Union{SymmetricSecondOrderTensor, SymmetricFourthOrderTensor})Convert a tensor to Mandel form which is equivalent to tovoigt(A, offdiagscale = √2).
See also tovoigt.
Tensorial.tovoigt — Functiontovoigt(A::Union{SecondOrderTensor, FourthOrderTensor}; [order])
tovoigt(A::Union{SymmetricSecondOrderTensor, SymmetricFourthOrderTensor}; [order, offdiagonal])Convert a tensor to Voigt form.
Keyword arguments:
offdiagscale: Determines the scaling factor for the offdiagonal elements.order: A vector of cartesian indices (Tuple{Int, Int}) determining the Voigt order. The default order is[(1,1), (2,2), (3,3), (2,3), (1,3), (1,2), (3,2), (3,1), (2,1)]fordim=3.
See also fromvoigt.
Examples
julia> x = Mat{3,3}(1:9...)
3×3 Tensor{Tuple{3, 3}, Int64, 2, 9}:
1 4 7
2 5 8
3 6 9
julia> tovoigt(x)
9-element StaticArraysCore.SVector{9, Int64} with indices SOneTo(9):
1
5
9
8
7
4
6
3
2
julia> x = SymmetricSecondOrderTensor{3}(1:6...)
3×3 SymmetricSecondOrderTensor{3, Int64, 6}:
1 2 3
2 4 5
3 5 6
julia> tovoigt(x; offdiagscale = 2,
order = [(1,1), (2,2), (3,3), (1,2), (1,3), (2,3)])
6-element StaticArraysCore.SVector{6, Int64} with indices SOneTo(6):
1
4
6
4
6
10