3#ifndef INTEGRATOR_SFI_H
4#define INTEGRATOR_SFI_H
40 Hydro::Initialize(lev);
43 void TimeStepBegin(
Set::Scalar a_time,
int a_step)
override
45 if (a_time > tstart && !hydro_initialized)
47 for (
int lev = 0; lev <= finest_level; lev++)
49 Hydro::Initialize(lev);
52 hydro_initialized=
true;
54 PF::TimeStepBegin(a_time, a_step);
55 if (hydro_initialized) Hydro::TimeStepBegin(a_time, a_step);
58 void Advance(
int a_lev, amrex::Real a_time, amrex::Real a_dt)
override
60 PF::Advance(a_lev, a_time, a_dt);
61 if (hydro_initialized) Hydro::Advance(a_lev, a_time, a_dt);
64 void TagCellsForRefinement(
int a_lev, amrex::TagBoxArray& a_tags,
Set::Scalar a_time,
int a_ngrow)
override
66 PF::TagCellsForRefinement(a_lev, a_tags, a_time, a_ngrow);
67 if (hydro_initialized) Hydro::TagCellsForRefinement(a_lev, a_tags, a_time, a_ngrow);
72 for (amrex::MFIter mfi(*eta_mf[lev],
true); mfi.isValid(); ++mfi)
74 const amrex::Box& bx = mfi.growntilebox();
79 amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE(
int i,
int j,
int k)
83 eta_new(i,j,k) = 1.0 - pf_eta_new(i,j,k);
84 eta_old(i,j,k) = 1.0 - pf_eta_old(i,j,k);
88 eta_new(i,j,k) = pf_eta_new(i,j,k);
89 eta_old(i,j,k) = pf_eta_old(i,j,k);
99 bool hydro_initialized =
false;
void queryclass(std::string name, T *value, std::string file="", std::string func="", int line=-1)
int query_default(std::string name, T &value, T defaultvalue, std::string="", std::string="", int=-1)
Collection of numerical integrator objects.
Eigen::Matrix< amrex::Real, AMREX_SPACEDIM, 1 > Vector
std::complex< int > Parse(std::string input)
AMREX_FORCE_INLINE void RealFillBoundary(amrex::FabArray< amrex::BaseFab< T > > &a_mf, const amrex::Geometry &)