Releases: boutproject/BOUT-dev
BOUT++ v4.2.3
This is a bugfix release:
- Add counters to Timers to avoid double-counting sections #1817 (ZedThree)
- Bugfix: cyclic parallel derivative inversion done in wrong space #1807 (ZedThree)
- Add instructions for Ubuntu 16.04 #1690 (dschwoerer)
- Allow relative paths to be followed when making #1670 (johnomotani)
- Update examples/staggered_grid for v4.2 #1645 (johnomotani)
- Add EXTRA_LIBS to LIBS when searching for libraries #1632 (ZedThree)
- Recent fixes/improvements for Travis into master #1627 (ZedThree)
- Bug in calculation of ShiftAngle (qloop) #1626 (bendudson)
See CHANGELOG.md for more details
Note: if you download the source code tarball from GitHub, please download the file BOUT++-v4.2.3.tar.gz
rather than the GitHub generated tarballs. This is because the GitHub tarball does not include the submodules.
BOUT++ v4.2.2
This is a bugfix release:
- Fix a couple of bugs when updating
Coordinates
objects on the mesh - Fix a bug in FCI: missed the last point in Z for corner
displacements - Fix location not being set correctly in LaplaceXZ
- Fix some bugs in finite volume methods:
- Wrong region used in loop
- Metric component indexed at wrong location
- Use field-aligned field if necessary
- Fix wall-time limit not triggering on all processes
- Link against libdl if needed for backtrace
- Provide version numbering for Hypnotoad
- Small improvements to testing frameworks
- Various warning fixes
BOUT++ v4.2.1
This is a bugfix release, fixing a small number of issues:
- Try to provide some thread safety to msg_stack
- Fix listing available derivative methods
- Initialize Coordinates objects in BoutMesh::load()
- Use localmesh for d2x and d2y, and interpolate them to location
- Several Hypnotoad fixes
- Silence remaining warnings on master
- Fix bugs in boututils.calculus.deriv2D
- Fix failure of collect() with integer slice argument
- Fix setCoefs in InvertPar
- Support BoutOutputs caching option in boutcore fromBoutOutputs
- Check for nullptr in NcFormat::get/setAttribute
- Set location in LaplaceCyclic::solve() and DC()
See CHANGELOG.md for more details
Note: if you download the source code tarball from GitHub, please download the file BOUT++-v4.2.1.tar.gz
rather than the GitHub generated tarballs. This is because the GitHub tarball does not include the submodules.
BOUT++ v4.2.0
BOUT++ v4.2.0 is a big feature release:
- Large number of optimisations (as much as 140% faster than v4.1.2!)
- OpenMP in many more places, enables parallelisation in Z (as well as X for FCI)
- Better support for OpenMP, including in Python tools
- Much more versatile region system, allowing arbitrary regions (can e.g. mask certain parts of the domain for most common operations)
- Specialised macro for looping over Fields, handles arbitrary regions, OpenMP parallelisation, while also supporting native vectorisation
- Add support for new region system to many functions
- Better support for staggered grids: many bugfixes and many more functions support setting the location
Coordinates
objects can be created at different locations, through theMesh::getCoordinates
andField::getCoordinates
methods- Support for compiling as a shared library
- Experimental Python API via Cython module
- Arithmetic operators on fields are now generated using Jinja2
- Improved PETSc compatibility (better support out of the box, supports up to 3.9, drops support for versions before 3.4)
- New support classes for 2D/3D arrays (Matrix/Tensor)
- New interface for Options
- Divergence operators for FCI
- Support for attributes in NetCDF files
- Default Laplacian changed to cyclic
- Many C++ modernisation fixes
- New monotonic Hermite spline interpolator
- Better configure experience
- Zoidberg can produce curvilinear grids in all three directions (enables e.g. stellarator geometry. Current version of BOUT++ can't actually handle this yet -- upcoming version!)
- Many more tests, and a better testing framework for the integrated tests
- Some potential memory leaks and null pointer dereferences fixed
Deprecations
DataIterator
is deprecated in favour of the newRegion
andInd2D/3D/Perp
family. This should not affect user code -- if it does, replacingDataIterator
withauto
should do the right thing in most casesDataFile::writeVar
: useDataFile::addOnce
Field::setName
andField::getName
: just useField::name
directly insteadField::error
andbout_error
: useBoutException
insteadrvector
/rmatrix
/rtensor
families of functions: useMatrix
/Tensor
insteadoperator^(Vector2D/Vector3D)
: usecross()
instead- The derivative function overloads with this order of arguments:
DD?(..., DIFF_METHOD, CELL_LOC, REGION)
. Instead, useDD?(..., CELL_LOC, DIFF_METHOD, REGION)
- Vector derivative function overloads with three separate
outloc_[xyz]
arguments: use the versions with a singleoutloc
argument instead CyclicReduce::setCoefs
andsolve
overloads that takeT[]
orT**
: use the version that takesArray<T>
instead- The
FCI
class constructors that take abool yperiodic
argument: this is no longer supported Mesh::coordinates
is deprecated in favour of the more consistently-namedMesh::getCoordinates
. There is also nowField::getCoordinates
which may be more convenient
Removed functions
PhysicsModel::addToRestart
andSolver::addToRestart
: userestart.add
directly insteadSolver::addMonitor(MonitorFunc)
: use theMonitor*
overloads instead- The
get/set
array/data
methods in theField
classes: these methods are no longer supported
BOUT++ v4.1.2
This is a bug-fix release, fixing the following issues in BOUT++:
- Updates to the documentation
- Added missing
__setitem__
andkeys
functions to python Datafile - Fixed
INVERT_KX_ZERO
inserial_tri
Laplace solver - Fixed incorrect number of guard cells in
serial_tri
Laplace solver - Fixed Laplacexy examples
- Fixed bug in calculation of non-uniform correction
- Disabled plotting of test-fci-slab when running the integrated tests
- Fixed bug during configure if NetCDF not found
- Fixed typo in bout-runners example input file
BOUT++ v4.1.1
This a bug-fix release for BOUT++ that fixes the following:
- Automatically checkout GoogleTest submodule if necessary
- Fix memory leak in multigrid solver
- Don't pause on showing plot for FCI test by default
- Fix broken integrated tests that aren't run in the test suite
- Initialise some uninitialised variables
- Cleanup all
Array
instances at end of simulation - Set boundaries correctly in
Delp2
- Set PYTHONPATH when running tests
- Fix some segfaults caused by
Field3D
move constructors - Fix some errant newlines when specifying
-q
on the command line - Fix some segfaults in
ConditionalOutput
- Fix broken links and code blocks in the documentation
BOUT++ v4.1.0
BOUT++ v4.1.0 is a feature release, containing some interesting new features, including:
- A way to cleanly stop simulations either through a stop-file, or via a KILL
signal - User-defined multiple monitors with different frequencies
- Four new boundary iterators for the inner and outer boundaries in
double null configurations - Better handling of 1D/2D Fields
- Dumping the actual settings used during a simulation to a file
- Colour output to highlight warnings/errors, along with options to
increase/decrease verbosity - Configure-time options to enable profiling with Score-P and coverage
checking with gcov - Removal of various functions deprecated in v4.0.0
- An overhauled testing framework with unit tests using GoogleTest
This release also represents a major tidy up of the codebase, fixing several hundred warnings, removing unused and unnecessary code, and implementing a better, more comprehensive testing suite.
For a more comprehensive changelog, please see CHANGELOG.md
BOUT++ v4.0.1
4.0.1 is purely a bug-fix release, with various fixes to some of the python tools, patching several memory leaks, and some important fixes for Intel compilers.
BOUT++ 4.0.0
Merge pull request #461 from boutproject/v4.0.0-RC Release v4.0.0
BOUT++ 3.1
This is the last commit to master before the release of v4.0.0