Apply a functional from the dual space basis to an input function by assuming a point evaluation functional.


#include "petscfe.h" 
PetscErrorCode PetscDualSpaceApplyDefault(PetscDualSpace sp, PetscInt f, PetscReal time, PetscFEGeom *cgeom, PetscInt Nc, PetscErrorCode (*func)(PetscInt, PetscReal, const PetscReal[], PetscInt, PetscScalar *, void *), void *ctx, PetscScalar *value)

Input Parameters#

  • sp - The PetscDualSpace object

  • f - The basis functional index

  • time - The time

  • cgeom - A context with geometric information for this cell, we use v0 (the initial vertex) and J (the Jacobian)

  • Nc - The number of components for the function

  • func - The input function

  • ctx - A context for the function

Output Parameter#

  • value - The output value

Calling sequence#

   PetscErrorCode func(PetscInt dim, PetscReal time, const PetscReal x[],PetscInt numComponents, PetscScalar values[], void *ctx)


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.

See Also#

PetscDualSpace, PetscDualSpaceCreate()





Index of all DUALSPACE routines
Table of Contents for all manual pages
Index of all manual pages