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