Alamo
sfi.cc
Go to the documentation of this file.
1#include "IO/ParmParse.H"
4#include "Integrator/Flame.H"
5#include "Util/Util.H"
6
7#if AMREX_SPACEDIM==2
8#include "Integrator/SFI.H"
9#endif
10
11int main (int argc, char* argv[])
12{
13 Util::Initialize(argc,argv);
14
15 #if AMREX_SPACEDIM==2
17 std::string program;
18
19 // Validate/make sure the correct Alamo program/Inetrgator is used
20 pp.query_validate("alamo.program", program, { "allencahn", "dendrite", "flame" });
21 srand(2);
22
23 Integrator::Integrator *integrator = nullptr;
24
25 if (program == "allencahn") pp.select_only<Integrator::SFI<Integrator::AllenCahn>>(integrator);
26 else if (program == "dendrite") pp.select_only<Integrator::SFI<Integrator::Dendrite>>(integrator);
27 else if (program == "flame") pp.select_only<Integrator::SFI<Integrator::Flame>>(integrator);
28 else
29 {
30 Util::Abort(INFO, "Invalid program option: " + program);
31 return 1; // This line won't execute, but it tells the compiler the following lines won't execute.
32 }
33
34
35 integrator->InitData();
36 integrator->Evolve();
37
38 delete integrator;
39 #else
40
41 Util::Abort(INFO,"This integrator works in 2D only");
42
43 #endif
44
45
47}
#define INFO
Definition Util.H:21
void select_only(PTRTYPE *&ic_eta, Args &&args)
Definition ParmParse.H:1205
int query_validate(std::string name, int &value, std::vector< int > possibleintvals)
Definition ParmParse.H:336
void InitData()
Front-end method to initialize simulation on all levels.
void Evolve()
Front-end method to start simulation.
void Abort(const char *msg)
Definition Util.cpp:243
void Finalize()
Definition Util.cpp:231
void Initialize()
Definition Util.cpp:130
int main(int argc, char *argv[])
Definition sfi.cc:11