aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/WarpXPushFieldsEM.cpp
diff options
context:
space:
mode:
authorGravatar Axel Huebl <axel.huebl@plasma.ninja> 2020-12-11 09:16:54 -0800
committerGravatar GitHub <noreply@github.com> 2020-12-11 09:16:54 -0800
commit3fde18912506bbfeeeaacc255f0c8a66ab2e2a05 (patch)
tree7d330e5ffc1fc8a540fd7d3a3bdee1072b7a1d2e /Source/FieldSolver/WarpXPushFieldsEM.cpp
parenta7ba409b4cd0ce437d06f39fe6918745bf4407d5 (diff)
downloadWarpX-3fde18912506bbfeeeaacc255f0c8a66ab2e2a05.tar.gz
WarpX-3fde18912506bbfeeeaacc255f0c8a66ab2e2a05.tar.zst
WarpX-3fde18912506bbfeeeaacc255f0c8a66ab2e2a05.zip
PSATD Runtime Control (#1300)
* Docs: PSATD Runtime Option * Tests: PSATD Runtime Option Add new runtime option to PSATD regression test matrix. * PICMI: PSATD runtime option * Source: PSATD Runtime Option
Diffstat (limited to 'Source/FieldSolver/WarpXPushFieldsEM.cpp')
-rw-r--r--Source/FieldSolver/WarpXPushFieldsEM.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/Source/FieldSolver/WarpXPushFieldsEM.cpp b/Source/FieldSolver/WarpXPushFieldsEM.cpp
index 7670a277b..168384413 100644
--- a/Source/FieldSolver/WarpXPushFieldsEM.cpp
+++ b/Source/FieldSolver/WarpXPushFieldsEM.cpp
@@ -114,10 +114,15 @@ namespace {
#endif
}
}
+#endif
void
WarpX::PushPSATD (amrex::Real a_dt)
{
+#ifndef WARPX_USE_PSATD
+ AMREX_ALWAYS_ASSERT_WITH_MESSAGE(false,
+ "PushFieldsEM: PSATD solver selected but not built.");
+#else
for (int lev = 0; lev <= finest_level; ++lev) {
AMREX_ALWAYS_ASSERT_WITH_MESSAGE(dt[lev] == a_dt, "dt must be consistent");
PushPSATD(lev, a_dt);
@@ -127,11 +132,19 @@ WarpX::PushPSATD (amrex::Real a_dt)
pml[lev]->PushPSATD();
}
}
+#endif
}
void
-WarpX::PushPSATD (int lev, amrex::Real /* dt */)
-{
+WarpX::PushPSATD (int lev, amrex::Real /* dt */) {
+#ifndef WARPX_USE_PSATD
+ AMREX_ALWAYS_ASSERT_WITH_MESSAGE(false,
+ "PushFieldsEM: PSATD solver selected but not built.");
+#else
+ if (WarpX::maxwell_solver_id != MaxwellSolverAlgo::PSATD) {
+ AMREX_ALWAYS_ASSERT_WITH_MESSAGE(false,
+ "WarpX::PushPSATD: only supported for PSATD solver.");
+ }
// Update the fields on the fine and coarse patch
PushPSATDSinglePatch( *spectral_solver_fp[lev],
Efield_fp[lev], Bfield_fp[lev], Efield_avg_fp[lev], Bfield_avg_fp[lev], current_fp[lev], rho_fp[lev] );
@@ -142,8 +155,8 @@ WarpX::PushPSATD (int lev, amrex::Real /* dt */)
if (use_damp_fields_in_z_guard) {
DampFieldsInGuards( Efield_fp[lev], Bfield_fp[lev] );
}
-}
#endif
+}
void
WarpX::EvolveB (amrex::Real a_dt)