MaterialModelsBase
For constitutive mechanical behavior following the MaterialModelsBase.jl
interface, element_routine!
, element_residual!
, create_cell_state
, and allocate_cell_cache
are implemented in FerriteAssembly.jl
.
FerriteAssembly.element_routine!
— MethodFerriteAssembly.element_routine!(
Ke, re, state::Vector{<:MMB.AbstractMaterialState}, ae,
m::MMB.AbstractMaterial, cv::AbstractCellValues, buffer)
Solve the weak form
\[ \int_\Omega [\boldsymbol{\delta u}\otimes\nabla]^\mathrm{sym} : \boldsymbol{\sigma}\ \mathrm{d}\Omega = \int_\Gamma \boldsymbol{\delta u} \cdot \boldsymbol{t}\ \mathrm{d}\Gamma + \int_\Omega \boldsymbol{\delta u} \cdot \boldsymbol{b}\ \mathrm{d}\Omega\]
where $\sigma$ is calculated with the material_response
function from MaterialModelsBase.jl
. Note that create_cell_state
is already implemented for <:AbstractMaterial
.
FerriteAssembly.element_residual!
— MethodFerriteAssembly.element_residual!(
re, state::Vector{<:MMB.AbstractMaterialState}, ae,
m::MMB.AbstractMaterial, cv::AbstractCellValues, buffer)
The element_residual!
implementation corresponding to the element_routine!
implementation for a MaterialModelsBase.AbstractMaterial
FerriteAssembly.create_cell_state
— MethodFerriteAssembly.create_cell_state(m::MMB.AbstractMaterial, cv::AbstractCellValues, args...)
Create a Vector{<:MMM.AbstractMaterialState}
where each element is the output from MMB.initial_material_state(m)
and the length is the number of quadrature points in cv
.
FerriteAssembly.allocate_cell_cache
— MethodFerriteAssembly.allocate_cell_cache(m::MMB.AbstractMaterial, ::Any)
Create the material cache defined by the MMB.allocate_material_cache(m)
function.