aboutsummaryrefslogtreecommitdiff
path: root/Source/Diagnostics/FieldIO.cpp
diff options
context:
space:
mode:
authorGravatar Remi Lehe <remi.lehe@normalesup.org> 2020-01-17 15:59:36 -0800
committerGravatar GitHub <noreply@github.com> 2020-01-17 15:59:36 -0800
commit73de76c53c6b70f7fcf881f81fb8fdad7358866c (patch)
treef14afd645d0bebd188b242cf78d8c3502c551d93 /Source/Diagnostics/FieldIO.cpp
parent06bd314f679a20603597b41ee48c3f4966ac3ba4 (diff)
parentf1f1b51ad944b9d74a4e1c93e2460b02c0e5dd2b (diff)
downloadWarpX-73de76c53c6b70f7fcf881f81fb8fdad7358866c.tar.gz
WarpX-73de76c53c6b70f7fcf881f81fb8fdad7358866c.tar.zst
WarpX-73de76c53c6b70f7fcf881f81fb8fdad7358866c.zip
Merge pull request #642 from dpgrote/write_all_rz_components
Fixed field names for RZ modes in plot files
Diffstat (limited to 'Source/Diagnostics/FieldIO.cpp')
-rw-r--r--Source/Diagnostics/FieldIO.cpp39
1 files changed, 24 insertions, 15 deletions
diff --git a/Source/Diagnostics/FieldIO.cpp b/Source/Diagnostics/FieldIO.cpp
index be0e719cc..9c38f1d68 100644
--- a/Source/Diagnostics/FieldIO.cpp
+++ b/Source/Diagnostics/FieldIO.cpp
@@ -476,6 +476,15 @@ AddToVarNames (Vector<std::string>& varnames,
for(auto coord:coords) varnames.push_back(name+coord+suffix);
}
+/** \brief Add RZ variable names to the list.
+ */
+void
+AddToVarNamesRZ (Vector<std::string>& varnames,
+ std::string name, std::string suffix) {
+ auto coords = {"r", "theta", "z"};
+ for(auto coord:coords) varnames.push_back(name+coord+suffix);
+}
+
/** \brief Write the different fields that are meant for output,
* into the vector of MultiFab `mf_avg` (one MultiFab per level)
* after averaging them to the cell centers.
@@ -551,31 +560,31 @@ WarpX::AverageAndPackFields ( Vector<std::string>& varnames,
if(lev==0) varnames.push_back(fieldname);
if (fieldname == "Ex"){
MultiFab::Copy( mf_avg[lev], mf_tmp_E, 0, dcomp++, 1, ngrow);
- CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_E, 0, dcomp, ngrow, fieldname, varnames);
+ CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_E, 0, dcomp, ngrow, "Er", varnames);
} else if (fieldname == "Ey"){
MultiFab::Copy( mf_avg[lev], mf_tmp_E, 1, dcomp++, 1, ngrow);
- CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_E, 1, dcomp, ngrow, fieldname, varnames);
+ CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_E, 1, dcomp, ngrow, "Etheta", varnames);
} else if (fieldname == "Ez"){
MultiFab::Copy( mf_avg[lev], mf_tmp_E, 2, dcomp++, 1, ngrow);
- CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_E, 2, dcomp, ngrow, fieldname, varnames);
+ CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_E, 2, dcomp, ngrow, "Ez", varnames);
} else if (fieldname == "Bx"){
MultiFab::Copy( mf_avg[lev], mf_tmp_B, 0, dcomp++, 1, ngrow);
- CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_B, 0, dcomp, ngrow, fieldname, varnames);
+ CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_B, 0, dcomp, ngrow, "Br", varnames);
} else if (fieldname == "By"){
MultiFab::Copy( mf_avg[lev], mf_tmp_B, 1, dcomp++, 1, ngrow);
- CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_B, 1, dcomp, ngrow, fieldname, varnames);
+ CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_B, 1, dcomp, ngrow, "Btheta", varnames);
} else if (fieldname == "Bz"){
MultiFab::Copy( mf_avg[lev], mf_tmp_B, 2, dcomp++, 1, ngrow);
- CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_B, 2, dcomp, ngrow, fieldname, varnames);
+ CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_B, 2, dcomp, ngrow, "Bz", varnames);
} else if (fieldname == "jx"){
MultiFab::Copy( mf_avg[lev], mf_tmp_J, 0, dcomp++, 1, ngrow);
- CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_J, 0, dcomp, ngrow, fieldname, varnames);
+ CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_J, 0, dcomp, ngrow, "jr", varnames);
} else if (fieldname == "jy"){
MultiFab::Copy( mf_avg[lev], mf_tmp_J, 1, dcomp++, 1, ngrow);
- CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_J, 1, dcomp, ngrow, fieldname, varnames);
+ CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_J, 1, dcomp, ngrow, "jtheta", varnames);
} else if (fieldname == "jz"){
MultiFab::Copy( mf_avg[lev], mf_tmp_J, 2, dcomp++, 1, ngrow);
- CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_J, 2, dcomp, ngrow, fieldname, varnames);
+ CopyVectorFieldComponentsToMultiFab(lev, mf_avg, mf_tmp_J, 2, dcomp, ngrow, "jz", varnames);
} else if (fieldname == "rho"){
AverageAndPackScalarField( mf_avg[lev], *rho_fp[lev], dcomp++, ngrow );
CopyScalarFieldComponentsToMultiFab(lev, mf_avg, *rho_fp[lev], dcomp, ngrow, n_rz_azimuthal_modes,
@@ -651,10 +660,10 @@ WarpX::AverageAndPackFields ( Vector<std::string>& varnames,
if (lev == 0) {
AddToVarNames(varnames, "E", "_fp");
if (n_rz_azimuthal_modes > 1) {
- AddToVarNames(varnames, "E", ComponentName("_fp", 0, "real"));
+ AddToVarNamesRZ(varnames, "E", ComponentName("_fp", 0, "real"));
for (int mode=1 ; mode < n_rz_azimuthal_modes ; mode++) {
- AddToVarNames(varnames, "E", ComponentName("_fp", mode, "real"));
- AddToVarNames(varnames, "E", ComponentName("_fp", mode, "imag"));
+ AddToVarNamesRZ(varnames, "E", ComponentName("_fp", mode, "real"));
+ AddToVarNamesRZ(varnames, "E", ComponentName("_fp", mode, "imag"));
}
}
}
@@ -664,10 +673,10 @@ WarpX::AverageAndPackFields ( Vector<std::string>& varnames,
if (lev == 0) {
AddToVarNames(varnames, "B", "_fp");
if (n_rz_azimuthal_modes > 1) {
- AddToVarNames(varnames, "B", ComponentName("_fp", 0, "real"));
+ AddToVarNamesRZ(varnames, "B", ComponentName("_fp", 0, "real"));
for (int mode=1 ; mode < n_rz_azimuthal_modes ; mode++) {
- AddToVarNames(varnames, "B", ComponentName("_fp", mode, "real"));
- AddToVarNames(varnames, "B", ComponentName("_fp", mode, "imag"));
+ AddToVarNamesRZ(varnames, "B", ComponentName("_fp", mode, "real"));
+ AddToVarNamesRZ(varnames, "B", ComponentName("_fp", mode, "imag"));
}
}
}