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.cpp61
1 files changed, 28 insertions, 33 deletions
diff --git a/Source/Evolve/WarpXComputeDt.cpp b/Source/Evolve/WarpXComputeDt.cpp
index a58fa5e7b..6237f85c4 100644
--- a/Source/Evolve/WarpXComputeDt.cpp
+++ b/Source/Evolve/WarpXComputeDt.cpp
@@ -23,42 +23,37 @@ WarpX::ComputeDt ()
const amrex::Real* dx = geom[max_level].CellSize();
amrex::Real deltat = 0.;
-#if WARPX_USE_PSATD
- // Computation of dt for spectral algorithm
-
-# if (defined WARPX_DIM_RZ)
- // - In RZ geometry: dz/c
- deltat = cfl * dx[1]/PhysConst::c;
-# elif (defined WARPX_DIM_XZ)
- // - In Cartesian 2D geometry: determined by the minimum cell size in all direction
- deltat = cfl * std::min( dx[0], dx[1] )/PhysConst::c;
-# else
- // - In Cartesian 3D geometry: determined by the minimum cell size in all direction
- deltat = cfl * std::min( dx[0], std::min( dx[1], dx[2] ) )/PhysConst::c;
-# endif
-
-
+ if (maxwell_solver_id == MaxwellSolverAlgo::PSATD) {
+ // Computation of dt for spectral algorithm
+#if (defined WARPX_DIM_RZ)
+ // - In RZ geometry: dz/c
+ deltat = cfl * dx[1]/PhysConst::c;
+#elif (defined WARPX_DIM_XZ)
+ // - In Cartesian 2D geometry: determined by the minimum cell size in all direction
+ deltat = cfl * std::min( dx[0], dx[1] )/PhysConst::c;
#else
- // Computation of dt for FDTD algorithm
-
-# ifdef WARPX_DIM_RZ
- // - In RZ geometry
- if (maxwell_solver_id == MaxwellSolverAlgo::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) {
- deltat = cfl * CartesianYeeAlgorithm::ComputeMaxDt( dx );
- } else if (maxwell_solver_id == MaxwellSolverAlgo::CKC) {
- deltat = cfl * CartesianCKCAlgorithm::ComputeMaxDt( dx );
-# endif
+ // - In Cartesian 3D geometry: determined by the minimum cell size in all direction
+ deltat = cfl * std::min(dx[0], std::min(dx[1], dx[2])) / PhysConst::c;
+#endif
} else {
- amrex::Abort("Unknown algorithm");
- }
-
+ // Computation of dt for FDTD algorithm
+#ifdef WARPX_DIM_RZ
+ // - In RZ geometry
+ if (maxwell_solver_id == MaxwellSolverAlgo::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) {
+ deltat = cfl * CartesianYeeAlgorithm::ComputeMaxDt(dx);
+ } else if (maxwell_solver_id == MaxwellSolverAlgo::CKC) {
+ deltat = cfl * CartesianCKCAlgorithm::ComputeMaxDt(dx);
#endif
+ } else {
+ amrex::Abort("ComputeDt: Unknown algorithm");
+ }
+ }
dt.resize(0);
dt.resize(max_level+1,deltat);