Loading src/Tools/tnl-init.h +47 −61 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ #pragma once #include <TNL/Config/ParameterContainer.h> #include <TNL/Containers/Vector.h> #include <TNL/Meshes/Grid.h> #include <TNL/Functions/TestFunction.h> #include <TNL/Operators/FiniteDifferences.h> Loading Loading @@ -136,28 +135,19 @@ template< typename MeshType, int xDiff, int yDiff, int zDiff > bool resolvCommunicator( const Config::ParameterContainer& parameters ) bool resolveCommunicator( const Config::ParameterContainer& parameters ) { #ifdef HAVE_MPI if( Communicators::MpiCommunicator::isDistributed() ) { Communicators::NoDistrCommunicator::Finalize(); bool ret=renderFunction<MeshType,RealType, Communicators::MpiCommunicator,xDiff,yDiff,zDiff>(parameters); return ret; } return renderFunction<MeshType,RealType, Communicators::MpiCommunicator,xDiff,yDiff,zDiff>(parameters); #endif bool ret=renderFunction<MeshType,RealType, Communicators::NoDistrCommunicator,xDiff,yDiff,zDiff>(parameters); Communicators::NoDistrCommunicator::Finalize(); return ret; return renderFunction<MeshType,RealType, Communicators::NoDistrCommunicator,xDiff,yDiff,zDiff>(parameters); } template< typename MeshType, typename RealType > bool resolveDerivatives( const Config::ParameterContainer& parameters ) { int xDiff = parameters.getParameter< int >( "x-derivative" ); int yDiff = parameters.getParameter< int >( "y-derivative" ); int zDiff = parameters.getParameter< int >( "z-derivative" ); Loading @@ -170,75 +160,75 @@ bool resolveDerivatives( const Config::ParameterContainer& parameters ) return false; } if( xDiff == 0 && yDiff == 0 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 0, 0, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 0, 0 >( parameters ); if( xDiff == 0 && yDiff == 0 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 0, 0, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 0, 1 >( parameters ); if( xDiff == 0 && yDiff == 0 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 0, 0, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 0, 2 >( parameters ); if( xDiff == 0 && yDiff == 0 && zDiff == 3 ) return resolvCommunicator< MeshType, RealType, 0, 0, 3 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 0, 3 >( parameters ); if( xDiff == 0 && yDiff == 0 && zDiff == 4 ) return resolvCommunicator< MeshType, RealType, 0, 0, 4 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 0, 4 >( parameters ); if( xDiff == 0 && yDiff == 1 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 0, 1, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 1, 0 >( parameters ); if( xDiff == 0 && yDiff == 1 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 0, 1, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 1, 1 >( parameters ); if( xDiff == 0 && yDiff == 1 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 0, 1, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 1, 2 >( parameters ); if( xDiff == 0 && yDiff == 1 && zDiff == 3 ) return resolvCommunicator< MeshType, RealType, 0, 1, 3 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 1, 3 >( parameters ); if( xDiff == 0 && yDiff == 2 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 0, 2, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 2, 0 >( parameters ); if( xDiff == 0 && yDiff == 2 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 0, 2, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 2, 1 >( parameters ); if( xDiff == 0 && yDiff == 2 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 0, 2, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 2, 2 >( parameters ); if( xDiff == 0 && yDiff == 3 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 0, 3, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 3, 0 >( parameters ); if( xDiff == 0 && yDiff == 3 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 0, 3, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 3, 1 >( parameters ); if( xDiff == 0 && yDiff == 4 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 0, 4, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 4, 0 >( parameters ); if( xDiff == 1 && yDiff == 0 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 1, 0, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 0, 0 >( parameters ); if( xDiff == 1 && yDiff == 0 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 1, 0, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 0, 1 >( parameters ); if( xDiff == 1 && yDiff == 0 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 1, 0, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 0, 2 >( parameters ); if( xDiff == 1 && yDiff == 0 && zDiff == 3 ) return resolvCommunicator< MeshType, RealType, 1, 0, 3 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 0, 3 >( parameters ); if( xDiff == 1 && yDiff == 1 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 1, 1, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 1, 0 >( parameters ); if( xDiff == 1 && yDiff == 1 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 1, 1, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 1, 1 >( parameters ); if( xDiff == 1 && yDiff == 1 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 1, 1, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 1, 2 >( parameters ); if( xDiff == 1 && yDiff == 2 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 1, 2, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 2, 0 >( parameters ); if( xDiff == 1 && yDiff == 2 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 1, 2, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 2, 1 >( parameters ); if( xDiff == 1 && yDiff == 3 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 1, 3, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 3, 0 >( parameters ); if( xDiff == 2 && yDiff == 0 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 2, 0, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 0, 0 >( parameters ); if( xDiff == 2 && yDiff == 0 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 2, 0, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 0, 1 >( parameters ); if( xDiff == 2 && yDiff == 0 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 2, 0, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 0, 2 >( parameters ); if( xDiff == 2 && yDiff == 1 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 2, 1, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 1, 0 >( parameters ); if( xDiff == 2 && yDiff == 1 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 2, 1, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 1, 1 >( parameters ); if( xDiff == 2 && yDiff == 2 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 2, 2, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 2, 0 >( parameters ); if( xDiff == 3 && yDiff == 0 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 3, 0, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 3, 0, 0 >( parameters ); if( xDiff == 3 && yDiff == 0 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 3, 0, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 3, 0, 1 >( parameters ); if( xDiff == 3 && yDiff == 1 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 3, 1, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 3, 1, 0 >( parameters ); if( xDiff == 4 && yDiff == 0 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 4, 0, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 4, 0, 0 >( parameters ); return false; } Loading Loading @@ -277,9 +267,9 @@ bool resolveIndexType( const std::vector< String >& parsedMeshType, const Config::ParameterContainer& parameters ) { std::cout << "+ -> Setting index type to " << parsedMeshType[ 4 ] << " ... " << std::endl; if( parsedMeshType[ 4 ] == "int" ) return resolveMesh< Dimension, RealType, int >( parsedMeshType, parameters ); if( parsedMeshType[ 4 ] == "long int" ) return resolveMesh< Dimension, RealType, long int >( parsedMeshType, parameters ); Loading @@ -291,12 +281,11 @@ bool resolveRealType( const std::vector< String >& parsedMeshType, const Config::ParameterContainer& parameters ) { std::cout << "+ -> Setting real type to " << parsedMeshType[ 2 ] << " ... " << std::endl; if( parsedMeshType[ 2 ] == "float" ) return resolveIndexType< Dimension, float >( parsedMeshType, parameters ); if( parsedMeshType[ 2 ] == "double" ) return resolveIndexType< Dimension, double >( parsedMeshType, parameters ); if( parsedMeshType[ 2 ] == "long-double" ) return resolveIndexType< Dimension, long double >( parsedMeshType, parameters ); Loading @@ -311,11 +300,8 @@ bool resolveMeshType( const std::vector< String >& parsedMeshType, if( dimensions == 1 ) return resolveRealType< 1 >( parsedMeshType, parameters ); if( dimensions == 2 ) return resolveRealType< 2 >( parsedMeshType, parameters ); if( dimensions == 3 ) return resolveRealType< 3 >( parsedMeshType, parameters ); Loading src/Tools/tnl-init.cpp +1 −1 File changed.Contains only whitespace changes. Show changes Loading
src/Tools/tnl-init.h +47 −61 Original line number Diff line number Diff line Loading @@ -11,7 +11,6 @@ #pragma once #include <TNL/Config/ParameterContainer.h> #include <TNL/Containers/Vector.h> #include <TNL/Meshes/Grid.h> #include <TNL/Functions/TestFunction.h> #include <TNL/Operators/FiniteDifferences.h> Loading Loading @@ -136,28 +135,19 @@ template< typename MeshType, int xDiff, int yDiff, int zDiff > bool resolvCommunicator( const Config::ParameterContainer& parameters ) bool resolveCommunicator( const Config::ParameterContainer& parameters ) { #ifdef HAVE_MPI if( Communicators::MpiCommunicator::isDistributed() ) { Communicators::NoDistrCommunicator::Finalize(); bool ret=renderFunction<MeshType,RealType, Communicators::MpiCommunicator,xDiff,yDiff,zDiff>(parameters); return ret; } return renderFunction<MeshType,RealType, Communicators::MpiCommunicator,xDiff,yDiff,zDiff>(parameters); #endif bool ret=renderFunction<MeshType,RealType, Communicators::NoDistrCommunicator,xDiff,yDiff,zDiff>(parameters); Communicators::NoDistrCommunicator::Finalize(); return ret; return renderFunction<MeshType,RealType, Communicators::NoDistrCommunicator,xDiff,yDiff,zDiff>(parameters); } template< typename MeshType, typename RealType > bool resolveDerivatives( const Config::ParameterContainer& parameters ) { int xDiff = parameters.getParameter< int >( "x-derivative" ); int yDiff = parameters.getParameter< int >( "y-derivative" ); int zDiff = parameters.getParameter< int >( "z-derivative" ); Loading @@ -170,75 +160,75 @@ bool resolveDerivatives( const Config::ParameterContainer& parameters ) return false; } if( xDiff == 0 && yDiff == 0 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 0, 0, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 0, 0 >( parameters ); if( xDiff == 0 && yDiff == 0 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 0, 0, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 0, 1 >( parameters ); if( xDiff == 0 && yDiff == 0 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 0, 0, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 0, 2 >( parameters ); if( xDiff == 0 && yDiff == 0 && zDiff == 3 ) return resolvCommunicator< MeshType, RealType, 0, 0, 3 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 0, 3 >( parameters ); if( xDiff == 0 && yDiff == 0 && zDiff == 4 ) return resolvCommunicator< MeshType, RealType, 0, 0, 4 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 0, 4 >( parameters ); if( xDiff == 0 && yDiff == 1 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 0, 1, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 1, 0 >( parameters ); if( xDiff == 0 && yDiff == 1 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 0, 1, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 1, 1 >( parameters ); if( xDiff == 0 && yDiff == 1 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 0, 1, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 1, 2 >( parameters ); if( xDiff == 0 && yDiff == 1 && zDiff == 3 ) return resolvCommunicator< MeshType, RealType, 0, 1, 3 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 1, 3 >( parameters ); if( xDiff == 0 && yDiff == 2 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 0, 2, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 2, 0 >( parameters ); if( xDiff == 0 && yDiff == 2 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 0, 2, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 2, 1 >( parameters ); if( xDiff == 0 && yDiff == 2 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 0, 2, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 2, 2 >( parameters ); if( xDiff == 0 && yDiff == 3 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 0, 3, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 3, 0 >( parameters ); if( xDiff == 0 && yDiff == 3 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 0, 3, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 3, 1 >( parameters ); if( xDiff == 0 && yDiff == 4 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 0, 4, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 0, 4, 0 >( parameters ); if( xDiff == 1 && yDiff == 0 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 1, 0, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 0, 0 >( parameters ); if( xDiff == 1 && yDiff == 0 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 1, 0, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 0, 1 >( parameters ); if( xDiff == 1 && yDiff == 0 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 1, 0, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 0, 2 >( parameters ); if( xDiff == 1 && yDiff == 0 && zDiff == 3 ) return resolvCommunicator< MeshType, RealType, 1, 0, 3 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 0, 3 >( parameters ); if( xDiff == 1 && yDiff == 1 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 1, 1, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 1, 0 >( parameters ); if( xDiff == 1 && yDiff == 1 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 1, 1, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 1, 1 >( parameters ); if( xDiff == 1 && yDiff == 1 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 1, 1, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 1, 2 >( parameters ); if( xDiff == 1 && yDiff == 2 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 1, 2, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 2, 0 >( parameters ); if( xDiff == 1 && yDiff == 2 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 1, 2, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 2, 1 >( parameters ); if( xDiff == 1 && yDiff == 3 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 1, 3, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 1, 3, 0 >( parameters ); if( xDiff == 2 && yDiff == 0 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 2, 0, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 0, 0 >( parameters ); if( xDiff == 2 && yDiff == 0 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 2, 0, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 0, 1 >( parameters ); if( xDiff == 2 && yDiff == 0 && zDiff == 2 ) return resolvCommunicator< MeshType, RealType, 2, 0, 2 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 0, 2 >( parameters ); if( xDiff == 2 && yDiff == 1 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 2, 1, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 1, 0 >( parameters ); if( xDiff == 2 && yDiff == 1 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 2, 1, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 1, 1 >( parameters ); if( xDiff == 2 && yDiff == 2 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 2, 2, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 2, 2, 0 >( parameters ); if( xDiff == 3 && yDiff == 0 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 3, 0, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 3, 0, 0 >( parameters ); if( xDiff == 3 && yDiff == 0 && zDiff == 1 ) return resolvCommunicator< MeshType, RealType, 3, 0, 1 >( parameters ); return resolveCommunicator< MeshType, RealType, 3, 0, 1 >( parameters ); if( xDiff == 3 && yDiff == 1 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 3, 1, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 3, 1, 0 >( parameters ); if( xDiff == 4 && yDiff == 0 && zDiff == 0 ) return resolvCommunicator< MeshType, RealType, 4, 0, 0 >( parameters ); return resolveCommunicator< MeshType, RealType, 4, 0, 0 >( parameters ); return false; } Loading Loading @@ -277,9 +267,9 @@ bool resolveIndexType( const std::vector< String >& parsedMeshType, const Config::ParameterContainer& parameters ) { std::cout << "+ -> Setting index type to " << parsedMeshType[ 4 ] << " ... " << std::endl; if( parsedMeshType[ 4 ] == "int" ) return resolveMesh< Dimension, RealType, int >( parsedMeshType, parameters ); if( parsedMeshType[ 4 ] == "long int" ) return resolveMesh< Dimension, RealType, long int >( parsedMeshType, parameters ); Loading @@ -291,12 +281,11 @@ bool resolveRealType( const std::vector< String >& parsedMeshType, const Config::ParameterContainer& parameters ) { std::cout << "+ -> Setting real type to " << parsedMeshType[ 2 ] << " ... " << std::endl; if( parsedMeshType[ 2 ] == "float" ) return resolveIndexType< Dimension, float >( parsedMeshType, parameters ); if( parsedMeshType[ 2 ] == "double" ) return resolveIndexType< Dimension, double >( parsedMeshType, parameters ); if( parsedMeshType[ 2 ] == "long-double" ) return resolveIndexType< Dimension, long double >( parsedMeshType, parameters ); Loading @@ -311,11 +300,8 @@ bool resolveMeshType( const std::vector< String >& parsedMeshType, if( dimensions == 1 ) return resolveRealType< 1 >( parsedMeshType, parameters ); if( dimensions == 2 ) return resolveRealType< 2 >( parsedMeshType, parameters ); if( dimensions == 3 ) return resolveRealType< 3 >( parsedMeshType, parameters ); Loading