Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 >:
Inheritance graph
[legend]
Collaboration diagram for Nektar::Array< OneD, DataType >:
Collaboration graph
[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 unsigned int size_type
 

Public Member Functions

 Array ()
 
 Array (unsigned int dim1Size)
 
 Array (unsigned int dim1Size, const DataType &initValue)
 
 Array (unsigned int dim1Size, const DataType *data)
 
 Array (unsigned int dim1Size, const Array< OneD, DataType > &rhs)
 
 Array (unsigned int 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)
 
iterator begin ()
 
iterator end ()
 
reference operator[] (unsigned int i)
 
elementget ()
 
elementdata ()
 
- Public Member Functions inherited from Nektar::Array< OneD, const DataType >
 Array ()
 Creates an empty array. More...
 
 Array (unsigned int dim1Size)
 Creates an array of size dim1Size. More...
 
 Array (unsigned int dim1Size, const DataType &initValue)
 Creates a 1D array with each element initialized to an initial value. More...
 
 Array (unsigned int dim1Size, const DataType *data)
 Creates a 1D array a copies data into it. More...
 
 Array (unsigned int 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[] (unsigned int 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 num_elements () const
 Returns the array's size. More...
 
size_type capacity () const
 
unsigned int GetOffset () const
 Returns the array's offset. 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 (unsigned int 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 >
unsigned int m_size
 
unsigned int m_capacity
 
DataType * m_data
 
unsigned int * m_count
 
unsigned int m_offset
 

Detailed Description

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

1D Array

pageNekArrays

Misc notes.

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

Member Typedef Documentation

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

Definition at line 481 of file SharedArray.hpp.

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

Definition at line 485 of file SharedArray.hpp.

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

Definition at line 482 of file SharedArray.hpp.

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

Definition at line 483 of file SharedArray.hpp.

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

Definition at line 484 of file SharedArray.hpp.

Constructor & Destructor Documentation

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

Definition at line 488 of file SharedArray.hpp.

488  :
489  BaseType()
490  {
491  }
Array< OneD, const DataType > BaseType
template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( unsigned int  dim1Size)
inlineexplicit

Definition at line 493 of file SharedArray.hpp.

493  :
494  BaseType(dim1Size)
495  {
496  }
Array< OneD, const DataType > BaseType
template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( unsigned int  dim1Size,
const DataType &  initValue 
)
inline

Definition at line 498 of file SharedArray.hpp.

498  :
499  BaseType(dim1Size, initValue)
500  {
501  }
Array< OneD, const DataType > BaseType
template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( unsigned int  dim1Size,
const DataType *  data 
)
inline

Definition at line 503 of file SharedArray.hpp.

503  :
504  BaseType(dim1Size, data)
505  {
506  }
Array< OneD, const DataType > BaseType
template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( unsigned int  dim1Size,
const Array< OneD, DataType > &  rhs 
)
inline

Definition at line 508 of file SharedArray.hpp.

508  :
509  BaseType(dim1Size, rhs)
510  {
511  }
Array< OneD, const DataType > BaseType
template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( unsigned int  dim1Size,
const Array< OneD, const DataType > &  rhs 
)
inline

Definition at line 513 of file SharedArray.hpp.

513  :
514  BaseType(dim1Size, rhs.data())
515  {
516  }
Array< OneD, const DataType > BaseType
template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( const Array< OneD, DataType > &  rhs)
inline

Definition at line 518 of file SharedArray.hpp.

518  :
519  BaseType(rhs)
520  {
521  }
Array< OneD, const DataType > BaseType
template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( const Array< OneD, const DataType > &  rhs)
inline

Definition at line 523 of file SharedArray.hpp.

523  :
524  BaseType(rhs.num_elements(), rhs.data())
525  {
526  }
Array< OneD, const DataType > BaseType
template<typename DataType >
Nektar::Array< OneD, DataType >::Array ( const Array< OneD, const DataType > &  rhs,
AllowWrappingOfConstArrays  a 
)
inlineprotected

Definition at line 573 of file SharedArray.hpp.

573  :
574  BaseType(rhs)
575  {
576  }
Array< OneD, const DataType > BaseType

Member Function Documentation

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

Definition at line 543 of file SharedArray.hpp.

Referenced by Nektar::NekVector< DataType >::NekVector().

543 { return this->m_data + 1 +this->m_offset; }
template<typename DataType >
void Nektar::Array< OneD, DataType >::ChangeSize ( unsigned int  newSize)
inlineprotected

Definition at line 578 of file SharedArray.hpp.

References ASSERTL1.

579  {
580  ASSERTL1(newSize <= this->m_capacity, "Can't change an array size to something larger than its capacity.");
581  this->m_size = newSize;
582  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:228
template<typename DataType >
static Array<OneD, DataType> Nektar::Array< OneD, DataType >::CreateWithOffset ( const Array< OneD, DataType > &  rhs,
unsigned int  offset 
)
inlinestatic

Definition at line 534 of file SharedArray.hpp.

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

535  {
536  Array<OneD, DataType> result(rhs);
537  result.m_offset += offset;
538  result.m_size = rhs.m_size - offset;
539  return result;
540  }
template<typename DataType >
element* Nektar::Array< OneD, DataType >::data ( )
inline
template<typename DataType >
iterator Nektar::Array< OneD, DataType >::end ( )
inline

Definition at line 546 of file SharedArray.hpp.

546 { return this->m_data + 1 + this->m_offset + this->m_size; }
template<typename DataType >
element* Nektar::Array< OneD, DataType >::get ( )
inline
template<typename DataType >
Array<OneD, DataType>& Nektar::Array< OneD, DataType >::operator= ( const Array< OneD, DataType > &  rhs)
inline

Definition at line 528 of file SharedArray.hpp.

529  {
530  BaseType::operator=(rhs);
531  return *this;
532  }
template<typename DataType >
reference Nektar::Array< OneD, DataType >::operator[] ( unsigned int  i)
inline

Definition at line 549 of file SharedArray.hpp.

References ASSERTL1.

550  {
551  ASSERTL1(static_cast<size_type>(i) < this->num_elements(), (std::string("Element ") +
552  boost::lexical_cast<std::string>(i) + std::string(" requested in an array of size ") +
553  boost::lexical_cast<std::string>(this->num_elements())));
554  return (get())[i];
555  }
size_type num_elements() const
Returns the array's size.
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:228

Friends And Related Function Documentation

template<typename DataType >
friend class LinearSystem
friend

Definition at line 570 of file SharedArray.hpp.

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

Definition at line 568 of file SharedArray.hpp.

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

Definition at line 565 of file SharedArray.hpp.