LinearElasticity
This module implements a Galerkin discretization of linear elastic problems.

./examples/linearelasticity/hole_in_a_plate_3d.jl
Index
Taiga.FastDiagonalization — Method
Taiga.FastDiagonalization(model::Model{Dim, T}; method::Type{<:DataApproximationMethod} = Wachspress, kwargs)Computes a block diagonal fast diagonalization preconditioner for Model.
Arguments:
model:Modelmodel definitionmethod: method for data approximationkwargs: optional keyword arguments
Taiga.LinearElasticity.BMatrix — Type
BMatrix{Dim, F}Struct holding B-matrices (strain-displacement matrices). Supports linear indexing.
Taiga.LinearElasticity.BenchmarkSolution — Type
BenchmarkSolutionStruct holding displacement and stress mappings for benchmark problems.
Fields:
displacement::Function: displacement vector as a function of physical coordinatesstress::Function: stress tensor as a function of physical coordinates
Taiga.LinearElasticity.CauchyStress — Type
CauchyStress{Dim, T <: Strain{Dim}} <: AbstractMapping{Dim,Dim,Dim}Mapping for evaluation of Cauchy stress:
$\boldsymbol \sigma = \mathbf C : \boldsymbol \varepsilon$.
Fields:
Taiga.LinearElasticity.Isotropic — Type
Isotropic <: Material{3,6}Isotropic material.
Fields:
E::Function: Young's modulusν::Function: Poisson's ratio
Taiga.LinearElasticity.LinearOperator — Type
LinearOperator{Dim, T} <: Taiga.LinearOperator{Dim,T}Linear operator for linear elastic models.
Fields:
C::SparseMatrixCSC{T}: sparse extraction operatorK::SparseMatrixCSC{T}: sparse stiffness matrix without constraintsL::SparseMatrixCSC{T}: sparse stiffness matrix including constraintsb::Vector{T}: load vector
Taiga.LinearElasticity.Material — Type
abstract type Material{Dim,S} <: AbstractMapping{Dim,S,S} endAll linear elastic materials derive from this. Materials are mappings in Dim × S × S.
Taiga.LinearElasticity.Model — Type
Model{Dim, T, M <: GeometricMapping{Dim}, V <: VectorSplineSpace{Dim, T}, W <: Field{Dim}, U <: Material{Dim}} <: Taiga.Model{Dim,T}Linear elastic model.
Fields:
F::M: geometric mappingS::V: test and trial spaceΔ::Partition{Dim, T}: partitionuʰ::W: solution fieldūʰ::W: field compatible with boundary conditionst::Function: tractionmaterial::U: material
Taiga.LinearElasticity.Orthotropic — Type
Orthotropic <: Material{3,6}Orthotropic material.
Fields:
E₁::Function: Young's modulusE₂::Function: Young's modulusE₃::Function: Young's modulusν₂₃::Function: Poisson's ratioν₃₂::Function: Poisson's ratioν₁₃::Function: Poisson's ratioν₃₁::Function: Poisson's ratioν₁₂::Function: Poisson's ratioν₂₁::Function: Poisson's ratioG₂₃::Function: Shear modulusG₁₃::Function: Shear modulusG₁₂::Function: Shear modulus
Taiga.LinearElasticity.PlaneStrain — Type
PlaneStrain <: Material{2,3}Plane strain material.
Fields:
E::Function: Young's modulusν::Function: Poisson's ratio
Taiga.LinearElasticity.PlaneStress — Type
PlaneStress <: Material{2,3}Plane stress material.
Fields:
E::Function: Young's modulusν::Function: Poisson's ratio
Taiga.LinearElasticity.PullbackBilinearForm — Type
PullbackBilinearForm{Dim, T1 <: GeometricMapping{Dim}, T2 <: Material{Dim}}Pullback of the bilinear form.
Fields:
mapping::T1: geometric mappingmaterial::T2: materialB::BMatrix{Dim}: B-matrices.
Taiga.LinearElasticity.PullbackBoundaryLinearForm — Type
PullbackBoundaryLinearForm{Dim, S}Pullback of the linear form on the boundary. The parameter 1 ≤ S ≤ 2Dim denotes the coressponding boundary face.
Fields:
mapping::GeometricMapping{Dim}: geometric mappingtraction::Function: traction tensor as a function of physical coordinates
Taiga.LinearElasticity.Strain — Type
Strain{Dim, T1 <: GeometricMapping{Dim}, T2 <: Field{Dim, Dim}} <: AbstractMapping{Dim,Dim,Dim}Mapping for evaluation of strain:
$\boldsymbol \varepsilon = \frac 1 2 (\nabla \mathbf u + \nabla \mathbf u^T)$.
Fields:
mapping::T1: geometric mappingdisplacement::T2: displacement field
Taiga.LinearElasticity.VonMisesStress — Type
VonMisesStress{Dim, T <: CauchyStress{Dim}}Mapping for evaluation of von Mises stress.
\[\begin{aligned} \mathbf{s} &= \boldsymbol{\sigma} - \frac{1}{2} \mathrm{tr}(\boldsymbol{\sigma}) \mathbf{I} \\ J_2 &= \mathbf{s} : \mathbf{s}) \\ \boldsymbol{\sigma}_{\mathrm{vM}} &= \sqrt{3 J_2} \end{aligned}\]
Fields:
stress::T:CauchyStress
SparseArrays.sparse — Method
SparseArrays.sparse(L::LinearOperator)Get sparse linear operator.
Taiga.LinearElasticity.assemble_matrix — Method
assemble_matrix(acc::ElementAccessor{Dim}, partition::Partition{Dim}, pullback::PullbackBilinearForm{Dim}; show_progress::Bool = true)Assemble stiffness matrix.
Arguments:
acc: element accessorpartition: partitionpullback: pullback of bilinear formshow_progress: boolean flag for formation progress bar
Taiga.LinearElasticity.assemble_vector — Method
assemble_vector(acc::ElementAccessor{Dim}, partition::Partition{Dim}, pullbacks::NTuple{N, PullbackBoundaryLinearForm})Assemble forcing vector.
Arguments:
acc: element accessorpartition: partitionpullbacks: tuple of pullbacks of the linear form on each of the boundaries
Taiga.LinearElasticity.benchmark_hole_in_plate_2d — Method
benchmark_hole_in_plate_2d(; E, ν)Hole in a plate benchmark in two dimensions.
Taiga.LinearElasticity.benchmark_hole_in_plate_3d — Method
benchmark_hole_in_plate_3d(; E, ν)Hole in a plate benchmark in three dimensions.
Taiga.LinearElasticity.benchmark_spherical_cavity — Method
benchmark_spherical_cavity(; E, ν)Spherical cavity benchmark in three dimensions.
Taiga.LinearElasticity.material_matrix — Method
material_matrix(::Type{Isotropic}, E, ν)Returns the elasticity tensor in Voigt notation.
Taiga.LinearElasticity.material_matrix — Method
material_matrix(::Type{Orthotropic}, E₁, E₂, E₃, ν₂₃, ν₃₂, ν₁₃, ν₃₁, ν₁₂, ν₂₁, G₂₃, G₁₃, G₁₂)Returns the elasticity tensor in Voigt notation.
Taiga.LinearElasticity.material_matrix — Method
material_matrix(::Type{PlaneStrain}, E, ν)Returns the elasticity tensor in Voigt notation.
Taiga.LinearElasticity.material_matrix — Method
material_matrix(::Type{PlaneStress}, E, ν)Returns the elasticity tensor in Voigt notation.
Taiga.LinearElasticity.σ_voigt — Function
σ_voigt(A::SMatrix) -> SVector
σ_voigt(v::SVector) -> SMatrixConvert between standard and Voigt notation for stress.
σ_voigt(A::SMatrix{2,2}): Converts a 2×2 stress tensor to a 3-component Voigt vector.σ_voigt(A::SMatrix{3,3}): Converts a 3×3 stress tensor to a 6-component Voigt vector.σ_voigt(v::SVector{3}): Converts a 3-component Voigt stress vector to a 2×2 stress tensor.σ_voigt(v::SVector{6}): Converts a 6-component Voigt stress vector to a 3×3 stress tensor.
Shear components remain unchanged in Voigt notation.
Taiga.LinearElasticity.ϵ_voigt — Function
ϵ_voigt(A::SMatrix) -> SVector
ϵ_voigt(v::SVector) -> SMatrixConvert between standard and Voigt notation for strain.
ϵ_voigt(A::SMatrix{2,2}): Converts a 2×2 strain tensor to a 3-component Voigt vector.ϵ_voigt(A::SMatrix{3,3}): Converts a 3×3 strain tensor to a 6-component Voigt vector.ϵ_voigt(v::SVector{3}): Converts a 3-component Voigt strain vector to a 2×2 strain tensor.ϵ_voigt(v::SVector{6}): Converts a 6-component Voigt strain vector to a 3×3 strain tensor.
Shear components are multiplied by 2 when converting to Voigt notation.
Taiga.apply_particular_solution — Method
Taiga.apply_particular_solution(L::LinearOperator, model::Model, x₀::V)Return particular solution.
Arguments:
L: linear operatormodel: modelx₀: homogeneous solution
Taiga.forcing! — Method
Taiga.forcing!(b::AbstractVector, L::LinearOperator, model::Model)Update forcing vector.
Arguments:
b: cache vectorL: linear operatormodel: model
Taiga.forcing — Method
Taiga.forcing(L::LinearOperator, model::Model)Return forcing vector.
Taiga.linear_operator — Method
Taiga.linear_operator(model::Model; show_progress::Bool = true)Construct linear operator.