1========================= 2CHANGES: PETSc for Python 3========================= 4 5:Author: Lisandro Dalcin 6:Contact: dalcinl@gmail.com 7 8 9Release 3.24.0 10============== 11 12- Update to PETSc 3.24 release. 13 14- Support (opt-in via setting the environment variable 15 ``PETSC4PY_BUILD_PYSABI=1``) for building with ``Py_LIMITED_API`` 16 (Python Stable ABI) under Python 3.10+ (requires Cython 3.1+). 17 18Release 3.23.0 19============== 20 21- Update to PETSc 3.23 release. 22 23Release 3.22.0 24============== 25 26- Update to PETSc 3.22 release. 27 28Release 3.21.0 29============== 30 31- Update to PETSc 3.21 release. 32 33Release 3.20.0 34============== 35 36- Update to PETSc 3.20 release. 37- Update Cython build, require ``Cython >= 3.0.0``. 38 39Release 3.19.0 40============== 41 42- Update to PETSc 3.19 release. 43- Expose ``PetscDevice`` and ``PetscDeviceContext`` API as 44 ``PETSc.Device`` and ``PETSc.DeviceContext`` classes respectively. 45 46Release 3.18.0 47============== 48 49- Update to PETSc 3.18 release. 50 51 52Release 3.17.0 53============== 54 55- Update to PETSc 3.17 release. 56 57 58Release 3.16.0 59============== 60 61- Update to PETSc 3.16 release. 62 63 64Release 3.15.0 65============== 66 67- Update to PETSc 3.15 release. 68 69 70Release 3.14.1 71============== 72 73- Fix build issues after changes in recent PETSc patch releases. 74- Add various missing types and enums definitions. 75- Update Cython build, require ``Cython >= 0.24``. 76 77 78Release 3.14.0 79============== 80 81- Update to PETSc 3.14 release. 82 83 84Release 3.13.0 85============== 86 87- Update to PETSc 3.13 release. 88 89 90Release 3.12.0 91============== 92 93- Update to PETSc 3.12 release. 94 95 96Release 3.11.0 97============== 98 99- Update to PETSc 3.11 release. 100 101 102Release 3.10.1 103============== 104 105- Fix for removal of ``SNESTEST``. 106- Fix ``Mat`` in-place divide. 107 108 109Release 3.10.0 110============== 111 112- Update to PETSc 3.10 release. 113 114 115Release 3.9.1 116============= 117 118- Add ``Mat.zeroRowsColumnsLocal()``. 119- Add ``Mat.getISLocalMat()``. 120- Add ``Mat.convertISToAIJ()``. 121 122 123Release 3.9.0 124============= 125 126- Update to PETSc 3.9 release. 127 128 129Release 3.8.0 130============= 131 132- Update to PETSc 3.8 release. 133 134 135Release 3.7.0 136============= 137 138- Update to PETSc 3.7 release. 139 140 141Release 3.6.0 142============= 143 144- Update to PETSc 3.6 release. 145 146 147Release 3.5.1 148============= 149 150- Add ``Log.{begin|view|destroy}()``. 151- Add ``Mat.SOR()`` and ``Mat.SORType``. 152- Add ``DMPlex.createCoarsePointIS()``. 153- Add ``LGMap.createSF()``. 154- Add ``SNES.getVIInactiveSet()``. 155- Add ``Vec.isaxpy()``. 156- Add ``PC.setReusePreconditioner()``. 157- Return correct type in ``DM.getCoordinateDM()``. 158- Fix SWIG wrappers to handle 64bit ``PetscInt``. 159- Fix linker flags for Python from Fink. 160 161 162Release 3.5 163=========== 164 165- Update to PETSc 3.5 release. 166 167 168Release 3.4 169=========== 170 171- Update to PETSc 3.4 release. 172 173- Add support for ``DMComposite`` and ``DMPlex``. 174 175- Change ``Mat.getSizes()`` to return ``((m,M),(n,N))``. 176 177 178Release 3.3.1 179============= 180 181- Fix ``Options.getAll()`` mishandling values with negative numbers. 182 183- Minor backward compatibility fix for PETSc 3.2 . 184 185- Minor bugfix for TSPYTHON subtype. 186 187 188Release 3.3 189=========== 190 191- Update to PETSc 3.3 release. 192 193- Change ``Vec.getLocalForm()`` to ``Vec.localForm()`` for use with 194 context manager and add ``Vec.setMPIGhost()``. 195 196- Add ``AO.createMemoryScalable()`` and ``LGMap.block()`` / 197 ``LGMap.unblock()`` 198 199- Add ``Object.handle`` property (C pointer as a Python integer). Can 200 be used with ``ctypes`` to pass a PETSc handle. 201 202- Add ``Comm.tompi4py()`` to get a ``mpi4py`` communicator instance. 203 204 205Release 1.2 206=========== 207 208- Update to PETSc 3.2 release. 209 210- Add new ``DM`` class , make ``DA`` inherit from ``DM``. 211 212- Better support for inplace LU/ILU and Cholesky/ICC factorization and 213 factor PC subtypes. 214 215- Now the ``Mat``/``PC``/``KSP``/``SNES``/``TS`` Python subtypes are 216 implemented with Cython. 217 218- Better interaction between Python garbage collector and PETSc 219 objects. 220 221- Support for PEP 3118 and legacy Python's buffer interface. 222 223 224Release 1.1.2 225============= 226 227This is a new-features and bug-fix release. 228 229- Add support for copying and computing complements in ``IS`` 230 (``IS.copy()`` and ``IS.complement()``). 231 232- Add support for coarsening in ``DA`` (``DA.coarsen()``). 233 234- Support for shallow copy and deep copy operations (use ``copy.copy`` 235 and ``copy.deepcopy``). Deep copy is only supported for a bunch of 236 types (``IS``, ``Scatter``, ``Vec``, ``Mat``) 237 238- Support for ``pip install petsc4py`` to download and install PETSc. 239 240 241Release 1.1.1 242============= 243 244This is a new-features and bug-fix release. 245 246- Support for setting PETSC_COMM_WORLD before PETSc initialization. 247 248- Support for coordinates, refinement and interpolation in DA. Many 249 thanks to Blaise Bourdin. 250 251- Workaround build failures when PETSc is built with *mpiuni*. 252 253- Workaround GIL-related APIs for non-threaded Python builds. 254 255 256Release 1.1 257=========== 258 259- Update for API cleanups, changes, and new calls in PETSc 3.1 and 260 some other missing features. 261 262- Add support for Jed Brown's THETA an GL timestepper implementations. 263 264- Fix the annoying issues related to Open MPI shared libraries 265 dependencies and Python dynamic loading. 266 267- Many minor bug-fixes. Many thanks to Ethan Coon, Dmitry Karpeev, 268 Juha Jaykka, and Michele De Stefano. 269 270 271Release 1.0.3 272============= 273 274This is a bug-fix release. 275 276- Added a quick fix to solve build issues. The macro __SDIR__ is no 277 longer passed to the compiler in the command line. 278 279 280Release 1.0.2 281============= 282 283This is a new-features and bug-fix release. 284 285- Now ``petsc4py`` works against core PETSc built with complex 286 scalars. 287 288- Added support for PETSc logging features like stages, classes and 289 events. Stages and events support the context manager interface 290 (``with`` statement). 291 292- Documentation generated with Epydoc and Sphinx is now included in 293 the release tarball. 294 295- Removed enumeration-like classes from the ``petsc4py.PETSc`` module 296 namespace. For example, now you have to use ``PETSc.KSP.Type`` 297 instead of ``PETSc.KSPType``. 298 299- The ``PETSc.IS`` to ``numpy.ndarray`` conversion now works for 300 stride and block index sets. 301 302- Implemented a more robust import machinery for multi-arch 303 ``petsc4py`` installations. Now a wrong value in the ``PETSC_ARCH`` 304 environmental variable emit a warning (instead of failing) at import 305 time. 306 307- The unittest-based testsuite now can run under ``nose`` with its 308 default options. 309 310- Removed the dependency on ``numpy.distutils``, just use core Python 311 ``distutils``. 312 313 314Release 1.0.1 315============= 316 317This is a bug-fix release. Compile Cython-generated C sources with 318``-Wwrite-strings`` removed, as this flag (inherited from PETSc) made 319GCC emit a lot of (harmless but annoying) warnings about conversion of 320string literals to non-const char pointers. 321 322 323Release 1.0.0 324============= 325 326This is the fist release of the all-new, Cython-based, implementation 327of *PETSc for Python*. 328