59 MPI_Init(&argc, &argv);
66 MPI_COMM_WORLD,
"No input file provided. Exiting!!");
71 for (
auto i = 1; i < argc; i++) {
72 const std::string param(argv[i]);
73 if ((param ==
"--help") || (param ==
"-h") || (param ==
"--usage")) {
80 if (!amrex::FileSystem::Exists(std::string(argv[1]))) {
84 MPI_COMM_WORLD,
"Input file does not exist = " +
85 std::string(argv[1]) +
". Exiting!!");
92 for (
auto i = 1; i < argc; i++) {
93 if (std::string(argv[i]) ==
"--describe") {
99 amrex::Initialize(argc,argv,
true,MPI_COMM_WORLD,
add_par);
102 if (!strchr(argv[1],
'=')) {
107 BL_PROFILE_VAR(
"main()", pmain);
110 const Real strt_total = amrex::second();
112 #ifdef ERF_USE_MULTIBLOCK
115 std::vector<RealBox> rb_v;
116 std::vector<int> max_level_v;
117 std::vector<int> coord_v;
118 std::vector<amrex::Vector<int>> n_cell_v;
119 std::vector<amrex::Array<int,AMREX_SPACEDIM>> is_per_v;
120 std::vector<amrex::Vector<amrex::IntVect>> ref_rat_v;
121 std::vector<std::string> prefix_v;
128 amrex::Vector<int> n_cell = {1,1,1};
129 amrex::Array<int,AMREX_SPACEDIM> is_per = {1,1,1};
130 amrex::Vector<amrex::IntVect> ref_rat = {amrex::IntVect(1,1,1)};
135 pp.query(
"max_step", max_step);
140 ParmParse
pp(
"erf1");
141 amrex::Vector<Real> lo = {0.,0.,0.};
142 amrex::Vector<Real> hi = {0.,0.,0.};
143 amrex::Vector<int> periodicity = {1,1,1};
144 pp.queryarr(
"prob_lo",lo);
145 pp.queryarr(
"prob_hi",hi);
148 pp.query(
"max_level",max_level);
149 pp.query(
"coord",coord);
150 pp.queryarr(
"n_cell",n_cell);
151 pp.queryarr(
"is_periodic",periodicity);
153 for(
int i(0); i<AMREX_SPACEDIM; i++ ) is_per[i] = periodicity[i];
155 pp.queryarr(
"ref_ratio",ref_rat);
158 max_level_v.push_back(max_level);
159 coord_v.push_back(coord);
160 n_cell_v.push_back(n_cell);
161 is_per_v.push_back(is_per);
162 ref_rat_v.push_back(ref_rat);
163 prefix_v.push_back(
"erf1");
168 ParmParse
pp(
"erf2");
169 amrex::Vector<Real> lo = {0.,0.,0.};
170 amrex::Vector<Real> hi = {0.,0.,0.};
171 amrex::Vector<int> periodicity = {1,1,1};
172 pp.queryarr(
"prob_lo",lo);
173 pp.queryarr(
"prob_hi",hi);
176 pp.query(
"max_level",max_level);
177 pp.query(
"coord",coord);
178 pp.queryarr(
"n_cell",n_cell);
179 pp.queryarr(
"is_periodic",periodicity);
181 for(
int i(0); i<AMREX_SPACEDIM; i++ ) is_per[i] = periodicity[i];
183 pp.queryarr(
"ref_ratio",ref_rat);
186 max_level_v.push_back(max_level);
187 coord_v.push_back(coord);
188 n_cell_v.push_back(n_cell);
189 is_per_v.push_back(is_per);
190 ref_rat_v.push_back(ref_rat);
191 prefix_v.push_back(
"erf2");
197 coord_v, ref_rat_v, is_per_v,
201 mbc.InitializeBlocks();
219 Real end_total = amrex::second() - strt_total;
222 ParallelDescriptor::ReduceRealMax(end_total ,ParallelDescriptor::IOProcessorNumber());
224 amrex::Print() <<
"\nTotal Time: " << end_total <<
'\n';
230 BL_PROFILE_VAR_STOP(pmain);
void Evolve()
Definition: ERF.cpp:324
static void print_banner(MPI_Comm, std::ostream &)
Definition: console_io.cpp:60
void InitData()
Definition: ERF.cpp:535
static void print_error(MPI_Comm, const std::string &msg)
Definition: console_io.cpp:43
static void writeBuildInfo(std::ostream &os)
Definition: writeJobInfo.cpp:137
static void print_usage(MPI_Comm, std::ostream &)
Definition: console_io.cpp:26
Definition: MultiBlockContainer.H:8
void add_par()
Definition: main.cpp:24
std::string inputs_name
Definition: main.cpp:14