WorldtubeBoundaryMocking.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 
8 #include "Evolution/Systems/Cce/Actions/BoundaryComputeAndSendToEvolution.hpp"
9 #include "Evolution/Systems/Cce/Actions/InitializeWorldtubeBoundary.hpp"
10 #include "Evolution/Systems/Cce/BoundaryData.hpp"
11 #include "Evolution/Systems/Cce/Components/WorldtubeBoundary.hpp"
12 #include "Evolution/Systems/Cce/Tags.hpp"
13 #include "Framework/ActionTesting.hpp"
14 #include "NumericalAlgorithms/Spectral/SwshTags.hpp"
15 #include "ParallelAlgorithms/Initialization/Actions/RemoveOptionsAndTerminatePhase.hpp"
16 #include "Utilities/TMPL.hpp"
17 
18 namespace Cce {
19 /// \cond
20 namespace { // NOLINT
21 struct test_metavariables;
22 template <typename Metavariables>
23 struct mock_characteristic_evolution;
24 } // namespace
25 namespace Actions {
26 namespace { // NOLINT
27 template <typename BoundaryComponent, typename EvolutionComponent>
28 struct MockBoundaryComputeAndSendToEvolution;
29 } // namespace
30 } // namespace Actions
31 /// \endcond
32 
33 template <typename Metavariables>
36  using replace_these_simple_actions =
39  mock_characteristic_evolution<test_metavariables>>>;
40  using with_these_simple_actions =
41  tmpl::list<Actions::MockBoundaryComputeAndSendToEvolution<
43  mock_characteristic_evolution<test_metavariables>>>;
44 
45  using initialize_action_list =
48  using initialization_tags =
50 
51  using metavariables = Metavariables;
53  using array_index = size_t;
54 
55  using simple_tags = tmpl::list<>;
56  using phase_dependent_action_list = tmpl::list<
57  Parallel::PhaseActions<typename Metavariables::Phase,
58  Metavariables::Phase::Initialization,
59  initialize_action_list>,
60  Parallel::PhaseActions<typename Metavariables::Phase,
61  Metavariables::Phase::Evolve, tmpl::list<>>>;
62 };
63 
64 template <typename Metavariables>
67  using replace_these_simple_actions =
70  mock_characteristic_evolution<test_metavariables>>>;
71  using with_these_simple_actions =
72  tmpl::list<Actions::MockBoundaryComputeAndSendToEvolution<
74  mock_characteristic_evolution<test_metavariables>>>;
75 
76  using initialize_action_list =
79  using initialization_tags =
81 
82  using metavariables = Metavariables;
84  using array_index = size_t;
85 
86  using simple_tags = tmpl::list<>;
87  using phase_dependent_action_list = tmpl::list<
88  Parallel::PhaseActions<typename Metavariables::Phase,
89  Metavariables::Phase::Initialization,
90  initialize_action_list>,
91  Parallel::PhaseActions<typename Metavariables::Phase,
92  Metavariables::Phase::Evolve, tmpl::list<>>>;
93  using const_global_cache_tags =
95  phase_dependent_action_list>;
96 };
97 } // namespace Cce
Cce::Actions::InitializeGhWorldtubeBoundary
Initializes a GhWorldtubeBoundary.
Definition: InitializeWorldtubeBoundary.hpp:122
Parallel::get_const_global_cache_tags_from_actions
tmpl::remove_duplicates< tmpl::join< tmpl::transform< ActionsList, detail::get_const_global_cache_tags_from_parallel_struct< tmpl::_1 > >> > get_const_global_cache_tags_from_actions
Given a list of Actions, get a list of the unique tags specified in the actions' const_global_cache_t...
Definition: ParallelComponentHelpers.hpp:66
Initialization::Actions::RemoveOptionsAndTerminatePhase
Definition: RemoveOptionsAndTerminatePhase.hpp:27
Parallel::get_initialization_tags
tmpl::remove_duplicates< tmpl::flatten< tmpl::list< AllocationTagsList, tmpl::transform< InitializationActionsList, detail::get_initialization_tags_from_action< tmpl::_1 > >> >> get_initialization_tags
Given a list of initialization actions, and possibly a list of tags needed for allocation of an array...
Definition: ParallelComponentHelpers.hpp:140
Parallel::PhaseActions
List of all the actions to be executed in the specified phase.
Definition: PhaseDependentActionList.hpp:16
cstddef
Cce::mock_h5_worldtube_boundary
Definition: WorldtubeBoundaryMocking.hpp:34
Cce::H5WorldtubeBoundary
Component that supplies CCE worldtube boundary data.
Definition: WorldtubeBoundary.hpp:39
Cce::Actions::InitializeH5WorldtubeBoundary
Initializes a H5WorldtubeBoundary.
Definition: InitializeWorldtubeBoundary.hpp:48
ActionTesting::MockArrayChare
A mock class for the CMake-generated Parallel::Algorithms::Array
Definition: ActionTesting.hpp:1588
Cce
The set of utilities for performing Cauchy characteristic evolution and Cauchy characteristic matchin...
Definition: BoundaryComputeAndSendToEvolution.hpp:28
Cce::GhWorldtubeBoundary
Component that supplies CCE worldtube boundary data sourced from a running GH system.
Definition: WorldtubeBoundary.hpp:106
TMPL.hpp
Cce::Actions::BoundaryComputeAndSendToEvolution
Obtains the CCE boundary data at the specified time, and reports it to the EvolutionComponent via Act...
Definition: BoundaryComputeAndSendToEvolution.hpp:40
Cce::mock_gh_worldtube_boundary
Definition: WorldtubeBoundaryMocking.hpp:65