diff options
author | 2021-07-13 00:27:49 -0700 | |
---|---|---|
committer | 2021-07-13 00:27:49 -0700 | |
commit | b739ed9ccdbfeb878ead2a9d2a9ad61fbcfce35e (patch) | |
tree | 8f3891e1606f37189458c877fdefc9e51a1383d5 /Source/FieldSolver/WarpXPushFieldsEM.cpp | |
parent | 02e3b8cce573fb54253b10fc9104695d9c24b188 (diff) | |
download | WarpX-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.cpp | 24 |
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) |