Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include <cstddef>
7 :
8 : #include "Time/StepChoosers/ByBlock.hpp"
9 : #include "Time/StepChoosers/Cfl.hpp"
10 : #include "Time/StepChoosers/Constant.hpp"
11 : #include "Time/StepChoosers/ElementSizeCfl.hpp"
12 : #include "Time/StepChoosers/ErrorControl.hpp"
13 : #include "Time/StepChoosers/LimitIncrease.hpp"
14 : #include "Time/StepChoosers/Maximum.hpp"
15 : #include "Time/StepChoosers/PreventRapidIncrease.hpp"
16 : #include "Time/StepChoosers/Random.hpp"
17 : #include "Time/StepChoosers/StepToTimes.hpp"
18 : #include "Utilities/TMPL.hpp"
19 :
20 : /// \cond
21 : namespace Frame {
22 : struct Inertial;
23 : } // namespace Frame
24 : /// \endcond
25 :
26 : namespace StepChoosers {
27 : namespace Factory_detail {
28 : template <typename Use, typename System, bool HasCharSpeedFunctions>
29 : using common_step_choosers = tmpl::push_back<
30 : tmpl::conditional_t<
31 : HasCharSpeedFunctions,
32 : tmpl::list<StepChoosers::Cfl<Frame::Inertial, System>,
33 : StepChoosers::ElementSizeCfl<System::volume_dim, System>>,
34 : tmpl::list<>>,
35 : StepChoosers::ByBlock<System::volume_dim>, StepChoosers::Constant,
36 : StepChoosers::ErrorControl<Use, System>, StepChoosers::LimitIncrease,
37 : StepChoosers::Maximum, StepChoosers::PreventRapidIncrease<System>,
38 : StepChoosers::Random<System::volume_dim>>;
39 : } // namespace Factory_detail
40 :
41 : template <typename System, bool HasCharSpeedFunctions = true>
42 0 : using standard_step_choosers =
43 : Factory_detail::common_step_choosers<StepChooserUse::LtsStep, System,
44 : HasCharSpeedFunctions>;
45 :
46 : template <typename System, bool HasCharSpeedFunctions = true>
47 0 : using standard_slab_choosers =
48 : tmpl::push_back<Factory_detail::common_step_choosers<
49 : StepChooserUse::Slab, System, HasCharSpeedFunctions>,
50 : StepChoosers::StepToTimes>;
51 : } // namespace StepChoosers
|