SpECTRE  v2021.12.06
domain::FunctionsOfTime::SettleToConstant Class Reference

Given an initial function of time, transitions the map to a constant-in-time value. More...

#include <SettleToConstant.hpp>

Public Member Functions

 SettleToConstant (const std::array< DataVector, 3 > &initial_func_and_derivs, double match_time, double decay_time)
 
 SettleToConstant (SettleToConstant &&)=default
 
SettleToConstantoperator= (SettleToConstant &&)=default
 
 SettleToConstant (const SettleToConstant &)=default
 
SettleToConstantoperator= (const SettleToConstant &)=default
 
 WRAPPED_PUPable_decl_template (SettleToConstant)
 
 SettleToConstant (CkMigrateMessage *)
 
auto get_clone () const -> std::unique_ptr< FunctionOfTime > override
 
std::array< DataVector, 1 > func (const double t) const override
 Returns the function at an arbitrary time t. More...
 
std::array< DataVector, 2 > func_and_deriv (const double t) const override
 Returns the function and its first derivative at an arbitrary time t. More...
 
std::array< DataVector, 3 > func_and_2_derivs (const double t) const override
 Returns the function and the first two derivatives at an arbitrary time t. More...
 
std::array< double, 2 > time_bounds () const override
 Returns the domain of validity of the function. More...
 
void pup (PUP::er &p) override
 
- Public Member Functions inherited from domain::FunctionsOfTime::FunctionOfTime
 FunctionOfTime (FunctionOfTime &&)=default
 
FunctionOfTimeoperator= (FunctionOfTime &&)=default
 
 FunctionOfTime (const FunctionOfTime &)=default
 
FunctionOfTimeoperator= (const FunctionOfTime &)=default
 
virtual auto get_clone () const -> std::unique_ptr< FunctionOfTime >=0
 
virtual std::array< double, 2 > time_bounds () const =0
 Returns the domain of validity of the function. For FunctionsOfTime that allow a small amount of time extrapolation, time_bounds tells you the bounds including the allowed extrapolation interval. More...
 
virtual void update (double, DataVector, double)
 Updates the maximum derivative of the FunctionOfTime at a given time while also resetting the expiration. By default, a FunctionOfTime cannot be updated. More...
 
virtual void reset_expiration_time (double)
 Resets the expiration time to a new value. By default, the expiration time of a FunctionOfTime cannot be reset. More...
 
virtual std::array< DataVector, 1 > func (double t) const =0
 The DataVector can be of any size. More...
 
virtual std::array< DataVector, 2 > func_and_deriv (double t) const =0
 The DataVector can be of any size. More...
 
virtual std::array< DataVector, 3 > func_and_2_derivs (double t) const =0
 The DataVector can be of any size. More...
 
 WRAPPED_PUPable_abstract (FunctionOfTime)
 

Friends

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

Detailed Description

Given an initial function of time, transitions the map to a constant-in-time value.

Given an initial function \(f(t)\) and its first two derivatives at the matching time \(t_0\), the constant coefficients \(A,B,C\) are computed such that the resulting function of time \(g(t)\) satisfies \(g(t=t_0)=f(t=t_0)\) and approaches a constant value for \(t > t_0\) on a timescale of \(\tau\). The resultant function is

\[ g(t) = A + (B+C(t-t_0)) e^{-(t-t_0)/\tau} \]

where \(\tau\)=decay_time and \(t_0\)=match_time.

Member Function Documentation

◆ func()

std::array< DataVector, 1 > domain::FunctionsOfTime::SettleToConstant::func ( const double  t) const
inlineoverridevirtual

Returns the function at an arbitrary time t.

Implements domain::FunctionsOfTime::FunctionOfTime.

◆ func_and_2_derivs()

std::array< DataVector, 3 > domain::FunctionsOfTime::SettleToConstant::func_and_2_derivs ( const double  t) const
inlineoverridevirtual

Returns the function and the first two derivatives at an arbitrary time t.

Implements domain::FunctionsOfTime::FunctionOfTime.

◆ func_and_deriv()

std::array< DataVector, 2 > domain::FunctionsOfTime::SettleToConstant::func_and_deriv ( const double  t) const
inlineoverridevirtual

Returns the function and its first derivative at an arbitrary time t.

Implements domain::FunctionsOfTime::FunctionOfTime.

◆ get_clone()

auto domain::FunctionsOfTime::SettleToConstant::get_clone ( ) const -> std::unique_ptr< FunctionOfTime >
overridevirtual

◆ time_bounds()

std::array< double, 2 > domain::FunctionsOfTime::SettleToConstant::time_bounds ( ) const
inlineoverridevirtual

Returns the domain of validity of the function.

Implements domain::FunctionsOfTime::FunctionOfTime.


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