Releases: feltor-dev/feltor
Three-dimensional
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 tokokkos::parallel_for
dg::blas2::stencil
A generalization ofdg::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
, anddg::Helmholtz3d
change the orders of parameteralpha
and reverts to constructor of respectivedg::Elliptic
class dg::ModalFilter
is removed in favor of generating and usingdg::MultiMatrix
directlydg::transpose_dispatch
removed (replaced bydg::blas2::parallel_for
)dg::extend_line
removed (replaced bydg::blas2::parallel_for
)dg::extend_column
removed (replaced bydg::blas2::parallel_for
)dg::create::interpolationT
is removeddg::integrate
replaced bydg::aTimeloop
functionalitydg::integrateERK
replaced bydg::aTimeloop
functionalitydg::stepperRK
replaced bydg::aTimeloop
functionality
More modular
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 ofdg::normed
anddg::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 anddg::DefaultSolver
to create the usual PCG time solve
More Multistep
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
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
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
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
- 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
- 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
A new geometry backend
- unified grid names
- HECTOR (high precision conformal grid generator)
- first X-point grids