|
SpECTRE
v2025.08.19
|
A Lorentzian solution to the Poisson equation. More...
#include <Lorentzian.hpp>
Classes | |
| struct | ComplexPhase |
| struct | PlusConstant |
Public Types | |
| using | options = tmpl::flatten< tmpl::list< PlusConstant, tmpl::conditional_t< std::is_same_v< DataType, ComplexDataVector >, ComplexPhase, tmpl::list<> > > > |
Public Member Functions | |
| Lorentzian (const Lorentzian &)=default | |
| Lorentzian & | operator= (const Lorentzian &)=default |
| Lorentzian (Lorentzian &&)=default | |
| Lorentzian & | operator= (Lorentzian &&)=default |
| Lorentzian (const double constant, const double complex_phase=0.) | |
| double | constant () const |
| double | complex_phase () const |
| std::unique_ptr< elliptic::analytic_data::AnalyticSolution > | get_clone () const override |
| template<typename... RequestedTags> | |
| tuples::TaggedTuple< RequestedTags... > | variables (const tnsr::I< DataVector, Dim > &x, tmpl::list< RequestedTags... >) const |
| void | pup (PUP::er &p) override |
| virtual std::unique_ptr< AnalyticSolution > | get_clone () const =0 |
Static Public Attributes | |
| static constexpr Options::String | help |
A Lorentzian solution to the Poisson equation.
This implements the Lorentzian solution \(u(\boldsymbol{x})=\left(1+r^2\right)^{-\frac{1}{2}}\) to the three-dimensional Poisson equation \(-\Delta u(\boldsymbol{x})=f(\boldsymbol{x})\), where \(r^2=x^2+y^2+z^2\). The corresponding source is \(f(\boldsymbol{x})=3\left(1+r^2\right)^{-\frac{5}{2}}\).
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.
|
inlineoverridevirtual |
Implements elliptic::analytic_data::AnalyticSolution.
|
staticconstexpr |