The format is based on Keep a Changelog and this project (mostly) adheres to Calendar Versioning.
All major changes to the Athena++ private repository between each version/tag are summarized in this CHANGLEOG.md
document. Each version has an Issues and Pull Requests section, whose subsections are automatically populated from the issue/PR labels. The list entries contain links to the private repository issue tracker #N
id.
Additionally, the changes are manually summarized using the following categories:
- Added: for brand new features or extended capabilities
- Fixed/Changed: for bug fixes or modified behavior
- Removed: for removed functionality
The automatically-generated content should be used for reference when writing these sections. At this time, both the private and public GitHub Release Notes are started by copy/pasting from these sections.
v21.0 (2021-01-06)
- Multigrid solver and related regression tests (removed directly from
v21.0-dev
)
v21.0-dev (2021-01-06)
- Need more flexible task control in STS #270
- Enable AMR/SMR and source terms with -sts #250
- Robustness improvements to relativity #316 (c-white)
- Change primitive velocities in SR #303 (c-white)
- Update passive scalars to have user source terms and work with relativity #297 (c-white)
- Spurious waves emerging from corners using the intel 19.1 compiler and MPI? #340
- EOS Riemann regression test fails #335
- Unused and uninitialized variables with orbital advection #332
- regression tests for diffusion do not work & failed #328
- Reconstruction of passive scalars uses wrong array size #306
- malloc error with gcc compiler, spherical polar coordinate and xorder=3 #304
- RK3 integrator breaks conservation #300
- Runtime error "pure virtual method called" with intel compiler #289
- Test GR/SR compatibility with passive scalars #281
- New Limitation of MeshBlock Size #343 (tomo-ono)
- Move Poisson solve to after ptlist->DoTaskListOneStage() #309 (pdmullen)
- Add support for NSCALARS > NWAVE #307 (msbc)
- Fix logic in bvars_sts designation #305 (pdmullen)
- bugs in using std::min or std::max for single precision #326
- Mismatch of the function argument in WeightedAve for FaceField #318
- Implemented the source term formula for gravitational acceleration #344 (tomidakn)
- Enable STS in Shearing Box with Orbital Advection #342 (tomo-ono)
- Logical location (long)is used to set array index (int) -- Jenkins passed! #341 (changgoo)
- Fix lack of deallocating dynamic memory #338 (tomo-ono)
- fix dependency in tasklist #337 (tomo-ono)
- Increased thresholds for eos_riemann test #336 (msbc)
- fix EMF flux correction in shearing box #334 (tomo-ono)
- fix unused and uninitialized variables #333 (tomo-ono)
- Fix conditionals in TimeIntegratorTaskList fns for compatibility with STS #331 (pdmullen)
- Docstring Style Correction #330 (changgoo)
- Correct the input block name in the turbulence regression test and make driving isotropic regardless of the box shape #329 (changgoo)
- put cast in the min or max function #327 (tomo-ono)
- Implement a New Discretization of the Gravitational Stress Tensor #325 (pdmullen)
- Change in turbulence input style #324 (changgoo)
- Fix Bug with Mesh Structure Output #322 (tomo-ono)
- Orbital Advection & New Shearing Box #321 (tomo-ono)
- Fix typo: bounday_flag.cpp to boundary_flag.cpp #320 (changgoo)
- Fix mismatch between WeightedAve prototype and definition #319 (pdmullen)
- Improve performance of turbulence driver #317 (changgoo)
- Update to bug fix on fft pgen #315 (changgoo)
- Fix typo in HLLC and bug in Hydrogen EOS #314 (msbc)
- Bug fixes for FFT; New regression test #313 (changgoo)
- Modifying the KH problem and a input file for MHD KH #312 (tomo-ono)
v19.0 (2019-08-06)
- Multigrid solver and related regression tests (removed directly from
v19.0-dev
)
v19.0-dev (2019-08-06)
Switched to using CalVer (Calendar Versioning) scheme from SemVer (Semantic Versioning). v1.1.1-dev
was the previous tag and version.
- Extend user-defined history outputs beyond parallel summed quantities #237
- Add test coverage for Roe Riemann solvers #231
- Add "logging" module to all regression tests to replace calls to print() #203
- Warn users about proper polar vs. polar_wedge boundary condition flag #196
- Loading SMR data at native resolution #173
- Create cleaner failure mode for incorrect input parameter file text formatting #168
- Extend vis/python/uniform.py to 2D HDF5 files #164
- (Non-Zero) Mean Density Must Be Set for FFT Self-Gravity with Periodic BC's #155
- include input parameters in hdf5 output? #143
- Extend TaskList to support more than 64 task IDs #286 (tomidakn)
- Add timing to regression tests #284 (msbc)
- Throw error when reading HDF5 files with ghost zones if their number hasn't been specified. #280 (msbc)
- Add user ability to specify names of libraries when linking #277 (c-white)
- Remove MeshBlock dependency of FFTDriver #276 (changgoo)
- Move MGGravity from GravityDriver to MeshBlock #275 (tomidakn)
- Add input option to output more timestep diagnostics #273 (felker)
- Refactor MeshBlockTree to save memory footprint #262 (tomidakn)
- Replace AthenaArray<T>::InitWithShallowCopy with C++ references #261 (felker)
- Rewrite shearing box capabilities #260 (felker)
- Remove do-nothing DeleteAthenaArray calls #258 (felker)
- Refactor bvals/ and Mesh::AdaptiveMeshRefinement() #257 (felker)
- Replace AthenaFFTComplex with std::complex<Real> #256 (felker)
- Deduplicate 4x STS regression tests #252 (pdmullen)
- Adds logging module to all regression tests to replace calls to print() #251 (msbc)
- Global initialization of turbulence realization #241 (changgoo)
- Enable FFT for an entirely refined mesh #240 (changgoo)
- Optimize performance of SR/GR calculations #235 (beiwang2003)
- Improve all enumerated types #234 (felker)
- Add test coverage for MHD and Hydro Roe Riemann solvers #233 (msbc)
- Replace holdovers from C with C++11 alternatives #219 (felker)
- Update ShowConfig for general EOS #218 (msbc)
- Extend line plotting to .athdf files #211 (c-white)
- Make C++ exception handling optional; standardize more C++11 headers and namespace usage #190 (felker)
- Extend Kelvin-Helmholtz problem generator #187 (felker)
- Use C++ compiler front ends for main/documented "configure.py --cxx" options but support C front ends; add built-in support for Apple+LLVM with OpenMP workaround #186 (felker)
- athena_read.py silently fails when ghost zones are saved to file #279
- MPI + continuous turbulence driving with OU process is broken #267
- Invalid read in AMR #229
- NaN'ing outputs may not be caught by some regression tests #223
- Bug with permuting fft directions in athena_fft.cpp #217
- 1D AMR not refining third component of magnetic field correctly #212
- MPI/AMR segfaulting #199
- RECV_* boundary buffer receive tasks are missing dependencies on matching INT_* integration tasks #198
- Possible incorrect memory access in spherical_polar coordinates: private & public version #192
- athena_read.athdf() handles ghost zones incorrectly #184
- Possible race condition in OpenMP #183
- SMR causes issues with cell sizes difference warning in spherical coordinates with user mesh generator #180
- uniform.py now writes all 0s when overwriting a file #179
- OpenMP is broken; add regression tests to prevent this in the future #175
- Some regression tests never fail #174
- Python reader fails for slices taken across multiple blocks #159
- Python HDF5 reader no longer returns refinement levels #156
- Is ApplyPrimitiveFloors() being called too often? #153
- Fix bug when saving zero scalars to restart file #285 (msbc)
- Fix bug when saving multiple scalars to restart file #283 (msbc)
- Fix minor issues with Python HDF5 reader #278 (c-white)
- Fix curvilinear reconstruction, add regression test scripts (passive scalars, MPI shearing box, etc.), and other QoL improvements #274 (felker)
- Revert GR optimizations #272 (c-white)
- Fix a NaN bug (#267) caused by the incorrect out-of-place FFT #268 (changgoo)
- Fix bug in spherical plotting script #265 (c-white)
- Fix shearing box + MPI #264 (felker)
- Fix FFT permutation bug #238 (changgoo)
- Improve NaN handling in Python scripts #224 (felker)
- Fix fail criterion for diffusion/*_diffusion* tests #222 (pdmullen)
- Fix typo in 1D prolongation of magnetic field #216 (c-white)
- Fix general EOS bugs and add eos_test pgen #214 (msbc)
- 1D MHD AMR fix #213 (c-white)
- Correct energy bug in PrimitiveToConserved in general_hydro.cpp #208 (msbc)
- Apply minor fixes to Python scripts #201 (c-white)
- Fix memory access issue with spherical diffusion #195 (c-white)
- Improve post-processing and plotting scripts #185 (c-white)
- Fix minor OpenMP error and duplicate MPI regression test for OpenMP, hybrid MPI+OpenMP #178 (felker)
- Fix and extend Python scripts for analysis of HDF5 files #167 (c-white)
- Fix Python HDF5 reader's ability to return refinement levels #158 (msbc)
- Eliminate redundant calls to ApplyPrimitiveFloors() #154 (felker)
- Add optional time/sts_nstage_out input parameter #249
- Deduplicate 4x STS regression test scripts in diffusion/ #242
- "register" keyword used in src/fft/plimpton/ files is deprecated and was removed in C++17 #230
- Make
athinput
a file extension as opposed to a file prefix. #226 - 1D MHD SMR fields wrong at refinement boundaries with more than 2 ghost zones #209
- Add interface for operator splitting and super-time-stepping #172
- Add user-defined passive scalar floor option in input file #291 (munan)
- Add MHD capabilities to the general EOS module #282 (msbc)
- Add passive scalars #263 (felker)
- Extend automatic and manual load balancing beyond AMR #259 (tomidakn)
- Fix edge-case bug in typecast function. #255 (msbc)
- Implement OU Process for driven turbulence and Helmholtz decomposition #244 (changgoo)
- Remove "register" keyword from 2x .cpp files in plimpton/ #232 (felker)
- Fix general EOS hydro function names and prepare for general EOS MHD extension #228 (msbc)
- Add compatibility checks for polar, polar_wedge boundary conditions to class constructor #200 (felker)
- Generalize the hydrodynamics equation of state capabilities for non-ideal gases #197 (msbc)
- Revert to using 1D pencil arrays for performance #193 (tomidakn)
- Update input params for diffusion regression problems #188 (pdmullen)
- Integrate code coverage analysis into regression test framework and continuous integration #181 (felker)
- Implement RKL1 Super-Time-Stepping #176 (pdmullen)
- Add fourth-order hydrodynamics solver #157 (felker)
- Add new script for plotting 2D slices #151 (c-white)
- Add HDF5 reader and pgen for initializing from HDF5 #146 (c-white)
v1.1.1 (2018-07-31)
- Multigrid solver and related regression tests (removed directly from
v1.1.1-dev
)
v1.1.1-dev (2018-07-31)
- Performance improvements for SR calculations
- Pragmas and clauses from OpenMP 4.0 and 4.5 for SIMD-enabled functions inside vectorized loops (instead of depending on the compiler to inline the function calls)
- LLF Riemann solver for Newtonian hydrodynamics
- Rules for checking Python style of Athena++ scripts with
flake8
- Interactive plotting for spherical polar coordinates results
- Several new input files and problem generators
- Re-enabled SIMD vectorization for Roe-type Riemann solvers and rewrote eigenmatrix calculations to improve performance
- Improved readability of
TimeIntegratorTaskList
- Fixed spherical coordinates terms for non-ideal MHD
- Fixed reflective symmetry preservation for hydrodynamic viscosity calculations
- Eliminated small floating-point errors when analyzing uniform grid results using included Python HDF5 reader
- Changed turbulence driving switches to avoid possible bug during initial cycle
- Plugged MPI resource leaks in Multigrid
- Gravity boundary functions not set when enrolled #148
- Viscosity terms break Rayleigh-Taylor symmetry #144
- SIMD vectorization disabled for Roe-type Riemann solvers #126
- Memory leak in jeans_3d.py test MPI run #115
- athena_read.py athdf() results in small floating-point errors #111
- Remove unused GravityBoundaryFunction_[] array from Mesh class #149 (felker)
- Cleanup minor issues before v1.1.1 release; fix viscosity asymmetry #147 (felker)
- Return exact floating-point values when reading HDF5 coordinates #145 (c-white)
- Fixed spherical coordinates for non-ideal MHD #142 (tomidakn)
- Added interactive spherical plotting: #139 (c-white)
- Use #pragma omp declare simd for functions called in SIMD loops #138 (felker)
- Plugged MPI resource leaks in Multigrid. #137 (tomidakn)
- AMR Fix #133 (tomidakn)
- Bug fix for initial turbulence driving #132 (changgoo)
- Python scripts don't comply with PEP 8 style; vis scripts need documentation #96
- Improve performance for all SR problems #140 (beiwang2003)
- Redefine and initialize grav_mean_rho directly in Mesh class #136 (changgoo)
- Upgrade MPICH and OpenMPI in Travis CI build environments #135 (felker)
- Add Python style checker and fix existing violations #134 (felker)
- Improve CHANGELOG, release process, and CI testing #131 (felker)
v1.1.0 (2018-05-23)
- Multigrid solver and related regression tests (removed directly from
v1.1.0-dev
)
v1.1.0-dev (2018-05-23)
- Self-gravity
- FFT
- Multigrid
- Shearing box
- Viscosity, resistivity, and conduction
- Anisotropic viscosity is not implemented, but it can be added as user-defined viscosity function. Can copy function's source code from Athena 4.2.
- Piecewise parabolic method (PPM) with
time/xorder=3
runtime option- Robust flooring of reconstructed states
- Curvilinear and nonuniform mesh terms
- Characteristic variable reconstruction (PLM and PPM) with
time/xorder=2c
or3c
runtime option - Redesign of time-integrator to support high-order schemes
- Turbulence driving
- Double precision floating-point HDF5 output
- Software development tools (mostly) exclusive to private repository:
- Continuous integration (Jenkins and Travis CI)
- C++ style checker
- Expanded regression test suite flexibility and code coverage
- Code Reviews, Issue/PR categories,
probot
automated closing of stale Issues/PRs, protected branch status formaster
- Slack workspace,
CONTRIBUTING.md
guide, Issue and PR templates.
- Changed OpenMP setup to coarse threading over
MeshBlock
; thread-safe MPI now in use. - Performance optimizations: improved vectorization, decreased memory traffic, etc.
- Fixed reflective symmetry preservation (exact to double precision for hydrodynamics)
- Fixed all compiler warnings and ensured C++11 compliance
- Pass MeshBlock to user defined diffusivity function #130 (jmshi)
- Use native HDF5 byte order #109
- Conflicting restart and input parameters for writing output #62
- Add double precision option for HDF5 output #28
- Improve vectorization for loops in PPM #121 (beiwang2003)
- Improve symmetry-preservation of HLLD floating-point operations #120 (felker)
- Fix restarted simulation calculation of next_time for writing outputs #116 (felker)
- Support double precision floating-point HDF5 output #108 (felker)
- Add templates for Issue and PR; creating draft of CONTRIBUTING.md #93 (felker)
- Make athdf a class which will delay reading until data is requested #84 (msbc)
- Improve TimeIntegratorTaskList performance #80 (felker)
- Use AVX-512 registers for vectorized loops on Skylake; enable OpenMP 4.0 SIMD with newer GCC versions #77 (felker)
- Require negative xrat for user-defined mesh generation #71 (felker)
- Replace "#pragma simd" with "#pragma omp simd" for icc 18 #66 (felker)
- Make athinput reader Python 3 friendly in athena_read.py #60 (msbc)
- Add athinput reader to athena_read.py #59 (msbc)
- Ensure Python 2 and 3 compatibility of regression test suite #48 (felker)
- Improve Intel AVX2 vectorization of hydrodynamics routines #44 (felker)
- Regression tests are writing .pyc files #104
- Need to address g++, clang++, icc compiler warnings #94
- PPM on spherical grid causes segmentation fault #76
- Summed outputs have significant errors #73
- Multigrid gravity NGHOST > 2 causes artifacts #67
- FFTBlock.norm_factor_ may be uninitialized #51
- Regression test suite with MPI causes nonblocking IO write errors on macOS #47
- UserWorkAfterLoop is called before final outputs #45
- Restart regression test fails due to FFT input parameter parsing #42
- Incorrect initialization of scopy_ used for AthenaArray deep copy #38
- Need better default behavior when setting start_time #36
- Fix SIMD vectorization and regression tests for diffusion module #127 (jmshi)
- Use simple average when computing cell-centered B #122 (felker)
- Fix floating-point asymmetry of AMR cell-centered prolong/restrict operators #114 (felker)
- Fix asymmetry of Coordinates x1f for multiple MeshBlock grids #112 (felker)
- Fix general asymmetry of x1f, dx1v Coordinates terms; ensure exact float64 symmetry of PPM stencils #98 (felker)
- Implement various PPM fixes #79 (felker)
- Fix to self-gravity FFT and MG Solve #72 (pdmullen)
- Add missing space in hdf5_path string to fix bug #70 (msbc)
- Fix self-gravity energy source term #63 (pdmullen)
- Initialize FFTBlock::norm_factor_ to 1 #57 (msbc)
- Improve stability of FFT gravity solver #40 (changgoo)
- Reconstruction for energy shouldn't be done for the isothermal EOS. #37 (changgoo)
- C++ source code does not conform to Athena++ Style Guide #95
- Wiki page on OpenMP parallelization is out of date #92
- Require code reviews before merging pull requests #88
- Create Slack workspace for Athena++ #61
- Allow the regression test suite to accept platform-specific compiler and execution options #55
- Regression test suite incompatible with Python 3 #46
- Add optional runtime parameter for reducing/suppressing per-cycle summary info #39
- Standardize sqrt() and cbrt() calls for C++11 compliance and portability #27
- Fix Bash error handling of C++ style checker #125 (felker)
- Remove inverse h_coeff from Coordinates class #124 (jmshi)
- Add diffusion physics capabilities #123 (jmshi)
- Use default simdlen for a memory intensive loop in PLM #119 (beiwang2003)
- Use loop fusion and define simdlen(SIMD_WIDTH) for PLM #118 (beiwang2003)
- Add default implementations of Laplacian operators to Coordinates class #117 (felker)
- Codify and fix C++11 standard compliance #113 (felker)
- Improve HLLD vectorization #110 (beiwang2003)
- Add Google C++ Style Guide linter and check with CI #107 (felker)
- Fix main GCC compiler warnings; strictly test code changes for new warnings #105 (felker)
- Use C++ style static_cast operator instead of C style type casting #101 (felker)
- Add continuous integration with Travis CI and Jenkins #97 (felker)
- Add Bash wrapper to join_vtk++ for many MeshBlocks, output steps #91 (felker)
- Add CODEOWNERS file to new .github/ root dir #90 (felker)
- Add ShearingBox component #89 (jmshi)
- Improve floating-point precision consistency throughout code #82 (felker)
- Add primitive variable flooring functions to the EquationOfState class #81 (felker)
- Add MG and FFT convergence regression tests based on 3D linear Jeans instability #75 (alwinm)
- Add cylindrical and spherical polar coordinates limiter terms to PPM #69 (felker)
- Redesign the TimeIntegratorTask list to enable time integration methods with order, nsub_steps, nregisters > 2 #49 (felker)
- Enable nonuniform reconstruction with Mignone PPM limiter #43 (felker)
- Add ncycle_out optional input parameter #41 (felker)
- Add FFT gravity solver #35 (changgoo)
v1.0.1 (2017-08-22)
- Scripts and documentation for releasing from private to public repository
- Upgraded left and right reconstructed primitive state
AthenaArray
inHydro
class to 3D (fromx1
-sliced 1D arrays) - Riemann solvers now directly fill electric field arrays
- Add code structure diagrams to Wiki #34
- Alfven wave test fails due to incorrect error thresholds #29
- Cannot compile properly on tiger #8
- Do not access de-allocated memory in SliceOutputData #32 (dradice)
v1.0.0-beta (2016-11-28)
- BSD license
- Redesigned
Coordinates
class
- ParameterInput should be generally accessible #20
- Need OMP-ready scratch array for relativistic MHD Riemann solver #6
- Small configure script enhancements #21 (jzuhone)
- Blast problem missing header needed to compile #25
- MPI + HDF5 writer with ghost zone output causes segmentation fault #23
- Compilation failure when using HDF5 without MPI #22
- 1D Newtonian MHD broken with periodic boundary #16
- Problem with fields at physical boundaries in 1D #15
- Line missing in src/pgen/jet.cpp #12
- Compilation error -- accessing invalid member of RegionSize #11
v0.3.0 (2015-08-31)
- Uninitialized variable root_level is used #10
v0.2.0 (2015-04-10)
- Restart output problem due to next_time=0 #7
- Add MeshBlock boundary condition for MHD #4
v0.1.0 (2015-02-02)
- Problem with boundary functions in 1D hydro shock tube #5
- Add C++ style document to wiki #1
* This Change Log was automatically generated by github_changelog_generator