Skip to content

Commit

Permalink
Merge pull request sxs-collaboration#5657 from wthrowe/no_time_steppe…
Browse files Browse the repository at this point in the history
…r_base_tag

Convert Tags::TimeStepper to not be a base tag
  • Loading branch information
kidder authored Dec 14, 2023
2 parents 69fad01 + 5d7535f commit 3dd0c98
Show file tree
Hide file tree
Showing 59 changed files with 454 additions and 252 deletions.
6 changes: 4 additions & 2 deletions src/ControlSystem/Actions/LimitTimeStep.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
#include "Parallel/GlobalCache.hpp"
#include "Time/ChangeSlabSize.hpp"
#include "Time/Tags/HistoryEvolvedVariables.hpp"
#include "Time/Tags/TimeStepper.hpp"
#include "Utilities/ErrorHandling/Assert.hpp"
#include "Utilities/ErrorHandling/Error.hpp"
#include "Utilities/Gsl.hpp"
Expand All @@ -26,7 +25,10 @@
namespace Tags {
struct TimeStep;
struct TimeStepId;
template <typename StepperInterface>
struct TimeStepper;
} // namespace Tags
class TimeStepper;
namespace control_system::Tags {
template <typename ControlSystems>
struct FutureMeasurements;
Expand Down Expand Up @@ -93,7 +95,7 @@ struct LimitTimeStep {
return {Parallel::AlgorithmExecution::Continue, std::nullopt};
}

const auto& time_stepper = db::get<::Tags::TimeStepper<>>(box);
const auto& time_stepper = db::get<::Tags::TimeStepper<TimeStepper>>(box);
if (time_stepper.number_of_substeps() == 1) {
// If there are no substeps, there is no reason to limit the
// step size so substeps can be evaluated. Single-substep FSAL
Expand Down
6 changes: 4 additions & 2 deletions src/Evolution/Actions/RunEventsAndDenseTriggers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
#include "Time/EvolutionOrdering.hpp"
#include "Time/Tags/HistoryEvolvedVariables.hpp"
#include "Time/Tags/Time.hpp"
#include "Time/Tags/TimeStepper.hpp"
#include "Time/TimeSteppers/TimeStepper.hpp"
#include "Utilities/Gsl.hpp"
#include "Utilities/TMPL.hpp"
Expand All @@ -41,6 +40,8 @@ class GlobalCache;
namespace Tags {
struct TimeStep;
struct TimeStepId;
template <typename StepperInterface>
struct TimeStepper;
} // namespace Tags
/// \endcond

Expand Down Expand Up @@ -269,7 +270,8 @@ struct RunEventsAndDenseTriggers {
dense_output_succeeded =
stepper.dense_update_u(vars, history, next_trigger);
},
make_not_null(&box), db::get<::Tags::TimeStepper<>>(box),
make_not_null(&box),
db::get<::Tags::TimeStepper<TimeStepper>>(box),
db::get<history_tag>(box));
if (not dense_output_succeeded) {
// Need to take another time step
Expand Down
6 changes: 4 additions & 2 deletions src/Evolution/DgSubcell/Actions/TciAndSwitchToDg.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@
#include "Parallel/AlgorithmExecution.hpp"
#include "Time/History.hpp"
#include "Time/Tags/HistoryEvolvedVariables.hpp"
#include "Time/Tags/TimeStepper.hpp"
#include "Time/TimeStepId.hpp"
#include "Utilities/ContainerHelpers.hpp"
#include "Utilities/ErrorHandling/Assert.hpp"
Expand All @@ -51,7 +50,10 @@ class GlobalCache;
} // namespace Parallel
namespace Tags {
struct TimeStepId;
template <typename StepperInterface>
struct TimeStepper;
} // namespace Tags
class TimeStepper;
namespace tuples {
template <typename...>
class TaggedTuple;
Expand Down Expand Up @@ -246,7 +248,7 @@ struct TciAndSwitchToDg {
// the entire TCI history is `ActiveGrid::Dg`.
// - Substep: the easiest is to restrict switching back to DG to step
// boundaries where there is no history.
const auto& time_stepper = db::get<::Tags::TimeStepper<>>(box);
const auto& time_stepper = db::get<::Tags::TimeStepper<TimeStepper>>(box);
const bool is_substep_method = time_stepper.number_of_substeps() != 1;
ASSERT(time_stepper.number_of_substeps() != 0,
"Don't know how to handle a time stepper with zero substeps. This "
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@
#include "Parallel/GlobalCache.hpp"
#include "Time/BoundaryHistory.hpp"
#include "Time/EvolutionOrdering.hpp"
#include "Time/Tags/TimeStepper.hpp"
#include "Time/Time.hpp"
#include "Time/TimeStepId.hpp"
#include "Time/TimeSteppers/LtsTimeStepper.hpp"
Expand All @@ -59,6 +58,8 @@ namespace Tags {
struct Time;
struct TimeStep;
struct TimeStepId;
template <typename StepperInterface>
struct TimeStepper;
} // namespace Tags
/// \endcond

Expand Down Expand Up @@ -361,7 +362,8 @@ struct ApplyBoundaryCorrections {
domain::Tags::Mesh<volume_dim>, Tags::MortarMesh<volume_dim>,
Tags::MortarSize<volume_dim>, ::dg::Tags::Formulation,
evolution::dg::Tags::NormalCovectorAndMagnitude<volume_dim>,
::Tags::TimeStepper<>, evolution::Tags::BoundaryCorrection<system>,
::Tags::TimeStepper<TimeStepperType>,
evolution::Tags::BoundaryCorrection<system>,
tmpl::conditional_t<DenseOutput, ::Tags::Time, ::Tags::TimeStep>,
tmpl::conditional_t<local_time_stepping, tmpl::list<>,
domain::Tags::DetInvJacobian<Frame::ElementLogical,
Expand Down
7 changes: 5 additions & 2 deletions src/Evolution/Executables/Burgers/EvolveBurgers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,10 @@ struct EvolutionMetavars {
static constexpr size_t volume_dim = 1;
using system = Burgers::System;
using temporal_id = Tags::TimeStepId;
static constexpr bool local_time_stepping = false;
using TimeStepperBase = TimeStepper;

static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

// The use_dg_subcell flag controls whether to use "standard" limiting (false)
// or a DG-FD hybrid scheme (true).
Expand Down Expand Up @@ -281,7 +284,7 @@ struct EvolutionMetavars {

using initialization_actions = tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<EvolutionMetavars, local_time_stepping>,
Initialization::TimeStepping<EvolutionMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<1>,
Initialization::TimeStepperHistory<EvolutionMetavars>>,
Initialization::Actions::ConservativeSystem<system>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,10 @@ struct EvolutionMetavars {

using system = CurvedScalarWave::System<Dim>;
using temporal_id = Tags::TimeStepId;
static constexpr bool local_time_stepping = true;
using TimeStepperBase = LtsTimeStepper;

static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

using analytic_solution_fields = typename system::variables_tag::tags_list;
using deriv_compute = ::Tags::DerivCompute<
Expand Down Expand Up @@ -271,7 +274,7 @@ struct EvolutionMetavars {

using initialization_actions = tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<EvolutionMetavars, local_time_stepping>,
Initialization::TimeStepping<EvolutionMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<volume_dim>,
Initialization::TimeStepperHistory<EvolutionMetavars>>,
Initialization::Actions::NonconservativeSystem<system>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,9 +141,11 @@ struct EvolutionMetavars {

using system = CurvedScalarWave::System<volume_dim>;
using temporal_id = Tags::TimeStepId;
// LTS not implemented yet
using TimeStepperBase = TimeStepper;

// not implemented yet
static constexpr bool local_time_stepping = false;
static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

using analytic_solution_fields = typename system::variables_tag::tags_list;
using deriv_compute = ::Tags::DerivCompute<
Expand Down Expand Up @@ -274,7 +276,7 @@ struct EvolutionMetavars {

using initialization_actions = tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<EvolutionMetavars, local_time_stepping>,
Initialization::TimeStepping<EvolutionMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<volume_dim>,
Initialization::TimeStepperHistory<EvolutionMetavars>>,
Initialization::Actions::NonconservativeSystem<system>,
Expand Down
7 changes: 5 additions & 2 deletions src/Evolution/Executables/ForceFree/EvolveForceFree.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,10 @@ struct EvolutionMetavars {
static constexpr size_t volume_dim = 3;
using system = ForceFree::System;
using temporal_id = Tags::TimeStepId;
static constexpr bool local_time_stepping = false;
using TimeStepperBase = TimeStepper;

static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

using initial_data_list = tmpl::append<ForceFree::Solutions::all_solutions,
ForceFree::AnalyticData::all_data>;
Expand Down Expand Up @@ -201,7 +204,7 @@ struct EvolutionMetavars {

using initialization_actions = tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<EvolutionMetavars, local_time_stepping>,
Initialization::TimeStepping<EvolutionMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<volume_dim>,
Initialization::TimeStepperHistory<EvolutionMetavars>>,
Initialization::Actions::AddSimpleTags<
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ struct EvolutionMetavars : public GeneralizedHarmonicTemplateBase<3>,
using typename gh_base::initialize_initial_data_dependent_quantities_actions;
using cce_boundary_component = Cce::GhWorldtubeBoundary<EvolutionMetavars>;

using TimeStepperBase = typename gh_base::TimeStepperBase;
static constexpr bool local_time_stepping = gh_base::local_time_stepping;

template <bool DuringSelfStart>
Expand Down Expand Up @@ -133,7 +134,7 @@ struct EvolutionMetavars : public GeneralizedHarmonicTemplateBase<3>,
// addition of initializing the interpolation points (second-to-last action).
using initialization_actions = tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<EvolutionMetavars, local_time_stepping>,
Initialization::TimeStepping<EvolutionMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<volume_dim>,
Initialization::TimeStepperHistory<EvolutionMetavars>>,
Initialization::Actions::NonconservativeSystem<system>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,10 @@ struct EvolutionMetavars {
static constexpr dg::Formulation dg_formulation =
dg::Formulation::StrongInertial;
using temporal_id = Tags::TimeStepId;
static constexpr bool local_time_stepping = true;
using TimeStepperBase = LtsTimeStepper;

static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

using initialize_initial_data_dependent_quantities_actions = tmpl::list<
Actions::MutateApply<gh::gauges::SetPiAndPhiFromConstraints<volume_dim>>,
Expand Down Expand Up @@ -529,7 +532,7 @@ struct EvolutionMetavars {

using initialization_actions = tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<EvolutionMetavars, local_time_stepping>,
Initialization::TimeStepping<EvolutionMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<volume_dim,
use_control_systems>,
Initialization::TimeStepperHistory<EvolutionMetavars>>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,10 @@ template <size_t VolumeDim>
struct GeneralizedHarmonicTemplateBase {
static constexpr size_t volume_dim = VolumeDim;
using system = gh::System<volume_dim>;
static constexpr bool local_time_stepping = false;
using TimeStepperBase = TimeStepper;

static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

// NOLINTNEXTLINE(google-runtime-references)
void pup(PUP::er& /*p*/) {}
Expand Down Expand Up @@ -364,7 +367,7 @@ struct GeneralizedHarmonicTemplateBase {
template <typename DerivedMetavars, bool UseControlSystems>
using initialization_actions = tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<DerivedMetavars, local_time_stepping>,
Initialization::TimeStepping<DerivedMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<volume_dim, UseControlSystems>,
Initialization::TimeStepperHistory<DerivedMetavars>>,
Initialization::Actions::NonconservativeSystem<system>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,10 @@ struct GhValenciaDivCleanDefaults {
using domain_frame = Frame::Inertial;
static constexpr bool use_damped_harmonic_rollon = true;
using temporal_id = Tags::TimeStepId;
static constexpr bool local_time_stepping = false;
using TimeStepperBase = TimeStepper;

static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

using system = grmhd::GhValenciaDivClean::System;
using analytic_variables_tags =
Expand Down Expand Up @@ -347,6 +350,7 @@ struct GhValenciaDivCleanTemplateBase<
static constexpr bool use_damped_harmonic_rollon =
defaults::use_damped_harmonic_rollon;
using temporal_id = typename defaults::temporal_id;
using TimeStepperBase = typename defaults::TimeStepperBase;
static constexpr bool local_time_stepping = defaults::local_time_stepping;
using system = typename defaults::system;
using analytic_variables_tags = typename defaults::analytic_variables_tags;
Expand Down Expand Up @@ -783,7 +787,7 @@ struct GhValenciaDivCleanTemplateBase<

using initialization_actions = tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<derived_metavars, local_time_stepping>,
Initialization::TimeStepping<derived_metavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<3, use_control_systems>,
Initialization::TimeStepperHistory<derived_metavars>>,
Initialization::Actions::ConservativeSystem<system>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,11 @@ struct EvolutionMetavars<tmpl::list<InterpolationTargetTags...>,
using initial_data_tag = evolution::initial_data::Tags::InitialData;
using system = grmhd::ValenciaDivClean::System;
using temporal_id = Tags::TimeStepId;
static constexpr bool local_time_stepping = false;
using TimeStepperBase = TimeStepper;

static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

using analytic_variables_tags =
typename system::primitive_variables_tag::tags_list;
using equation_of_state_tag = hydro::Tags::GrmhdEquationOfState;
Expand Down Expand Up @@ -506,7 +510,7 @@ struct EvolutionMetavars<tmpl::list<InterpolationTargetTags...>,

using initialization_actions = tmpl::flatten<tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<EvolutionMetavars, local_time_stepping>,
Initialization::TimeStepping<EvolutionMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<3>,
Initialization::TimeStepperHistory<EvolutionMetavars>>,
Initialization::Actions::AddSimpleTags<
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,10 @@ struct EvolutionMetavars {
using system = NewtonianEuler::System<Dim, initial_data>;

using temporal_id = Tags::TimeStepId;
static constexpr bool local_time_stepping = false;
using TimeStepperBase = TimeStepper;

static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

using initial_data_tag =
tmpl::conditional_t<is_analytic_solution_v<initial_data>,
Expand Down Expand Up @@ -254,7 +257,7 @@ struct EvolutionMetavars {

using initialization_actions = tmpl::flatten<tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<EvolutionMetavars, local_time_stepping>,
Initialization::TimeStepping<EvolutionMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<Dim>,
Initialization::TimeStepperHistory<EvolutionMetavars>>,
Initialization::Actions::ConservativeSystem<system>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,11 @@ struct EvolutionMetavars {

using system = RadiationTransport::M1Grey::System<neutrino_species>;
using temporal_id = Tags::TimeStepId;
static constexpr bool local_time_stepping = false;
using TimeStepperBase = TimeStepper;

static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

using initial_data_tag =
tmpl::conditional_t<is_analytic_solution_v<initial_data>,
Tags::AnalyticSolution<initial_data>,
Expand Down Expand Up @@ -208,7 +212,7 @@ struct EvolutionMetavars {

using initialization_actions = tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<EvolutionMetavars, local_time_stepping>,
Initialization::TimeStepping<EvolutionMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<volume_dim>,
Initialization::TimeStepperHistory<EvolutionMetavars>>,
Initialization::Actions::AddSimpleTags<
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,10 @@ struct EvolutionMetavars {
using system = RelativisticEuler::Valencia::System<Dim>;

using temporal_id = Tags::TimeStepId;
static constexpr bool local_time_stepping = false;
using TimeStepperBase = TimeStepper;

static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

using initial_data_tag =
tmpl::conditional_t<is_analytic_solution_v<initial_data>,
Expand Down Expand Up @@ -227,7 +230,7 @@ struct EvolutionMetavars {

using initialization_actions = tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<EvolutionMetavars, local_time_stepping>,
Initialization::TimeStepping<EvolutionMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<Dim>,
Initialization::TimeStepperHistory<EvolutionMetavars>>,
Initialization::Actions::AddSimpleTags<
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,10 @@ struct EvolutionMetavars {
static constexpr size_t volume_dim = Dim;
using system = ScalarAdvection::System<Dim>;
using temporal_id = Tags::TimeStepId;
static constexpr bool local_time_stepping = false;
using TimeStepperBase = TimeStepper;

static constexpr bool local_time_stepping =
TimeStepperBase::local_time_stepping;

// The use_dg_subcell flag controls whether to use "standard" limiting (false)
// or a DG-FD hybrid scheme (true).
Expand Down Expand Up @@ -302,7 +305,7 @@ struct EvolutionMetavars {

using initialization_actions = tmpl::list<
Initialization::Actions::InitializeItems<
Initialization::TimeStepping<EvolutionMetavars, local_time_stepping>,
Initialization::TimeStepping<EvolutionMetavars, TimeStepperBase>,
evolution::dg::Initialization::Domain<volume_dim>,
Initialization::TimeStepperHistory<EvolutionMetavars>>,
Initialization::Actions::ConservativeSystem<system>,
Expand Down
Loading

0 comments on commit 3dd0c98

Please sign in to comment.