Programs in Physics & Physical Chemistry
|[Licence| Download | New Version Template] afah_v1_0.tar.gz(42745 Kbytes)|
|Manuscript Title: A resistive magnetohydrodynamics solver using modern C++ and the Boost library.|
|Authors: Lukas Einkemmer|
|Program title: cppmhd|
|Catalogue identifier: AFAH_v1_0|
Distribution format: tar.gz
|Journal reference: Comput. Phys. Commun. 206(2016)69|
|Programming language: C++03.|
|Computer: PC, HPC systems.|
|Operating system: POSIX compatible (extensively tested on various Linux systems). In fact only the timing class requires POSIX routines; all other parts of the program can be run on any system where a C++ compiler, Boost, CVODE, and an implementation of BLAS is available.|
|RAM: Hundredths of Kilobytes to Gigabytes (depending on the problem size)|
|Keywords: Magnetohydrodynamics, Templates, Boost, C++.|
|PACS: 52.30.Cv, 02.70.Bf.|
|Classification: 19.10, 4.3.|
External routines: Boost, CVODE, either a BLAS library or Intel MKL
Nature of problem:
An approximate solution to the equations of resistive magnetohydrodynamics for a given initial value and given boundary conditions is computed.
The discretization is performed using a finite difference approximation in space and the CVODE library in time (which employs a scheme based on the backward differentiation formulas).
We consider the 2.5 dimensional case; that is, the magnetic field and the velocity field are three dimensional but all quantities depend only on x and y (but not z).
We provide an implementation in C++ using the boost library that combines high level techniques (which greatly increases code maintainability and extensibility) with performance that is comparable to Fortran implementations.
From seconds to weeks (depending on the problem size).
|Disclaimer | ScienceDirect | CPC Journal | CPC | QUB|