XGC1
Classes | Public Member Functions | Public Attributes | List of all members
VertexList Class Reference

#include <vertex_list.hpp>

Inheritance diagram for VertexList:
Inheritance graph
[legend]
Collaboration diagram for VertexList:
Collaboration graph
[legend]

Classes

struct  IntegerRange
 

Public Member Functions

void plan ()
 
 VertexList ()
 
 VertexList (int start, int end)
 
template<typename F >
 VertexList (int n, F condition)
 
 VertexList (const View< int *, CLayout, HostType > &unordered_full_list, bool one_indexed)
 
KOKKOS_INLINE_FUNCTION bool is_in_list (int i) const
 
KOKKOS_INLINE_FUNCTION int size () const
 
template<typename DeviceExSpace , typename F >
void for_all (const std::string label, F lambda_func) const
 
template<class Device >
void pack_contiguous (const View< double *, CLayout, Device > &input, const View< double *, CLayout, Device > &contiguous) const
 
template<class Device >
void unpack_contiguous (const View< double *, CLayout, Device > &contiguous, const View< double *, CLayout, Device > &output) const
 
VertexList operator& (const VertexList &list2) const
 
VertexListoperator|= (const VertexList &rhs)
 
void shift (int shift_val)
 
VertexList batch (int first_val, int nvals) const
 
void batch (int first_val, int nvals, const View< int *, CLayout, HostType > &view) const
 
int min () const
 
int max () const
 
bool is_contiguous () const
 
void print (const std::string &msg) const
 
bool is_subset (const VertexList &list2) const
 
bool intersects (const VertexList &list2) const
 
bool intersects (int start, int end) const
 
template<typename T >
void set_to_value (const T &view, double value) const
 
template<typename T , typename F >
void set_to_value (const T &view, F func) const
 
template<class Device >
View< int *, CLayout, Device > get_view_int_not_in_list (int nnode_in) const
 
template<class Device >
View< bool *, CLayout, Device > get_view_in_list (const std::string label, int nnode_in) const
 

Public Attributes

View< IntegerRange *, CLayout, HostTyperanges
 
View< int *, CLayout, DeviceTypemapping
 
bool use_mapping
 

Constructor & Destructor Documentation

◆ VertexList() [1/4]

VertexList::VertexList ( )
inline
Here is the caller graph for this function:

◆ VertexList() [2/4]

VertexList::VertexList ( int  start,
int  end 
)

◆ VertexList() [3/4]

template<typename F >
VertexList::VertexList ( int  n,
condition 
)
inline

◆ VertexList() [4/4]

VertexList::VertexList ( const View< int *, CLayout, HostType > &  unordered_full_list,
bool  one_indexed 
)

Member Function Documentation

◆ batch() [1/2]

VertexList VertexList::batch ( int  first_val,
int  nvals 
) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ batch() [2/2]

void VertexList::batch ( int  first_val,
int  nvals,
const View< int *, CLayout, HostType > &  view 
) const

◆ for_all()

template<typename DeviceExSpace , typename F >
void VertexList::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:

◆ get_view_in_list()

template<class Device >
View<bool*, CLayout, Device> VertexList::get_view_in_list ( const std::string  label,
int  nnode_in 
) const
inline
Here is the caller graph for this function:

◆ get_view_int_not_in_list()

template<class Device >
View<int*, CLayout, Device> VertexList::get_view_int_not_in_list ( int  nnode_in) const
inline
Here is the caller graph for this function:

◆ intersects() [1/2]

bool VertexList::intersects ( const VertexList list2) const
Here is the call graph for this function:

◆ intersects() [2/2]

bool VertexList::intersects ( int  start,
int  end 
) const

◆ is_contiguous()

bool VertexList::is_contiguous ( ) const
Here is the caller graph for this function:

◆ is_in_list()

KOKKOS_INLINE_FUNCTION bool VertexList::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

◆ is_subset()

bool VertexList::is_subset ( const VertexList list2) const
Here is the call graph for this function:

◆ max()

int VertexList::max ( ) const
Here is the caller graph for this function:

◆ min()

int VertexList::min ( ) const
Here is the caller graph for this function:

◆ operator&()

VertexList VertexList::operator& ( const VertexList list2) const
Here is the call graph for this function:

◆ operator|=()

VertexList & VertexList::operator|= ( const VertexList rhs)

◆ pack_contiguous()

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

< Use execution space where views are allocated

Here is the call graph for this function:

◆ plan()

void VertexList::plan ( )
inline
Here is the call graph for this function:

◆ print()

void VertexList::print ( const std::string &  msg) const
Here is the caller graph for this function:

◆ set_to_value() [1/2]

template<typename T >
void VertexList::set_to_value ( const T &  view,
double  value 
) const
inline
Here is the caller graph for this function:

◆ set_to_value() [2/2]

template<typename T , typename F >
void VertexList::set_to_value ( const T &  view,
func 
) const
inline

◆ shift()

void VertexList::shift ( int  shift_val)
Here is the caller graph for this function:

◆ size()

KOKKOS_INLINE_FUNCTION int VertexList::size ( ) const
inline
Here is the caller graph for this function:

◆ unpack_contiguous()

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

< Use execution space where views are allocated

Here is the call graph for this function:

Member Data Documentation

◆ mapping

View<int*,CLayout,DeviceType> VertexList::mapping

◆ ranges

View<IntegerRange*,CLayout,HostType> VertexList::ranges

◆ use_mapping

bool VertexList::use_mapping

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