Skip to main content
`Ctrl`+`K`

# PetscQuadraturePushForward

Push forward a quadrature functional under an affine transformation.

## Synopsis

    #include "petscdt.h"
    PetscErrorCode PetscQuadraturePushForward(PetscQuadrature q, PetscInt imageDim, const PetscReal origin[], const PetscReal originImage[], const PetscReal J[], PetscInt formDegree, PetscQuadrature *Jinvstarq)

Collective

## Input Parameters

- q - the quadrature functional

- imageDim - the dimension of the image of the transformation

- origin - a point in the original space

- originImage - the image of the origin under the transformation

- J - the Jacobian of the image: an [imageDim x dim] matrix in row major order

- formDegree - transform the quadrature weights as k-forms of this form degree (if the number of components is a multiple of (dim choose `formDegree`), it is assumed that they represent multiple k-forms) [see `PetscDTAltVPullback()` for interpretation of `formDegree`]

## Output Parameter

- Jinvstarq - a quadrature rule where each point is the image of a point in the original quadrature rule, and where the k-form weights have been pulled-back by the pseudoinverse of `J` to the k-form weights in the image space.

## Note

The new quadrature rule will have a different number of components if spaces have different dimensions. For example, pushing a 2-form forward from a two dimensional space to a three dimensional space changes the number of components from 1 to 3.

## See Also

`PetscQuadrature`, `PetscDTAltVPullback()`, `PetscDTAltVPullbackMatrix()`

## Level

intermediate

## Location

src/dm/dt/interface/dt.c

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