aboutsummaryrefslogtreecommitdiff
path: root/Source/Diagnostics/FieldIO.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Diagnostics/FieldIO.cpp')
-rw-r--r--Source/Diagnostics/FieldIO.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/Source/Diagnostics/FieldIO.cpp b/Source/Diagnostics/FieldIO.cpp
index e3d44d1fc..15eac3449 100644
--- a/Source/Diagnostics/FieldIO.cpp
+++ b/Source/Diagnostics/FieldIO.cpp
@@ -200,8 +200,14 @@ PackPlotDataPtrs (Vector<const MultiFab*>& pmf,
pmf[1] = data[1].get();
pmf[2] = data[2].get();
#elif (AMREX_SPACEDIM == 2)
- pmf[0] = data[0].get();
- pmf[1] = data[2].get();
+ if (data[0]->nComp() > 1) {
+ // Only grabs the first component
+ pmf[0] = new MultiFab(*data[0], amrex::make_alias, 0, 1);
+ pmf[1] = new MultiFab(*data[2], amrex::make_alias, 0, 1);
+ } else {
+ pmf[0] = data[0].get();
+ pmf[1] = data[2].get();
+ }
#endif
}
@@ -543,8 +549,8 @@ WriteRawField( const MultiFab& F, const DistributionMapping& dm,
VisMF::Write(F, prefix);
} else {
// Copy original MultiFab into one that does not have guard cells
- MultiFab tmpF( F.boxArray(), dm, 1, 0);
- MultiFab::Copy(tmpF, F, 0, 0, 1, 0);
+ MultiFab tmpF( F.boxArray(), dm, F.nComp(), 0);
+ MultiFab::Copy(tmpF, F, 0, 0, F.nComp(), 0);
VisMF::Write(tmpF, prefix);
}
@@ -566,7 +572,7 @@ WriteZeroRawField( const MultiFab& F, const DistributionMapping& dm,
std::string prefix = amrex::MultiFabFileFullPrefix(lev,
filename, level_prefix, field_name);
- MultiFab tmpF(F.boxArray(), dm, 1, ng);
+ MultiFab tmpF(F.boxArray(), dm, F.nComp(), ng);
tmpF.setVal(0.);
VisMF::Write(tmpF, prefix);
}