aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/WarpXPushFieldsEM.cpp
diff options
context:
space:
mode:
authorGravatar Revathi Jambunathan <41089244+RevathiJambunathan@users.noreply.github.com> 2021-07-13 00:27:49 -0700
committerGravatar GitHub <noreply@github.com> 2021-07-13 00:27:49 -0700
commitb739ed9ccdbfeb878ead2a9d2a9ad61fbcfce35e (patch)
tree8f3891e1606f37189458c877fdefc9e51a1383d5 /Source/FieldSolver/WarpXPushFieldsEM.cpp
parent02e3b8cce573fb54253b10fc9104695d9c24b188 (diff)
downloadWarpX-b739ed9ccdbfeb878ead2a9d2a9ad61fbcfce35e.tar.gz
WarpX-b739ed9ccdbfeb878ead2a9d2a9ad61fbcfce35e.tar.zst
WarpX-b739ed9ccdbfeb878ead2a9d2a9ad61fbcfce35e.zip
Interface silver mueller (#2051)
* interface silvermueller with refactored boundary interface * add interface in silver mueller input files * define first and second half for EvolveB * add do_pml parse snce RZ needs do_pml to be st to false * Silver-Mueller boundary condition in docs * add firsthalf in ApplyBfieldBoundary within PushPSATD as only first first half is used to apply silvermueller * CallSilverMueller once for all boundaries * remove unused do silvermueller flag * fix typo in input file * Apply suggestions from code review Co-authored-by: Remi Lehe <remi.lehe@normalesup.org> * abort message if silver-mueller is not selected on all valid boundaries * fix typo * fix eol * remove ifdef from inside the Assert message * check silver-mueller selection after reading all boundaries Co-authored-by: Remi Lehe <remi.lehe@normalesup.org>
Diffstat (limited to 'Source/FieldSolver/WarpXPushFieldsEM.cpp')
-rw-r--r--Source/FieldSolver/WarpXPushFieldsEM.cpp24
1 files changed, 9 insertions, 15 deletions
diff --git a/Source/FieldSolver/WarpXPushFieldsEM.cpp b/Source/FieldSolver/WarpXPushFieldsEM.cpp
index a36d21e08..29d244d12 100644
--- a/Source/FieldSolver/WarpXPushFieldsEM.cpp
+++ b/Source/FieldSolver/WarpXPushFieldsEM.cpp
@@ -404,33 +404,33 @@ WarpX::PushPSATD ()
}
ApplyEfieldBoundary(lev, PatchType::fine);
if (lev > 0) ApplyEfieldBoundary(lev, PatchType::coarse);
- ApplyBfieldBoundary(lev, PatchType::fine);
- if (lev > 0) ApplyBfieldBoundary(lev, PatchType::coarse);
+ ApplyBfieldBoundary(lev, PatchType::fine, DtType::FirstHalf);
+ if (lev > 0) ApplyBfieldBoundary(lev, PatchType::coarse, DtType::FirstHalf);
}
#endif
}
void
-WarpX::EvolveB (amrex::Real a_dt)
+WarpX::EvolveB (amrex::Real a_dt, DtType a_dt_type)
{
for (int lev = 0; lev <= finest_level; ++lev) {
- EvolveB(lev, a_dt);
+ EvolveB(lev, a_dt, a_dt_type);
}
}
void
-WarpX::EvolveB (int lev, amrex::Real a_dt)
+WarpX::EvolveB (int lev, amrex::Real a_dt, DtType a_dt_type)
{
WARPX_PROFILE("WarpX::EvolveB()");
- EvolveB(lev, PatchType::fine, a_dt);
+ EvolveB(lev, PatchType::fine, a_dt, a_dt_type);
if (lev > 0)
{
- EvolveB(lev, PatchType::coarse, a_dt);
+ EvolveB(lev, PatchType::coarse, a_dt, a_dt_type);
}
}
void
-WarpX::EvolveB (int lev, PatchType patch_type, amrex::Real a_dt)
+WarpX::EvolveB (int lev, PatchType patch_type, amrex::Real a_dt, DtType a_dt_type)
{
// Evolve B field in regular cells
@@ -453,15 +453,9 @@ WarpX::EvolveB (int lev, PatchType patch_type, amrex::Real a_dt)
}
}
- ApplyBfieldBoundary(lev, patch_type);
+ ApplyBfieldBoundary(lev, patch_type, a_dt_type);
}
-void
-WarpX::ApplySilverMuellerBoundary (amrex::Real a_dt) {
- // Only apply to level 0
- m_fdtd_solver_fp[0]->ApplySilverMuellerBoundary(
- Efield_fp[0], Bfield_fp[0], Geom(0).Domain(), a_dt );
-}
void
WarpX::EvolveE (amrex::Real a_dt)