diff options
Diffstat (limited to 'Source/Evolve/WarpXComputeDt.cpp')
-rw-r--r-- | Source/Evolve/WarpXComputeDt.cpp | 29 |
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 |