Skip to main content
`Ctrl`+`K`

# Finite Elements (PetscFE)

The `PetscFE` class encapsulates a finite element discretization. Each `PetscFE` object contains a `PetscSpace`, its dual `PetscDualSpace`, and a `DMPLEX` in the classic Ciarlet triple representation (https://finite-element.github.io/2_finite_elements.html).

- Achieving High Performance with Unified Residual Evaluation, Matthew G. Knepley, Jed Brown, Karl Rupp, Barry F. Smith, 2013.
- Finite Element Integration with Quadrature on the GPU, Matthew G. Knepley, Karl Rupp, Andy R. Terrel, 2016.

There are many SNES Examples using `PetscFE`, such ex12, ex17, and ex62.

Developer Note: Using an entire `DMPLEX` object to provide the cell information seems unnecessary and complicated. Why not have a simple `PetscCell` object that could encapsulate this information. It could then be used by a variety of `DM` etc.

## Beginner - Basic usage

- PetscFE

- PetscFECreate

- PetscFECreateByCell

- PetscFECreateDefault

- PetscFECreateFromSpaces

- PetscFECreateLagrange

- PetscFECreateLagrangeByCell

- PetscFEDestroy

- PetscFEGeomCreate

- PetscFEGeomDestroy

- PetscFEJacobianType

- PetscFEType

- PetscFEView

## Intermediate - Setting options for algorithms and data structures

- PETSCFEBASIC

- PETSCFECOMPOSITE

- PETSCFEOPENCL

- PETSCFEVECTOR

- PetscFECompositeGetMapping

- PetscFEComputeTabulation

- PetscFECopyQuadrature

- PetscFECreateTabulation

- PetscFECreateVector

- PetscFEGeom

- PetscFEGeomComplete

- PetscFEGeomGetCellPoint

- PetscFEGeomGetChunk

- PetscFEGeomGetPoint

- PetscFEGeomRestoreChunk

- PetscFEGetBasisSpace

- PetscFEGetCeedBasis

- PetscFEGetCellTabulation

- PetscFEGetDimension

- PetscFEGetDualSpace

- PetscFEGetFaceCentroidTabulation

- PetscFEGetFaceQuadrature

- PetscFEGetFaceTabulation

- PetscFEGetNumComponents

- PetscFEGetNumDof

- PetscFEGetQuadrature

- PetscFEGetSpatialDimension

- PetscFEGetTileSizes

- PetscFEGetType

- PetscFEIntegrate

- PetscFEIntegrateBd

- PetscFEIntegrateBdJacobian

- PetscFEIntegrateBdResidual

- PetscFEIntegrateJacobian

- PetscFEIntegrateResidual

- PetscFESetBasisSpace

- PetscFESetCeed

- PetscFESetDualSpace

- PetscFESetFaceQuadrature

- PetscFESetFromOptions

- PetscFESetName

- PetscFESetNumComponents

- PetscFESetQuadrature

- PetscFESetTileSizes

- PetscFESetType

- PetscFESetUp

- PetscFEViewFromOptions

- PetscTabulationDestroy

## Advanced - Setting more advanced options and customization

- PetscFEGetHeightSubspace

- PetscFELimitDegree

- PetscFEPushforward

- PetscFEPushforwardGradient

- PetscFEPushforwardHessian

- PetscFERefine

- PetscFERegister

## Developer - Interfaces rarely needed by applications programmers

- PetscFEIntegrateHybridJacobian

- PetscFEIntegrateHybridResidual

- PetscFEOpenCLGetRealType

- PetscFEOpenCLSetRealType

## Single list of manual pages

- PETSCFEBASIC

- PETSCFECOMPOSITE

- PETSCFEOPENCL

- PETSCFEVECTOR

- PetscFE

- PetscFECompositeGetMapping

- PetscFEComputeTabulation

- PetscFECopyQuadrature

- PetscFECreate

- PetscFECreateByCell

- PetscFECreateDefault

- PetscFECreateFromSpaces

- PetscFECreateLagrange

- PetscFECreateLagrangeByCell

- PetscFECreateTabulation

- PetscFECreateVector

- PetscFEDestroy

- PetscFEGeom

- PetscFEGeomComplete

- PetscFEGeomCreate

- PetscFEGeomDestroy

- PetscFEGeomGetCellPoint

- PetscFEGeomGetChunk

- PetscFEGeomGetPoint

- PetscFEGeomRestoreChunk

- PetscFEGetBasisSpace

- PetscFEGetCeedBasis

- PetscFEGetCellTabulation

- PetscFEGetDimension

- PetscFEGetDualSpace

- PetscFEGetFaceCentroidTabulation

- PetscFEGetFaceQuadrature

- PetscFEGetFaceTabulation

- PetscFEGetHeightSubspace

- PetscFEGetNumComponents

- PetscFEGetNumDof

- PetscFEGetQuadrature

- PetscFEGetSpatialDimension

- PetscFEGetTileSizes

- PetscFEGetType

- PetscFEIntegrate

- PetscFEIntegrateBd

- PetscFEIntegrateBdJacobian

- PetscFEIntegrateBdResidual

- PetscFEIntegrateHybridJacobian

- PetscFEIntegrateHybridResidual

- PetscFEIntegrateJacobian

- PetscFEIntegrateResidual

- PetscFEJacobianType

- PetscFELimitDegree

- PetscFEOpenCLGetRealType

- PetscFEOpenCLSetRealType

- PetscFEPushforward

- PetscFEPushforwardGradient

- PetscFEPushforwardHessian

- PetscFERefine

- PetscFERegister

- PetscFESetBasisSpace

- PetscFESetCeed

- PetscFESetDualSpace

- PetscFESetFaceQuadrature

- PetscFESetFromOptions

- PetscFESetName

- PetscFESetNumComponents

- PetscFESetQuadrature

- PetscFESetTileSizes

- PetscFESetType

- PetscFESetUp

- PetscFEType

- PetscFEView

- PetscFEViewFromOptions

- PetscTabulationDestroy