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, constDataType >::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...
 
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 582 of file SharedArray.hpp.

Member Typedef Documentation

◆ BaseType

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

Definition at line 585 of file SharedArray.hpp.

◆ element

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

Definition at line 589 of file SharedArray.hpp.

◆ iterator

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

Definition at line 586 of file SharedArray.hpp.

◆ reference

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

Definition at line 587 of file SharedArray.hpp.

◆ size_type

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

Definition at line 588 of file SharedArray.hpp.

Constructor & Destructor Documentation

◆ Array() [1/10]

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

Definition at line 592 of file SharedArray.hpp.

592 : BaseType()
593 {
594 }
Array< OneD, const DataType > BaseType

◆ Array() [2/10]

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

Definition at line 596 of file SharedArray.hpp.

596 : BaseType(dim1Size)
597 {
598 }

◆ Array() [3/10]

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

Definition at line 600 of file SharedArray.hpp.

601 : BaseType(dim1Size, initValue)
602 {
603 }

◆ Array() [4/10]

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

Definition at line 605 of file SharedArray.hpp.

605 : BaseType(dim1Size, data)
606 {
607 }

◆ Array() [5/10]

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

Definition at line 609 of file SharedArray.hpp.

610 : BaseType(dim1Size, data, WrapArray)
611 {
612 }

◆ Array() [6/10]

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

Definition at line 614 of file SharedArray.hpp.

615 : BaseType(dim1Size, rhs)
616 {
617 }

◆ Array() [7/10]

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

Definition at line 619 of file SharedArray.hpp.

620 : BaseType(dim1Size, rhs.data())
621 {
622 }

◆ Array() [8/10]

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

Definition at line 624 of file SharedArray.hpp.

624 : BaseType(rhs)
625 {
626 }

◆ Array() [9/10]

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

Definition at line 628 of file SharedArray.hpp.

629 : BaseType(rhs.size(), rhs.data())
630 {
631 }

◆ Array() [10/10]

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

Definition at line 705 of file SharedArray.hpp.

707 : BaseType(rhs)
708 {
709 }

Member Function Documentation

◆ begin() [1/2]

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

Definition at line 665 of file SharedArray.hpp.

666 {
667 return this->m_data + this->m_offset;
668 }

◆ begin() [2/2]

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

Definition at line 661 of file SharedArray.hpp.

662 {
664 }

◆ ChangeSize()

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

Definition at line 711 of file SharedArray.hpp.

712 {
713 ASSERTL1(newSize <= this->m_capacity,
714 "Can't change an array size to something larger than its "
715 "capacity.");
716 this->m_size = newSize;
717 }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Definition: ErrorUtil.hpp:242

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 652 of file SharedArray.hpp.

654 {
655 Array<OneD, DataType> result(rhs);
656 result.m_offset += offset;
657 result.m_size = rhs.m_size - offset;
658 return result;
659 }

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 ( ) const
inline

Returns a c-style pointer to the underlying array.

Definition at line 317 of file SharedArray.hpp.

318 {
319 return m_data + m_offset;
320 }

◆ end() [1/2]

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

Definition at line 671 of file SharedArray.hpp.

672 {
673 return this->m_data + this->m_offset + this->m_size;
674 }

◆ end() [2/2]

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

Definition at line 296 of file SharedArray.hpp.

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

◆ 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 ( ) const
inline

Returns a c-style pointer to the underlying array.

Definition at line 311 of file SharedArray.hpp.

312 {
313 return m_data + m_offset;
314 }

◆ operator=()

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

Definition at line 646 of file SharedArray.hpp.

647 {
648 BaseType::operator=(rhs);
649 return *this;
650 }

◆ operator[]()

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

Definition at line 677 of file SharedArray.hpp.

678 {
679 ASSERTL1(static_cast<size_type>(i) < this->size(),
680 std::string("Element ") + std::to_string(i) +
681 std::string(" requested in an array of size ") +
682 std::to_string(this->size()));
683 return (get())[i];
684 }
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 702 of file SharedArray.hpp.

◆ NekMatrix

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

Definition at line 700 of file SharedArray.hpp.

◆ NekVector

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

Definition at line 698 of file SharedArray.hpp.