Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include "Evolution/Systems/GrMhd/GhValenciaDivClean/Actions/SetInitialData.hpp"
7 : #include "PointwiseFunctions/AnalyticData/GhGrMhd/Factory.hpp"
8 : #include "PointwiseFunctions/AnalyticSolutions/GeneralRelativity/Factory.hpp"
9 : #include "PointwiseFunctions/AnalyticSolutions/GhGrMhd/Factory.hpp"
10 : #include "PointwiseFunctions/AnalyticSolutions/GhRelativisticEuler/Factory.hpp"
11 : #include "PointwiseFunctions/AnalyticSolutions/RadiationTransport/MonteCarlo/Factory.hpp"
12 : #include "Utilities/TMPL.hpp"
13 :
14 : // Check if SpEC is linked and therefore we can load SpEC initial data
15 : #ifdef HAS_SPEC_EXPORTER
16 : #include "PointwiseFunctions/AnalyticData/GrMhd/SpecInitialData.hpp"
17 : using SpecInitialDataList = tmpl::list<grmhd::AnalyticData::SpecInitialData<1>,
18 : grmhd::AnalyticData::SpecInitialData<2>,
19 : grmhd::AnalyticData::SpecInitialData<3>>;
20 : #else
21 0 : using SpecInitialDataList = NoSuchType;
22 : #endif
23 :
24 : // Check if FUKA is linked and therefore we can load FUKA initial data
25 : #ifdef HAS_FUKA_EXPORTER
26 : #include "PointwiseFunctions/AnalyticData/GrMhd/FukaInitialData.hpp"
27 : using FukaInitialDataList = tmpl::list<grmhd::AnalyticData::FukaInitialData>;
28 : #else
29 0 : using FukaInitialDataList = NoSuchType;
30 : #endif
31 :
32 0 : namespace ghmhd::GhValenciaDivClean::InitialData {
33 : // These are solutions that can be used for analytic prescriptions
34 0 : using analytic_solutions_and_data_list =
35 : tmpl::append<gh::RelativisticEuler::Solutions::all_solutions,
36 : gh::grmhd::Solutions::all_solutions,
37 : RadiationTransport::MonteCarlo::Solutions::all_solutions,
38 : gh::grmhd::AnalyticData::all_analytic_data>;
39 0 : using initial_data_list = tmpl::flatten<tmpl::list<
40 : analytic_solutions_and_data_list,
41 : tmpl::flatten<tmpl::list<
42 : grmhd::GhValenciaDivClean::NumericInitialData,
43 : tmpl::conditional_t<std::is_same_v<SpecInitialDataList, NoSuchType>,
44 : tmpl::list<>, SpecInitialDataList>,
45 : tmpl::conditional_t<std::is_same_v<FukaInitialDataList, NoSuchType>,
46 : tmpl::list<>, FukaInitialDataList>>>>>;
47 : } // namespace ghmhd::GhValenciaDivClean::InitialData
|