Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace mpl by mp11 (part 2/2) #3983

Draft
wants to merge 1 commit into
base: dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions include/picongpu/algorithms/ShiftCoordinateSystem.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,6 @@
#include <pmacc/meta/ForEach.hpp>
#include <pmacc/types.hpp>

#include <boost/mpl/placeholders.hpp>

namespace picongpu
{
/** shift to new coordinate system
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ namespace picongpu

using SimulationDimensions = pmacc::mp_iota<pmacc::mp_int<simDim>>;

meta::ForEach<SimulationDimensions, detail::AbsorbInOneDirection<boost::mpl::_1>>
meta::ForEach<SimulationDimensions, detail::AbsorbInOneDirection<pmacc::_1>>
absorbInAllDirections;

absorbInAllDirections(worker, field, thickness, absorberStrength, mapper, relExchangeDir);
Expand Down
9 changes: 5 additions & 4 deletions include/picongpu/fields/incidentField/Solver.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@

#include <pmacc/mappings/kernel/AreaMapping.hpp>
#include <pmacc/math/Vector.hpp>
#include <pmacc/meta/Apply.hpp>
#include <pmacc/meta/ForEach.hpp>
#include <pmacc/meta/conversion/MakeSeq.hpp>
#include <pmacc/traits/IsBaseTemplateOf.hpp>
Expand Down Expand Up @@ -633,10 +634,10 @@ namespace picongpu
parameters.direction = 1.0_X;
parameters.sourceTimeIteration = sourceTimeIteration;
parameters.timeIncrement = maxwellSolver::getTimeStep();
meta::ForEach<T_MinProfiles, ApplyUpdateE<boost::mpl::_1>> applyMinProfiles;
meta::ForEach<T_MinProfiles, ApplyUpdateE<pmacc::_1>> applyMinProfiles;
applyMinProfiles(parameters);
parameters.direction = -1.0_X;
meta::ForEach<T_MaxProfiles, ApplyUpdateE<boost::mpl::_1>> applyMaxProfiles;
meta::ForEach<T_MaxProfiles, ApplyUpdateE<pmacc::_1>> applyMaxProfiles;
applyMaxProfiles(parameters);
}

Expand Down Expand Up @@ -682,10 +683,10 @@ namespace picongpu
parameters.direction = 1.0_X;
parameters.sourceTimeIteration = sourceTimeIteration;
parameters.timeIncrement = 0.5_X * maxwellSolver::getTimeStep();
meta::ForEach<T_MinProfiles, ApplyUpdateB<boost::mpl::_1>> applyMinProfiles;
meta::ForEach<T_MinProfiles, ApplyUpdateB<pmacc::_1>> applyMinProfiles;
applyMinProfiles(parameters);
parameters.direction = -1.0_X;
meta::ForEach<T_MaxProfiles, ApplyUpdateB<boost::mpl::_1>> applyMaxProfiles;
meta::ForEach<T_MaxProfiles, ApplyUpdateB<pmacc::_1>> applyMaxProfiles;
applyMaxProfiles(parameters);
}

Expand Down
6 changes: 3 additions & 3 deletions include/picongpu/initialization/InitialiserController.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
#include <pmacc/Environment.hpp>
#include <pmacc/algorithms/math/defines/pi.hpp>
#include <pmacc/assert.hpp>
#include <pmacc/meta/Apply.hpp>
#include <pmacc/pluginSystem/PluginConnector.hpp>

namespace picongpu
Expand Down Expand Up @@ -98,7 +99,7 @@ namespace picongpu
* Calculate omega_p for each given species and create a `picLog::PHYSICS`
* log message
*/
template<typename T_Species = boost::mpl::_1>
template<typename T_Species = pmacc::_1>
struct LogOmegaP
{
void operator()()
Expand Down Expand Up @@ -229,8 +230,7 @@ namespace picongpu
{
using namespace fields;
using IncidentFieldProfiles = fields::incidentField::UniqueEnabledProfiles;
meta::ForEach<IncidentFieldProfiles, PrintIncidentFieldDispersion<boost::mpl::_1>>
printIncidentFieldDispersion;
meta::ForEach<IncidentFieldProfiles, PrintIncidentFieldDispersion<pmacc::_1>> printIncidentFieldDispersion;
printIncidentFieldDispersion();
}
};
Expand Down
21 changes: 9 additions & 12 deletions include/picongpu/particles/InitFunctors.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,13 @@
#include "picongpu/particles/manipulators/manipulators.def"

#include <pmacc/Environment.hpp>
#include <pmacc/meta/Apply.hpp>
#include <pmacc/meta/conversion/TypeToPointerPair.hpp>
#include <pmacc/particles/meta/FindByNameOrType.hpp>
#include <pmacc/traits/GetFlagType.hpp>
#include <pmacc/traits/HasFlag.hpp>
#include <pmacc/traits/Resolve.hpp>

#include <boost/mpl/apply.hpp>

namespace picongpu
{
Expand Down Expand Up @@ -85,18 +85,18 @@ namespace picongpu
* @tparam T_SpeciesType type or name as PMACC_CSTRING of the used species,
* see speciesDefinition.param
*/
template<typename T_DensityFunctor, typename T_PositionFunctor, typename T_SpeciesType = boost::mpl::_1>
template<typename T_DensityFunctor, typename T_PositionFunctor, typename T_SpeciesType = pmacc::_1>
struct CreateDensity
{
using SpeciesType = pmacc::particles::meta::FindByNameOrType_t<VectorAllSpecies, T_SpeciesType>;
using FrameType = typename SpeciesType::FrameType;


using UserDensityFunctor = typename boost::mpl::apply1<T_DensityFunctor, SpeciesType>::type;
using UserDensityFunctor = pmacc::Apply<T_DensityFunctor, SpeciesType>;
/* add interface for compile time interface validation*/
using DensityFunctor = densityProfiles::IProfile<UserDensityFunctor>;

using UserPositionFunctor = typename boost::mpl::apply1<T_PositionFunctor, SpeciesType>::type;
using UserPositionFunctor = pmacc::Apply<T_PositionFunctor, SpeciesType>;
/* add interface for compile time interface validation*/
using PositionFunctor = manipulators::IUnary<UserPositionFunctor>;

Expand Down Expand Up @@ -137,7 +137,7 @@ namespace picongpu
template<
typename T_Manipulator,
typename T_SrcSpeciesType,
typename T_DestSpeciesType = boost::mpl::_1,
typename T_DestSpeciesType = pmacc::_1,
typename T_SrcFilter = filter::All>
struct ManipulateDerive
{
Expand All @@ -146,9 +146,9 @@ namespace picongpu
using SrcSpeciesType = pmacc::particles::meta::FindByNameOrType_t<VectorAllSpecies, T_SrcSpeciesType>;
using SrcFrameType = typename SrcSpeciesType::FrameType;

using DestFunctor = typename boost::mpl::apply1<T_Manipulator, DestSpeciesType>::type;
using DestFunctor = pmacc::Apply<T_Manipulator, DestSpeciesType>;

using SrcFilter = typename boost::mpl::apply1<T_SrcFilter, SrcSpeciesType>::type;
using SrcFilter = pmacc::Apply<T_SrcFilter, SrcSpeciesType>;

/* note: this is a FilteredManipulator with filter::All for
* destination species, users can filter the destination directly via if's
Expand Down Expand Up @@ -184,10 +184,7 @@ namespace picongpu
* @tparam T_Filter picongpu::particles::filter,
* particle filter type to select source particles to derive
*/
template<
typename T_SrcSpeciesType,
typename T_DestSpeciesType = boost::mpl::_1,
typename T_Filter = filter::All>
template<typename T_SrcSpeciesType, typename T_DestSpeciesType = pmacc::_1, typename T_Filter = filter::All>
struct Derive : ManipulateDerive<manipulators::generic::None, T_SrcSpeciesType, T_DestSpeciesType, T_Filter>
{
};
Expand All @@ -208,7 +205,7 @@ namespace picongpu
* @tparam T_SpeciesType type or name as PMACC_CSTRING of the particle species
* to fill gaps in memory
*/
template<typename T_SpeciesType = boost::mpl::_1>
template<typename T_SpeciesType = pmacc::_1>
struct FillAllGaps
{
using SpeciesType = pmacc::particles::meta::FindByNameOrType_t<VectorAllSpecies, T_SpeciesType>;
Expand Down
17 changes: 7 additions & 10 deletions include/picongpu/particles/Manipulate.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,6 @@
#include <pmacc/particles/algorithm/CallForEach.hpp>
#include <pmacc/particles/meta/FindByNameOrType.hpp>

#include <boost/mpl/placeholders.hpp>

#include <cstdint>
#include <type_traits>

Expand All @@ -48,8 +46,8 @@ namespace picongpu
{
private:
using Species = pmacc::particles::meta::FindByNameOrType_t<VectorAllSpecies, T_Species>;
using SpeciesFunctor = typename boost::mpl::apply1<T_Manipulator, Species>::type;
using ParticleFilter = typename boost::mpl::apply1<T_Filter, Species>::type;
using SpeciesFunctor = pmacc::Apply<T_Manipulator, Species>;
using ParticleFilter = pmacc::Apply<T_Filter, Species>;

public:
using type = manipulators::IUnary<SpeciesFunctor, ParticleFilter>;
Expand All @@ -76,12 +74,12 @@ namespace picongpu
* @tparam T_Filter picongpu::particles::filter, particle filter type to
* select particles in `T_Species` to manipulate
* @tparam T_Area area to process particles in operator()(currentStep),
* wrapped into std::integral_constant for boost::mpl::apply to work;
* wrapped into std::integral_constant for meta programming to work;
* does not affect operator()(currentStep, areaMapperFactory)
*/
template<
typename T_Manipulator,
typename T_Species = boost::mpl::_1,
typename T_Species = pmacc::_1,
typename T_Filter = filter::All,
typename T_Area = std::integral_constant<uint32_t, CORE + BORDER>>
struct Manipulate
Expand All @@ -99,7 +97,7 @@ namespace picongpu
* workflow is as follows:
* - select the species to manipulate, often by filtering VectorAllSpecies
* - define a manipulator type; in case the manipulator has a species type
* as a template parameter, use the boost::mpl::_1 placeholder instead
* as a template parameter, use the pmacc::_1 placeholder instead
* - define a filter type when necessary
* - call manipulate()
*
Expand Down Expand Up @@ -135,8 +133,7 @@ namespace picongpu
inline void manipulate(uint32_t const currentStep)
{
using SpeciesSeq = pmacc::ToSeq<T_Species>;
using Functor
= Manipulate<T_Manipulator, boost::mpl::_1, T_Filter, std::integral_constant<uint32_t, T_area>>;
using Functor = Manipulate<T_Manipulator, pmacc::_1, T_Filter, std::integral_constant<uint32_t, T_area>>;
pmacc::meta::ForEach<SpeciesSeq, Functor> forEach;
forEach(currentStep);
}
Expand All @@ -156,7 +153,7 @@ namespace picongpu
inline void manipulate(uint32_t const currentStep, T_AreaMapperFactory const& areaMapperFactory)
{
using SpeciesSeq = pmacc::ToSeq<T_Species>;
using Functor = Manipulate<T_Manipulator, boost::mpl::_1, T_Filter>;
using Functor = Manipulate<T_Manipulator, pmacc::_1, T_Filter>;
pmacc::meta::ForEach<SpeciesSeq, Functor> forEach;
forEach(currentStep, areaMapperFactory);
}
Expand Down
10 changes: 4 additions & 6 deletions include/picongpu/particles/ParticlesFunctors.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ namespace picongpu
/* push all species */
using VectorSpeciesWithPusher =
typename pmacc::particles::traits::FilterByFlag<VectorAllSpecies, particlePusher<>>::type;
meta::ForEach<VectorSpeciesWithPusher, PushSpecies<boost::mpl::_1>> pushSpecies;
meta::ForEach<VectorSpeciesWithPusher, PushSpecies<pmacc::_1>> pushSpecies;
pushSpecies(currentStep, eventInt, updateEventList);

/* join all push events */
Expand All @@ -223,8 +223,7 @@ namespace picongpu
}

/* call communication for all species */
meta::ForEach<VectorSpeciesWithPusher, particles::CommunicateSpecies<boost::mpl::_1>>
communicateSpecies;
meta::ForEach<VectorSpeciesWithPusher, particles::CommunicateSpecies<pmacc::_1>> communicateSpecies;
communicateSpecies(updateEventList, commEventList);

/* join all communication events */
Expand All @@ -246,7 +245,7 @@ namespace picongpu
{
using VectorSpeciesWithPusher =
typename pmacc::particles::traits::FilterByFlag<VectorAllSpecies, particlePusher<>>::type;
meta::ForEach<VectorSpeciesWithPusher, RemoveOuterParticles<boost::mpl::_1>> removeOuterParticles;
meta::ForEach<VectorSpeciesWithPusher, RemoveOuterParticles<pmacc::_1>> removeOuterParticles;
removeOuterParticles(currentStep);
}
};
Expand Down Expand Up @@ -326,8 +325,7 @@ namespace picongpu
using hasIonizers = typename HasFlag<FrameType, ionizers<>>::type;
if(hasIonizers::value)
{
meta::ForEach<SelectIonizerList, CallIonizationScheme<SpeciesType, boost::mpl::_1>>
particleIonization;
meta::ForEach<SelectIonizerList, CallIonizationScheme<SpeciesType, pmacc::_1>> particleIonization;
particleIonization(cellDesc, currentStep);
}
}
Expand Down
3 changes: 1 addition & 2 deletions include/picongpu/particles/ParticlesInit.kernel
Original file line number Diff line number Diff line change
Expand Up @@ -205,8 +205,7 @@ namespace picongpu
using ParticleCleanedAttrList =
typename ResolveAndRemoveFromSeq<ParticleAttrList, AttrToIgnore>::type;

meta::ForEach<ParticleCleanedAttrList, SetAttributeToDefault<boost::mpl::_1>>
setToDefault;
meta::ForEach<ParticleCleanedAttrList, SetAttributeToDefault<pmacc::_1>> setToDefault;
setToDefault(particle);
}
particle[multiMask_] = 1;
Expand Down
6 changes: 2 additions & 4 deletions include/picongpu/particles/collision/WithPeer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,9 @@
#include "picongpu/particles/collision/InterCollision.hpp"
#include "picongpu/particles/collision/IntraCollision.hpp"

#include <pmacc/meta/Apply.hpp>
#include <pmacc/particles/meta/FindByNameOrType.hpp>

#include <boost/mpl/apply.hpp>

#include <cstdio>


Expand Down Expand Up @@ -106,8 +105,7 @@ namespace picongpu

using PeerSpecies = pmacc::particles::meta::FindByNameOrType_t<VectorAllSpecies, T_PeerSpecies>;

using CollisionFunctor =
typename boost::mpl::apply2<T_CollisionFunctor, BaseSpecies, PeerSpecies>::type;
using CollisionFunctor = pmacc::Apply<T_CollisionFunctor, BaseSpecies, PeerSpecies>;

detail::WithPeer<CollisionFunctor, T_FilterPair, BaseSpecies, PeerSpecies, colliderId, pairId>{}(
deviceHeap,
Expand Down
4 changes: 2 additions & 2 deletions include/picongpu/particles/debyeLength/Check.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ namespace picongpu
HINLINE std::uint32_t countElectronLikeSpecies()
{
Counter::value() = 0u;
meta::ForEach<T_SpeciesSeq, ElectonLikeSpeciesCounter<boost::mpl::_1>> count;
meta::ForEach<T_SpeciesSeq, ElectonLikeSpeciesCounter<pmacc::_1>> count;
count();
return Counter::value();
}
Expand Down Expand Up @@ -203,7 +203,7 @@ namespace picongpu
}
else
{
meta::ForEach<AllSpeciesWithCurrent, detail::CheckDebyeLength<boost::mpl::_1>> checkDebyeLength;
meta::ForEach<AllSpeciesWithCurrent, detail::CheckDebyeLength<pmacc::_1>> checkDebyeLength;
checkDebyeLength(cellDescription, isPrinting);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,7 @@ namespace picongpu
using SkipCells = typename pmacc::math::CT::shrinkTo<OrgSkipCells, simDim>::type;

template<typename T_SpeciesType>
struct apply
{
using type = EveryNthCellImpl<OrgSkipCells>;
};
using fn = EveryNthCellImpl;

HINLINE
EveryNthCellImpl(uint32_t currentStep)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,7 @@ namespace picongpu
using UserFunctor = particles::functor::User<T_UserFunctor>;

template<typename T_SpeciesType>
struct apply
{
using type = FreeFormulaImpl<UserFunctor>;
};
using fn = FreeFormulaImpl<UserFunctor>;

HINLINE FreeFormulaImpl(uint32_t currentStep) : UserFunctor(currentStep)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -305,14 +305,13 @@ namespace picongpu
} // namespace detail

/** Wrapper to be used in density.param, compatible with other density definitions
*
* Hooks internal implementation in detail:: to boost::mpl::apply
*
* @tparam T_ParamClass parameter type
*/
template<typename T_ParamClass>
struct FromOpenPMDImpl : public T_ParamClass
{
// TODO(bgruber): is this supposed to hook into MPL? I cannot find where this is used.
template<typename T_SpeciesType>
struct apply
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,7 @@ namespace picongpu
using ParamClass = T_ParamClass;

template<typename T_SpeciesType>
struct apply
{
using type = GaussianCloudImpl<ParamClass>;
};
using fn = GaussianCloudImpl;

HINLINE GaussianCloudImpl(uint32_t currentStep)
{
Expand Down
5 changes: 1 addition & 4 deletions include/picongpu/particles/densityProfiles/GaussianImpl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,7 @@ namespace picongpu
using ParamClass = T_ParamClass;

template<typename T_SpeciesType>
struct apply
{
using type = GaussianImpl<ParamClass>;
};
using fn = GaussianImpl;

HINLINE GaussianImpl(uint32_t currentStep)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,7 @@ namespace picongpu
struct HomogenousImpl
{
template<typename T_SpeciesType>
struct apply
{
using type = HomogenousImpl;
};
using fn = HomogenousImpl;

HINLINE HomogenousImpl(uint32_t currentStep)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,7 @@ namespace picongpu
using ParamClass = T_ParamClass;

template<typename T_SpeciesType>
struct apply
{
using type = LinearExponentialImpl<ParamClass>;
};
using fn = LinearExponentialImpl;

HINLINE LinearExponentialImpl(uint32_t currentStep)
{
Expand Down
Loading