Loading examples/heat-equation/CMakeLists.txt +8 −3 Original line number Diff line number Diff line Loading @@ -8,10 +8,15 @@ set( tnl_heat_equation_SOURCES heatEquationEocSolver_impl.h tnlHeatEquationEocRhs.h ) IF( BUILD_CUDA ) CUDA_ADD_EXECUTABLE(tnl-heat-equation${debugExt} tnl-heat-equation.cu) CUDA_ADD_EXECUTABLE(tnl-heat-equation-eoc-test${debugExt} tnl-heat-equation-eoc.cu) ELSE( BUILD_CUDA ) ADD_EXECUTABLE(tnl-heat-equation${debugExt} tnl-heat-equation.cpp) target_link_libraries (tnl-heat-equation${debugExt} tnl${debugExt}-${tnlVersion} ) ADD_EXECUTABLE(tnl-heat-equation-eoc-test${debugExt} tnl-heat-equation-eoc.cpp) ENDIF( BUILD_CUDA ) target_link_libraries (tnl-heat-equation${debugExt} tnl${debugExt}-${tnlVersion} ) target_link_libraries (tnl-heat-equation-eoc-test${debugExt} tnl${debugExt}-${tnlVersion} ) INSTALL( TARGETS tnl-heat-equation${debugExt} Loading examples/heat-equation/heatEquationSolver_impl.h +3 −0 Original line number Diff line number Diff line Loading @@ -223,6 +223,7 @@ getExplicitRHS( const RealType& time, * You may use supporting vectors again if you need. */ cout << "u = " << u << endl; this->bindDofs( mesh, u ); tnlExplicitUpdater< Mesh, DofVectorType, DifferentialOperator, BoundaryCondition, RightHandSide > explicitUpdater; explicitUpdater.template update< Mesh::Dimensions >( time, Loading @@ -232,6 +233,8 @@ getExplicitRHS( const RealType& time, this->rightHandSide, u, fu ); cout << "u = " << u << endl; cout << "fu = " << fu << endl; //_u.save( "u.tnl" ); //_fu.save( "fu.tnl" ); //getchar(); Loading examples/heat-equation/tnl-heat-equation-eoc.cpp +1 −63 Original line number Diff line number Diff line Loading @@ -15,68 +15,6 @@ * * ***************************************************************************/ #include <solvers/tnlSolver.h> #include <solvers/tnlFastBuildConfig.h> #include <solvers/tnlConfigTags.h> #include <functions/tnlTestFunction.h> #include <operators/diffusion/tnlLinearDiffusion.h> #include <operators/diffusion/tnlExactLinearDiffusion.h> #include <operators/tnlAnalyticDirichletBoundaryConditions.h> #include "tnlHeatEquationEocRhs.h" #include "heatEquationEocSolver.h" //typedef tnlDefaultConfigTag BuildConfig; typedef tnlFastBuildConfig BuildConfig; template< typename ConfigTag > class heatEquationEocConfig { public: static void configSetup( tnlConfigDescription& config ) { config.addDelimiter( "Heat equation EOC settings:" ); config.addDelimiter( "Tests setting::" ); tnlTestFunction< 3, double >::configSetup( config ); } }; template< typename Real, typename Device, typename Index, typename MeshType, typename ConfigTag, typename SolverStarter > class heatEquationSetter { public: typedef Real RealType; typedef Device DeviceType; typedef Index IndexType; typedef tnlStaticVector< MeshType::Dimensions, Real > Vertex; static bool run( const tnlParameterContainer& parameters ) { enum { Dimensions = MeshType::Dimensions }; typedef tnlLinearDiffusion< MeshType, Real, Index > ApproximateOperator; typedef tnlExactLinearDiffusion< Dimensions > ExactOperator; typedef tnlTestFunction< MeshType::Dimensions, Real, Device > TestFunction; typedef tnlHeatEquationEocRhs< ExactOperator, TestFunction > RightHandSide; typedef tnlStaticVector < MeshType::Dimensions, Real > Vertex; typedef tnlAnalyticDirichletBoundaryConditions< MeshType, TestFunction, Real, Index > BoundaryConditions; typedef heatEquationEocSolver< MeshType, ApproximateOperator, BoundaryConditions, RightHandSide > Solver; SolverStarter solverStarter; return solverStarter.template run< Solver >( parameters ); }; }; int main( int argc, char* argv[] ) { tnlSolver< heatEquationSetter, heatEquationEocConfig, BuildConfig > solver; if( ! solver. run( argc, argv ) ) return EXIT_FAILURE; return EXIT_SUCCESS; } #include "tnl-heat-equation-eoc.h" examples/heat-equation/tnl-heat-equation-eoc.cu 0 → 100644 +18 −0 Original line number Diff line number Diff line /*************************************************************************** tnl-heat-equation-eoc.cu - description ------------------- begin : Nov 29, 2014 copyright : (C) 2014 by oberhuber email : tomas.oberhuber@fjfi.cvut.cz ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "tnl-heat-equation-eoc.h" No newline at end of file examples/heat-equation/tnl-heat-equation-eoc.h 0 → 100644 +85 −0 Original line number Diff line number Diff line /*************************************************************************** tnl-heat-equation-eoc.h - description ------------------- begin : Nov 29, 2014 copyright : (C) 2014 by oberhuber email : tomas.oberhuber@fjfi.cvut.cz ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef TNL_HEAT_EQUATION_EOC_H_ #define TNL_HEAT_EQUATION_EOC_H_ #include <solvers/tnlSolver.h> #include <solvers/tnlFastBuildConfig.h> #include <solvers/tnlConfigTags.h> #include <functions/tnlTestFunction.h> #include <operators/diffusion/tnlLinearDiffusion.h> #include <operators/diffusion/tnlExactLinearDiffusion.h> #include <operators/tnlAnalyticDirichletBoundaryConditions.h> #include "tnlHeatEquationEocRhs.h" #include "heatEquationEocSolver.h" //typedef tnlDefaultConfigTag BuildConfig; typedef tnlFastBuildConfig BuildConfig; template< typename ConfigTag > class heatEquationEocConfig { public: static void configSetup( tnlConfigDescription& config ) { config.addDelimiter( "Heat equation EOC settings:" ); config.addDelimiter( "Tests setting::" ); tnlTestFunction< 3, double >::configSetup( config ); } }; template< typename Real, typename Device, typename Index, typename MeshType, typename ConfigTag, typename SolverStarter > class heatEquationSetter { public: typedef Real RealType; typedef Device DeviceType; typedef Index IndexType; typedef tnlStaticVector< MeshType::Dimensions, Real > Vertex; static bool run( const tnlParameterContainer& parameters ) { enum { Dimensions = MeshType::Dimensions }; typedef tnlLinearDiffusion< MeshType, Real, Index > ApproximateOperator; typedef tnlExactLinearDiffusion< Dimensions > ExactOperator; typedef tnlTestFunction< MeshType::Dimensions, Real, Device > TestFunction; typedef tnlHeatEquationEocRhs< ExactOperator, TestFunction > RightHandSide; typedef tnlStaticVector < MeshType::Dimensions, Real > Vertex; typedef tnlAnalyticDirichletBoundaryConditions< MeshType, TestFunction, Real, Index > BoundaryConditions; typedef heatEquationEocSolver< MeshType, ApproximateOperator, BoundaryConditions, RightHandSide > Solver; SolverStarter solverStarter; return solverStarter.template run< Solver >( parameters ); }; }; int main( int argc, char* argv[] ) { tnlSolver< heatEquationSetter, heatEquationEocConfig, BuildConfig > solver; if( ! solver. run( argc, argv ) ) return EXIT_FAILURE; return EXIT_SUCCESS; } #endif /* TNL_HEAT_EQUATION_EOC_H_ */ Loading
examples/heat-equation/CMakeLists.txt +8 −3 Original line number Diff line number Diff line Loading @@ -8,10 +8,15 @@ set( tnl_heat_equation_SOURCES heatEquationEocSolver_impl.h tnlHeatEquationEocRhs.h ) IF( BUILD_CUDA ) CUDA_ADD_EXECUTABLE(tnl-heat-equation${debugExt} tnl-heat-equation.cu) CUDA_ADD_EXECUTABLE(tnl-heat-equation-eoc-test${debugExt} tnl-heat-equation-eoc.cu) ELSE( BUILD_CUDA ) ADD_EXECUTABLE(tnl-heat-equation${debugExt} tnl-heat-equation.cpp) target_link_libraries (tnl-heat-equation${debugExt} tnl${debugExt}-${tnlVersion} ) ADD_EXECUTABLE(tnl-heat-equation-eoc-test${debugExt} tnl-heat-equation-eoc.cpp) ENDIF( BUILD_CUDA ) target_link_libraries (tnl-heat-equation${debugExt} tnl${debugExt}-${tnlVersion} ) target_link_libraries (tnl-heat-equation-eoc-test${debugExt} tnl${debugExt}-${tnlVersion} ) INSTALL( TARGETS tnl-heat-equation${debugExt} Loading
examples/heat-equation/heatEquationSolver_impl.h +3 −0 Original line number Diff line number Diff line Loading @@ -223,6 +223,7 @@ getExplicitRHS( const RealType& time, * You may use supporting vectors again if you need. */ cout << "u = " << u << endl; this->bindDofs( mesh, u ); tnlExplicitUpdater< Mesh, DofVectorType, DifferentialOperator, BoundaryCondition, RightHandSide > explicitUpdater; explicitUpdater.template update< Mesh::Dimensions >( time, Loading @@ -232,6 +233,8 @@ getExplicitRHS( const RealType& time, this->rightHandSide, u, fu ); cout << "u = " << u << endl; cout << "fu = " << fu << endl; //_u.save( "u.tnl" ); //_fu.save( "fu.tnl" ); //getchar(); Loading
examples/heat-equation/tnl-heat-equation-eoc.cpp +1 −63 Original line number Diff line number Diff line Loading @@ -15,68 +15,6 @@ * * ***************************************************************************/ #include <solvers/tnlSolver.h> #include <solvers/tnlFastBuildConfig.h> #include <solvers/tnlConfigTags.h> #include <functions/tnlTestFunction.h> #include <operators/diffusion/tnlLinearDiffusion.h> #include <operators/diffusion/tnlExactLinearDiffusion.h> #include <operators/tnlAnalyticDirichletBoundaryConditions.h> #include "tnlHeatEquationEocRhs.h" #include "heatEquationEocSolver.h" //typedef tnlDefaultConfigTag BuildConfig; typedef tnlFastBuildConfig BuildConfig; template< typename ConfigTag > class heatEquationEocConfig { public: static void configSetup( tnlConfigDescription& config ) { config.addDelimiter( "Heat equation EOC settings:" ); config.addDelimiter( "Tests setting::" ); tnlTestFunction< 3, double >::configSetup( config ); } }; template< typename Real, typename Device, typename Index, typename MeshType, typename ConfigTag, typename SolverStarter > class heatEquationSetter { public: typedef Real RealType; typedef Device DeviceType; typedef Index IndexType; typedef tnlStaticVector< MeshType::Dimensions, Real > Vertex; static bool run( const tnlParameterContainer& parameters ) { enum { Dimensions = MeshType::Dimensions }; typedef tnlLinearDiffusion< MeshType, Real, Index > ApproximateOperator; typedef tnlExactLinearDiffusion< Dimensions > ExactOperator; typedef tnlTestFunction< MeshType::Dimensions, Real, Device > TestFunction; typedef tnlHeatEquationEocRhs< ExactOperator, TestFunction > RightHandSide; typedef tnlStaticVector < MeshType::Dimensions, Real > Vertex; typedef tnlAnalyticDirichletBoundaryConditions< MeshType, TestFunction, Real, Index > BoundaryConditions; typedef heatEquationEocSolver< MeshType, ApproximateOperator, BoundaryConditions, RightHandSide > Solver; SolverStarter solverStarter; return solverStarter.template run< Solver >( parameters ); }; }; int main( int argc, char* argv[] ) { tnlSolver< heatEquationSetter, heatEquationEocConfig, BuildConfig > solver; if( ! solver. run( argc, argv ) ) return EXIT_FAILURE; return EXIT_SUCCESS; } #include "tnl-heat-equation-eoc.h"
examples/heat-equation/tnl-heat-equation-eoc.cu 0 → 100644 +18 −0 Original line number Diff line number Diff line /*************************************************************************** tnl-heat-equation-eoc.cu - description ------------------- begin : Nov 29, 2014 copyright : (C) 2014 by oberhuber email : tomas.oberhuber@fjfi.cvut.cz ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "tnl-heat-equation-eoc.h" No newline at end of file
examples/heat-equation/tnl-heat-equation-eoc.h 0 → 100644 +85 −0 Original line number Diff line number Diff line /*************************************************************************** tnl-heat-equation-eoc.h - description ------------------- begin : Nov 29, 2014 copyright : (C) 2014 by oberhuber email : tomas.oberhuber@fjfi.cvut.cz ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #ifndef TNL_HEAT_EQUATION_EOC_H_ #define TNL_HEAT_EQUATION_EOC_H_ #include <solvers/tnlSolver.h> #include <solvers/tnlFastBuildConfig.h> #include <solvers/tnlConfigTags.h> #include <functions/tnlTestFunction.h> #include <operators/diffusion/tnlLinearDiffusion.h> #include <operators/diffusion/tnlExactLinearDiffusion.h> #include <operators/tnlAnalyticDirichletBoundaryConditions.h> #include "tnlHeatEquationEocRhs.h" #include "heatEquationEocSolver.h" //typedef tnlDefaultConfigTag BuildConfig; typedef tnlFastBuildConfig BuildConfig; template< typename ConfigTag > class heatEquationEocConfig { public: static void configSetup( tnlConfigDescription& config ) { config.addDelimiter( "Heat equation EOC settings:" ); config.addDelimiter( "Tests setting::" ); tnlTestFunction< 3, double >::configSetup( config ); } }; template< typename Real, typename Device, typename Index, typename MeshType, typename ConfigTag, typename SolverStarter > class heatEquationSetter { public: typedef Real RealType; typedef Device DeviceType; typedef Index IndexType; typedef tnlStaticVector< MeshType::Dimensions, Real > Vertex; static bool run( const tnlParameterContainer& parameters ) { enum { Dimensions = MeshType::Dimensions }; typedef tnlLinearDiffusion< MeshType, Real, Index > ApproximateOperator; typedef tnlExactLinearDiffusion< Dimensions > ExactOperator; typedef tnlTestFunction< MeshType::Dimensions, Real, Device > TestFunction; typedef tnlHeatEquationEocRhs< ExactOperator, TestFunction > RightHandSide; typedef tnlStaticVector < MeshType::Dimensions, Real > Vertex; typedef tnlAnalyticDirichletBoundaryConditions< MeshType, TestFunction, Real, Index > BoundaryConditions; typedef heatEquationEocSolver< MeshType, ApproximateOperator, BoundaryConditions, RightHandSide > Solver; SolverStarter solverStarter; return solverStarter.template run< Solver >( parameters ); }; }; int main( int argc, char* argv[] ) { tnlSolver< heatEquationSetter, heatEquationEocConfig, BuildConfig > solver; if( ! solver. run( argc, argv ) ) return EXIT_FAILURE; return EXIT_SUCCESS; } #endif /* TNL_HEAT_EQUATION_EOC_H_ */