Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 477 of file SharedArray.hpp.

Member Typedef Documentation

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

Definition at line 480 of file SharedArray.hpp.

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

Definition at line 484 of file SharedArray.hpp.

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

Definition at line 481 of file SharedArray.hpp.

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

Definition at line 482 of file SharedArray.hpp.

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

Definition at line 483 of file SharedArray.hpp.

Constructor & Destructor Documentation

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

Definition at line 487 of file SharedArray.hpp.

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

Definition at line 492 of file SharedArray.hpp.

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

Definition at line 497 of file SharedArray.hpp.

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

Definition at line 502 of file SharedArray.hpp.

502  :
503  BaseType(dim1Size, data)
504  {
505  }
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 507 of file SharedArray.hpp.

507  :
508  BaseType(dim1Size, rhs)
509  {
510  }
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 512 of file SharedArray.hpp.

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

Definition at line 517 of file SharedArray.hpp.

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

Definition at line 522 of file SharedArray.hpp.

522  :
523  BaseType(rhs.num_elements(), rhs.data())
524  {
525  }
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 572 of file SharedArray.hpp.

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

Member Function Documentation

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

Definition at line 542 of file SharedArray.hpp.

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

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

Definition at line 577 of file SharedArray.hpp.

References ASSERTL1.

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

Definition at line 533 of file SharedArray.hpp.

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

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

Definition at line 545 of file SharedArray.hpp.

545 { 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 527 of file SharedArray.hpp.

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

Definition at line 548 of file SharedArray.hpp.

References ASSERTL1.

549  {
550  ASSERTL1(static_cast<size_type>(i) < this->num_elements(), (std::string("Element ") +
551  boost::lexical_cast<std::string>(i) + std::string(" requested in an array of size ") +
552  boost::lexical_cast<std::string>(this->num_elements())));
553  return (get())[i];
554  }
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:191

Friends And Related Function Documentation

template<typename DataType >
friend class LinearSystem
friend

Definition at line 569 of file SharedArray.hpp.

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

Definition at line 567 of file SharedArray.hpp.

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

Definition at line 564 of file SharedArray.hpp.