Skip to content

Latest commit

 

History

History
593 lines (516 loc) · 58.7 KB

CHANGELOG.md

File metadata and controls

593 lines (516 loc) · 58.7 KB

Changelog

Current develop

Added (new features/APIs/variables/...)

  • [PR 1210] Add cycle based output
  • [PR 1103] Add sparsity to vector wave equation test
  • [PR 1185] Bugfix to particle defragmentation
  • [PR 1184] Fix swarm block neighbor indexing in 1D, 2D
  • [PR 1183] Fix particle leapfrog example initialization data
  • [PR 1179] Make a global variable for whether simulation is a restart
  • [PR 1171] Add PARTHENON_USE_SYSTEM_PACKAGES build option
  • [PR 1161] Make flux field Metadata accessible, add Metadata::CellMemAligned flag, small perfomance upgrades

Changed (changing behavior/API/variables/...)

  • [PR 1191] Update Kokkos version to 4.4.1
  • [PR 1209] Ordered history output
  • [PR 1206] Leapfrog fix
  • [PR 1203] Pin Ubuntu CI image
  • [PR 1177] Make mesh-level boundary conditions usable without the "user" flag
  • [PR 1187] Make DataCollection::Add safer and generalize MeshBlockData::Initialize
  • [PR 1171] Add PARTHENON_USE_SYSTEM_PACKAGES build option
  • [PR 1172] Make parthenon manager robust against external MPI init and finalize calls

Fixed (not changing behavior/API/variables/...)

  • [PR 1211] remove inline from WriteTaskGraph
  • [PR 1188] Fix hdf5 output issue for metadata none variables, update test.
  • [PR 1170] Fixed incorrect initialization of array by a const not constexpr
  • [PR 1189] Address CUDA MPI/ICP issue with Kokkos <=4.4.1
  • [PR 1178] Fix issue with mesh pointer when using relative residual tolerance in BiCGSTAB solver.
  • [PR 1173] Make debugging easier by making parthenon throw an error if ParameterInput is different on multiple MPI ranks.

Infrastructure (changes irrelevant to downstream codes)

  • [PR 1176] Move some code from header to implementation files

Removed (removing behavior/API/varaibles/...)

Incompatibilities (i.e. breaking changes)

  • [PR 1177] Make mesh-level boundary conditions usable without the "user" flag

Release 24.08

Date: 2024-08-30

Added (new features/APIs/variables/...)

  • [PR 1167] Store block gid and neighbor refinement levels in sparse packs
  • [PR 1151] Add time offset c to LowStorageIntegrator
  • [PR 1147] Add par_reduce_inner functions
  • [PR 1159] Add additional timestep controllers in parthenon/time.
  • [PR 1148] Add GetPackDimension to StateDescriptor for calculating pack sizes before Mesh initialization
  • [PR 1143] Add tensor indices to VariableState, add radiation constant to constants, add TypeLists, allow for arbitrary containers for solvers
  • [PR 1140] Allow for relative convergence tolerance in BiCGSTAB solver.
  • [PR 1047] General three- and four-valent 2D forests w/ arbitrary orientations.
  • [PR 1130] Enable parthenon::par_reduce for MD loops with Kokkos 1D Range
  • [PR 1119] Formalize MeshData partitioning.
  • [PR 1128] Add cycle and nbtotal to hst
  • [PR 1099] Functionality for outputting task graphs in GraphViz format.
  • [PR 1091] Add vector wave equation example.
  • [PR 991] Add fine fields.
  • [PR 1106] Add CMake options for turning on ASAN and HWASAN
  • [PR 1100] Custom refinement ops propagated to fluxes
  • [PR 1090] SMR with swarms
  • [PR 1079] Address XDMF/Visit Issues
  • [PR 1084] Properly free swarm boundary MPI requests
  • [PR 1020] Add bi- and trilinear interpolation routines
  • [PR 1081] Add GetSize and GetIndex to sparse pack
  • [PR 1026] Particle BCs without relocatable device code
  • [PR 1037] Add SwarmPacks
  • [PR 1068] Add ability to dump sparse pack contents as a string
  • [PR 1062] UserWorkBeforeRestartOutput #1062
  • [PR 1043] Unify flux correction with boundary communication, make fluxes variables, allow fluxes for non-cell fields
  • [PR 1060] Add the ability to request new MeshData/MeshBlockData objects by selecting variables by UID.
  • [PR 1039] Add ability to output custom coordinate positions for Visit/Paraview
  • [PR 1019] Enable output for non-cell-centered variables

Changed (changing behavior/API/variables/...)

  • [PR 1153] Allow base grid with fewer blocks than ranks before initial AMR
  • [PR 1105] Refactor parameter input for linear solvers
  • [PR 1078] Add reduction fallback in 1D. Add IndexRange overload for 1D par loops
  • [PR 1024] Add .outN. to history output filenames
  • [PR 1004] Allow parameter modification from an input file for restarts

Fixed (not changing behavior/API/variables/...)

  • [PR 1145] Fix remaining swarm D->H->D copies
  • [PR 1150] Reduce memory consumption for buffer pool
  • [PR 1146] Fix an issue outputting >4GB single variables per rank
  • [PR 1152] Fix memory leak in task graph outputs related to abi::__cxa_demangle
  • [PR 1146] Fix an issue outputting >4GB single variables per rank
  • [PR 1144] Fix some restarts w/non-CC fields
  • [PR 1132] Fix regional dependencies for iterative task lists and make solvers work for arbirtrary MeshData partitioning
  • [PR 1139] only add --expt-relaxed-constexpr for COMPILE_LANGUAGE:CXX
  • [PR 1131] Make deallocation of fine and sparse fields work
  • [PR 1127] Add WithFluxes to IsRefined check
  • [PR 1111] Fix undefined behavior due to bitshift of negative number in LogicalLocation
  • [PR 1092] Updates to DataCollection and MeshData to remove requirement of predefining MeshBlockData
  • [PR 1113] Prevent division by zero
  • [PR 1112] Remove shared_ptr cycle in forest::Tree
  • [PR 1104] Fix reading restarts due to hidden ghost var
  • [PR 1098] Move to symmetrized logical coordinates and fix SMR bug
  • [PR 1095] Add missing include guards in hdf5 restart
  • [PR 1093] Fix forest size for symmetry dimensions
  • [PR 1089] Fix loading restart files without derefinement counter
  • [PR 1079] Address XDMF/Visit Issues
  • [PR 1088] Correctly fill fluxes for non-cell variables in SparsePacks
  • [PR 1083] Correctly fill VariableFluxPack for edge fluxes in 2D
  • [PR 1087] Make sure InnerLoopPatternTVR is resolved on device properly when it is the default loop pattern
  • [PR 1071] Fix bug in static mesh refinement related to redefinition of Mesh::root_level
  • [PR 1073] Fix bug in AMR and sparse restarts
  • [PR 1070] Correctly exclude flux vars from searches by default
  • [PR 1049] Catch task failures from threads
  • [PR 1058] Vector history not being output if no scalar history present
  • [PR 1057] Fix history output after restarts
  • [PR 1053] Set the correct root level on restart
  • [PR 1024] Add features to history output
  • [PR 1031] Fix bug in non-cell centered AMR

Infrastructure (changes irrelevant to downstream codes)

  • [PR 1117] Enable CI pipelines on AMD GPUs with ROCM/HIP
  • [PR 1114] Enable sanitizers for extended CI host build
  • [PR 1123] Default initialize ProResInfo.dir
  • [PR 1121] Default initialize BndInfo.dir
  • [PR 1116] Fix NumPy 2.0 test script breakage
  • [PR 1055] Refactor mesh constructors
  • [PR 1066] Re-introduce default loop patterns and exec spaces
  • [PR 1064] Forbid erroneous edge case when adding MeshData on a partition
  • [PR 1035] Fix multigrid infrastructure to work with forest
  • [PR 1048] Tiny fixes to custom coords logic
  • [PR 1028] Internal reorganization of LogicalLocation files
  • [PR 1009] Move from a single octree to a forest of octrees

Removed (removing behavior/API/varaibles/...)

  • [PR 1108] Remove NaN payload tags infrastructure

Incompatibilities (i.e. breaking changes)

  • [PR 1135] Drivers now correctly return DriverStatus::timeout on hittig walltime limit
  • [PR 1128] Add cycle and nbtotal to hst
  • [PR 1108] Remove NaN payload tags infrastructure
  • [PR 1026] Particle BCs without relocatable device code
  • [PR 1037] Add SwarmPacks
  • [PR 1042] Use Offset class and clean up of NeighborBlock
  • [PR 1019] Remove support for file formats < 3

Release 24.03

Date: 2024-03-21

Added (new features/APIs/variables/...)

  • [PR 852] Add Mesh version of UserWorkBeforeOutput
  • [PR 998] tensor indices added to sparse pack
  • [PR 999] Add a post-initialization hook
  • [PR 987] New tasking infrastructure and capabilities
  • [PR 969] New macro-based auto-naming of profiling regions and kernels
  • [PR 981] Add IndexSplit
  • [PR 983] Add Contains to SparsePack
  • [PR 968] Add per package registration of boundary conditions
  • [PR 948] Add solver interface and update Poisson geometric multi-grid example
  • [PR 996] Remove dynamic allocations from swarm particle creation

Changed (changing behavior/API/variables/...)

  • [PR 973] Multigrid performance upgrades

Fixed (not changing behavior/API/variables/...)

  • [PR 1023] Fix broken param of a scalar bool
  • [PR 1012] Remove accidentally duplicated code
  • [PR 992] Allow custom PR ops with sparse pools
  • [PR 988] Fix bug in neighbor finding routine for small, periodic, refined meshes
  • [PR 986] Fix bug in sparse boundary communication BndInfo cacheing
  • [PR 978] remove erroneous sparse check

Infrastructure (changes irrelevant to downstream codes)

  • [PR 1027] Refactor RestartReader as abstract class
  • [PR 1017] Make regression tests more verbose on failure
  • [PR 1007] Split template instantiations for HDF5 Read/Write attributes to speed up compile times
  • [PR 990] Partial refactor of HDF5 I/O code for readability/extendability
  • [PR 982] add some gut check testing for parthenon-VIBE

Incompatibilities (i.e. breaking changes)

  • [PR 987] Change the API for what was IterativeTasks
  • [PR 974] Change GetParentPointer to always return T*
  • [PR 996] Remove dynamic allocations from swarm particle creation

Release 23.11

Date: 2023-11-16

Added (new features/APIs/variables/...)

  • [PR 962] Add support for in-situ histograms/profiles
  • [PR 911] Add infrastructure for geometric multi-grid
  • [PR 971] Add UserWorkBeforeLoop
  • [PR 907] PEP1: Allow subclassing StateDescriptor
  • [PR 932] Add GetOrAddFlag to metadata
  • [PR 931] Allow SparsePacks with subsets of blocks
  • [PR 921] Add more flexible ways of adding and using MeshData/MeshBlockData objects to DataCollections
  • [PR 900] Add Morton numbers and expand functionality of LogicalLocation
  • [PR 902] Add ability to output NaNs for de-allocated sparse fields
  • [PR 887] Add ability to dump more types of params and read them from restarts
  • [PR 884] Add constant derivative BC and expose GenericBC
  • [PR 892] Cost-based load balancing and memory diagnostics
  • [PR 889] Add PreCommFillDerived
  • [PR 872] Boundary communication for non-cell centered fields
  • [PR 877] Add flat sparse packs
  • [PR 868] Add block-local face, edge, and nodal fields and allow for packing

Changed (changing behavior/API/variables/...)

  • [PR 977] Change to CalVer from SemVer
  • [PR 975] Construct staged integrators via arbitrary name
  • [PR 976] Move UserWorkBeforeLoop to be after first output
  • [PR 965] Allow leading whitespace in input parameters
  • [PR 926] Internal refinement op registration
  • [PR 897] Deflate compression filter is not called any more if compression is soft disabled
  • [PR 896] Update Kokkos integration to support installed version. Use serial (flat MPI) host parallelization by default (instead of OpenMP)
  • [PR 894] Demand that sparse pool order sparse ids
  • [PR 888] Bump Kokkos submodule to 4.0.1
  • [PR 885] Expose PackDescriptor and use uids in SparsePacks

Fixed (not changing behavior/API/variables/...)

  • [PR 955] Only permit rank0 to mkdir when -d flag specified
  • [PR 952] Fix format string in sparse advection example
  • [PR 947] Add missing ForceRemeshComm dependencies
  • [PR 928] Fix boundary comms during refinement next to refined blocks
  • [PR 937] Fix multiple line continuations
  • [PR 933] Remove extraneous debug check
  • [PR 917] Update Iterative Tasking Infrastructure
  • [PR 890] Fix bugs in sparse communication and prolongation

Infrastructure (changes irrelevant to downstream codes)

  • [PR 967] Change INLINE to FORCEINLINE on par_for_inner overloads
  • [PR 938] Restructure buffer packing/unpacking kernel hierarchical parallelism
  • [PR 944] Move sparse pack identifier creation to descriptor
  • [PR 904] Move to prolongation/restriction in one for AMR and communicate non-cell centered fields
  • [PR 918] Refactor RegionSize
  • [PR 901] Implement shared element ownership model

Removed (removing behavior/API/varaibles/...)

  • [PR 930] Remove ParthenonManager::ParthenonInit as it is error-prone and the split functions are the recommended usage.

Release 0.8.0

Date: 2023-05-26

Added (new features/APIs/variables/...)

  • [PR 868] Add block-local face, edge, and nodal fields and allow for packing
  • [PR 830] Add particle output
  • [PR 840] Generalized integrators infrastructure in a backwards compatible way
  • [PR 810] Add suport for Ascent in-situ visualization
  • [PR 831] Add set-based MetadataFlag logic
  • [PR 803] Add skeleton for sphinx docs
  • [PR 774] Add second order refinement criteria
  • [PR 699] Add independent sparse thresholds and sparse control fields. Sparse bug fixes.
  • [PR 780] Add Burgers' benchmark, GetVector interface for ParameterInput
  • [PR 732] Add Metadata::ForceRemeshComm flag
  • [PR 755] Add archive_parameters option to output all parameters to text file at start
  • [PR 729] Optional modifications to output format
  • [PR 717] Add ghost zone plotting capability to phdf.py and movie2d.py
  • [PR 712] Allow to add params from cmdline

Changed (changing behavior/API/variables/...)

  • [PR 867] Rename CellVariable to Variable in anticipation of face fields
  • [PR 870] Update component label logic in output to include basename
  • [PR 853] Add multiple features and improve the performance of the movie2d.py tool
  • [PR 775] Reorganize some of the bvals and prolongation/restriction machinery
  • [PR 753] Cleanup uniform Cartesian variable names
  • [PR 769] Thread custom prolongation-restriction functions through infrastructure and to userspace
  • [PR 781] Output variables with same shape as in parthenon
  • [PR 758] Bump required C++ standard to C++17
  • [PR 710] Remove data transpose in hdf5 and restart outputs
  • [PR 713] Remove Coordinates stub in favor of Coordinates_t
  • [PR 711] Rename flux correction routines.
  • [PR 663] Change bvals_in_one to use sparse boundary buffers and add flux_correction in one.

Fixed (not changing behavior/API/variables/...)

  • [PR 876] Fix restarting from files which record ghost zones
  • [PR 878] Catch2 target guard in CMake
  • [PR 873] Prevent HDF5 from throwing a fit when a swarm has no particles
  • [PR 866] Add missing guard for HDF5 on restart
  • [PR 861] Fix filesystem include for experimental namespace
  • [PR 859] fix off-by-one indexing error in Ascent ghost mask
  • [PR 841] De-allocate MPI communicators when freeing Reduction objects
  • [PR 851] Fix xdmf hyperslab definition for vectors
  • [PR 843] Add guard rails to prolongation/restriction infrastructure
  • [PR 832] Fix movie2d script after it broke due to change in HDF5 format
  • [PR 820] Fix XDMF spec to conform to standard and handle scalar and vector variables
  • [PR 795] Fix length-1 vectors in output format version >= 3
  • [PR 824] Remove unsupported exception handling from device methods in UniformCartesian
  • [PR 818] Fix boundary prolongation only occurring in base stage
  • [PR 805] Add Crusher/Frontier machine file and bump Kokkos to 3.7.01
  • [PR 797] Fix boundary flux correction boundary logic
  • [PR 800] Fix rare and intermitted race condition to set allocation status
  • [PR 777] Fix double-output of last file in rare cases
  • [PR 740] Faster PHDF file load times in phdf.py
  • [PR 751] Delete useless file in advection example
  • [PR 765] Fix incorrect BC labeling in swarm
  • [PR 759] Add metadata so Visit treats outputs as time series
  • [PR 743] Add missing HDF5 type on MacOS
  • [PR 739] Fix phdf.py for flattened vectors
  • [PR 724] Fix failing CI on Darwin due to differing OutputFormatVersion attribute in hdf5 gold files.
  • [PR 725] Fix improperly exited kokkos profiling region
  • [PR 719] Fix type mismatch in swarm boundaries when host pinned memory enabled
  • [PR 716] Remove unneeded assert from ParArrayND

Infrastructure (changes irrelevant to downstream codes)

  • [PR 879] Zero buffer allocation AMR
  • [PR 838] Move packing logic to from strings to unique IDs
  • [PR 848] Implement recursive mkdir using std::filesystem in src/utils/change_rundir.cpp
  • [PR 837] Migrate docs to Sphinx
  • [PR 791] Set KOKKOS_DISABLE_WARNINGS=TRUE
  • [PR 777] New action: check PR dependencies & warn until requirements merged
  • [PR 772] Trigger short CI only for PRs and remove old SpaceInstances test
  • [PR 757] Move to flux correction in-one and unify with bvals
  • [PR 768] Update CI image and move to new CI machine (short and extended tests)
  • [PR 766] Remove IAS performance regression test
  • [PR 735] Clean up HDF5 output
  • [PR 708] Bump minimum version of Kokkos to 3.6

Removed (removing behavior/API/varaibles/...)

  • [PR 829] Remove dead output code
  • [PR 738] Remove old incomplete face-centered variables

Release 0.7.0

Date: 2022-08-04

Added (new features/APIs/variables/...)

  • [PR 702] Allow for ParArrayGeneric to accept enums
  • [PR 694] Add C++11 implementation of concepts lite
  • [PR 692] Add SparsePack machinery
  • [PR 690] Use power9 partition for Darwin CI
  • [PR 689] Add Mesh::ProblemGenerator (allows reductions during init)
  • [PR 667] Add parallel scan
  • [PR 654] Add option for returning FlatIdx when requested variable doesn't exist
  • [PR 653] Allow for multi-D particle variables
  • [PR 622] Extend reduction framework to support more general data types. Now uses PR 623.
  • [PR 619] Sort particles by cell
  • [PR 605] Add output triggering by signaling.
  • [PR 602] Added tuning functionality for HDF5 output
  • [PR 586] Implement true sparse capability with automatic allocation and deallocation of sparse

Changed (changing behavior/API/variables/...)

  • [PR 682] Add prolongate-in-one
  • [PR 685] Add *pmb to MeshBlockUserWorkBeforeOutput. Remove unused MeshBlockUserWorkInLoop.
  • [PR 676] Remove broken swarm user boundary check
  • [PR 662] Remove SetPrecise
  • [PR 673] Remove smallest meshblock case from advection_performance
  • [PR 655] Enable user boundary conditions for particles
  • [PR 623] Enable Params to optionally return non-const pointers
  • [PR 604] Allow modification of SimTime in PreStepUserWorkInLoop
  • [PR 617] Unify the coordinates API for MeshBlockPack and VariablePack

Fixed (not changing behavior/API/variables/...)

  • [PR 688] Restore component labels for multicomponent non-vector field
  • [PR 679] Handle case of multidim var labeling for output
  • [PR 680] Fix hanging compilation for sort unit test
  • [PR 678] Fix FlatIdx packing for size-1 dimensions
  • [PR 677] Fix restart without SparseInfo object
  • [PR 670] Fix typo in parse_value for non-hdf5 builds
  • [PR 656] Extend CC bvars to 5-, 6-D ParArrays
  • [PR 629] Fix HIP backend (config and tests) and extend build coverage
  • [PR 652] Fix issue with hsize_t and size_t in utils parser
  • [PR 649] Ensure LoadBalancing send buffers are filled and allow async recv LB
  • [PR 618] Fix bug in variable pack performance test
  • [PR 616] Restore sparse base names in PackIndexMap
  • [PR 609] Fix bug where .final is not written if signal raised while writing regular output
  • [PR 595] Fix build options so that non-MPI builds cannot be paired with an MPI HDF5 lib

Infrastructure (changes irrelevant to downstream codes)

  • [PR 703] Fixed mpi/serial logic in extended CI tests
  • [PR 700] Moved CI testing from GitLab mirror to GitHub Actions
  • [PR 698] Remove matplotlib from required python libraries and make desired instead
  • [PR 686] Remove coverage CI stage and add key features to README
  • [PR 681] Refactor ParArrayNDGeneric to work with arbitrary rank Kokkos::views and hold state.
  • [PR 669] Bump clang-format version (and checks) to >=11.0
  • [PR 661] Replaced ids in MPI tags with separate MPI_Comms for each variable/swarm
  • [PR 651] Bump Catch2 version due to GCC11.2 incompatibility
  • [PR 646] Add machine configuration file for Stony Brook's Ookami A64FX and OLCF's Spock AMD systems.

Release 0.6.1

Date: 09/22/2021

Added (new features/APIs/variables/...)

  • [PR 563] Physical boundary options for particles
  • [PR 582] Adding global reductions and basic functionality needed for solvers.
  • [PR 556] Introduce iterative tasks and regionally dependent tasks
  • [PR 578] Add some profiling regions to tasks in particles example
  • [PR 577] Update invalid indices to allow for no-op loops
  • [PR 564] Add EstimateTimestep to particles example task list
  • [PR 557] Re-enable InitMeshBlockUserData so data can be set per-remeshing
  • [PR 509] Add elapsed_main, elapsed_cycle, and elapsed_LBandAMR functions to Driver as static functions to enable access to timing information in output and restart files.
  • [PR 479] Add Update function to Params to update the value of an existing key.
  • [PR 482] Add support for package enrolled history outputs.
  • [PR 511] Improvements/speed ups in phdf_diff, phdf_diff, analytic_compare.py
  • [PR 497] Add tracer particles example.
  • [PR 404] Add capability to communicate particles across meshblocks/MPI processes

Changed (changing behavior/API/variables/...)

  • [PR 558] Boundary bugfix(es) incl. regression tests and exposing FluxDiv_ interface
  • [PR 583] Fix file numbering logic for writing outputs after restarting a simulation.
  • [PR 581] Change return status of ArgParse so that complete is returned when passing in the help flag.
  • [PR 580] Hid variable/meshblock pack keys from public API, added unit tests for MeshBlockData.
  • [PR 535] Modify various interfaces connected with variables, StateDescriptor, variable packing to support proper sparse variables. Replace SparseVariable with SparsePool. Remove MeshBlockDataIterator and make MeshBlockData::GetVariablesBy[Name|Flag] public instead. Remove public MeshBlockData::Add interface and add MeshBlockData::Initialize instead.
  • [PR 553] Avoid use of variable named restrict
  • [PR 476] Update min. CMake version to 3.16 (matching Kokkos) and add option to compile with C++17 (PARTHENON_ENABLE_CPP17 - default: off)
  • [PR 532] Remove obsolete Properties_t, they have been replaced by Packages_t
  • [PR 508] Modify RestrictCellCenteredVariables to support a restriction over meshblock packs.
  • [PR 524] Enforce Metadata flags constraints and add new Metadata::WithFluxes flag. Note: Metadata::Independent will be set automatically unless Metadata::Derived is set
  • [PR 517] Remove optional dims argument from MeshBlockData::Add and use the shape from the Metadata instead
  • [PR 492] Modify advection example to have an arbitrary number of dense variables and to disable fill derived for profiling.
  • [PR 486] Unify HDF5 output and restart file writing, add HDF5 compression support, add support for sparse fields in HDF5 output/restart files, add and rename some metadata in HDF5 files.
  • [PR 522] Corrected ordering of OutputDatasetNames to match ComponentNames

Fixed (not changing behavior/API/variables/...)

  • [PR 588] Switch from nbmax to nneighbors in particles
  • [PR 572] Fix meshblockpack issue coming from variatic template shadowing
  • [PR 569] Fix path to nvcc_wrapper in README example
  • [PR 551] Hotfix to make particles compile without MPI again
  • [PR 552] Fix missing include for fstream
  • [PR 537] Fix inconsistent treatment of coarse buffers.
  • [PR 539] Fix restart indexing/hdf5 bugs
  • [PR 487] Add default tiling matching i index range to MDRange loop pattern.
  • [PR 531] Work around in parthenon_hdf5.cpp for GCC 7.3.0

Infrastructure (changes irrelevant to downstream codes)

  • [PR 575] Make file comparison more verbose, don't check File metadata
  • [PR 502] Use subviews of a single view for fluxes
  • [PR 505] Can also use buffer-pack-in-one function also in Mesh::Initialize (and thus during load balancing/mesh refinement). Breaks sparse variables with FillGhost. Enable with PARTHENON_ENABLE_INIT_PACKING=ON (default OFF).
  • [PR 493] Use subviews of a single view for comm buffers
  • [PR 500] Update docker file and CI environment (for Cuda 11.3 and latest nsys)
  • [PR 490] Adjust block size in OverlappingSpace instance tests to remain within Cuda/HIP limits
  • [PR 488] Update GitLab Dockerfile to use HDF5 version 1.10.7
  • [PR 510] Fix calling noexistant logger in python performance regression app
  • [PR 527] Fix problem with CI when rebase is used.
  • [PR 518] Added MPI performance regression tests to CI performance app
  • [PR 530] Fixed issue with CI plotting the oldest 5 commit metrics for each test, also cleaned up legend formatting.
  • [PR 536] Updated to latest Kokkos release.
  • [PR 520] Add black python formatter to github actions
  • [PR 519] Add checksum to bash uploader script to verify file is trusted
  • [PR 549] Add deep-code badge.
  • [PR 554] Small fix to documentation related to python parthenon tools README
  • [PR 555] Added documentation for darwin CI and scripts
  • [PR 560] Rename png_files_to_upload to more generic figure_files_to_upload
  • [PR 561] Adding documentation to help with adding new performance regression tests.

Removed (removing behavior/API/varaibles/...)

  • [PR 498] Cleanup unused user hooks and variables
  • [PR 481] Cleanup unused/untested/not fully ported code (mostly OpenMP and reconstruction)

Release 0.5.0

Date: 03/30/2021

Added (new features/APIs/variables/...)

  • [PR 475] Add update function UpdateWithFluxDivergence and gamma variables to integrator to support low-storage, two stage integrators.
  • [PR 463] Add PARTHENON_ENABLE_TESTING and PARTHENON_ENABLE_PYTHON_MODULE_CHECK option and documentation on how to use the regression testing framework downstream.
  • [PR 461] A negative dt in an output block disables it.
  • [PR 439] Add split initialization of environment (ParthenonInitEnv()) and packages and mesh (ParthenonInitPackagesAndMesh()) to ParthenonManager
  • [PR 406] Add stochastic_subgrid example that performs a random amount of work per cell (drawn from a power law distribution)
  • [PR 440] Add abstraction for allocating a unique_ptr to an object in device memory
  • [PR 438] More diagnostic runtime output (AMR/Loadbalance and mesh structure) controlled via parthenon/time/ncycle_out_mesh input parameter (default 0 - off)
  • [PR 412] Add capability to use host (pinned) memory for communication buffers (via PARTHENON_ENABLE_HOST_COMM_BUFFERS - default OFF)
  • [PR 359] MeshBlockPack support for buffer pack and unpack of CellCentered Variables

Changed (changing behavior/API/variables/...)

  • [PR 451] Remove custom ran2 interface and source
  • [PR 425] Remove ambiguity in package names. Packages_t no longer has an operator[] method. This has been replaced with Add and Get.
  • [PR 359] Templated inline reconstruction functions to support different types (e.g., ParArray4D or ParArrayND)

Fixed (not changing behavior/API/variables/...)

  • [PR 468] Fix extra endl in input CheckDesired
  • [PR 465] Fix soft disable output for drivers without temporal evolution
  • [PR 453] Fix array bounds for AMR hierarchy log and use vector instead of unique_ptr
  • [PR 441] Fixed type in input parsing of pack_size

Infrastructure (changes irrelevant to downstream codes)

  • [PR 436] Update Summit build doc and machine file
  • [PR 435] Fix ctest logic for parsing number of ranks in MPI tests
  • [PR 407] More cleanup, removed old bash scripts for CI.
  • [PR 428] Triad Copyright 2021
  • [PR 413] LANL Snow machine configuration
  • [PR 390] Resolve @PAR_ROOT@ to parthenon root rather than the location of the current source directory
  • [PR 443] Fix Darwin machine config - use spectrum mpi
  • [PR 444] Writes performance metrics to file for advection test
  • [PR 452] Disable copyright check and linting by default, add CI check for copyright
  • [PR 473] Added documentation for forked pr

Release 0.4.0

Date: 01/19/2021

Added (new features/APIs/variables/...)

  • [PR 434] Allow the number of ghost zones to be set via the input file
  • [PR 400] Extend StateDescriptor for customizable output via user-customizable function pointers PreStepDiagnosticsMesh and PostStepDiagnosticsMesh
  • [PR 391] Add VariablePack<T>::GetSparseId and VariablePack<T>::GetSparseIndex to return global sparse ids and pack-local sparse index, repsectively.
  • [PR 381] Overload DataCollection::Add to build MeshData and MeshBlockData objects with a subset of variables.
  • [PR 378] Add Kokkos profiling regions throughout the code to allow the collection characteristic application profiles
  • [PR 358] Generalize code that interfaces with downstream apps to work with both MeshData and MeshBlockData.
  • [PR 335] Support for project-relative MACHINE_CFG with @PAR_ROOT@
  • [PR 328] New MeshBlock packing interface using DataCollections of MeshData and MeshBlockData.
  • [PR 386] Introduce Private, Provides, Requires, and Overridable variable metadata, allowing fine-grained control of conflict resolution between packages.

Changed (changing behavior/API/variables/...)

  • [PR 393] Small refactor to make driver code more flexible for downstream apps.
  • [PR 400] Change Mesh, ApplicationInput, and Driver to suppport pre- and post- step user work
  • [PR 394] Make Params.Get const-correct.
  • [PR 332] Rewrote boundary conditions to work on GPUs with variable packs. Re-enabled user-defined boundary conditions via ApplicationInput.

Fixed (not changing behavior/API/variables/...)

  • [PR 401] Fix missing initial timestep for MeshData functions
  • [PR 387] Add missing const that was needed
  • [PR 353] Fixed small error in input_parameter logic
  • [PR 352] Code compiles cleanly (no warnings) with nvcc_wrapper

Infrastructure (changes irrelevant to downstream codes)

  • [PR 392] Fix C++ linting for when parthenon is a submodule
  • [PR 335] New machine configuration file for LANL's Darwin cluster
  • [PR 200] Adds support for running CI on POWER9 nodes.
  • [PR 347] Speed up darwin CI by using pre installed spack packages from project space
  • [PR 368] Fixes false positive in CI.
  • [PR 369] Initializes submodules when running on darwin CI.
  • [PR 382] Adds output on fail for fast CI implementation on Darwin.
  • [PR 362] Small fix to clean regression tests output folder on reruns
  • [PR 403] Cleanup Codacy warnings
  • [PR 377] New machine configuration file for LLNL's RZAnsel cluster

Removed (removing behavior/API/varaibles/...)

  • [PR 410] Addresses issue of cpp linter calling python instead of python3

Release 0.3.0

Date: 10/29/2020

Added (new features/APIs/variables/...)

  • [PR 317] Add initial support for particles (no MPI support)
  • [PR 311] Bugfix::Restart. Fixed restart parallel bug and also restart bug for simulations with reflecting boundary conditions. Added ability to write restart files with or without ghost cells by setting ghost_zones in the output block similar to other output formats.
  • [PR 314] Generalized par_for abstractions to provide for reductions with a consistent interface.
  • [PR 308] Added the ability to register and name MeshBlockPacks in the Mesh or in package initialization.
  • [PR 285] Parthenon can now be linked in CMake as Parthenon::parthenon when used as a subdirectory, matching install.

Changed (changing behavior/API/variables/...)

  • [PR 303] Changed Mesh::BlockList from a std::list<MeshBlock> to a std::vector<std::shared_ptr<MeshBlock>>, making FindMeshBlock run in constant, rather than linear, time. Loops over block_list in application drivers must be cahnged accordingly.
  • [PR 300]: Changes to AddTask function signature. Requires re-ordering task dependency argument to front.
  • [PR 307] Changed back-pointers in mesh structure to weak pointers. Cleaned up MeshBlock constructor and implemented MeshBlock factory function.

Fixed (not changing behavior/API/variables/...)

  • [PR 293] Changed VariablePack and related objects to use ParArray1D objects instead of ParArrayND objects under the hood to reduce the size of the captured objects.
  • [PR 313] Add include guards for Kokkos in cmake.
  • [PR 321] Make inner loop pattern tags constexpr

Infrastructure (changes irrelevant to downstream codes)

  • [PR 336] Automated testing now checks for extraneous HtoD or DtoH copies.
  • [PR 325] Fixes regression in convergence tests with multiple MPI ranks.
  • [PR 310] Fix Cuda 11 builds.
  • [PR 281] Allows one to run regression tests with more than one cuda device, Also improves readability of regression tests output.
  • [PR 330] Fixes restart regression test.

Release 0.2.0

Date: 9/12/2020

Added

  • [PR 250] Feature::Restart. If output file format 'rst' is specified restart files are written using independent variables and those marked with Restart metadata flag. Simulations can be restarted with a '-r <restartFile>' argument to the code.
  • [PR 263] Added MeshBlockPack, a mechanism for looping over the whole mesh at once within a Kokkos kernel. See documentation
  • [PR 267] Introduced TaskRegions and TaskCollections to allow for task launches on multiple blocks.
  • [PR 287] Added machine configuration file for compile options, see documentation
  • [PR 290] Added per cycle performance output diagnostic.
  • [PR 298] Introduced Partition, a tiny utility for partitioning STL containers. Used for MeshBlockPacks, to enable packing over a fraction of the mesh.

Changed

  • [PR 68] Moved default par_for wrappers to MeshBlock
  • [PR 243] Automatically find/check Python version used in regression tests. Bumps CMake minimum version to 3.12
  • [PR 266]: It is no longer necessary to specify Kokkos_ENABLE_OPENMP this is by default enabled, to turn off one can specify PARTHENON_DISABLE_OPENMP.

Fixed

  • [PR 271]: Fix setting default CXX standard.
  • [PR 262] Fix setting of "coverage" label in testing. Automatically applies coverage tag to all tests not containing "performance" label.
  • [PR 276] Decrease required Python version from 3.6 to 3.5.
  • [PR 283] Change CI to extended nightly develop tests and short push tests.
  • [PR 291] Adds Task Diagram to documentation.

Removed

  • [PR 282] Integrated MeshBlockPack and tasking in pi example
  • [PR 294] Fix IndexShape::GetTotal(IndexDomain) - previously was returning opposite of expected domain result.

Release 0.1.0

Date: 8/4/2020

Initial release of Parthenon AMR infrastructure.

Changed

  • [PR 214]: The weak linked routines for user-specified parthenon behavior have been removed in favor of a more portable approach. See the documentation.