SpECTRE  v2024.04.12
gh::ConstraintDamping::GaussianPlusConstant< VolumeDim, Fr > Class Template Reference

A Gaussian plus a constant: \(f = C + A \exp\left(-\frac{(x-x_0)^2}{w^2}\right)\). More...

#include <GaussianPlusConstant.hpp>

Classes

struct  Amplitude
 
struct  Center
 
struct  Constant
 
struct  Width
 

Public Types

using options = tmpl::list< Constant, Amplitude, Width, Center >
 
- Public Types inherited from gh::ConstraintDamping::DampingFunction< VolumeDim, Fr >
using creatable_classes = tmpl::conditional_t<(VolumeDim==3 and std::is_same< Fr, Frame::Grid >::value), tmpl::list< gh::ConstraintDamping::Constant< VolumeDim, Fr >, gh::ConstraintDamping::GaussianPlusConstant< VolumeDim, Fr >, gh::ConstraintDamping::TimeDependentTripleGaussian >, tmpl::list< gh::ConstraintDamping::GaussianPlusConstant< VolumeDim, Fr >, gh::ConstraintDamping::Constant< VolumeDim, Fr > > >
 
using frame = Fr
 

Public Member Functions

 GaussianPlusConstant (double constant, double amplitude, double width, const std::array< double, VolumeDim > &center)
 
 GaussianPlusConstant (const GaussianPlusConstant &)=default
 
GaussianPlusConstantoperator= (const GaussianPlusConstant &)=default
 
 GaussianPlusConstant (GaussianPlusConstant &&)=default
 
GaussianPlusConstantoperator= (GaussianPlusConstant &&)=default
 
void operator() (const gsl::not_null< Scalar< double > * > value_at_x, const tnsr::I< double, VolumeDim, Fr > &x, double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &functions_of_time) const override
 Returns the value of the function at the coordinate 'x'. More...
 
void operator() (const gsl::not_null< Scalar< DataVector > * > value_at_x, const tnsr::I< DataVector, VolumeDim, Fr > &x, double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &functions_of_time) const override
 Returns the value of the function at the coordinate 'x'. More...
 
auto get_clone () const -> std::unique_ptr< DampingFunction< VolumeDim, Fr > > override
 
void pup (PUP::er &p) override
 
- Public Member Functions inherited from gh::ConstraintDamping::DampingFunction< VolumeDim, Fr >
 WRAPPED_PUPable_abstract (DampingFunction)
 
 DampingFunction (const DampingFunction &)=default
 
DampingFunctionoperator= (const DampingFunction &)=default
 
 DampingFunction (DampingFunction &&)=default
 
DampingFunctionoperator= (DampingFunction &&)=default
 
 DampingFunction (CkMigrateMessage *msg)
 
virtual auto get_clone () const -> std::unique_ptr< DampingFunction< VolumeDim, Fr > >=0
 

Static Public Attributes

static constexpr Options::String help
 
- Static Public Attributes inherited from gh::ConstraintDamping::DampingFunction< VolumeDim, Fr >
static constexpr size_t volume_dim = VolumeDim
 

Friends

bool operator== (const GaussianPlusConstant &lhs, const GaussianPlusConstant &rhs)
 

Detailed Description

template<size_t VolumeDim, typename Fr>
class gh::ConstraintDamping::GaussianPlusConstant< VolumeDim, Fr >

A Gaussian plus a constant: \(f = C + A \exp\left(-\frac{(x-x_0)^2}{w^2}\right)\).

Details

Input file options are: Constant \(C\), Amplitude \(A\), Width \(w\), and Center \(x_0\). The function takes input coordinates of type tnsr::I<T, VolumeDim, Fr>, where T is e.g. double or DataVector, Fr is a frame (e.g. Frame::Inertial), and VolumeDim is the dimension of the spatial volume.

Member Function Documentation

◆ get_clone()

template<size_t VolumeDim, typename Fr >
auto gh::ConstraintDamping::GaussianPlusConstant< VolumeDim, Fr >::get_clone ( ) const -> std::unique_ptr< DampingFunction< VolumeDim, Fr > >
overridevirtual

◆ operator()() [1/2]

template<size_t VolumeDim, typename Fr >
void gh::ConstraintDamping::GaussianPlusConstant< VolumeDim, Fr >::operator() ( const gsl::not_null< Scalar< DataVector > * >  value_at_x,
const tnsr::I< DataVector, VolumeDim, Fr > &  x,
double  time,
const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &  functions_of_time 
) const
overridevirtual

Returns the value of the function at the coordinate 'x'.

Implements gh::ConstraintDamping::DampingFunction< VolumeDim, Fr >.

◆ operator()() [2/2]

template<size_t VolumeDim, typename Fr >
void gh::ConstraintDamping::GaussianPlusConstant< VolumeDim, Fr >::operator() ( const gsl::not_null< Scalar< double > * >  value_at_x,
const tnsr::I< double, VolumeDim, Fr > &  x,
double  time,
const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &  functions_of_time 
) const
overridevirtual

Returns the value of the function at the coordinate 'x'.

Implements gh::ConstraintDamping::DampingFunction< VolumeDim, Fr >.

Member Data Documentation

◆ help

template<size_t VolumeDim, typename Fr >
constexpr Options::String gh::ConstraintDamping::GaussianPlusConstant< VolumeDim, Fr >::help
staticconstexpr
Initial value:
= {
"Computes a Gaussian plus a constant about an arbitrary coordinate "
"center with given width and amplitude"}

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