diff --git a/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSedimentSettling.cpp b/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSedimentSettling.cpp index 4a8af6662a63f9bae4db677adac0a2472046f488..42cbcd96183881ed58ce5e718fedd0e9d371214b 100644 --- a/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSedimentSettling.cpp +++ b/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/AMRSedimentSettling.cpp @@ -109,7 +109,7 @@ typedef pe_coupling::CurvedLinear< LatticeModel_T, FlagField_T > MO_T; typedef boost::tuples::tuple< NoSlip_T, MO_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -typedef boost::tuple<pe::Sphere, pe::Ellipsoid, pe::Plane> BodyTypeTuple; +typedef std::tuple<pe::Sphere, pe::Ellipsoid, pe::Plane> BodyTypeTuple; /////////// // FLAGS // diff --git a/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/WorkloadEvaluation.cpp b/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/WorkloadEvaluation.cpp index 0a4fef688ee44f1e0f1b4bf56be41f9b637cd2ef..45b2d82e3ddcbaed6f13c755947f8a7b5830e8d8 100644 --- a/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/WorkloadEvaluation.cpp +++ b/apps/benchmarks/AdaptiveMeshRefinementFluidParticleCoupling/WorkloadEvaluation.cpp @@ -103,7 +103,7 @@ typedef pe_coupling::CurvedLinear< LatticeModel_T, FlagField_T > MO_CLI_T; typedef boost::tuples::tuple<MO_CLI_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -typedef boost::tuple<pe::Sphere, pe::Ellipsoid, pe::Plane> BodyTypeTuple; +typedef std::tuple<pe::Sphere, pe::Ellipsoid, pe::Plane> BodyTypeTuple; /////////// // FLAGS // diff --git a/apps/benchmarks/DEM/DEM.cpp b/apps/benchmarks/DEM/DEM.cpp index fb9de46118aea30d7cebd0aa9455ed9b2b46b4e6..d3a0decf71375e78b2fa109d888f87a68e6e20c7 100644 --- a/apps/benchmarks/DEM/DEM.cpp +++ b/apps/benchmarks/DEM/DEM.cpp @@ -25,6 +25,7 @@ #include <core/DataTypes.h> #include <string> +#include <tuple> namespace walberla { @@ -47,7 +48,7 @@ int main( int argc, char** argv ) using namespace walberla; using namespace walberla::pe; - typedef boost::tuple<Sphere, Plane> BodyTuple ; + typedef std::tuple<Sphere, Plane> BodyTuple ; walberla::MPIManager::instance()->initializeMPI( &argc, &argv ); diff --git a/apps/benchmarks/ForcesOnSphereNearPlaneInShearFlow/ForcesOnSphereNearPlaneInShearFlow.cpp b/apps/benchmarks/ForcesOnSphereNearPlaneInShearFlow/ForcesOnSphereNearPlaneInShearFlow.cpp index de8dd9d31c658d7d4a670acc7c507fd975b56e99..52e9bf90a338dcdb7ee0528169b3182da8e61815 100644 --- a/apps/benchmarks/ForcesOnSphereNearPlaneInShearFlow/ForcesOnSphereNearPlaneInShearFlow.cpp +++ b/apps/benchmarks/ForcesOnSphereNearPlaneInShearFlow/ForcesOnSphereNearPlaneInShearFlow.cpp @@ -98,7 +98,7 @@ typedef pe_coupling::CurvedLinear< LatticeModel_T, FlagField_T > MO_CLI_T; typedef boost::tuples::tuple< MO_SBB_T, MO_CLI_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -typedef boost::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; +typedef std::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; /////////// // FLAGS // diff --git a/apps/benchmarks/MotionSingleHeavySphere/MotionSingleHeavySphere.cpp b/apps/benchmarks/MotionSingleHeavySphere/MotionSingleHeavySphere.cpp index fb355ddde53c979f3d608f69b524e087df878963..e7743f7959ecde538ce55734bbdc56da60371ac6 100644 --- a/apps/benchmarks/MotionSingleHeavySphere/MotionSingleHeavySphere.cpp +++ b/apps/benchmarks/MotionSingleHeavySphere/MotionSingleHeavySphere.cpp @@ -101,7 +101,7 @@ typedef pe_coupling::CurvedQuadratic< LatticeModel_T, FlagField_T > MEM_MR_T; typedef boost::tuples::tuple< UBB_T, Outlet_T, MEM_BB_T, MEM_CLI_T, MEM_MR_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -using BodyTypeTuple = boost::tuple<pe::Sphere>; +using BodyTypeTuple = std::tuple<pe::Sphere>; /////////// // FLAGS // diff --git a/apps/benchmarks/PeriodicGranularGas/PeriodicGranularGas.cpp b/apps/benchmarks/PeriodicGranularGas/PeriodicGranularGas.cpp index bb69ca027d76ad7caefd56793052568c9518cf62..1dfc02fd2e20abf8443d2181a264f01cb2cab82d 100644 --- a/apps/benchmarks/PeriodicGranularGas/PeriodicGranularGas.cpp +++ b/apps/benchmarks/PeriodicGranularGas/PeriodicGranularGas.cpp @@ -33,12 +33,13 @@ #include <functional> #include <memory> +#include <tuple> namespace walberla { using namespace walberla::pe; using namespace walberla::timing; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; int main( int argc, char ** argv ) { diff --git a/apps/showcases/BidisperseFluidizedBed/BidisperseFluidizedBedDPM.cpp b/apps/showcases/BidisperseFluidizedBed/BidisperseFluidizedBedDPM.cpp index c2f3e7a12665bf780b9ff81febd5eddf22818a20..34cb30ae1d1530649f93ab9fd81a5c62cfb60ba5 100644 --- a/apps/showcases/BidisperseFluidizedBed/BidisperseFluidizedBedDPM.cpp +++ b/apps/showcases/BidisperseFluidizedBed/BidisperseFluidizedBedDPM.cpp @@ -101,7 +101,7 @@ typedef lbm::SimplePressure< LatticeModel_T, flag_t > Outflow_T typedef boost::tuples::tuple< NoSlip_T, Inflow_T, Outflow_T > BoundaryConditions_T; typedef BoundaryHandling<FlagField_T, Stencil_T, BoundaryConditions_T> BoundaryHandling_T; -typedef boost::tuple<pe::Plane, pe::Sphere> BodyTypeTuple ; +typedef std::tuple<pe::Plane, pe::Sphere> BodyTypeTuple ; /////////// // FLAGS // diff --git a/apps/tutorials/pe/01_ConfinedGas.cpp b/apps/tutorials/pe/01_ConfinedGas.cpp index 04728547d021d01d076bb1606e4f48680367aeef..6e0d1f7ab989f149270fdd38abe29ce9b5ffb047 100644 --- a/apps/tutorials/pe/01_ConfinedGas.cpp +++ b/apps/tutorials/pe/01_ConfinedGas.cpp @@ -27,13 +27,15 @@ #include <core/grid_generator/SCIterator.h> #include <core/logging/Logging.h> #include <core/math/Random.h> + +#include <tuple> //! [Includes] namespace walberla { using namespace walberla::pe; //! [BodyTypeTuple] -typedef boost::tuple<Sphere, Plane> BodyTypeTuple ; +typedef std::tuple<Sphere, Plane> BodyTypeTuple ; //! [BodyTypeTuple] int main( int argc, char ** argv ) diff --git a/apps/tutorials/pe/02_ConfinedGasExtended.cpp b/apps/tutorials/pe/02_ConfinedGasExtended.cpp index 2ada237572406c3f30096ab887954a6218c30f45..b39cf5f3e636b8a654bf1f078c32fe306a3021d6 100644 --- a/apps/tutorials/pe/02_ConfinedGasExtended.cpp +++ b/apps/tutorials/pe/02_ConfinedGasExtended.cpp @@ -36,13 +36,14 @@ #include <vtk/VTKOutput.h> #include <functional> +#include <tuple> namespace walberla { using namespace walberla::pe; using namespace walberla::timing; using namespace walberla::pe::raytracing; -typedef boost::tuple<Sphere, Plane> BodyTuple ; +typedef std::tuple<Sphere, Plane> BodyTuple ; int main( int argc, char ** argv ) { diff --git a/src/mesh/pe/rigid_body/ConvexPolyhedron.h b/src/mesh/pe/rigid_body/ConvexPolyhedron.h index 46e95afbda14c17c679ec2f34e98b8041387b8fc..48f7c8ff1c8c3b87cc8bf6333a8d1f3a26679499 100644 --- a/src/mesh/pe/rigid_body/ConvexPolyhedron.h +++ b/src/mesh/pe/rigid_body/ConvexPolyhedron.h @@ -140,7 +140,7 @@ private: //** friend declaration /// needed to be able to set static type ids with setStaticTypeID - template <class T> + template <class T, int N> friend struct walberla::pe::SetBodyTypeIDs; }; //************************************************************************************************* diff --git a/src/pe/communication/DynamicMarshalling.h b/src/pe/communication/DynamicMarshalling.h index 032708bff7ac44d5ece117697ea337097f6a1a66..7786dd4b1d19e213710b61e34e1b16c6ee626071 100644 --- a/src/pe/communication/DynamicMarshalling.h +++ b/src/pe/communication/DynamicMarshalling.h @@ -38,7 +38,7 @@ #include "core/Abort.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { diff --git a/src/pe/fcd/AnalyticCollisionDetection.h b/src/pe/fcd/AnalyticCollisionDetection.h index 2bf9513ba51cbf17b395ffbc3cba9b475fd05cf1..0287f6d8dd2f5a6231a472af6ca4024d835fb2c2 100644 --- a/src/pe/fcd/AnalyticCollisionDetection.h +++ b/src/pe/fcd/AnalyticCollisionDetection.h @@ -37,7 +37,7 @@ #include "core/math/Shims.h" #include "geometry/GeometricalFunctions.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { namespace pe { diff --git a/src/pe/fcd/GJKEPACollideFunctor.h b/src/pe/fcd/GJKEPACollideFunctor.h index 051d5bcbcace3bb1b99aeb497b789ae4f7895c42..c163ce145dda14ed0f79005ed01988ce4ee27dd2 100644 --- a/src/pe/fcd/GJKEPACollideFunctor.h +++ b/src/pe/fcd/GJKEPACollideFunctor.h @@ -28,7 +28,7 @@ #include "pe/rigidbody/Plane.h" #include "pe/rigidbody/Union.h" #include <pe/Thresholds.h> -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla{ namespace pe{ diff --git a/src/pe/fcd/SimpleFCD.h b/src/pe/fcd/SimpleFCD.h index ba5e45316692dc4929823c1af10833b7b60287f9..e61d39eddffbde35603fc4d8e9fb3718c658dccf 100644 --- a/src/pe/fcd/SimpleFCD.h +++ b/src/pe/fcd/SimpleFCD.h @@ -23,8 +23,7 @@ #include "AnalyticCollisionDetection.h" #include "GenericFCD.h" -#include <boost/type_traits/is_base_of.hpp> -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla{ namespace pe{ diff --git a/src/pe/pe_module.dox b/src/pe/pe_module.dox index 0982c2dbbd087f09e3518505c699a789eaacedb1..58923b0b452e0846b22bb6f7602dbc05c2da1f36 100644 --- a/src/pe/pe_module.dox +++ b/src/pe/pe_module.dox @@ -72,7 +72,7 @@ you should call RigidBody::getTopSuperBody() and then RigidBody::getMass() (RigidBody::getInertia()) using the returned rigid body. \subsection SyncCalls How can I dynamically switch between sync calls? -You can bind the function to a boost function and call this one. +You can bind the function to a std::function and call this one. \snippet 02_ConfinedGasExtended.cpp Bind Sync Call \section CommonFunctions Important Classes and Functions diff --git a/src/pe/raytracing/Intersects.h b/src/pe/raytracing/Intersects.h index 836ee8dc6af313d2b3b25841900cf61d1a927abc..eea0f9719ce4676dc62ef17f420614dcc349b97c 100644 --- a/src/pe/raytracing/Intersects.h +++ b/src/pe/raytracing/Intersects.h @@ -30,7 +30,7 @@ #include "pe/rigidbody/Union.h" #include "pe/utility/BodyCast.h" #include <core/math/Utility.h> -#include <boost/tuple/tuple.hpp> +#include <tuple> #include <pe/raytracing/Ray.h> diff --git a/src/pe/rigidbody/Box.h b/src/pe/rigidbody/Box.h index cd6ab866230a6fc09d0bbb14b49eed97a34e43c3..5da39e7845006907ab7fa7fb67e9707782c0e735 100644 --- a/src/pe/rigidbody/Box.h +++ b/src/pe/rigidbody/Box.h @@ -161,7 +161,7 @@ private: //** friend declaration /// needed to be able to set static type ids with setStaticTypeID - template <class T> + template <class T, int N> friend struct SetBodyTypeIDs; }; //************************************************************************************************* diff --git a/src/pe/rigidbody/Capsule.h b/src/pe/rigidbody/Capsule.h index ce6bb8cbe513160efd30f723cfb952eedefdcc00..c2d4c6b46ae5105ddc760321ff3ccbff06e5fa6e 100644 --- a/src/pe/rigidbody/Capsule.h +++ b/src/pe/rigidbody/Capsule.h @@ -158,7 +158,7 @@ private: //** friend declaration /// needed to be able to set static type ids with setStaticTypeID - template <class T> + template <class T, int N> friend struct SetBodyTypeIDs; }; //************************************************************************************************* diff --git a/src/pe/rigidbody/CylindricalBoundary.h b/src/pe/rigidbody/CylindricalBoundary.h index 5d9b4c9d5da23922f0858500e065b25ca884a6f0..c56582c20094d26ab85c5b00b6adff489b8b9f3c 100644 --- a/src/pe/rigidbody/CylindricalBoundary.h +++ b/src/pe/rigidbody/CylindricalBoundary.h @@ -113,7 +113,7 @@ private: //** friend declaration /// needed to be able to set static type ids with setStaticTypeID - template <class T> + template <class T, int N> friend struct SetBodyTypeIDs; }; //************************************************************************************************* diff --git a/src/pe/rigidbody/Ellipsoid.h b/src/pe/rigidbody/Ellipsoid.h index e723bc1b9e5cdbe70530b500c2a7459381e1ddd9..573d773488bb950b74944915abafa343cdf6ad34 100644 --- a/src/pe/rigidbody/Ellipsoid.h +++ b/src/pe/rigidbody/Ellipsoid.h @@ -149,7 +149,7 @@ private: //** friend declaration /// needed to be able to set static type ids with setStaticTypeID - template <class T> + template <class T, int N> friend struct SetBodyTypeIDs; }; //************************************************************************************************* diff --git a/src/pe/rigidbody/Plane.h b/src/pe/rigidbody/Plane.h index 996edb3e84a4589be73f31a5e5cd61e9d9517e45..589d11038aa1566861f49f866233901f1ff35703 100644 --- a/src/pe/rigidbody/Plane.h +++ b/src/pe/rigidbody/Plane.h @@ -166,7 +166,7 @@ private: //** friend declaration /// needed to be able to set static type ids with setStaticTypeID - template <class T> + template <class T, int N> friend struct SetBodyTypeIDs; }; //************************************************************************************************* diff --git a/src/pe/rigidbody/SetBodyTypeIDs.h b/src/pe/rigidbody/SetBodyTypeIDs.h index a7a7996d7a71226f7fb46863be92343e5f6dcd5d..a64c627c0a960200dbfa963334e1f084ad3f9b21 100644 --- a/src/pe/rigidbody/SetBodyTypeIDs.h +++ b/src/pe/rigidbody/SetBodyTypeIDs.h @@ -23,39 +23,42 @@ #include "core/UniqueID.h" #include "core/logging/Logging.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { namespace pe { -template < typename BodyTypeTuple > -struct SetBodyTypeIDs{ +template < typename BodyTypeTuple, int N = std::tuple_size<BodyTypeTuple>::value - 1 > +struct SetBodyTypeIDs +{ /** * \ingroup pe * \brief Initial setup of static type ids. * - * \tparam BodyTypeTuple boost::tuple of all geometries used throughout the simulation + * \tparam BodyTypeTuple std::tuple of all geometries used throughout the simulation * * Each geometry has a unique type id which is used to identify the geometry. * These type ids have to be set at the start of the simulation using this function. * \note You have to call this function on all processes identically. * - * The template parameter is a boost::tuple of geometries used during the simulation. + * The template parameter is a std::tuple of geometries used during the simulation. * Since the tuple is used often a typedef is used. * \snippet PeDocumentationSnippets.cpp Definition BodyTypeTuple * The function call then looks like: * \snippet PeDocumentationSnippets.cpp Definition Setup TypeIds */ static void execute(){ - auto typeID = UniqueID<SetBodyTypeIDs<int> >::createGlobal(); - BodyTypeTuple::head_type::setStaticTypeID( typeID ); + auto typeID = UniqueID<SetBodyTypeIDs<int, 0> >::createGlobal(); + using CastType = typename std::tuple_element<N, BodyTypeTuple>::type; + CastType::setStaticTypeID( typeID ); WALBERLA_LOG_DETAIL_ON_ROOT("SetBodyTypeID " << typeID << " set."); - SetBodyTypeIDs<typename BodyTypeTuple::tail_type>::execute(); + SetBodyTypeIDs<BodyTypeTuple, N - 1>::execute(); } }; -template < > -struct SetBodyTypeIDs< boost::tuples::null_type>{ +template < typename BodyTypeTuple > +struct SetBodyTypeIDs< BodyTypeTuple, -1> +{ static void execute(){ } }; diff --git a/src/pe/rigidbody/Sphere.h b/src/pe/rigidbody/Sphere.h index d062e616c08c4770bb3533c232f8fd10e4dc8f24..8efc9bcaee38478d19e0795b0a8125d88d9c6416 100644 --- a/src/pe/rigidbody/Sphere.h +++ b/src/pe/rigidbody/Sphere.h @@ -158,7 +158,7 @@ private: //** friend declaration /// needed to be able to set static type ids with setStaticTypeID - template <class T> + template <class T, int N> friend struct SetBodyTypeIDs; }; //************************************************************************************************* diff --git a/src/pe/rigidbody/Squirmer.h b/src/pe/rigidbody/Squirmer.h index 3dc76acad0ecd56c46f9d17f3027fbd3f4fd3d7e..5dcf205c4b850019653b2079b0b280c7a536c8d0 100644 --- a/src/pe/rigidbody/Squirmer.h +++ b/src/pe/rigidbody/Squirmer.h @@ -84,7 +84,7 @@ private: //** friend declaration /// needed to be able to set static type ids with setStaticTypeID - template <class T> + template <class T, int N> friend struct SetBodyTypeIDs; }; diff --git a/src/pe/rigidbody/Union.h b/src/pe/rigidbody/Union.h index fe6e0ce94f1e975feaae4cea68b97aa6aa85ad1d..02ce734c1b99ecae9bf42179fadceaa5515beed3 100644 --- a/src/pe/rigidbody/Union.h +++ b/src/pe/rigidbody/Union.h @@ -43,7 +43,7 @@ #include <iostream> #include <stdexcept> -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { namespace pe { @@ -208,7 +208,7 @@ private: //** friend declaration /// needed to be able to set static type ids with setStaticTypeID - template <class T> + template <class T, int N> friend struct SetBodyTypeIDs; }; //************************************************************************************************* diff --git a/src/pe/rigidbody/UnionFactory.h b/src/pe/rigidbody/UnionFactory.h index eeff2ffe8c578fe05924c8fea440afb89b33e5e2..d4b4b98b8f13d88199cb94f0c4b8ead8cc4d9494 100644 --- a/src/pe/rigidbody/UnionFactory.h +++ b/src/pe/rigidbody/UnionFactory.h @@ -50,7 +50,7 @@ namespace pe { * \ingroup pe * \brief Setup of a new Union. * - * \tparam BodyTypeTuple boost::tuple of all geometries the Union should be able to contain + * \tparam BodyTypeTuple std::tuple of all geometries the Union should be able to contain * \param globalStorage process local global storage * \param blocks storage of all the blocks on this process * \param storageID BlockDataID of the BlockStorage block datum @@ -116,7 +116,7 @@ Union<BodyTypeTuple>* createUnion( BodyStorage& globalStorage, BlockStorage& b * \ingroup pe * \brief Setup of a new Box directly attached to a Union. * - * \tparam BodyTypeTuple boost::tuple of all geometries the Union is able to contain + * \tparam BodyTypeTuple std::tuple of all geometries the Union is able to contain * \exception std::runtime_error Box TypeID not initalized! * \exception std::invalid_argument createBox: Union argument is NULL * \exception std::logic_error createBox: Union is remote @@ -180,7 +180,7 @@ BoxID createBox( Union<BodyTypeTuple>* un, * \ingroup pe * \brief Setup of a new Capsule directly attached to a Union. * - * \tparam BodyTypeTuple boost::tuple of all geometries the Union is able to contain + * \tparam BodyTypeTuple std::tuple of all geometries the Union is able to contain * \exception std::runtime_error Capsule TypeID not initalized! * \exception std::invalid_argument createCapsule: Union argument is NULL * \exception std::logic_error createCapsule: Union is remote @@ -242,7 +242,7 @@ CapsuleID createCapsule( Union<BodyTypeTuple>* un, * \ingroup pe * \brief Setup of a new Sphere directly attached to a Union. * - * \tparam BodyTypeTuple boost::tuple of all geometries the Union is able to contain + * \tparam BodyTypeTuple std::tuple of all geometries the Union is able to contain * \exception std::runtime_error Sphere TypeID not initalized! * \exception std::invalid_argument createSphere: Union argument is NULL * \exception std::logic_error createSphere: Union is remote diff --git a/src/pe/utility/BodyCast.h b/src/pe/utility/BodyCast.h index 93c14befb3c6d4d719296855e3b2024832690c31..2c5456f5440e92f5fbffb88e68d026d9055d2e74 100644 --- a/src/pe/utility/BodyCast.h +++ b/src/pe/utility/BodyCast.h @@ -23,55 +23,56 @@ #include <core/DataTypes.h> #include <pe/rigidbody/RigidBody.h> -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { namespace pe { -template < typename TypeList, typename Functor, typename ReturnType > +template < typename TypeList, typename Functor, typename ReturnType, int N = std::tuple_size<TypeList>::value - 1 > class SingleCast { public: - static ReturnType execute(const id_t typeID, Functor& func){ - static_assert(boost::is_base_of<RigidBody, typename TypeList::head_type>::value, "only downcasting allowed!"); - if (TypeList::head_type::getStaticTypeID() == typeID) + static ReturnType execute(const id_t typeID, Functor& func) + { + using CastBodyType = typename std::tuple_element<N, TypeList>::type; + static_assert(std::is_base_of<RigidBody, CastBodyType>::value, "only downcasting allowed!"); + if (CastBodyType::getStaticTypeID() == typeID) { - typedef typename TypeList::head_type CastBodyType; CastBodyType* bd = NULL; return func( static_cast<CastBodyType *>( bd ) ); } else { - return SingleCast<typename TypeList::tail_type, Functor, ReturnType>::execute(typeID, func); + return SingleCast<TypeList, Functor, ReturnType, N - 1>::execute(typeID, func); } } static ReturnType execute(RigidBody* bd, Functor& func){ - static_assert(boost::is_base_of<RigidBody, typename TypeList::head_type>::value, "only downcasting allowed!"); - if (TypeList::head_type::getStaticTypeID() == bd->getTypeID()) + using CastBodyType = typename std::tuple_element<N, TypeList>::type; + static_assert(std::is_base_of<RigidBody, CastBodyType>::value, "only downcasting allowed!"); + if (CastBodyType::getStaticTypeID() == bd->getTypeID()) { - typedef typename TypeList::head_type CastBodyType; return func( static_cast<CastBodyType *>(bd) ); } else { - return SingleCast<typename TypeList::tail_type, Functor, ReturnType>::execute(bd, func); + return SingleCast<TypeList, Functor, ReturnType, N - 1>::execute(bd, func); } } static ReturnType execute(const RigidBody* bd, Functor& func){ - static_assert(boost::is_base_of<RigidBody, typename TypeList::head_type>::value, "only downcasting allowed!"); - if (TypeList::head_type::getStaticTypeID() == bd->getTypeID()) + using CastBodyType = typename std::tuple_element<N, TypeList>::type; + static_assert(std::is_base_of<RigidBody, CastBodyType>::value, "only downcasting allowed!"); + if (CastBodyType::getStaticTypeID() == bd->getTypeID()) { - typedef typename TypeList::head_type CastBodyType; return func( static_cast<const CastBodyType *>(bd) ); } else { - return SingleCast<typename TypeList::tail_type, Functor, ReturnType>::execute(bd, func); + return SingleCast<TypeList, Functor, ReturnType, N - 1>::execute(bd, func); } } }; -template < typename Functor, typename ReturnType > -struct SingleCast< boost::tuples::null_type, Functor, ReturnType >{ +template < typename TypeList, typename Functor, typename ReturnType > +struct SingleCast< TypeList, Functor, ReturnType, -1 >{ static ReturnType execute(const id_t typeID, Functor& /*func*/) { WALBERLA_ABORT("SingleCast: BodyType could not be determined (" << typeID << ")"); @@ -90,7 +91,11 @@ struct SingleCast< boost::tuples::null_type, Functor, ReturnType >{ } }; -template < typename TypeListA, typename TypeListB, typename Functor, typename ReturnType > +template < typename TypeListA, + typename TypeListB, + typename Functor, + typename ReturnType, + int N = std::tuple_size<TypeListA>::value - 1 > class DoubleCast { private: @@ -118,40 +123,40 @@ private: }; public: static ReturnType execute(RigidBody* a, RigidBody* b, Functor& func){ - static_assert(boost::is_base_of<RigidBody, typename TypeListA::head_type>::value, "only downcasting allowed!"); - if (TypeListA::head_type::getStaticTypeID() == a->getTypeID()) + using CastBodyType = typename std::tuple_element<N, TypeListA>::type; + static_assert(std::is_base_of<RigidBody, CastBodyType>::value, "only downcasting allowed!"); + if (CastBodyType::getStaticTypeID() == a->getTypeID()) { - typedef typename TypeListA::head_type CastBodyType; SingleCastFunctor<CastBodyType> singleFunc( static_cast<CastBodyType *>(a), func); return SingleCast<TypeListB, SingleCastFunctor<CastBodyType>, ReturnType>::execute(b, singleFunc ); } else { - return DoubleCast<typename TypeListA::tail_type, TypeListB, Functor, ReturnType>::execute(a, b, func); + return DoubleCast<TypeListA, TypeListB, Functor, ReturnType, N - 1>::execute(a, b, func); } } static ReturnType execute(const RigidBody* a, const RigidBody* b, Functor& func){ - static_assert(boost::is_base_of<RigidBody, typename TypeListA::head_type>::value, "only downcasting allowed!"); - if (TypeListA::head_type::getStaticTypeID() == a->getTypeID()) + using CastBodyType = typename std::tuple_element<N, TypeListA>::type; + static_assert(std::is_base_of<RigidBody, CastBodyType>::value, "only downcasting allowed!"); + if (CastBodyType::getStaticTypeID() == a->getTypeID()) { - typedef typename TypeListA::head_type CastBodyType; SingleCastConstFunctor<CastBodyType> singleFunc( static_cast<CastBodyType *>(a), func); return SingleCast<TypeListB, SingleCastConstFunctor<CastBodyType>, ReturnType>::execute(b, singleFunc ); } else { - return DoubleCast<typename TypeListA::tail_type, TypeListB, Functor, ReturnType>::execute(a, b, func); + return DoubleCast<TypeListA, TypeListB, Functor, ReturnType, N - 1>::execute(a, b, func); } } }; -template < typename TypeListB, typename Functor, typename ReturnType > -struct DoubleCast< boost::tuples::null_type, TypeListB, Functor, ReturnType >{ +template < typename TypeListA, typename TypeListB, typename Functor, typename ReturnType > +struct DoubleCast< TypeListA, TypeListB, Functor, ReturnType, -1 >{ static ReturnType execute(RigidBody* a, RigidBody* /*b*/, Functor& /*func*/) { WALBERLA_ABORT("DoubleCast: Type of body " << a->getSystemID() << " could not be determined (" << a->getTypeID() << ")"); return ReturnType(); } - static ReturnType execute(const RigidBody* a, const RigidBody* b, Functor& /*func*/) + static ReturnType execute(const RigidBody* a, const RigidBody* /*b*/, Functor& /*func*/) { WALBERLA_ABORT("DoubleCast: Type of body " << a->getSystemID() << " could not be determined (" << a->getTypeID() << ")"); return ReturnType(); diff --git a/src/pe/vtk/SphereVtkOutput.cpp b/src/pe/vtk/SphereVtkOutput.cpp index 7ae03c08840e7ecd8d4ce3594f4eb17de918953f..2e68ed49736017add3b2e56eec6e369d7dc8610c 100644 --- a/src/pe/vtk/SphereVtkOutput.cpp +++ b/src/pe/vtk/SphereVtkOutput.cpp @@ -58,36 +58,36 @@ void SphereVtkOutput::configure() { if (body.getTypeID() == Sphere::getStaticTypeID() || body.getTypeID() == Squirmer::getStaticTypeID()) bodies_.push_back( static_cast<Sphere const *> (&body) ); - if (body.getTypeID() == Union<boost::tuple<Sphere> >::getStaticTypeID()) + if (body.getTypeID() == Union<std::tuple<Sphere> >::getStaticTypeID()) { - auto un = static_cast<Union<boost::tuple<Sphere> > const * > (&body); + auto un = static_cast<Union<std::tuple<Sphere> > const * > (&body); for( auto it2 = un->begin(); it2 != un->end(); ++it2 ) { if (it2->getTypeID() == Sphere::getStaticTypeID()) bodies_.push_back( static_cast<ConstSphereID> (it2.getBodyID()) ); } } - if (body.getTypeID() == Union<boost::tuple<Squirmer> >::getStaticTypeID()) + if (body.getTypeID() == Union<std::tuple<Squirmer> >::getStaticTypeID()) { - auto un = static_cast<Union<boost::tuple<Squirmer> > const * > (&body); + auto un = static_cast<Union<std::tuple<Squirmer> > const * > (&body); for( auto it2 = un->begin(); it2 != un->end(); ++it2 ) { if (it2->getTypeID() == Squirmer::getStaticTypeID()) bodies_.push_back( static_cast<ConstSphereID> (it2.getBodyID()) ); } } - if (body.getTypeID() == Union<boost::tuple<Sphere,Squirmer> >::getStaticTypeID()) + if (body.getTypeID() == Union<std::tuple<Sphere,Squirmer> >::getStaticTypeID()) { - auto un = static_cast<Union<boost::tuple<Sphere,Squirmer> > const * > (&body); + auto un = static_cast<Union<std::tuple<Sphere,Squirmer> > const * > (&body); for( auto it2 = un->begin(); it2 != un->end(); ++it2 ) { if (it2->getTypeID() == Sphere::getStaticTypeID() || it2->getTypeID() == Squirmer::getStaticTypeID()) bodies_.push_back( static_cast<ConstSphereID> (it2.getBodyID()) ); } } - if (body.getTypeID() == Union<boost::tuple<Squirmer,Sphere> >::getStaticTypeID()) + if (body.getTypeID() == Union<std::tuple<Squirmer,Sphere> >::getStaticTypeID()) { - auto un = static_cast<Union<boost::tuple<Squirmer,Sphere> > const * > (&body); + auto un = static_cast<Union<std::tuple<Squirmer,Sphere> > const * > (&body); for( auto it2 = un->begin(); it2 != un->end(); ++it2 ) { if (it2->getTypeID() == Sphere::getStaticTypeID() || it2->getTypeID() == Squirmer::getStaticTypeID()) diff --git a/tests/mesh/MeshMarshalling.cpp b/tests/mesh/MeshMarshalling.cpp index 1ba1fcc2125ae300a457d557c83bc2ee08c4a1ff..8b9222a2bb777e9a8fb6f7829f23ef6727def6d8 100644 --- a/tests/mesh/MeshMarshalling.cpp +++ b/tests/mesh/MeshMarshalling.cpp @@ -34,18 +34,19 @@ #include "pe/rigidbody/SetBodyTypeIDs.h" #include "pe/Materials.h" -#include <boost/tuple/tuple.hpp> #include <memory> +#include <tuple> + namespace walberla { using namespace walberla::pe; using namespace walberla::pe::communication; -using UnionTypeTuple = boost::tuple<mesh::pe::ConvexPolyhedron>; +using UnionTypeTuple = std::tuple<mesh::pe::ConvexPolyhedron>; using UnionT = Union<UnionTypeTuple>; using UnionID = UnionT *; using UnionPtr = std::unique_ptr<UnionT>; -typedef boost::tuple<mesh::pe::ConvexPolyhedron, UnionT> BodyTuple ; +typedef std::tuple<mesh::pe::ConvexPolyhedron, UnionT> BodyTuple ; std::vector<Vector3<real_t>> generateOctahedron( const real_t radius) { diff --git a/tests/mesh/PeVTKMeshWriterTest.cpp b/tests/mesh/PeVTKMeshWriterTest.cpp index e0a9803879ba80fedd63af3fd414eabaeb7d0105..04d44473b570d53fed525cbfa57783ecb79aeeff 100644 --- a/tests/mesh/PeVTKMeshWriterTest.cpp +++ b/tests/mesh/PeVTKMeshWriterTest.cpp @@ -46,12 +46,13 @@ #include <functional> #include <random> +#include <tuple> using namespace walberla; using namespace walberla::pe; using namespace walberla::mesh::pe; -typedef boost::tuple<ConvexPolyhedron, Plane> BodyTuple ; +typedef std::tuple<ConvexPolyhedron, Plane> BodyTuple ; std::vector<Vector3<real_t>> generatePointCloudCube() { diff --git a/tests/pe/BodyFlags.cpp b/tests/pe/BodyFlags.cpp index dac32839193613cd8029d289ead1311c382c8cb0..fa6db7e1c4ba4dd642099424c614c265fe693e4b 100644 --- a/tests/pe/BodyFlags.cpp +++ b/tests/pe/BodyFlags.cpp @@ -32,12 +32,12 @@ #include "core/debug/TestSubsystem.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { using namespace walberla::pe; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; int main( int argc, char ** argv ) { @@ -131,4 +131,4 @@ int main( int argc, char ** argv ) int main( int argc, char* argv[] ) { return walberla::main( argc, argv ); -} \ No newline at end of file +} diff --git a/tests/pe/BodyIterators.cpp b/tests/pe/BodyIterators.cpp index e53b44a6acb633cea157ebe0f4ba9187966f4748..ecfd526471b2617f606727b159344c1deb5f2d08 100644 --- a/tests/pe/BodyIterators.cpp +++ b/tests/pe/BodyIterators.cpp @@ -36,7 +36,7 @@ namespace walberla { using namespace walberla::pe; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; int main( int argc, char **argv ) { diff --git a/tests/pe/Callback.cpp b/tests/pe/Callback.cpp index 220c026024699df108d677caa908b8891bd4de69..ebcbb2cc3b443718dc05972d394a61e5fefc93e5 100644 --- a/tests/pe/Callback.cpp +++ b/tests/pe/Callback.cpp @@ -29,7 +29,7 @@ namespace walberla { using namespace walberla::pe; -typedef boost::tuple<Sphere> BodyTypeTuple ; +typedef std::tuple<Sphere> BodyTypeTuple ; enum class State{ LOCALIZED0, SHADOW, MIGRATED, LOCALIZED1, REMOVED}; State state; diff --git a/tests/pe/Collision.cpp b/tests/pe/Collision.cpp index e73d9ac3522cd3cd88e9cfa9f8d08e372d7c598f..e6d528d5adbeb5d48c9ba7156e214dc5999f6f3f 100644 --- a/tests/pe/Collision.cpp +++ b/tests/pe/Collision.cpp @@ -235,7 +235,7 @@ void CapsuleTest2() void UnionTest() { - using UnionT = Union<boost::tuple<Sphere> >; + using UnionT = Union<std::tuple<Sphere> >; UnionT un1(120, 0, Vec3(0,0,0), Vec3(0,0,0), Quat(), false, true, false); UnionT un2(121, 0, Vec3(real_t(1.5),0,0), Vec3(0,0,0), Quat(), false, true, false); auto sp1 = createSphere(&un1, 123, Vec3(0,0,0), 1); @@ -253,7 +253,7 @@ void UnionTest() Contact( sp1, sp2, Vec3(real_t(0.75), 0, 0), Vec3(-1, 0, 0), real_t(-0.5)) ); } -typedef boost::tuple<Box, Capsule, Plane, Sphere> BodyTuple ; +typedef std::tuple<Box, Capsule, Plane, Sphere> BodyTuple ; int main( int argc, char** argv ) { diff --git a/tests/pe/CollisionTobiasGJK.cpp b/tests/pe/CollisionTobiasGJK.cpp index c6915d86dab50cf32b232ae63ee5bc12a3c9a55c..fb93470af335fbf17b87fc87fcdcdb32a4727e6d 100644 --- a/tests/pe/CollisionTobiasGJK.cpp +++ b/tests/pe/CollisionTobiasGJK.cpp @@ -49,7 +49,7 @@ namespace walberla { using namespace walberla::pe; -typedef boost::tuple<Box, Capsule, Plane, Sphere, Union<boost::tuple<Sphere>>, Union<boost::tuple<Sphere, Union<boost::tuple<Sphere>>>>, Ellipsoid> BodyTuple ; +typedef std::tuple<Box, Capsule, Plane, Sphere, Union<std::tuple<Sphere>>, Union<std::tuple<Sphere, Union<std::tuple<Sphere>>>>, Ellipsoid> BodyTuple ; bool gjkEPAcollideHybrid(GeomPrimitive &geom1, GeomPrimitive &geom2, Vec3& normal, Vec3& contactPoint, real_t& penetrationDepth) { @@ -356,20 +356,20 @@ void UnionTest(){ Box box(179, 179, Vec3(0,0,0), Vec3(0,0,0), Quat(), Vec3(real_t(10),real_t(2), real_t(10)), iron, false, true, false); - using UnionT = Union<boost::tuple<Sphere>>; + using UnionT = Union<std::tuple<Sphere>>; auto unsub = std::make_unique<UnionT>(192, 192, Vec3(0,real_t(3.8),0), Vec3(0,0,0), Quat(), false, true, false); auto sp1 = createSphere(unsub.get(), 180, Vec3(-3,real_t(3.8),0), real_t(3.0)); auto sp2 = createSphere(unsub.get(), 181, Vec3(3,real_t(3.8),0), real_t(3.0)); //Create another union, and add sub union - Union<boost::tuple<Sphere, Union<boost::tuple<Sphere>>>> un(193, 193, Vec3(0, 0, 0), Vec3(0,0,0), Quat(), false, true, false); + Union<std::tuple<Sphere, Union<std::tuple<Sphere>>>> un(193, 193, Vec3(0, 0, 0), Vec3(0,0,0), Quat(), false, true, false); createSphere(&un, 182, Vec3(0,real_t(6),0), real_t(3.0)); un.add(std::move(unsub)); PossibleContacts pcs; - pcs.push_back(std::pair<Union<boost::tuple<Sphere,Union<boost::tuple<Sphere>>>>*, Box*>(&un, &box)); + pcs.push_back(std::pair<Union<std::tuple<Sphere,Union<std::tuple<Sphere>>>>*, Box*>(&un, &box)); Contacts& container = testFCD.generateContacts(pcs); WALBERLA_CHECK(container.size() == 2); @@ -397,7 +397,7 @@ void UnionTest(){ pcs.clear(); //Vice Versa - pcs.push_back(std::pair<Box*, Union<boost::tuple<Sphere, Union<boost::tuple<Sphere>>>>* >(&box, &un)); + pcs.push_back(std::pair<Box*, Union<std::tuple<Sphere, Union<std::tuple<Sphere>>>>* >(&box, &un)); container = testFCD.generateContacts(pcs); WALBERLA_CHECK(container.size() == 2); diff --git a/tests/pe/CreateWorld.cpp b/tests/pe/CreateWorld.cpp index 04937a603fbdf37649ac86acbd576a9764833211..08517239d647dfd4d0ce8c20793e01b5c52cd6a0 100644 --- a/tests/pe/CreateWorld.cpp +++ b/tests/pe/CreateWorld.cpp @@ -30,7 +30,7 @@ namespace walberla { using namespace walberla::pe; -typedef boost::tuple<Sphere, Plane> BodyTuple ; +typedef std::tuple<Sphere, Plane> BodyTuple ; int main( int argc, char** argv ) { diff --git a/tests/pe/DeleteBody.cpp b/tests/pe/DeleteBody.cpp index ea6adfbfcdf023fc14cdfeaf9911b6d0bec3acd9..b6729855a4b831c2ffd3b5a9459d893aa54ddf13 100644 --- a/tests/pe/DeleteBody.cpp +++ b/tests/pe/DeleteBody.cpp @@ -36,7 +36,7 @@ namespace walberla { using namespace walberla::pe; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; int main( int argc, char** argv ) { diff --git a/tests/pe/DestroyBody.cpp b/tests/pe/DestroyBody.cpp index b2deb57fa759e8b4dc634eb70ae0b1cd703725e1..0ca41dac6abe0d95893a297272f99f0994bb2fa3 100644 --- a/tests/pe/DestroyBody.cpp +++ b/tests/pe/DestroyBody.cpp @@ -34,7 +34,7 @@ namespace walberla { using namespace walberla::pe; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; int main( int argc, char** argv ) { diff --git a/tests/pe/DynamicRefinement.cpp b/tests/pe/DynamicRefinement.cpp index 454e915a6cff327b552efb604a85947da530693f..40c0a1b6b808db3a95a93a22e2a9c4e630c11dd3 100644 --- a/tests/pe/DynamicRefinement.cpp +++ b/tests/pe/DynamicRefinement.cpp @@ -33,7 +33,7 @@ namespace walberla { using namespace walberla::pe; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; class ReGrid { diff --git a/tests/pe/ForceSync.cpp b/tests/pe/ForceSync.cpp index d19422354622bf1218d7fcd31a44d181a9bcbcae..f1e9f2e267373e79294652eaf8d75a63523f8262 100644 --- a/tests/pe/ForceSync.cpp +++ b/tests/pe/ForceSync.cpp @@ -33,7 +33,7 @@ #include "core/debug/TestSubsystem.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> #include <algorithm> #include <vector> @@ -41,7 +41,7 @@ namespace walberla { using namespace walberla::pe; -typedef boost::tuple<Sphere, Plane> BodyTuple ; +typedef std::tuple<Sphere, Plane> BodyTuple ; int main( int argc, char ** argv ) { diff --git a/tests/pe/HCSITS.cpp b/tests/pe/HCSITS.cpp index 5b8deb15585be7ba201afb9564fb67036251186d..dc33533eb62b4940d7a5dcddbfeb9f5792e35571 100644 --- a/tests/pe/HCSITS.cpp +++ b/tests/pe/HCSITS.cpp @@ -30,7 +30,7 @@ namespace walberla { using namespace walberla::pe; -typedef boost::tuple<Sphere, Plane> BodyTuple ; +typedef std::tuple<Sphere, Plane> BodyTuple ; void normalReactionTest(cr::HCSITS& cr, SphereID sp) { diff --git a/tests/pe/HashGrids.cpp b/tests/pe/HashGrids.cpp index 7d83456a0e735ceb88689e12feacfe74cda1a8ad..8e1b2044f228a4ce575d9e5419e3ff94d89ebe78 100644 --- a/tests/pe/HashGrids.cpp +++ b/tests/pe/HashGrids.cpp @@ -34,7 +34,7 @@ namespace walberla { using namespace walberla::pe; -typedef boost::tuple<Sphere, Plane> BodyTuple ; +typedef std::tuple<Sphere, Plane> BodyTuple ; int main( int argc, char** argv ) { diff --git a/tests/pe/LoadFromConfig.cpp b/tests/pe/LoadFromConfig.cpp index 1e22cd6fc88044c70db2595935adebfb625143bb..9a81900a764b9ef16764a4b1f33ea937187e4079 100644 --- a/tests/pe/LoadFromConfig.cpp +++ b/tests/pe/LoadFromConfig.cpp @@ -27,7 +27,7 @@ #include "core/debug/TestSubsystem.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { using namespace walberla::pe; diff --git a/tests/pe/Marshalling.cpp b/tests/pe/Marshalling.cpp index 8eaa11069bffe325b3f747e6ab3c1e1519fbc77a..ed1fdce61adc4c74990c90003b4d6f3d3877c3ed 100644 --- a/tests/pe/Marshalling.cpp +++ b/tests/pe/Marshalling.cpp @@ -32,18 +32,18 @@ #include "pe/rigidbody/SetBodyTypeIDs.h" #include "pe/Materials.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { using namespace walberla::pe; using namespace walberla::pe::communication; -using UnionTypeTuple = boost::tuple<Sphere>; +using UnionTypeTuple = std::tuple<Sphere>; using UnionT = Union<UnionTypeTuple>; using UnionID = UnionT *; using UnionPtr = std::unique_ptr<UnionT>; -typedef boost::tuple<Box, Capsule, Sphere, Squirmer, UnionT, Ellipsoid> BodyTuple ; +typedef std::tuple<Box, Capsule, Sphere, Squirmer, UnionT, Ellipsoid> BodyTuple ; void testBox() { diff --git a/tests/pe/MinMaxRefinement.cpp b/tests/pe/MinMaxRefinement.cpp index 3640056459becd13079590470f6b16291c96918e..782d3235a6c0018f6df0cc8bd92859e61cf17345 100644 --- a/tests/pe/MinMaxRefinement.cpp +++ b/tests/pe/MinMaxRefinement.cpp @@ -42,7 +42,7 @@ #include "core/debug/TestSubsystem.h" #include "core/logging/Logging.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> #include <algorithm> #include <limits> @@ -51,7 +51,7 @@ namespace walberla { using namespace walberla::pe; -typedef boost::tuple<Sphere, Plane> BodyTuple ; +typedef std::tuple<Sphere, Plane> BodyTuple ; int main( int argc, char ** argv ) { diff --git a/tests/pe/ParallelEquivalence.cpp b/tests/pe/ParallelEquivalence.cpp index a8fd5bffe87a2fe0afdbe1de42eb6e43e5679550..c5e2d2a8e5b5ad84c4829be2896f4f6fc24ffad9 100644 --- a/tests/pe/ParallelEquivalence.cpp +++ b/tests/pe/ParallelEquivalence.cpp @@ -31,7 +31,7 @@ #include "core/debug/TestSubsystem.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> #include <algorithm> #include <vector> @@ -41,7 +41,7 @@ using namespace walberla::pe; int runs = 1000; -typedef boost::tuple<Sphere, Plane> BodyTuple ; +typedef std::tuple<Sphere, Plane> BodyTuple ; struct BodyData { diff --git a/tests/pe/PeDocumentationSnippets.cpp b/tests/pe/PeDocumentationSnippets.cpp index e5067ab1056e12f2c8bcd0daf75b451ef4b2439b..aed806bf5306f5d87a1a867554a8e2320037c422 100644 --- a/tests/pe/PeDocumentationSnippets.cpp +++ b/tests/pe/PeDocumentationSnippets.cpp @@ -38,7 +38,7 @@ #include "core/debug/TestSubsystem.h" #include "vtk/VTKOutput.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> #include <algorithm> #include <vector> @@ -47,13 +47,13 @@ namespace walberla { using namespace walberla::pe; //! [Definition of Union Types] -typedef boost::tuple<Box, Capsule, Sphere> UnionTypeTuple; +typedef std::tuple<Box, Capsule, Sphere> UnionTypeTuple; using UnionT = Union<UnionTypeTuple>; using UnionID = UnionT *; //! [Definition of Union Types] //! [Definition BodyTypeTuple] -typedef boost::tuple<Box, Capsule, Plane, Sphere, UnionT> BodyTypeTuple ; +typedef std::tuple<Box, Capsule, Plane, Sphere, UnionT> BodyTypeTuple ; //! [Definition BodyTypeTuple] int main( int argc, char ** argv ) diff --git a/tests/pe/Raytracing.cpp b/tests/pe/Raytracing.cpp index e8f0f505a8313212c4895341a7ac7784234511d1..25e925b8acfba4148b9b7258cd8adc1a12a142fa 100644 --- a/tests/pe/Raytracing.cpp +++ b/tests/pe/Raytracing.cpp @@ -38,7 +38,7 @@ namespace walberla { using namespace walberla::pe; using namespace walberla::pe::raytracing; -typedef boost::tuple<Box, Plane, Sphere, Capsule, Ellipsoid> BodyTuple ; +typedef std::tuple<Box, Plane, Sphere, Capsule, Ellipsoid> BodyTuple ; void SphereIntersectsTest() { diff --git a/tests/pe/Refinement.cpp b/tests/pe/Refinement.cpp index 361cc322e069680d7911be277e5f3042bece498a..943526d15552da56f033ea22d735509c3c189291 100644 --- a/tests/pe/Refinement.cpp +++ b/tests/pe/Refinement.cpp @@ -35,7 +35,7 @@ #include "core/debug/TestSubsystem.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> #include <algorithm> #include <vector> @@ -43,7 +43,7 @@ namespace walberla { using namespace walberla::pe; -typedef boost::tuple<Sphere, Plane> BodyTuple ; +typedef std::tuple<Sphere, Plane> BodyTuple ; class SimpleLB { diff --git a/tests/pe/RefinementWithSpareProcesses.cpp b/tests/pe/RefinementWithSpareProcesses.cpp index 9a6b93462a6cab6feeb13bdd0b4c1b6e4299aeae..e4f1d4c80aec4bfc749908539f526a830e01c4fe 100644 --- a/tests/pe/RefinementWithSpareProcesses.cpp +++ b/tests/pe/RefinementWithSpareProcesses.cpp @@ -35,7 +35,7 @@ #include "core/debug/TestSubsystem.h" #include "core/grid_generator/SCIterator.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> #include <algorithm> #include <limits> @@ -44,7 +44,7 @@ namespace walberla { using namespace walberla::pe; -typedef boost::tuple<Sphere> BodyTuple ; +typedef std::tuple<Sphere> BodyTuple ; int main( int /*argc*/, char ** /*argv*/, const std::string& LBAlgorithm ) { diff --git a/tests/pe/SerializeDeserialize.cpp b/tests/pe/SerializeDeserialize.cpp index 4a6267aa779522d08564a86a51376d92d43afaea..4596f000523db90361acfd09190ae09983870c5f 100644 --- a/tests/pe/SerializeDeserialize.cpp +++ b/tests/pe/SerializeDeserialize.cpp @@ -32,12 +32,12 @@ #include "core/debug/TestSubsystem.h" #include "core/grid_generator/SCIterator.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { using namespace walberla::pe; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; void createDump() { diff --git a/tests/pe/SetBodyTypeIDs.cpp b/tests/pe/SetBodyTypeIDs.cpp index 6cc5999945b74729741aaf0feb62c9a0df2a13f3..72dc3af9004e480e896eb52c845454c8b79b1c4a 100644 --- a/tests/pe/SetBodyTypeIDs.cpp +++ b/tests/pe/SetBodyTypeIDs.cpp @@ -45,7 +45,7 @@ private: }; class A : public Base{ - template <class T> + template <class T, int N> friend struct SetBodyTypeIDs; private: static id_t staticTypeID_; @@ -57,7 +57,7 @@ public: }; class B : public Base{ - template <class T> + template <class T, int N> friend struct SetBodyTypeIDs; private: static id_t staticTypeID_; @@ -69,7 +69,7 @@ public: }; class C : public Base{ - template <class T> + template <class T, int N> friend struct SetBodyTypeIDs; private: static id_t staticTypeID_; @@ -114,7 +114,7 @@ int main( int argc, char** argv ) walberla::MPIManager::instance()->initializeMPI( &argc, &argv ); - typedef boost::tuple<A, B, C> BodyTuple ; + typedef std::tuple<A, B, C> BodyTuple ; SetBodyTypeIDs<BodyTuple>::execute(); WALBERLA_CHECK_UNEQUAL(A::getStaticTypeID(), 100); @@ -125,7 +125,7 @@ int main( int argc, char** argv ) WALBERLA_CHECK_UNEQUAL(A::getStaticTypeID(), C::getStaticTypeID()); WALBERLA_CHECK_UNEQUAL(B::getStaticTypeID(), C::getStaticTypeID()); - typedef boost::tuple<Plane, Sphere, Box, Capsule, Union< boost::tuple<Sphere, Box> > > BodyTuple2 ; + typedef std::tuple<Plane, Sphere, Box, Capsule, Union< std::tuple<Sphere, Box> > > BodyTuple2 ; SetBodyTypeIDs<BodyTuple2>::execute(); WALBERLA_CHECK_UNEQUAL(Plane::getStaticTypeID(), Sphere::getStaticTypeID()); WALBERLA_CHECK_UNEQUAL(Plane::getStaticTypeID(), Box::getStaticTypeID()); diff --git a/tests/pe/ShadowCopy.cpp b/tests/pe/ShadowCopy.cpp index bf3f39c921ad7878366d02b4454e2b2ae1f32540..ff5ff39404fd5c99dffff9fa3f4c9d5c0114c731 100644 --- a/tests/pe/ShadowCopy.cpp +++ b/tests/pe/ShadowCopy.cpp @@ -34,8 +34,8 @@ namespace walberla { using namespace walberla::pe; -using UnionT = Union<boost::tuple<Sphere> >; -typedef boost::tuple<Sphere, UnionT> BodyTuple ; +using UnionT = Union<std::tuple<Sphere> >; +typedef std::tuple<Sphere, UnionT> BodyTuple ; int main( int argc, char** argv ) { @@ -126,7 +126,7 @@ int main( int argc, char** argv ) destroyBodyBySID( *globalBodyStorage, forest->getBlockStorage(), storageID, sid ); WALBERLA_LOG_PROGRESS_ON_ROOT( " *** UNION *** "); - UnionT* un = createUnion< boost::tuple<Sphere> >( *globalBodyStorage, forest->getBlockStorage(), storageID, 0, Vec3(2,2,2) ); + UnionT* un = createUnion< std::tuple<Sphere> >( *globalBodyStorage, forest->getBlockStorage(), storageID, 0, Vec3(2,2,2) ); auto sp1 = createSphere(un, 10, Vec3(real_t(4.9),2,2), real_t(1)); auto sp2 = createSphere(un, 11, Vec3(3,2,2), real_t(1.5)); un->setPosition( Vec3( real_t(4.9), 2, 2) ); diff --git a/tests/pe/SimpleCCD.cpp b/tests/pe/SimpleCCD.cpp index b1388dab5846c876b419940148acd58a6dc6583f..3d0d5bc7e11e844fd5b672fc0207639d8565c7a3 100644 --- a/tests/pe/SimpleCCD.cpp +++ b/tests/pe/SimpleCCD.cpp @@ -36,7 +36,7 @@ namespace walberla { using namespace walberla::pe; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; int main( int argc, char** argv ) { diff --git a/tests/pe/SyncEquivalence.cpp b/tests/pe/SyncEquivalence.cpp index f15dcd4c7bfa47bb74c1c77c3afd456ce0874a39..d17e2f0f19d3e14fc3c128f4a386711479726b23 100644 --- a/tests/pe/SyncEquivalence.cpp +++ b/tests/pe/SyncEquivalence.cpp @@ -44,7 +44,7 @@ namespace walberla { using namespace walberla::pe; using namespace walberla::timing; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; struct BodyData { diff --git a/tests/pe/Synchronization.cpp b/tests/pe/Synchronization.cpp index 646e6d2390fafa8066033ff23dee1a3467962ded..3693e9ab8e2ddb5479b3e8fdef6cb0b3360e974f 100644 --- a/tests/pe/Synchronization.cpp +++ b/tests/pe/Synchronization.cpp @@ -31,12 +31,12 @@ #include "core/debug/TestSubsystem.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { using namespace walberla::pe; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; void checkSphere(StructuredBlockForest& forest, BlockDataID storageID, walberla::id_t sid, Sphere& ref, const Vec3& newPos) { diff --git a/tests/pe/SynchronizationDelete.cpp b/tests/pe/SynchronizationDelete.cpp index 6b649c29872b57ce376a60c089a259ff0ad385dd..1d9c48b2e5f07e7ca54445ea3ed69be0f910d03a 100644 --- a/tests/pe/SynchronizationDelete.cpp +++ b/tests/pe/SynchronizationDelete.cpp @@ -31,12 +31,12 @@ #include "core/debug/TestSubsystem.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { using namespace walberla::pe; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; void integrate(StructuredBlockForest& forest, BlockDataID storageID, const real_t dt) { diff --git a/tests/pe/SynchronizationLargeBody.cpp b/tests/pe/SynchronizationLargeBody.cpp index 3846a2b55a9b61606c152f082a6f34af3cf46abb..28fdc39d15e18d392b677ea6306dacb3269e6a32 100644 --- a/tests/pe/SynchronizationLargeBody.cpp +++ b/tests/pe/SynchronizationLargeBody.cpp @@ -30,12 +30,12 @@ #include "core/debug/TestSubsystem.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> namespace walberla { using namespace walberla::pe; -using BodyTuple = boost::tuple<Sphere> ; +using BodyTuple = std::tuple<Sphere> ; // checkSphere without dx void checkSphere(StructuredBlockForest& forest, BlockDataID storageID, walberla::id_t sid, SphereID ref, const Vec3& newPos) diff --git a/tests/pe/Union.cpp b/tests/pe/Union.cpp index 91db8412e917ffb127d1432d8524a7c25a9526d6..ce0ea5e96f63cefbe3cc2421c9b348cd351f803f 100644 --- a/tests/pe/Union.cpp +++ b/tests/pe/Union.cpp @@ -36,7 +36,7 @@ #include "core/debug/TestSubsystem.h" #include "vtk/VTKOutput.h" -#include <boost/tuple/tuple.hpp> +#include <tuple> #include <algorithm> #include <vector> @@ -44,8 +44,8 @@ namespace walberla { using namespace walberla::pe; -using UnionType = Union<boost::tuple<Sphere> > ; -typedef boost::tuple<Sphere, Plane, UnionType> BodyTuple ; +using UnionType = Union<std::tuple<Sphere> > ; +typedef std::tuple<Sphere, Plane, UnionType> BodyTuple ; void SnowManFallingOnPlane() { @@ -75,7 +75,7 @@ void SnowManFallingOnPlane() createPlane( *globalBodyStorage, 0, Vec3(0,0,1), Vec3(0,0,0) ); - UnionType* un = createUnion< boost::tuple<Sphere> >( *globalBodyStorage, forest->getBlockStorage(), storageID, 0, Vec3(5,5,5) ); + UnionType* un = createUnion< std::tuple<Sphere> >( *globalBodyStorage, forest->getBlockStorage(), storageID, 0, Vec3(5,5,5) ); auto sp1 = createSphere(un, 10, Vec3(5,5,1), real_t(1)); auto sp2 = createSphere(un, 11, Vec3(real_t(6.7),5,real_t(1.2)), real_t(1.1)); diff --git a/tests/pe_coupling/discrete_particle_methods/HinderedSettlingDynamicsDPM.cpp b/tests/pe_coupling/discrete_particle_methods/HinderedSettlingDynamicsDPM.cpp index f3dc7905e01378bffc4e39dea83ceb059758006e..512f650d9baa06ed758174667a501dd00f2ff225 100644 --- a/tests/pe_coupling/discrete_particle_methods/HinderedSettlingDynamicsDPM.cpp +++ b/tests/pe_coupling/discrete_particle_methods/HinderedSettlingDynamicsDPM.cpp @@ -91,7 +91,7 @@ typedef lbm::NoSlip< LatticeModel_T, flag_t > NoSlip_T; using BoundaryConditions_T = boost::tuples::tuple<NoSlip_T>; typedef BoundaryHandling<FlagField_T, Stencil_T, BoundaryConditions_T> BoundaryHandling_T; -typedef boost::tuple<pe::Plane, pe::Sphere> BodyTypeTuple ; +typedef std::tuple<pe::Plane, pe::Sphere> BodyTypeTuple ; /////////// // FLAGS // diff --git a/tests/pe_coupling/discrete_particle_methods/SphereWallCollisionBehaviorDPM.cpp b/tests/pe_coupling/discrete_particle_methods/SphereWallCollisionBehaviorDPM.cpp index f40e6156de97586ebb7029e269caa4862a62e5b3..f1ae8d8c04f5b686129bfa5ade82c5d6bc50c85d 100644 --- a/tests/pe_coupling/discrete_particle_methods/SphereWallCollisionBehaviorDPM.cpp +++ b/tests/pe_coupling/discrete_particle_methods/SphereWallCollisionBehaviorDPM.cpp @@ -90,7 +90,7 @@ typedef lbm::NoSlip< LatticeModel_T, flag_t > NoSlip_T; using BoundaryConditions_T = boost::tuples::tuple<NoSlip_T>; typedef BoundaryHandling<FlagField_T, Stencil_T, BoundaryConditions_T> BoundaryHandling_T; -typedef boost::tuple<pe::Plane, pe::Sphere> BodyTypeTuple ; +typedef std::tuple<pe::Plane, pe::Sphere> BodyTypeTuple ; /////////// // FLAGS // diff --git a/tests/pe_coupling/geometry/PeIntersectionRatioTest.cpp b/tests/pe_coupling/geometry/PeIntersectionRatioTest.cpp index 1ad423385b1bfc256c0812296e80151b50772a01..496f7db519c509f573c130c9b10a5c3ccaa79ae0 100644 --- a/tests/pe_coupling/geometry/PeIntersectionRatioTest.cpp +++ b/tests/pe_coupling/geometry/PeIntersectionRatioTest.cpp @@ -41,7 +41,7 @@ namespace pe_intersection_ratio_test using namespace walberla; -typedef boost::tuple<pe::Sphere, pe::Plane, pe::Ellipsoid> BodyTypeTuple; +typedef std::tuple<pe::Sphere, pe::Plane, pe::Ellipsoid> BodyTypeTuple; /*!\brief TODO */ diff --git a/tests/pe_coupling/momentum_exchange_method/BodyAtBlockBoarderCheck.cpp b/tests/pe_coupling/momentum_exchange_method/BodyAtBlockBoarderCheck.cpp index c7ac8a324c6d82134bd1153e9e6cb284a7908801..e70fe7f8e89f00298930db57617612056feee2fb 100644 --- a/tests/pe_coupling/momentum_exchange_method/BodyAtBlockBoarderCheck.cpp +++ b/tests/pe_coupling/momentum_exchange_method/BodyAtBlockBoarderCheck.cpp @@ -95,7 +95,7 @@ typedef pe_coupling::SimpleBB< LatticeModel_T, FlagField_T > MO_T; using BoundaryConditions_T = boost::tuples::tuple<MO_T>; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -using BodyTypeTuple = boost::tuple<pe::Sphere> ; +using BodyTypeTuple = std::tuple<pe::Sphere> ; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/BodyMappingTest.cpp b/tests/pe_coupling/momentum_exchange_method/BodyMappingTest.cpp index 695b8740056f5cc91835f302c2816a2c53b67441..59a224fe3fb1de87fad8b71c5f4f5c04d91d3cb2 100644 --- a/tests/pe_coupling/momentum_exchange_method/BodyMappingTest.cpp +++ b/tests/pe_coupling/momentum_exchange_method/BodyMappingTest.cpp @@ -77,7 +77,7 @@ typedef pe_coupling::SimpleBB< LatticeModel_T, FlagField_T > MO_T; typedef boost::tuples::tuple< NoSlip_T, MO_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -using BodyTypeTuple = boost::tuple<pe::Sphere> ; +using BodyTypeTuple = std::tuple<pe::Sphere> ; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/DragForceSphereMEM.cpp b/tests/pe_coupling/momentum_exchange_method/DragForceSphereMEM.cpp index 0c717fb156cb1075a37813f778fad4d57d96d352..3d07ede20cb85170b3d6fb3550b8bef909c18941 100644 --- a/tests/pe_coupling/momentum_exchange_method/DragForceSphereMEM.cpp +++ b/tests/pe_coupling/momentum_exchange_method/DragForceSphereMEM.cpp @@ -95,7 +95,7 @@ typedef pe_coupling::CurvedQuadratic< LatticeModel_T, FlagField_T > MO_MR_T; typedef boost::tuples::tuple< MO_BB_T, MO_CLI_T, MO_MR_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -using BodyTypeTuple = boost::tuple<pe::Sphere> ; +using BodyTypeTuple = std::tuple<pe::Sphere> ; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/DragForceSphereMEMRefinement.cpp b/tests/pe_coupling/momentum_exchange_method/DragForceSphereMEMRefinement.cpp index 1f61e239cc5dd21566990d042aedc9573c14d214..ade3a8f05483ef4553125f1c1a91d08cea04f7fc 100644 --- a/tests/pe_coupling/momentum_exchange_method/DragForceSphereMEMRefinement.cpp +++ b/tests/pe_coupling/momentum_exchange_method/DragForceSphereMEMRefinement.cpp @@ -103,7 +103,7 @@ typedef pe_coupling::CurvedLinear < LatticeModel_T, FlagField_T > MO_CLI_T; typedef boost::tuples::tuple< MO_BB_T, MO_CLI_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -using BodyTypeTuple = boost::tuple<pe::Sphere> ; +using BodyTypeTuple = std::tuple<pe::Sphere> ; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/GlobalBodyAsBoundaryMEMStaticRefinement.cpp b/tests/pe_coupling/momentum_exchange_method/GlobalBodyAsBoundaryMEMStaticRefinement.cpp index b494339bbeaa0c1c8c7af8e0e3185a741d5b70ea..a2b9a31056d80ef08eff3fa157d917a380f988c4 100644 --- a/tests/pe_coupling/momentum_exchange_method/GlobalBodyAsBoundaryMEMStaticRefinement.cpp +++ b/tests/pe_coupling/momentum_exchange_method/GlobalBodyAsBoundaryMEMStaticRefinement.cpp @@ -95,7 +95,7 @@ typedef pe_coupling::SimpleBB< LatticeModel_T, FlagField_T > MO_SBB_T; using BoundaryConditions_T = boost::tuples::tuple<MO_SBB_T>; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -using BodyTypeTuple = boost::tuple<pe::Plane>; +using BodyTypeTuple = std::tuple<pe::Plane>; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/LubricationCorrectionMEM.cpp b/tests/pe_coupling/momentum_exchange_method/LubricationCorrectionMEM.cpp index f1b545ec0a58507829da881819909f000bf37467..db7d357fa7fe853213a3f21ac2d320ae2ba15a30 100644 --- a/tests/pe_coupling/momentum_exchange_method/LubricationCorrectionMEM.cpp +++ b/tests/pe_coupling/momentum_exchange_method/LubricationCorrectionMEM.cpp @@ -99,7 +99,7 @@ typedef boost::tuples::tuple< FreeSlip_T, MO_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -typedef boost::tuple<pe::Sphere, pe::Plane> BodyTypeTuple ; +typedef std::tuple<pe::Sphere, pe::Plane> BodyTypeTuple ; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/PeriodicParticleChannelMEM.cpp b/tests/pe_coupling/momentum_exchange_method/PeriodicParticleChannelMEM.cpp index 678aa5822d5525967d045d2065f0e54aff873d2f..b130bb7d08f8abf6f26897b3928fd0f4a585894e 100644 --- a/tests/pe_coupling/momentum_exchange_method/PeriodicParticleChannelMEM.cpp +++ b/tests/pe_coupling/momentum_exchange_method/PeriodicParticleChannelMEM.cpp @@ -100,7 +100,7 @@ typedef pe_coupling::SimpleBB< LatticeModel_T, FlagField_T > MO_T; typedef boost::tuples::tuple< NoSlip_T, UBB_T, MO_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -typedef boost::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; +typedef std::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/SegreSilberbergMEM.cpp b/tests/pe_coupling/momentum_exchange_method/SegreSilberbergMEM.cpp index ca31d93920e212d15884fc0c77a152f55805fbfb..c074a75ee96925e4e083539e126b53f6c0b007d5 100644 --- a/tests/pe_coupling/momentum_exchange_method/SegreSilberbergMEM.cpp +++ b/tests/pe_coupling/momentum_exchange_method/SegreSilberbergMEM.cpp @@ -102,7 +102,7 @@ typedef pe_coupling::CurvedQuadratic< LatticeModel_T, FlagField_T > MO_MR_T; typedef boost::tuples::tuple< NoSlip_T, MO_BB_T, MO_CLI_T, MO_MR_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -typedef boost::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; +typedef std::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEM.cpp b/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEM.cpp index 482bc1883b9335798770053d4d4e6889d1849779..c1cc240d498ce6e3ed28d15646107043af8604ad 100644 --- a/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEM.cpp +++ b/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEM.cpp @@ -98,7 +98,7 @@ typedef pe_coupling::CurvedLinear< LatticeModel_T, FlagField_T > MO_T; typedef boost::tuples::tuple< NoSlip_T, MO_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -typedef boost::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; +typedef std::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEMDynamicRefinement.cpp b/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEMDynamicRefinement.cpp index c7be4552827c666ede71acc30871042f2ae71cba..a8888df59ef3253447242070939982078bd70cef 100644 --- a/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEMDynamicRefinement.cpp +++ b/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEMDynamicRefinement.cpp @@ -104,7 +104,7 @@ typedef pe_coupling::CurvedLinear< LatticeModel_T, FlagField_T > MO_T; typedef boost::tuples::tuple< NoSlip_T, MO_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -typedef boost::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; +typedef std::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEMStaticRefinement.cpp b/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEMStaticRefinement.cpp index f0863496bfc2b1a6c311447e1661de8e37cd1cd2..9e1407c26709a32c455559c12b45bc645a866226 100644 --- a/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEMStaticRefinement.cpp +++ b/tests/pe_coupling/momentum_exchange_method/SettlingSphereMEMStaticRefinement.cpp @@ -100,7 +100,7 @@ typedef pe_coupling::CurvedLinear< LatticeModel_T, FlagField_T > MO_T; typedef boost::tuples::tuple< NoSlip_T, MO_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -typedef boost::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; +typedef std::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/SquirmerTest.cpp b/tests/pe_coupling/momentum_exchange_method/SquirmerTest.cpp index 1d3bab503558cede6f0d84773ec7b717869157c2..0c8a6ccac228d5ce94d4d9fff0eff338bd5432fc 100644 --- a/tests/pe_coupling/momentum_exchange_method/SquirmerTest.cpp +++ b/tests/pe_coupling/momentum_exchange_method/SquirmerTest.cpp @@ -97,7 +97,7 @@ typedef pe_coupling::SimpleBB<LatticeModel_T, FlagField_T> MO_BB_T; using BoundaryConditions_T = boost::tuples::tuple<MO_BB_T>; typedef BoundaryHandling<FlagField_T, Stencil_T, BoundaryConditions_T> BoundaryHandling_T; -using BodyTypeTuple = boost::tuple<pe::Squirmer>; +using BodyTypeTuple = std::tuple<pe::Squirmer>; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/TaylorCouetteFlowMEM.cpp b/tests/pe_coupling/momentum_exchange_method/TaylorCouetteFlowMEM.cpp index b654d5dfaacbad39af9e10ebd3e5d803b9c44d33..7f6e659236f8b76053af10a1ea419677c2a96b2f 100644 --- a/tests/pe_coupling/momentum_exchange_method/TaylorCouetteFlowMEM.cpp +++ b/tests/pe_coupling/momentum_exchange_method/TaylorCouetteFlowMEM.cpp @@ -89,7 +89,7 @@ typedef pe_coupling::CurvedLinear< LatticeModel_T, FlagField_T > MO_T; using BoundaryConditions_T = boost::tuples::tuple<MO_T>; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -typedef boost::tuple< pe::Capsule, pe::CylindricalBoundary > BodyTypeTuple; +typedef std::tuple< pe::Capsule, pe::CylindricalBoundary > BodyTypeTuple; /////////// // FLAGS // diff --git a/tests/pe_coupling/momentum_exchange_method/TorqueSphereMEM.cpp b/tests/pe_coupling/momentum_exchange_method/TorqueSphereMEM.cpp index dd90350c7e9ed3075fafc438896c09a816492902..c76d112cd9020919f8f95b195c5d19146866c349 100644 --- a/tests/pe_coupling/momentum_exchange_method/TorqueSphereMEM.cpp +++ b/tests/pe_coupling/momentum_exchange_method/TorqueSphereMEM.cpp @@ -95,7 +95,7 @@ typedef pe_coupling::CurvedQuadratic< LatticeModel_T, FlagField_T > MO_MR_T; typedef boost::tuples::tuple< MO_BB_T, MO_CLI_T, MO_MR_T > BoundaryConditions_T; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -using BodyTypeTuple = boost::tuple<pe::Sphere> ; +using BodyTypeTuple = std::tuple<pe::Sphere> ; /////////// // FLAGS // diff --git a/tests/pe_coupling/partially_saturated_cells_method/DragForceSpherePSM.cpp b/tests/pe_coupling/partially_saturated_cells_method/DragForceSpherePSM.cpp index 1fadccab92c4c6c88aea97fe1bc902738e968459..969b81d6274883096db4df87531957f7b86f9d01 100644 --- a/tests/pe_coupling/partially_saturated_cells_method/DragForceSpherePSM.cpp +++ b/tests/pe_coupling/partially_saturated_cells_method/DragForceSpherePSM.cpp @@ -87,7 +87,7 @@ using FlagField_T = FlagField<flag_t>; typedef std::pair< pe::BodyID, real_t > BodyAndVolumeFraction_T; typedef GhostLayerField< std::vector< BodyAndVolumeFraction_T >, 1 > BodyAndVolumeFractionField_T; -using BodyTypeTuple = boost::tuple<pe::Sphere> ; +using BodyTypeTuple = std::tuple<pe::Sphere> ; /////////// // FLAGS // diff --git a/tests/pe_coupling/partially_saturated_cells_method/DragForceSpherePSMRefinement.cpp b/tests/pe_coupling/partially_saturated_cells_method/DragForceSpherePSMRefinement.cpp index bb890e698f560b4d5b6a7c1445c7ed1b45ce5dc2..092c0ea36edee47a9ec298c80c638f3a44e93694 100644 --- a/tests/pe_coupling/partially_saturated_cells_method/DragForceSpherePSMRefinement.cpp +++ b/tests/pe_coupling/partially_saturated_cells_method/DragForceSpherePSMRefinement.cpp @@ -102,7 +102,7 @@ typedef lbm::NoSlip< LatticeModel_T, flag_t > NoSlip_T; using BoundaryConditions_T = boost::tuples::tuple<NoSlip_T>; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -using BodyTypeTuple = boost::tuple<pe::Sphere> ; +using BodyTypeTuple = std::tuple<pe::Sphere> ; /////////// // FLAGS // diff --git a/tests/pe_coupling/partially_saturated_cells_method/SegreSilberbergPSM.cpp b/tests/pe_coupling/partially_saturated_cells_method/SegreSilberbergPSM.cpp index 935a0c1d51ef9dfbc175772cb1a7540e617dcaf1..deb8f68963cca2bfa801bfa69e7456cf9aec3f16 100644 --- a/tests/pe_coupling/partially_saturated_cells_method/SegreSilberbergPSM.cpp +++ b/tests/pe_coupling/partially_saturated_cells_method/SegreSilberbergPSM.cpp @@ -100,7 +100,7 @@ typedef lbm::NoSlip< LatticeModel_T, flag_t > NoSlip_T; using BoundaryConditions_T = boost::tuples::tuple<NoSlip_T>; typedef BoundaryHandling< FlagField_T, Stencil_T, BoundaryConditions_T > BoundaryHandling_T; -typedef boost::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; +typedef std::tuple< pe::Sphere, pe::Plane > BodyTypeTuple; /////////// // FLAGS // diff --git a/tests/pe_coupling/partially_saturated_cells_method/TorqueSpherePSM.cpp b/tests/pe_coupling/partially_saturated_cells_method/TorqueSpherePSM.cpp index c63f974e827b1b847716ee05c76a9590c6c89186..60a0e97be6fedc0da74921190a3b2f1330f73a9f 100644 --- a/tests/pe_coupling/partially_saturated_cells_method/TorqueSpherePSM.cpp +++ b/tests/pe_coupling/partially_saturated_cells_method/TorqueSpherePSM.cpp @@ -86,7 +86,7 @@ using FlagField_T = FlagField<flag_t>; typedef std::pair< pe::BodyID, real_t > BodyAndVolumeFraction_T; typedef GhostLayerField< std::vector< BodyAndVolumeFraction_T >, 1 > BodyAndVolumeFractionField_T; -using BodyTypeTuple = boost::tuple<pe::Sphere> ; +using BodyTypeTuple = std::tuple<pe::Sphere> ; /////////// // FLAGS // diff --git a/tests/pe_coupling/utility/BodiesForceTorqueContainerTest.cpp b/tests/pe_coupling/utility/BodiesForceTorqueContainerTest.cpp index dcb3382e6be657496dea0ae4651e165ea643fc61..528bd5e54f82d2cac99f5b28423c9694f54b3705 100644 --- a/tests/pe_coupling/utility/BodiesForceTorqueContainerTest.cpp +++ b/tests/pe_coupling/utility/BodiesForceTorqueContainerTest.cpp @@ -40,7 +40,7 @@ namespace force_torque_container_test using namespace walberla; -using BodyTypeTuple = boost::tuple<pe::Sphere> ; +using BodyTypeTuple = std::tuple<pe::Sphere> ; /*!\brief Test cases for the force torque container provided by the coupling module diff --git a/tests/pe_coupling/utility/PeSubCyclingTest.cpp b/tests/pe_coupling/utility/PeSubCyclingTest.cpp index ac538eaf4685d93a08d5381ba0d42a8cdd08473f..4e6a9f9c621a9e9512be8ab7d77b6b3522ce4285 100644 --- a/tests/pe_coupling/utility/PeSubCyclingTest.cpp +++ b/tests/pe_coupling/utility/PeSubCyclingTest.cpp @@ -41,7 +41,7 @@ namespace pe_sub_cycling_test using namespace walberla; -using BodyTypeTuple = boost::tuple<pe::Sphere> ; +using BodyTypeTuple = std::tuple<pe::Sphere> ; /*!\brief test case to check functionality of sub cycling in the pe time step provided by the coupling module *