XGC1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Member Functions | Private Types | Private Attributes | List of all members
VertexList< Device > Class Template Reference

#include <vertex_list.hpp>

Collaboration diagram for VertexList< Device >:
Collaboration graph
[legend]

Classes

struct  IntegerRange
 

Public Member Functions

 VertexList ()
 
 VertexList (int start, int end)
 
template<typename F >
 VertexList (int n, F condition)
 
 VertexList (const View< int *, CLayout, Device > &unordered_full_list, bool one_indexed)
 
template<typename F >
void parallel_for (F func) const
 
KOKKOS_INLINE_FUNCTION bool is_in_list (int i) const
 
KOKKOS_INLINE_FUNCTION int size ()
 
template<typename DeviceExSpace , typename F >
void for_all (const std::string label, F lambda_func) const
 
void pack_contiguous (const View< double *, CLayout, HostType > &input, const View< double *, CLayout, HostType > &contiguous) const
 
void unpack_contiguous (const View< double *, CLayout, HostType > &contiguous, const View< double *, CLayout, HostType > &output) const
 
VertexList intersection (const VertexList &list2) const
 
int min () const
 
bool is_contiguous () const
 
template<>
 VertexList (int start, int end)
 
template<>
 VertexList (const View< int *, CLayout, HostType > &unordered_full_list, bool one_indexed)
 
template<>
void pack_contiguous (const View< double *, CLayout, HostType > &input, const View< double *, CLayout, HostType > &contiguous) const
 
template<>
void unpack_contiguous (const View< double *, CLayout, HostType > &contiguous, const View< double *, CLayout, HostType > &output) const
 
template<>
VertexList< HostTypeintersection (const VertexList &list2) const
 
template<>
int min () const
 
template<>
bool is_contiguous () const
 

Private Types

using exspace = typename Device::execution_space
 Use execution space where views are allocated. More...
 

Private Attributes

View< IntegerRange *, CLayout,
Device > 
ranges
 
View< int *, CLayout, Device > singlets
 

Member Typedef Documentation

template<class Device>
using VertexList< Device >::exspace = typename Device::execution_space
private

Use execution space where views are allocated.

Constructor & Destructor Documentation

template<class Device>
VertexList< Device >::VertexList ( )
inline
template<class Device>
VertexList< Device >::VertexList ( int  start,
int  end 
)
template<class Device>
template<typename F >
VertexList< Device >::VertexList ( int  n,
condition 
)
inline
template<class Device>
VertexList< Device >::VertexList ( const View< int *, CLayout, Device > &  unordered_full_list,
bool  one_indexed 
)
template<>
VertexList< HostType >::VertexList ( int  start,
int  end 
)
template<>
VertexList< HostType >::VertexList ( const View< int *, CLayout, HostType > &  unordered_full_list,
bool  one_indexed 
)

Member Function Documentation

template<class Device>
template<typename DeviceExSpace , typename F >
void VertexList< Device >::for_all ( const std::string  label,
lambda_func 
) const
inline

Loops over vertices with a parallel_for, with no particle movement

Parameters
[in]labelis the label of the parallel_for used for debugging
[in]lambda_funcis the lambda function. Must be copy [=] not by reference

Here is the call graph for this function:

template<>
VertexList< HostType > VertexList< HostType >::intersection ( const VertexList< Device > &  list2) const

Here is the call graph for this function:

template<class Device>
VertexList VertexList< Device >::intersection ( const VertexList< Device > &  list2) const

Here is the caller graph for this function:

template<class Device>
bool VertexList< Device >::is_contiguous ( ) const

Here is the caller graph for this function:

template<>
bool VertexList< HostType >::is_contiguous ( ) const
template<class Device>
KOKKOS_INLINE_FUNCTION bool VertexList< Device >::is_in_list ( int  i) const
inline

Checks if a vertex is inside the list

Parameters
[in]iis the vertex index
Returns
Returns whether this vertex is in the list
template<>
int VertexList< HostType >::min ( ) const
template<class Device>
int VertexList< Device >::min ( ) const

Here is the caller graph for this function:

template<>
void VertexList< HostType >::pack_contiguous ( const View< double *, CLayout, HostType > &  input,
const View< double *, CLayout, HostType > &  contiguous 
) const

Here is the call graph for this function:

template<class Device>
void VertexList< Device >::pack_contiguous ( const View< double *, CLayout, HostType > &  input,
const View< double *, CLayout, HostType > &  contiguous 
) const

Here is the caller graph for this function:

template<class Device>
template<typename F >
void VertexList< Device >::parallel_for ( func) const
inline

Here is the call graph for this function:

template<class Device>
KOKKOS_INLINE_FUNCTION int VertexList< Device >::size ( )
inline

Here is the caller graph for this function:

template<>
void VertexList< HostType >::unpack_contiguous ( const View< double *, CLayout, HostType > &  contiguous,
const View< double *, CLayout, HostType > &  output 
) const

Here is the call graph for this function:

template<class Device>
void VertexList< Device >::unpack_contiguous ( const View< double *, CLayout, HostType > &  contiguous,
const View< double *, CLayout, HostType > &  output 
) const

Member Data Documentation

template<class Device>
View<IntegerRange*,CLayout,Device> VertexList< Device >::ranges
private
template<class Device>
View<int*,CLayout,Device> VertexList< Device >::singlets
private

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