aboutsummaryrefslogtreecommitdiff
path: root/Source/WarpX.cpp
diff options
context:
space:
mode:
authorGravatar MaxThevenet <mthevenet@lbl.gov> 2019-07-30 09:34:58 -0700
committerGravatar MaxThevenet <mthevenet@lbl.gov> 2019-07-30 09:34:58 -0700
commit9a30ff14fe3fe846be5d5456c00d8c3fef5b6823 (patch)
tree0f68f1fd05e878150f2a2b4c0582d3ee3e90cdc5 /Source/WarpX.cpp
parent6f351e2a6162bf57d0201978ff03ef740293e3af (diff)
parent501a477e23c8c124339574623c1babbb3f64dd54 (diff)
downloadWarpX-9a30ff14fe3fe846be5d5456c00d8c3fef5b6823.tar.gz
WarpX-9a30ff14fe3fe846be5d5456c00d8c3fef5b6823.tar.zst
WarpX-9a30ff14fe3fe846be5d5456c00d8c3fef5b6823.zip
fix merge conflicts dev
Diffstat (limited to 'Source/WarpX.cpp')
-rw-r--r--Source/WarpX.cpp50
1 files changed, 30 insertions, 20 deletions
diff --git a/Source/WarpX.cpp b/Source/WarpX.cpp
index 1c0d01ce5..1f5ade13a 100644
--- a/Source/WarpX.cpp
+++ b/Source/WarpX.cpp
@@ -387,36 +387,46 @@ WarpX::ReadParameters ()
pp.query("dump_plotfiles", dump_plotfiles);
pp.query("plot_raw_fields", plot_raw_fields);
pp.query("plot_raw_fields_guards", plot_raw_fields_guards);
- if (ParallelDescriptor::NProcs() == 1) {
- plot_proc_number = false;
- }
- // Fields to dump into plotfiles
- pp.query("plot_E_field" , plot_E_field);
- pp.query("plot_B_field" , plot_B_field);
- pp.query("plot_J_field" , plot_J_field);
- pp.query("plot_part_per_cell", plot_part_per_cell);
- pp.query("plot_part_per_grid", plot_part_per_grid);
- pp.query("plot_part_per_proc", plot_part_per_proc);
- pp.query("plot_proc_number" , plot_proc_number);
- pp.query("plot_dive" , plot_dive);
- pp.query("plot_divb" , plot_divb);
- pp.query("plot_rho" , plot_rho);
- pp.query("plot_F" , plot_F);
pp.query("plot_coarsening_ratio", plot_coarsening_ratio);
+ bool user_fields_to_plot;
+ user_fields_to_plot = pp.queryarr("fields_to_plot", fields_to_plot);
+ if (not user_fields_to_plot){
+ // If not specified, set default values
+ fields_to_plot = {"Ex", "Ey", "Ez", "Bx", "By",
+ "Bz", "jx", "jy", "jz",
+ "part_per_cell"};
+ }
+ // set plot_rho to true of the users requests it, so that
+ // rho is computed at each iteration.
+ if (std::find(fields_to_plot.begin(), fields_to_plot.end(), "rho")
+ != fields_to_plot.end()){
+ plot_rho = true;
+ }
+ // Sanity check if user requests to plot F
+ if (std::find(fields_to_plot.begin(), fields_to_plot.end(), "F")
+ != fields_to_plot.end()){
+ AMREX_ALWAYS_ASSERT_WITH_MESSAGE(do_dive_cleaning,
+ "plot F only works if warpx.do_dive_cleaning = 1");
+ }
+ // If user requests to plot proc_number for a serial run,
+ // delete proc_number from fields_to_plot
+ if (ParallelDescriptor::NProcs() == 1){
+ fields_to_plot.erase(std::remove(fields_to_plot.begin(),
+ fields_to_plot.end(),
+ "proc_number"),
+ fields_to_plot.end());
+ }
// Check that the coarsening_ratio can divide the blocking factor
for (int lev=0; lev<maxLevel(); lev++){
for (int comp=0; comp<AMREX_SPACEDIM; comp++){
if ( blockingFactor(lev)[comp] % plot_coarsening_ratio != 0 ){
- amrex::Abort("plot_coarsening_ratio should be an integer divisor of the blocking factor.");
+ amrex::Abort("plot_coarsening_ratio should be an integer "
+ "divisor of the blocking factor.");
}
}
}
- if (plot_F){
- AMREX_ALWAYS_ASSERT_WITH_MESSAGE(do_dive_cleaning,
- "plot_F only works if warpx.do_dive_cleaning = 1");
- }
pp.query("plot_finepatch", plot_finepatch);
if (maxLevel() > 0) {
pp.query("plot_crsepatch", plot_crsepatch);