SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
Poisson::Solutions::ProductOfSinusoids< Dim, DataType > Class Template Reference

A product of sinusoids \(u(\boldsymbol{x}) = \prod_i \sin(k_i x_i)\). More...

#include <ProductOfSinusoids.hpp>

Classes

struct  ComplexPhase
struct  WaveNumbers

Public Types

using options

Public Member Functions

 ProductOfSinusoids (const ProductOfSinusoids &)=default
ProductOfSinusoidsoperator= (const ProductOfSinusoids &)=default
 ProductOfSinusoids (ProductOfSinusoids &&)=default
ProductOfSinusoidsoperator= (ProductOfSinusoids &&)=default
std::unique_ptr< elliptic::analytic_data::AnalyticSolutionget_clone () const override
 ProductOfSinusoids (const std::array< double, Dim > &wave_numbers, const double complex_phase=0.)
template<typename... RequestedTags>
tuples::TaggedTuple< RequestedTags... > variables (const tnsr::I< DataVector, Dim > &x, tmpl::list< RequestedTags... >) const
void pup (PUP::er &p) override
const std::array< double, Dim > & wave_numbers () const
double complex_phase () const

Static Public Attributes

static constexpr Options::String help

Detailed Description

template<size_t Dim, typename DataType = DataVector>
class Poisson::Solutions::ProductOfSinusoids< Dim, DataType >

A product of sinusoids \(u(\boldsymbol{x}) = \prod_i \sin(k_i x_i)\).

Details

Solves the Poisson equation \(-\Delta u(x)=f(x)\) for a source \(f(x)=\boldsymbol{k}^2\prod_i \sin(k_i x_i)\).

If DataType is ComplexDataVector, the solution is multiplied by exp(i * complex_phase) to rotate it in the complex plane. This allows to use this solution for the complex Poisson equation.

Member Typedef Documentation

◆ options

template<size_t Dim, typename DataType = DataVector>
using Poisson::Solutions::ProductOfSinusoids< Dim, DataType >::options
Initial value:
tmpl::flatten<tmpl::list<
tmpl::conditional_t<std::is_same_v<DataType, ComplexDataVector>,
ComplexPhase, tmpl::list<>>>>
Definition ProductOfSinusoids.hpp:71

Member Function Documentation

◆ get_clone()

template<size_t Dim, typename DataType = DataVector>
std::unique_ptr< elliptic::analytic_data::AnalyticSolution > Poisson::Solutions::ProductOfSinusoids< Dim, DataType >::get_clone ( ) const
inlineoverridevirtual

Member Data Documentation

◆ help

template<size_t Dim, typename DataType = DataVector>
Options::String Poisson::Solutions::ProductOfSinusoids< Dim, DataType >::help
staticconstexpr
Initial value:
{
"A product of sinusoids that are taken of a wave number times the "
"coordinate in each dimension."}

The documentation for this class was generated from the following file:
  • src/PointwiseFunctions/AnalyticSolutions/Poisson/ProductOfSinusoids.hpp