# PetscWeakFormKind
The kind of weak form. The specific forms are given in the documentation for the integraton functions. 
## Synopsis
```
typedef enum {
  PETSC_WF_OBJECTIVE,
  PETSC_WF_F0,
  PETSC_WF_F1,
  PETSC_WF_G0,
  PETSC_WF_G1,
  PETSC_WF_G2,
  PETSC_WF_G3,
  PETSC_WF_GP0,
  PETSC_WF_GP1,
  PETSC_WF_GP2,
  PETSC_WF_GP3,
  PETSC_WF_GT0,
  PETSC_WF_GT1,
  PETSC_WF_GT2,
  PETSC_WF_GT3,
  PETSC_WF_BDF0,
  PETSC_WF_BDF1,
  PETSC_WF_BDG0,
  PETSC_WF_BDG1,
  PETSC_WF_BDG2,
  PETSC_WF_BDG3,
  PETSC_WF_BDGP0,
  PETSC_WF_BDGP1,
  PETSC_WF_BDGP2,
  PETSC_WF_BDGP3,
  PETSC_WF_R,
  PETSC_NUM_WF
} PetscWeakFormKind;
```

## Supported kinds include
```none
OBJECTIVE                  - Objective form
```
```none
F0, F1                     - Residual forms
```
```none
G0, G1, G2, G3             - Jacobian forms
```
```none
GP0, GP1, GP2, GP3         - Jacobian preconditioner matrix forms
```
```none
GT0, GT1, GT2, GT3         - Dynamic Jacobian matrix forms
```
```none
BDF0, BDF1                 - Boundary Residual forms
```
```none
BDG0, BDG1, BDG2, BDG3     - Jacobian forms
```
```none
BDGP0, BDGP1, BDGP2, BDGP3 - Jacobian preconditioner matrix forms
```
```none
R                          - Riemann solver
```




## See Also
 `PetscFEIntegrateResidual()`, `PetscFEIntegrateJacobian()`, `PetscFEIntegrateBdResidual()`, `PetscFEIntegrateBdJacobian()`, `PetscFVIntegrateRHSFunction()`, `PetscWeakFormSetIndexResidual()`, `PetscWeakFormClearIndex()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/include/petscdstypes.h.html#PetscWeakFormKind">include/petscdstypes.h</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscdstypes.h)


[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)  
