Please mention any changes to the code which will break users' code here - to be put in the release notes for the next release. Also mention any significant improvements or new features.

The real definitive release notes will be written in source:trunk/docs/ReleaseNotes.html at the time of release. To make that process easier, please structure this page in the same manner, rather than simply copying from LatestNews.

OlderReleaseNotes -- release notes for previous releases.


(changes since Release 2019.1)

Headline features

  • Chaste has now been updated to Python3 (3.5+).
    • New dependencies (which most systems will already have):
      • python3
      • python3-venv
      • python3-pip
    • The following Python2 dependencies are no longer required:
      • python-devel
      • python-lxml
      • python-amara
      • python-rdflib
      • python-dateutil
  • Chaste now supports Ubuntu 20.04 LTS (Focal).

New dependency support

  • Chaste now supports PETSc up to 3.12, Boost up to 1.74, SUNDIALS up to 4.1.0 and VTK up to 8.2.

Core

Heart

  • The CellML to Chaste hpp/cpp converter was PyCML (based on Python 2) this has been replaced by chaste_codegen (https://github.com/ModellingWebLab/chaste-codegen, based on Python 3). See ChasteGuides/CodeGenerationFromCellML for info on how to use this new library at the command line, but no changes needed unless you were using PyCML manually before. There are a couple of nice new features with this:
    • You no longer need to manually use the proprietary software Maple to compute Analytic Jacobians for CVODE to get speed ups, we now use the free software SymPy behind the scenes to do this on the fly. N.B. these are now generated and used automatically, but are known to cause issues in a handful of models, so use the ForceUseOfNumericalJacobian() method if CVODE errors suddenly appear and you hadn't heard of using Maple or analytic Jacobians before. See https://chaste.cs.ox.ac.uk/trac/wiki/UserTutorials/SingleCellSimulation for more info.
    • We now automatically analyse your model to detect singularities in GHK equations, and apply an interpolation fix so that they don't cause any problems at the voltages of concern (often, but not always, V=0). From now on, manual fixes for these singularities should be removed from CellML files. We'll be writing a note on how exactly we've done this, but you can examine the results of the fixes here for a range of models (grey=original, red=fix, orange shaded region=voltage range where interpolation is used). As a nice side-effect, lookup tables no longer need to go from offset voltages like -150.00001mV to 100.00001mV to avoid hitting these singularities, and have been moved to nice round numbers!

Cell Based

  • You can now specify any dimension to have a periodic boundary condition in 3-D NodeBased simulations. This also works in parallel. See for example TestOffLatticeSimulationWithNodeBasedCellPopulationIn3d::TestSimple3dTissueYPeriodic
  • Fixed to output of cell proliferative type to stop this output being overwritten by mutations state or label id.
  • Bug fix on daughter cell placement in off-lattice centre-based simulations. Daughter cells are now correctly placed equal distances from the parent cell centre location.
  • Changes to performance and correctness of VertexBased code.
    • Bug in MutableVertexMesh::PerformIntersectionSwap() working at boundary of VertexMesh found and fixed. Previous code expected there to be four elements surrounding the intersection whereas, at the boundary, there are several other cases.
    • Bug fix to MutableVertexMesh::PerformT2Swap() in the case where a small triangular element has no neighbours.
    • Performance optimization to MutableVertexMesh::CheckForIntersections().

Future Plans

This will be the last release of Chaste to support Ubuntu 16.04 LTS and its dependencies. The following will not be supported in future releases:

  • Boost < 1.65.1
  • CMake < 3.10.2
  • HDF5 < 1.10.0
  • PETSc < 3.7.7
  • VTK < 6.3.0
  • Xerces < 3.2.0
  • SUNDIALS < 2.7.0