# PetscDTAltVPullback
Compute the pullback of a k-form under a linear transformation of the coordinate space 
## Synopsis
```
#include "petscdt.h" 
PetscErrorCode PetscDTAltVPullback(PetscInt N, PetscInt M, const PetscReal *L, PetscInt k, const PetscReal *w, PetscReal *Lstarw)
```

## Input Parameters

- ***N -*** the dimension of the origin vector space of the linear transformation, M >= 0
- ***M -*** the dimension of the image vector space of the linear transformation, N >= 0
- ***L -*** a linear transformation, an [M x N] matrix in row-major format
- ***k -*** the *signed* degree k of the |k|-form w, -(min(M,N)) <= k <= min(M,N).  A negative form degree indicates that the pullback should be conjugated by
the Hodge star operator (see note).
- ***w -*** a |k|-form in the image space, size [M choose |k|]



## Output Parameter

- ***Lstarw -*** the pullback of w to a |k|-form in the origin space, size [N choose |k|]: (Lstarw)(v_1,...v_k) = w(L*v_1,...,L*v_k).




Note: negative form degrees accommodate, e.g., H-div conforming vector fields.  An H-div conforming vector field stores its degrees of freedom as (dx, dy, dz), like a 1-form,
but its normal trace is integrated on faces, like a 2-form.  The correct pullback then is to apply the Hodge star transformation from (M-2)-form to 2-form, pullback as a 2-form,
then the inverse Hodge star transformation.


## See Also
 `PetscDTAltV`, `PetscDTAltVPullbackMatrix()`, `PetscDTAltVStar()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/dm/dt/interface/dtaltv.c.html#PetscDTAltVPullback">src/dm/dt/interface/dtaltv.c</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/dm/dt/interface/dtaltv.c)


[Index of all DT routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
