Quadrature point data evaluation
While an Integrator
can be used to evaluate quadrature point data, the QuadPointEvaluator
provides a more convenient and efficient way to do so. This evaluation is particularly convenient for use with Ferrite
's L2Projector
.
QuadPointEvaluator
FerriteAssembly.QuadPointEvaluator
— TypeQuadPointEvaluator{VT}(db::Union{DomainBuffer, DomainBuffers}, f::Function)
Create a QuadPointEvaluator
for the domain(s) db
, for which the function f(material, u, ∇u, qp_state)
will be used to calculate a value of type VT
in each quadrature point. A QuadPointEvaluator
is often used in combination with Ferrite
's L2Projector
. Note that currently only cell domains are supported.
Currently, the stored data should be accessed directly via the data
field. data
is indexed by the cell number, giving an AbstractVector
of the values for each quadrature point in that cell. A more proper API may be introduced in the future.
QuadPointEvaluator{VT}(db::Union{DomainBuffer, DomainBuffers}, qe_type::Symbol)
A more flexible version of a QuadPointEvaluator
where it is required to overload eval_quadpoints_cell!
to calculate the values to be stored for each quadrature point.
Functions to overload
For custom quadrature evaluation, eval_quadpoints_cell!
can be overloaded.
FerriteAssembly.eval_quadpoints_cell!
— Functioneval_quadpoints_cell!(qp_values::AbstractVector, ::Val{type}, cell_state, ae, material, cv, cellbuffer)
Function to be overloaded for Val{type}
, potentially in combination with material
. Will be called when using QuadPointEvaluator
to add evaluated values for each quadrature point in cv
to qp_values. If no type
is given to QuadPointEvaluator
, type=:default
will be used.