OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT > Class Template Reference

Apply kernel operation. More...

Detailed Description

template<typename exp1, typename vector_type>
class vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >

Apply kernel operation.

Template Parameters
exp1expression1
NNlist

Definition at line 866 of file vector_dist_operators_apply_kernel.hpp.

#include <vector_dist_operators_apply_kernel.hpp>

Public Types

typedef has_vector_kernel< vector_orig_nr >::type is_ker
 indicate if this expression operate on kernel expression
 
typedef vector_orig_nr vtype
 vector type on which this expression work
 
typedef boost::mpl::bool_< true > is_sort
 indicate that is apply_kernel is not a sorted version
 
typedef NN_nr NN_type
 type of NN structure
 

Public Member Functions

NN_nrgetNN () const
 get the NN object
 
const vtypegetVector () const
 get the vector
 
void init () const
 This function must be called before value.
 
 vector_dist_expression_op (const exp1 &o1, const NN &cl, Kernel &ker, const vector_orig &vd)
 Constructor.
 
__device__ __host__ std::remove_reference< rtype >::type value (const vect_dist_key_dx &key) const
 Evaluate the expression.
 

Private Types

typedef boost::mpl::at< vector_type, boost::mpl::int_< 0 > >::type NN
 Get the type of the Cell-list.
 
typedef boost::mpl::at< vector_type, boost::mpl::int_< 1 > >::type Kernel
 Get the type of the kernel.
 
typedef boost::mpl::at< vector_type, boost::mpl::int_< 2 > >::type vector_orig
 Get the type of the vector containing the set of particles.
 
typedef std::remove_reference< NN >::type NN_nr
 Return the type of the Cell-list.
 
typedef std::remove_reference< Kernel >::type Kernel_nr
 Return the type of the kernel.
 
typedef std::remove_reference< vector_orig >::type vector_orig_nr
 Return the vector containing the position of the particles.
 
typedef apply_kernel_rtype< decltype(o1.value(vect_dist_key_dx()))>::rtype rtype
 Return type of the expression.
 

Private Attributes

const exp1 o1
 Expression.
 
mutable_or_not< NN, is_gpu_celllist< NN >::type::value||is_gpu_ker_celllist< NN >::type::value > cl
 Cell-list.
 
mutable_or_not< Kernel, is_gpu_celllist< NN >::type::value||is_gpu_ker_celllist< NN >::type::value > ker
 kernel
 
const vector_orig vd
 Vector containing the particles.
 

Member Typedef Documentation

◆ is_ker

template<typename exp1 , typename vector_type >
typedef has_vector_kernel<vector_orig_nr>::type vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::is_ker

indicate if this expression operate on kernel expression

Definition at line 901 of file vector_dist_operators_apply_kernel.hpp.

◆ is_sort

template<typename exp1 , typename vector_type >
typedef boost::mpl::bool_<true> vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::is_sort

indicate that is apply_kernel is not a sorted version

Definition at line 907 of file vector_dist_operators_apply_kernel.hpp.

◆ Kernel

template<typename exp1 , typename vector_type >
typedef boost::mpl::at<vector_type,boost::mpl::int_<1>>::type vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::Kernel
private

Get the type of the kernel.

Definition at line 871 of file vector_dist_operators_apply_kernel.hpp.

◆ Kernel_nr

template<typename exp1 , typename vector_type >
typedef std::remove_reference<Kernel>::type vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::Kernel_nr
private

Return the type of the kernel.

Definition at line 879 of file vector_dist_operators_apply_kernel.hpp.

◆ NN

template<typename exp1 , typename vector_type >
typedef boost::mpl::at<vector_type,boost::mpl::int_<0>>::type vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::NN
private

Get the type of the Cell-list.

Definition at line 869 of file vector_dist_operators_apply_kernel.hpp.

◆ NN_nr

template<typename exp1 , typename vector_type >
typedef std::remove_reference<NN>::type vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::NN_nr
private

Return the type of the Cell-list.

Definition at line 877 of file vector_dist_operators_apply_kernel.hpp.

◆ NN_type

template<typename exp1 , typename vector_type >
typedef NN_nr vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::NN_type

type of NN structure

Definition at line 910 of file vector_dist_operators_apply_kernel.hpp.

◆ rtype

template<typename exp1 , typename vector_type >
typedef apply_kernel_rtype<decltype(o1.value(vect_dist_key_dx()))>::rtype vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::rtype
private

Return type of the expression.

Definition at line 896 of file vector_dist_operators_apply_kernel.hpp.

◆ vector_orig

template<typename exp1 , typename vector_type >
typedef boost::mpl::at<vector_type,boost::mpl::int_<2>>::type vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::vector_orig
private

Get the type of the vector containing the set of particles.

Definition at line 874 of file vector_dist_operators_apply_kernel.hpp.

◆ vector_orig_nr

template<typename exp1 , typename vector_type >
typedef std::remove_reference<vector_orig>::type vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::vector_orig_nr
private

Return the vector containing the position of the particles.

Definition at line 881 of file vector_dist_operators_apply_kernel.hpp.

◆ vtype

template<typename exp1 , typename vector_type >
typedef vector_orig_nr vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::vtype

vector type on which this expression work

Definition at line 904 of file vector_dist_operators_apply_kernel.hpp.

Constructor & Destructor Documentation

◆ vector_dist_expression_op()

template<typename exp1 , typename vector_type >
vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::vector_dist_expression_op ( const exp1 &  o1,
const NN cl,
Kernel ker,
const vector_orig vd 
)
inline

Constructor.

Parameters
o1expression
clCell-list
kerKernel
vdvector containing the set of particles

Definition at line 950 of file vector_dist_operators_apply_kernel.hpp.

Member Function Documentation

◆ getNN()

template<typename exp1 , typename vector_type >
NN_nr * vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::getNN ( ) const
inline

get the NN object

Returns
the NN object

Definition at line 917 of file vector_dist_operators_apply_kernel.hpp.

◆ getVector()

template<typename exp1 , typename vector_type >
const vtype & vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::getVector ( ) const
inline

get the vector

Returns
the vector

Definition at line 927 of file vector_dist_operators_apply_kernel.hpp.

◆ init()

template<typename exp1 , typename vector_type >
void vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::init ( ) const
inline

This function must be called before value.

it initialize the expression if needed

Definition at line 937 of file vector_dist_operators_apply_kernel.hpp.

◆ value()

template<typename exp1 , typename vector_type >
__device__ __host__ std::remove_reference< rtype >::type vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::value ( const vect_dist_key_dx key) const
inline

Evaluate the expression.

Parameters
keywhere to evaluate the expression
Returns
the result of the expression

Definition at line 961 of file vector_dist_operators_apply_kernel.hpp.

Field Documentation

◆ cl

template<typename exp1 , typename vector_type >
mutable_or_not<NN,is_gpu_celllist<NN>::type::value || is_gpu_ker_celllist<NN>::type::value> vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::cl
private

Cell-list.

Definition at line 887 of file vector_dist_operators_apply_kernel.hpp.

◆ ker

template<typename exp1 , typename vector_type >
mutable_or_not<Kernel,is_gpu_celllist<NN>::type::value || is_gpu_ker_celllist<NN>::type::value> vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::ker
private

kernel

Definition at line 890 of file vector_dist_operators_apply_kernel.hpp.

◆ o1

template<typename exp1 , typename vector_type >
const exp1 vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::o1
private

Expression.

Definition at line 884 of file vector_dist_operators_apply_kernel.hpp.

◆ vd

template<typename exp1 , typename vector_type >
const vector_orig vector_dist_expression_op< exp1, vector_type, VECT_APPLYKER_IN_GEN_SORT >::vd
private

Vector containing the particles.

Definition at line 893 of file vector_dist_operators_apply_kernel.hpp.


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