BOUT Dev Versions Save

BOUT++: Plasma fluid finite-difference simulation code in curvilinear coordinate systems

v4.2.2

5 years ago

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

v4.2.1

5 years ago

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.

v4.2.0

5 years ago

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 the Mesh::getCoordinates and Field::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 new Region and Ind2D/3D/Perp family. This should not affect user code -- if it does, replacing DataIterator with auto should do the right thing in most cases
  • DataFile::writeVar: use DataFile::addOnce
  • Field::setName and Field::getName: just use Field::name directly instead
  • Field::error and bout_error: use BoutException instead
  • rvector/rmatrix/rtensor families of functions: use Matrix/Tensor instead
  • operator^(Vector2D/Vector3D): use cross() instead
  • The derivative function overloads with this order of arguments: DD?(..., DIFF_METHOD, CELL_LOC, REGION). Instead, use DD?(..., CELL_LOC, DIFF_METHOD, REGION)
  • Vector derivative function overloads with three separate outloc_[xyz] arguments: use the versions with a single outloc argument instead
  • CyclicReduce::setCoefs and solve overloads that take T[] or T**: use the version that takes Array<T> instead
  • The FCI class constructors that take a bool yperiodic argument: this is no longer supported
  • Mesh::coordinates is deprecated in favour of the more consistently-named Mesh::getCoordinates. There is also now Field::getCoordinates which may be more convenient

Removed functions

  • PhysicsModel::addToRestart and Solver::addToRestart: use restart.add directly instead
  • Solver::addMonitor(MonitorFunc): use the Monitor* overloads instead
  • The get/set array/data methods in the Field classes: these methods are no longer supported

v4.1.2

6 years ago

This is a bug-fix release, fixing the following issues in BOUT++:

  • Updates to the documentation
  • Added missing __setitem__ and keys functions to python Datafile
  • Fixed INVERT_KX_ZERO in serial_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

v4.1.1

6 years ago

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

v4.1.0

6 years ago

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

v4.0.1

6 years ago

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.

v4.0.0

7 years ago

v3.1

7 years ago

This is the last commit to master before the release of v4.0.0

v3.0

8 years ago

Release for 2015 BOUT++ Workshop