Nektar++
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
Nektar::Array< OneD, DataType > Class Template Reference

1D Array More...

#include <SharedArray.hpp>

Inheritance diagram for Nektar::Array< OneD, DataType >:
[legend]

Public Types

typedef Array< OneD, const DataType > BaseType
 
typedef BaseType::iterator iterator
 
typedef BaseType::reference reference
 
typedef BaseType::size_type size_type
 
typedef BaseType::element element
 
- Public Types inherited from Nektar::Array< OneD, const DataType >
typedef DataType * ArrayType
 
typedef const DataType & const_reference
 
typedef DataType & reference
 
typedef const DataType * const_iterator
 
typedef DataType * iterator
 
typedef DataType element
 
typedef size_t size_type
 

Public Member Functions

 Array ()
 
 Array (size_type dim1Size)
 
 Array (size_type dim1Size, const DataType &initValue)
 
 Array (size_type dim1Size, const DataType *data)
 
 Array (size_type dim1Size, DataType *data, bool WrapArray)
 
 Array (size_type dim1Size, const Array< OneD, DataType > &rhs)
 
 Array (size_type dim1Size, const Array< OneD, const DataType > &rhs)
 
 Array (const Array< OneD, DataType > &rhs)
 
 Array (const Array< OneD, const DataType > &rhs)
 
Array< OneD, DataType > & operator= (const Array< OneD, DataType > &rhs)
 
Array< OneD, const DataType >::const_iterator begin () const
 
iterator begin ()
 
iterator end ()
 
reference operator[] (size_type i)
 
elementget ()
 
elementdata ()
 
const_iterator end () const
 
const elementget () const
 Returns a c-style pointer to the underlying array. More...
 
const elementdata () const
 Returns a c-style pointer to the underlying array. More...
 
- Public Member Functions inherited from Nektar::Array< OneD, const DataType >
 Array ()
 Creates an empty array. More...
 
 Array (size_type dim1Size)
 Creates an array of size dim1Size. More...
 
 Array (size_type dim1Size, const DataType &initValue)
 Creates a 1D array with each element initialized to an initial value. More...
 
 Array (size_type dim1Size, const DataType *data)
 Creates a 1D array a copies data into it. More...
 
 Array (size_type dim1Size, const Array< OneD, const DataType > &rhs)
 Creates a 1D array that references rhs. More...
 
 Array (const Array< OneD, const DataType > &rhs)
 Creates a reference to rhs. More...
 
 ~Array ()
 
Array< OneD, const DataType > & operator= (const Array< OneD, const DataType > &rhs)
 Creates a reference to rhs. More...
 
const_iterator begin () const
 
const_iterator end () const
 
const_reference operator[] (size_type i) const
 
const elementget () const
 Returns a c-style pointer to the underlying array. More...
 
const elementdata () const
 Returns a c-style pointer to the underlying array. More...
 
size_type num_dimensions () const
 Returns 1. More...
 
size_type size () const
 Returns the array's size. More...
 
 DEPRECATED (5.1.0, size) size_type num_elements() const
 Returns the array's size. Deprecated. More...
 
size_type capacity () const
 Returns the array's capacity. More...
 
size_type GetOffset () const
 Returns the array's offset. More...
 
size_type GetCount () const
 Returns the array's reference counter. More...
 
bool Overlaps (const Array< OneD, const DataType > &rhs) const
 Returns true is this array and rhs overlap. More...
 

Static Public Member Functions

static Array< OneD, DataType > CreateWithOffset (const Array< OneD, DataType > &rhs, unsigned int offset)
 

Protected Member Functions

 Array (const Array< OneD, const DataType > &rhs, AllowWrappingOfConstArrays a)
 
void ChangeSize (size_type newSize)
 

Friends

template<typename T1 >
class NekVector
 
template<typename T1 , typename T3 >
class NekMatrix
 
class LinearSystem
 

Additional Inherited Members

- Protected Attributes inherited from Nektar::Array< OneD, const DataType >
size_type m_size
 
size_type m_capacity
 
DataType * m_data
 
size_typem_count
 
size_type m_offset
 

Detailed Description

template<typename DataType>
class Nektar::Array< OneD, DataType >

1D Array

pageNekArrays

Misc notes.

Through out the 1D Array class you will see things like "using BaseType::begin" and "using BaseType::end". This is necessary to bring the methods from the ConstArray into scope in Array class. Typically this is not necessary, but since we have method names which match those in the base class, the base class names are hidden. Therefore, we have to explicitly bring them into scope to use them.

Definition at line 594 of file SharedArray.hpp.

Member Typedef Documentation

◆ BaseType

template<typename DataType >
typedef Array<OneD, const DataType> Nektar::Array< OneD, DataType >::BaseType

Definition at line 597 of file SharedArray.hpp.

◆ element

template<typename DataType >
typedef BaseType::element Nektar::Array< OneD, DataType >::element

Definition at line 601 of file SharedArray.hpp.

◆ iterator

template<typename DataType >
typedef BaseType::iterator Nektar::Array< OneD, DataType >::iterator

Definition at line 598 of file SharedArray.hpp.

◆ reference

template<typename DataType >
typedef BaseType::reference Nektar::Array< OneD, DataType >::reference

Definition at line 599 of file SharedArray.hpp.

◆ size_type

template<typename DataType >
typedef BaseType::size_type Nektar::Array< OneD, DataType >::size_type

Definition at line 600 of file SharedArray.hpp.

Constructor & Destructor Documentation

◆ Array() [1/10]

template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( )
inline

Definition at line 604 of file SharedArray.hpp.

604  : BaseType()
605  {
606  }
Array< OneD, const DataType > BaseType

◆ Array() [2/10]

template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( size_type  dim1Size)
inlineexplicit

Definition at line 608 of file SharedArray.hpp.

608  : BaseType(dim1Size)
609  {
610  }

◆ Array() [3/10]

template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( size_type  dim1Size,
const DataType &  initValue 
)
inline

Definition at line 612 of file SharedArray.hpp.

613  : BaseType(dim1Size, initValue)
614  {
615  }

◆ Array() [4/10]

template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( size_type  dim1Size,
const DataType *  data 
)
inline

Definition at line 617 of file SharedArray.hpp.

617  : BaseType(dim1Size, data)
618  {
619  }

◆ Array() [5/10]

template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( size_type  dim1Size,
DataType *  data,
bool  WrapArray 
)
inline

Definition at line 621 of file SharedArray.hpp.

622  : BaseType(dim1Size, data, WrapArray)
623  {
624  }

◆ Array() [6/10]

template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( size_type  dim1Size,
const Array< OneD, DataType > &  rhs 
)
inline

Definition at line 626 of file SharedArray.hpp.

627  : BaseType(dim1Size, rhs)
628  {
629  }

◆ Array() [7/10]

template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( size_type  dim1Size,
const Array< OneD, const DataType > &  rhs 
)
inline

Definition at line 631 of file SharedArray.hpp.

632  : BaseType(dim1Size, rhs.data())
633  {
634  }

◆ Array() [8/10]

template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( const Array< OneD, DataType > &  rhs)
inline

Definition at line 636 of file SharedArray.hpp.

636  : BaseType(rhs)
637  {
638  }

◆ Array() [9/10]

template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( const Array< OneD, const DataType > &  rhs)
inline

Definition at line 640 of file SharedArray.hpp.

641  : BaseType(rhs.size(), rhs.data())
642  {
643  }

◆ Array() [10/10]

template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( const Array< OneD, const DataType > &  rhs,
AllowWrappingOfConstArrays  a 
)
inlineprotected

Definition at line 717 of file SharedArray.hpp.

718  : BaseType(rhs)
719  {
720  boost::ignore_unused(a);
721  }

Member Function Documentation

◆ begin() [1/2]

template<typename DataType >
iterator Nektar::Array< OneD, DataType >::begin ( )
inline

Definition at line 677 of file SharedArray.hpp.

678  {
679  return this->m_data + this->m_offset;
680  }

◆ begin() [2/2]

template<typename DataType >
Array<OneD, const DataType>::const_iterator Nektar::Array< OneD, DataType >::begin ( ) const
inline

Definition at line 673 of file SharedArray.hpp.

674  {
676  }

◆ ChangeSize()

template<typename DataType >
void Nektar::Array< OneD, DataType >::ChangeSize ( size_type  newSize)
inlineprotected

Definition at line 723 of file SharedArray.hpp.

724  {
725  ASSERTL1(newSize <= this->m_capacity,
726  "Can't change an array size to something larger than its "
727  "capacity.");
728  this->m_size = newSize;
729  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Definition: ErrorUtil.hpp:249

References ASSERTL1.

◆ CreateWithOffset()

template<typename DataType >
static Array<OneD, DataType> Nektar::Array< OneD, DataType >::CreateWithOffset ( const Array< OneD, DataType > &  rhs,
unsigned int  offset 
)
inlinestatic

Definition at line 664 of file SharedArray.hpp.

666  {
667  Array<OneD, DataType> result(rhs);
668  result.m_offset += offset;
669  result.m_size = rhs.m_size - offset;
670  return result;
671  }

References Nektar::Array< OneD, const DataType >::m_offset, and Nektar::Array< OneD, const DataType >::m_size.

◆ data() [1/2]

template<typename DataType >
element* Nektar::Array< OneD, DataType >::data ( )
inline

◆ data() [2/2]

template<typename DataType >
const element* Nektar::Array< OneD, const DataType >::data
inline

Returns a c-style pointer to the underlying array.

Definition at line 318 of file SharedArray.hpp.

319  {
320  return m_data + m_offset;
321  }

◆ end() [1/2]

template<typename DataType >
iterator Nektar::Array< OneD, DataType >::end ( )
inline

Definition at line 683 of file SharedArray.hpp.

684  {
685  return this->m_data + this->m_offset + this->m_size;
686  }

◆ end() [2/2]

template<typename DataType >
const_iterator Nektar::Array< OneD, const DataType >::end
inline

Definition at line 297 of file SharedArray.hpp.

298  {
299  return m_data + m_offset + m_size;
300  }

◆ get() [1/2]

template<typename DataType >
element* Nektar::Array< OneD, DataType >::get ( )
inline

◆ get() [2/2]

template<typename DataType >
const element* Nektar::Array< OneD, const DataType >::get
inline

Returns a c-style pointer to the underlying array.

Definition at line 312 of file SharedArray.hpp.

313  {
314  return m_data + m_offset;
315  }

◆ operator=()

template<typename DataType >
Array<OneD, DataType>& Nektar::Array< OneD, DataType >::operator= ( const Array< OneD, DataType > &  rhs)
inline

Definition at line 658 of file SharedArray.hpp.

659  {
660  BaseType::operator=(rhs);
661  return *this;
662  }

◆ operator[]()

template<typename DataType >
reference Nektar::Array< OneD, DataType >::operator[] ( size_type  i)
inline

Definition at line 689 of file SharedArray.hpp.

690  {
691  ASSERTL1(static_cast<size_type>(i) < this->size(),
692  std::string("Element ") + std::to_string(i) +
693  std::string(" requested in an array of size ") +
694  std::to_string(this->size()));
695  return (get())[i];
696  }
BaseType::size_type size_type
size_type size() const
Returns the array's size.

References ASSERTL1.

Friends And Related Function Documentation

◆ LinearSystem

template<typename DataType >
friend class LinearSystem
friend

Definition at line 714 of file SharedArray.hpp.

◆ NekMatrix

template<typename DataType >
template<typename T1 , typename T3 >
friend class NekMatrix
friend

Definition at line 712 of file SharedArray.hpp.

◆ NekVector

template<typename DataType >
template<typename T1 >
friend class NekVector
friend

Definition at line 710 of file SharedArray.hpp.