aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/WarpXPushFieldsEM.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FieldSolver/WarpXPushFieldsEM.cpp')
-rw-r--r--Source/FieldSolver/WarpXPushFieldsEM.cpp32
1 files changed, 30 insertions, 2 deletions
diff --git a/Source/FieldSolver/WarpXPushFieldsEM.cpp b/Source/FieldSolver/WarpXPushFieldsEM.cpp
index c53e13f8f..298b03dc6 100644
--- a/Source/FieldSolver/WarpXPushFieldsEM.cpp
+++ b/Source/FieldSolver/WarpXPushFieldsEM.cpp
@@ -137,6 +137,7 @@ WarpX::EvolveB (int lev, PatchType patch_type, amrex::Real a_dt)
{
const auto& pml_B = (patch_type == PatchType::fine) ? pml[lev]->GetB_fp() : pml[lev]->GetB_cp();
const auto& pml_E = (patch_type == PatchType::fine) ? pml[lev]->GetE_fp() : pml[lev]->GetE_cp();
+ // const auto& pml_j = (patch_type == PatchType::fine) ? pml[lev]->Getj_fp() : pml[lev]->Getj_cp();
#ifdef _OPENMP
#pragma omp parallel if (Gpu::notInLaunchRegion())
@@ -318,7 +319,10 @@ WarpX::EvolveE (int lev, PatchType patch_type, amrex::Real a_dt)
const auto& pml_B = (patch_type == PatchType::fine) ? pml[lev]->GetB_fp() : pml[lev]->GetB_cp();
const auto& pml_E = (patch_type == PatchType::fine) ? pml[lev]->GetE_fp() : pml[lev]->GetE_cp();
+ const auto& pml_j = (patch_type == PatchType::fine) ? pml[lev]->Getj_fp() : pml[lev]->Getj_cp();
const auto& pml_F = (patch_type == PatchType::fine) ? pml[lev]->GetF_fp() : pml[lev]->GetF_cp();
+ const auto& sigba = (patch_type == PatchType::fine) ? pml[lev]->GetMultiSigmaBox_fp()
+ : pml[lev]->GetMultiSigmaBox_cp();
#ifdef _OPENMP
#pragma omp parallel if (Gpu::notInLaunchRegion())
#endif
@@ -328,6 +332,15 @@ WarpX::EvolveE (int lev, PatchType patch_type, amrex::Real a_dt)
const Box& tey = mfi.tilebox(Ey_nodal_flag);
const Box& tez = mfi.tilebox(Ez_nodal_flag);
+ // amrex::Print()<< "== sigba.pml_type_array"<<std::endl;
+ const auto& pml_type = sigba[mfi].pml_type_array;
+ // amrex::Print()<<"&pml_type = "<< &pml_type <<std::endl;
+ // amrex::Print()<<"pml_type[0] = "<< pml_type[0] <<std::endl;
+ // amrex::Print()<<"tex.loVect() = "<< tex.loVect() <<std::endl;
+ // amrex::Print()<<"sigba[mfi].sigma[0].m_lo = "<< sigba[mfi].sigma[0].m_lo <<std::endl;
+ // amrex::Print()<<"sigba[mfi].sigma[0].m_loVec() = "<< sigba[mfi].sigma[0].lo <<std::endl;
+
+ // amrex::Print()<<"===== WRPX_PUSH_PML_EVEC ====="<<std::endl;
WRPX_PUSH_PML_EVEC(
tex.loVect(), tex.hiVect(),
tey.loVect(), tey.hiVect(),
@@ -338,8 +351,24 @@ WarpX::EvolveE (int lev, PatchType patch_type, amrex::Real a_dt)
BL_TO_FORTRAN_3D((*pml_B[0])[mfi]),
BL_TO_FORTRAN_3D((*pml_B[1])[mfi]),
BL_TO_FORTRAN_3D((*pml_B[2])[mfi]),
+#if (AMREX_SPACEDIM==2)
+ BL_TO_FORTRAN_3D((*pml_j[0])[mfi]),
+ BL_TO_FORTRAN_3D((*pml_j[1])[mfi]),
+ BL_TO_FORTRAN_3D((*pml_j[2])[mfi]),
+ &pml_has_particles,
+ &mu_c2_dt,
+#endif
+#if (AMREX_SPACEDIM==3)
+ BL_TO_FORTRAN_3D((*pml_j[0])[mfi]),
+ BL_TO_FORTRAN_3D((*pml_j[1])[mfi]),
+ BL_TO_FORTRAN_3D((*pml_j[2])[mfi]),
+ &pml_has_particles,
+ &pml_type, //sigba[mfi].pml_type_array,
+ WRPX_PML_SIGMACOEFF_TO_FORTRAN(sigba[mfi]), //WRPX_PML_SIGMAJ_TO_FORTRAN(
+ &mu_c2_dt,
+#endif
&dtsdx_c2, &dtsdy_c2, &dtsdz_c2);
-
+ // amrex::Print()<<"===== WRPX_PUSH_PML_EVEC FIN ====="<<std::endl;
if (pml_F)
{
WRPX_PUSH_PML_EVEC_F(
@@ -435,4 +464,3 @@ WarpX::EvolveF (int lev, PatchType patch_type, Real a_dt, DtType a_dt_type)
}
}
}
-