aboutsummaryrefslogtreecommitdiff
path: root/Source/Evolve/WarpXComputeDt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Evolve/WarpXComputeDt.cpp')
-rw-r--r--Source/Evolve/WarpXComputeDt.cpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/Source/Evolve/WarpXComputeDt.cpp b/Source/Evolve/WarpXComputeDt.cpp
index 99cc307e6..b68dfba4e 100644
--- a/Source/Evolve/WarpXComputeDt.cpp
+++ b/Source/Evolve/WarpXComputeDt.cpp
@@ -32,11 +32,19 @@
void
WarpX::ComputeDt ()
{
- // Determine
+ // Handle cases where the timestep is not limited by the speed of light
+ if (electromagnetic_solver_id == ElectromagneticSolverAlgo::None) {
+ for (int lev=0; lev<=max_level; lev++) {
+ dt[lev] = const_dt;
+ }
+ return;
+ }
+
+ // Determine the appropriate timestep as limited by the speed of light
const amrex::Real* dx = geom[max_level].CellSize();
amrex::Real deltat = 0.;
- if (maxwell_solver_id == MaxwellSolverAlgo::PSATD) {
+ if (electromagnetic_solver_id == ElectromagneticSolverAlgo::PSATD) {
// Computation of dt for spectral algorithm
// (determined by the minimum cell size in all directions)
#if defined(WARPX_DIM_1D_Z)
@@ -50,21 +58,20 @@ WarpX::ComputeDt ()
// Computation of dt for FDTD algorithm
#ifdef WARPX_DIM_RZ
// - In RZ geometry
- if (maxwell_solver_id == MaxwellSolverAlgo::Yee) {
+ if (electromagnetic_solver_id == ElectromagneticSolverAlgo::Yee) {
deltat = cfl * CylindricalYeeAlgorithm::ComputeMaxDt(dx, n_rz_azimuthal_modes);
#else
// - In Cartesian geometry
if (do_nodal) {
deltat = cfl * CartesianNodalAlgorithm::ComputeMaxDt(dx);
- } else if (maxwell_solver_id == MaxwellSolverAlgo::Yee
- || maxwell_solver_id == MaxwellSolverAlgo::ECT) {
+ } else if (electromagnetic_solver_id == ElectromagneticSolverAlgo::Yee
+ || electromagnetic_solver_id == ElectromagneticSolverAlgo::ECT) {
deltat = cfl * CartesianYeeAlgorithm::ComputeMaxDt(dx);
- } else if (maxwell_solver_id == MaxwellSolverAlgo::CKC) {
+ } else if (electromagnetic_solver_id == ElectromagneticSolverAlgo::CKC) {
deltat = cfl * CartesianCKCAlgorithm::ComputeMaxDt(dx);
#endif
} else {
- amrex::Abort(Utils::TextMsg::Err(
- "ComputeDt: Unknown algorithm"));
+ amrex::Abort(Utils::TextMsg::Err("ComputeDt: Unknown algorithm"));
}
}
@@ -76,12 +83,6 @@ WarpX::ComputeDt ()
dt[lev] = dt[lev+1] * refRatio(lev)[0];
}
}
-
- if (do_electrostatic != ElectrostaticSolverAlgo::None) {
- for (int lev=0; lev<=max_level; lev++) {
- dt[lev] = const_dt;
- }
- }
}
void