aboutsummaryrefslogtreecommitdiff
path: root/Source/Particles/PhysicalParticleContainer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Particles/PhysicalParticleContainer.cpp')
-rw-r--r--Source/Particles/PhysicalParticleContainer.cpp78
1 files changed, 78 insertions, 0 deletions
diff --git a/Source/Particles/PhysicalParticleContainer.cpp b/Source/Particles/PhysicalParticleContainer.cpp
index 2fa39d87d..480a67da4 100644
--- a/Source/Particles/PhysicalParticleContainer.cpp
+++ b/Source/Particles/PhysicalParticleContainer.cpp
@@ -1105,6 +1105,26 @@ PhysicalParticleContainer::Evolve (int lev,
const auto& mypc = WarpX::GetInstance().GetPartContainer();
const int nstencilz_fdtd_nci_corr = mypc.nstencilz_fdtd_nci_corr;
+
+
+
+
+
+
+
+
+ const auto& nci_godfrey_filter_exeybz = WarpX::GetInstance().nci_godfrey_filter_exeybz;
+ const auto& nci_godfrey_filter_bxbyez = WarpX::GetInstance().nci_godfrey_filter_bxbyez;
+
+
+
+
+
+
+
+
+
+
BL_ASSERT(OnSameGrids(lev,jx));
MultiFab* cost = WarpX::getCosts(lev);
@@ -1160,6 +1180,7 @@ PhysicalParticleContainer::Evolve (int lev,
FArrayBox const* byfab = &(By[pti]);
FArrayBox const* bzfab = &(Bz[pti]);
+ Elixir exeli, eyeli, ezeli, bxeli, byeli, bzeli;
if (WarpX::use_fdtd_nci_corr)
{
#if (AMREX_SPACEDIM == 2)
@@ -1172,53 +1193,85 @@ PhysicalParticleContainer::Evolve (int lev,
#endif
// both 2d and 3d
+ // bilinear_filter.ApplyStencil(*j_fp[lev][idim], *current_fp[lev][idim]);
+
filtered_Ex.resize(amrex::convert(tbox,WarpX::Ex_nodal_flag));
+ exeli = filtered_Ex.elixir();
+ //nci_godfrey_filter_exeybz[lev]->ApplyStencil(Ex[pti], filtered_Ex)
+ nci_godfrey_filter_exeybz[lev]->ApplyStencil(filtered_Ex, Ex[pti], tbox, box);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_Ex),
BL_TO_FORTRAN_ANYD(filtered_Ex),
BL_TO_FORTRAN_ANYD(Ex[pti]),
mypc.fdtd_nci_stencilz_ex[lev].data(),
&nstencilz_fdtd_nci_corr);
+ */
exfab = &filtered_Ex;
filtered_Ez.resize(amrex::convert(tbox,WarpX::Ez_nodal_flag));
+ ezeli = filtered_Ez.elixir();
+ //nci_godfrey_filter_bxbyez[lev]->ApplyStencil(Ez[pti], filtered_Ez)
+ nci_godfrey_filter_bxbyez[lev]->ApplyStencil(filtered_Ez, Ez[pti], tbox, box);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_Ez),
BL_TO_FORTRAN_ANYD(filtered_Ez),
BL_TO_FORTRAN_ANYD(Ez[pti]),
mypc.fdtd_nci_stencilz_by[lev].data(),
&nstencilz_fdtd_nci_corr);
+ */
ezfab = &filtered_Ez;
filtered_By.resize(amrex::convert(tbox,WarpX::By_nodal_flag));
+ byeli = filtered_By.elixir();
+ //nci_godfrey_filter_bxbyez[lev]->ApplyStencil(By[pti], filtered_By)
+ nci_godfrey_filter_bxbyez[lev]->ApplyStencil(filtered_By, By[pti], tbox, box);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_By),
BL_TO_FORTRAN_ANYD(filtered_By),
BL_TO_FORTRAN_ANYD(By[pti]),
mypc.fdtd_nci_stencilz_by[lev].data(),
&nstencilz_fdtd_nci_corr);
+ */
byfab = &filtered_By;
#if (AMREX_SPACEDIM == 3)
filtered_Ey.resize(amrex::convert(tbox,WarpX::Ey_nodal_flag));
+ eyeli = filtered_Ey.elixir();
+ //nci_godfrey_filter_exeybz[lev]->ApplyStencil(Ey[pti], filtered_Ey)
+ nci_godfrey_filter_exeybz[lev]->ApplyStencil(filtered_Ey, Ey[pti], tbox, box);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_Ey),
BL_TO_FORTRAN_ANYD(filtered_Ey),
BL_TO_FORTRAN_ANYD(Ey[pti]),
mypc.fdtd_nci_stencilz_ex[lev].data(),
&nstencilz_fdtd_nci_corr);
+ */
eyfab = &filtered_Ey;
filtered_Bx.resize(amrex::convert(tbox,WarpX::Bx_nodal_flag));
+ bxeli = filtered_Bx.elixir();
+ //nci_godfrey_filter_bxbyez[lev]->ApplyStencil(Bx[pti], filtered_Bx)
+ nci_godfrey_filter_bxbyez[lev]->ApplyStencil(filtered_Bx, Bx[pti], tbox, box);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_Bx),
BL_TO_FORTRAN_ANYD(filtered_Bx),
BL_TO_FORTRAN_ANYD(Bx[pti]),
mypc.fdtd_nci_stencilz_by[lev].data(),
&nstencilz_fdtd_nci_corr);
+ */
bxfab = &filtered_Bx;
filtered_Bz.resize(amrex::convert(tbox,WarpX::Bz_nodal_flag));
+ bzeli = filtered_Bz.elixir();
+ //nci_godfrey_filter_exeybz[lev]->ApplyStencil(Bz[pti], filtered_Bz)
+ nci_godfrey_filter_exeybz[lev]->ApplyStencil(filtered_Bz, Bz[pti], tbox, box);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_Bz),
BL_TO_FORTRAN_ANYD(filtered_Bz),
BL_TO_FORTRAN_ANYD(Bz[pti]),
mypc.fdtd_nci_stencilz_ex[lev].data(),
&nstencilz_fdtd_nci_corr);
+ */
bzfab = &filtered_Bz;
#endif
}
@@ -1383,6 +1436,7 @@ PhysicalParticleContainer::Evolve (int lev,
const FArrayBox* cbyfab = &(*cBy)[pti];
const FArrayBox* cbzfab = &(*cBz)[pti];
+ Elixir exeli, eyeli, ezeli, bxeli, byeli, bzeli;
if (WarpX::use_fdtd_nci_corr)
{
#if (AMREX_SPACEDIM == 2)
@@ -1396,51 +1450,75 @@ PhysicalParticleContainer::Evolve (int lev,
// both 2d and 3d
filtered_Ex.resize(amrex::convert(tbox,WarpX::Ex_nodal_flag));
+ exeli = filtered_Ex.elixir();
+ nci_godfrey_filter_exeybz[lev]->ApplyStencil(filtered_Ex, Ex[pti], tbox, cbox);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_Ex),
BL_TO_FORTRAN_ANYD(filtered_Ex),
BL_TO_FORTRAN_ANYD((*cEx)[pti]),
mypc.fdtd_nci_stencilz_ex[lev-1].data(),
&nstencilz_fdtd_nci_corr);
+ */
cexfab = &filtered_Ex;
filtered_Ez.resize(amrex::convert(tbox,WarpX::Ez_nodal_flag));
+ ezeli = filtered_Ez.elixir();
+ nci_godfrey_filter_bxbyez[lev]->ApplyStencil(filtered_Ez, Ez[pti], tbox, cbox);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_Ez),
BL_TO_FORTRAN_ANYD(filtered_Ez),
BL_TO_FORTRAN_ANYD((*cEz)[pti]),
mypc.fdtd_nci_stencilz_by[lev-1].data(),
&nstencilz_fdtd_nci_corr);
cezfab = &filtered_Ez;
+ */
filtered_By.resize(amrex::convert(tbox,WarpX::By_nodal_flag));
+ byeli = filtered_By.elixir();
+ nci_godfrey_filter_bxbyez[lev]->ApplyStencil(filtered_By, By[pti], tbox, cbox);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_By),
BL_TO_FORTRAN_ANYD(filtered_By),
BL_TO_FORTRAN_ANYD((*cBy)[pti]),
mypc.fdtd_nci_stencilz_by[lev-1].data(),
&nstencilz_fdtd_nci_corr);
+ */
cbyfab = &filtered_By;
#if (AMREX_SPACEDIM == 3)
filtered_Ey.resize(amrex::convert(tbox,WarpX::Ey_nodal_flag));
+ eyeli = filtered_Ey.elixir();
+ nci_godfrey_filter_exeybz[lev]->ApplyStencil(filtered_Ey, Ey[pti], tbox, cbox);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_Ey),
BL_TO_FORTRAN_ANYD(filtered_Ey),
BL_TO_FORTRAN_ANYD((*cEy)[pti]),
mypc.fdtd_nci_stencilz_ex[lev-1].data(),
&nstencilz_fdtd_nci_corr);
+ */
ceyfab = &filtered_Ey;
filtered_Bx.resize(amrex::convert(tbox,WarpX::Bx_nodal_flag));
+ bxeli = filtered_Bx.elixir();
+ nci_godfrey_filter_bxbyez[lev]->ApplyStencil(filtered_Bx, Bx[pti], tbox, cbox);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_Bx),
BL_TO_FORTRAN_ANYD(filtered_Bx),
BL_TO_FORTRAN_ANYD((*cBx)[pti]),
mypc.fdtd_nci_stencilz_by[lev-1].data(),
&nstencilz_fdtd_nci_corr);
+ */
cbxfab = &filtered_Bx;
filtered_Bz.resize(amrex::convert(tbox,WarpX::Bz_nodal_flag));
+ bzeli = filtered_Bz.elixir();
+ nci_godfrey_filter_exeybz[lev]->ApplyStencil(filtered_Bz, Bz[pti], tbox, cbox);
+ /*
WRPX_PXR_GODFREY_FILTER(BL_TO_FORTRAN_BOX(filtered_Bz),
BL_TO_FORTRAN_ANYD(filtered_Bz),
BL_TO_FORTRAN_ANYD((*cBz)[pti]),
mypc.fdtd_nci_stencilz_ex[lev-1].data(),
&nstencilz_fdtd_nci_corr);
+ */
cbzfab = &filtered_Bz;
#endif
}