diff --git a/src/phoebus_driver.cpp b/src/phoebus_driver.cpp index 926d6161..fc223813 100644 --- a/src/phoebus_driver.cpp +++ b/src/phoebus_driver.cpp @@ -732,18 +732,22 @@ TaskListStatus PhoebusDriver::RadiationPostStep() { auto pmb = blocks[ib].get(); auto &tl = async_region[ib]; auto &sc0 = pmb->meshblock_data.Get(stage_name[integrator->nstages]); - auto calc_tau = tl.AddTask(none, radiation::LightBulbCalcTau, sc0.get()); - auto check_do_gain_local = tl.AddTask(calc_tau, radiation::CheckDoGain, sc0.get(), - &(pdo_gain_reducer->val)); - auto start_gain_reducer = - (ib == 0 - ? tl.AddTask(check_do_gain_local, &parthenon::AllReduce::StartReduce, - pdo_gain_reducer, MPI_LOR) - : none); - auto finish_gain_reducer = tl.AddTask( - start_gain_reducer, &parthenon::AllReduce::CheckReduce, pdo_gain_reducer); - int reg_dep_id = 0; - async_region.AddRegionalDependencies(reg_dep_id++, ib, finish_gain_reducer); + auto finish_gain_reducer = none; + if (do_lightbulb) { + auto calc_tau = tl.AddTask(none, radiation::LightBulbCalcTau, sc0.get()); + auto check_do_gain_local = tl.AddTask(calc_tau, radiation::CheckDoGain, sc0.get(), + &(pdo_gain_reducer->val)); + auto start_gain_reducer = + (ib == 0 ? tl.AddTask(check_do_gain_local, + &parthenon::AllReduce::StartReduce, + pdo_gain_reducer, MPI_LOR) + : none); + finish_gain_reducer = + tl.AddTask(start_gain_reducer, &parthenon::AllReduce::CheckReduce, + pdo_gain_reducer); + int reg_dep_id = 0; + async_region.AddRegionalDependencies(reg_dep_id++, ib, finish_gain_reducer); + } auto calculate_four_force = tl.AddTask(finish_gain_reducer, radiation::CoolingFunctionCalculateFourForce, diff --git a/src/radiation/cooling_function.cpp b/src/radiation/cooling_function.cpp index 7e33b556..642618e8 100644 --- a/src/radiation/cooling_function.cpp +++ b/src/radiation/cooling_function.cpp @@ -303,7 +303,7 @@ TaskStatus CoolingFunctionCalculateFourForce(MeshBlockData *rc, const doub for (int mu = Gcov_lo; mu <= Gcov_lo + 3; mu++) { Kokkos::atomic_add(&(v(mu, k, j, i)), -detG * Gcov_coord[mu - Gcov_lo]); } - Kokkos::atomic_add(&(v(Gye, k, j, i)), LeptonSign(s) * detG * Jye); + Kokkos::atomic_add(&(v(Gye, k, j, i)), -LeptonSign(s) * detG * Jye); }); } }