diff --git a/dune/gdt/assembler/local/codim0.hh b/dune/gdt/assembler/local/codim0.hh index 1fedf823b7e88d7f67b5bfae9433b1cb5d485c8f..6d421eb83049e6b1b76f5540363ac8c0a1e940d9 100644 --- a/dune/gdt/assembler/local/codim0.hh +++ b/dune/gdt/assembler/local/codim0.hh @@ -68,7 +68,8 @@ public: * type of systemMatrix * \tparam R RangeFieldType, i.e. double */ - template <class T, int Td, int Tr, int TrC, class A, int Ad, int Ar, int ArC, class EntityType, class M, class R> + template <class T, size_t Td, size_t Tr, size_t TrC, class A, size_t Ad, size_t Ar, size_t ArC, class EntityType, + class M, class R> void assembleLocal(const SpaceInterface<T, Td, Tr, TrC>& testSpace, const SpaceInterface<A, Ad, Ar, ArC>& ansatzSpace, const EntityType& entity, Dune::Stuff::LA::MatrixInterface<M, R>& systemMatrix, std::vector<std::vector<Dune::DynamicMatrix<R>>>& tmpLocalMatricesContainer, @@ -149,7 +150,7 @@ public: * type of systemVector * \tparam R RangeFieldType, i.e. double */ - template <class T, int d, int r, int rC, class EntityType, class V, class R> + template <class T, size_t d, size_t r, size_t rC, class EntityType, class V, class R> void assembleLocal(const SpaceInterface<T, d, r, rC>& testSpace, const EntityType& entity, Dune::Stuff::LA::VectorInterface<V, R>& systemVector, std::vector<std::vector<Dune::DynamicVector<R>>>& tmpLocalVectorContainer, diff --git a/dune/gdt/assembler/local/codim1.hh b/dune/gdt/assembler/local/codim1.hh index 99d35484e45a23e682873ecd2f6d8144e1a1cbd1..5c2358bafd3f85cd0e80dc0c15fbafdc0b57ce9c 100644 --- a/dune/gdt/assembler/local/codim1.hh +++ b/dune/gdt/assembler/local/codim1.hh @@ -52,9 +52,9 @@ public: return {numTmpObjectsRequired_, localOperator_.numTmpObjectsRequired()}; } - template <class TE, int TEd, int TEr, int TErC, class AE, int AEd, int AEr, int AErC, class TN, int TNd, int TNr, - int TNrC, class AN, int ANd, int ANr, int ANrC, class IntersectionType, class MEE, class MNN, class MEN, - class MNE, class R> + template <class TE, size_t TEd, size_t TEr, size_t TErC, class AE, size_t AEd, size_t AEr, size_t AErC, class TN, + size_t TNd, size_t TNr, size_t TNrC, class AN, size_t ANd, size_t ANr, size_t ANrC, class IntersectionType, + class MEE, class MNN, class MEN, class MNE, class R> void assembleLocal(const SpaceInterface<TE, TEd, TEr, TErC>& testSpaceEntity, const SpaceInterface<AE, AEd, AEr, AErC>& ansatzSpaceEntity, const SpaceInterface<TN, TNd, TNr, TNrC>& testSpaceNeighbor, @@ -150,8 +150,8 @@ public: } } // void assembleLocal(...) const - template <class T, int Td, int Tr, int TrC, class A, int Ad, int Ar, int ArC, class IntersectionType, class M, - class R> + template <class T, size_t Td, size_t Tr, size_t TrC, class A, size_t Ad, size_t Ar, size_t ArC, + class IntersectionType, class M, class R> void assembleLocal(const SpaceInterface<T, Td, Tr, TrC>& testSpace, const SpaceInterface<A, Ad, Ar, ArC>& ansatzSpace, const IntersectionType& intersection, Dune::Stuff::LA::MatrixInterface<M, R>& systemMatrix, std::vector<std::vector<Dune::DynamicMatrix<R>>>& tmpLocalMatricesContainer, @@ -204,8 +204,8 @@ public: return {numTmpObjectsRequired_, localOperator_.numTmpObjectsRequired()}; } - template <class T, int Td, int Tr, int TrC, class A, int Ad, int Ar, int ArC, class IntersectionType, class M, - class R> + template <class T, size_t Td, size_t Tr, size_t TrC, class A, size_t Ad, size_t Ar, size_t ArC, + class IntersectionType, class M, class R> void assembleLocal(const SpaceInterface<T, Td, Tr, TrC>& testSpace, const SpaceInterface<A, Ad, Ar, ArC>& ansatzSpace, const IntersectionType& intersection, Dune::Stuff::LA::MatrixInterface<M, R>& systemMatrix, std::vector<std::vector<Dune::DynamicMatrix<R>>>& tmpLocalMatricesContainer, @@ -284,7 +284,7 @@ public: return {numTmpObjectsRequired_, localFunctional_.numTmpObjectsRequired()}; } - template <class T, int d, int r, int rC, class IntersectionType, class V, class R> + template <class T, size_t d, size_t r, size_t rC, class IntersectionType, class V, class R> void assembleLocal(const SpaceInterface<T, d, r, rC>& testSpace, const IntersectionType& intersection, Dune::Stuff::LA::VectorInterface<V, R>& systemVector, std::vector<std::vector<Dune::DynamicVector<R>>>& tmpLocalVectorsContainer, diff --git a/dune/gdt/basefunctionset/default/fv.hh b/dune/gdt/basefunctionset/default/fv.hh index f234324eb80ef7ea5f2d1af8692fcde2d9692461..b19b3405c441342ce1aadb4a3d3f30af6cf5c479 100644 --- a/dune/gdt/basefunctionset/default/fv.hh +++ b/dune/gdt/basefunctionset/default/fv.hh @@ -19,7 +19,8 @@ namespace BaseFunctionSet { // forward, to be used in the traits and to allow for specialization -template <class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, size_t rangeDim, + size_t rangeDimCols = 1> class FiniteVolume { static_assert(Dune::AlwaysFalse<EntityImp>::value, "Untested for these dimensions!"); @@ -29,7 +30,8 @@ class FiniteVolume namespace internal { -template <class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim, int rangeDimCols> +template <class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, size_t rangeDim, + size_t rangeDimCols> class FiniteVolumeTraits { public: @@ -42,7 +44,7 @@ public: } // namespace internal -template <class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp> +template <class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp> class FiniteVolume<EntityImp, DomainFieldImp, domainDim, RangeFieldImp, 1, 1> : public BaseFunctionSetInterface<internal::FiniteVolumeTraits<EntityImp, DomainFieldImp, domainDim, RangeFieldImp, 1, 1>, @@ -110,7 +112,7 @@ private: }; // class FiniteVolume< ..., 1, 1 > -template <class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim> +template <class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, size_t rangeDim> class FiniteVolume<EntityImp, DomainFieldImp, domainDim, RangeFieldImp, rangeDim, 1> : public BaseFunctionSetInterface<internal::FiniteVolumeTraits<EntityImp, DomainFieldImp, domainDim, RangeFieldImp, rangeDim, 1>, diff --git a/dune/gdt/basefunctionset/fem-localfunctions.hh b/dune/gdt/basefunctionset/fem-localfunctions.hh index ebf2704a242e9e5663e673574ee01a2395db705c..7c2a2ce74c0e1ca034a4b191077adde36c571db8 100644 --- a/dune/gdt/basefunctionset/fem-localfunctions.hh +++ b/dune/gdt/basefunctionset/fem-localfunctions.hh @@ -18,8 +18,8 @@ namespace BaseFunctionSet { // forward, to be used in the traits and to allow for specialization -template <class BaseFunctionSetMapImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim, - int rangeDimCols = 1> +template <class BaseFunctionSetMapImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, size_t rangeDim, + size_t rangeDimCols = 1> class FemLocalfunctionsWrapper { static_assert(AlwaysFalse<BaseFunctionSetMapImp>::value, "Untested for these dimensions!"); @@ -29,8 +29,8 @@ class FemLocalfunctionsWrapper namespace internal { -template <class BaseFunctionSetMapImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim, - int rangeDimCols> +template <class BaseFunctionSetMapImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, size_t rangeDim, + size_t rangeDimCols> class FemLocalfunctionsWrapperTraits { public: @@ -44,7 +44,7 @@ public: } // namespace internal -template <class BaseFunctionSetMapImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim> +template <class BaseFunctionSetMapImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, size_t rangeDim> class FemLocalfunctionsWrapper<BaseFunctionSetMapImp, DomainFieldImp, domainDim, RangeFieldImp, rangeDim, 1> : public BaseFunctionSetInterface<internal::FemLocalfunctionsWrapperTraits<BaseFunctionSetMapImp, DomainFieldImp, domainDim, RangeFieldImp, rangeDim, 1>, diff --git a/dune/gdt/basefunctionset/fem.hh b/dune/gdt/basefunctionset/fem.hh index 113d3b7c64f78fcef5b5bf262075903f08d38cd3..66d3e5ec1ca5a547ee5c40c610683700095767f4 100644 --- a/dune/gdt/basefunctionset/fem.hh +++ b/dune/gdt/basefunctionset/fem.hh @@ -27,8 +27,8 @@ namespace BaseFunctionSet { // forward, to be used in the traits and to allow for specialization -template <class ShapeFunctionSetImp, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, - int rangeDim, int rangeDimCols = 1> +template <class ShapeFunctionSetImp, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, + size_t rangeDim, size_t rangeDimCols = 1> class FemWrapper { static_assert(Dune::AlwaysFalse<ShapeFunctionSetImp>::value, "Untested for these dimensions!"); @@ -38,8 +38,8 @@ class FemWrapper namespace internal { -template <class ShapeFunctionSetImp, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, - int rangeDim, int rangeDimCols> +template <class ShapeFunctionSetImp, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, + size_t rangeDim, size_t rangeDimCols> class FemWrapperTraits { public: @@ -53,8 +53,8 @@ public: } // namespace internal -template <class ShapeFunctionSetImp, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, - int rangeDim> +template <class ShapeFunctionSetImp, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, + size_t rangeDim> class FemWrapper<ShapeFunctionSetImp, EntityImp, DomainFieldImp, domainDim, RangeFieldImp, rangeDim, 1> : public BaseFunctionSetInterface<internal::FemWrapperTraits<ShapeFunctionSetImp, EntityImp, DomainFieldImp, domainDim, RangeFieldImp, rangeDim, 1>, @@ -127,8 +127,8 @@ private: #else // HAVE_DUNE_FEM -template <class ShapeFunctionSetImp, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, - int rangeDim, int rangeDimCols = 1> +template <class ShapeFunctionSetImp, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, + size_t rangeDim, size_t rangeDimCols = 1> class FemWrapper { static_assert(Dune::AlwaysFalse<ShapeFunctionSetImp>::value, "You are missing dune-fem!"); diff --git a/dune/gdt/basefunctionset/interface.hh b/dune/gdt/basefunctionset/interface.hh index a2c1c55ad53987f84dfb1991f2387656f15d836a..7fb8fff8ccf8fc56ce6b6ed954c0f4a732b3b7f6 100644 --- a/dune/gdt/basefunctionset/interface.hh +++ b/dune/gdt/basefunctionset/interface.hh @@ -21,7 +21,7 @@ namespace GDT { * * \see Stuff::LocalfunctionSetInterface for the template parameters D, d, R, r and rC. */ -template <class Traits, class D, int d, class R, int r, int rC = 1> +template <class Traits, class D, size_t d, class R, size_t r, size_t rC = 1> class BaseFunctionSetInterface : public Stuff::LocalfunctionSetInterface<typename Traits::EntityType, D, d, R, r, rC>, public Stuff::CRTPInterface<BaseFunctionSetInterface<Traits, D, d, R, r, rC>, Traits> { diff --git a/dune/gdt/basefunctionset/pdelab.hh b/dune/gdt/basefunctionset/pdelab.hh index 5a4008a65b2058d03bb419deda7f2546d3fa4ebf..c980b86d9bd896affc2e462afdc29fa208aa7243 100644 --- a/dune/gdt/basefunctionset/pdelab.hh +++ b/dune/gdt/basefunctionset/pdelab.hh @@ -25,16 +25,16 @@ namespace BaseFunctionSet { // forwards, to be used in the traits and to allow for specialization -template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim, - int rangeDimCols = 1> +template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, + size_t rangeDim, size_t rangeDimCols = 1> class PdelabWrapper { static_assert(Dune::AlwaysFalse<PdelabSpaceImp>::value, "Untested for arbitrary dimension!"); }; -template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim, - int rangeDimCols = 1> +template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, + size_t rangeDim, size_t rangeDimCols = 1> class PiolaTransformedPdelabWrapper { static_assert(Dune::AlwaysFalse<PdelabSpaceImp>::value, "Untested for these dimensions!"); @@ -45,13 +45,13 @@ namespace internal { // forward, to allow for specialization -template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim, - int rangeDimCols> +template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, + size_t rangeDim, size_t rangeDimCols> class PdelabWrapperTraits; //! Specialization for dimRange = 1, dimRangeRows = 1 -template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp> +template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp> class PdelabWrapperTraits<PdelabSpaceImp, EntityImp, DomainFieldImp, domainDim, RangeFieldImp, 1, 1> { public: @@ -70,7 +70,8 @@ private: }; -template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim> +template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, + size_t rangeDim> class PiolaTransformedPdelabWrapperTraits { static_assert(domainDim == rangeDim, "Untested!"); @@ -97,7 +98,7 @@ private: //! Specialization for dimRange = 1, dimRangeRows = 1 -template <class PdelabSpaceType, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp> +template <class PdelabSpaceType, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp> class PdelabWrapper<PdelabSpaceType, EntityImp, DomainFieldImp, domainDim, RangeFieldImp, 1, 1> : public BaseFunctionSetInterface<internal::PdelabWrapperTraits<PdelabSpaceType, EntityImp, DomainFieldImp, domainDim, RangeFieldImp, 1, 1>, @@ -181,8 +182,8 @@ private: }; // class PdelabWrapper -template <class PdelabSpaceType, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, - int rangeDim> +template <class PdelabSpaceType, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, + size_t rangeDim> class PiolaTransformedPdelabWrapper<PdelabSpaceType, EntityImp, DomainFieldImp, domainDim, RangeFieldImp, rangeDim, 1> : public BaseFunctionSetInterface<internal::PiolaTransformedPdelabWrapperTraits<PdelabSpaceType, EntityImp, DomainFieldImp, domainDim, @@ -302,16 +303,16 @@ private: #else // HAVE_DUNE_PDELAB -template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim, - int rangeDimCols = 1> +template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, + size_t rangeDim, size_t rangeDimCols = 1> class PdelabWrapper { static_assert(AlwaysFalse<PdelabSpaceImp>::value, "You are missing dune-pdelab!"); }; -template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, int domainDim, class RangeFieldImp, int rangeDim, - int rangeDimCols = 1> +template <class PdelabSpaceImp, class EntityImp, class DomainFieldImp, size_t domainDim, class RangeFieldImp, + size_t rangeDim, size_t rangeDimCols = 1> class PiolaTransformedPdelabWrapper { static_assert(AlwaysFalse<PdelabSpaceImp>::value, "You are missing dune-pdelab!"); diff --git a/dune/gdt/discretefunction/local.hh b/dune/gdt/discretefunction/local.hh index 69ff6e9da03521cbe8157a714fb89a5180200a44..e8f1ae116a119db73a5d902f1614ff348bdadbcf 100644 --- a/dune/gdt/discretefunction/local.hh +++ b/dune/gdt/discretefunction/local.hh @@ -148,12 +148,12 @@ public: typedef typename BaseType::EntityType EntityType; typedef typename BaseType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = BaseType::dimDomain; + static const size_t dimDomain = BaseType::dimDomain; typedef typename BaseType::DomainType DomainType; typedef typename BaseType::RangeFieldType RangeFieldType; - static const unsigned int dimRangeRows = BaseType::dimRangeCols; - static const unsigned int dimRangeCols = BaseType::dimRangeCols; + static const size_t dimRangeRows = BaseType::dimRangeCols; + static const size_t dimRangeCols = BaseType::dimRangeCols; typedef typename BaseType::RangeType RangeType; typedef typename BaseType::JacobianRangeType JacobianRangeType; @@ -246,12 +246,12 @@ public: typedef typename BaseType::EntityType EntityType; typedef typename BaseType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = BaseType::dimDomain; + static const size_t dimDomain = BaseType::dimDomain; typedef typename BaseType::DomainType DomainType; typedef typename BaseType::RangeFieldType RangeFieldType; - static const unsigned int dimRangeRows = BaseType::dimRangeCols; - static const unsigned int dimRangeCols = BaseType::dimRangeCols; + static const size_t dimRangeRows = BaseType::dimRangeCols; + static const size_t dimRangeCols = BaseType::dimRangeCols; typedef typename BaseType::RangeType RangeType; typedef typename BaseType::JacobianRangeType JacobianRangeType; diff --git a/dune/gdt/localevaluation/elliptic.hh b/dune/gdt/localevaluation/elliptic.hh index 5b561be5d7d7f68f0e14fcd01d48c77f704d901d..55e23dfdef13580d8f734d373a2ccaeb1d97cc9a 100644 --- a/dune/gdt/localevaluation/elliptic.hh +++ b/dune/gdt/localevaluation/elliptic.hh @@ -56,7 +56,7 @@ public: std::shared_ptr<typename DiffusionTensorType::LocalfunctionType>> LocalfunctionTupleType; typedef typename DiffusionFactorType::EntityType EntityType; typedef typename DiffusionFactorType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = DiffusionFactorType::dimDomain; + static const size_t dimDomain = DiffusionFactorType::dimDomain; }; // class EllipticTraits @@ -77,7 +77,7 @@ public: typedef typename DiffusionType::EntityType EntityType; typedef typename DiffusionType::DomainFieldType DomainFieldType; typedef std::tuple<std::shared_ptr<typename DiffusionType::LocalfunctionType>> LocalfunctionTupleType; - static const unsigned int dimDomain = DiffusionType::dimDomain; + static const size_t dimDomain = DiffusionType::dimDomain; }; // class EllipticTraits< ..., void > @@ -99,7 +99,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; Elliptic(const DiffusionFactorType& diffusion_factor, const DiffusionTensorType& diffusion_tensor) : diffusion_factor_(diffusion_factor) @@ -115,7 +115,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& local_functions_tuple, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -129,7 +129,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType& local_functions_tuple, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatzBase, @@ -141,7 +141,7 @@ public: } private: - template <class R, int rDF, int rCDF, int rDT, int rCDT, int rT, int rCT, int rA, int rCA> + template <class R, size_t rDF, size_t rCDF, size_t rDT, size_t rCDT, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order( const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDF, rCDF>& local_diffusion_factor, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDT, rCDT>& local_diffusion_tensor, @@ -153,7 +153,7 @@ private: + std::max(ssize_t(ansatzBase.order()) - 1, ssize_t(0)); } // ... order(...) - template <class R, int r> + template <class R, size_t r> void evaluate(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, 1, 1>& local_diffusion_factor, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, 1, 1>& local_diffusion_tensor, @@ -262,7 +262,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; explicit Elliptic(const DiffusionType& inducingFunction) : diffusion_(inducingFunction) @@ -280,7 +280,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -292,7 +292,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatzBase, @@ -308,7 +308,7 @@ public: /** * \return localFunction.order() + (testBase.order() - 1) + (ansatzBase.order() - 1) */ - template <class R, int rL, int rCL, int rT, int rCT, int rA, int rCA> + template <class R, size_t rL, size_t rCL, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rL, rCL>& localFunction, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -326,7 +326,7 @@ public: * \brief Computes an elliptic evaluation for a scalar local function and scalar or vector valued basefunctionsets. * \tparam R RangeFieldType */ - template <class R, int r> + template <class R, size_t r> void evaluate(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, 1, 1>& localFunction, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& ansatzBase, diff --git a/dune/gdt/localevaluation/interface.hh b/dune/gdt/localevaluation/interface.hh index 02a4bbb50938d26c186e1867fd4baadf4e42a85b..c29d96577ba608a59ee4ecc7a0304994bb63109e 100644 --- a/dune/gdt/localevaluation/interface.hh +++ b/dune/gdt/localevaluation/interface.hh @@ -25,7 +25,7 @@ namespace LocalEvaluation { * \tparam numArguments The number of local bases. * \note All evaluations have to be copyable! */ -template <class Traits, int numArguments> +template <class Traits, size_t numArguments> class Codim0Interface { static_assert(AlwaysFalse<Traits>::value, "There is no interface for this numArguments!"); @@ -43,7 +43,7 @@ public: typedef typename Traits::EntityType EntityType; typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; LocalfunctionTupleType localFunctions(const EntityType& entity) const { @@ -57,7 +57,7 @@ public: * \tparam r dimRange of the testBase * \tparam rC dimRangeRows of the testBase */ - template <class R, int r, int rC> + template <class R, size_t r, size_t rC> size_t order(const LocalfunctionTupleType& localFunctions_in, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& testBase) const { @@ -72,7 +72,7 @@ public: * \tparam rC dimRangeRows of the testBase * \attention ret is assumed to be zero! */ - template <class R, int r, int rC> + template <class R, size_t r, size_t rC> void evaluate(const LocalfunctionTupleType& localFunctions_in, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& testBase, const Dune::FieldVector<DomainFieldType, dimDomain>& localPoint, Dune::DynamicVector<R>& ret) const @@ -93,7 +93,7 @@ public: typedef typename Traits::EntityType EntityType; typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; LocalfunctionTupleType localFunctions(const EntityType& entity) const { @@ -107,7 +107,7 @@ public: * \tparam r{T,A} dimRange of the {testBase,ansatzBase} * \tparam rC{T,A} dimRangeRows of the {testBase,ansatzBase} */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& localFunctions, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -124,7 +124,7 @@ public: * \tparam rC{L,T,A} dimRangeRows of the {localFunction,testBase,ansatzBase} * \attention ret is assumed to be zero! */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType& localFunctions, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatzBase, @@ -140,7 +140,7 @@ public: * \tparam numArguments The number of local bases. * \note All evaluations have to be copyable! */ -template <class Traits, int numArguments> +template <class Traits, size_t numArguments> class Codim1Interface { static_assert(AlwaysFalse<Traits>::value, "There is no interface for this numArguments!"); @@ -158,7 +158,7 @@ public: typedef typename Traits::EntityType EntityType; typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; LocalfunctionTupleType localFunctions(const EntityType& entity) const { @@ -172,7 +172,7 @@ public: * \tparam r dimRange of the testBase * \tparam rC dimRangeRows of the testBase */ - template <class R, int r, int rC> + template <class R, size_t r, size_t rC> size_t order(const LocalfunctionTupleType& localFunctions, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& testBase) const { @@ -188,7 +188,7 @@ public: * \tparam rC dimRangeRows of the testBase * \attention ret is assumed to be zero! */ - template <class IntersectionType, class R, int r, int rC> + template <class IntersectionType, class R, size_t r, size_t rC> void evaluate(const LocalfunctionTupleType& localFunctions, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& testBase, const IntersectionType& intersection, @@ -210,7 +210,7 @@ public: typedef typename Traits::EntityType EntityType; typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; LocalfunctionTupleType localFunctions(const EntityType& entity) const { @@ -224,7 +224,7 @@ public: * \tparam r{T,A} dimRange of the {testBase,ansatzBase} * \tparam rC{T,A} dimRangeRows of the {testBase,ansatzBase} */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& localFunctions, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -242,7 +242,7 @@ public: * \tparam rC{T,A} dimRangeRows of the {testBase*,ansatzBase*} * \attention ret is assumed to be zero! */ - template <class IntersectionType, class R, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType& localFunctions, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatzBase, @@ -265,7 +265,7 @@ public: typedef typename Traits::EntityType EntityType; typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; LocalfunctionTupleType localFunctions(const EntityType& entity) const { @@ -279,7 +279,7 @@ public: * \tparam r{T,A} dimRange of the {testBase*,ansatzBase*} * \tparam rC{T,A} dimRangeRows of the {testBase*,ansatzBase*} */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType localFunctionsEntity, const LocalfunctionTupleType localFunctionsNeighbor, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBaseEntity, @@ -310,7 +310,7 @@ public: * \tparam rC{T,A} dimRangeRows of the {testBase*,ansatzBase*} * \attention entityEntityRet, entityEntityRet, entityEntityRet and neighborEntityRet are assumed to be zero! */ - template <class IntersectionType, class R, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate( const LocalfunctionTupleType& localFunctionsEntity, const LocalfunctionTupleType& localFunctionsNeighbor, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBaseEntity, diff --git a/dune/gdt/localevaluation/product.hh b/dune/gdt/localevaluation/product.hh index d3bb895f73cd4973973f11b8d5d696b270a75f78..04b9ea89092e33bdc2356f1b49b9ab36c1fb5294 100644 --- a/dune/gdt/localevaluation/product.hh +++ b/dune/gdt/localevaluation/product.hh @@ -44,7 +44,7 @@ public: typedef typename LocalizableFunctionType::DomainFieldType DomainFieldType; typedef typename LocalizableFunctionType::LocalfunctionType LocalfunctionType; typedef std::tuple<std::shared_ptr<LocalfunctionType>> LocalfunctionTupleType; - static const unsigned int dimDomain = LocalizableFunctionType::dimDomain; + static const size_t dimDomain = LocalizableFunctionType::dimDomain; }; // class ProductTraits @@ -66,7 +66,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; Product(const LocalizableFunctionType& inducingFunction) : inducingFunction_(inducingFunction) @@ -88,7 +88,7 @@ public: /** * \brief extracts the local function and calls the correct order() method */ - template <class R, int rT, int rCT> + template <class R, size_t rT, size_t rCT> size_t order(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase) const @@ -99,7 +99,7 @@ public: /** * \brief extracts the local function and calls the correct evaluate() method */ - template <class R, int rT, int rCT> + template <class R, size_t rT, size_t rCT> void evaluate(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, const Dune::FieldVector<DomainFieldType, dimDomain>& localPoint, Dune::DynamicVector<R>& ret) const @@ -114,7 +114,7 @@ public: /** * \brief extracts the local function and calls the correct evaluate() method */ - template <class IntersectionType, class R, int r, int rC> + template <class IntersectionType, class R, size_t r, size_t rC> void evaluate(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& testBase, const IntersectionType& intersection, @@ -130,7 +130,7 @@ public: /** * \brief extracts the local function and calls the correct evaluate() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatzBase, @@ -146,7 +146,7 @@ public: /** * \brief extracts the local function and calls the correct evaluate() method */ - template <class IntersectionType, class R, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType& localFunctions_in, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatzBase, @@ -163,7 +163,7 @@ public: /** * \brief extracts the local function and calls the correct order() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -180,7 +180,7 @@ public: * \note for `LocalEvaluation::Codim0Interface< ..., 1 >` * \return localFunction.order() + testBase.order() */ - template <class R, int rL, int rCL, int rT, int rCT> + template <class R, size_t rL, size_t rCL, size_t rT, size_t rCT> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rL, rCL>& localFunction, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase) const @@ -194,7 +194,7 @@ public: * - `LocalEvaluation::Codim1Interface< ..., 2 >` * \return localFunction.order() + testBase.order() + ansatzBase.order() */ - template <class R, int rL, int rCL, int rT, int rCT, int rA, int rCA> + template <class R, size_t rL, size_t rCL, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rL, rCL>& localFunction, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -231,7 +231,7 @@ public: * \brief Computes a product evaluation for a scalar local function and scalar or vector valued basefunctionsets. * \note for `LocalEvaluation::Codim0Interface< ..., 2 >` */ - template <class R, int r> + template <class R, size_t r> void evaluate(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, 1, 1>& localFunction, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& ansatzBase, @@ -281,7 +281,7 @@ public: * \brief Computes a product evaluation for a scalar local function and scalar or vector valued basefunctionsets. * \note for `LocalEvaluation::Codim1Interface< ..., 2 >` */ - template <class IntersectionType, class R, int r> + template <class IntersectionType, class R, size_t r> void evaluate(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, 1, 1>& localFunction, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& ansatzBase, diff --git a/dune/gdt/localevaluation/sipdg.hh b/dune/gdt/localevaluation/sipdg.hh index 120a4cddc6475d7c9216536427229a18225e2edc..09953846e9d49c4344cb622b2e52e4a3b5f24a8f 100644 --- a/dune/gdt/localevaluation/sipdg.hh +++ b/dune/gdt/localevaluation/sipdg.hh @@ -64,7 +64,7 @@ public: typedef typename LocalizableFunctionType::DomainFieldType DomainFieldType; typedef typename LocalizableFunctionType::LocalfunctionType LocalfunctionType; typedef std::tuple<std::shared_ptr<LocalfunctionType>> LocalfunctionTupleType; - static const unsigned int dimDomain = LocalizableFunctionType::dimDomain; + static const size_t dimDomain = LocalizableFunctionType::dimDomain; }; // class InnerTraits @@ -81,7 +81,7 @@ public: typedef typename LocalizableFunctionType::DomainFieldType DomainFieldType; typedef typename LocalizableFunctionType::LocalfunctionType LocalfunctionType; typedef std::tuple<std::shared_ptr<LocalfunctionType>> LocalfunctionTupleType; - static const unsigned int dimDomain = LocalizableFunctionType::dimDomain; + static const size_t dimDomain = LocalizableFunctionType::dimDomain; }; // class BoundaryLHSTraits @@ -111,7 +111,7 @@ public: LocalfunctionTupleType; typedef typename LocalizableDiffusionFunctionType::EntityType EntityType; typedef typename LocalizableDiffusionFunctionType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = LocalizableDiffusionFunctionType::dimDomain; + static const size_t dimDomain = LocalizableDiffusionFunctionType::dimDomain; }; // class BoundaryRHSTraits @@ -192,7 +192,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; Inner(const LocalizableFunctionType& inducingFunction, const double beta = internal::default_beta(dimDomain)) : inducingFunction_(inducingFunction) @@ -211,7 +211,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& localFunctionsEntity, const LocalfunctionTupleType& localFunctionsNeighbor, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBaseEntity, @@ -233,7 +233,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class IntersectionType, class R, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate( const LocalfunctionTupleType& localFunctionsEntity, const LocalfunctionTupleType& localFunctionsNeighbor, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBaseEntity, @@ -264,7 +264,7 @@ public: /// \name Actual implementation of order /// \{ - template <class R, int rL, int rCL, int rT, int rCT, int rA, int rCA> + template <class R, size_t rL, size_t rCL, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rL, rCL>& localFunctionEntity, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rL, rCL>& localFunctionNeighbor, @@ -421,7 +421,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; BoundaryLHS(const LocalizableFunctionType& inducingFunction, const double beta = internal::default_beta(dimDomain)) : inducingFunction_(inducingFunction) @@ -440,7 +440,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -452,7 +452,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class IntersectionType, class R, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatzBase, @@ -469,7 +469,7 @@ public: /** * \return localFunction.order() + testBase.order() + ansatzBase.order(); */ - template <class R, int rL, int rCL, int rT, int rCT, int rA, int rCA> + template <class R, size_t rL, size_t rCL, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rL, rCL>& localFunction, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -550,7 +550,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; BoundaryRHS(const LocalizableDiffusionFunctionType& diffusion, const LocalizableDirichletFunctionType& dirichlet, const double beta = internal::default_beta(dimDomain)) @@ -571,7 +571,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int r, int rC> + template <class R, size_t r, size_t rC> size_t order(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& testBase) const { @@ -583,7 +583,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class IntersectionType, class R, int r, int rC> + template <class IntersectionType, class R, size_t r, size_t rC> void evaluate(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& testBase, const IntersectionType& intersection, @@ -601,7 +601,7 @@ public: /** * \return std::max(testOrder + dirichletOrder, diffusionOrder + testGradientOrder + dirichletOrder); */ - template <class R, int rLF, int rCLF, int rLR, int rCLR, int rT, int rCT> + template <class R, size_t rLF, size_t rCLF, size_t rLR, size_t rCLR, size_t rT, size_t rCT> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLF, rCLF>& localDiffusion, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLR, rCLR>& localDirichlet, diff --git a/dune/gdt/localevaluation/swipdg.hh b/dune/gdt/localevaluation/swipdg.hh index 3d19b008d26837e59cb25e96ce9676bfa1677399..b257861b85897b51cd192c1935d7461cc46a13eb 100644 --- a/dune/gdt/localevaluation/swipdg.hh +++ b/dune/gdt/localevaluation/swipdg.hh @@ -82,7 +82,7 @@ public: std::shared_ptr<LocalDiffusionTensorFunctionType>> LocalfunctionTupleType; typedef typename LocalizableDiffusionFactorFunctionType::EntityType EntityType; typedef typename LocalizableDiffusionFactorFunctionType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; + static const size_t dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; }; // class InnerTraits @@ -99,7 +99,7 @@ public: typedef typename LocalizableFunctionType::DomainFieldType DomainFieldType; typedef typename LocalizableFunctionType::LocalfunctionType LocalfunctionType; typedef std::tuple<std::shared_ptr<LocalfunctionType>> LocalfunctionTupleType; - static const unsigned int dimDomain = LocalizableFunctionType::dimDomain; + static const size_t dimDomain = LocalizableFunctionType::dimDomain; }; // class InnerTraits< ..., void > @@ -127,7 +127,7 @@ public: std::shared_ptr<LocalDiffusionTensorFunctionType>> LocalfunctionTupleType; typedef typename LocalizableDiffusionFactorFunctionType::EntityType EntityType; typedef typename LocalizableDiffusionFactorFunctionType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; + static const size_t dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; }; // class InnerPenaltyTraits @@ -155,7 +155,7 @@ public: std::shared_ptr<LocalDiffusionTensorFunctionType>> LocalfunctionTupleType; typedef typename LocalizableDiffusionFactorFunctionType::EntityType EntityType; typedef typename LocalizableDiffusionFactorFunctionType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; + static const size_t dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; }; // class BoundaryLHSTraits @@ -183,7 +183,7 @@ public: std::shared_ptr<LocalDiffusionTensorFunctionType>> LocalfunctionTupleType; typedef typename LocalizableDiffusionFactorFunctionType::EntityType EntityType; typedef typename LocalizableDiffusionFactorFunctionType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; + static const size_t dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; }; // class BoundaryLHSPenaltyTraits @@ -200,7 +200,7 @@ public: typedef typename LocalizableFunctionType::DomainFieldType DomainFieldType; typedef typename LocalizableFunctionType::LocalfunctionType LocalfunctionType; typedef std::tuple<std::shared_ptr<LocalfunctionType>> LocalfunctionTupleType; - static const unsigned int dimDomain = LocalizableFunctionType::dimDomain; + static const size_t dimDomain = LocalizableFunctionType::dimDomain; }; // class BoundaryLHSTraits< ..., void > @@ -236,7 +236,7 @@ public: std::shared_ptr<LocalDirichletFunctionType>> LocalfunctionTupleType; typedef typename LocalizableDiffusionFactorFunctionType::EntityType EntityType; typedef typename LocalizableDiffusionFactorFunctionType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; + static const size_t dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; }; // class BoundaryRHSTraits @@ -266,7 +266,7 @@ public: LocalfunctionTupleType; typedef typename LocalizableDiffusionFunctionType::EntityType EntityType; typedef typename LocalizableDiffusionFunctionType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = LocalizableDiffusionFunctionType::dimDomain; + static const size_t dimDomain = LocalizableDiffusionFunctionType::dimDomain; }; // class BoundaryRHSTraits< ..., void > @@ -286,7 +286,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; Inner(const LocalizableFunctionType& inducingFunction, const double beta = SIPDG::internal::default_beta(LocalizableFunctionType::dimDomain)) @@ -306,7 +306,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& localFunctionsEntity, const LocalfunctionTupleType& localFunctionsNeighbor, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBaseEntity, @@ -328,7 +328,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class IntersectionType, class R, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate( const LocalfunctionTupleType& localFunctionsEntity, const LocalfunctionTupleType& localFunctionsNeighbor, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBaseEntity, @@ -359,7 +359,7 @@ public: /// \name Actual implementation of order /// \{ - template <class R, int rL, int rCL, int rT, int rCT, int rA, int rCA> + template <class R, size_t rL, size_t rCL, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rL, rCL>& localFunctionEntity, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rL, rCL>& localFunctionNeighbor, @@ -520,7 +520,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; BoundaryLHS(const LocalizableFunctionType& inducingFunction, const double beta = SIPDG::internal::default_beta(dimDomain)) @@ -540,7 +540,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -552,7 +552,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class IntersectionType, class R, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatzBase, @@ -569,7 +569,7 @@ public: /** * \return localFunction.order() + testBase.order() + ansatzBase.order() */ - template <class R, int rL, int rCL, int rT, int rCT, int rA, int rCA> + template <class R, size_t rL, size_t rCL, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rL, rCL>& localFunction, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -650,7 +650,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; BoundaryRHS(const LocalizableDiffusionFunctionType& diffusion, const LocalizableDirichletFunctionType& dirichlet, const double beta = SIPDG::internal::default_beta(dimDomain)) @@ -671,7 +671,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int r, int rC> + template <class R, size_t r, size_t rC> size_t order(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& testBase) const { @@ -683,7 +683,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class IntersectionType, class R, int r, int rC> + template <class IntersectionType, class R, size_t r, size_t rC> void evaluate(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& testBase, const IntersectionType& intersection, @@ -701,7 +701,7 @@ public: /** * \return std::max(testOrder + dirichletOrder, diffusionOrder + testGradientOrder + dirichletOrder); */ - template <class R, int rLF, int rCLF, int rLR, int rCLR, int rT, int rCT> + template <class R, size_t rLF, size_t rCLF, size_t rLR, size_t rCLR, size_t rT, size_t rCT> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLF, rCLF>& localDiffusion, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLR, rCLR>& localDirichlet, diff --git a/dune/gdt/localfunctional/codim0.hh b/dune/gdt/localfunctional/codim0.hh index b545d46c80669a66d105b38776bbc49bd546221e..20939b8db80d6d1661367e9e88ba8d670d399c16 100644 --- a/dune/gdt/localfunctional/codim0.hh +++ b/dune/gdt/localfunctional/codim0.hh @@ -92,7 +92,7 @@ public: * \tparam T Traits of the BaseFunctionSetInterface implementation, representing the type of the testBase * \attention ret is assumed to be zero! */ - template <class E, class D, int d, class R, int r, int rC> + template <class E, class D, size_t d, class R, size_t r, size_t rC> void apply(const Stuff::LocalfunctionSetInterface<E, D, d, R, r, rC>& testBase, Dune::DynamicVector<R>& ret, std::vector<Dune::DynamicVector<R>>& tmpLocalVectors) const { diff --git a/dune/gdt/localfunctional/codim1.hh b/dune/gdt/localfunctional/codim1.hh index 5a563ffd801a58d5c383d4a259a6b97d92fc87ec..53040300a14824103791f78f2cf6fb1e2d63a2e4 100644 --- a/dune/gdt/localfunctional/codim1.hh +++ b/dune/gdt/localfunctional/codim1.hh @@ -87,7 +87,7 @@ public: return numTmpObjectsRequired_; } - template <class E, class IntersectionType, class D, int d, class R, int r, int rC> + template <class E, class IntersectionType, class D, size_t d, class R, size_t r, size_t rC> void apply(const Stuff::LocalfunctionSetInterface<E, D, d, R, r, rC>& testBase, const IntersectionType& intersection, Dune::DynamicVector<R>& ret, std::vector<Dune::DynamicVector<R>>& tmpLocalVectors) const { diff --git a/dune/gdt/localfunctional/interface.hh b/dune/gdt/localfunctional/interface.hh index 4db9b6d5633952fd4680c570d39867591df8638e..182deb940736a9afc7a3e4f55526691b7e030f3b 100644 --- a/dune/gdt/localfunctional/interface.hh +++ b/dune/gdt/localfunctional/interface.hh @@ -40,7 +40,7 @@ public: * \tparam r dimRange * \tparam rC dimRangeCols */ - template <class T, class D, int d, class R, int r, int rC> + template <class T, class D, size_t d, class R, size_t r, size_t rC> void apply(const BaseFunctionSetInterface<T, D, d, R, r, rC>& testBase, Dune::DynamicVector<R>& ret, std::vector<Dune::DynamicVector<R>>& tmpLocalVectors) const { @@ -71,7 +71,7 @@ public: * \tparam r dimRange of the of the testBase * \tparam rC dimRangeCols of the testBase */ - template <class T, class IntersectionType, class D, int d, class R, int r, int rC> + template <class T, class IntersectionType, class D, size_t d, class R, size_t r, size_t rC> void apply(const BaseFunctionSetInterface<T, D, d, R, r, rC>& testBase, const IntersectionType& intersection, Dune::DynamicVector<R>& ret, std::vector<Dune::DynamicVector<R>>& tmpLocalVectors) const { diff --git a/dune/gdt/localoperator/codim0.hh b/dune/gdt/localoperator/codim0.hh index 868707fcaa7aff9d3bdd123d46f750d0ee011bd9..c79ba946c5eed96d6c23cd05d57586e09cdd3dee 100644 --- a/dune/gdt/localoperator/codim0.hh +++ b/dune/gdt/localoperator/codim0.hh @@ -87,7 +87,7 @@ public: return numTmpObjectsRequired_; } - template <class E, class D, int d, class R, int rT, int rCT, int rA, int rCA> + template <class E, class D, size_t d, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void apply(const Stuff::LocalfunctionSetInterface<E, D, d, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<E, D, d, R, rA, rCA>& ansatzBase, Dune::DynamicMatrix<R>& ret, std::vector<Dune::DynamicMatrix<R>>& tmpLocalMatrices) const diff --git a/dune/gdt/localoperator/codim1.hh b/dune/gdt/localoperator/codim1.hh index 8811ee25aa5dcfad7e8d09b6a4e17f4a7497b7bb..0e0cdc767f268ec0d6b8ea9401fd057708dda7e7 100644 --- a/dune/gdt/localoperator/codim1.hh +++ b/dune/gdt/localoperator/codim1.hh @@ -85,14 +85,14 @@ public: } template <class... Args> - explicit Codim1CouplingIntegral(const size_t over_integrate, Args&&... args) + explicit Codim1CouplingIntegral(const int over_integrate, Args&&... args) : evaluation_(std::forward<Args>(args)...) , over_integrate_(over_integrate) { } template <class... Args> - explicit Codim1CouplingIntegral(const int over_integrate, Args&&... args) + explicit Codim1CouplingIntegral(const size_t over_integrate, Args&&... args) : evaluation_(std::forward<Args>(args)...) , over_integrate_(boost::numeric_cast<size_t>(over_integrate)) { @@ -103,7 +103,8 @@ public: return numTmpObjectsRequired_; } - template <class E, class N, class IntersectionType, class D, int d, class R, int rT, int rCT, int rA, int rCA> + template <class E, class N, class IntersectionType, class D, size_t d, class R, size_t rT, size_t rCT, size_t rA, + size_t rCA> void apply(const Stuff::LocalfunctionSetInterface<E, D, d, R, rT, rCT>& entityTestBase, const Stuff::LocalfunctionSetInterface<E, D, d, R, rA, rCA>& entityAnsatzBase, const Stuff::LocalfunctionSetInterface<N, D, d, R, rT, rCT>& neighborTestBase, @@ -232,14 +233,14 @@ public: } template <class... Args> - Codim1BoundaryIntegral(const size_t over_integrate, Args&&... args) + Codim1BoundaryIntegral(const int over_integrate, Args&&... args) : evaluation_(std::forward<Args>(args)...) , over_integrate_(over_integrate) { } template <class... Args> - Codim1BoundaryIntegral(const int over_integrate, Args&&... args) + Codim1BoundaryIntegral(const size_t over_integrate, Args&&... args) : evaluation_(std::forward<Args>(args)...) , over_integrate_(boost::numeric_cast<size_t>(over_integrate)) { @@ -250,7 +251,7 @@ public: return numTmpObjectsRequired_; } - template <class E, class IntersectionType, class D, int d, class R, int rT, int rCT, int rA, int rCA> + template <class E, class IntersectionType, class D, size_t d, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void apply(const Stuff::LocalfunctionSetInterface<E, D, d, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<E, D, d, R, rA, rCA>& ansatzBase, const IntersectionType& intersection, Dune::DynamicMatrix<R>& ret, diff --git a/dune/gdt/localoperator/interface.hh b/dune/gdt/localoperator/interface.hh index 7c890f6a36859a3fbb459d0cd35cfb0dcc504c08..51e22e0f0c4a346e69cb881cd243f7c0485c48fe 100644 --- a/dune/gdt/localoperator/interface.hh +++ b/dune/gdt/localoperator/interface.hh @@ -41,7 +41,7 @@ public: * \tparam r{T,A} dimRange of the of the {testBase,ansatzBase} * \tparam rC{T,a} dimRangeCols of the {testBase,ansatzBase} */ - template <class T, class A, class D, int d, class R, int rT, int rCT, int rA, int rCA> + template <class T, class A, class D, size_t d, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void apply(const BaseFunctionSetInterface<T, D, d, R, rT, rCT>& testBase, const BaseFunctionSetInterface<A, D, d, R, rA, rCA>& ansatzBase, Dune::DynamicMatrix<R>& ret, std::vector<Dune::DynamicMatrix<R>>& tmpLocalMatrices) const @@ -76,8 +76,8 @@ public: * \tparam r{T,A} dimRange of the of the {testBase*,ansatzBase*} * \tparam rC{T,a} dimRangeCols of the {testBase*,ansatzBase*} */ - template <class TE, class AE, class TN, class AN, class IntersectionType, class D, int d, class R, int rT, int rCT, - int rA, int rCA> + template <class TE, class AE, class TN, class AN, class IntersectionType, class D, size_t d, class R, size_t rT, + size_t rCT, size_t rA, size_t rCA> void apply(const BaseFunctionSetInterface<TE, D, d, R, rT, rCT>& testBaseEntity, const BaseFunctionSetInterface<AE, D, d, R, rA, rCA>& ansatzBaseEntity, const BaseFunctionSetInterface<TN, D, d, R, rT, rCT>& testBaseNeighbor, @@ -123,7 +123,8 @@ public: * \tparam r{T,A} dimRange of the of the {testBase,ansatzBase} * \tparam rC{T,a} dimRangeCols of the {testBase,ansatzBase} */ - template <class T, class A, class IntersectionType, class D, int d, class R, int rT, int rCT, int rA, int rCA> + template <class T, class A, class IntersectionType, class D, size_t d, class R, size_t rT, size_t rCT, size_t rA, + size_t rCA> void apply(const BaseFunctionSetInterface<T, D, d, R, rT, rCT>& testBase, const BaseFunctionSetInterface<A, D, d, R, rA, rCA>& ansatzBase, const IntersectionType& intersection, Dune::DynamicMatrix<R>& ret, std::vector<Dune::DynamicMatrix<R>>& tmpLocalMatrices) const diff --git a/dune/gdt/mapper/default/fv.hh b/dune/gdt/mapper/default/fv.hh index 93fdb058fe57b17efc76a8d10bd4c6ca1204c158..2a587a9a3dccd63b62cb301414d5c25cd82aeae2 100644 --- a/dune/gdt/mapper/default/fv.hh +++ b/dune/gdt/mapper/default/fv.hh @@ -21,7 +21,7 @@ namespace Mapper { // forward -template <class GridViewImp, int rangeDim = 1, int rangeDimCols = 1> +template <class GridViewImp, size_t rangeDim = 1, size_t rangeDimCols = 1> class FiniteVolume { static_assert(AlwaysFalse<GridViewImp>::value, "Not available for these dimensions!"); @@ -31,7 +31,7 @@ class FiniteVolume namespace internal { -template <class GridViewImp, int rangeDim, int rangeDimCols> +template <class GridViewImp, size_t rangeDim, size_t rangeDimCols> class FiniteVolumeTraits { static_assert(rangeDim >= 1, "Really?"); @@ -104,12 +104,12 @@ private: }; // class FiniteVolume< ..., 1, 1 > -template <class GridViewImp, int rangeDim> +template <class GridViewImp, size_t rangeDim> class FiniteVolume<GridViewImp, rangeDim, 1> : public MapperInterface<internal::FiniteVolumeTraits<GridViewImp, rangeDim, 1>> { typedef MapperInterface<internal::FiniteVolumeTraits<GridViewImp, rangeDim, 1>> InterfaceType; - static const unsigned int dimRange = rangeDim; + static const size_t dimRange = rangeDim; public: typedef internal::FiniteVolumeTraits<GridViewImp, rangeDim, 1> Traits; diff --git a/dune/gdt/mapper/fem.hh b/dune/gdt/mapper/fem.hh index c6e34e1a5665186bed8167574f721e4bbc62be2d..48087814d16e69e1181a8408cc3dd093155761a7 100644 --- a/dune/gdt/mapper/fem.hh +++ b/dune/gdt/mapper/fem.hh @@ -99,9 +99,9 @@ private: { } - void operator()(int localDoF, int globalDoF) + void operator()(size_t localDoF, size_t globalDoF) { - assert(localDoF < int(globalIndices_.size())); + assert(localDoF < globalIndices_.size()); globalIndices_[localDoF] = globalDoF; } @@ -184,9 +184,9 @@ private: { } - void operator()(int localDoF, int globalDoF) + void operator()(size_t localDoF, size_t globalDoF) { - assert(localDoF < int(globalIndices_.size())); + assert(localDoF < globalIndices_.size()); globalIndices_[localDoF] = globalDoF; } diff --git a/dune/gdt/operators/darcy.hh b/dune/gdt/operators/darcy.hh index a4502223f03a3e666a7522f75f29442bc16ffcc3..ec17e7a87e65ed9b6fde5709efb0e35dd2dcd394 100644 --- a/dune/gdt/operators/darcy.hh +++ b/dune/gdt/operators/darcy.hh @@ -69,7 +69,7 @@ public: typedef typename Traits::FieldType FieldType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; Darcy(const GridViewType& grd_vw, const FunctionImp& function) : grid_view_(grd_vw) @@ -82,7 +82,7 @@ public: * \note See redirect_apply for the implementation (depending on the type of the range space). * \sa redirect_apply */ - template <class S, class V, int r, int rC> + template <class S, class V, size_t r, size_t rC> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, FieldType, r, rC>& source, DiscreteFunction<S, V>& range) const diff --git a/dune/gdt/operators/fluxreconstruction.hh b/dune/gdt/operators/fluxreconstruction.hh index b5c1349f14842b5e14c671e37ae0929b712166b6..fc3d8984c5908466f84d601372b374ac49eb14b5 100644 --- a/dune/gdt/operators/fluxreconstruction.hh +++ b/dune/gdt/operators/fluxreconstruction.hh @@ -45,7 +45,7 @@ class DiffusiveFluxReconstruction<GridViewType, LocalizableFunctionType, void> public: typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; typedef typename LocalizableFunctionType::RangeFieldType FieldType; typedef typename LocalizableFunctionType::DomainType DomainType; diff --git a/dune/gdt/operators/interfaces.hh b/dune/gdt/operators/interfaces.hh index f411b2abf46382ff83944de26869b7df9b8b30f0..493b3b6c10670cbf9661a5e96a42cf4ead6f6feb 100644 --- a/dune/gdt/operators/interfaces.hh +++ b/dune/gdt/operators/interfaces.hh @@ -74,7 +74,7 @@ class LocalizableOperatorInterface : public Stuff::CRTPInterface<LocalizableOper typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; private: static_assert(Stuff::is_localizable_function<SourceType>::value, diff --git a/dune/gdt/operators/oswaldinterpolation.hh b/dune/gdt/operators/oswaldinterpolation.hh index 6a8467f29572ed430105e28db9a6f34faf41a054..e1149f8db8065f347850991e5806d3ffefc99c88 100644 --- a/dune/gdt/operators/oswaldinterpolation.hh +++ b/dune/gdt/operators/oswaldinterpolation.hh @@ -56,7 +56,7 @@ public: typedef internal::OswaldInterpolationTraits<GridViewImp, FieldImp> Traits; typedef typename Traits::GridViewType GridViewType; typedef typename Traits::FieldType FieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; OswaldInterpolation(const GridViewType& grd_vw, const bool zero_boundary = true) : grid_view_(grd_vw) @@ -144,7 +144,8 @@ private: const auto& intersection = *intersectionIt; if (intersection.boundary() && !intersection.neighbor()) { const auto& intersection_geometry = intersection.geometry(); - for (int local_intersection_corner_id = 0; local_intersection_corner_id < intersection_geometry.corners(); + for (size_t local_intersection_corner_id = 0; + local_intersection_corner_id < intersection_geometry.corners(); ++local_intersection_corner_id) { const auto global_intersection_corner = intersection_geometry.corner(local_intersection_corner_id); // now, we need to find the entity's vertex this intersection's corner point equals to, so we diff --git a/dune/gdt/operators/projections.hh b/dune/gdt/operators/projections.hh index c1804b6e7082bcd530f020a260b8370631ff98bc..b0bff273a6d3915144cb954f057819ca5a69b18e 100644 --- a/dune/gdt/operators/projections.hh +++ b/dune/gdt/operators/projections.hh @@ -100,10 +100,10 @@ template <class GridViewImp, class SourceImp, class RangeImp, class FieldImp> class DirichletProjectionLocalizableTraits { typedef typename RangeImp::SpaceType::Traits T; - static const unsigned int d = RangeImp::dimDomain; + static const size_t d = RangeImp::dimDomain; typedef typename RangeImp::RangeFieldType R; - static const unsigned int r = RangeImp::dimRange; - static const unsigned int rC = RangeImp::dimRangeCols; + static const size_t r = RangeImp::dimRange; + static const size_t rC = RangeImp::dimRangeCols; static_assert(is_cg_space<typename RangeImp::SpaceType>::value, "The SpaceType of RangeImp has to be derived from Spaces::CGInterface!"); static_assert(r == 1, "Not implemeneted for higher dimensions!"); @@ -146,7 +146,7 @@ public: private: typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; typedef FieldVector<DomainFieldType, dimDomain> DomainType; public: @@ -155,14 +155,16 @@ public: { } - template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> + template <class E, class D, size_t d, class RS, size_t rS, size_t rCS, class GP, int p, class RR, size_t rR, + size_t rCR, class V> inline void apply(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, DiscreteFunction<Spaces::CG::PdelabBased<GP, p, RR, rR, rCR>, V>& range) const { apply_p(source, range); } - template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> + template <class E, class D, size_t d, class RS, size_t rS, size_t rCS, class GP, int p, class RR, size_t rR, + size_t rCR, class V> inline void apply(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, DiscreteFunction<Spaces::CG::FemBased<GP, p, RR, rR, rCR>, V>& range) const { @@ -170,7 +172,7 @@ public: } private: - template <class R, int r, class V, class SpaceType> + template <class R, size_t r, class V, class SpaceType> void apply_p(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& source, DiscreteFunction<SpaceType, V>& range) const { @@ -197,7 +199,7 @@ private: void apply_local(const LagrangePointsType& lagrange_points, const LocalSourceType& local_source, LocalRangeVectorType& local_range_DoF_vector) const { - static const unsigned int dimRange = LocalSourceType::dimRange; + static const size_t dimRange = LocalSourceType::dimRange; assert(lagrange_points.size() == local_range_DoF_vector.size()); size_t kk = 0; for (size_t ii = 0; ii < lagrange_points.size(); ++ii) { @@ -232,7 +234,7 @@ public: private: typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; public: L2Projection(const GridViewType& grid_view, const size_t over_integrate = 0) @@ -241,7 +243,7 @@ public: { } - template <class GP, int p, class R, int r, class V> + template <class GP, int p, class R, size_t r, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& source, DiscreteFunction<Spaces::DG::FemBased<GP, p, R, r, 1>, V>& range) const { @@ -253,7 +255,7 @@ public: #if HAVE_DUNE_GRID_MULTISCALE - template <class GP, int p, class R, int r, class V> + template <class GP, int p, class R, size_t r, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& source, DiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GP, p, R, r, 1>>, V>& range) const { @@ -265,7 +267,7 @@ public: #endif // HAVE_DUNE_GRID_MULTISCALE - template <class GP, int p, class R, int r, class V> + template <class GP, int p, class R, size_t r, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, 1>& source, DiscreteFunction<Spaces::DG::PdelabBased<GP, p, R, r, 1>, V>& range) const { @@ -275,7 +277,7 @@ public: apply_local_l2_projection_(source, range); } - template <class E, class D, int d, class R, int r, class GV, class V> + template <class E, class D, size_t d, class R, size_t r, class GV, class V> void apply(const Stuff::LocalizableFunctionInterface<E, D, d, R, r, 1>& source, DiscreteFunction<Spaces::FV::Default<GV, R, r, 1>, V>& range) const { @@ -430,7 +432,7 @@ public: private: typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; public: Projection(const GridViewType& grid_view, const size_t over_integrate = 0) @@ -446,7 +448,7 @@ public: } private: - template <class E, class D, int d, class R, int r, int rC, class T, class V> + template <class E, class D, size_t d, class R, size_t r, size_t rC, class T, class V> void redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, R, r, rC>& /*source*/, DiscreteFunction<SpaceInterface<T, d, r, rC>, V>& /*range*/) const { @@ -454,7 +456,8 @@ private: "Could not find an appropriate operator for this combination of source and range!"); } - template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> + template <class E, class D, size_t d, class RS, size_t rS, size_t rCS, class GP, int p, class RR, size_t rR, + size_t rCR, class V> inline void redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, DiscreteFunction<Spaces::CG::FemBased<GP, p, RR, rR, rCR>, V>& range) const @@ -462,7 +465,8 @@ private: lagrange_operator_.apply(source, range); } - template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> + template <class E, class D, size_t d, class RS, size_t rS, size_t rCS, class GP, int p, class RR, size_t rR, + size_t rCR, class V> inline void redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, DiscreteFunction<Spaces::CG::PdelabBased<GP, p, RR, rR, rCR>, V>& range) const @@ -470,7 +474,8 @@ private: lagrange_operator_.apply(source, range); } - template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> + template <class E, class D, size_t d, class RS, size_t rS, size_t rCS, class GP, int p, class RR, size_t rR, + size_t rCR, class V> inline void redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, DiscreteFunction<Spaces::DG::FemBased<GP, p, RR, rR, rCR>, V>& range) const @@ -480,7 +485,8 @@ private: #if HAVE_DUNE_GRID_MULTISCALE - template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> + template <class E, class D, size_t d, class RS, size_t rS, size_t rCS, class GP, int p, class RR, size_t rR, + size_t rCR, class V> inline void redirect_to_appropriate_operator( const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, DiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GP, p, RR, rR, rCR>>, V>& range) const @@ -490,7 +496,8 @@ private: #endif // HAVE_DUNE_GRID_MULTISCALE - template <class E, class D, int d, class RS, int rS, int rCS, class GP, int p, class RR, int rR, int rCR, class V> + template <class E, class D, size_t d, class RS, size_t rS, size_t rCS, class GP, int p, class RR, size_t rR, + size_t rCR, class V> inline void redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, DiscreteFunction<Spaces::DG::PdelabBased<GP, p, RR, rR, rCR>, V>& range) const @@ -498,7 +505,8 @@ private: l2_operator_.apply(source, range); } - template <class E, class D, int d, class RS, int rS, int rCS, class GV, class RR, int rR, int rCR, class V> + template <class E, class D, size_t d, class RS, size_t rS, size_t rCS, class GV, class RR, size_t rR, size_t rCR, + class V> inline void redirect_to_appropriate_operator(const Stuff::LocalizableFunctionInterface<E, D, d, RS, rS, rCS>& source, DiscreteFunction<Spaces::FV::Default<GV, RR, rR, rCR>, V>& range) const { @@ -603,7 +611,7 @@ public: typedef typename Traits::GridViewType GridViewType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; typedef Stuff::Grid::BoundaryInfoInterface<typename GridViewType::Intersection> BoundaryInfoType; public: @@ -613,7 +621,7 @@ public: { } - template <class R, int r, int rC, class GV, int p, class V> + template <class R, size_t r, size_t rC, class GV, int p, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& source, DiscreteFunction<Spaces::CG::FemBased<GV, p, R, r, rC>, V>& range) const { @@ -624,7 +632,7 @@ public: localizable_operator.apply(); } // ... apply(...) - template <class R, int r, int rC, class GV, int p, class V> + template <class R, size_t r, size_t rC, class GV, int p, class V> void apply(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& source, DiscreteFunction<Spaces::CG::PdelabBased<GV, p, R, r, rC>, V>& range) const { diff --git a/dune/gdt/operators/prolongations.hh b/dune/gdt/operators/prolongations.hh index 219508a1e8307ee70d69e253cd1020f00b7b3d8d..d42d6c2fe02814998c5b2d642e0142c701c23a61 100644 --- a/dune/gdt/operators/prolongations.hh +++ b/dune/gdt/operators/prolongations.hh @@ -36,7 +36,7 @@ namespace GDT { namespace Spaces { namespace DG { -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols> class FemBased; } template <class SpaceImp> @@ -52,7 +52,7 @@ namespace Operators { * local polynomial degree. * * \note We would have liked to do something like this and match on implementations of SpaceInterface:\code -template< class T, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR > +template< class T, class VS, class GPR, int pR, class RR, size_t rR, size_t rCR, class VR > void apply(const ConstDiscreteFunction< SpaceInterface< T >, VS >& source, DiscreteFunction< Spaces::DG::FemBased< GPR, pR, RR, rR, rCR >, VR >& range) const { @@ -69,7 +69,7 @@ class L2Prolongation { typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; public: L2Prolongation(const GridViewType& grid_view) @@ -80,15 +80,15 @@ public: // Source: Spaces::CG::FemBased // Range: Spaces::DG::FemBased - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> void apply(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, DiscreteFunction<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const { static_assert(Dune::AlwaysFalse<GPS>::value, "Not implemented for this combination of source and range!"); } - template <class GPS, int pS, class R, int r, int rC, class VS, class GPR, int pR, class VR> + template <class GPS, int pS, class R, size_t r, size_t rC, class VS, class GPR, int pR, class VR> inline void apply(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, R, r, rC>, VS>& source, DiscreteFunction<Spaces::DG::FemBased<GPR, pR, R, r, rC>, VR>& range) const { @@ -98,29 +98,29 @@ public: // Source: Spaces::DG::FemBased // Range: Spaces::DG::FemBased - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> void apply(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, DiscreteFunction<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const { static_assert(Dune::AlwaysFalse<GPS>::value, "Not implemented for this combination of source and range!"); } - template <class GPS, int pS, class R, int r, int rC, class VS, class GPR, int pR, class VR> + template <class GPS, int pS, class R, size_t r, size_t rC, class VS, class GPR, int pR, class VR> inline void apply(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, R, r, rC>, VS>& source, DiscreteFunction<Spaces::DG::FemBased<GPR, pR, R, r, rC>, VR>& range) const { prolong_onto_dg_fem_localfunctions_wrapper(source, range); } - template <class GPS, int pS, class R, int r, int rC, class VS, class GPR, int pR, class VR> + template <class GPS, int pS, class R, size_t r, size_t rC, class VS, class GPR, int pR, class VR> inline void apply(const ConstDiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPS, pS, R, r, rC>>, VS>& source, DiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPR, pR, R, r, rC>>, VR>& range) const { prolong_onto_dg_fem_localfunctions_wrapper(source, range); } - template <class GPS, int pS, class R, int r, int rC, class VS, class GPR, int pR, class VR> + template <class GPS, int pS, class R, size_t r, size_t rC, class VS, class GPR, int pR, class VR> inline void apply(const ConstDiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPS, pS, R, r, rC>>, VS>& source, DiscreteFunction<Spaces::DG::FemBased<GPR, pR, R, r, rC>, VR>& range) const { @@ -217,7 +217,7 @@ private: /** * \note We would have liked to do something like this and match on implementations of SpaceInterface:\code -template< class T, class VS, class GPR, int pR, class RR, int rR, int rCR, class VR > +template< class T, class VS, class GPR, int pR, class RR, size_t rR, size_t rCR, class VR > void apply(const ConstDiscreteFunction< SpaceInterface< T >, VS >& source, DiscreteFunction< Spaces::CG::FemBased< GPR, pR, RR, rR, rCR >, VR >& range) const { @@ -231,7 +231,7 @@ class LagrangeProlongation { public: typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; LagrangeProlongation(const GridViewType& grid_view) : grid_view_(grid_view) @@ -241,15 +241,15 @@ public: // Source: Spaces::CG::FemBased // Range: Spaces::CG::FemBased - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> void apply(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, DiscreteFunction<Spaces::CG::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const { static_assert(Dune::AlwaysFalse<GPS>::value, "Not implemented for this combination of source and range!"); } - template <class GPS, int pS, class R, int r, class VS, class GPR, int pR, class VR> + template <class GPS, int pS, class R, size_t r, class VS, class GPR, int pR, class VR> inline void apply(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, R, r, 1>, VS>& source, DiscreteFunction<Spaces::CG::FemBased<GPR, pR, R, r, 1>, VR>& range) const { @@ -259,15 +259,15 @@ public: // Source: Spaces::DG::FemBased // Range: Spaces::CG::FemBased - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> void apply(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, DiscreteFunction<Spaces::CG::FemBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const { static_assert(Dune::AlwaysFalse<GPS>::value, "Not implemented for this combination of source and range!"); } - template <class GPS, int pS, class R, int r, class VS, class GPR, int pR, class VR> + template <class GPS, int pS, class R, size_t r, class VS, class GPR, int pR, class VR> inline void apply(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, R, r, 1>, VS>& source, DiscreteFunction<Spaces::CG::FemBased<GPR, pR, R, r, 1>, VR>& range) const { @@ -277,15 +277,15 @@ public: // Source: Spaces::CG::PdelabBased // Range: Spaces::CG::PdelabBased - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> void apply(const ConstDiscreteFunction<Spaces::CG::PdelabBased<GPS, pS, RS, rS, rCS>, VS>& /*source*/, DiscreteFunction<Spaces::CG::PdelabBased<GPR, pR, RR, rR, rCR>, VR>& /*range*/) const { static_assert(Dune::AlwaysFalse<GPS>::value, "Not implemented for this combination of source and range!"); } - template <class GPS, int pS, class R, int r, int rC, class VS, class GPR, class VR> + template <class GPS, int pS, class R, size_t r, size_t rC, class VS, class GPR, class VR> inline void apply(const ConstDiscreteFunction<Spaces::CG::PdelabBased<GPS, pS, R, r, rC>, VS>& source, DiscreteFunction<Spaces::CG::PdelabBased<GPR, 1, R, r, rC>, VR>& range) const { @@ -329,7 +329,7 @@ private: void apply_local(const SourceType& source, const LagrangePointsType& lagrange_points, const EntityPointers& source_entity_ptr_unique_ptrs, LocalDoFVectorType& range_DoF_vector) const { - static const unsigned int dimRange = SourceType::dimRange; + static const size_t dimRange = SourceType::dimRange; size_t kk = 0; assert(source_entity_ptr_unique_ptrs.size() >= lagrange_points.size()); for (size_t ii = 0; ii < lagrange_points.size(); ++ii) { @@ -362,7 +362,7 @@ class Prolongation { public: typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; Prolongation(const GridViewType& grid_view) : l2_prolongation_operator_(grid_view) @@ -377,8 +377,8 @@ public: } private: - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> inline void redirect_to_appropriate_operator(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, DiscreteFunction<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const @@ -386,8 +386,8 @@ private: l2_prolongation_operator_.apply(source, range); } - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> inline void redirect_to_appropriate_operator(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, DiscreteFunction<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const @@ -395,8 +395,8 @@ private: l2_prolongation_operator_.apply(source, range); } - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> inline void redirect_to_appropriate_operator( const ConstDiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>>, VS>& source, DiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>>, VR>& range) const @@ -404,8 +404,8 @@ private: l2_prolongation_operator_.apply(source, range); } - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> inline void redirect_to_appropriate_operator( const ConstDiscreteFunction<Spaces::Block<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>>, VS>& source, DiscreteFunction<Spaces::DG::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const @@ -413,8 +413,8 @@ private: l2_prolongation_operator_.apply(source, range); } - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> inline void redirect_to_appropriate_operator(const ConstDiscreteFunction<Spaces::CG::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, DiscreteFunction<Spaces::CG::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const @@ -422,8 +422,8 @@ private: lagrange_prolongation_operator_.apply(source, range); } - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> inline void redirect_to_appropriate_operator(const ConstDiscreteFunction<Spaces::DG::FemBased<GPS, pS, RS, rS, rCS>, VS>& source, DiscreteFunction<Spaces::CG::FemBased<GPR, pR, RR, rR, rCR>, VR>& range) const @@ -431,8 +431,8 @@ private: lagrange_prolongation_operator_.apply(source, range); } - template <class GPS, int pS, class RS, int rS, int rCS, class VS, class GPR, int pR, class RR, int rR, int rCR, - class VR> + template <class GPS, int pS, class RS, size_t rS, size_t rCS, class VS, class GPR, int pR, class RR, size_t rR, + size_t rCR, class VR> inline void redirect_to_appropriate_operator( const ConstDiscreteFunction<Spaces::CG::PdelabBased<GPS, pS, RS, rS, rCS>, VS>& source, DiscreteFunction<Spaces::CG::PdelabBased<GPR, pR, RR, rR, rCR>, VR>& range) const diff --git a/dune/gdt/playground/localevaluation/ESV2007.hh b/dune/gdt/playground/localevaluation/ESV2007.hh index 6c4e7f417b7a3e900c87b361f88face7b768e5c9..b95755930a1096e75dc0e2d428dcc39616ada54a 100644 --- a/dune/gdt/playground/localevaluation/ESV2007.hh +++ b/dune/gdt/playground/localevaluation/ESV2007.hh @@ -67,7 +67,7 @@ public: std::shared_ptr<LocalDiffusiveFluxType>> LocalfunctionTupleType; typedef typename LocalizableDiffusionFactorType::EntityType EntityType; typedef typename LocalizableDiffusionFactorType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = LocalizableDiffusionFactorType::dimDomain; + static const size_t dimDomain = LocalizableDiffusionFactorType::dimDomain; }; // class DiffusiveFluxEstimateTraits @@ -94,7 +94,7 @@ public: LocalfunctionTupleType; typedef typename LocalizableDiffusionType::EntityType EntityType; typedef typename LocalizableDiffusionType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = LocalizableDiffusionType::dimDomain; + static const size_t dimDomain = LocalizableDiffusionType::dimDomain; }; // class DiffusiveFluxEstimateTraits @@ -112,7 +112,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; DiffusiveFluxEstimate(const LocalizableDiffusionType& diffusion, const LocalizableDiffusiveFluxType& diffusive_flux) : diffusion_(diffusion) @@ -125,7 +125,7 @@ public: return std::make_tuple(diffusion_.local_function(entity), diffusive_flux_.local_function(entity)); } - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -136,7 +136,7 @@ public: return redirect_order(*local_diffusion, *local_diffusive_flux, testBase, ansatzBase); } // ... order(...) - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& test_base, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatz_base, @@ -148,7 +148,7 @@ public: } // ... evaluate(...) private: - template <class R, int rLD, int rCLD, int rLDF, int rCLDF, int rT, int rCT, int rA, int rCA> + template <class R, size_t rLD, size_t rCLD, size_t rLDF, size_t rCLDF, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t redirect_order( const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLD, rCLD>& local_diffusion, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLDF, rCLDF>& local_diffusive_flux, @@ -163,7 +163,7 @@ private: local_diffusive_flux.order())); } // ... redirect_order(...) - template <class R, int rLD, int rCLD, int rLDF, int rCLDF, int rT, int rCT, int rA, int rCA> + template <class R, size_t rLD, size_t rCLD, size_t rLDF, size_t rCLDF, size_t rT, size_t rCT, size_t rA, size_t rCA> void redirect_evaluate( const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLD, rCLD>& /*local_diffusion*/, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLDF, @@ -236,7 +236,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; DiffusiveFluxEstimate(const LocalizableDiffusionFactorType& diffusion_factor, const LocalizableDiffusionTensorType& diffusion_tensor, @@ -254,7 +254,7 @@ public: diffusive_flux_.local_function(entity)); } - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -267,7 +267,7 @@ public: *local_diffusion_factor, *local_diffusion_tensor, *local_diffusive_flux, testBase, ansatzBase); } // ... order(...) - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& test_base, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatz_base, @@ -286,7 +286,8 @@ public: } // ... evaluate(...) private: - template <class R, int rLD, int rCLD, int rLDT, int rCLDT, int rLDF, int rCLDF, int rT, int rCT, int rA, int rCA> + template <class R, size_t rLD, size_t rCLD, size_t rLDT, size_t rCLDT, size_t rLDF, size_t rCLDF, size_t rT, + size_t rCT, size_t rA, size_t rCA> size_t redirect_order( const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLD, rCLD>& local_diffusion_factor, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLDT, rCLDT>& @@ -305,7 +306,8 @@ private: local_diffusive_flux.order())); } // ... redirect_order(...) - template <class R, int rLD, int rCLD, int rLDT, int rCLDT, int rLDF, int rCLDF, int rT, int rCT, int rA, int rCA> + template <class R, size_t rLD, size_t rCLD, size_t rLDT, size_t rCLDT, size_t rLDF, size_t rCLDF, size_t rT, + size_t rCT, size_t rA, size_t rCA> void redirect_evaluate( const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLD, rCLD>& /*local_diffusion_factor*/, diff --git a/dune/gdt/playground/localevaluation/OS2014.hh b/dune/gdt/playground/localevaluation/OS2014.hh index 94c407c89176b4cb3a8923a38c0abf39c11bfb44..ab0154d9dd52cdf5751f74ed58c7f362539d65e7 100644 --- a/dune/gdt/playground/localevaluation/OS2014.hh +++ b/dune/gdt/playground/localevaluation/OS2014.hh @@ -78,7 +78,7 @@ public: std::shared_ptr<LocalDiffusiveFluxFunctionType>> LocalfunctionTupleType; typedef typename LocalizableDiffusionFactorFunctionType::EntityType EntityType; typedef typename LocalizableDiffusionFactorFunctionType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; + static const size_t dimDomain = LocalizableDiffusionFactorFunctionType::dimDomain; }; // class DiffusiveFluxEstimateTraits @@ -102,7 +102,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; DiffusiveFluxEstimateStar(const LocalizableDiffusionFactorFunctionType& diffusion_factor, const LocalizableDiffusionFactorHatFunctionType& diffusion_factor_hat, @@ -123,7 +123,7 @@ public: diffusive_flux_.local_function(entity)); } - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -142,7 +142,8 @@ public: } // ... order(...) private: - template <class R, int rLD, int rCLD, int rLDT, int rCLDT, int rLDF, int rCLDF, int rT, int rCT, int rA, int rCA> + template <class R, size_t rLD, size_t rCLD, size_t rLDT, size_t rCLDT, size_t rLDF, size_t rCLDF, size_t rT, + size_t rCT, size_t rA, size_t rCA> size_t redirect_order( const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLD, rCLD>& local_diffusion_factor, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLD, rCLD>& @@ -165,7 +166,7 @@ private: } // ... redirect_order(...) public: - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& test_base, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatz_base, @@ -186,8 +187,8 @@ public: } // ... evaluate(...) private: - template <class R, int rLD, int rCLD, int rLDh, int rCLDh, int rLDT, int rCLDT, int rLDF, int rCLDF, int rT, int rCT, - int rA, int rCA> + template <class R, size_t rLD, size_t rCLD, size_t rLDh, size_t rCLDh, size_t rLDT, size_t rCLDT, size_t rLDF, + size_t rCLDF, size_t rT, size_t rCT, size_t rA, size_t rCA> void redirect_evaluate( const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rLD, rCLD>& /*local_diffusion_factor*/, diff --git a/dune/gdt/playground/localevaluation/swipdg.hh b/dune/gdt/playground/localevaluation/swipdg.hh index 1d518fe76981e9d1ba8f3aa048f67ca2bed2d932..8a0b0cea702eca0e6226a0ab7285400aacd75c89 100644 --- a/dune/gdt/playground/localevaluation/swipdg.hh +++ b/dune/gdt/playground/localevaluation/swipdg.hh @@ -29,7 +29,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; Inner(const LocalizableDiffusionFactorFunctionType& diffusion_factor, const LocalizableDiffusionTensorFunctionType& inducingFunction, @@ -48,7 +48,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& localFunctionsEntity, const LocalfunctionTupleType& localFunctionsNeighbor, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBaseEntity, @@ -74,7 +74,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class IntersectionType, class R, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate( const LocalfunctionTupleType& localFunctionsEntity, const LocalfunctionTupleType& localFunctionsNeighbor, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBaseEntity, @@ -105,7 +105,7 @@ public: neighborEntityRet); } - template <class R, int rDF, int rCDF, int rDT, int rCDT, int rT, int rCT, int rA, int rCA> + template <class R, size_t rDF, size_t rCDF, size_t rDT, size_t rCDT, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDF, rCDF>& localDiffusionFactorEntity, @@ -289,7 +289,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; InnerPenalty(const LocalizableDiffusionFactorFunctionType& diffusion_factor, const LocalizableDiffusionTensorFunctionType& inducingFunction, @@ -308,7 +308,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& localFunctionsEntity, const LocalfunctionTupleType& localFunctionsNeighbor, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBaseEntity, @@ -334,7 +334,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class IntersectionType, class R, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate( const LocalfunctionTupleType& localFunctionsEntity, const LocalfunctionTupleType& localFunctionsNeighbor, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBaseEntity, @@ -365,7 +365,7 @@ public: neighborEntityRet); } - template <class R, int rDF, int rCDF, int rDT, int rCDT, int rT, int rCT, int rA, int rCA> + template <class R, size_t rDF, size_t rCDF, size_t rDT, size_t rCDT, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDF, rCDF>& localDiffusionFactorEntity, @@ -512,7 +512,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; BoundaryLHS(const LocalizableDiffusionFactorFunctionType& diffusion_factor, const LocalizableDiffusionTensorFunctionType& diffusion_tensor, @@ -531,7 +531,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -545,7 +545,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class IntersectionType, class R, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatzBase, @@ -557,7 +557,7 @@ public: evaluate(*local_diffusion_factor, *local_diffusion_tensor, testBase, ansatzBase, intersection, localPoint, ret); } - template <class R, int rDF, int rCDF, int rDT, int rCDT, int rT, int rCT, int rA, int rCA> + template <class R, size_t rDF, size_t rCDF, size_t rDT, size_t rCDT, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDF, rCDF>& localDiffusionFactor, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDT, rCDT>& localDiffusionTensor, @@ -567,7 +567,8 @@ public: return localDiffusionFactor.order() + localDiffusionTensor.order() + testBase.order() + ansatzBase.order(); } // size_t order< ... >(...) - template <class IntersectionType, class R, int rDF, int rCDF, int rDT, int rCDT, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rDF, size_t rCDF, size_t rDT, size_t rCDT, size_t rT, size_t rCT, + size_t rA, size_t rCA> void evaluate(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDF, rCDF>& /*localDiffusionFactor*/, @@ -665,7 +666,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; BoundaryLHSPenalty(const LocalizableDiffusionFactorFunctionType& diffusion_factor, const LocalizableDiffusionTensorFunctionType& diffusion_tensor, @@ -684,7 +685,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int rT, int rCT, int rA, int rCA> + template <class R, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, @@ -698,7 +699,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class IntersectionType, class R, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rT, size_t rCT, size_t rA, size_t rCA> void evaluate(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rT, rCT>& testBase, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, rA, rCA>& ansatzBase, @@ -710,7 +711,7 @@ public: evaluate(*local_diffusion_factor, *local_diffusion_tensor, testBase, ansatzBase, intersection, localPoint, ret); } - template <class R, int rDF, int rCDF, int rDT, int rCDT, int rT, int rCT, int rA, int rCA> + template <class R, size_t rDF, size_t rCDF, size_t rDT, size_t rCDT, size_t rT, size_t rCT, size_t rA, size_t rCA> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDF, rCDF>& localDiffusionFactor, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDT, rCDT>& localDiffusionTensor, @@ -720,7 +721,8 @@ public: return localDiffusionFactor.order() + localDiffusionTensor.order() + testBase.order() + ansatzBase.order(); } // size_t order< ... >(...) - template <class IntersectionType, class R, int rDF, int rCDF, int rDT, int rCDT, int rT, int rCT, int rA, int rCA> + template <class IntersectionType, class R, size_t rDF, size_t rCDF, size_t rDT, size_t rCDT, size_t rT, size_t rCT, + size_t rA, size_t rCA> void evaluate(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDF, rCDF>& /*localDiffusionFactor*/, @@ -835,7 +837,7 @@ public: typedef typename Traits::LocalfunctionTupleType LocalfunctionTupleType; typedef typename Traits::EntityType EntityType; typedef typename Traits::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = Traits::dimDomain; + static const size_t dimDomain = Traits::dimDomain; BoundaryRHS(const LocalizableDiffusionFactorFunctionType& diffusion_factor, const LocalizableDiffusionTensorFunctionType& diffusion_tensor, @@ -858,7 +860,7 @@ public: /** * \brief extracts the local functions and calls the correct order() method */ - template <class R, int r, int rC> + template <class R, size_t r, size_t rC> size_t order(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& testBase) const { @@ -871,7 +873,7 @@ public: /** * \brief extracts the local functions and calls the correct evaluate() method */ - template <class IntersectionType, class R, int r, int rC> + template <class IntersectionType, class R, size_t r, size_t rC> void evaluate(const LocalfunctionTupleType& localFuncs, const Stuff::LocalfunctionSetInterface<EntityType, DomainFieldType, dimDomain, R, r, rC>& testBase, const IntersectionType& intersection, @@ -884,7 +886,7 @@ public: } private: - template <class R, int rDF, int rCDF, int rDT, int rCDT, int rLR, int rCLR, int rT, int rCT> + template <class R, size_t rDF, size_t rCDF, size_t rDT, size_t rCDT, size_t rLR, size_t rCLR, size_t rT, size_t rCT> size_t order(const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDF, rCDF>& localDiffusionFactor, const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDT, rCDT>& localDiffusionTensor, @@ -898,7 +900,8 @@ private: return std::max(testOrder + dirichletOrder, diffusionOrder + testGradientOrder + dirichletOrder); } // size_t order(...) - template <class IntersectionType, class R, int rDF, int rCDF, int rDT, int rCDT, int rLDR, int rCLDR, int rT, int rCT> + template <class IntersectionType, class R, size_t rDF, size_t rCDF, size_t rDT, size_t rCDT, size_t rLDR, + size_t rCLDR, size_t rT, size_t rCT> void evaluate( const Stuff::LocalfunctionInterface<EntityType, DomainFieldType, dimDomain, R, rDF, rCDF>& /*localDiffusionFactor*/, diff --git a/dune/gdt/playground/operators/fluxreconstruction.hh b/dune/gdt/playground/operators/fluxreconstruction.hh index 19c039cd60f169add80b9824128f09896bd509a7..02e6a8c8167c763c691887f2bb0595c86dbbd7a3 100644 --- a/dune/gdt/playground/operators/fluxreconstruction.hh +++ b/dune/gdt/playground/operators/fluxreconstruction.hh @@ -28,7 +28,7 @@ class DiffusiveFluxReconstruction public: typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; typedef typename DiffusionFactorType::RangeFieldType FieldType; typedef typename DiffusionFactorType::DomainType DomainType; diff --git a/dune/gdt/playground/spaces/block.hh b/dune/gdt/playground/spaces/block.hh index c6571ab14c76eee86fbc6ae45000e322c0253024..e13c3e68a6f51f58a5a902cef03d8ea89e22658b 100644 --- a/dune/gdt/playground/spaces/block.hh +++ b/dune/gdt/playground/spaces/block.hh @@ -147,7 +147,7 @@ public: DUNE_THROW(NotImplemented, "I am not sure yet how to implement this!"); } - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_pattern(const GridView<G>& /*local_grid_view*/, const SpaceInterface<S, d, r, rC>& /*ansatz_space*/) const { diff --git a/dune/gdt/playground/spaces/cg/fem-localfunctions.hh b/dune/gdt/playground/spaces/cg/fem-localfunctions.hh index 9d9261c0ee17f69e0a3d9205f774de35cb63fc68..b5b7a3e1b40121aad2bf67488353adf4f552c250 100644 --- a/dune/gdt/playground/spaces/cg/fem-localfunctions.hh +++ b/dune/gdt/playground/spaces/cg/fem-localfunctions.hh @@ -41,14 +41,14 @@ namespace CG { // forward, to be used in the traits and to allow for specialization -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class FemLocalfunctionsBased { static_assert(Dune::AlwaysFalse<GridPartImp>::value, "Untested for these dimensions!"); }; -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols> class FemLocalfunctionsBasedTraits { public: @@ -59,7 +59,7 @@ public: private: typedef typename GridPartType::ctype DomainFieldType; - static const unsigned int dimDomain = GridPartType::dimension; + static const size_t dimDomain = GridPartType::dimension; public: typedef RangeFieldImp RangeFieldType; @@ -95,7 +95,7 @@ public: typedef double CommunicatorType; private: - template <class G, int p, class R, int r, int rC> + template <class G, int p, class R, size_t r, size_t rC> friend class FemLocalfunctionsBased; }; // class FemLocalfunctionsBasedTraits @@ -116,7 +116,7 @@ public: typedef typename Traits::GridViewType GridViewType; static const int polOrder = Traits::polOrder; typedef typename GridPartType::ctype DomainFieldType; - static const unsigned int dimDomain = BaseType::dimension; + static const size_t dimDomain = BaseType::dimension; private: static_assert(GridPartType::dimension == dimDomain, "Dimension of GridPart has to match dimDomain"); @@ -124,8 +124,8 @@ private: public: typedef FieldVector<DomainFieldType, dimDomain> DomainType; typedef typename Traits::RangeFieldType RangeFieldType; - static const unsigned int dimRange = BaseType::dimRange; - static const unsigned int dimRangeCols = BaseType::dimRangeCols; + static const size_t dimRange = BaseType::dimRange; + static const size_t dimRangeCols = BaseType::dimRangeCols; typedef typename Traits::BackendType BackendType; typedef typename Traits::MapperType MapperType; @@ -225,7 +225,7 @@ private: #else // HAVE_DUNE_FEM_LOCALFUNCTIONS -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class FemLocalfunctionsBased { static_assert(Dune::AlwaysFalse<GridPartImp>::value, "You are missing dune-fem-localfunctions!"); diff --git a/dune/gdt/playground/spaces/continuouslagrange/fem-localfunctions.hh b/dune/gdt/playground/spaces/continuouslagrange/fem-localfunctions.hh index a2073fa87f838d8e48fad6d5e429170f17f36acd..f3ae26b46eff4097fda9ddea45f0798858f8db48 100644 --- a/dune/gdt/playground/spaces/continuouslagrange/fem-localfunctions.hh +++ b/dune/gdt/playground/spaces/continuouslagrange/fem-localfunctions.hh @@ -15,7 +15,7 @@ namespace Spaces { namespace ContinuousLagrange { -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class DUNE_DEPRECATED_MSG("Use CG::FemLocalfunctionsBased instead (21.11.2014)!") FemLocalfunctionsBased : public CG::FemLocalfunctionsBased<GridPartImp, polynomialOrder, RangeFieldImp, rangeDim, rangeDimCols> { diff --git a/dune/gdt/playground/spaces/dg/fem-localfunctions.hh b/dune/gdt/playground/spaces/dg/fem-localfunctions.hh index aee042a0bf2ba126f2564de30611b4ff5f4013d7..b3ab3da606ea86a1e8c4fc216e27454571fec5fb 100644 --- a/dune/gdt/playground/spaces/dg/fem-localfunctions.hh +++ b/dune/gdt/playground/spaces/dg/fem-localfunctions.hh @@ -39,7 +39,7 @@ namespace DG { // forward, to be used in the traits and to allow for specialization -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class FemLocalfunctionsBased { static_assert(rangeDim == 1 && rangeDimCols == 1, "Not yet implemented (find suitable vector valued basis)!"); @@ -47,7 +47,7 @@ class FemLocalfunctionsBased }; -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols> class FemLocalfunctionsBasedTraits { static_assert(polynomialOrder >= 1, "Wrong polOrder given!"); @@ -61,7 +61,7 @@ public: private: typedef typename GridPartType::ctype DomainFieldType; - static const unsigned int dimDomain = GridPartType::dimension; + static const size_t dimDomain = GridPartType::dimension; typedef typename GridPartType::GridType GridType; static_assert(dimDomain == 1 || Dune::Capabilities::hasSingleGeometryType<GridType>::v, "This space is only implemented for fully simplicial grids!"); @@ -93,7 +93,7 @@ public: typedef double CommunicatorType; private: - template <class G, int p, class R, int r, int rC> + template <class G, int p, class R, size_t r, size_t rC> friend class FemLocalfunctionsBased; }; // class FemLocalfunctionsBasedTraits @@ -113,16 +113,16 @@ public: typedef typename Traits::GridPartType GridPartType; typedef typename Traits::GridViewType GridViewType; typedef typename GridPartType::ctype DomainFieldType; - static const int polOrder = Traits::polOrder; - static const unsigned int dimDomain = BaseType::dimDomain; + static const int polOrder = Traits::polOrder; + static const size_t dimDomain = BaseType::dimDomain; private: static_assert(GridPartType::dimension == dimDomain, "Dimension of GridPart has to match dimDomain"); public: typedef typename Traits::RangeFieldType RangeFieldType; - static const unsigned int dimRange = BaseType::dimRange; - static const unsigned int dimRangeCols = BaseType::dimRangeCols; + static const size_t dimRange = BaseType::dimRange; + static const size_t dimRangeCols = BaseType::dimRangeCols; typedef typename Traits::BackendType BackendType; typedef typename Traits::MapperType MapperType; @@ -216,7 +216,7 @@ private: #else // HAVE_DUNE_FEM_LOCALFUNCTIONS -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class FemLocalfunctionsBased { static_assert(Dune::AlwaysFalse<GridPartImp>::value, "You are missing dune-fem-localfunctions!"); diff --git a/dune/gdt/playground/spaces/dg/fem.hh b/dune/gdt/playground/spaces/dg/fem.hh index d4b63d80bae6d81c0b33cbd1f05ef1543a2f2756..d03194b61aa4809eff3cea3a85a456fbef9f1cde 100644 --- a/dune/gdt/playground/spaces/dg/fem.hh +++ b/dune/gdt/playground/spaces/dg/fem.hh @@ -33,14 +33,14 @@ namespace DG { // forward, to be used in the traits and to allow for specialization -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class FemBased { static_assert(Dune::AlwaysFalse<GridPartImp>::value, "Untested for these dimensions!"); }; -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols> class FemBasedTraits { public: @@ -52,7 +52,7 @@ public: private: typedef typename GridPartType::ctype DomainFieldType; - static const unsigned int dimDomain = GridPartType::dimension; + static const size_t dimDomain = GridPartType::dimension; public: typedef RangeFieldImp RangeFieldType; @@ -86,10 +86,10 @@ class FemBased<GridPartImp, polynomialOrder, RangeFieldImp, 1, 1> public: typedef FemBasedTraits<GridPartImp, polynomialOrder, RangeFieldImp, 1, 1> Traits; - static const int polOrder = Traits::polOrder; - static const unsigned int dimDomain = BaseType::dimDomain; - static const unsigned int dimRange = BaseType::dimRange; - static const unsigned int dimRangeCols = BaseType::dimRangeCols; + static const int polOrder = Traits::polOrder; + static const size_t dimDomain = BaseType::dimDomain; + static const size_t dimRange = BaseType::dimRange; + static const size_t dimRangeCols = BaseType::dimRangeCols; typedef typename Traits::GridPartType GridPartType; typedef typename Traits::GridViewType GridViewType; @@ -123,7 +123,7 @@ public: using BaseType::compute_pattern; - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_pattern(const GridView<G>& local_grid_view, const SpaceInterface<S, d, r, rC>& ansatz_space) const { return BaseType::compute_face_and_volume_pattern(local_grid_view, ansatz_space); @@ -172,7 +172,7 @@ private: #else // HAVE_DUNE_FEM -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class FemBased { static_assert(Dune::AlwaysFalse<GridPartImp>::value, "You are missing dune-fem!"); diff --git a/dune/gdt/playground/spaces/dg/pdelab.hh b/dune/gdt/playground/spaces/dg/pdelab.hh index 6940155bad78946e4773b72e48dd5960dcc3fb0e..90c9ba971021a2b412ad775d827ed32f099ec890 100644 --- a/dune/gdt/playground/spaces/dg/pdelab.hh +++ b/dune/gdt/playground/spaces/dg/pdelab.hh @@ -38,14 +38,14 @@ namespace DG { // forward, to be used in the traits and to allow for specialization -template <class GridViewImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridViewImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class PdelabBased { static_assert(Dune::AlwaysFalse<GridViewImp>::value, "Untested for this combination of dimensions!"); }; // class PdelabBased -template <class GridViewImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridViewImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class PdelabBasedTraits { public: @@ -55,7 +55,7 @@ public: private: typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; public: typedef RangeFieldImp RangeFieldType; @@ -114,10 +114,10 @@ class PdelabBased<GridViewImp, polynomialOrder, RangeFieldImp, 1, 1> public: typedef PdelabBasedTraits<GridViewImp, polynomialOrder, RangeFieldImp, 1, 1> Traits; - static const int polOrder = Traits::polOrder; - static const unsigned int dimDomain = BaseType::dimDomain; - static const unsigned int dimRange = BaseType::dimRange; - static const unsigned int dimRangeCols = BaseType::dimRangeCols; + static const int polOrder = Traits::polOrder; + static const size_t dimDomain = BaseType::dimDomain; + static const size_t dimRange = BaseType::dimRange; + static const size_t dimRangeCols = BaseType::dimRangeCols; typedef typename Traits::GridViewType GridViewType; typedef typename Traits::RangeFieldType RangeFieldType; @@ -186,7 +186,7 @@ public: using BaseType::compute_pattern; - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_pattern(const GridView<G>& local_grid_view, const SpaceInterface<S, d, r, rC>& ansatz_space) const { return BaseType::compute_face_and_volume_pattern(local_grid_view, ansatz_space); @@ -234,7 +234,7 @@ private: #else // HAVE_DUNE_PDELAB -template <class GridViewImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridViewImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class PdelabBased { static_assert(Dune::AlwaysFalse<GridViewImp>::value, "You are missing dune-pdelab!"); diff --git a/dune/gdt/playground/spaces/discontinuouslagrange/fem-localfunctions.hh b/dune/gdt/playground/spaces/discontinuouslagrange/fem-localfunctions.hh index 477b9b232f3289f6a92537e381d68c970184885a..e8028c3ed64fe662f25f150d0bf88e97b65fb7a8 100644 --- a/dune/gdt/playground/spaces/discontinuouslagrange/fem-localfunctions.hh +++ b/dune/gdt/playground/spaces/discontinuouslagrange/fem-localfunctions.hh @@ -15,7 +15,7 @@ namespace Spaces { namespace DiscontinuousLagrange { -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class DUNE_DEPRECATED_MSG("Use DG::FemLocalfunctionsBased instead (21.11.2014)!") FemLocalfunctionsBased : public DG::FemLocalfunctionsBased<GridPartImp, polynomialOrder, RangeFieldImp, rangeDim, rangeDimCols> { diff --git a/dune/gdt/playground/spaces/discontinuouslagrange/fem.hh b/dune/gdt/playground/spaces/discontinuouslagrange/fem.hh index 6b1cc1e4a1e6ab34a4bdaf776896dcf273da71d2..098f3dbc81b607b43bfc95b906d588634872bcd7 100644 --- a/dune/gdt/playground/spaces/discontinuouslagrange/fem.hh +++ b/dune/gdt/playground/spaces/discontinuouslagrange/fem.hh @@ -15,7 +15,7 @@ namespace Spaces { namespace DiscontinuousLagrange { -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class DUNE_DEPRECATED_MSG("Use DG::FemBased instead (21.11.2014)!") FemBased : public DG::FemBased<GridPartImp, polynomialOrder, RangeFieldImp, rangeDim, rangeDimCols> { diff --git a/dune/gdt/playground/spaces/discontinuouslagrange/pdelab.hh b/dune/gdt/playground/spaces/discontinuouslagrange/pdelab.hh index dd33af6b0bc08b8700dd251b70660568cfa04d50..85407c0c6c1772c3547546520f9a29515ee81fe3 100644 --- a/dune/gdt/playground/spaces/discontinuouslagrange/pdelab.hh +++ b/dune/gdt/playground/spaces/discontinuouslagrange/pdelab.hh @@ -15,7 +15,7 @@ namespace Spaces { namespace DiscontinuousLagrange { -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class DUNE_DEPRECATED_MSG("Use DG::PdelabBased instead (21.11.2014)!") PdelabBased : public DG::PdelabBased<GridPartImp, polynomialOrder, RangeFieldImp, rangeDim, rangeDimCols> { diff --git a/dune/gdt/playground/spaces/finitevolume/default.hh b/dune/gdt/playground/spaces/finitevolume/default.hh index 9859517664090927a25b19d454f14807dbb7c864..f7f1485b36fb099f2c18e629b8fcbd484e91ea61 100644 --- a/dune/gdt/playground/spaces/finitevolume/default.hh +++ b/dune/gdt/playground/spaces/finitevolume/default.hh @@ -15,7 +15,7 @@ namespace Spaces { namespace FiniteVolume { -template <class GridViewImp, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridViewImp, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class DUNE_DEPRECATED_MSG("Use FV::Default instead (19.11.2014)!") Default : public FV::Default<GridViewImp, RangeFieldImp, rangeDim, rangeDimCols> { diff --git a/dune/gdt/playground/spaces/raviartthomas/fem-localfunctions.hh b/dune/gdt/playground/spaces/raviartthomas/fem-localfunctions.hh index 6f880da8ff3193a90c31e5635b266646bd0c1a31..fe62673374b05d0ca7a3108350d32e5bd6a17cf0 100644 --- a/dune/gdt/playground/spaces/raviartthomas/fem-localfunctions.hh +++ b/dune/gdt/playground/spaces/raviartthomas/fem-localfunctions.hh @@ -15,7 +15,7 @@ namespace Spaces { namespace RaviartThomas { -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class DUNE_DEPRECATED_MSG("Use RT::FemLocalfunctionsBased instead (21.11.2014)!") FemLocalfunctionsBased : public RT::FemLocalfunctionsBased<GridPartImp, polynomialOrder, RangeFieldImp, rangeDim, rangeDimCols> { diff --git a/dune/gdt/playground/spaces/raviartthomas/pdelab.hh b/dune/gdt/playground/spaces/raviartthomas/pdelab.hh index b3c4ed45711a4ab4669325dd12445147e2ffcf2e..5e156fccc165c2e20153805f7f01c5766874c695 100644 --- a/dune/gdt/playground/spaces/raviartthomas/pdelab.hh +++ b/dune/gdt/playground/spaces/raviartthomas/pdelab.hh @@ -15,7 +15,7 @@ namespace Spaces { namespace RaviartThomas { -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class DUNE_DEPRECATED_MSG("Use RT::PdelabBased instead (21.11.2014)!") PdelabBased : public RT::PdelabBased<GridPartImp, polynomialOrder, RangeFieldImp, rangeDim, rangeDimCols> { diff --git a/dune/gdt/playground/spaces/rt/fem-localfunctions.hh b/dune/gdt/playground/spaces/rt/fem-localfunctions.hh index 7eafa1d04907e8a6fdc06aef20263bbe2d301279..bc91d169289f1a6f969f75f14626de344b0678f6 100644 --- a/dune/gdt/playground/spaces/rt/fem-localfunctions.hh +++ b/dune/gdt/playground/spaces/rt/fem-localfunctions.hh @@ -39,7 +39,7 @@ namespace RT { // forward, to be used in the traits and to allow for specialization -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class FemLocalfunctionsBased { static_assert(Dune::AlwaysFalse<GridPartImp>::value, "Untested for these dimensions!"); @@ -47,7 +47,7 @@ class FemLocalfunctionsBased // forward, to allow for specialization -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols> class FemLocalfunctionsBasedTraits { static_assert(Dune::AlwaysFalse<GridPartImp>::value, "Untested for these dimensions!"); @@ -67,12 +67,12 @@ public: private: typedef typename GridPartType::ctype DomainFieldType; - static const unsigned int dimDomain = GridPartType::dimension; + static const size_t dimDomain = GridPartType::dimension; public: typedef RangeFieldImp RangeFieldType; - static const unsigned int dimRange = 2; - static const unsigned int dimRangeCols = 1; + static const size_t dimRange = 2; + static const size_t dimRangeCols = 1; typedef FemLocalfunctionsBased<GridPartType, polOrder, RangeFieldType, dimRange, dimRangeCols> derived_type; private: @@ -98,7 +98,7 @@ public: static const bool needs_grid_view = false; private: - template <class G, int p, class R, int r, int rC> + template <class G, int p, class R, size_t r, size_t rC> friend class FemLocalfunctionsBased; }; // class FemLocalfunctionsBasedTraits< ..., 2, 1 > @@ -118,11 +118,11 @@ public: typedef typename Traits::GridPartType GridPartType; typedef typename Traits::GridViewType GridViewType; typedef typename GridPartType::ctype DomainFieldType; - static const int polOrder = Traits::polOrder; - static const unsigned int dimDomain = GridPartType::dimension; + static const int polOrder = Traits::polOrder; + static const size_t dimDomain = GridPartType::dimension; typedef typename Traits::RangeFieldType RangeFieldType; - static const unsigned int dimRange = Traits::dimRange; - static const unsigned int dimRangeCols = Traits::dimRangeCols; + static const size_t dimRange = Traits::dimRange; + static const size_t dimRangeCols = Traits::dimRangeCols; typedef typename Traits::BackendType BackendType; typedef typename Traits::MapperType MapperType; @@ -196,7 +196,7 @@ public: using BaseType::compute_pattern; - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_pattern(const GridView<G>& local_grid_view, const SpaceInterface<S, d, r, rC>& ansatz_space) const { return BaseType::compute_face_and_volume_pattern(local_grid_view, ansatz_space); @@ -214,7 +214,7 @@ private: #else // HAVE_DUNE_FEM_LOCALFUNCTIONS -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class FemLocalfunctionsBased { static_assert(Dune::AlwaysFalse<GridPartImp>::value, "You are missing dune-fem-localfunctions!"); diff --git a/dune/gdt/products/base.hh b/dune/gdt/products/base.hh index 6fc220cd2a4dc002962f6c9af9f4c5f9aa8d2fd1..011da103f4f1fb37e942453d92695d25bd23fd22 100644 --- a/dune/gdt/products/base.hh +++ b/dune/gdt/products/base.hh @@ -340,7 +340,7 @@ public: typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; template <class... Args> GenericBase(const GridViewType& grd_vw, Args&&... args) @@ -354,7 +354,7 @@ public: return grid_view_; } - template <class RR, int rRR, int rCR, class RS, int rRS, int rCS> + template <class RR, size_t rRR, size_t rCR, class RS, size_t rRS, size_t rCS> FieldType apply2(const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, RR, rRR, rCR>& range, const Stuff::LocalizableFunctionInterface<EntityType, DomainFieldType, dimDomain, RS, rRS, rCS>& source) const diff --git a/dune/gdt/products/interfaces.hh b/dune/gdt/products/interfaces.hh index 5ad3615633851e3af1da0e4629ec7f7066638c8b..84f619ce5386607533d7490a8d1d951fe971fd4d 100644 --- a/dune/gdt/products/interfaces.hh +++ b/dune/gdt/products/interfaces.hh @@ -68,7 +68,7 @@ public: typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; private: static_assert(std::is_base_of<Stuff::IsLocalizableFunction, SourceType>::value, @@ -130,7 +130,7 @@ public: typedef typename MatrixType::ScalarType FieldType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; typedef Stuff::LA::SparsityPatternDefault PatternType; diff --git a/dune/gdt/spaces/cg.hh b/dune/gdt/spaces/cg.hh index b44ce81244f2023d5bb51acaf603ade5dffbc58e..7f838dcc457a221b1943a18078de4fc3045feb57 100644 --- a/dune/gdt/spaces/cg.hh +++ b/dune/gdt/spaces/cg.hh @@ -29,7 +29,7 @@ namespace Spaces { template <class GridType, Stuff::Grid::ChooseLayer layer_type, ChooseSpaceBackend backend_type, int polOrder, - class RangeFieldType, int dimRange, int dimRangeCols = 1> + class RangeFieldType, size_t dimRange, size_t dimRangeCols = 1> class CGProvider { static const Stuff::Grid::ChoosePartView part_view_type = ChooseGridPartView<backend_type>::type; @@ -38,19 +38,19 @@ public: typedef typename Stuff::Grid::Layer<GridType, layer_type, part_view_type>::Type GridLayerType; private: - template <class G, int p, class R, int r, int rC, GDT::ChooseSpaceBackend b> + template <class G, int p, class R, size_t r, size_t rC, GDT::ChooseSpaceBackend b> struct SpaceChooser { static_assert(AlwaysFalse<G>::value, "No space available for this backend!"); }; - template <class G, int p, class R, int r, int rC> + template <class G, int p, class R, size_t r, size_t rC> struct SpaceChooser<G, p, R, r, rC, GDT::ChooseSpaceBackend::fem> { typedef GDT::Spaces::CG::FemBased<GridLayerType, p, R, r> Type; }; - template <class G, int p, class R, int r, int rC> + template <class G, int p, class R, size_t r, size_t rC> struct SpaceChooser<G, p, R, r, rC, GDT::ChooseSpaceBackend::pdelab> { typedef GDT::Spaces::CG::PdelabBased<GridLayerType, p, R, r> Type; @@ -69,13 +69,13 @@ public: return Type(grid_layer); } - static Type create(GridProviderType& grid_provider, const int level = 0) + static Type create(GridProviderType& grid_provider, const size_t level = 0) { return Type(grid_provider.template layer<layer_type, part_view_type>(level)); } #if HAVE_DUNE_GRID_MULTISCALE - static Type create(const MsGridProviderType& grid_provider, const int level_or_subdomain = 0) + static Type create(const MsGridProviderType& grid_provider, const size_t level_or_subdomain = 0) { return Type(grid_provider.template layer<layer_type, part_view_type>(level_or_subdomain)); } @@ -84,7 +84,7 @@ public: template <class GridType, Stuff::Grid::ChooseLayer layer_type, ChooseSpaceBackend backend_type, int polOrder, - class RangeFieldType, int dimRange, int dimRangeCols = 1> + class RangeFieldType, size_t dimRange, size_t dimRangeCols = 1> class DUNE_DEPRECATED_MSG("Use CGProvider instead (02.02.2015)!") ContinuousLagrangeProvider : public CGProvider<GridType, layer_type, backend_type, polOrder, RangeFieldType, dimRange, dimRangeCols> { diff --git a/dune/gdt/spaces/cg/fem.hh b/dune/gdt/spaces/cg/fem.hh index 36a0209842b03afece23b7882453980bf53d3619..721c578fabd46b7a03a06b9d16768ba615fa12da 100644 --- a/dune/gdt/spaces/cg/fem.hh +++ b/dune/gdt/spaces/cg/fem.hh @@ -34,14 +34,14 @@ namespace CG { // forward, to be used in the traits and to allow for specialization -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class FemBased { static_assert(Dune::AlwaysFalse<GridPartImp>::value, "Untested for these dimensions!"); }; -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols> class FemBasedTraits { public: @@ -53,7 +53,7 @@ public: private: typedef typename GridPartType::ctype DomainFieldType; - static const unsigned int dimDomain = GridPartType::dimension; + static const size_t dimDomain = GridPartType::dimension; public: typedef RangeFieldImp RangeFieldType; @@ -87,10 +87,10 @@ class FemBased<GridPartImp, polynomialOrder, RangeFieldImp, 1, 1> public: typedef FemBasedTraits<GridPartImp, polynomialOrder, RangeFieldImp, 1, 1> Traits; - static const int polOrder = Traits::polOrder; - static const unsigned int dimDomain = BaseType::dimDomain; - static const unsigned int dimRange = BaseType::dimRange; - static const unsigned int dimRangeCols = BaseType::dimRangeCols; + static const int polOrder = Traits::polOrder; + static const size_t dimDomain = BaseType::dimDomain; + static const size_t dimRange = BaseType::dimRange; + static const size_t dimRangeCols = BaseType::dimRangeCols; typedef typename Traits::GridPartType GridPartType; typedef typename Traits::GridViewType GridViewType; @@ -176,7 +176,7 @@ private: #else // HAVE_DUNE_FEM -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class FemBased { static_assert(Dune::AlwaysFalse<GridPartImp>::value, "You are missing dune-fem!"); diff --git a/dune/gdt/spaces/cg/interface.hh b/dune/gdt/spaces/cg/interface.hh index d47f7630c04b154501defabecb19b9c31bceb13a..7128c6253bf015c3d399e1a0562df801b3499cd8 100644 --- a/dune/gdt/spaces/cg/interface.hh +++ b/dune/gdt/spaces/cg/interface.hh @@ -6,6 +6,8 @@ #ifndef DUNE_GDT_SPACES_CG_INTERFACE_HH #define DUNE_GDT_SPACES_CG_INTERFACE_HH +#include <boost/numeric/conversion/cast.hpp> + #include <dune/common/dynvector.hh> #include <dune/common/version.hh> #include <dune/common/typetraits.hh> @@ -26,7 +28,7 @@ namespace GDT { namespace Spaces { -template <class ImpTraits, int domainDim, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class ImpTraits, size_t domainDim, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class CGInterface : public SpaceInterface<ImpTraits, domainDim, rangeDim, rangeDimCols> { typedef SpaceInterface<ImpTraits, domainDim, rangeDim, rangeDimCols> BaseType; @@ -85,13 +87,13 @@ public: typedef typename BaseType::BaseFunctionSetType::RangeType RangeType; std::vector<RangeType> tmp_basis_values(basis.size(), RangeType(0)); const auto& reference_element = ReferenceElements<DomainFieldType, dimDomain>::general(entity.type()); - const int num_vertices = reference_element.size(dimDomain); + const auto num_vertices = reference_element.size(dimDomain); assert(num_vertices >= 0); - assert(size_t(num_vertices) == basis.size() && "This should not happen with polOrder 1!"); + assert(boost::numeric_cast<size_t>(num_vertices) == basis.size() && "This should not happen with polOrder 1!"); // prepare return vector std::vector<DomainType> local_vertices(num_vertices, DomainType(0)); // loop over all vertices - for (int ii = 0; ii < num_vertices; ++ii) { + for (auto ii : DSC::valueRange(num_vertices)) { // get the local coordinate of the iith vertex const auto local_vertex = reference_element.position(ii, dimDomain); // evaluate the basefunctionset @@ -135,7 +137,7 @@ public: if (boundaryInfo.dirichlet(intersection) || (!intersection.neighbor() && !intersection.boundary())) { // and get the vertices of the intersection const auto geometry = intersection.geometry(); - for (int cc = 0; cc < geometry.corners(); ++cc) + for (auto cc : DSC::valueRange(geometry.corners())) dirichlet_vertices.emplace_back(entity.geometry().local(geometry.corner(cc))); } // only work on dirichlet ones } // loop over all intersections @@ -165,7 +167,7 @@ public: using BaseType::compute_pattern; - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_pattern(const GridView<G>& local_grid_view, const SpaceInterface<S, d, r, rC>& ansatz_space) const { return BaseType::compute_volume_pattern(local_grid_view, ansatz_space); @@ -173,14 +175,14 @@ public: using BaseType::local_constraints; - template <class S, int d, int r, int rC, class ConstraintsType> + template <class S, size_t d, size_t r, size_t rC, class ConstraintsType> void local_constraints(const SpaceInterface<S, d, r, rC>& /*other*/, const EntityType& /*entity*/, ConstraintsType& /*ret*/) const { static_assert(AlwaysFalse<S>::value, "Not implemented for these constraints!"); } // ... local_constraints(...) - template <class S, int d, int r, int rC> + template <class S, size_t d, size_t r, size_t rC> void local_constraints(const SpaceInterface<S, d, r, rC>& other, const EntityType& entity, Constraints::Dirichlet<IntersectionType, RangeFieldType>& ret) const { diff --git a/dune/gdt/spaces/cg/pdelab.hh b/dune/gdt/spaces/cg/pdelab.hh index 8cb52e20b87ee0a8f092a3f8ed905133313c471f..590d695aa2f21370ef99230b885cea6245d84549 100644 --- a/dune/gdt/spaces/cg/pdelab.hh +++ b/dune/gdt/spaces/cg/pdelab.hh @@ -44,14 +44,14 @@ namespace CG { // forward, to be used in the traits and to allow for specialization -template <class GridViewImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridViewImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class PdelabBased { static_assert(Dune::AlwaysFalse<GridViewImp>::value, "Untested for this combination of dimensions!"); }; -template <class GridViewImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridViewImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class PdelabBasedTraits { public: @@ -62,7 +62,7 @@ public: private: typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; public: typedef RangeFieldImp RangeFieldType; @@ -121,10 +121,10 @@ class PdelabBased<GridViewImp, polynomialOrder, RangeFieldImp, 1, 1> public: typedef PdelabBasedTraits<GridViewImp, polynomialOrder, RangeFieldImp, 1, 1> Traits; - static const int polOrder = Traits::polOrder; - static const unsigned int dimDomain = BaseType::dimDomain; - static const unsigned int dimRange = BaseType::dimRange; - static const unsigned int dimRangeCols = BaseType::dimRangeCols; + static const int polOrder = Traits::polOrder; + static const size_t dimDomain = BaseType::dimDomain; + static const size_t dimRange = BaseType::dimRange; + static const size_t dimRangeCols = BaseType::dimRangeCols; typedef typename Traits::GridViewType GridViewType; typedef typename Traits::RangeFieldType RangeFieldType; @@ -243,7 +243,7 @@ private: #else // HAVE_DUNE_PDELAB -template <class GridViewImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridViewImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class PdelabBased { static_assert(Dune::AlwaysFalse<GridViewImp>::value, "You are missing dune-pdelab!"); diff --git a/dune/gdt/spaces/continuouslagrange/base.hh b/dune/gdt/spaces/continuouslagrange/base.hh index cee8395519b5b403aa6e32c573a381fe603deb28..ac1fd909f587543d1cd23a360c7a583f650e183f 100644 --- a/dune/gdt/spaces/continuouslagrange/base.hh +++ b/dune/gdt/spaces/continuouslagrange/base.hh @@ -27,7 +27,7 @@ namespace Spaces { // forward, to allow for specialization -template <class ImpTraits, int domainDim, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class ImpTraits, size_t domainDim, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class DUNE_DEPRECATED_MSG("Include <dune/gdt/spaces/cg/fem.hh> and use CGInterface instead (21.11.2014)!") ContinuousLagrangeBase { @@ -35,7 +35,7 @@ class DUNE_DEPRECATED_MSG("Include <dune/gdt/spaces/cg/fem.hh> and use CGInterfa }; -template <class ImpTraits, int domainDim, class RangeFieldImp, int rangeDim> +template <class ImpTraits, size_t domainDim, class RangeFieldImp, size_t rangeDim> class DUNE_DEPRECATED_MSG("Include <dune/gdt/spaces/cg/fem.hh> and use CGInterface instead (21.11.2014)!") ContinuousLagrangeBase<ImpTraits, domainDim, RangeFieldImp, rangeDim, 1> : public SpaceInterface<ImpTraits, domainDim, rangeDim, 1> @@ -69,7 +69,7 @@ public: using BaseType::compute_pattern; - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_pattern(const GridView<G>& local_grid_view, const SpaceInterface<S, d, r, rC>& ansatz_space) const { return BaseType::compute_volume_pattern(local_grid_view, ansatz_space); @@ -167,14 +167,14 @@ public: using BaseType::local_constraints; - template <class S, int d, int r, int rC, class ConstraintsType> + template <class S, size_t d, size_t r, size_t rC, class ConstraintsType> void local_constraints(const SpaceInterface<S, d, r, rC>& /*other*/, const EntityType& /*entity*/, ConstraintsType& /*ret*/) const { static_assert(AlwaysFalse<S>::value, "Not implemented for these constraints!"); } - template <class S, int d, int r, int rC> + template <class S, size_t d, size_t r, size_t rC> void local_constraints(const SpaceInterface<S, d, r, rC>& other, const EntityType& entity, Constraints::Dirichlet<IntersectionType, RangeFieldType>& ret) const { diff --git a/dune/gdt/spaces/continuouslagrange/fem.hh b/dune/gdt/spaces/continuouslagrange/fem.hh index a64d0dc9f35642f138cb22a019a61db06f97c277..beec2e74f524cf7330e3b25c8f2b3c0df74f7106 100644 --- a/dune/gdt/spaces/continuouslagrange/fem.hh +++ b/dune/gdt/spaces/continuouslagrange/fem.hh @@ -15,7 +15,7 @@ namespace Spaces { namespace ContinuousLagrange { -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class DUNE_DEPRECATED_MSG("Use CG::FemBased instead (21.11.2014)!") FemBased : public CG::FemBased<GridPartImp, polynomialOrder, RangeFieldImp, rangeDim, rangeDimCols> { diff --git a/dune/gdt/spaces/continuouslagrange/pdelab.hh b/dune/gdt/spaces/continuouslagrange/pdelab.hh index 5fc32a54cf28b7c6f965687381100ea49715f46d..882fd6c9511f7fb7f2cada17e2c8824d7f2ab501 100644 --- a/dune/gdt/spaces/continuouslagrange/pdelab.hh +++ b/dune/gdt/spaces/continuouslagrange/pdelab.hh @@ -15,7 +15,7 @@ namespace Spaces { namespace ContinuousLagrange { -template <class GridPartImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridPartImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class DUNE_DEPRECATED_MSG("Use CG::FemBased instead (21.11.2014)!") PdelabBased : public CG::PdelabBased<GridPartImp, polynomialOrder, RangeFieldImp, rangeDim, rangeDimCols> { diff --git a/dune/gdt/spaces/dg.hh b/dune/gdt/spaces/dg.hh index 0e5594f888558b3d990fc5d0bb281f350f604236..c3d852174c438a9f440442097cd0886a457ddc43 100644 --- a/dune/gdt/spaces/dg.hh +++ b/dune/gdt/spaces/dg.hh @@ -29,7 +29,7 @@ namespace Spaces { template <class GridType, Stuff::Grid::ChooseLayer layer_type, ChooseSpaceBackend backend_type, int polOrder, - class RangeFieldType, int dimRange, int dimRangeCols = 1> + class RangeFieldType, size_t dimRange, size_t dimRangeCols = 1> class DGProvider { static const Stuff::Grid::ChoosePartView part_view_type = ChooseGridPartView<backend_type>::type; @@ -38,19 +38,19 @@ public: typedef typename Stuff::Grid::Layer<GridType, layer_type, part_view_type>::Type GridLayerType; private: - template <class G, int p, class R, int r, int rC, GDT::ChooseSpaceBackend b> + template <class G, int p, class R, size_t r, size_t rC, GDT::ChooseSpaceBackend b> struct SpaceChooser { static_assert(AlwaysFalse<G>::value, "No space available for this backend!"); }; - template <class G, int p, class R, int r, int rC> + template <class G, int p, class R, size_t r, size_t rC> struct SpaceChooser<G, p, R, r, rC, GDT::ChooseSpaceBackend::fem> { typedef GDT::Spaces::DG::FemBased<GridLayerType, p, R, r> Type; }; - template <class G, int p, class R, int r, int rC> + template <class G, int p, class R, size_t r, size_t rC> struct SpaceChooser<G, p, R, r, rC, GDT::ChooseSpaceBackend::pdelab> { typedef GDT::Spaces::DG::PdelabBased<GridLayerType, p, R, r> Type; @@ -69,13 +69,13 @@ public: return Type(grid_layer); } - static Type create(GridProviderType& grid_provider, const int level = 0) + static Type create(GridProviderType& grid_provider, const size_t level = 0) { return Type(grid_provider.template layer<layer_type, part_view_type>(level)); } #if HAVE_DUNE_GRID_MULTISCALE - static Type create(const MsGridProviderType& grid_provider, const int level_or_subdomain = 0) + static Type create(const MsGridProviderType& grid_provider, const size_t level_or_subdomain = 0) { return Type(grid_provider.template layer<layer_type, part_view_type>(level_or_subdomain)); } @@ -84,7 +84,7 @@ public: template <class GridType, Stuff::Grid::ChooseLayer layer_type, ChooseSpaceBackend backend_type, int polOrder, - class RangeFieldType, int dimRange, int dimRangeCols = 1> + class RangeFieldType, size_t dimRange, size_t dimRangeCols = 1> class DUNE_DEPRECATED_MSG("Use DGProvider instead (02.02.2015)!") DiscontinuousLagrangeProvider : public DGProvider<GridType, layer_type, backend_type, polOrder, RangeFieldType, dimRange, dimRangeCols> { diff --git a/dune/gdt/spaces/fv/default.hh b/dune/gdt/spaces/fv/default.hh index 8a984226d7d34fe4500ef062e842392a91d819a0..a5260593010376b892263f5ce8334eb4a5adfe93 100644 --- a/dune/gdt/spaces/fv/default.hh +++ b/dune/gdt/spaces/fv/default.hh @@ -22,7 +22,7 @@ namespace FV { // forward, to be used in the traits and to allow for specialization -template <class GridViewImp, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridViewImp, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class Default { static_assert(Dune::AlwaysFalse<GridViewImp>::value, "Untested for these dimensions!"); @@ -32,7 +32,7 @@ class Default /** * \brief Traits class for Spaces::CG::FemBased. */ -template <class GridViewImp, class RangeFieldImp, int rangeDim, int rangeDimCols> +template <class GridViewImp, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols> class DefaultTraits { public: @@ -53,7 +53,7 @@ public: }; // class DefaultTraits -template <class GridViewImp, class RangeFieldImp, int rangeDim> +template <class GridViewImp, class RangeFieldImp, size_t rangeDim> class Default<GridViewImp, RangeFieldImp, rangeDim, 1> : public SpaceInterface<DefaultTraits<GridViewImp, RangeFieldImp, rangeDim, 1>, GridViewImp::dimension, rangeDim, 1> { @@ -64,10 +64,10 @@ class Default<GridViewImp, RangeFieldImp, rangeDim, 1> public: typedef DefaultTraits<GridViewImp, RangeFieldImp, rangeDim, 1> Traits; - static const int polOrder = Traits::polOrder; - static const unsigned int dimDomain = BaseType::dimDomain; - static const unsigned int dimRange = BaseType::dimRange; - static const unsigned int dimRangeCols = BaseType::dimRangeCols; + static const int polOrder = Traits::polOrder; + static const size_t dimDomain = BaseType::dimDomain; + static const size_t dimRange = BaseType::dimRange; + static const size_t dimRangeCols = BaseType::dimRangeCols; typedef typename Traits::GridViewType GridViewType; typedef typename Traits::RangeFieldType RangeFieldType; @@ -123,7 +123,7 @@ public: using BaseType::compute_pattern; - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_pattern(const GridView<G>& local_grid_view, const SpaceInterface<S, d, r, rC>& ansatz_space) const { return BaseType::compute_face_and_volume_pattern(local_grid_view, ansatz_space); diff --git a/dune/gdt/spaces/interface.hh b/dune/gdt/spaces/interface.hh index dffa83910ebd4b4b8cbf7186752475f2920f90b5..9f1675032922501b3ccebdd3f009e4d186a2f292 100644 --- a/dune/gdt/spaces/interface.hh +++ b/dune/gdt/spaces/interface.hh @@ -8,6 +8,8 @@ #include <memory> +#include <boost/numeric/conversion/cast.hpp> + #include <dune/common/dynvector.hh> #include <dune/common/fvector.hh> @@ -62,7 +64,7 @@ struct ChooseGridPartView<ChooseSpaceBackend::fem> }; -template <class Traits, int domainDim, int rangeDim, int rangeDimCols = 1> +template <class Traits, size_t domainDim, size_t rangeDim, size_t rangeDimCols = 1> class SpaceInterface : public Stuff::CRTPInterface<SpaceInterface<Traits, domainDim, rangeDim, rangeDimCols>, Traits> { public: @@ -74,9 +76,9 @@ public: typedef typename Traits::CommunicatorType CommunicatorType; typedef typename Traits::GridViewType GridViewType; typedef typename Traits::RangeFieldType RangeFieldType; - static const unsigned int dimDomain = domainDim; - static const unsigned int dimRange = rangeDim; - static const unsigned int dimRangeCols = rangeDimCols; + static const size_t dimDomain = domainDim; + static const size_t dimRange = rangeDim; + static const size_t dimRangeCols = rangeDimCols; private: static_assert(dimDomain > 0, "dimDomain has to be positive"); @@ -140,14 +142,14 @@ public: * * \note Any derived class has to implement this method, even if it does not support any kind of constraints! * In that case just provide exactly the following method:\code -template< class S, int d, int r, int rC, class ConstraintsType > +template< class S, size_t d, size_t r, size_t rC, class ConstraintsType > void local_constraints(const SpaceInterface< S, d, r, rC > >&, const EntityType&, ConstraintsType&) const { static_assert(AlwaysFalse< S >::value, "Not implemented for these constraints!"); } \endcode */ - template <class S, int d, int r, int rC, class C> + template <class S, size_t d, size_t r, size_t rC, class C> void local_constraints(const SpaceInterface<S, d, r, rC>& ansatz_space, const EntityType& entity, Spaces::ConstraintsInterface<C, RangeFieldType>& ret) const { @@ -165,7 +167,7 @@ void local_constraints(const SpaceInterface< S, d, r, rC > >&, const EntityType& * \note This method can be implemented in a derived class by a forward to one of the methods provided by this * class, namely compute_volume_pattern(), compute_face_pattern() or compute_face_and_volume_pattern(). */ - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_pattern(const GridView<G>& local_grid_view, const SpaceInterface<S, d, r, rC>& ansatz_space) const { CHECK_CRTP(this->as_imp().compute_pattern(local_grid_view, ansatz_space.as_imp())); @@ -183,7 +185,7 @@ void local_constraints(const SpaceInterface< S, d, r, rC > >&, const EntityType& return compute_pattern(*this); } - template <class S, int d, int r, int rC> + template <class S, size_t d, size_t r, size_t rC> PatternType compute_pattern(const SpaceInterface<S, d, r, rC>& ansatz_space) const { return compute_pattern(grid_view(), ansatz_space); @@ -200,7 +202,7 @@ void local_constraints(const SpaceInterface< S, d, r, rC > >&, const EntityType& return compute_volume_pattern(*this); } - template <class S, int d, int r, int rC> + template <class S, size_t d, size_t r, size_t rC> PatternType compute_volume_pattern(const SpaceInterface<S, d, r, rC>& ansatz_space) const { return compute_volume_pattern(grid_view(), ansatz_space); @@ -216,7 +218,7 @@ void local_constraints(const SpaceInterface< S, d, r, rC > >&, const EntityType& * \brief computes a sparsity pattern, where this space is the test space (rows/outer) and the other space is the * ansatz space (cols/inner) */ - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_volume_pattern(const GridView<G>& local_grid_view, const SpaceInterface<S, d, r, rC>& ansatz_space) const { @@ -250,7 +252,7 @@ void local_constraints(const SpaceInterface< S, d, r, rC > >&, const EntityType& return compute_face_and_volume_pattern(local_grid_view, *this); } - template <class S, int d, int r, int rC> + template <class S, size_t d, size_t r, size_t rC> PatternType compute_face_and_volume_pattern(const SpaceInterface<S, d, r, rC>& ansatz_space) const { return compute_face_and_volume_pattern(grid_view(), ansatz_space); @@ -260,7 +262,7 @@ void local_constraints(const SpaceInterface< S, d, r, rC > >&, const EntityType& * \brief computes a DG sparsity pattern, where this space is the test space (rows/outer) and the other space is the * ansatz space (cols/inner) */ - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_face_and_volume_pattern(const GridView<G>& local_grid_view, const SpaceInterface<S, d, r, rC>& ansatz_space) const { @@ -315,13 +317,13 @@ void local_constraints(const SpaceInterface< S, d, r, rC > >&, const EntityType& return compute_face_pattern(local_grid_view, *this); } - template <class S, int d, int r, int rC> + template <class S, size_t d, size_t r, size_t rC> PatternType compute_face_pattern(const SpaceInterface<S, d, r, rC>& ansatz_space) const { return compute_face_pattern(grid_view(), ansatz_space); } - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_face_pattern(const /*GridView<*/ G /*>*/& local_grid_view, const SpaceInterface<S, d, r, rC>& ansatz_space) const { @@ -394,11 +396,11 @@ private: const auto baseFunctionSet = space_.base_function_set(entity); if (component < 0) DUNE_THROW(Dune::RangeError, "component must not be negative (is " << component << ")!"); - if (component < int(baseFunctionSet.size())) { + if (component < boost::numeric_cast<int>(baseFunctionSet.size())) { baseFunctionSet.evaluate(xx, values_); - assert(component < int(values_.size()) && "This should not happen!"); + assert(component < boost::numeric_cast<int>(values_.size()) && "This should not happen!"); return values_[index_][component]; - } else if (component < int(space_.mapper().maxNumDofs())) + } else if (component < boost::numeric_cast<int>(space_.mapper().maxNumDofs())) return 0.0; else DUNE_THROW(Dune::RangeError, @@ -441,14 +443,14 @@ public: }; // class SpaceInterface -template <class Traits, int d, int r, int rC, int codim = 0> +template <class Traits, size_t d, size_t r, size_t rC, size_t codim = 0> typename Traits::GridViewType::template Codim<codim>::Iterator begin(const Dune::GDT::SpaceInterface<Traits, d, r, rC>& space) { return space.grid_view().template begin<codim>(); } -template <class Traits, int d, int r, int rC, int codim = 0> +template <class Traits, size_t d, size_t r, size_t rC, size_t codim = 0> typename Traits::GridViewType::template Codim<codim>::Iterator end(const Dune::GDT::SpaceInterface<Traits, d, r, rC>& space) { diff --git a/dune/gdt/spaces/rt/interface.hh b/dune/gdt/spaces/rt/interface.hh index 9ad62c1e4a600210af1bca19e32cbae2aef1f766..72dd0ea4659bc7b10a61b15d562f532be4c3b828 100644 --- a/dune/gdt/spaces/rt/interface.hh +++ b/dune/gdt/spaces/rt/interface.hh @@ -6,6 +6,8 @@ #ifndef DUNE_GDT_SPACES_RT_INTERFACE_HH #define DUNE_GDT_SPACES_RT_INTERFACE_HH +#include <boost/numeric/conversion/cast.hpp> + #include <dune/stuff/common/timedlogging.hh> #include <dune/gdt/spaces/interface.hh> @@ -15,7 +17,7 @@ namespace GDT { namespace Spaces { -template <class ImpTraits, int domainDim, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class ImpTraits, size_t domainDim, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class RTInterface : public SpaceInterface<ImpTraits, domainDim, rangeDim, rangeDimCols> { typedef SpaceInterface<ImpTraits, domainDim, rangeDim, rangeDimCols> BaseType; @@ -56,7 +58,7 @@ public: static_assert(dimDomain == 2, "Not implemented!"); static_assert(polOrder == 0, "Not implemented!"); // prepare - const size_t num_intersections = entity.template count<1>(); + const auto num_intersections = boost::numeric_cast<size_t>(entity.template count<1>()); std::vector<size_t> local_DoF_index_of_vertex(num_intersections, std::numeric_limits<size_t>::infinity()); std::vector<size_t> local_DoF_index_of_intersection(num_intersections, std::numeric_limits<size_t>::infinity()); typedef typename BaseFunctionSetType::DomainType DomainType; @@ -73,13 +75,13 @@ public: // find the basis function index that corresponds to each vertex of the entity // (find the basis function that evaluates to zero at the vertex, and nonzero at the other ones) // therefore we walk the vertices - assert(int(num_intersections) == entity.template count<dimDomain>()); + assert(num_intersections == boost::numeric_cast<size_t>(entity.template count<dimDomain>())); for (size_t vv = 0; vv < num_intersections; ++vv) { - const auto vertex_ptr = entity.template subEntity<dimDomain>(int(vv)); + const auto vertex_ptr = entity.template subEntity<dimDomain>(boost::numeric_cast<int>(vv)); const auto& vertex = *vertex_ptr; // get the vertex coordinates vertices[vv] = vertex.geometry().center(); - const auto& vertex_entity = reference_element.position(int(vv), dimDomain); + const auto& vertex_entity = reference_element.position(boost::numeric_cast<int>(vv), dimDomain); // evalaute the basis basis.evaluate(vertex_entity, basis_values); // and find the basis that evaluates zero here @@ -118,7 +120,7 @@ public: assert(local_DoF_index_of_intersection[local_intersection_index] == std::numeric_limits<size_t>::infinity()); // walk the corners of the intersection for (size_t cc = 0; cc < num_intersections; ++cc) { - corner = intersection_geometry.corner(int(cc)); + corner = intersection_geometry.corner(boost::numeric_cast<int>(cc)); // check which vertices lie on the intersection for (size_t vv = 0; vv < num_intersections; ++vv) if (Stuff::Common::FloatCmp::eq(vertices[vv], corner)) @@ -155,7 +157,7 @@ public: using BaseType::compute_pattern; - template <class G, class S, int d, int r, int rC> + template <class G, class S, size_t d, size_t r, size_t rC> PatternType compute_pattern(const GridView<G>& local_grid_view, const SpaceInterface<S, d, r, rC>& ansatz_space) const { DSC::TimedLogger().get("gdt.spaces.rt.pdelab.compute_pattern").warn() << "Returning largest possible pattern!" @@ -165,7 +167,7 @@ public: using BaseType::local_constraints; - template <class S, int d, int r, int rC, class C, class R> + template <class S, size_t d, size_t r, size_t rC, class C, class R> void local_constraints(const SpaceInterface<S, d, r, rC>& /*ansatz_space*/, const EntityType& /*entity*/, Spaces::ConstraintsInterface<C, R>& /*ret*/) const { diff --git a/dune/gdt/spaces/rt/pdelab.hh b/dune/gdt/spaces/rt/pdelab.hh index 26edb80bc1b849675ed90c1c1ddbd18ad2fd0edd..f63e27e59e710385909a559a31466a75f5d54864 100644 --- a/dune/gdt/spaces/rt/pdelab.hh +++ b/dune/gdt/spaces/rt/pdelab.hh @@ -41,7 +41,7 @@ namespace RT { // forward, to be used in the traits and to allow for specialization -template <class GridViewImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridViewImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class PdelabBased { static_assert(AlwaysFalse<GridViewImp>::value, "Untested for these dimensions or polynomial order!"); @@ -51,7 +51,7 @@ class PdelabBased namespace internal { -template <class GridViewImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols> +template <class GridViewImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols> class PdelabBasedTraits { public: @@ -64,7 +64,7 @@ public: private: typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; public: typedef RangeFieldImp RangeFieldType; @@ -115,7 +115,7 @@ private: } // namespace internal -template <class GridViewImp, class RangeFieldImp, int rangeDim> +template <class GridViewImp, class RangeFieldImp, size_t rangeDim> class PdelabBased<GridViewImp, 0, RangeFieldImp, rangeDim, 1> : public Spaces::RTInterface<internal::PdelabBasedTraits<GridViewImp, 0, RangeFieldImp, rangeDim, 1>, GridViewImp::dimension, RangeFieldImp, rangeDim, 1> @@ -219,7 +219,7 @@ public: } // ... communicator(...) private: - template <class S, int d, int p, bool simplicial> + template <class S, size_t d, int p, bool simplicial> struct Helper { static_assert(AlwaysFalse<S>::value, "Not available for this combination!"); @@ -255,7 +255,7 @@ private: #else // HAVE_DUNE_PDELAB -template <class GridViewImp, int polynomialOrder, class RangeFieldImp, int rangeDim, int rangeDimCols = 1> +template <class GridViewImp, int polynomialOrder, class RangeFieldImp, size_t rangeDim, size_t rangeDimCols = 1> class PdelabBased { static_assert(AlwaysFalse<GridViewImp>::value, "You are missing dune-pdelab!"); diff --git a/test/elliptic-cg-discretization.hh b/test/elliptic-cg-discretization.hh index ba9929ee3aa08ce4f377de55ad1ad58314c8a95e..9098e315059d3f4573748dddb91b1f5b4e394e3a 100644 --- a/test/elliptic-cg-discretization.hh +++ b/test/elliptic-cg-discretization.hh @@ -48,10 +48,10 @@ template <class GridViewType, int polynomialOrder, class Discretization { public: - static const unsigned int dimDomain = GridViewType::dimension; + static const size_t dimDomain = GridViewType::dimension; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimRange = 1; + static const size_t dimRange = 1; typedef double RangeFieldType; static const unsigned int polOrder = polynomialOrder; @@ -199,9 +199,9 @@ protected: typedef typename TestCase::EntityType EntityType; typedef typename TestCase::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = TestCase::dimDomain; + static const size_t dimDomain = TestCase::dimDomain; typedef typename TestCase::RangeFieldType RangeFieldType; - static const unsigned int dimRange = TestCase::dimRange; + static const size_t dimRange = TestCase::dimRange; typedef Discretization<GridViewType, polOrder> DiscretizationType; typedef typename DiscretizationType::VectorType VectorType; diff --git a/test/elliptic-sipdg-discretization.hh b/test/elliptic-sipdg-discretization.hh index 7a19dd9f781ed4e88e0d6d6e465203eaa17b7ba4..854210c2b75e759f9590173706cb107ed5739b71 100644 --- a/test/elliptic-sipdg-discretization.hh +++ b/test/elliptic-sipdg-discretization.hh @@ -55,10 +55,10 @@ template <class GridPartType, int polynomialOrder, class Discretization { public: - static const unsigned int dimDomain = GridPartType::dimension; + static const size_t dimDomain = GridPartType::dimension; typedef typename GridPartType::ctype DomainFieldType; - static const unsigned int dimRange = 1; + static const size_t dimRange = 1; typedef double RangeFieldType; static const unsigned int polOrder = polynomialOrder; @@ -215,9 +215,9 @@ class EocStudy : public Dune::Stuff::Common::ConvergenceStudy typedef typename TestCase::EntityType EntityType; typedef typename TestCase::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = TestCase::dimDomain; + static const size_t dimDomain = TestCase::dimDomain; typedef typename TestCase::RangeFieldType RangeFieldType; - static const unsigned int dimRange = TestCase::dimRange; + static const size_t dimRange = TestCase::dimRange; typedef Discretization<GridPartType, polOrder> DiscretizationType; typedef typename DiscretizationType::VectorType VectorType; diff --git a/test/elliptic-swipdg-discretization.hh b/test/elliptic-swipdg-discretization.hh index e74a9bc512939aafd0a8db8a3911bec39ad4cb6d..db8ede055144466b6238c9fa29b44120192dab73 100644 --- a/test/elliptic-swipdg-discretization.hh +++ b/test/elliptic-swipdg-discretization.hh @@ -12,6 +12,8 @@ #include <cmath> #include <limits> +#include <boost/numeric/conversion/cast.hpp> + #include <dune/common/timer.hh> #include <dune/geometry/quadraturerules.hh> @@ -70,10 +72,10 @@ template <class GridPartType, int polynomialOrder, class Discretization { public: - static const unsigned int dimDomain = GridPartType::dimension; + static const size_t dimDomain = GridPartType::dimension; typedef typename GridPartType::ctype DomainFieldType; - static const unsigned int dimRange = 1; + static const size_t dimRange = 1; typedef double RangeFieldType; static const unsigned int polOrder = polynomialOrder; @@ -231,9 +233,9 @@ protected: typedef typename TestCase::GridViewType GridViewType; typedef typename TestCase::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = TestCase::dimDomain; + static const size_t dimDomain = TestCase::dimDomain; typedef typename TestCase::RangeFieldType RangeFieldType; - static const unsigned int dimRange = TestCase::dimRange; + static const size_t dimRange = TestCase::dimRange; typedef Discretization<GridPartType, polOrder> DiscretizationType; @@ -559,9 +561,9 @@ class EstimatorStudy : public EocStudy<TestCase, 1> typedef typename BaseType::EntityType EntityType; typedef typename BaseType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = BaseType::dimDomain; + static const size_t dimDomain = BaseType::dimDomain; typedef typename BaseType::RangeFieldType RangeFieldType; - static const unsigned int dimRange = BaseType::dimRange; + static const size_t dimRange = BaseType::dimRange; typedef typename BaseType::DiscretizationType DiscretizationType; typedef typename DiscretizationType::VectorType VectorType; @@ -1235,7 +1237,7 @@ private: if (intersection.boundary() && !intersection.neighbor()) { const auto& intersection_geometry = intersection.geometry(); for (size_t local_intersection_corner_id = 0; - int(local_intersection_corner_id) < intersection_geometry.corners(); + local_intersection_corner_id < boost::numeric_cast< size_t >(intersection_geometry.corners()); ++local_intersection_corner_id) { const auto global_intersection_corner = intersection_geometry.corner(local_intersection_corner_id); // now, we need to find the entity's vertex this intersection's corner point equals to, so we diff --git a/test/elliptic-testcases.hh b/test/elliptic-testcases.hh index 0eb6963da159b250e0c1ac6d3283cca3e616797a..1490dbcfb2afa197f1b6b1136867b048a19c43e6 100644 --- a/test/elliptic-testcases.hh +++ b/test/elliptic-testcases.hh @@ -53,7 +53,7 @@ public: typedef typename Dune::GDT::SpaceTools::LevelGridPartView<GridType>::Type GridViewType; typedef typename GridType::template Codim<0>::Entity EntityType; typedef typename GridType::ctype DomainFieldType; - static const unsigned int dimDomain = GridType::dimension; + static const size_t dimDomain = GridType::dimension; Base(std::unique_ptr<GridProviderType>&& grd_prv, size_t num_refinements) : grid_provider_(std::move(grd_prv)) @@ -145,9 +145,9 @@ public: typedef typename BaseType::GridViewType GridViewType; typedef typename BaseType::EntityType EntityType; typedef typename BaseType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = BaseType::dimDomain; + static const size_t dimDomain = BaseType::dimDomain; typedef double RangeFieldType; - static const unsigned int dimRange = 1; + static const size_t dimRange = 1; typedef DSG::BoundaryInfos::AllDirichlet<typename GridViewType::Intersection> BoundaryInfoType; typedef Dune::Stuff::Functions::Constant<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> @@ -251,9 +251,9 @@ public: typedef typename BaseType::GridViewType GridViewType; typedef typename BaseType::EntityType EntityType; typedef typename BaseType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = BaseType::dimDomain; + static const size_t dimDomain = BaseType::dimDomain; typedef double RangeFieldType; - static const unsigned int dimRange = 1; + static const size_t dimRange = 1; typedef DSG::BoundaryInfos::AllDirichlet<typename GridViewType::Intersection> BoundaryInfoType; typedef Dune::Stuff::Functions::Constant<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> @@ -368,9 +368,9 @@ public: typedef typename BaseType::GridViewType GridViewType; typedef typename BaseType::EntityType EntityType; typedef typename BaseType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = BaseType::dimDomain; + static const size_t dimDomain = BaseType::dimDomain; typedef double RangeFieldType; - static const unsigned int dimRange = 1; + static const size_t dimRange = 1; typedef DSG::BoundaryInfos::AllDirichlet<typename GridViewType::Intersection> BoundaryInfoType; typedef Dune::Stuff::Functions::Constant<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> @@ -506,9 +506,9 @@ public: typedef typename BaseType::GridViewType GridViewType; typedef typename BaseType::EntityType EntityType; typedef typename BaseType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = BaseType::dimDomain; + static const size_t dimDomain = BaseType::dimDomain; typedef double RangeFieldType; - static const unsigned int dimRange = 1; + static const size_t dimRange = 1; typedef DSG::BoundaryInfos::NormalBased<typename GridViewType::Intersection> BoundaryInfoType; typedef Dune::Stuff::Functions::Constant<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> @@ -618,9 +618,9 @@ public: typedef typename BaseType::GridViewType GridViewType; typedef typename BaseType::EntityType EntityType; typedef typename BaseType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = BaseType::dimDomain; + static const size_t dimDomain = BaseType::dimDomain; typedef double RangeFieldType; - static const unsigned int dimRange = 1; + static const size_t dimRange = 1; typedef DSG::BoundaryInfos::AllDirichlet<typename GridViewType::Intersection> BoundaryInfoType; typedef Dune::Stuff::Functions::Constant<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> diff --git a/test/operators_darcy.hh b/test/operators_darcy.hh index ad755e7a1b95fa69d3a5e763caf892cf59700f2f..5ed0625f4247c0f5a087307bb851b371b09c68d3 100644 --- a/test/operators_darcy.hh +++ b/test/operators_darcy.hh @@ -37,7 +37,7 @@ struct DarcyOperator : public ::testing::Test typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename GridViewType::ctype DomainFieldType; - static const unsigned int dimDomain = SourceSpaceType::dimDomain; + static const size_t dimDomain = SourceSpaceType::dimDomain; typedef double RangeFieldType; typedef typename Dune::Stuff::LA::Container<RangeFieldType>::VectorType VectorType; diff --git a/test/operators_elliptic_swipdg.cc b/test/operators_elliptic_swipdg.cc index 4985f517d4bbf73a899466d2d13568a24d1124d4..4ea3bbd5b61b5832c722f0aabc25711153113584 100644 --- a/test/operators_elliptic_swipdg.cc +++ b/test/operators_elliptic_swipdg.cc @@ -24,13 +24,13 @@ using namespace Dune::GDT; TEST(EllipticSWIPDGOperator, is_affinely_decomposable) { - static const unsigned int d = 2; + static const size_t d = 2; typedef SGrid<d, d> GridType; typedef GridType::template Codim<0>::Entity E; typedef GridType::ctype D; typedef double R; - static const unsigned int r = 1; - auto grid_provider = Stuff::Grid::Providers::Cube<GridType>::create(); + static const size_t r = 1; + auto grid_provider = Stuff::Grid::Providers::Cube<GridType>::create(); typedef Spaces:: DiscontinuousLagrangeProvider<GridType, Stuff::Grid::ChooseLayer::leaf, ChooseSpaceBackend::fem, 1, R, r> SpaceProvider; diff --git a/test/operators_oswaldinterpolation.hh b/test/operators_oswaldinterpolation.hh index c5f9b1f5a70d3e3b5f21e08c9a1c5a5ce465a718..c31198c1cb62c5903f6d11b4d389319a3f8af779 100644 --- a/test/operators_oswaldinterpolation.hh +++ b/test/operators_oswaldinterpolation.hh @@ -25,7 +25,7 @@ struct Oswald_Interpolation_Operator : public ::testing::Test typedef typename SpaceType::GridViewType GridViewType; typedef typename GridViewType::Grid GridType; typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; - static const unsigned int dimDomain = SpaceType::dimDomain; + static const size_t dimDomain = SpaceType::dimDomain; /** * \note This is not a test for correct results yet! diff --git a/test/operators_products_prolong.hh b/test/operators_products_prolong.hh index 6dd68a9a23469c121f8f190fdaf16061a1efa040..ce7a4cfdbba334f1c7b6642a70f3822323b62cce 100644 --- a/test/operators_products_prolong.hh +++ b/test/operators_products_prolong.hh @@ -30,10 +30,10 @@ struct ProlongationOperatorBase typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename FineSpaceType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = FineSpaceType::dimDomain; + static const size_t dimDomain = FineSpaceType::dimDomain; typedef Dune::FieldVector<DomainFieldType, dimDomain> DomainType; typedef typename FineSpaceType::RangeFieldType RangeFieldType; - static const unsigned int dimRange = FineSpaceType::dimRange; + static const size_t dimRange = FineSpaceType::dimRange; typedef Dune::Stuff::Functions::Expression<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> FunctionType; typedef typename Dune::Stuff::LA::Container<RangeFieldType>::VectorType VectorType; diff --git a/test/operators_projections.hh b/test/operators_projections.hh index d5b5fb7d020fb57610322491c48085077e641701..11f9ad25df16ffb23eb375fb846e646feda2fa28 100644 --- a/test/operators_projections.hh +++ b/test/operators_projections.hh @@ -30,10 +30,10 @@ struct ProjectionOperatorBase : ::testing::Test typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename SpaceType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = SpaceType::dimDomain; + static const size_t dimDomain = SpaceType::dimDomain; typedef typename SpaceType::RangeFieldType RangeFieldType; - static const unsigned int dimRange = SpaceType::dimRange; static const unsigned int polOrder = SpaceType::polOrder; + static const size_t dimRange = SpaceType::dimRange; typedef Dune::Stuff::Functions::Expression<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> FunctionType; typedef typename Stuff::LA::Container<RangeFieldType, Stuff::LA::default_backend>::VectorType VectorType; diff --git a/test/products.hh b/test/products.hh index ea884ea706fc32ca99555918ce578514a21da1c4..b63b95eddcdd4f65a8b7399a081d8ca743f2701a 100644 --- a/test/products.hh +++ b/test/products.hh @@ -22,9 +22,9 @@ struct ProductBase typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename SpaceType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = SpaceType::dimDomain; + static const size_t dimDomain = SpaceType::dimDomain; typedef typename SpaceType::RangeFieldType RangeFieldType; - static const unsigned int dimRange = SpaceType::dimRange; + static const size_t dimRange = SpaceType::dimRange; typedef Dune::Stuff::Functions::Expression<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> FunctionType; typedef typename Dune::GDT::ProductInterface<typename ProductType::Traits> InterfaceType; @@ -66,9 +66,9 @@ struct LocalizableProductBase typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename SpaceType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = SpaceType::dimDomain; + static const size_t dimDomain = SpaceType::dimDomain; typedef typename SpaceType::RangeFieldType RangeFieldType; - static const unsigned int dimRange = SpaceType::dimRange; + static const size_t dimRange = SpaceType::dimRange; typedef typename Dune::GDT::LocalizableProductInterface<typename ProductType::Traits> InterfaceType; static void fulfills_interface(ProductType& product) @@ -119,9 +119,9 @@ struct AssemblableProductBase typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename SpaceType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = SpaceType::dimDomain; + static const size_t dimDomain = SpaceType::dimDomain; typedef typename SpaceType::RangeFieldType RangeFieldType; - static const unsigned int dimRange = SpaceType::dimRange; + static const size_t dimRange = SpaceType::dimRange; typedef typename Dune::GDT::AssemblableProductInterface<typename ProductType::Traits> InterfaceType; static void fulfills_interface(ProductType& product) diff --git a/test/products_boundaryl2.hh b/test/products_boundaryl2.hh index 17e5df8f436171213486d0120b8d57c040184ff2..e5a0e147c43f6965a117f40ee3945eb73bf31476 100644 --- a/test/products_boundaryl2.hh +++ b/test/products_boundaryl2.hh @@ -28,13 +28,13 @@ struct BoundaryL2ProductBase : public ::testing::Test typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename SpaceType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = SpaceType::dimDomain; + static const size_t dimDomain = SpaceType::dimDomain; typedef typename SpaceType::RangeFieldType RangeFieldType; - static const unsigned int dimRange = SpaceType::dimRange; + static const size_t dimRange = SpaceType::dimRange; typedef Stuff::Functions::Expression<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> FunctionType; BoundaryL2ProductBase() - : grid_(GridProviderType(0.0, 1.0, boost::numeric_cast<unsigned int>(dsc_grid_elements())).grid_ptr()) + : grid_(GridProviderType(0.0, 1.0, boost::numeric_cast<size_t>(dsc_grid_elements())).grid_ptr()) , space_(Dune::GDT::SpaceTools::GridPartView<SpaceType>::create_leaf(*grid_)) , one_("x", "1.0", 0) { diff --git a/test/products_elliptic.hh b/test/products_elliptic.hh index 93e1595b5cc78fa151000c7b93161465ad56c631..4a1303788b615314a0e09619b10f65ba47373981 100644 --- a/test/products_elliptic.hh +++ b/test/products_elliptic.hh @@ -30,15 +30,15 @@ struct EllipticProductBase : public ::testing::Test typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename SpaceType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = SpaceType::dimDomain; + static const size_t dimDomain = SpaceType::dimDomain; typedef typename SpaceType::RangeFieldType RangeFieldType; - static const unsigned int dimRange = SpaceType::dimRange; + static const size_t dimRange = SpaceType::dimRange; typedef Stuff::Functions::Expression<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> FunctionType; typedef Stuff::Functions::Constant<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimDomain, dimDomain> TensorType; EllipticProductBase() - : grid_(GridProviderType(0.0, 1.0, boost::numeric_cast<unsigned int>(dsc_grid_elements())).grid_ptr()) + : grid_(GridProviderType(0.0, 1.0, boost::numeric_cast<size_t>(dsc_grid_elements())).grid_ptr()) , leaf_view_(Dune::GDT::SpaceTools::GridPartView<SpaceType>::create_leaf(*grid_)) , space_(leaf_view_) , one_("x", "1.0", 1, "constant gradient", {{"1.0", "1.0", "1.0"}}) diff --git a/test/products_swipdgpenalty.hh b/test/products_swipdgpenalty.hh index 6a2663b33167496a21e99932ac78077a60f836a6..16c8097432464b1bc648c7f9f2d185df4f2dc175 100644 --- a/test/products_swipdgpenalty.hh +++ b/test/products_swipdgpenalty.hh @@ -31,9 +31,9 @@ struct SwipdgPenaltyProductBase : public ::testing::Test typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename SpaceType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = SpaceType::dimDomain; + static const size_t dimDomain = SpaceType::dimDomain; typedef typename SpaceType::RangeFieldType RangeFieldType; - static const unsigned int dimRange = SpaceType::dimRange; + static const size_t dimRange = SpaceType::dimRange; typedef Stuff::Functions::Expression<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> ScalarType; typedef Stuff::Functions::Constant<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimDomain, dimDomain> TensorType; diff --git a/test/products_weightedl2.hh b/test/products_weightedl2.hh index 836c2f02921cb076a70f697a9f23e571a8332afd..676e70d758d2c9ae3dac2f22f5e8e521757862d6 100644 --- a/test/products_weightedl2.hh +++ b/test/products_weightedl2.hh @@ -28,13 +28,13 @@ struct WeightedL2ProductBase : public ::testing::Test typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; typedef typename GridViewType::template Codim<0>::Entity EntityType; typedef typename SpaceType::DomainFieldType DomainFieldType; - static const unsigned int dimDomain = SpaceType::dimDomain; + static const size_t dimDomain = SpaceType::dimDomain; typedef typename SpaceType::RangeFieldType RangeFieldType; - static const unsigned int dimRange = SpaceType::dimRange; + static const size_t dimRange = SpaceType::dimRange; typedef Stuff::Functions::Expression<EntityType, DomainFieldType, dimDomain, RangeFieldType, dimRange> FunctionType; WeightedL2ProductBase() - : grid_(GridProviderType(0.0, 1.0, boost::numeric_cast<unsigned int>(dsc_grid_elements())).grid_ptr()) + : grid_(GridProviderType(0.0, 1.0, boost::numeric_cast<size_t>(dsc_grid_elements())).grid_ptr()) , space_(Dune::GDT::SpaceTools::GridPartView<SpaceType>::create_leaf(*grid_)) , one_("x", "1.0", 0) { diff --git a/test/spaces.hh b/test/spaces.hh index c666673601cf3b3f0c361f423ed4fbdaf9e522f1..0959d989c5e435a71673a5cb130d8f4fe075e43d 100644 --- a/test/spaces.hh +++ b/test/spaces.hh @@ -9,6 +9,8 @@ #include <type_traits> +#include <boost/numeric/conversion/cast.hpp> + #include <dune/stuff/grid/provider/cube.hh> #include <dune/stuff/test/gtest/gtest.h> @@ -84,11 +86,11 @@ public: typedef typename SpaceType::Traits Traits; typedef typename SpaceType::GridViewType D_GridViewType; typedef typename SpaceType::DomainFieldType D_DomainFieldType; - static const unsigned int d_dimDomain = SpaceType::dimDomain; + static const size_t d_dimDomain = SpaceType::dimDomain; typedef typename SpaceType::RangeFieldType D_RangeFieldType; - static const unsigned int d_dimRange = SpaceType::dimRange; - static const unsigned int d_dimRangeCols = SpaceType::dimRangeCols; - static const int d_polOrder = SpaceType::polOrder; + static const int d_polOrder = SpaceType::polOrder; + static const size_t d_dimRange = SpaceType::dimRange; + static const size_t d_dimRangeCols = SpaceType::dimRangeCols; typedef typename SpaceType::BackendType D_BackendType; typedef typename SpaceType::MapperType D_MapperType; typedef typename SpaceType::BaseFunctionSetType D_BaseFunctionSetType; @@ -103,11 +105,11 @@ public: typedef typename InterfaceType::derived_type derived_type; typedef typename InterfaceType::GridViewType I_GridViewType; typedef typename InterfaceType::DomainFieldType I_DomainFieldType; - static const unsigned int i_dimDomain = InterfaceType::dimDomain; + static const size_t i_dimDomain = InterfaceType::dimDomain; typedef typename InterfaceType::RangeFieldType I_RangeFieldType; - static const unsigned int i_dimRange = InterfaceType::dimRange; - static const unsigned int i_dimRangeCols = InterfaceType::dimRangeCols; - static const int i_polOrder = InterfaceType::polOrder; + static const int i_polOrder = InterfaceType::polOrder; + static const size_t i_dimRange = InterfaceType::dimRange; + static const size_t i_dimRangeCols = InterfaceType::dimRangeCols; typedef typename InterfaceType::BackendType I_BackendType; typedef typename InterfaceType::MapperType I_MapperType; typedef typename InterfaceType::BaseFunctionSetType I_BaseFunctionSetType; @@ -315,11 +317,11 @@ public: typedef typename BaseFunctionSetType::BackendType D_BackendType; typedef typename BaseFunctionSetType::EntityType D_EntityType; typedef typename BaseFunctionSetType::DomainFieldType D_DomainFieldType; - static const unsigned int d_dimDomain = BaseFunctionSetType::dimDomain; + static const size_t d_dimDomain = BaseFunctionSetType::dimDomain; typedef typename BaseFunctionSetType::DomainType D_DomainType; typedef typename BaseFunctionSetType::RangeFieldType D_RangeFieldType; - static const unsigned int d_dimRange = BaseFunctionSetType::dimRange; - static const unsigned int d_dimRangeCols = BaseFunctionSetType::dimRangeCols; + static const size_t d_dimRange = BaseFunctionSetType::dimRange; + static const size_t d_dimRangeCols = BaseFunctionSetType::dimRangeCols; typedef typename BaseFunctionSetType::RangeType D_RangeType; typedef typename BaseFunctionSetType::JacobianRangeType D_JacobianRangeType; static_assert(std::is_same<D_EntityType, typename SpaceType::EntityType>::value, "Types do not match!"); @@ -340,11 +342,11 @@ public: typedef typename InterfaceType::BackendType I_BackendType; typedef typename InterfaceType::EntityType I_EntityType; typedef typename InterfaceType::DomainFieldType I_DomainFieldType; - static const unsigned int i_dimDomain = InterfaceType::dimDomain; + static const size_t i_dimDomain = InterfaceType::dimDomain; typedef typename InterfaceType::DomainType I_DomainType; typedef typename InterfaceType::RangeFieldType I_RangeFieldType; - static const unsigned int i_dimRange = InterfaceType::dimRange; - static const unsigned int i_dimRangeCols = InterfaceType::dimRangeCols; + static const size_t i_dimRange = InterfaceType::dimRange; + static const size_t i_dimRangeCols = InterfaceType::dimRangeCols; typedef typename InterfaceType::RangeType I_RangeType; typedef typename InterfaceType::JacobianRangeType I_JacobianRangeType; static_assert(std::is_same<derived_type, BaseFunctionSetType>::value, "Types do not match!"); @@ -368,10 +370,11 @@ public: const D_BackendType& d_backend = d_base_function_set.backend(); size_t d_order = d_base_function_set.order(); #if DUNE_GDT_TEST_SPACES_RT_CHECK - EXPECT_GE(d_order, int(SpaceType::polOrder)); // <- normaly we would expect equality here, but the raviart + EXPECT_GE(d_order, boost::numeric_cast<size_t>(SpaceType::polOrder)); // <- normaly we would expect equality here, +// but the raviart // thomas space of order 0 reports order 1 here #else - EXPECT_EQ(d_order, int(SpaceType::polOrder)); + EXPECT_EQ(d_order, boost::numeric_cast<size_t>(SpaceType::polOrder)); #endif // the size has already been checked in fulfills_interface() above // * as the interface diff --git a/test/spaces_cg.hh b/test/spaces_cg.hh index 708fe0de064779728413d0438cef44a47669fbfb..fa676830214967ce40ad623af599d3c19c35bff1 100644 --- a/test/spaces_cg.hh +++ b/test/spaces_cg.hh @@ -6,12 +6,13 @@ #ifndef DUNE_GDT_TEST_SPACES_CG #define DUNE_GDT_TEST_SPACES_CG -#include "spaces.hh" +#include <boost/numeric/conversion/cast.hpp> #include <dune/common/typetraits.hh> #include <dune/common/fvector.hh> #include <dune/stuff/common/print.hh> +#include <dune/stuff/common/ranges.hh> #include <dune/stuff/grid/walker.hh> #include <dune/gdt/spaces/cg/fem.hh> @@ -19,6 +20,8 @@ #include <dune/gdt/mapper/interface.hh> #include <dune/gdt/basefunctionset/interface.hh> +#include "spaces.hh" + template <class SpaceType> class CG_Space : public SpaceBase<SpaceType> @@ -32,7 +35,7 @@ struct P1Q1_CG_Space : public SpaceBase<SpaceType> typedef typename SpaceType::GridViewType GridViewType; typedef typename GridViewType::Grid GridType; typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; - static const unsigned int dimDomain = GridType::dimension; + static const size_t dimDomain = GridType::dimension; typedef typename GridType::ctype DomainFieldType; typedef Dune::FieldVector<DomainFieldType, dimDomain> DomainType; @@ -44,7 +47,7 @@ struct P1Q1_CG_Space : public SpaceBase<SpaceType> return ret; } - template <class T, int d, class R, int r, int rC> + template <class T, size_t d, class R, size_t r, size_t rC> void matches_signature(const Dune::GDT::Spaces::CGInterface<T, d, R, r, rC>& /*space*/) { static_assert(std::is_same<typename SpaceType::Traits, T>::value, ""); @@ -82,7 +85,7 @@ struct P1Q1_CG_Space : public SpaceBase<SpaceType> const auto entity_end_it = this->space_.grid_view().template end<0>(); for (auto entity_it = this->space_.grid_view().template begin<0>(); entity_it != entity_end_it; ++entity_it) { const auto& entity = *entity_it; - for (int cc = 0; cc < entity.template count<dimDomain>(); ++cc) { + for (auto cc : DSC::valueRange(entity.template count<dimDomain>())) { const auto vertex_ptr = entity.template subEntity<dimDomain>(cc); const DomainType vertex = vertex_ptr->geometry().center(); vertex_to_indices_map[convert_vector(vertex)] = std::set<size_t>(); @@ -90,16 +93,16 @@ struct P1Q1_CG_Space : public SpaceBase<SpaceType> } // walk the grid again to find all DoF ids - auto functor = [&](const typename GridProviderType::EntityType& entity) { - const int num_vertices = entity.template count<dimDomain>(); + auto functor = [&](const typename GridProviderType::EntityType& entity) { + const size_t num_vertices = boost::numeric_cast<size_t>(entity.template count<dimDomain>()); const auto basis = this->space_.base_function_set(entity); - EXPECT_EQ(basis.size(), size_t(num_vertices)); - for (int cc = 0; cc < num_vertices; ++cc) { - const auto vertex_ptr = entity.template subEntity<dimDomain>(cc); + EXPECT_EQ(basis.size(), num_vertices); + for (size_t cc = 0; cc < num_vertices; ++cc) { + const auto vertex_ptr = entity.template subEntity<dimDomain>(boost::numeric_cast<int>(cc)); const DomainType vertex = vertex_ptr->geometry().center(); // find the local basis function which corresponds to this vertex const auto basis_values = basis.evaluate(entity.geometry().local(vertex)); - EXPECT_EQ(basis_values.size(), size_t(num_vertices)); + EXPECT_EQ(basis_values.size(), num_vertices); size_t ones = 0; size_t zeros = 0; size_t failures = 0; diff --git a/test/spaces_dg.hh b/test/spaces_dg.hh index e42e3009b1f057c920a7a4735651f1e5b52a5fcb..2e9617542a8abcb7b61423e0e15c74a658f1b1bb 100644 --- a/test/spaces_dg.hh +++ b/test/spaces_dg.hh @@ -6,7 +6,10 @@ #ifndef DUNE_GDT_SPACES_DG_COMMON_HH #define DUNE_GDT_SPACES_DG_COMMON_HH +#include <boost/numeric/conversion/cast.hpp> + #include <dune/stuff/common/print.hh> +#include <dune/stuff/common/ranges.hh> #include "spaces.hh" @@ -23,7 +26,7 @@ struct P1Q1_DG_Space : public SpaceBase<SpaceType> typedef typename SpaceType::GridViewType GridViewType; typedef typename GridViewType::Grid GridType; typedef Dune::Stuff::Grid::Providers::Cube<GridType> GridProviderType; - static const unsigned int dimDomain = GridType::dimension; + static const size_t dimDomain = GridType::dimension; typedef typename GridType::ctype DomainFieldType; typedef Dune::FieldVector<DomainFieldType, dimDomain> DomainType; @@ -43,7 +46,7 @@ struct P1Q1_DG_Space : public SpaceBase<SpaceType> const auto entity_end_it = this->space_.grid_view().template end<0>(); for (auto entity_it = this->space_.grid_view().template begin<0>(); entity_it != entity_end_it; ++entity_it) { const auto& entity = *entity_it; - for (int cc = 0; cc < entity.template count<dimDomain>(); ++cc) { + for (auto cc : DSC::valueRange(entity.template count<dimDomain>())) { const auto vertex_ptr = entity.template subEntity<dimDomain>(cc); const DomainType vertex = vertex_ptr->geometry().center(); vertex_to_indices_map[convert_vector(vertex)].first = std::set<size_t>(); @@ -52,16 +55,16 @@ struct P1Q1_DG_Space : public SpaceBase<SpaceType> } // walk the grid again to find all DoF ids for (auto entity_it = this->space_.grid_view().template begin<0>(); entity_it != entity_end_it; ++entity_it) { - const auto& entity = *entity_it; - const int num_vertices = entity.template count<dimDomain>(); + const auto& entity = *entity_it; + const size_t num_vertices = boost::numeric_cast<size_t>(entity.template count<dimDomain>()); const auto basis = this->space_.base_function_set(entity); - EXPECT_EQ(basis.size(), size_t(num_vertices)); - for (int cc = 0; cc < num_vertices; ++cc) { - const auto vertex_ptr = entity.template subEntity<dimDomain>(cc); + EXPECT_EQ(basis.size(), num_vertices); + for (size_t cc = 0; cc < num_vertices; ++cc) { + const auto vertex_ptr = entity.template subEntity<dimDomain>(boost::numeric_cast<int>(cc)); const DomainType vertex = vertex_ptr->geometry().center(); // find the local basis function which corresponds to this vertex const auto basis_values = basis.evaluate(entity.geometry().local(vertex)); - EXPECT_EQ(basis_values.size(), size_t(num_vertices)); + EXPECT_EQ(basis_values.size(), num_vertices); size_t ones = 0; size_t zeros = 0; size_t failures = 0; diff --git a/test/spaces_rt.hh b/test/spaces_rt.hh index 4e18e824be8fb286799da9e58fa8629494f9af53..da48b99e7a6c0ef0f0bfbbfb96955b7f8e5db671 100644 --- a/test/spaces_rt.hh +++ b/test/spaces_rt.hh @@ -18,7 +18,7 @@ template <class SpaceType> class RT_Space : public SpaceBase<SpaceType> { - template <class T, int d, class R, int r, int rC> + template <class T, size_t d, class R, size_t r, size_t rC> void matches_signature(const Dune::GDT::Spaces::RTInterface<T, d, R, r, rC>& /*space*/) { static_assert(Dune::GDT::is_rt_space<SpaceType>::value, "");