aboutsummaryrefslogtreecommitdiff
path: root/Source/Utils/WarpXMovingWindow.cpp
diff options
context:
space:
mode:
authorGravatar MaxThevenet <mthevenet@lbl.gov> 2020-02-11 09:50:09 -0800
committerGravatar GitHub <noreply@github.com> 2020-02-11 09:50:09 -0800
commit5ea3c7b9183fe57c1939574bdedc36cf79927536 (patch)
tree411739f8c986b888a9bf04c2e9820590e670c908 /Source/Utils/WarpXMovingWindow.cpp
parent4db955d68f4d886882a9681df9df5e22bc1d8af2 (diff)
parent20daedf07493ec7c180a6ecfb2abb0986b7e5479 (diff)
downloadWarpX-5ea3c7b9183fe57c1939574bdedc36cf79927536.tar.gz
WarpX-5ea3c7b9183fe57c1939574bdedc36cf79927536.tar.zst
WarpX-5ea3c7b9183fe57c1939574bdedc36cf79927536.zip
Merge pull request #696 from WeiqunZhang/parser_var
template Parser so that it works for any number of variables
Diffstat (limited to 'Source/Utils/WarpXMovingWindow.cpp')
-rw-r--r--Source/Utils/WarpXMovingWindow.cpp12
1 files changed, 5 insertions, 7 deletions
diff --git a/Source/Utils/WarpXMovingWindow.cpp b/Source/Utils/WarpXMovingWindow.cpp
index f6cd6de20..a94ffede9 100644
--- a/Source/Utils/WarpXMovingWindow.cpp
+++ b/Source/Utils/WarpXMovingWindow.cpp
@@ -111,8 +111,8 @@ WarpX::MoveWindow (bool move_j)
// Shift each component of vector fields (E, B, j)
for (int dim = 0; dim < 3; ++dim) {
// Fine grid
- ParserWrapper *Bfield_parser;
- ParserWrapper *Efield_parser;
+ ParserWrapper<3> *Bfield_parser;
+ ParserWrapper<3> *Efield_parser;
bool use_Bparser = false;
bool use_Eparser = false;
if (B_ext_grid_s == "parse_b_ext_grid_function") {
@@ -233,7 +233,7 @@ WarpX::MoveWindow (bool move_j)
void
WarpX::shiftMF (MultiFab& mf, const Geometry& geom, int num_shift, int dir,
IntVect ng_extra, amrex::Real external_field, bool useparser,
- ParserWrapper *field_parser)
+ ParserWrapper<3> *field_parser)
{
BL_PROFILE("WarpX::shiftMF()");
const BoxArray& ba = mf.boxArray();
@@ -329,10 +329,8 @@ WarpX::shiftMF (MultiFab& mf, const Geometry& geom, int num_shift, int dir,
Real fac_z = (1.0 - mf_type[2]) * dx[2]*0.5;
Real z = k*dx[2] + real_box.lo(2) + fac_z;
#endif
- srcfab(i,j,k,n) = field_parser->getField(x,y,z);
- }
- , amrex::Gpu::numThreadsPerBlockParallelFor() * sizeof(double)*4
- );
+ srcfab(i,j,k,n) = (*field_parser)(x,y,z);
+ });
}
}