IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
ippl::detail::ParticleLayout< T, Dim, PositionProperties > Class Template Reference

#include <ParticleLayout.h>

Inheritance diagram for ippl::detail::ParticleLayout< T, Dim, PositionProperties >:
Collaboration diagram for ippl::detail::ParticleLayout< T, Dim, PositionProperties >:

Public Types

typedef T value_type
typedef std::int64_t index_type
typedef Vector< T, Dimvector_type
using particle_position_type = ParticleAttrib<vector_type, PositionProperties...>
using position_memory_space = typename particle_position_type::memory_space
using position_execution_space = typename particle_position_type::execution_space
typedef std::array< BC, 2 *Dimbc_container_type

Public Member Functions

 ParticleLayout ()
 ~ParticleLayout ()=default
template<class PBase>
void update (PBase &)
void setParticleBC (bc_container_type bcs)
const bc_container_typegetParticleBC () const
void setParticleBC (BC bc)
void applyBC (const particle_position_type &R, const NDRegion< T, Dim > &nr)

Static Public Attributes

static constexpr unsigned dim = Dim

Private Attributes

bc_container_type bcs_m
 the list of boundary conditions for this set of particles

Detailed Description

template<typename T, unsigned Dim, typename... PositionProperties>
class ippl::detail::ParticleLayout< T, Dim, PositionProperties >

Definition at line 44 of file ParticleLayout.h.

Member Typedef Documentation

◆ bc_container_type

template<typename T, unsigned Dim, typename... PositionProperties>
typedef std::array<BC, 2 * Dim> ippl::detail::ParticleLayout< T, Dim, PositionProperties >::bc_container_type

Definition at line 54 of file ParticleLayout.h.

◆ index_type

template<typename T, unsigned Dim, typename... PositionProperties>
typedef std::int64_t ippl::detail::ParticleLayout< T, Dim, PositionProperties >::index_type

Definition at line 47 of file ParticleLayout.h.

◆ particle_position_type

template<typename T, unsigned Dim, typename... PositionProperties>
using ippl::detail::ParticleLayout< T, Dim, PositionProperties >::particle_position_type = ParticleAttrib<vector_type, PositionProperties...>

Definition at line 50 of file ParticleLayout.h.

◆ position_execution_space

template<typename T, unsigned Dim, typename... PositionProperties>
using ippl::detail::ParticleLayout< T, Dim, PositionProperties >::position_execution_space = typename particle_position_type::execution_space

Definition at line 52 of file ParticleLayout.h.

◆ position_memory_space

template<typename T, unsigned Dim, typename... PositionProperties>
using ippl::detail::ParticleLayout< T, Dim, PositionProperties >::position_memory_space = typename particle_position_type::memory_space

Definition at line 51 of file ParticleLayout.h.

◆ value_type

template<typename T, unsigned Dim, typename... PositionProperties>
typedef T ippl::detail::ParticleLayout< T, Dim, PositionProperties >::value_type

Definition at line 46 of file ParticleLayout.h.

◆ vector_type

template<typename T, unsigned Dim, typename... PositionProperties>
typedef Vector<T, Dim> ippl::detail::ParticleLayout< T, Dim, PositionProperties >::vector_type

Definition at line 48 of file ParticleLayout.h.

Constructor & Destructor Documentation

◆ ParticleLayout()

template<typename T, unsigned Dim, typename... PositionProperties>
ippl::detail::ParticleLayout< T, Dim, PositionProperties >::ParticleLayout ( )
inline

Definition at line 59 of file ParticleLayout.h.

◆ ~ParticleLayout()

template<typename T, unsigned Dim, typename... PositionProperties>
ippl::detail::ParticleLayout< T, Dim, PositionProperties >::~ParticleLayout ( )
default

Member Function Documentation

◆ applyBC()

template<typename T, unsigned Dim, typename... Properties>
void ippl::detail::ParticleLayout< T, Dim, Properties >::applyBC ( const particle_position_type & R,
const NDRegion< T, Dim > & nr )

Apply the given boundary conditions to the current particle positions.

Template Parameters
Ris the particle position attribute
nris the NDRegion
Parameters

Definition at line 34 of file ParticleLayout.hpp.

References bcs_m, Dim, ippl::ParticleAttrib< T, Properties >::getView(), ippl::detail::isUpper(), ippl::NO, ippl::PERIODIC, ippl::REFLECTIVE, and ippl::SINK.

Here is the call graph for this function:

◆ getParticleBC()

template<typename T, unsigned Dim, typename... PositionProperties>
const bc_container_type & ippl::detail::ParticleLayout< T, Dim, PositionProperties >::getParticleBC ( ) const
inline

Copy over the given boundary conditions.

Parameters
bcsare the boundary conditions

Definition at line 79 of file ParticleLayout.h.

◆ setParticleBC() [1/2]

template<typename T, unsigned Dim, typename... PositionProperties>
void ippl::detail::ParticleLayout< T, Dim, PositionProperties >::setParticleBC ( BC bc)
inline

Use the same boundary condition on each face

Parameters
bcsare the boundary conditions

Definition at line 85 of file ParticleLayout.h.

◆ setParticleBC() [2/2]

template<typename T, unsigned Dim, typename... PositionProperties>
void ippl::detail::ParticleLayout< T, Dim, PositionProperties >::setParticleBC ( bc_container_type bcs)
inline

Copy over the given boundary conditions.

Parameters
bcsare the boundary conditions

Definition at line 73 of file ParticleLayout.h.

◆ update()

template<typename T, unsigned Dim, typename... PositionProperties>
template<class PBase>
void ippl::detail::ParticleLayout< T, Dim, PositionProperties >::update ( PBase & )
inline

Definition at line 64 of file ParticleLayout.h.

Member Data Documentation

◆ bcs_m

template<typename T, unsigned Dim, typename... PositionProperties>
bc_container_type ippl::detail::ParticleLayout< T, Dim, PositionProperties >::bcs_m
private

the list of boundary conditions for this set of particles

Definition at line 97 of file ParticleLayout.h.

Referenced by applyBC().

◆ dim

template<typename T, unsigned Dim, typename... PositionProperties>
unsigned ippl::detail::ParticleLayout< T, Dim, PositionProperties >::dim = Dim
staticconstexpr

Definition at line 56 of file ParticleLayout.h.


The documentation for this class was generated from the following files: