SpECTRE  2021.08.02
domain::FunctionsOfTime::PiecewisePolynomial< MaxDeriv > Class Template Reference

A function that has a piecewise-constant MaxDerivth derivative. More...

#include <PiecewisePolynomial.hpp>

Public Member Functions

 PiecewisePolynomial (double t, std::array< DataVector, MaxDeriv+1 > initial_func_and_derivs, double expiration_time) noexcept
 
 PiecewisePolynomial (PiecewisePolynomial &&) noexcept=default
 
PiecewisePolynomialoperator= (PiecewisePolynomial &&) noexcept=default
 
 PiecewisePolynomial (const PiecewisePolynomial &)=default
 
PiecewisePolynomialoperator= (const PiecewisePolynomial &)=default
 
 PiecewisePolynomial (CkMigrateMessage *)
 
auto get_clone () const noexcept -> std::unique_ptr< FunctionOfTime > override
 
 WRAPPED_PUPable_decl_template (PiecewisePolynomial< MaxDeriv >)
 
std::array< DataVector, 1 > func (double t) const noexcept override
 Returns the function at an arbitrary time t. More...
 
std::array< DataVector, 2 > func_and_deriv (double t) const noexcept override
 Returns the function and its first derivative at an arbitrary time t. More...
 
std::array< DataVector, 3 > func_and_2_derivs (double t) const noexcept override
 Returns the function and the first two derivatives at an arbitrary time t. More...
 
void update (double time_of_update, DataVector updated_max_deriv, double next_expiration_time) noexcept
 Updates the MaxDerivth derivative of the function at the given time. updated_max_deriv is a vector of the MaxDerivths for each component. next_expiration_time is the next expiration time.
 
void reset_expiration_time (double next_expiration_time) noexcept
 Used by FunctionOfTimeUpdater to reset the expiration time when it decides not to do an update, but instead decides to keep the current values valid for longer.
 
std::array< double, 2 > time_bounds () const noexcept override
 Returns the domain of validity of the function, including the extrapolation region. More...
 
void pup (PUP::er &p) override
 
- Public Member Functions inherited from domain::FunctionsOfTime::FunctionOfTime
 FunctionOfTime (FunctionOfTime &&) noexcept=default
 
FunctionOfTimeoperator= (FunctionOfTime &&) noexcept=default
 
 FunctionOfTime (const FunctionOfTime &)=default
 
FunctionOfTimeoperator= (const FunctionOfTime &)=default
 
 WRAPPED_PUPable_abstract (FunctionOfTime)
 

Friends

template<size_t LocalMaxDeriv>
bool operator== (const PiecewisePolynomial< LocalMaxDeriv > &lhs, const PiecewisePolynomial< LocalMaxDeriv > &rhs) noexcept
 

Detailed Description

template<size_t MaxDeriv>
class domain::FunctionsOfTime::PiecewisePolynomial< MaxDeriv >

A function that has a piecewise-constant MaxDerivth derivative.

Member Function Documentation

◆ func()

template<size_t MaxDeriv>
std::array< DataVector, 1 > domain::FunctionsOfTime::PiecewisePolynomial< MaxDeriv >::func ( double  t) const
inlineoverridevirtualnoexcept

Returns the function at an arbitrary time t.

Implements domain::FunctionsOfTime::FunctionOfTime.

◆ func_and_2_derivs()

template<size_t MaxDeriv>
std::array< DataVector, 3 > domain::FunctionsOfTime::PiecewisePolynomial< MaxDeriv >::func_and_2_derivs ( double  t) const
inlineoverridevirtualnoexcept

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

Implements domain::FunctionsOfTime::FunctionOfTime.

◆ func_and_deriv()

template<size_t MaxDeriv>
std::array< DataVector, 2 > domain::FunctionsOfTime::PiecewisePolynomial< MaxDeriv >::func_and_deriv ( double  t) const
inlineoverridevirtualnoexcept

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

Implements domain::FunctionsOfTime::FunctionOfTime.

◆ get_clone()

template<size_t MaxDeriv>
auto domain::FunctionsOfTime::PiecewisePolynomial< MaxDeriv >::get_clone ( ) const -> std::unique_ptr< FunctionOfTime >
overridevirtualnoexcept

◆ time_bounds()

template<size_t MaxDeriv>
std::array< double, 2 > domain::FunctionsOfTime::PiecewisePolynomial< MaxDeriv >::time_bounds ( ) const
inlineoverridevirtualnoexcept

Returns the domain of validity of the function, including the extrapolation region.

Implements domain::FunctionsOfTime::FunctionOfTime.