Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include <utility>
7 :
8 : namespace ScalarTensor {
9 : /// @{
10 : /*!
11 : * \brief Function to smoothly turn on the coupling terms.
12 : *
13 : * \details Implements Eq. B4 of \cite Okounkova:2019zjf :
14 : * \begin{align}
15 : * t_* &\equiv (t - t_\mathrm{s})/t_\mathrm{ramp} \,, \\
16 : * F(t) &= t_*^5 (126 + t_* (-420 + t_* (540 + t_* (-315 + 70 t_*))))~,
17 : * \end{align}
18 : * where $ t_\mathrm{s} $ and $ t_\mathrm{ramp} $ are parameters that
19 : * control the start time and duration of the turn-on period.
20 : * Note that $F(t)$ is `smoothstep<4>`.
21 : */
22 1 : double nonic_ramp_function(double time, double start_time, double ramp_time);
23 :
24 1 : double nonic_ramp_function(double time,
25 : std::pair<double, double> start_and_ramp_times);
26 : /// @}
27 : } // namespace ScalarTensor
|