SpECTRE  v2024.06.18
Poisson::FirstOrderSystem< Dim, BackgroundGeometry > Struct Template Reference

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

#include <FirstOrderSystem.hpp>

## Public Types

using primal_fields = tmpl::list< Tags::Field >

using primal_fluxes = tmpl::list<::Tags::Flux< Tags::Field, tmpl::size_t< Dim >, Frame::Inertial > >

using background_fields = tmpl::conditional_t< BackgroundGeometry==Geometry::FlatCartesian, tmpl::list<>, tmpl::list< gr::Tags::InverseSpatialMetric< DataVector, Dim >, gr::Tags::SpatialChristoffelSecondKindContracted< DataVector, Dim > > >

using inv_metric_tag = tmpl::conditional_t< BackgroundGeometry==Geometry::FlatCartesian, void, gr::Tags::InverseSpatialMetric< DataVector, Dim > >

using fluxes_computer = Fluxes< Dim, BackgroundGeometry >

using sources_computer = tmpl::conditional_t< BackgroundGeometry==Geometry::FlatCartesian, void, Sources< Dim, BackgroundGeometry > >

using boundary_conditions_base = elliptic::BoundaryConditions::BoundaryCondition< Dim >

## Static Public Attributes

static constexpr size_t volume_dim = Dim

## Detailed Description

template<size_t Dim, Geometry BackgroundGeometry>
struct Poisson::FirstOrderSystem< Dim, BackgroundGeometry >

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

### Details

This system formulates the Poisson equation $$-\Delta_\gamma u(x) = f(x)$$ on a background metric $$\gamma_{ij}$$ as the set of coupled first-order PDEs

\begin{align*} -\partial_i v^i - \Gamma^i_{ij} v^j = f(x) \\ v^i = \gamma^{ij} \partial_j u(x) \end{align*}

where $$\Gamma^i_{jk}=\frac{1}{2}\gamma^{il}\left(\partial_j\gamma_{kl} +\partial_k\gamma_{jl}-\partial_l\gamma_{jk}\right)$$ are the Christoffel symbols of the second kind of the background metric $$\gamma_{ij}$$. The background metric $$\gamma_{ij}$$ and the Christoffel symbols derived from it are assumed to be independent of the variables $$u$$, i.e. constant throughout an iterative elliptic solve.

The system can be formulated in terms of these fluxes and sources (see elliptic::protocols::FirstOrderSystem):

\begin{align*} F^i &= v^i = \gamma^{ij} \partial_j u \\ S &= -\Gamma^i_{ij} v^j \\ f &= f(x) \text{.} \end{align*}

The fluxes and sources simplify significantly when the background metric is flat and we employ Cartesian coordinates so $$\gamma_{ij} = \delta_{ij}$$ and $$\Gamma^i_{jk} = 0$$. Set the template parameter BackgroundGeometry to Poisson::Geometry::FlatCartesian to specialise the system for this case. Set it to Poisson::Geometry::Curved for the general case.

The documentation for this struct was generated from the following file:
• src/Elliptic/Systems/Poisson/FirstOrderSystem.hpp