Cabana 0.8.0-dev
 
Loading...
Searching...
No Matches
Cabana_ParticleInit.hpp File Reference

Particle creation utilities. More...

#include <Kokkos_Core.hpp>
#include <Kokkos_Random.hpp>
#include <Cabana_ParticleList.hpp>
#include <Cabana_Slice.hpp>
#include <random>
#include <type_traits>
Include dependency graph for Cabana_ParticleInit.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Cabana::InitUniform
 Uniform particle initialization type tag. More...
 
struct  Cabana::InitRandom
 Random particle initialization type tag. More...
 

Namespaces

namespace  Cabana
 Core: particle data structures and algorithms.
 

Functions

template<class ArrayType>
auto Cabana::Impl::copyArray (ArrayType corner)
 Copy array (std, c-array) into Kokkos::Array for potential device use.
 
template<class ExecutionSpace, class InitFunctor, class ParticleListType, class ArrayType>
int Cabana::createParticles (InitRandom, ExecutionSpace exec_space, const InitFunctor &create_functor, ParticleListType &particle_list, const std::size_t num_particles, const ArrayType box_min, const ArrayType box_max, const std::size_t previous_num_particles=0, const bool shrink_to_fit=true, const uint64_t seed=342343901, typename std::enable_if< is_particle_list< ParticleListType >::value, int >::type *=0)
 Initialize random particles given an initialization functor.
 
template<class InitFunctor, class ParticleListType, class ArrayType>
int Cabana::createParticles (InitRandom tag, const InitFunctor &create_functor, ParticleListType &particle_list, const std::size_t num_particles, const ArrayType box_min, const ArrayType box_max, const std::size_t previous_num_particles=0, const bool shrink_to_fit=true, const uint64_t seed=342343901)
 Initialize random particles given an initialization functor.
 
template<class ExecutionSpace, class PositionType, class ArrayType>
void Cabana::createParticles (InitRandom, ExecutionSpace exec_space, PositionType &positions, const std::size_t num_particles, const ArrayType box_min, const ArrayType box_max, const std::size_t previous_num_particles=0, const uint64_t seed=342343901, typename std::enable_if<(is_slice< PositionType >::value||Kokkos::is_view< PositionType >::value), int >::type *=0)
 Initialize random particles.
 
template<class PositionType, class ArrayType>
void Cabana::createParticles (InitRandom tag, PositionType &positions, const std::size_t num_particles, const ArrayType box_min, const ArrayType box_max, const std::size_t previous_num_particles=0, const uint64_t seed=342343901, typename std::enable_if<(is_slice< PositionType >::value||Kokkos::is_view< PositionType >::value), int >::type *=0)
 Initialize random particles.
 
template<class ExecutionSpace, class InitFunctor, class ParticleListType, class PositionTag, class ArrayType>
int Cabana::createParticles (InitRandom tag, ExecutionSpace exec_space, const InitFunctor &create_functor, ParticleListType &particle_list, PositionTag position_tag, const std::size_t num_particles, const double min_dist, const ArrayType box_min, const ArrayType box_max, const std::size_t previous_num_particles=0, const bool shrink_to_fit=true, const uint64_t seed=342343901, typename std::enable_if< is_particle_list< ParticleListType >::value, int >::type *=0)
 Initialize random particles with minimum separation.
 
template<class InitFunctor, class ParticleListType, class PositionTag, class ArrayType>
int Cabana::createParticles (InitRandom tag, const InitFunctor &create_functor, ParticleListType &particle_list, PositionTag position_tag, const std::size_t num_particles, const double min_dist, const ArrayType box_min, const ArrayType box_max, const std::size_t previous_num_particles=0, const bool shrink_to_fit=true, const uint64_t seed=342343901)
 Initialize random particles with minimum separation.
 

Detailed Description

Particle creation utilities.