SpECTRE  v2024.04.12
Poisson Namespace Reference

Items related to solving a Poisson equation \(-\Delta u(x)=f(x)\). More...

Classes

struct  FirstOrderSystem
 The Poisson equation formulated as a set of coupled first-order PDEs. More...
 
struct  Fluxes< Dim, Geometry::Curved >
 Compute the fluxes \(F^i\) for the curved-space Poisson equation on a spatial metric \(\gamma_{ij}\). More...
 
struct  Fluxes< Dim, Geometry::FlatCartesian >
 Compute the fluxes \(F^i\) for the Poisson equation on a flat metric in Cartesian coordinates. More...
 
struct  Sources< Dim, Geometry::Curved >
 Add the sources \(S\) for the curved-space Poisson equation on a spatial metric \(\gamma_{ij}\). More...
 

Enumerations

enum class  Geometry { FlatCartesian , Curved }
 Types of background geometries for the Poisson equation. More...
 

Functions

template<size_t Dim>
void flat_cartesian_fluxes (gsl::not_null< tnsr::I< DataVector, Dim > * > flux_for_field, const tnsr::i< DataVector, Dim > &field_gradient)
 Compute the fluxes \(F^i=\partial_i u(x)\) for the Poisson equation on a flat spatial metric in Cartesian coordinates.
 
template<size_t Dim>
void curved_fluxes (gsl::not_null< tnsr::I< DataVector, Dim > * > flux_for_field, const tnsr::II< DataVector, Dim > &inv_spatial_metric, const tnsr::i< DataVector, Dim > &field_gradient)
 Compute the fluxes \(F^i=\gamma^{ij}\partial_j u(x)\) for the curved-space Poisson equation on a spatial metric \(\gamma_{ij}\).
 
template<size_t Dim>
void fluxes_on_face (gsl::not_null< tnsr::I< DataVector, Dim > * > flux_for_field, const tnsr::I< DataVector, Dim > &face_normal_vector, const Scalar< DataVector > &field)
 Compute the fluxes \(F^i=\gamma^{ij} n_j u\) where \(n_j\) is the face_normal. More...
 
template<size_t Dim>
void add_curved_sources (gsl::not_null< Scalar< DataVector > * > source_for_field, const tnsr::i< DataVector, Dim > &christoffel_contracted, const tnsr::I< DataVector, Dim > &flux_for_field)
 Add the sources \(S=-\Gamma^i_{ij}v^j\) for the curved-space Poisson equation on a spatial metric \(\gamma_{ij}\). More...
 

Detailed Description

Items related to solving a Poisson equation \(-\Delta u(x)=f(x)\).

Enumeration Type Documentation

◆ Geometry

enum class Poisson::Geometry
strong

Types of background geometries for the Poisson equation.

Enumerator
FlatCartesian 

Euclidean (flat) manifold with Cartesian coordinates, i.e. the metric has components \(\gamma_{ij} = \delta_{ij}\) in these coordinates and thus all Christoffel symbols vanish: \(\Gamma^i_{jk}=0\).

Curved 

The manifold is either curved or employs curved coordinates, so non-vanishing Christoffel symbols must be taken into account.

Function Documentation

◆ add_curved_sources()

template<size_t Dim>
void Poisson::add_curved_sources ( gsl::not_null< Scalar< DataVector > * >  source_for_field,
const tnsr::i< DataVector, Dim > &  christoffel_contracted,
const tnsr::I< DataVector, Dim > &  flux_for_field 
)

Add the sources \(S=-\Gamma^i_{ij}v^j\) for the curved-space Poisson equation on a spatial metric \(\gamma_{ij}\).

These sources arise from the non-principal part of the Laplacian on a non-Euclidean background.

◆ fluxes_on_face()

template<size_t Dim>
void Poisson::fluxes_on_face ( gsl::not_null< tnsr::I< DataVector, Dim > * >  flux_for_field,
const tnsr::I< DataVector, Dim > &  face_normal_vector,
const Scalar< DataVector > &  field 
)

Compute the fluxes \(F^i=\gamma^{ij} n_j u\) where \(n_j\) is the face_normal.

The face_normal_vector is \(\gamma^{ij} n_j\).