18#ifndef OPAL_SINUSOIDALTIMEDEPENDENCE_H
19#define OPAL_SINUSOIDALTIMEDEPENDENCE_H
44 const std::vector<double>& f,
const std::vector<double>& p,
const std::vector<double>&
a,
45 const std::vector<double>& o);
56 double getValue(
double time)
override;
75 std::vector<double>
f_m;
76 std::vector<double>
p_m;
77 std::vector<double>
a_m;
78 std::vector<double>
o_m;
Inform & operator<<(Inform &os, const SinusoidalTimeDependence &p)
Time dependence abstraction for field parameters that vary slowly with time; for example,...
Time dependence that follows sum of a set of sinusoids sigma_over_i(a[i] / 2 * sin(2 * pi * f[i] * t ...
std::vector< double > f_m
SinusoidalTimeDependence * clone() override
Inheritable clone function.
Inform & print(Inform &os) const
Print the sinusoidals.
~SinusoidalTimeDependence() override=default
Destructor does default.
std::vector< double > a_m
std::vector< double > o_m
SinusoidalTimeDependence()=default
Default Constructor makes a 0 length polynomial.
double getIntegral(double time) override
Return the integral from 0 to time.
double getValue(double time) override
Return the sinusoidal value.
std::vector< double > p_m