Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions Source/Evolve/WarpXEvolve.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,9 @@ WarpX::Evolve (int numsteps)
// on first step, push p by -0.5*dt
for (int lev = 0; lev <= finest_level; ++lev)
{
mypc->PushP(lev, -0.5*dt[lev],
*Efield_aux[lev][0],*Efield_aux[lev][1],*Efield_aux[lev][2],
*Bfield_aux[lev][0],*Bfield_aux[lev][1],*Bfield_aux[lev][2]);
//mypc->PushP(lev, -0.5*dt[lev],
// *Efield_aux[lev][0],*Efield_aux[lev][1],*Efield_aux[lev][2],
// *Bfield_aux[lev][0],*Bfield_aux[lev][1],*Bfield_aux[lev][2]);
}
is_synchronized = false;
} else {
Expand Down Expand Up @@ -138,7 +138,6 @@ WarpX::Evolve (int numsteps)
amrex::Print() << "Error: do_subcycling = " << do_subcycling << std::endl;
amrex::Abort("Unsupported do_subcycling type");
}

if (num_mirrors>0){
applyMirrors(cur_time);
// E : guard cells are NOT up-to-date
Expand All @@ -162,7 +161,7 @@ WarpX::Evolve (int numsteps)
}
is_synchronized = true;
}

////////////////////////////////////////////////
#ifdef WARPX_USE_PY
if (warpx_py_afterEsolve) warpx_py_afterEsolve();
#endif
Expand All @@ -183,13 +182,13 @@ WarpX::Evolve (int numsteps)
}
myBFD->writeLabFrameData(cell_centered_data.get(), *mypc, geom[0], cur_time, dt[0]);
}

/////////////////////////////////////////////////////
bool move_j = is_synchronized || do_insitu;
// If is_synchronized we need to shift j too so that next step we can evolve E by dt/2.
// We might need to move j because we are going to make a plotfile.

ShiftGalileanBoundary();

///////////////////////
int num_moved = MoveWindow(move_j);

// Electrostatic solver: particles can move by an arbitrary number of cells
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,14 @@ AvgGalileanAlgorithm::pushSpectralFields(SpectralFieldData& f) const{
const Complex CRhonew= Rhonew_arr(i,j,k);
const Complex Jcoef = Jcoef_arr(i,j,k);


fields(i,j,k,Idx::Ex_avg) = i;
fields(i,j,k,Idx::Ey_avg) = j;
fields(i,j,k,Idx::Ez_avg) = k;
fields(i,j,k,Idx::Bx_avg) = 0.; // 3.e-8*i;
fields(i,j,k,Idx::By_avg) = 0.; // 3.e-8*j;
fields(i,j,k,Idx::Bz_avg) = 0.; // 3.e-8*k;

/*
//Update E (see the original Galilean article)
fields(i,j,k,Idx::Ex) = T2*C*Ex_old
+ T2*S_ck*c2*I*(ky*Bz_old - kz*By_old)
Expand Down Expand Up @@ -363,7 +370,8 @@ AvgGalileanAlgorithm::pushSpectralFields(SpectralFieldData& f) const{
fields(i,j,k,Idx::Bz_avg) = Psi1*Bz_old
+ I*Psi2*(kx*Ey_old - ky*Ex_old)
+ A1*I*(kx*Jy - ky*Jx)*inv_ep0;

*/

// fields(i,j,k,Idx::Ex_avg) = fields(i,j,k,Idx::Ex);
// fields(i,j,k,Idx::Ey_avg) = fields(i,j,k,Idx::Ey);
// fields(i,j,k,Idx::Ez_avg) = fields(i,j,k,Idx::Ez);
Expand Down
61 changes: 61 additions & 0 deletions Source/FieldSolver/WarpXPushFieldsEM.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,29 @@ namespace {
solver.BackwardTransform(*Bfield[2], Idx::Bz);

if (solver.fft_do_time_averaging){
/*
solver.BackwardTransform(*Efield_avg[0], Idx::Ex_avg);
solver.BackwardTransform(*Efield_avg[1], Idx::Ey_avg);
solver.BackwardTransform(*Efield_avg[2], Idx::Ez_avg);
solver.BackwardTransform(*Bfield_avg[0], Idx::Bx_avg);
solver.BackwardTransform(*Bfield_avg[1], Idx::By_avg);
solver.BackwardTransform(*Bfield_avg[2], Idx::Bz_avg);
*/

solver.BackwardTransform(*Efield[0], Idx::Ex_avg);
solver.BackwardTransform(*Efield[1], Idx::Ey_avg);
solver.BackwardTransform(*Efield[2], Idx::Ez_avg);
solver.BackwardTransform(*Bfield[0], Idx::Bx_avg);
solver.BackwardTransform(*Bfield[1], Idx::By_avg);
solver.BackwardTransform(*Bfield[2], Idx::Bz_avg);

solver.BackwardTransform(*Efield_avg[0], Idx::Ex_avg);
solver.BackwardTransform(*Efield_avg[1], Idx::Ey_avg);
solver.BackwardTransform(*Efield_avg[2], Idx::Ez_avg);
solver.BackwardTransform(*Bfield_avg[0], Idx::Bx_avg);
solver.BackwardTransform(*Bfield_avg[1], Idx::By_avg);
solver.BackwardTransform(*Bfield_avg[2], Idx::Bz_avg);

}
}
}
Expand All @@ -113,6 +129,51 @@ WarpX::PushPSATD (amrex::Real a_dt)
if (do_pml && pml[lev]->ok()) {
pml[lev]->PushPSATD();
}
MultiFab& Ex = *Efield_aux[lev][0];
MultiFab& Ey = *Efield_aux[lev][0];
MultiFab& Ez = *Efield_aux[lev][0];
MultiFab& Ex_avg = *Efield_avg_aux[lev][0];
MultiFab& Ey_avg = *Efield_avg_aux[lev][0];
MultiFab& Ez_avg = *Efield_avg_aux[lev][0];
MultiFab& Bx = *Bfield_aux[lev][0];
MultiFab& By = *Bfield_aux[lev][0];
MultiFab& Bz = *Bfield_aux[lev][0];
MultiFab& Bx_avg = *Bfield_avg_aux[lev][0];
MultiFab& By_avg = *Bfield_avg_aux[lev][0];
MultiFab& Bz_avg = *Bfield_avg_aux[lev][0];
DistributionMapping dm { Ex.boxArray(), ParallelDescriptor::NProcs() };
MultiFab diff(Ex.boxArray(), dm, 1, Ex.nGrow());
Print()<<"RIGHT AFTER PushPSATD\n";
diff.setVal(0.,0,1,Ex.nGrow());
diff.plus(Ex,0,1,Ex.nGrow());
diff.minus(Ex_avg,0,1,Ex.nGrow());
Print()<<"Ex.max(0) "<<Ex.max(0,Ex.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Ex.nGrow())<<'\n';
diff.setVal(0.,0,1,Ey.nGrow());
diff.plus(Ey,0,1,Ey.nGrow());
diff.minus(Ey_avg,0,1,Ey.nGrow());
Print()<<"Ey.max(0) "<<Ey.max(0,Ey.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Ey.nGrow())<<'\n';
diff.setVal(0.,0,1,Ez.nGrow());
diff.plus(Ez,0,1,Ez.nGrow());
diff.minus(Ez_avg,0,1,Ez.nGrow());
Print()<<"Ez.max(0) "<<Ez.max(0,Ez.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Ez.nGrow())<<'\n';
diff.setVal(0.,0,1,Bx.nGrow());
diff.plus(Bx,0,1,Bx.nGrow());
diff.minus(Bx_avg,0,1,Bx.nGrow());
Print()<<"Bx.max(0) "<<Bx.max(0,Bx.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Bx.nGrow())<<'\n';
diff.setVal(0.,0,1,By.nGrow());
diff.plus(By,0,1,By.nGrow());
diff.minus(By_avg,0,1,By.nGrow());
Print()<<"By.max(0) "<<By.max(0,By.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,By.nGrow())<<'\n';
diff.setVal(0.,0,1,Bz.nGrow());
diff.plus(Bz,0,1,Bz.nGrow());
diff.minus(Bz_avg,0,1,Bz.nGrow());
Print()<<"Bz.max(0) "<<Bz.max(0,Bz.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Bz.nGrow())<<'\n';
}
}

Expand Down
20 changes: 20 additions & 0 deletions Source/Parallelization/WarpXComm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -399,13 +399,18 @@ WarpX::FillBoundaryE (int lev, PatchType patch_type, IntVect ng)
if ( safe_guard_cells ){
Vector<MultiFab*> mf{Efield_fp[lev][0].get(),Efield_fp[lev][1].get(),Efield_fp[lev][2].get()};
amrex::FillBoundary(mf, period);
Vector<MultiFab*> mf_avg{Efield_avg_fp[lev][0].get(),Efield_avg_fp[lev][1].get(),Efield_avg_fp[lev][2].get()};
amrex::FillBoundary(mf_avg, period);
} else {
AMREX_ALWAYS_ASSERT_WITH_MESSAGE(
ng <= Efield_fp[lev][0]->nGrowVect(),
"Error: in FillBoundaryE, requested more guard cells than allocated");
Efield_fp[lev][0]->FillBoundary(ng, period);
Efield_fp[lev][1]->FillBoundary(ng, period);
Efield_fp[lev][2]->FillBoundary(ng, period);
Efield_avg_fp[lev][0]->FillBoundary(ng, period);
Efield_avg_fp[lev][1]->FillBoundary(ng, period);
Efield_avg_fp[lev][2]->FillBoundary(ng, period);
}
}
else if (patch_type == PatchType::coarse)
Expand All @@ -423,6 +428,8 @@ WarpX::FillBoundaryE (int lev, PatchType patch_type, IntVect ng)
if ( safe_guard_cells ) {
Vector<MultiFab*> mf{Efield_cp[lev][0].get(),Efield_cp[lev][1].get(),Efield_cp[lev][2].get()};
amrex::FillBoundary(mf, cperiod);
Vector<MultiFab*> mf_avg{Efield_avg_cp[lev][0].get(),Efield_avg_cp[lev][1].get(),Efield_avg_cp[lev][2].get()};
amrex::FillBoundary(mf_avg, cperiod);

} else {
AMREX_ALWAYS_ASSERT_WITH_MESSAGE(
Expand All @@ -431,6 +438,9 @@ WarpX::FillBoundaryE (int lev, PatchType patch_type, IntVect ng)
Efield_cp[lev][0]->FillBoundary(ng, cperiod);
Efield_cp[lev][1]->FillBoundary(ng, cperiod);
Efield_cp[lev][2]->FillBoundary(ng, cperiod);
Efield_avg_cp[lev][0]->FillBoundary(ng, cperiod);
Efield_avg_cp[lev][1]->FillBoundary(ng, cperiod);
Efield_avg_cp[lev][2]->FillBoundary(ng, cperiod);
}
}
}
Expand Down Expand Up @@ -460,13 +470,18 @@ WarpX::FillBoundaryB (int lev, PatchType patch_type, IntVect ng)
if ( safe_guard_cells ) {
Vector<MultiFab*> mf{Bfield_fp[lev][0].get(),Bfield_fp[lev][1].get(),Bfield_fp[lev][2].get()};
amrex::FillBoundary(mf, period);
Vector<MultiFab*> mf_avg{Bfield_avg_fp[lev][0].get(),Bfield_avg_fp[lev][1].get(),Bfield_avg_fp[lev][2].get()};
amrex::FillBoundary(mf_avg, period);
} else {
AMREX_ALWAYS_ASSERT_WITH_MESSAGE(
ng <= Bfield_fp[lev][0]->nGrowVect(),
"Error: in FillBoundaryB, requested more guard cells than allocated");
Bfield_fp[lev][0]->FillBoundary(ng, period);
Bfield_fp[lev][1]->FillBoundary(ng, period);
Bfield_fp[lev][2]->FillBoundary(ng, period);
Bfield_avg_fp[lev][0]->FillBoundary(ng, period);
Bfield_avg_fp[lev][1]->FillBoundary(ng, period);
Bfield_avg_fp[lev][2]->FillBoundary(ng, period);
}
}
else if (patch_type == PatchType::coarse)
Expand All @@ -484,13 +499,18 @@ WarpX::FillBoundaryB (int lev, PatchType patch_type, IntVect ng)
if ( safe_guard_cells ){
Vector<MultiFab*> mf{Bfield_cp[lev][0].get(),Bfield_cp[lev][1].get(),Bfield_cp[lev][2].get()};
amrex::FillBoundary(mf, cperiod);
Vector<MultiFab*> mf_avg{Bfield_avg_cp[lev][0].get(),Bfield_avg_cp[lev][1].get(),Bfield_avg_cp[lev][2].get()};
amrex::FillBoundary(mf_avg, cperiod);
} else {
AMREX_ALWAYS_ASSERT_WITH_MESSAGE(
ng <= Bfield_cp[lev][0]->nGrowVect(),
"Error: in FillBoundaryB, requested more guard cells than allocated");
Bfield_cp[lev][0]->FillBoundary(ng, cperiod);
Bfield_cp[lev][1]->FillBoundary(ng, cperiod);
Bfield_cp[lev][2]->FillBoundary(ng, cperiod);
Bfield_avg_cp[lev][0]->FillBoundary(ng, cperiod);
Bfield_avg_cp[lev][1]->FillBoundary(ng, cperiod);
Bfield_avg_cp[lev][2]->FillBoundary(ng, cperiod);
}
}
}
Expand Down
100 changes: 88 additions & 12 deletions Source/Particles/PhysicalParticleContainer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1015,18 +1015,53 @@ PhysicalParticleContainer::FieldGather (int lev,
}

void
PhysicalParticleContainer::Evolve (int lev,
const MultiFab& Ex, const MultiFab& Ey, const MultiFab& Ez,
const MultiFab& Bx, const MultiFab& By, const MultiFab& Bz,
const MultiFab& Ex_avg, const MultiFab& Ey_avg, const MultiFab& Ez_avg,
const MultiFab& Bx_avg, const MultiFab& By_avg, const MultiFab& Bz_avg,
MultiFab& jx, MultiFab& jy, MultiFab& jz,
MultiFab* cjx, MultiFab* cjy, MultiFab* cjz,
MultiFab* rho, MultiFab* crho,
const MultiFab* cEx, const MultiFab* cEy, const MultiFab* cEz,
const MultiFab* cBx, const MultiFab* cBy, const MultiFab* cBz,
Real /*t*/, Real dt, DtType a_dt_type)
PhysicalParticleContainer::Evolve (
int lev,
const MultiFab& Ex, const MultiFab& Ey, const MultiFab& Ez,
const MultiFab& Bx, const MultiFab& By, const MultiFab& Bz,
const MultiFab& Ex_avg, const MultiFab& Ey_avg, const MultiFab& Ez_avg,
const MultiFab& Bx_avg, const MultiFab& By_avg, const MultiFab& Bz_avg,
MultiFab& jx, MultiFab& jy, MultiFab& jz,
MultiFab* cjx, MultiFab* cjy, MultiFab* cjz,
MultiFab* rho, MultiFab* crho,
const MultiFab* cEx, const MultiFab* cEy, const MultiFab* cEz,
const MultiFab* cBx, const MultiFab* cBy, const MultiFab* cBz,
Real /*t*/, Real dt, DtType a_dt_type)
{
DistributionMapping dm { Ex.boxArray(), ParallelDescriptor::NProcs() };
MultiFab diff(Ex.boxArray(), dm, 1, Ex.nGrow());
Print()<<"BEFORE\n";
diff.setVal(0.,0,1,Ex.nGrow());
diff.plus(Ex,0,1,Ex.nGrow());
diff.minus(Ex_avg,0,1,Ex.nGrow());
Print()<<"Ex.max(0) "<<Ex.max(0,Ex.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Ex.nGrow())<<'\n';
diff.setVal(0.,0,1,Ey.nGrow());
diff.plus(Ey,0,1,Ey.nGrow());
diff.minus(Ey_avg,0,1,Ey.nGrow());
Print()<<"Ey.max(0) "<<Ey.max(0,Ey.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Ey.nGrow())<<'\n';
diff.setVal(0.,0,1,Ez.nGrow());
diff.plus(Ez,0,1,Ez.nGrow());
diff.minus(Ez_avg,0,1,Ez.nGrow());
Print()<<"Ez.max(0) "<<Ez.max(0,Ez.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Ez.nGrow())<<'\n';

diff.setVal(0.,0,1,Bx.nGrow());
diff.plus(Bx,0,1,Bx.nGrow());
diff.minus(Bx_avg,0,1,Bx.nGrow());
Print()<<"Bx.max(0) "<<Bx.max(0,Bx.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Bx.nGrow())<<'\n';
diff.setVal(0.,0,1,By.nGrow());
diff.plus(By,0,1,By.nGrow());
diff.minus(By_avg,0,1,By.nGrow());
Print()<<"By.max(0) "<<By.max(0,By.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,By.nGrow())<<'\n';
diff.setVal(0.,0,1,Bz.nGrow());
diff.plus(Bz,0,1,Bz.nGrow());
diff.minus(Bz_avg,0,1,Bz.nGrow());
Print()<<"Bz.max(0) "<<Bz.max(0,Bz.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Bz.nGrow())<<'\n';

bool fft_do_time_averaging;
ParmParse pp("psatd");
Expand Down Expand Up @@ -1113,6 +1148,7 @@ PhysicalParticleContainer::Evolve (int lev,
FArrayBox const* byfab;
FArrayBox const* bzfab;


if (fft_do_time_averaging){
exfab = &(Ex_avg[pti]);
eyfab = &(Ey_avg[pti]);
Expand All @@ -1122,6 +1158,7 @@ PhysicalParticleContainer::Evolve (int lev,
bzfab = &(Bz_avg[pti]);
}
else {

exfab = &(Ex[pti]);
eyfab = &(Ey[pti]);
ezfab = &(Ez[pti]);
Expand Down Expand Up @@ -1179,7 +1216,45 @@ PhysicalParticleContainer::Evolve (int lev,
np-np_current, thread_num, lev, lev-1);
}
}
/*
}
}

Print()<<"AFTER\n";
diff.setVal(0.,0,1,Ex.nGrow());
diff.plus(Ex,0,1,Ex.nGrow());
diff.minus(Ex_avg,0,1,Ex.nGrow());
Print()<<"Ex.max(0) "<<Ex.max(0,Ex.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Ex.nGrow())<<'\n';
diff.setVal(0.,0,1,Ey.nGrow());
diff.plus(Ey,0,1,Ey.nGrow());
diff.minus(Ey_avg,0,1,Ey.nGrow());
Print()<<"Ey.max(0) "<<Ey.max(0,Ey.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Ey.nGrow())<<'\n';
diff.setVal(0.,0,1,Ez.nGrow());
diff.plus(Ez,0,1,Ez.nGrow());
diff.minus(Ez_avg,0,1,Ez.nGrow());
Print()<<"Ez.max(0) "<<Ez.max(0,Ez.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Ez.nGrow())<<'\n';

diff.setVal(0.,0,1,Bx.nGrow());
diff.plus(Bx,0,1,Bx.nGrow());
diff.minus(Bx_avg,0,1,Bx.nGrow());
Print()<<"Bx.max(0) "<<Bx.max(0,Bx.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Bx.nGrow())<<'\n';
diff.setVal(0.,0,1,By.nGrow());
diff.plus(By,0,1,By.nGrow());
diff.minus(By_avg,0,1,By.nGrow());
Print()<<"By.max(0) "<<By.max(0,By.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,By.nGrow())<<'\n';
diff.setVal(0.,0,1,Bz.nGrow());
diff.plus(Bz,0,1,Bz.nGrow());
diff.minus(Bz_avg,0,1,Bz.nGrow());
Print()<<"Bz.max(0) "<<Bz.max(0,Bz.nGrow())<<'\n';
Print()<<"diff.max(0) "<<diff.max(0,Bz.nGrow())<<'\n';
for (WarpXParIter pti(*this, lev); pti.isValid(); ++pti)
{
*/
if (! do_not_push)
{
const long np_gather = (cEx) ? nfine_gather : np;
Expand Down Expand Up @@ -1300,7 +1375,8 @@ PhysicalParticleContainer::Evolve (int lev,
}
}
}
// Split particles at the end of the timestep.

// Split particles at the end of the timestep.
// When subcycling is ON, the splitting is done on the last call to
// PhysicalParticleContainer::Evolve on the finest level, i.e., at the
// end of the large timestep. Otherwise, the pushes on different levels
Expand Down
6 changes: 6 additions & 0 deletions Source/Utils/WarpXMovingWindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,8 @@ WarpX::MoveWindow (bool move_j)
}
shiftMF(*Bfield_fp[lev][dim], geom[lev], num_shift, dir, ng_extra, B_external_grid[dim], use_Bparser, Bfield_parser);
shiftMF(*Efield_fp[lev][dim], geom[lev], num_shift, dir, ng_extra, E_external_grid[dim], use_Eparser, Efield_parser);
shiftMF(*Bfield_avg_fp[lev][dim], geom[lev], num_shift, dir, ng_extra, B_external_grid[dim], use_Bparser, Bfield_parser);
shiftMF(*Efield_avg_fp[lev][dim], geom[lev], num_shift, dir, ng_extra, E_external_grid[dim], use_Eparser, Efield_parser);
if (move_j) {
shiftMF(*current_fp[lev][dim], geom[lev], num_shift, dir, ng_zero);
}
Expand All @@ -144,8 +146,12 @@ WarpX::MoveWindow (bool move_j)
// coarse grid
shiftMF(*Bfield_cp[lev][dim], geom[lev-1], num_shift_crse, dir, ng_zero, B_external_grid[dim], use_Bparser, Bfield_parser);
shiftMF(*Efield_cp[lev][dim], geom[lev-1], num_shift_crse, dir, ng_zero, E_external_grid[dim], use_Eparser, Efield_parser);
shiftMF(*Bfield_avg_cp[lev][dim], geom[lev-1], num_shift_crse, dir, ng_zero, B_external_grid[dim], use_Bparser, Bfield_parser);
shiftMF(*Efield_avg_cp[lev][dim], geom[lev-1], num_shift_crse, dir, ng_zero, E_external_grid[dim], use_Eparser, Efield_parser);
shiftMF(*Bfield_aux[lev][dim], geom[lev], num_shift, dir, ng_zero);
shiftMF(*Efield_aux[lev][dim], geom[lev], num_shift, dir, ng_zero);
shiftMF(*Bfield_avg_aux[lev][dim], geom[lev], num_shift, dir, ng_zero);
shiftMF(*Efield_avg_aux[lev][dim], geom[lev], num_shift, dir, ng_zero);
if (move_j) {
shiftMF(*current_cp[lev][dim], geom[lev-1], num_shift_crse, dir, ng_zero);
}
Expand Down
1 change: 1 addition & 0 deletions Source/WarpX.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -954,6 +954,7 @@ WarpX::AllocLevelMFs (int lev, const BoxArray& ba, const DistributionMapping& dm
else if (lev == 0)
{
for (int idir = 0; idir < 3; ++idir) {
Print()<<"here";
Efield_aux[lev][idir].reset(new MultiFab(*Efield_fp[lev][idir], amrex::make_alias, 0, ncomps));
Bfield_aux[lev][idir].reset(new MultiFab(*Bfield_fp[lev][idir], amrex::make_alias, 0, ncomps));

Expand Down