diff options
author | 2020-12-23 08:01:37 -0800 | |
---|---|---|
committer | 2020-12-23 08:01:37 -0800 | |
commit | c30596fc489939d77da7ba34ed8dd0004a9b812c (patch) | |
tree | 892d954126c7fda40b84c4c6079a34c140f01e09 /Source/BoundaryConditions/WarpXEvolvePML.cpp | |
parent | b4dbc8b72c0ee31ac2b90f63dafa930075d5aa0f (diff) | |
download | WarpX-c30596fc489939d77da7ba34ed8dd0004a9b812c.tar.gz WarpX-c30596fc489939d77da7ba34ed8dd0004a9b812c.tar.zst WarpX-c30596fc489939d77da7ba34ed8dd0004a9b812c.zip |
Use PML diagonal components only with div cleaning (#1592)
* Use PML diagonal components only with div cleaning
* Apply @RemiLehe's suggestions and simplify allocations
Diffstat (limited to 'Source/BoundaryConditions/WarpXEvolvePML.cpp')
-rw-r--r-- | Source/BoundaryConditions/WarpXEvolvePML.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/Source/BoundaryConditions/WarpXEvolvePML.cpp b/Source/BoundaryConditions/WarpXEvolvePML.cpp index 31c8cbd1e..a72ab9afb 100644 --- a/Source/BoundaryConditions/WarpXEvolvePML.cpp +++ b/Source/BoundaryConditions/WarpXEvolvePML.cpp @@ -43,6 +43,8 @@ WarpX::DampPML (int lev, PatchType patch_type) WARPX_PROFILE("WarpX::DampPML()"); + const bool dive_cleaning = WarpX::do_dive_cleaning; + if (pml[lev]->ok()) { const auto& pml_E = (patch_type == PatchType::fine) ? pml[lev]->GetE_fp() : pml[lev]->GetE_cp(); @@ -110,15 +112,18 @@ WarpX::DampPML (int lev, PatchType patch_type) amrex::ParallelFor(tex, tey, tez, [=] AMREX_GPU_DEVICE (int i, int j, int k) { warpx_damp_pml_ex(i, j, k, pml_Exfab, Ex_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z, - sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo); + sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo, + dive_cleaning); }, [=] AMREX_GPU_DEVICE (int i, int j, int k) { warpx_damp_pml_ey(i, j, k, pml_Eyfab, Ey_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z, - sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo); + sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo, + dive_cleaning); }, [=] AMREX_GPU_DEVICE (int i, int j, int k) { warpx_damp_pml_ez(i, j, k, pml_Ezfab, Ez_stag, sigma_fac_x, sigma_fac_y, sigma_fac_z, - sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo); + sigma_star_fac_x, sigma_star_fac_y, sigma_star_fac_z, x_lo, y_lo, z_lo, + dive_cleaning); }); amrex::ParallelFor(tbx, tby, tbz, |