MinimalExecutable.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 /// \cond
4 #pragma once
5 
6 #include <vector>
7 
8 #include "Options/Options.hpp"
9 #include "Utilities/TMPL.hpp"
10 
11 namespace Parallel {
12 template <typename Metavariables>
13 class CProxy_ConstGlobalCache;
14 } // namespace Parallel
15 
16 /// [metavariables_definition]
17 struct Metavariables {
18  using component_list = tmpl::list<>;
19 
20  enum class Phase { Initialization, Exit };
21 
22  static Phase determine_next_phase(
23  const Phase& /*current_phase*/,
24  const Parallel::CProxy_ConstGlobalCache<
25  Metavariables>& /*cache_proxy*/) noexcept {
26  return Phase::Exit;
27  }
28 
29  static constexpr OptionString help{"A minimal executable"};
30 };
31 /// [metavariables_definition]
32 
33 /// [executable_example_charm_init]
34 static const std::vector<void (*)()> charm_init_node_funcs{};
35 static const std::vector<void (*)()> charm_init_proc_funcs{};
36 /// [executable_example_charm_init]
37 /// \endcond
Definition: ConservativeSystem.hpp:50
Defines classes and functions for making classes creatable from input files.
Contains functions that forward to Charm++ parallel functions.
Definition: Abort.hpp:13
const char *const OptionString
The string used in option structs.
Definition: Options.hpp:30
Wraps the template metaprogramming library used (brigand)