BioCMAMC-ST
Simulation::KernelInline::MoveFunctor Struct Reference

#include <move_kernel.hpp>

Collaboration diagram for Simulation::KernelInline::MoveFunctor:
[legend]

Public Types

using TeamPolicy = Kokkos::TeamPolicy<ComputeSpace>
using TeamMember = TeamPolicy::member_type

Public Member Functions

 MoveFunctor ()=default
 MoveFunctor (std::size_t p_team_move, std::size_t p_team_leave, MC::ParticlePositions p, MC::ParticleStatus _status, MC::DomainState< ComputeSpace > m, MC::pool_type _random_pool, MC::EventContainer _events, ProbeAutogeneratedBuffer _probes, MC::ParticleAges _ages)
 MoveFunctor (std::size_t p_team_move, std::size_t p_team_leave, double _d_t, MC::ParticlePositions p, MC::ParticleStatus _status, std::size_t n_p, MC::DomainState< ComputeSpace > m, MC::pool_type _random_pool, MC::EventContainer _events, ProbeAutogeneratedBuffer _probes, MC::ParticleAges _ages, bool b_move, bool b_leave)
void update (double _d_t, std::size_t n_p, MC::DomainState< ComputeSpace > move_i, MC::ParticlePositions _positions, MC::ParticleStatus _status, MC::ParticleAges _ages, bool b_move, bool b_leave)
KOKKOS_INLINE_FUNCTION void operator() (TagMove, const Kokkos::TeamPolicy< ComputeSpace >::member_type &team) const
KOKKOS_INLINE_FUNCTION void operator() (TagLeave _tag, const std::size_t &idx, std::size_t &local_dead_count) const
bool need_launch () const
KOKKOS_FUNCTION void handle_move (const std::size_t idx, const float rng1, const float rng2) const
template<typename ExecSpace>
KOKKOS_FORCEINLINE_FUNCTION std::size_t handle_exit (const std::size_t idx, const Kokkos::View< const MC::LeavingFlow *, ExecSpace > &leaving_flow, std::size_t &dead_count) const

Public Attributes

double d_t {}
MC::ParticlePositions positions
std::size_t n_particles {}
MC::DomainState< ComputeSpace, true > move
MC::pool_type random_pool
MC::ParticleStatus status
MC::EventContainer events
ProbeAutogeneratedBuffer probes
MC::ParticleAges ages
std::size_t m_p_team_leave {}
std::size_t m_p_team_move {}
bool enable_move {}
bool enable_leave {}

Member Typedef Documentation

◆ TeamMember

using Simulation::KernelInline::MoveFunctor::TeamMember = TeamPolicy::member_type

◆ TeamPolicy

using Simulation::KernelInline::MoveFunctor::TeamPolicy = Kokkos::TeamPolicy<ComputeSpace>

Constructor & Destructor Documentation

◆ MoveFunctor() [1/3]

Simulation::KernelInline::MoveFunctor::MoveFunctor ( )
default
Here is the caller graph for this function:

◆ MoveFunctor() [2/3]

Simulation::KernelInline::MoveFunctor::MoveFunctor ( std::size_t p_team_move,
std::size_t p_team_leave,
MC::ParticlePositions p,
MC::ParticleStatus _status,
MC::DomainState< ComputeSpace > m,
MC::pool_type _random_pool,
MC::EventContainer _events,
ProbeAutogeneratedBuffer _probes,
MC::ParticleAges _ages )
inline
Here is the call graph for this function:

◆ MoveFunctor() [3/3]

Simulation::KernelInline::MoveFunctor::MoveFunctor ( std::size_t p_team_move,
std::size_t p_team_leave,
double _d_t,
MC::ParticlePositions p,
MC::ParticleStatus _status,
std::size_t n_p,
MC::DomainState< ComputeSpace > m,
MC::pool_type _random_pool,
MC::EventContainer _events,
ProbeAutogeneratedBuffer _probes,
MC::ParticleAges _ages,
bool b_move,
bool b_leave )
inline

Member Function Documentation

◆ handle_exit()

template<typename ExecSpace>
KOKKOS_FORCEINLINE_FUNCTION std::size_t Simulation::KernelInline::MoveFunctor::handle_exit ( const std::size_t idx,
const Kokkos::View< const MC::LeavingFlow *, ExecSpace > & leaving_flow,
std::size_t & dead_count ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ handle_move()

KOKKOS_FUNCTION void Simulation::KernelInline::MoveFunctor::handle_move ( const std::size_t idx,
const float rng1,
const float rng2 ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

◆ need_launch()

bool Simulation::KernelInline::MoveFunctor::need_launch ( ) const
inlinenodiscard

◆ operator()() [1/2]

KOKKOS_INLINE_FUNCTION void Simulation::KernelInline::MoveFunctor::operator() ( TagLeave _tag,
const std::size_t & idx,
std::size_t & local_dead_count ) const
inline
Here is the call graph for this function:

◆ operator()() [2/2]

KOKKOS_INLINE_FUNCTION void Simulation::KernelInline::MoveFunctor::operator() ( TagMove ,
const Kokkos::TeamPolicy< ComputeSpace >::member_type & team ) const
inline
Here is the call graph for this function:

◆ update()

void Simulation::KernelInline::MoveFunctor::update ( double _d_t,
std::size_t n_p,
MC::DomainState< ComputeSpace > move_i,
MC::ParticlePositions _positions,
MC::ParticleStatus _status,
MC::ParticleAges _ages,
bool b_move,
bool b_leave )
inline

Member Data Documentation

◆ ages

MC::ParticleAges Simulation::KernelInline::MoveFunctor::ages

◆ d_t

double Simulation::KernelInline::MoveFunctor::d_t {}

◆ enable_leave

bool Simulation::KernelInline::MoveFunctor::enable_leave {}

◆ enable_move

bool Simulation::KernelInline::MoveFunctor::enable_move {}

◆ events

MC::EventContainer Simulation::KernelInline::MoveFunctor::events

◆ m_p_team_leave

std::size_t Simulation::KernelInline::MoveFunctor::m_p_team_leave {}

◆ m_p_team_move

std::size_t Simulation::KernelInline::MoveFunctor::m_p_team_move {}

◆ move

MC::DomainState<ComputeSpace, true> Simulation::KernelInline::MoveFunctor::move

◆ n_particles

std::size_t Simulation::KernelInline::MoveFunctor::n_particles {}

◆ positions

MC::ParticlePositions Simulation::KernelInline::MoveFunctor::positions

◆ probes

ProbeAutogeneratedBuffer Simulation::KernelInline::MoveFunctor::probes

◆ random_pool

MC::pool_type Simulation::KernelInline::MoveFunctor::random_pool

◆ status

MC::ParticleStatus Simulation::KernelInline::MoveFunctor::status

The documentation for this struct was generated from the following file: