TNL is a C++ framework for rapid development of numerical solvers for modern parallel architectures. To enjoy the power of modern multi-core CPUs and GPUs with TNL, just copy-paste the following lines to your Unix terminal.

wget tnl-project.org/data/src/tnl-0.1.tar.bz2
tar xvf tnl-0.1.tar.bz2
cd tnl-0.1

To implement your own solver:

  1. Create and go to your working directory
    mkdir MyProblem
    cd Myproblem
  2. Execute a command tnl-quickstart
  3. Answer the questions as, for example, follows
    TNL Quickstart -- solver generator
    Problem name:My Problem
    Problem class base name (base name acceptable in C++ code):MyProblem
    Operator name:MyOperator
  4. Write your numerical scheme by editing a file

    on lines:

    • 34, 141 and 265 for 1D, 2D and 3D problem respectively with explicit time discretization
    • 101, 211 and 332 for 1D, 2D and 3D problem respectively with (semi-)implicit time discretization
  5. Compile the program by executing

    for CPU version only or

    make WITH_CUDA=yes

    for a solver running on both CPU and GPU.

  6. Run it on your favorite HW architecture by executing

    and following the printed help.