Commit 34f84764 authored by Daniel Simon's avatar Daniel Simon
Browse files

Merge branch 'master' of ssh://geraldine.fjfi.cvut.cz:2222/local/projects/tnl/tnl into arithmetics

Update all changes from master to branch Arithmetics.
parents 828007a2 f67856b5
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
Oberhuber Tomas <tomas.oberhuber@fjfi.cvut.cz>
Zabka Vitezslav <zabkavit@fjfi.cvut.cz>
Vladimir Klement
Tomáš Sobotík
Ondřej Székely
Jiří Kafka
Zabka Vitezslav <zabkav@gmail.com>
Vladimir Klement <wlada@post.cz>
Tomáš Sobotík <sobotik.tomas@gmail.com>
Ondřej Székely <ondra.szekely@gmail.com>
Libor Bakajsa
Jakub Klinkovský
Jakub Klinkovský <klinkjak@fjfi.cvut.cz>
Vacata Jan
Heller Martin
Novotny Matej
+0 −1
Original line number Diff line number Diff line
/usr/local/share/automake-1.11/INSTALL
 No newline at end of file
+80 −0
Original line number Diff line number Diff line
Installation
============

    Requirements:

    To install TNL, you need:

    cmake 3.4 or later (https://cmake.org/download/)
    GNU g++ 4.8 or later (https://gcc.gnu.org/)
    CUDA 8.0 or later (https://developer.nvidia.com/cuda-downloads)

    For image processing problems, you may optionaly install:
    DCMTK (http://dicom.offis.de/dcmtk.php.en)
    libpng (http://www.libpng.org/pub/png/libpng.html)
    libjpeg (http://libjpeg.sourceforge.net/)

    The latest release of TNL can be downloaded as:

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

    Unpack it as:

    tar xvf tnl-0.1.tar.bz2
    cd tnl-0.1

    Executing command

    ./install

    will install TNL to a folder ${HOME}/.local . You may change it by

    ./install --prefix=<TNL prefix>

    During the installation, TNL fetches latest version of Gtest and install it only 
    locally to sub-folders Debug and Release. At the end of the installation, the
    script is checking if the prefix folder is visible to your bash and your linker.
    If not, it informs you how to change your ${HOME}/.bashrc file to fix it.

How to write a simple solver
============================

To implement your own solver:

    Create and go to your working directory

    mkdir MyProblem
    cd Myproblem

    Execute a command tnl-quickstart

    tnl-quickstart

    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:Laplace

    Write your numerical scheme by editing a file

    Laplace_impl.h

    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
    Compile the program by executing

    make

    for CPU version only or 
   
    make WITH_CUDA=yes

    for a solver running on both CPU and GPU. Run it on your favourite HW architecture by executing

    ./MyProblem

    and following the printed help.
+6 −0
Original line number Diff line number Diff line
===========
PDE Solvers
===========

Finite difference method

    Elliptic problems

    Parabolic problems
 No newline at end of file
+3 −3
Original line number Diff line number Diff line
@@ -27,7 +27,7 @@ class LaxFridrichs< Meshes::Grid< 1,MeshReal, Device, MeshIndex >, Real, Index >
      typedef Device DeviceType;
      typedef Index IndexType;
      typedef Functions::MeshFunction< MeshType > MeshFunctionType;
      enum { Dimensions = MeshType::getMeshDimensions() };
      enum { Dimension = MeshType::getMeshDimension() };
      Real tau;
      Real artificalViscosity;
      Real advectionSpeedX;
@@ -94,7 +94,7 @@ class LaxFridrichs< Meshes::Grid< 2,MeshReal, Device, MeshIndex >, Real, Index >
      typedef Device DeviceType;
      typedef Index IndexType;
      typedef Functions::MeshFunction< MeshType > MeshFunctionType;
      enum { Dimensions = MeshType::getMeshDimensions() };
      enum { Dimension = MeshType::getMeshDimension() };
      Real tau;
      Real artificalViscosity;
      Real advectionSpeedX;
@@ -161,7 +161,7 @@ class LaxFridrichs< Meshes::Grid< 3,MeshReal, Device, MeshIndex >, Real, Index >
      typedef Device DeviceType;
      typedef Index IndexType;
      typedef Functions::MeshFunction< MeshType > MeshFunctionType;
      enum { Dimensions = MeshType::getMeshDimensions() };
      enum { Dimension = MeshType::getMeshDimension() };
      Real tau;
      Real artificalViscosity;
      Real advectionSpeedX;
Loading