Commit 3c4cbac5 authored by Tomáš Oberhuber's avatar Tomáš Oberhuber
Browse files

Implementing the EOC test.

parent 7063b32d
Loading
Loading
Loading
Loading
+6 −29
Original line number Diff line number Diff line
TODO: neumanovy okrajove podminky

TODO: implementovat tridu tnlFileName pro generovani jmen souboru

TODO: metodu pro tnlString pro nahrazeni napr. podretezce XXXXX indexem 00001 tj. uXXXXX.bin -> u00001.bin
      to by melo byt robustnejsi, nez doposavadni pristup 

TODO: implementovat tridu tnlParabolicSolver pro odvozovani resicu k casove promennym uloham


TODO: objekt pro osetreni chyb - zavedeni funkce tnlGetError
      - mozna dat do tnlObject priznak, zda je objekt ok nebo 
        v nefunkcnim stavu   

TODO: implementovat casovace merici jen cas resicu

TODO: vyjimky 
    
TODO: implementovat maticovy format COO - mimo jine by se dal vyuzit k rychlejsimu parsovani mtx souboru

TODO: implementovat metodu tnlObject passToDevice, ktera vytvori obraz daneho objektu na GPU.
      Vrati ukazatel na tridu, ktetou lze pouzivat v kernelech. To by melo zjednodusti psani kernelu a
      priblizit je kodu pro CPU.

TODO: Zkusit z tnlExplicitSolver udelat tnlTimeSolver, od nej odvodit tnlEulerSolver, tnlMersonSolver a
      tnlParabolicSolver. Objekt by obsahoval i metodu pro ukladani stavu v prubehu vypoctu. 
      
TODO: - odvodit tnlArray primo z tnlArrayManager
      - tnlGrid prejmenovat na tnlGridOfNodes
      - zavest tnlGrid podle tnlMesh - tj. bude to pouze popis site bez sitove fce.
      - po prepsani vsech schemat se tnlGridOfNodes zrusi
      - zavest tnlObjectArray pro pole objektu - rozdil je v tom, ze treba save a load bude volat pro kazdy element
        jeho metodu save a load apod.           
      
DONE: Nahradit mGrid2D, mGrid3D za mGrid obecne dimenze 
TODO: prubezne ukladani vysledku behem vypoctu 
                 
 No newline at end of file
DONE: trida tnlArray - misto tnlLongVector a tnlField (nebo postavenou na tnlLongVector)
      template< typename REAL, int DIM, tnlDevice >
DONE: do tnlGrid pridat metodu pro osetreni Dirichletovych a Neumannovych o.p.           
 No newline at end of file
+7 −5
Original line number Diff line number Diff line
#!/bin/bash

device="host"
dimensions="1D" # 2D 3D"
sizes1D="16" # 32 64 128 256 512"
dimensions="1D 2D 3D"
sizes1D="16 32 64 128 256 512"
sizes2D="16 32 64 128 256 512"
sizes3D="16 32 64 128"
testFunctions="exp-bump"
@@ -80,7 +80,7 @@ solve()
   timeDiscretisation=$1
   discreteSolver=$2
   ${solverName} --mesh mesh.tnl \
                 --initial-condition exact-u-0000.tnl \
                 --initial-condition exact-u-00000.tnl \
                 --time-discretisation ${timeDiscretisation} \
                 --discrete-solver ${discreteSolver} \
                 --test-function ${testFunction}\
@@ -107,9 +107,10 @@ computeError()
{

   tnl-diff --mesh mesh.tnl \
            --input-files numericalSolution-*.tnl analyticSolution-*.tnl \
            --input-files exact-u-*.tnl u-*.tnl \
            --mode halves \
            --output-file ${dofSize}-dofs 
            --snapshot-period ${snapshotPeriod} \
            --output-file errors.txt 
}

runTest()
@@ -149,6 +150,7 @@ runTest()
                  solve explicit merson
                  mv computation-in-progress computation-done
               fi
               computeError
            cd ..
         done

+3 −0
Original line number Diff line number Diff line
@@ -19,6 +19,9 @@
#define TNLTESTFUNCTION_H_

#include <core/tnlHost.h>
#include <core/vectors/tnlStaticVector.h>
#include <config/tnlConfigDescription.h>
#include <config/tnlParameterContainer.h>

template< int FunctionDimensions,
          typename Real = double,
+2 −2
Original line number Diff line number Diff line
@@ -13,7 +13,7 @@ IF( BUILD_CUDA )
        ${tnl_implementation_core_CUDA__SOURCES}
        ${tnl_implementation_matrices_CUDA__SOURCES}
        ${tnl_implementation_mesh_CUDA__SOURCES}
        ${tnl_implementation_generators_CUDA__SOURCES}
        ${tnl_implementation_functions_CUDA__SOURCES}
        ${tnl_implementation_operators_CUDA__SOURCES}
        ${tnl_implementation_solvers_CUDA__SOURCES}         
        PARENT_SCOPE )
@@ -22,7 +22,7 @@ ENDIF()
set( tnl_implementation_SOURCES 
     ${tnl_implementation_config_SOURCES}
     ${tnl_implementation_core_SOURCES}
     ${tnl_implementation_generators_SOURCES}
     ${tnl_implementation_functions_SOURCES}
     ${tnl_implementation_matrices_SOURCES}
     ${tnl_implementation_mesh_SOURCES}
     ${tnl_implementation_operators_SOURCES}
+6 −5
Original line number Diff line number Diff line
@@ -4,19 +4,20 @@ SET( headers tnlFunctionDiscretizer_impl.h
             tnlSinBumpsFunction_impl.h
             tnlSinWaveFunction_impl.h )

SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/implementation/generators/functions )
SET( CURRENT_DIR ${CMAKE_SOURCE_DIR}/src/implementation/functions )
set( common_SOURCES
      )       
     ${CURRENT_DIR}/tnlTestFunction_impl.cpp )       

IF( BUILD_CUDA )
   set( tnl_implementation_generators_functions_CUDA__SOURCES
   set( tnl_implementation_functions_CUDA__SOURCES
        ${common_SOURCES} 
        ${CURRENT_DIR}/tnlTestFunction_impl.cu
        PARENT_SCOPE )
ENDIF()    

set( tnl_implementation_generators_functions_SOURCES     
set( tnl_implementation_functions_SOURCES     
     ${common_SOURCES}
     PARENT_SCOPE )
        
INSTALL( FILES ${headers} DESTINATION include/tnl-${tnlVersion}/implementation/generators/functions )
INSTALL( FILES ${headers} DESTINATION include/tnl-${tnlVersion}/implementation/functions )
Loading