diff --git a/CHANGELOG.md b/CHANGELOG.md index 73a31d4b..48ebc38a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,11 +10,17 @@ ### Fixed (not changing behavior/API/variables/...) ### Infrastructure +- [[PR 109]](https://github.com/parthenon-hpc-lab/athenapk/pull/109) Bump Parthenon to latest develop (2024-05-29) +- [[PR 105]](https://github.com/parthenon-hpc-lab/athenapk/pull/105) Bump Parthenon to latest develop (2024-03-13) - [[PR 84]](https://github.com/parthenon-hpc-lab/athenapk/pull/84) Added `CHANGELOG.md` ### Removed (removing behavior/API/varaibles/...) ### Incompatibilities (i.e. breaking changes) +- [[PR 109]](https://github.com/parthenon-hpc-lab/athenapk/pull/109) Bump Parthenon to latest develop (2024-05-29) + - Changed signature of `UserWorkBeforeOutput` to include `SimTime` as last paramter + - Fixes bitwise idential restarts for AMR simulations (the derefinement counter is now included) + - Order of operations in flux-correction has changed (expect round-off error differences to previous results for AMR sims) - [[PR 84]](https://github.com/parthenon-hpc-lab/athenapk/pull/84) Bump Parthenon to latest develop (2024-02-15) - Updated access to block dimension: `pmb->block_size.nx1` -> `pmb->block_size.nx(X1DIR)` (and similarly x2 and x3) - Update access to mesh size: `pmesh->mesh_size.x1max` -> `pmesh->mesh_size.xmax(X1DIR)` (and similarly x2, x3, and min) diff --git a/docs/cluster.md b/docs/cluster.md index 9e3eaaac..11864b6c 100644 --- a/docs/cluster.md +++ b/docs/cluster.md @@ -534,7 +534,7 @@ fixed_mass_rate = 1.0 ## SNIA Feedback -Following [Prasad 2020](doi.org/10.1093/mnras/112.2.195), AthenaPK can inject +Following [Prasad 2020](https://doi.org/10.3847/1538-4357/abc33c), AthenaPK can inject mass and energy from type Ia supernovae following the mass profile of the BCG. This SNIA feedback can be configured with ``` diff --git a/external/parthenon b/external/parthenon index fbc7fa25..bdb997af 160000 --- a/external/parthenon +++ b/external/parthenon @@ -1 +1 @@ -Subproject commit fbc7fa2565be9d802508f1c3ca5086c62f8bb728 +Subproject commit bdb997af5847e22521616041d0c83ead57f023cb diff --git a/src/hydro/hydro_driver.cpp b/src/hydro/hydro_driver.cpp index f45483dc..06a58826 100644 --- a/src/hydro/hydro_driver.cpp +++ b/src/hydro/hydro_driver.cpp @@ -717,7 +717,7 @@ TaskCollection HydroDriver::MakeTaskCollection(BlockList_t &blocks, int stage) { { for (auto &pmb : blocks) { auto &tl = sync_region_tr[0]; - auto &sd = pmb->swarm_data.Get(); + auto &sd = pmb->meshblock_data.Get()->GetSwarmData(); auto reset_comms = tl.AddTask(none, &SwarmContainer::ResetCommunication, sd.get()); } @@ -727,7 +727,7 @@ TaskCollection HydroDriver::MakeTaskCollection(BlockList_t &blocks, int stage) { for (int n = 0; n < blocks.size(); n++) { auto &tl = async_region_tr[n]; auto &pmb = blocks[n]; - auto &sd = pmb->swarm_data.Get(); + auto &sd = pmb->meshblock_data.Get()->GetSwarmData(); auto &mbd0 = pmb->meshblock_data.Get("base"); auto tracer_advect = tl.AddTask(none, Tracers::AdvectTracers, mbd0.get(), integrator->dt); diff --git a/src/pgen/cloud.cpp b/src/pgen/cloud.cpp index db53990a..d1802e0b 100644 --- a/src/pgen/cloud.cpp +++ b/src/pgen/cloud.cpp @@ -229,9 +229,10 @@ void InflowWindX2(std::shared_ptr> &mbd, bool coarse) { const auto Bx_ = Bx; const auto By_ = By; const auto Bz_ = Bz; + const bool fine = false; pmb->par_for_bndry( "InflowWindX2", nb, IndexDomain::inner_x2, parthenon::TopologicalElement::CC, - coarse, KOKKOS_LAMBDA(const int, const int &k, const int &j, const int &i) { + coarse, fine, KOKKOS_LAMBDA(const int, const int &k, const int &j, const int &i) { cons(IDN, k, j, i) = rho_wind_; cons(IM2, k, j, i) = mom_wind_; cons(IEN, k, j, i) = rhoe_wind_ + 0.5 * mom_wind_ * mom_wind_ / rho_wind_; diff --git a/src/pgen/cluster.cpp b/src/pgen/cluster.cpp index 1e73d8b5..ecc19336 100644 --- a/src/pgen/cluster.cpp +++ b/src/pgen/cluster.cpp @@ -812,7 +812,8 @@ void ProblemGenerator(Mesh *pmesh, ParameterInput *pin, MeshData *md) { } } -void UserWorkBeforeOutput(MeshBlock *pmb, ParameterInput *pin) { +void UserWorkBeforeOutput(MeshBlock *pmb, ParameterInput *pin, + const parthenon::SimTime & /*tm*/) { // get hydro auto pkg = pmb->packages.Get("Hydro"); const Real gam = pin->GetReal("hydro", "gamma"); diff --git a/src/pgen/pgen.hpp b/src/pgen/pgen.hpp index 2aeee63c..ddea80f3 100644 --- a/src/pgen/pgen.hpp +++ b/src/pgen/pgen.hpp @@ -100,7 +100,8 @@ using namespace parthenon::driver::prelude; void ProblemInitPackageData(ParameterInput *pin, parthenon::StateDescriptor *pkg); void InitUserMeshData(ParameterInput *pin); void ProblemGenerator(Mesh *pmesh, ParameterInput *pin, MeshData *md); -void UserWorkBeforeOutput(MeshBlock *pmb, ParameterInput *pin); +void UserWorkBeforeOutput(MeshBlock *pmb, ParameterInput *pin, + const parthenon::SimTime &tm); void ClusterUnsplitSrcTerm(MeshData *md, const parthenon::SimTime &tm, const Real beta_dt); void ClusterSplitSrcTerm(MeshData *md, const parthenon::SimTime &tm, @@ -121,7 +122,8 @@ void ProblemGenerator(Mesh *pm, parthenon::ParameterInput *pin, MeshData * void ProblemInitPackageData(ParameterInput *pin, parthenon::StateDescriptor *pkg); void Driving(MeshData *md, const parthenon::SimTime &tm, const Real dt); void SetPhases(MeshBlock *pmb, ParameterInput *pin); -void UserWorkBeforeOutput(MeshBlock *pmb, ParameterInput *pin); +void UserWorkBeforeOutput(MeshBlock *pmb, ParameterInput *pin, + const parthenon::SimTime &tm); void Cleanup(); } // namespace turbulence diff --git a/src/pgen/turbulence.cpp b/src/pgen/turbulence.cpp index 6390b5f4..9047bc74 100644 --- a/src/pgen/turbulence.cpp +++ b/src/pgen/turbulence.cpp @@ -440,8 +440,7 @@ void ProblemGenerator(Mesh *pmesh, ParameterInput *pin, MeshData *md) { for (int b = 0; b < md->NumBlocks(); b++) { pmb = md->GetBlockData(b)->GetBlockPointer(); - auto &sd = pmb->swarm_data.Get(); - auto &swarm = pmb->swarm_data.Get()->Get("tracers"); + auto &swarm = pmb->meshblock_data.Get()->GetSwarmData()->Get("tracers"); auto rng_pool = tracer_pkg->Param("rng_pool"); const Real &x_min = pmb->coords.Xf<1>(ib.s); @@ -814,7 +813,8 @@ void Driving(MeshData *md, const parthenon::SimTime &tm, const Real dt) { InjectBlob(md, tm, dt); } -void UserWorkBeforeOutput(MeshBlock *pmb, ParameterInput *pin) { +void UserWorkBeforeOutput(MeshBlock *pmb, ParameterInput *pin, + const parthenon::SimTime & /*tm*/) { auto hydro_pkg = pmb->packages.Get("Hydro"); // Store (common) acceleration field in spectral space diff --git a/src/tracers/tracers.cpp b/src/tracers/tracers.cpp index b3b32283..9fe0193c 100644 --- a/src/tracers/tracers.cpp +++ b/src/tracers/tracers.cpp @@ -112,8 +112,7 @@ std::shared_ptr Initialize(ParameterInput *pin) { TaskStatus AdvectTracers(MeshBlockData *mbd, const Real dt) { auto *pmb = mbd->GetParentPointer(); - auto &sd = pmb->swarm_data.Get(); - auto &swarm = sd->Get("tracers"); + auto &swarm = pmb->meshblock_data.Get()->GetSwarmData()->Get("tracers"); auto &x = swarm->Get("x").Get(); auto &y = swarm->Get("y").Get(); @@ -207,8 +206,7 @@ TaskStatus FillTracers(MeshData *md, parthenon::SimTime &tm) { const auto &prim_pack = md->PackVariables(std::vector{"prim"}); for (int b = 0; b < md->NumBlocks(); b++) { auto *pmb = md->GetBlockData(b)->GetBlockPointer(); - auto &sd = pmb->swarm_data.Get(); - auto &swarm = sd->Get("tracers"); + auto &swarm = pmb->meshblock_data.Get()->GetSwarmData()->Get("tracers"); // TODO(pgrete) cleanup once get swarm packs (currently in development upstream) // pull swarm vars