diff options
author | 2022-10-28 10:59:38 -0700 | |
---|---|---|
committer | 2022-10-28 10:59:38 -0700 | |
commit | b8962c76d8a646ef06e8d9f54e129aad6f5cd7c7 (patch) | |
tree | cdd5f003ca2246f5e0c6ec80505f6ea7b74e0eec /Source/Parallelization | |
parent | f6b4b10e028299546f82ab05a3a7a7975beeefca (diff) | |
download | WarpX-b8962c76d8a646ef06e8d9f54e129aad6f5cd7c7.tar.gz WarpX-b8962c76d8a646ef06e8d9f54e129aad6f5cd7c7.tar.zst WarpX-b8962c76d8a646ef06e8d9f54e129aad6f5cd7c7.zip |
ABLASTR: Always Sync Option (#3467)
* ABLASTR: Always Sync Option
Add an option to ABLASTR/WarpX to always sync nodal cells that are
owned by multiple blocks. This can be used for debugging.
* Fix typo
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
* Use New Option in One CI Test
* Fix Logic: Force only to be `true`, not `false`
Co-authored-by: Edoardo Zoni <59625522+EZoni@users.noreply.github.com>
Co-authored-by: Edoardo Zoni <ezoni@lbl.gov>
Diffstat (limited to 'Source/Parallelization')
-rw-r--r-- | Source/Parallelization/WarpXComm.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/Source/Parallelization/WarpXComm.cpp b/Source/Parallelization/WarpXComm.cpp index cee53031c..396b0f24b 100644 --- a/Source/Parallelization/WarpXComm.cpp +++ b/Source/Parallelization/WarpXComm.cpp @@ -473,7 +473,7 @@ void WarpX::UpdateCurrentNodalToStag (amrex::MultiFab& dst, amrex::MultiFab cons } void -WarpX::FillBoundaryB (IntVect ng, const bool nodal_sync) +WarpX::FillBoundaryB (IntVect ng, std::optional<bool> nodal_sync) { for (int lev = 0; lev <= finest_level; ++lev) { @@ -482,7 +482,7 @@ WarpX::FillBoundaryB (IntVect ng, const bool nodal_sync) } void -WarpX::FillBoundaryE (IntVect ng, const bool nodal_sync) +WarpX::FillBoundaryE (IntVect ng, std::optional<bool> nodal_sync) { for (int lev = 0; lev <= finest_level; ++lev) { @@ -491,7 +491,7 @@ WarpX::FillBoundaryE (IntVect ng, const bool nodal_sync) } void -WarpX::FillBoundaryF (IntVect ng, const bool nodal_sync) +WarpX::FillBoundaryF (IntVect ng, std::optional<bool> nodal_sync) { for (int lev = 0; lev <= finest_level; ++lev) { @@ -500,7 +500,7 @@ WarpX::FillBoundaryF (IntVect ng, const bool nodal_sync) } void -WarpX::FillBoundaryG (IntVect ng, const bool nodal_sync) +WarpX::FillBoundaryG (IntVect ng, std::optional<bool> nodal_sync) { for (int lev = 0; lev <= finest_level; ++lev) { @@ -528,14 +528,14 @@ WarpX::FillBoundaryE_avg (IntVect ng) void -WarpX::FillBoundaryE (int lev, IntVect ng, const bool nodal_sync) +WarpX::FillBoundaryE (int lev, IntVect ng, std::optional<bool> nodal_sync) { FillBoundaryE(lev, PatchType::fine, ng, nodal_sync); if (lev > 0) FillBoundaryE(lev, PatchType::coarse, ng, nodal_sync); } void -WarpX::FillBoundaryE (const int lev, const PatchType patch_type, const amrex::IntVect ng, const bool nodal_sync) +WarpX::FillBoundaryE (const int lev, const PatchType patch_type, const amrex::IntVect ng, std::optional<bool> nodal_sync) { std::array<amrex::MultiFab*,3> mf; amrex::Periodicity period; @@ -585,14 +585,14 @@ WarpX::FillBoundaryE (const int lev, const PatchType patch_type, const amrex::In } void -WarpX::FillBoundaryB (int lev, IntVect ng, const bool nodal_sync) +WarpX::FillBoundaryB (int lev, IntVect ng, std::optional<bool> nodal_sync) { FillBoundaryB(lev, PatchType::fine, ng, nodal_sync); if (lev > 0) FillBoundaryB(lev, PatchType::coarse, ng, nodal_sync); } void -WarpX::FillBoundaryB (const int lev, const PatchType patch_type, const amrex::IntVect ng, const bool nodal_sync) +WarpX::FillBoundaryB (const int lev, const PatchType patch_type, const amrex::IntVect ng, std::optional<bool> nodal_sync) { std::array<amrex::MultiFab*,3> mf; amrex::Periodicity period; @@ -747,14 +747,14 @@ WarpX::FillBoundaryB_avg (int lev, PatchType patch_type, IntVect ng) } void -WarpX::FillBoundaryF (int lev, IntVect ng, const bool nodal_sync) +WarpX::FillBoundaryF (int lev, IntVect ng, std::optional<bool> nodal_sync) { FillBoundaryF(lev, PatchType::fine, ng, nodal_sync); if (lev > 0) FillBoundaryF(lev, PatchType::coarse, ng, nodal_sync); } void -WarpX::FillBoundaryF (int lev, PatchType patch_type, IntVect ng, const bool nodal_sync) +WarpX::FillBoundaryF (int lev, PatchType patch_type, IntVect ng, std::optional<bool> nodal_sync) { if (patch_type == PatchType::fine) { @@ -788,7 +788,7 @@ WarpX::FillBoundaryF (int lev, PatchType patch_type, IntVect ng, const bool noda } } -void WarpX::FillBoundaryG (int lev, IntVect ng, const bool nodal_sync) +void WarpX::FillBoundaryG (int lev, IntVect ng, std::optional<bool> nodal_sync) { FillBoundaryG(lev, PatchType::fine, ng, nodal_sync); @@ -798,7 +798,7 @@ void WarpX::FillBoundaryG (int lev, IntVect ng, const bool nodal_sync) } } -void WarpX::FillBoundaryG (int lev, PatchType patch_type, IntVect ng, const bool nodal_sync) +void WarpX::FillBoundaryG (int lev, PatchType patch_type, IntVect ng, std::optional<bool> nodal_sync) { if (patch_type == PatchType::fine) { |