Loading TODO +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 examples/heat-equation/tnl-run-heat-equation-eoc-test +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" Loading Loading @@ -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}\ Loading @@ -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() Loading Loading @@ -149,6 +150,7 @@ runTest() solve explicit merson mv computation-in-progress computation-done fi computeError cd .. done Loading src/functions/tnlTestFunction.h +3 −0 Original line number Diff line number Diff line Loading @@ -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, Loading src/implementation/CMakeLists.txt +2 −2 Original line number Diff line number Diff line Loading @@ -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 ) Loading @@ -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} Loading src/implementation/functions/CMakeLists.txt +6 −5 Original line number Diff line number Diff line Loading @@ -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
TODO +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
examples/heat-equation/tnl-run-heat-equation-eoc-test +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" Loading Loading @@ -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}\ Loading @@ -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() Loading Loading @@ -149,6 +150,7 @@ runTest() solve explicit merson mv computation-in-progress computation-done fi computeError cd .. done Loading
src/functions/tnlTestFunction.h +3 −0 Original line number Diff line number Diff line Loading @@ -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, Loading
src/implementation/CMakeLists.txt +2 −2 Original line number Diff line number Diff line Loading @@ -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 ) Loading @@ -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} Loading
src/implementation/functions/CMakeLists.txt +6 −5 Original line number Diff line number Diff line Loading @@ -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 )