#include "petscfe.h" PetscErrorCode PetscDualSpaceApplyFVM(PetscDualSpace sp, PetscInt f, PetscReal time, PetscFVCellGeom *cgeom, PetscInt Nc, PetscErrorCode (*func)(PetscInt, PetscReal, const PetscReal [], PetscInt, PetscScalar *, void *), void *ctx, PetscScalar *value)
sp | - The PetscDualSpace object | |
f | - The basis functional index | |
time | - The time | |
cgeom | - A context with geometric information for this cell, we currently just use the centroid | |
Nc | - The number of components for the function | |
func | - The input function | |
ctx | - A context for the function |
value | - The output value (scalar) |
func(PetscInt dim, PetscReal time, const PetscReal x[],
PetscInt numComponents, PetscScalar values[], void *ctx)
and the idea is to evaluate the functional as an integral
n(f) = int dx n(x) . f(x)
where both n and f have Nc components.