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.QuadPointEvaluatorType
QuadPointEvaluator{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.

source

Functions to overload

For custom quadrature evaluation, eval_quadpoints_cell! can be overloaded.

FerriteAssembly.eval_quadpoints_cell!Function
eval_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.

source