Skip to content

Releases: feltor-dev/feltor

Three-dimensional

16 May 11:51
3be0799
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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.

X-point geometries

26 Mar 11:02
ab8b5ba
Compare
Choose a tag to compare

A study of X-point grids

  • removed trailing whitespaces in inc and geometries files
  • updated memory class to std11, renamed Handle class to ClonePtr
  • merged optimized sparseblockmat kernels and added avx to default config files
  • fixed memory bug caused by Tensor class design
  • new file conformalX_elliptic_b.cu
  • corrected faulty namespace in diag programs
  • specific updates in inc/dg/geometries due to new X-point paper

improved performance, physics and grids

06 Feb 10:56
48e4698
Compare
Choose a tag to compare
  • improved performance (with HLST support)
  • new multigrid solver
  • updated grids
  • updated aligned derivative routines
  • updated codes: feltor, feltor2D, asela, asela2D, feltorShw, feltorSH, feltorSHp, feltorSesol, toefl
  • updated diagnostics

new physics

17 Jan 12:55
Compare
Choose a tag to compare
  • bugfix: included dlt.dat file into dlt.h file which rendered execution of programs in different folders impossible (Thanks to Ralph Kube)
  • bugfix: curvature terms had wrong signs
  • new ep-plasma code
  • new feltorSHp code
  • feltorSH, feltor, feltor2d, asela, asela2d, feltorSesol, feltorShw, codes updated

HECTOR

21 Oct 16:44
Compare
Choose a tag to compare

A new geometry backend

  • unified grid names
  • HECTOR (high precision conformal grid generator)
  • first X-point grids