aboutsummaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/Evolve/WarpXEvolve.cpp3
-rw-r--r--Source/WarpX.H2
-rw-r--r--Source/WarpX.cpp14
3 files changed, 10 insertions, 9 deletions
diff --git a/Source/Evolve/WarpXEvolve.cpp b/Source/Evolve/WarpXEvolve.cpp
index d3d77c313..8f4456745 100644
--- a/Source/Evolve/WarpXEvolve.cpp
+++ b/Source/Evolve/WarpXEvolve.cpp
@@ -210,8 +210,7 @@ WarpX::Evolve (int numsteps)
}
}
- bool to_sort = (sort_int > 0) && ((step+1) % sort_int == 0);
- if (to_sort) {
+ if (sort_intervals.contains(step+1)) {
amrex::Print() << "re-sorting particles \n";
mypc->SortParticlesByBin(sort_bin_size);
}
diff --git a/Source/WarpX.H b/Source/WarpX.H
index b5e76fdf1..e05babad5 100644
--- a/Source/WarpX.H
+++ b/Source/WarpX.H
@@ -181,7 +181,7 @@ public:
static bool do_dynamic_scheduling;
static bool refine_plasma;
- static int sort_int;
+ static IntervalsParser sort_intervals;
static amrex::IntVect sort_bin_size;
static int do_subcycling;
diff --git a/Source/WarpX.cpp b/Source/WarpX.cpp
index 82ccabb2d..951f566ba 100644
--- a/Source/WarpX.cpp
+++ b/Source/WarpX.cpp
@@ -86,11 +86,7 @@ bool WarpX::refine_plasma = false;
int WarpX::num_mirrors = 0;
-#ifdef AMREX_USE_GPU
-int WarpX::sort_int = 4;
-#else
-int WarpX::sort_int = -1;
-#endif
+IntervalsParser WarpX::sort_intervals;
amrex::IntVect WarpX::sort_bin_size(AMREX_D_DECL(4,4,4));
bool WarpX::do_back_transformed_diagnostics = false;
@@ -461,7 +457,13 @@ WarpX::ReadParameters ()
pp.query("do_dive_cleaning", do_dive_cleaning);
pp.query("n_field_gather_buffer", n_field_gather_buffer);
pp.query("n_current_deposition_buffer", n_current_deposition_buffer);
- pp.query("sort_int", sort_int);
+#ifdef AMREX_USE_GPU
+ std::string sort_int_string = "4";
+#else
+ std::string sort_int_string = "-1";
+#endif
+ pp.query("sort_int", sort_int_string);
+ sort_intervals = IntervalsParser(sort_int_string);
Vector<int> vect_sort_bin_size(AMREX_SPACEDIM,1);
bool sort_bin_size_is_specified = pp.queryarr("sort_bin_size", vect_sort_bin_size);