TrilinosCouplings  Development
HybridIntrepidPoisson2D_Pamgen_Tpetra_main.cpp File Reference

Example: Discretize Poisson's equation with Dirichlet boundary conditions on a quadrilateral mesh using nodal (Hgrad) elements. The system is assembled into Tpetra data structures, and optionally solved. More...

`#include "Teuchos_oblackholestream.hpp"`
`#include "Teuchos_GlobalMPISession.hpp"`
`#include "Teuchos_TimeMonitor.hpp"`
`#include "Teuchos_XMLParameterListHelpers.hpp"`
`#include "Teuchos_StandardCatchMacros.hpp"`
`#include "Tpetra_Core.hpp"`
`#include "TrilinosCouplings_config.h"`
`#include "TrilinosCouplings_TpetraIntrepidHybridPoisson2DExample.hpp"`
`#include "TrilinosCouplings_IntrepidPoissonExampleHelpers.hpp"`
`#include <MatrixMarket_Tpetra.hpp>`
Include dependency graph for HybridIntrepidPoisson2D_Pamgen_Tpetra_main.cpp:

## Functions

int main (int argc, char *argv[])

## Detailed Description

Example: Discretize Poisson's equation with Dirichlet boundary conditions on a quadrilateral mesh using nodal (Hgrad) elements. The system is assembled into Tpetra data structures, and optionally solved.

```   This example uses the following Trilinos packages:
```
• Pamgen to generate a Quadrilateral mesh.
• Sacado to form the source term from user-specified manufactured solution.
• Intrepid to build the discretization matrix and right-hand side.
• Tpetra to handle the global sparse matrix and dense vector.
``` Poisson system:

div A grad u = f in Omega
u = g on Gamma

where
A is a material tensor (typically symmetric positive definite)
f is a given source term

Corresponding discrete linear system for nodal coefficients(x):

Kx = b

b - right hand side vector```
Remarks
Use the "--help" command-line argument for usage info.
Example driver has an option to use an input file (XML serialization of a Teuchos::ParameterList) containing a Pamgen mesh description. A version, Poisson.xml, is included in the same directory as this driver. If not included, this program will use a default mesh description.
The exact solution (u) and material tensor (A) are set in the functions "exactSolution" and "materialTensor" and may be modified by the user. We compute the source term f from u using Sacado automatic differentiation, so that u really is the exact solution. The current implementation of exactSolution() has notes to guide your choice of solution. For example, you might want to pick a solution in the finite element space, so that the discrete solution is exact if the solution of the linear system is exact (modulo rounding error when constructing the linear system).