|
| 1 | +# 26.03 |
| 2 | + |
| 3 | + ## Highlights: |
| 4 | + |
| 5 | + * Fix a number of bugs found by AIs. |
| 6 | + - Fix facediv_int z indexing (#5239) |
| 7 | + - FilFC: Fix a copy-paste typo (#5240) |
| 8 | + - ParReduce: Fix comments (#5238) |
| 9 | + - Fix assertions in particle IO to include runtime int comps (#5205) |
| 10 | + - Filter transform fix (#5192) |
| 11 | + - Fix empty vector dereference in HDF5 particle IO (#5195) |
| 12 | + - Fix Dual Grid restart with HDF5 format (#5137) |
| 13 | + - Make sure number of neighbor particles is preserved on swap (#5186) |
| 14 | + - Fix HDF5 handle leaks in early exits (#5187) |
| 15 | + - Fix InitFromBinary for the case that NP % NReaders != 0 (#5184) |
| 16 | + - Fix resource leaks in ParticleContainer::RestartHDF5 (#5185) |
| 17 | + - SUNDIALS: remove MemoryHelper's move operator= (#5178) |
| 18 | + - SUNDIALS: Fix a memory leak in N_VDestroy_MultiFab (#5176) |
| 19 | + - SUNDIALS: Fix memory leak in N_VWL2Norm_MultiFab (#5177) |
| 20 | + - Fix typo in N_VConstrMask_MultiFab (#5175) |
| 21 | + - HDF5: Fix missing GPU device-to-host_copy in writing plotfile (#5174) |
| 22 | + - Fix BaseFab::contains (#5171) |
| 23 | + - Fix assertion in bisect (#5169) |
| 24 | + - Fix bug in `bisect` (#5167) |
| 25 | + - Fix restart where you lose a level and NReaders > NProcs() (#5074) |
| 26 | + - Fix caching mechanism for neighbor particle mask (#5080) |
| 27 | + - FileSystem::Remove: Fix return value (#5136) |
| 28 | + - Mask: Fix writeOn/readFrom for multiple components (#5117) |
| 29 | + - BndryRegister: Make sure assertion does not access out-of-bound memory (#5112) |
| 30 | + - FillPatcher: Robustify assertions (#5120) |
| 31 | + - VisMF: Avoid UB-prone assertions on potentially empty strings (#5133) |
| 32 | + - AmrLevel::FillPatch: Fix assertion (#5127) |
| 33 | + |
| 34 | + * Implement pure-SoA HDF5 particle IO (#5204) |
| 35 | + |
| 36 | + * Add external GPU stream override support (#5199) |
| 37 | + Expose APIs to install and reset a user-managed GPU stream, document the |
| 38 | + new behavior, and add a GPU test covering the external-stream execution |
| 39 | + path. |
| 40 | + |
| 41 | + * Parser: fix self assignment of locals (#5189) |
| 42 | + When a local variable appeared on both sides of an assignment (e.g., `r |
| 43 | + = x*x + y*y; r = sqrt(r);`), the parser would compile the RHS while the |
| 44 | + new `r` slot was already active, so the RHS saw the uninitialized |
| 45 | + version of `r`. We now compile the RHS first and only add/update the |
| 46 | + local slot after, so self-referential assignments evaluate correctly. |
| 47 | + |
| 48 | + * Add FillBoundaryAndSync(Vector) (#5138) |
| 49 | + This is similar to FillBoundary(Vector). It can reduce latency when |
| 50 | + FillBoundaryAndSync is needed for multiple FabArrays/MultiFabs. In the |
| 51 | + future, we could further optimize it by more aggressive GPU kernel |
| 52 | + fusion and MPI aggregation. |
| 53 | + Also add FillBoundary_nowait(Vector), FillBoundary_finish(Vector), |
| 54 | + FillBoundaryAndSync_nowait(Vector), and |
| 55 | + FillBoundaryAndSync_finish(Vector). |
| 56 | + |
| 57 | + * ParmParse: Add TOML-like features (#4950) |
| 58 | + Add new TOML-like features: |
| 59 | + - Multi-line string using `"""`. |
| 60 | + - Array using square brackets. |
| 61 | + - Table using [table] as header. |
| 62 | + |
| 63 | + ## Other major changes: |
| 64 | + |
| 65 | + * FFT: Fix one-d mode in 2D & 3D builds (#5225) |
| 66 | + |
| 67 | + * Avoid invalid in AMReX_MFInterp_3D_C.H (#5215) |
| 68 | + |
| 69 | + * Geometry: Exceptions (#5219) |
| 70 | + |
| 71 | + * Add section on using LLMs to CONTRIBUTING.md (#5211) |
| 72 | + |
| 73 | + * Avoid undefined behavior in Random_int by having it always return 0 for n = 0. (#5206) |
| 74 | + |
| 75 | + * Clean up RedistributeCPU (#4529) |
| 76 | + |
| 77 | + * ParmParse::add: Improve TOML compatibility (#5196) |
| 78 | + |
| 79 | + * Fix tracer particle Timestamp to respect indices argument (#5194) |
| 80 | + |
| 81 | + * Managed Arena: Do not pre-allocate if managed memory is not supported. (#5183) |
| 82 | + |
| 83 | + * ParmParse: Preserve quotes when printing strings (#5188) |
| 84 | + |
| 85 | + * Fix hidden direction support for multilevel composite solves (#5141) |
| 86 | + |
| 87 | + * ParmParse: accept true/false t/f for int keys (#5150) |
| 88 | + |
| 89 | + * ParmParse: Fix printing TOML array (#5180) |
| 90 | + |
| 91 | + * BLBackTrace: Fix null terminator (#5173) |
| 92 | + |
| 93 | + * ParmParse: Support query/get a specific element from TOML array. (#5149) |
| 94 | + |
| 95 | + * Parser optimization by Claude (#5146) |
| 96 | + |
| 97 | + * Add Gpu::isStreamActive function (#5139) |
| 98 | + |
| 99 | + * ParmParse: Refactor countval for TOML arrays (#5143) |
| 100 | + |
| 101 | + * Move PETSc Initialize and Finalize to amrex::Initialize and Finalize (#5098) |
| 102 | + |
| 103 | + * Hypre: No need to call hypre if local row count is zero (#5104) |
| 104 | + |
| 105 | + * HypOptParse: Remove operator()(key, func) (#5105) |
| 106 | + |
| 107 | + * LineDistFcnElement2d::single_seg_cpdist: Fix degenerate case (#5106) |
| 108 | + |
| 109 | + * COMM_PROFILING: Fix size bug (#5135) |
| 110 | + |
| 111 | + * Boundary: Fix forward declarations (#5114) |
| 112 | + |
| 113 | + * EB: Assert there is no int overflow (#5111) |
| 114 | + |
| 115 | + * Marching Cubes: Fix GPU memcpy (#5110) |
| 116 | + |
| 117 | + * Update Fortran BC type module (#5113) |
| 118 | + |
| 119 | + * BndryData: Robustify reuse check (#5116) |
| 120 | + |
| 121 | + * StateDescriptor: Remove deprecated functions (#5126) |
| 122 | + |
| 123 | + * MultiMask: Fix initval for multiple components (#5118) |
| 124 | + |
| 125 | + * Fujitsu MPI: Fix potential null-dereference (#5122) |
| 126 | + |
| 127 | + * AmrMesh: Validate input (#5119) |
| 128 | + |
| 129 | + * Hypre: Remove unimplemented 1d functions to avoid confusion (#5103) |
| 130 | + |
| 131 | + * Rename the `NonManagedVector` to `NonManagedDeviceVector` (#5124) |
| 132 | + |
| 133 | + * ParallelDescriptor: Avoid the non-standard variable-length array (#5130) |
| 134 | + |
| 135 | + * ReadAndBcastFile: Use the correct I/O process when sub-communicator is used. (#5131) |
| 136 | + |
| 137 | + * OpenBCSolver: Make `define` safer (#5129) |
| 138 | + |
| 139 | + * EB: Validate lookup status in getLevel/getGeometry (#5107) |
| 140 | + |
| 141 | + * Nosync broadly (#4957) |
| 142 | + |
| 143 | + * FFT: Use ParallelContext's communicator (#5088) |
| 144 | + |
| 145 | + * FFT::Clear: Clear the map after the stored plans are destroyed (#5089) |
| 146 | + |
| 147 | + * PETSc: Use PetscInt (#5090) |
| 148 | + |
| 149 | + * PETSc: Fix potential memory leak (#5097) |
| 150 | + |
1 | 151 | # 26.03 |
2 | 152 |
|
3 | 153 | ## Highlights: |
|
0 commit comments