Skip to main content
`Ctrl`+`K`

# PetscDualSpacePushforward

Transform the given function so that it operates on real space, rather than the reference element. Operationally, this means that we map the function evaluations depending on continuity requirements of our finite element method.

## Synopsis

    #include "petscfe.h"
    PetscErrorCode PetscDualSpacePushforward(PetscDualSpace dsp, PetscFEGeom *fegeom, PetscInt Nq, PetscInt Nc, PetscScalar pointEval[])

## Input Parameters

- dsp - The `PetscDualSpace`

- fegeom - The geometry for this cell

- Nq - The number of function samples

- Nc - The number of function components

- pointEval - The function values

## Output Parameter

- pointEval - The transformed function values

## Notes

Functionals transform in a complementary way (pullback) to functions, so that the scalar product is invariant. The type of transform is dependent on the associated k-simplex from the DeRahm complex.

This only handles transformations when the embedding dimension of the geometry in fegeom is the same as the reference dimension.

## See Also

`PetscDualSpace`, `PetscDualSpacePullback()`, `PetscDualSpaceTransform()`, `PetscDualSpaceGetDeRahm()`

## Level

advanced

## Location

src/dm/dt/dualspace/interface/dualspace.c

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