aboutsummaryrefslogtreecommitdiff
path: root/Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.cpp')
-rw-r--r--Source/FieldSolver/SpectralSolver/SpectralFieldDataRZ.cpp30
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;