diff --git a/src/incflo_update_temperature.cpp b/src/incflo_update_temperature.cpp index b6077e7c..04efba63 100644 --- a/src/incflo_update_temperature.cpp +++ b/src/incflo_update_temperature.cpp @@ -103,6 +103,8 @@ void incflo::update_temperature (StepType step_type, Vector& tem_eta, { const int ng_diffusion = 1; for (int lev = 0; lev <= finest_level; ++lev) { + // Periodic fill necessary for corner ghost cells when physbc and periodic touch + m_leveldata[lev]->temperature.FillBoundary(geom[lev].periodicity()); fillphysbc_temperature(lev, new_time, m_leveldata[lev]->temperature, ng_diffusion); } Real dt_diff = (m_diff_type == DiffusionType::Implicit) ? m_dt : Real(0.5)*m_dt; diff --git a/src/incflo_update_tracer.cpp b/src/incflo_update_tracer.cpp index eb8dedad..bd547402 100644 --- a/src/incflo_update_tracer.cpp +++ b/src/incflo_update_tracer.cpp @@ -47,8 +47,11 @@ void incflo::update_tracer (StepType step_type, Vector& tra_eta, Vecto if (m_diff_type == DiffusionType::Crank_Nicolson || m_diff_type == DiffusionType::Implicit) { const int ng_diffusion = 1; - for (int lev = 0; lev <= finest_level; ++lev) + for (int lev = 0; lev <= finest_level; ++lev) { + // Periodic fill necessary for corner ghost cells when physbc and periodic touch + m_leveldata[lev]->tracer.FillBoundary(geom[lev].periodicity()); fillphysbc_tracer(lev, new_time, m_leveldata[lev]->tracer, ng_diffusion); + } Real dt_diff = (m_diff_type == DiffusionType::Implicit) ? m_dt : Real(0.5)*m_dt; diffuse_scalar(get_tracer_new(), get_density_new(), GetVecOfConstPtrs(tra_eta), dt_diff); diff --git a/src/incflo_update_velocity.cpp b/src/incflo_update_velocity.cpp index 281329b1..f4457e42 100644 --- a/src/incflo_update_velocity.cpp +++ b/src/incflo_update_velocity.cpp @@ -330,7 +330,10 @@ void incflo::update_velocity (StepType step_type, Vector& vel_eta, Vec { const int ng_diffusion = 1; for (int lev = 0; lev <= finest_level; ++lev) { + // Periodic fill necessary for corner ghost cells when physbc and periodic touch + m_leveldata[lev]->velocity.FillBoundary(geom[lev].periodicity()); fillphysbc_velocity(lev, new_time, m_leveldata[lev]->velocity, ng_diffusion); + m_leveldata[lev]->density.FillBoundary(geom[lev].periodicity()); fillphysbc_density (lev, new_time, m_leveldata[lev]->density , ng_diffusion); }