xref: /petsc/doc/manualpages/MANSECHeaders/FE (revision 53673ba54f5aaba04b9d49ab22cf56c7a7461fe9)
1# Finite Elements (PetscFE)
2
3The `PetscFE` class encapsulates a finite element discretization. Each `PetscFE` object contains a `PetscSpace`, its dual `PetscDualSpace`, and a `DMPLEX`
4in the classic Ciarlet triple representation (<a href="https://finite-element.github.io/2_finite_elements.html" target=_blank>https://finite-element.github.io/2_finite_elements.html</a>).
5
6<ul>
7  <li><a href="http://arxiv.org/abs/1309.1204">Achieving High Performance with Unified Residual Evaluation</a>, Matthew G. Knepley, Jed Brown, Karl Rupp, Barry F. Smith, 2013.</li>
8  <li><a href="http://arxiv.org/abs/1607.04245">Finite Element Integration with Quadrature on the GPU</a>, Matthew G. Knepley, Karl Rupp, Andy R. Terrel, 2016.</li>
9</ul>
10
11There are many <A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/index.html">SNES Examples</A> using `PetscFE`, such ex12, ex17, and ex62.
12
13Developer Note:
14Using 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.
15