|
| TimeDependentTripleGaussian (CkMigrateMessage *msg) |
|
| TimeDependentTripleGaussian (double constant, double amplitude_1, double width_1, const std::array< double, 3 > ¢er_1, double amplitude_2, double width_2, const std::array< double, 3 > ¢er_2, double amplitude_3, double width_3, const std::array< double, 3 > ¢er_3) |
|
| TimeDependentTripleGaussian (const TimeDependentTripleGaussian &)=default |
|
TimeDependentTripleGaussian & | operator= (const TimeDependentTripleGaussian &)=default |
|
| TimeDependentTripleGaussian (TimeDependentTripleGaussian &&)=default |
|
TimeDependentTripleGaussian & | operator= (TimeDependentTripleGaussian &&)=default |
|
void | operator() (const gsl::not_null< Scalar< double > * > value_at_x, const tnsr::I< double, 3, Frame::Grid > &x, double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &functions_of_time) const override |
|
void | operator() (const gsl::not_null< Scalar< DataVector > * > value_at_x, const tnsr::I< DataVector, 3, Frame::Grid > &x, double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &functions_of_time) const override |
|
auto | get_clone () const -> std::unique_ptr< DampingFunction< 3, Frame::Grid > > override |
|
void | pup (PUP::er &p) override |
|
| WRAPPED_PUPable_abstract (DampingFunction) |
|
| DampingFunction (const DampingFunction &)=default |
|
| DampingFunction (DampingFunction &&)=default |
|
| DampingFunction (CkMigrateMessage *msg) |
|
DampingFunction & | operator= (const DampingFunction &)=default |
|
DampingFunction & | operator= (DampingFunction &&)=default |
|
virtual auto | get_clone () const -> std::unique_ptr< DampingFunction< VolumeDim, Frame::Grid > >=0 |
|
virtual void | operator() (const gsl::not_null< Scalar< double > * > value_at_x, const tnsr::I< double, VolumeDim, Frame::Grid > &x, double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &functions_of_time) const=0 |
| Returns the value of the function at the coordinate 'x'.
|
|
virtual void | operator() (const gsl::not_null< Scalar< DataVector > * > value_at_x, const tnsr::I< DataVector, VolumeDim, Frame::Grid > &x, double time, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime > > &functions_of_time) const=0 |
| Returns the value of the function at the coordinate 'x'.
|
|
A sum of three Gaussians plus a constant, where the Gaussian widths are scaled by a domain::FunctionsOfTime::FunctionOfTime.
Details
The function \(f\) is given by
\begin{align} f = C + \sum_{\alpha=1}^3 A_\alpha \exp\left(-\frac{(x-(x_0)_\alpha)^2}{w_\alpha^2(t)}\right). \end{align}
Input file options are: Constant
\(C\), Amplitude[1-3]
\(A_\alpha\), Width[1-3]
\(w_\alpha\), and Center[1-3]
\((x_0)_\alpha\). The function takes input coordinates \(x\) of type tnsr::I<T, 3, Frame::Grid>
, where T
is e.g. double
or DataVector
; note that this DampingFunction is only defined for three spatial dimensions and for the grid frame. The Gaussian widths \(w_\alpha\) are scaled by the inverse of the value of a scalar domain::FunctionsOfTime::FunctionOfTime \(f(t)\): \(w_\alpha(t) = w_\alpha / f(t)\).
The name of the domain::FunctionsOfTime::FunctionOfTime is hardcoded to be Expansion
as this class will typically be used with a domain that has an expansion map and potentially an expansion control system, the names of which will be Expansion
.