diff options
author | 2017-12-04 12:34:38 -0800 | |
---|---|---|
committer | 2017-12-04 12:34:38 -0800 | |
commit | 3d1b776e2273bb19c633a5d0c7bf1ed02fd9f66e (patch) | |
tree | 6659cbfa6e72337e727611f19e84e2bccafc7ac7 /Source/WarpXEvolve.cpp | |
parent | 30c4b7ba07fe2ac1265e198bb20f2f1d7c4f8efb (diff) | |
download | WarpX-3d1b776e2273bb19c633a5d0c7bf1ed02fd9f66e.tar.gz WarpX-3d1b776e2273bb19c633a5d0c7bf1ed02fd9f66e.tar.zst WarpX-3d1b776e2273bb19c633a5d0c7bf1ed02fd9f66e.zip |
Make the injection contiguous, even for at the first timestep
Diffstat (limited to 'Source/WarpXEvolve.cpp')
-rw-r--r-- | Source/WarpXEvolve.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/Source/WarpXEvolve.cpp b/Source/WarpXEvolve.cpp index 4bef3b2d0..b54b7f8b0 100644 --- a/Source/WarpXEvolve.cpp +++ b/Source/WarpXEvolve.cpp @@ -68,6 +68,7 @@ WarpX::EvolveES(int numsteps) { if (is_synchronized) { // on first step, push X by 0.5*dt mypc->PushXES(0.5*dt[lev]); + UpdatePlasmaInjectionPosition(0.5*dt[lev]); mypc->Redistribute(); mypc->DepositCharge(rhoNodal); computePhi(rhoNodal, phiNodal); @@ -92,6 +93,7 @@ WarpX::EvolveES(int numsteps) { if (cur_time + dt[0] >= stop_time - 1.e-3*dt[0] || step == numsteps_max-1) { // on last step, push by only 0.5*dt to synchronize all at n+1/2 mypc->PushXES(-0.5*dt[lev]); + UpdatePlasmaInjectionPosition(-0.5*dt[lev]); is_synchronized = true; } @@ -194,6 +196,7 @@ WarpX::EvolveEM (int numsteps) FillBoundaryB(); EvolveE(0.5*dt[0], DtType::SecondHalf); mypc->PushX(0.5*dt[0]); + UpdatePlasmaInjectionPosition(0.5*dt[0]); mypc->Redistribute(); // Redistribute particles is_synchronized = false; } @@ -226,6 +229,7 @@ WarpX::EvolveEM (int numsteps) // on last step, push by only 0.5*dt to synchronize all at n+1/2 EvolveE(0.5*dt[0], DtType::FirstHalf); // We now have E^{n+1/2} mypc->PushX(-0.5*dt[0]); + UpdatePlasmaInjectionPosition(-0.5*dt[0]); is_synchronized = true; } else { EvolveE(dt[0], DtType::Full); // We now have E^{n+1} |