WaveBlocksND
Classes | Functions
waveblocks::wavepackets::shapes::shape_enum Namespace Reference

Classes

struct  _strict_union__heap_entry
 

Functions

template<class MultiIndex >
std::vector< MultiIndex > _extend (const std::vector< MultiIndex > &source, dim_t start, dim_t len)
 
template<dim_t D, class MultiIndex >
ShapeSlice< D, MultiIndex > _extend (const ShapeSlice< D, MultiIndex > &slice, std::size_t offset)
 
template<dim_t D, class MultiIndex >
ShapeEnum< D, MultiIndex > extend (const ShapeEnum< D, MultiIndex > *source)
 For a given enumerated shape, enumerate its extension. More...
 
template<dim_t D>
bool _copy_subset__fast_equals (const std::array< int, D > &lhs, const std::array< int, D > &rhs)
 
template<dim_t D, class MultiIndex , int N>
void copy_subset (const HaWpBasisVector< N > &superset_data, std::size_t offset1, HaWpBasisVector< N > &subset_data, std::size_t offset2, const ShapeSlice< D, MultiIndex > &superset_slice, const ShapeSlice< D, MultiIndex > &subset_slice)
 
template<dim_t D, class MultiIndex , int N>
HaWpBasisVector< N > copy_subset (const HaWpBasisVector< N > &superset_data, const ShapeSlice< D, MultiIndex > &superset_slice, const ShapeSlice< D, MultiIndex > &subset_slice)
 
template<dim_t D, class MultiIndex , int N>
HaWpBasisVector< N > copy_subset (const HaWpBasisVector< N > &superset_data, const ShapeEnum< D, MultiIndex > *superset_enum, const ShapeEnum< D, MultiIndex > *subset_enum)
 
template<class Input1 , class Input2 , class Output , class Compare >
Output strict_union (Input1 begin1, Input1 end1, Input2 begin2, Input2 end2, Output sink, Compare less)
 Creates union of two shape slices. More...
 
template<class MultiIndex >
std::vector< MultiIndex > strict_union (std::vector< typename std::vector< MultiIndex >::const_iterator > begin, std::vector< typename std::vector< MultiIndex >::const_iterator > end)
 
template<dim_t D, class MultiIndex >
ShapeSlice< D, MultiIndex > strict_union (const std::vector< const ShapeSlice< D, MultiIndex > * > &slices, std::size_t union_offset)
 
template<dim_t D, class MultiIndex >
ShapeEnum< D, MultiIndex > strict_union (std::vector< ShapeEnum< D, MultiIndex > const * > const &enums)
 
template<dim_t D, class MultiIndex , std::size_t N>
ShapeEnum< D, MultiIndex > strict_union (const std::array< ShapeEnum< D, MultiIndex > *, N > &enum_list)
 
template<dim_t D, class MultiIndex , std::size_t N>
ShapeEnum< D, MultiIndex > strict_union (const std::array< const ShapeEnum< D, MultiIndex > *, N > &enum_list)
 
template<dim_t D, class MultiIndex >
ShapeEnum< D, MultiIndex > strict_union (std::initializer_list< const ShapeEnum< D, MultiIndex > * > enum_list)
 

Function Documentation

template<dim_t D>
bool waveblocks::wavepackets::shapes::shape_enum::_copy_subset__fast_equals ( const std::array< int, D > &  lhs,
const std::array< int, D > &  rhs 
)
template<class MultiIndex >
std::vector<MultiIndex> waveblocks::wavepackets::shapes::shape_enum::_extend ( const std::vector< MultiIndex > &  source,
dim_t  start,
dim_t  len 
)
template<dim_t D, class MultiIndex >
ShapeSlice<D, MultiIndex> waveblocks::wavepackets::shapes::shape_enum::_extend ( const ShapeSlice< D, MultiIndex > &  slice,
std::size_t  offset 
)
template<dim_t D, class MultiIndex , int N>
void waveblocks::wavepackets::shapes::shape_enum::copy_subset ( const HaWpBasisVector< N > &  superset_data,
std::size_t  offset1,
HaWpBasisVector< N > &  subset_data,
std::size_t  offset2,
const ShapeSlice< D, MultiIndex > &  superset_slice,
const ShapeSlice< D, MultiIndex > &  subset_slice 
)
Attention
This function shows undefined behaviour if subset_slice is not a subset of superset_slice.
Template Parameters
Ddimension of multi-index
Tcomponent data type of superset_data and return value
Nnumber of quadrature points or Eigen::Dynamic
Parameters
[in]superset_data(number of nodes in superset, number of quadrature points)-matrix
[in]superset_slicenodes within superset slice
[in]offset1Offset within the basis shape
[in]subset_data(number of nodes in subset, number of quadrature points)-matrix
[in]subset_slicenodes within subset slice
[in]offset2Offset within the basis shape
Returns
(number of nodes in subset, number of quadrature points)-matrix
template<dim_t D, class MultiIndex , int N>
HaWpBasisVector<N> waveblocks::wavepackets::shapes::shape_enum::copy_subset ( const HaWpBasisVector< N > &  superset_data,
const ShapeSlice< D, MultiIndex > &  superset_slice,
const ShapeSlice< D, MultiIndex > &  subset_slice 
)
template<dim_t D, class MultiIndex , int N>
HaWpBasisVector<N> waveblocks::wavepackets::shapes::shape_enum::copy_subset ( const HaWpBasisVector< N > &  superset_data,
const ShapeEnum< D, MultiIndex > *  superset_enum,
const ShapeEnum< D, MultiIndex > *  subset_enum 
)
template<dim_t D, class MultiIndex >
ShapeEnum<D, MultiIndex> waveblocks::wavepackets::shapes::shape_enum::extend ( const ShapeEnum< D, MultiIndex > *  source)

For a given enumerated shape, enumerate its extension.

Parameters
sourcepointer to basic shape enumeration
Returns
enumerated shape extension
template<class Input1 , class Input2 , class Output , class Compare >
Output waveblocks::wavepackets::shapes::shape_enum::strict_union ( Input1  begin1,
Input1  end1,
Input2  begin2,
Input2  end2,
Output  sink,
Compare  less 
)

Creates union of two shape slices.

\[ \forall k \colon k \in union(\mathfrak{K}_1,\mathfrak{K}_2) \iff k \in \mathfrak{K}_1 \lor k \in \mathfrak{K}_2 \]

Parameters
[in]begin1input iterator to begin of lattice point vector of first slice
[in]end1input iterator to end of lattice point vector of first slice
[in]begin2input iterator to begin of lattice point vector of second slice
[in]end2input iterator to end of lattice point vector of second slice
[out]sinkoutput iterator to store united slice
[in]lessfunction object that implements less operation on multi-indices
Template Parameters
Input1type of first input iterator
Input2type of second input iterator
Outputtype of output iterator
Comparetype of function object that implements less operation on multi-indices
Returns
union of both slices
template<class MultiIndex >
std::vector<MultiIndex> waveblocks::wavepackets::shapes::shape_enum::strict_union ( std::vector< typename std::vector< MultiIndex >::const_iterator >  begin,
std::vector< typename std::vector< MultiIndex >::const_iterator >  end 
)
template<dim_t D, class MultiIndex >
ShapeSlice<D, MultiIndex> waveblocks::wavepackets::shapes::shape_enum::strict_union ( const std::vector< const ShapeSlice< D, MultiIndex > * > &  slices,
std::size_t  union_offset 
)
template<dim_t D, class MultiIndex >
ShapeEnum<D, MultiIndex> waveblocks::wavepackets::shapes::shape_enum::strict_union ( std::vector< ShapeEnum< D, MultiIndex > const * > const &  enums)
template<dim_t D, class MultiIndex , std::size_t N>
ShapeEnum<D, MultiIndex> waveblocks::wavepackets::shapes::shape_enum::strict_union ( const std::array< ShapeEnum< D, MultiIndex > *, N > &  enum_list)
Parameters
enum_list
template<dim_t D, class MultiIndex , std::size_t N>
ShapeEnum<D, MultiIndex> waveblocks::wavepackets::shapes::shape_enum::strict_union ( const std::array< const ShapeEnum< D, MultiIndex > *, N > &  enum_list)
Parameters
enum_list
template<dim_t D, class MultiIndex >
ShapeEnum<D, MultiIndex> waveblocks::wavepackets::shapes::shape_enum::strict_union ( std::initializer_list< const ShapeEnum< D, MultiIndex > * >  enum_list)
Parameters
enum_list