diff --git a/src/boundary_conditions/incflo_set_bcs.cpp b/src/boundary_conditions/incflo_set_bcs.cpp index c07d70ce..619a5e7f 100644 --- a/src/boundary_conditions/incflo_set_bcs.cpp +++ b/src/boundary_conditions/incflo_set_bcs.cpp @@ -499,4 +499,25 @@ incflo::set_eb_temperature (int lev, Real /*time*/, MultiFab& eb_temperature, in IntVect ng_vect(AMREX_D_DECL(nghost,nghost,nghost)); eb_temperature.FillBoundary(0,1,ng_vect,gm.periodicity()); } + +void +incflo::set_eb_bcs () +{ + if (m_eb_flow.enabled) { + for (int lev = 0; lev <= finest_level; ++lev) { + set_eb_velocity(lev, m_t_old[lev], *get_velocity_eb()[lev], 1); + set_eb_density(lev, m_t_old[lev], *get_density_eb()[lev], 1); + } + } + if (m_advect_tracer && !m_eb_flow.tracer.empty()) { + for (int lev = 0; lev <= finest_level; ++lev) { + set_eb_tracer(lev, m_t_old[lev], *get_tracer_eb()[lev], 1); + } + } + if (m_use_temperature && !m_eb_flow.temperature.empty()) { + for (int lev = 0; lev <= finest_level; ++lev) { + set_eb_temperature(lev, m_t_old[lev], *get_temperature_eb()[lev], 1); + } + } +} #endif diff --git a/src/incflo.H b/src/incflo.H index 9484469f..ddb7e57e 100644 --- a/src/incflo.H +++ b/src/incflo.H @@ -130,6 +130,8 @@ public: void set_eb_density (int lev, amrex::Real time, amrex::MultiFab& eb_density, int nghost); void set_eb_tracer (int lev, amrex::Real time, amrex::MultiFab& eb_tracer, int nghost); void set_eb_temperature (int lev, amrex::Real time, amrex::MultiFab& eb_temperature, int nghost); + // Fill the EB Dirichlet data at m_t_old on all levels + void set_eb_bcs (); #endif /////////////////////////////////////////////////////////////////////////// diff --git a/src/incflo_advance.cpp b/src/incflo_advance.cpp index ea085821..945e79e8 100644 --- a/src/incflo_advance.cpp +++ b/src/incflo_advance.cpp @@ -47,22 +47,7 @@ void incflo::Advance(double cur_time) } #ifdef AMREX_USE_EB - if (m_eb_flow.enabled) { - for (int lev = 0; lev <= finest_level; ++lev) { - set_eb_velocity(lev, m_t_old[lev], *get_velocity_eb()[lev], 1); - set_eb_density(lev, m_t_old[lev], *get_density_eb()[lev], 1); - } - } - if (m_advect_tracer && !m_eb_flow.tracer.empty()) { - for (int lev = 0; lev <= finest_level; ++lev) { - set_eb_tracer(lev, m_t_old[lev], *get_tracer_eb()[lev], 1); - } - } - if (m_use_temperature && !m_eb_flow.temperature.empty()) { - for (int lev = 0; lev <= finest_level; ++lev) { - set_eb_temperature(lev, m_t_old[lev], *get_temperature_eb()[lev], 1); - } - } + set_eb_bcs(); #endif ApplyPredictor(); diff --git a/src/setup/init.cpp b/src/setup/init.cpp index 60453907..74b9703d 100644 --- a/src/setup/init.cpp +++ b/src/setup/init.cpp @@ -530,6 +530,10 @@ void incflo::InitialIterations () for (int lev = 0; lev <= finest_level; ++lev) m_t_old[lev] = m_t_new[lev]; for (int lev = 0; lev <= finest_level; ++lev) mac_phi[lev]->setVal(0.); +#ifdef AMREX_USE_EB + set_eb_bcs(); +#endif + for (int iter = 0; iter < m_initial_iterations; ++iter) { if (m_verbose) amrex::Print() << "\n In initial_iterations: iter = " << iter << "\n";