diff options
Diffstat (limited to 'Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.cpp')
-rw-r--r-- | Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.cpp b/Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.cpp index a44ecb47e..57eac3a2c 100644 --- a/Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.cpp +++ b/Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.cpp @@ -408,6 +408,7 @@ SpectralFieldDataRZ::ForwardTransform (const int lev, int const i_comp) { amrex::LayoutData<amrex::Real>* cost = WarpX::getCosts(lev); + bool do_costs = WarpXUtilLoadBalance::doCosts(cost, field_mf.boxArray(), field_mf.DistributionMap()); // Check field index type, in order to apply proper shift in spectral space. // Only cell centered in r is supported. @@ -430,7 +431,7 @@ SpectralFieldDataRZ::ForwardTransform (const int lev, // Loop over boxes. for (amrex::MFIter mfi(field_mf); mfi.isValid(); ++mfi){ - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); } @@ -451,7 +452,7 @@ SpectralFieldDataRZ::ForwardTransform (const int lev, FABZForwardTransform(mfi, realspace_bx, tempHTransformedSplit, field_index, is_nodal_z); - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); wt = amrex::second() - wt; @@ -469,6 +470,7 @@ SpectralFieldDataRZ::ForwardTransform (const int lev, amrex::MultiFab const & field_mf_t, int const field_index_t) { amrex::LayoutData<amrex::Real>* cost = WarpX::getCosts(lev); + bool do_costs = WarpXUtilLoadBalance::doCosts(cost, field_mf_r.boxArray(), field_mf_r.DistributionMap()); // Check field index type, in order to apply proper shift in spectral space. // Only cell centered in r is supported. @@ -486,7 +488,7 @@ SpectralFieldDataRZ::ForwardTransform (const int lev, // Loop over boxes. for (amrex::MFIter mfi(field_mf_r); mfi.isValid(); ++mfi){ - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); } @@ -515,7 +517,7 @@ SpectralFieldDataRZ::ForwardTransform (const int lev, FABZForwardTransform(mfi, realspace_bx, tempHTransformedSplit_p, field_index_r, is_nodal_z); FABZForwardTransform(mfi, realspace_bx, tempHTransformedSplit_m, field_index_t, is_nodal_z); - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); wt = amrex::second() - wt; @@ -532,6 +534,7 @@ SpectralFieldDataRZ::BackwardTransform (const int lev, int const i_comp) { amrex::LayoutData<amrex::Real>* cost = WarpX::getCosts(lev); + bool do_costs = WarpXUtilLoadBalance::doCosts(cost, field_mf.boxArray(), field_mf.DistributionMap()); // Check field index type, in order to apply proper shift in spectral space. bool const is_nodal_z = field_mf.is_nodal(1); @@ -548,7 +551,7 @@ SpectralFieldDataRZ::BackwardTransform (const int lev, // Loop over boxes. for (amrex::MFIter mfi(field_mf); mfi.isValid(); ++mfi){ - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); } @@ -600,7 +603,7 @@ SpectralFieldDataRZ::BackwardTransform (const int lev, field_mf_array(i,j,k,ic) = sign*field_mf_copy_array(ii,j,k,icomp); }); - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); wt = amrex::second() - wt; @@ -617,6 +620,7 @@ SpectralFieldDataRZ::BackwardTransform (const int lev, amrex::MultiFab& field_mf_t, int const field_index_t) { amrex::LayoutData<amrex::Real>* cost = WarpX::getCosts(lev); + bool do_costs = WarpXUtilLoadBalance::doCosts(cost, field_mf_r.boxArray(), field_mf_r.DistributionMap()); // Check field index type, in order to apply proper shift in spectral space. bool const is_nodal_z = field_mf_r.is_nodal(1); @@ -632,7 +636,7 @@ SpectralFieldDataRZ::BackwardTransform (const int lev, // Loop over boxes. for (amrex::MFIter mfi(field_mf_r); mfi.isValid(); ++mfi){ - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); } @@ -695,7 +699,7 @@ SpectralFieldDataRZ::BackwardTransform (const int lev, } }); - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); wt = amrex::second() - wt; @@ -727,10 +731,11 @@ void SpectralFieldDataRZ::ApplyFilter (const int lev, int const field_index) { amrex::LayoutData<amrex::Real>* cost = WarpX::getCosts(lev); + bool do_costs = WarpXUtilLoadBalance::doCosts(cost, binomialfilter.boxArray(), binomialfilter.DistributionMap()); for (amrex::MFIter mfi(binomialfilter); mfi.isValid(); ++mfi){ - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); } @@ -756,7 +761,7 @@ SpectralFieldDataRZ::ApplyFilter (const int lev, int const field_index) fields_arr(i,j,k,ic) *= filter_r_arr[ir]*filter_z_arr[j]; }); - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); wt = amrex::second() - wt; @@ -771,10 +776,11 @@ SpectralFieldDataRZ::ApplyFilter (const int lev, int const field_index1, int const field_index2, int const field_index3) { amrex::LayoutData<amrex::Real>* cost = WarpX::getCosts(lev); + bool do_costs = WarpXUtilLoadBalance::doCosts(cost, binomialfilter.boxArray(), binomialfilter.DistributionMap()); for (amrex::MFIter mfi(binomialfilter); mfi.isValid(); ++mfi){ - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); } @@ -804,7 +810,7 @@ SpectralFieldDataRZ::ApplyFilter (const int lev, int const field_index1, fields_arr(i,j,k,ic3) *= filter_r_arr[ir]*filter_z_arr[j]; }); - if (cost && WarpX::load_balance_costs_update_algo == LoadBalanceCostsUpdateAlgo::Timers) + if (do_costs) { amrex::Gpu::synchronize(); wt = amrex::second() - wt; |