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