Poisson::FirstOrderSystem< Dim > Struct Template Reference

The Poisson equation formulated as a set of coupled first-order PDEs. More...

`#include <FirstOrderSystem.hpp>`

## Public Types | |

using | fields_tag = Tags::Variables< tmpl::list< Field, AuxiliaryField< Dim > >> |

using | impose_boundary_conditions_on_fields = tmpl::list< Field > |

using | variables_tag = db::add_tag_prefix< LinearSolver::Tags::Operand, fields_tag > |

using | compute_operator_action = ComputeFirstOrderOperatorAction< Dim > |

using | normal_dot_fluxes = ComputeFirstOrderNormalDotFluxes< Dim > |

template<typename Tag > | |

using | magnitude_tag = Tags::EuclideanMagnitude< Tag > |

using | gradient_tags = tmpl::list< LinearSolver::Tags::Operand< Field > > |

using | divergence_tags = tmpl::list< AuxiliaryField< Dim > > |

## Static Public Attributes | |

static constexpr size_t | volume_dim = Dim |

struct Poisson::FirstOrderSystem< Dim >

The Poisson equation formulated as a set of coupled first-order PDEs.

This system formulates the Poisson equation \(-\Delta u(x) = f(x)\) as the set of coupled first-order PDEs

\[ -\nabla \cdot \boldsymbol{v}(x) = f(x) \\ \nabla u(x) - \boldsymbol{v}(x) = 0 \]

where we make use of an auxiliary variable \(\boldsymbol{v}\). This scheme also goes by the name of *mixed* or *flux* formulation (see e.g. [1]). The auxiliary variable is treated on the same footing as the field \(u\). This allows us to make use of the DG architecture developed for coupled first-order PDEs, in particular the flux communication and lifting code. It does, however, introduce auxiliary degrees of freedom that can be avoided in the *primal formulation*. Furthermore, the linear operator that represents the DG discretization for this system is not symmetric (since no mass operator is applied) and has both positive and negative eigenvalues. These properties further increase the computational cost (see Linear Solver) and are remedied in the primal formulation.

The documentation for this struct was generated from the following file:

- src/Elliptic/Systems/Poisson/FirstOrderSystem.hpp

© Copyright 2017 - 2019 SXS Collaboration, Distributed under the MIT License