Skip to content

Releases: feltor-dev/feltor

Clang

26 Jun 14:50
f5f5c47

Choose a tag to compare

What's Changed

Full Changelog: v8.2...v8.2.1

CMake integration

23 Jun 10:35
f9a29eb

Choose a tag to compare

Fully integrate CMake into the feltor and feltor-dg build process. This enables the use of Feltor and feltor's dg library in other projects and on other platforms (i.e. Windows).
This release also fixes "extra" and "pedantic" compiler warnings.

See the CHANGELOG for a full description of all changes and fixes. Particularly note that

  • the geometries header is no longer dependent on "Boost"
  • the matrix header depends on "lapack" instead of "lapacke"

Update dependencies

28 Mar 13:53
d004a3f

Choose a tag to compare

This is a hotfix on top of v8.1 that fixes a bug when using Aliases in pointwiseDot and pointwiseDivide

Update dependencies

26 Mar 10:29
9a09671

Choose a tag to compare

This release removes our dependency on the no longer maintained cusp library. The main reason is to be able to update the thrust library through its more modern distribution through the cccl repository and enable the use of its CMakeFile system. In order to do so we have:

  • Novel dg::SparseMatrix class
  • Increased usage of dg::TriDiagonal and dg::SquareMatrix
  • Dispatch to cusparse for gpu matrix-vector products
  • Update default build dependencies

See full updates in CHANGELOG

New foundations

18 Mar 09:21
98eb999

Choose a tag to compare

Highlights of this Feltor version:

  • C++-17 standard
  • A completely freshly designed C++17 style dg::file::NcFile class that replaces all previous netcdf output utility functions
  • A module dg::file::Probes class that can be added to any src project
  • New blas1 functions dg::blas1::kronecker and dg::blas1::vdot
  • New generalized N dimensional Grids superseding all previous grids and allowing arbitrary MPI parallelization
  • Completely re-designed MPI communication backend layer allowing general overlapping communication and computation
  • Automatic unit tests with the Catch2 framework
  • Possibility to replace jsoncpp with nlohmann-json

What's Changed

Three-dimensional

16 May 11:51
3be0799

Choose a tag to compare

For a full list of additions / changes / bugfixes see the file CHANGELOG.md

Key new features

  • dg::blas2::parallel_for for general parallelization tasks on shared memory containers (very close in functionality to kokkos::parallel_for
  • dg::blas2::stencil A generalization of dg::blas2::parallel_for that works for MPI parallelization at the cost of having to encode the communication stencil in a sparse matrix and only one vector argument
  • Utilities for exponential integrators
  • Restructure of dg::geo::Fieldaligned to allow for different interpolation and backprojection from dG to fine grid and back (to a possibly equidistant grid and with possibly cubic, linear or nearest methods)

Removed or changed

  • Constructors of dg::Helmholtz, and dg::Helmholtz3d change the orders of parameter alpha and reverts to constructor of respective dg::Elliptic class
  • dg::ModalFilter is removed in favor of generating and using dg::MultiMatrix directly
  • dg::transpose_dispatch removed (replaced by dg::blas2::parallel_for)
  • dg::extend_line removed (replaced by dg::blas2::parallel_for)
  • dg::extend_column removed (replaced by dg::blas2::parallel_for)
  • dg::create::interpolationT is removed
  • dg::integrate replaced by dg::aTimeloop functionality
  • dg::integrateERK replaced by dg::aTimeloop functionality
  • dg::stepperRK replaced by dg::aTimeloop functionality

More modular

21 Feb 10:58
abb3b4c

Choose a tag to compare

Key new features in this release

  • more modularity by allowing lambda functions in most dg classes in particular matrix inversion, multigrid and timesteppers. Create new solvers by freely combining existing ones or link to extermal libraries with a small lambda wrapper
  • Allow std::map < key, Container> in blas1 functions
  • the new dg/matrix/matrix.h library for matrix-function computations
  • new improved timestepper interface that allows purely implicit solvers in implicit timesteppers

Break backwards compatibility

  • dg::norm was removed (finally) -> fix all compile errors by simply removing all occurences of dg::normed and dg::not_normed
  • dg::PCG now works with self-adjoint matrices in given weights instread of symmetrics ones
  • implicit and semi-implicit timesteppers now expect a separate solver instance -> use std::tie to tie parameters together and dg::DefaultSolver to create the usual PCG time solve

More Multistep

23 Feb 12:57
01d8fef

Choose a tag to compare

More Multistep Pre-release
Pre-release

A host of additions updates and bug - fixes in connection with the development of a 3d code
Highlights:

  • Re- designed multistep time-steppers including a host of new tables to chose from
  • Re-designed and abstract generation of magnetic flux surfaces and wall / sheath modification
  • important bug fix in GPU dot product
  • and more. See CHANGELOG.md for a full list of additions, removals, changes, bug-fixes, and deprecations.

This update will break backwards compatibility to v5.1. Here is what you have to do to make it work in your code

  • file namespace changed to dg::file (use search and replace in your codes to change)
  • Arakawa.variation method (to compute uE2) moved to Elliptic.variation class, which is necessary to support various metric elements and is consistent with energy conservation
  • now use std=c++14 (adapt your Makefile!)
  • the blas1::transfer function that was marked deprecated before was removed (use dg::assign)

Adaptive time-steppers

18 Feb 11:44

Choose a tag to compare

Pre-release

This is the first release on our way to a fully robust and functional 3d code. It contains several additions, bug-fixes, and changes with a full list in CHANGELOG.md
Here, we highlight the new Adaptive time-steppers based on the ARKode library (in fact a complete re-implementation thereof in Feltor)

Reproducible backend

15 Jun 09:14
c16e41b

Choose a tag to compare

This release introduces

  • the reproducible blas functions
  • the Exblas library
  • the vcl library dependence
  • new interfaces for time-integrators, when the right-hand side is explicitly time-dependent
  • two new dg::blas1::evaluate functions
    The former three additions make the library binary reproducible.
    The latter two new additions provide more efficient and easy implementation of manufactured solutions in time-dependent problems.