Loading src/solvers/tnlMeshTypeResolver.h +33 −3 Original line number Diff line number Diff line Loading @@ -58,18 +58,48 @@ class tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true static bool resolveMeshDimensions( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); template< int MeshDimensions > // Overload for disabled dimensions template< int MeshDimensions, typename = typename std::enable_if< ! tnlMeshConfigDimensions<MeshConfig,MeshDimensions>::enabled >::type, typename = void > static bool resolveMeshRealType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); // Overload for enabled dimensions template< int MeshDimensions, typename = typename std::enable_if< tnlMeshConfigDimensions<MeshConfig,MeshDimensions>::enabled >::type > static bool resolveMeshRealType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); // Overload for disabled real types template< int MeshDimensions, typename MeshRealType, typename = typename std::enable_if< ! tnlMeshConfigReal<MeshConfig, MeshRealType>::enabled >::type, typename = void > static bool resolveMeshIndexType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); // Overload for enabled real types template< int MeshDimensions, typename MeshRealType > typename MeshRealType, typename = typename std::enable_if< tnlMeshConfigReal<MeshConfig, MeshRealType>::enabled >::type > static bool resolveMeshIndexType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); // Overload for disabled index types template< int MeshDimensions, typename MeshRealType, typename MeshIndexType, typename = typename std::enable_if< ! tnlMeshConfigIndex<MeshConfig, MeshIndexType>::enabled >::type, typename = void > static bool resolveMeshType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); // Overload for enabled index types template< int MeshDimensions, typename MeshRealType, typename MeshIndexType > typename MeshIndexType, typename = typename std::enable_if< tnlMeshConfigIndex<MeshConfig, MeshIndexType>::enabled >::type > static bool resolveMeshType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); Loading src/solvers/tnlMeshTypeResolver_impl.h +52 −6 Original line number Diff line number Diff line Loading @@ -98,7 +98,20 @@ template< template< typename Real, typename Device, typename Index, typename Mes typename Device, typename Index, typename MeshConfig > template< int MeshDimensions > template< int MeshDimensions, typename, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshRealType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { cerr << "Mesh dimension " << MeshDimensions << " is not supported." << endl; return false; } template< template< typename Real, typename Device, typename Index, typename MeshType, typename MeshConfig, typename SolverStarter > class ProblemSetter, typename Real, typename Device, typename Index, typename MeshConfig > template< int MeshDimensions, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshRealType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { Loading @@ -118,8 +131,24 @@ template< template< typename Real, typename Device, typename Index, typename Mes typename Index, typename MeshConfig > template< int MeshDimensions, typename MeshRealType > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, 1 >::resolveMeshIndexType( const tnlParameterContainer& parameters, typename MeshRealType, typename, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshIndexType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { cerr << "The type '" << parsedMeshType[ 4 ] << "' is not allowed for real type." << endl; return false; } template< template< typename Real, typename Device, typename Index, typename MeshType, typename MeshConfig, typename SolverStarter > class ProblemSetter, typename Real, typename Device, typename Index, typename MeshConfig > template< int MeshDimensions, typename MeshRealType, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshIndexType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { if( parsedMeshType[ 4 ] == "short int" ) Loading @@ -139,7 +168,24 @@ template< template< typename Real, typename Device, typename Index, typename Mes typename MeshConfig > template< int MeshDimensions, typename MeshRealType, typename MeshIndexType > typename MeshIndexType, typename, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { cerr << "The type '" << parsedMeshType[ 4 ] << "' is not allowed for indexing type." << endl; return false; } template< template< typename Real, typename Device, typename Index, typename MeshType, typename MeshConfig, typename SolverStarter > class ProblemSetter, typename Real, typename Device, typename Index, typename MeshConfig > template< int MeshDimensions, typename MeshRealType, typename MeshIndexType, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { Loading Loading
src/solvers/tnlMeshTypeResolver.h +33 −3 Original line number Diff line number Diff line Loading @@ -58,18 +58,48 @@ class tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true static bool resolveMeshDimensions( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); template< int MeshDimensions > // Overload for disabled dimensions template< int MeshDimensions, typename = typename std::enable_if< ! tnlMeshConfigDimensions<MeshConfig,MeshDimensions>::enabled >::type, typename = void > static bool resolveMeshRealType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); // Overload for enabled dimensions template< int MeshDimensions, typename = typename std::enable_if< tnlMeshConfigDimensions<MeshConfig,MeshDimensions>::enabled >::type > static bool resolveMeshRealType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); // Overload for disabled real types template< int MeshDimensions, typename MeshRealType, typename = typename std::enable_if< ! tnlMeshConfigReal<MeshConfig, MeshRealType>::enabled >::type, typename = void > static bool resolveMeshIndexType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); // Overload for enabled real types template< int MeshDimensions, typename MeshRealType > typename MeshRealType, typename = typename std::enable_if< tnlMeshConfigReal<MeshConfig, MeshRealType>::enabled >::type > static bool resolveMeshIndexType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); // Overload for disabled index types template< int MeshDimensions, typename MeshRealType, typename MeshIndexType, typename = typename std::enable_if< ! tnlMeshConfigIndex<MeshConfig, MeshIndexType>::enabled >::type, typename = void > static bool resolveMeshType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); // Overload for enabled index types template< int MeshDimensions, typename MeshRealType, typename MeshIndexType > typename MeshIndexType, typename = typename std::enable_if< tnlMeshConfigIndex<MeshConfig, MeshIndexType>::enabled >::type > static bool resolveMeshType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ); Loading
src/solvers/tnlMeshTypeResolver_impl.h +52 −6 Original line number Diff line number Diff line Loading @@ -98,7 +98,20 @@ template< template< typename Real, typename Device, typename Index, typename Mes typename Device, typename Index, typename MeshConfig > template< int MeshDimensions > template< int MeshDimensions, typename, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshRealType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { cerr << "Mesh dimension " << MeshDimensions << " is not supported." << endl; return false; } template< template< typename Real, typename Device, typename Index, typename MeshType, typename MeshConfig, typename SolverStarter > class ProblemSetter, typename Real, typename Device, typename Index, typename MeshConfig > template< int MeshDimensions, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshRealType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { Loading @@ -118,8 +131,24 @@ template< template< typename Real, typename Device, typename Index, typename Mes typename Index, typename MeshConfig > template< int MeshDimensions, typename MeshRealType > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, 1 >::resolveMeshIndexType( const tnlParameterContainer& parameters, typename MeshRealType, typename, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshIndexType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { cerr << "The type '" << parsedMeshType[ 4 ] << "' is not allowed for real type." << endl; return false; } template< template< typename Real, typename Device, typename Index, typename MeshType, typename MeshConfig, typename SolverStarter > class ProblemSetter, typename Real, typename Device, typename Index, typename MeshConfig > template< int MeshDimensions, typename MeshRealType, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshIndexType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { if( parsedMeshType[ 4 ] == "short int" ) Loading @@ -139,7 +168,24 @@ template< template< typename Real, typename Device, typename Index, typename Mes typename MeshConfig > template< int MeshDimensions, typename MeshRealType, typename MeshIndexType > typename MeshIndexType, typename, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { cerr << "The type '" << parsedMeshType[ 4 ] << "' is not allowed for indexing type." << endl; return false; } template< template< typename Real, typename Device, typename Index, typename MeshType, typename MeshConfig, typename SolverStarter > class ProblemSetter, typename Real, typename Device, typename Index, typename MeshConfig > template< int MeshDimensions, typename MeshRealType, typename MeshIndexType, typename > bool tnlMeshTypeResolver< ProblemSetter, Real, Device, Index, MeshConfig, true >::resolveMeshType( const tnlParameterContainer& parameters, const tnlList< tnlString >& parsedMeshType ) { Loading