IFEM  90A354
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
StdVector Class Reference

Standard system vector stored as a single continuous array. More...

#include <SystemMatrix.h>

Inheritance diagram for StdVector:
Inheritance graph
[legend]
Collaboration diagram for StdVector:
Collaboration graph
[legend]

Public Member Functions

 StdVector (size_t n=0)
 Default constructor creating a vector of length n.
 
 StdVector (const Real *values, size_t n)
 Constructor creating a vector from an array.
 
 StdVector (const std::vector< Real > &vec)
 Overloaded copy constructor.
 
virtual LinAlg::MatrixType getType () const
 Returns the vector type.
 
virtual SystemVectorcopy () const
 Creates a copy of the system vector and returns a pointer to it.
 
virtual void assemble (const Vectors &vecs, const IntVec &meqn, int neq)
 Adds element vectors into the system vector. More...
 
virtual size_t dim () const
 Returns the dimension of the system vector.
 
virtual void redim (size_t n)
 Sets the dimension of the system vector while retaining content.
 
virtual void resize (size_t n, bool forceClear=false)
 Resizes the vector to length n. More...
 
virtual RealgetPtr ()
 Access through pointer.
 
virtual const RealgetRef () const
 Reference through pointer.
 
virtual const Vectorvec () const
 Reference to underlying utl::vector.
 
virtual void init (Real value=Real(0))
 Initializes the vector to a given scalar value.
 
virtual void mult (Real alpha)
 Multiplication with a scalar.
 
virtual void add (const SystemVector &vec, Real scale)
 Addition of another system vector to this one.
 
virtual Real L1norm () const
 L1-norm of the vector.
 
virtual Real L2norm () const
 L2-norm of the vector.
 
virtual Real Linfnorm () const
 Linfinity-norm of the vector.
 
virtual void dump (std::ostream &os, LinAlg::StorageFormat format, const char *label) const
 Dumps the system vector on a specified format.
 
- Public Member Functions inherited from SystemVector
virtual ~SystemVector ()
 Empty destructor.
 
bool empty () const
 Checks if the vector is empty.
 
SystemVectorcopy (const SystemVector &x)
 Copies entries from input vector x into *this.
 
virtual bool endAssembly ()
 Finalizes the system vector assembly.
 
- Public Member Functions inherited from utl::vector< T >
 vector ()
 Constructor creating an empty vector.
 
 vector (size_t n)
 Constructor creating a vector of length n.
 
 vector (const T *values, size_t n)
 Constructor creating a vector from a C-array.
 
 vector (const std::vector< T > &X)
 Overloaded copy constructor.
 
vector< T > & operator= (const std::vector< T > &X)
 Overloaded assignment operator.
 
T * ptr ()
 Access through pointer.
 
const T * ptr () const
 Reference through pointer.
 
size_t size () const
 Size of the vector.
 
bool empty () const
 Is the vector empty (zero size)?
 
bool zero (T tol=T(0)) const
 Is the vector elements all zero?
 
ConstVecIter begin () const
 Start of the vector container, for access.
 
ConstVecIter end () const
 End of the vector container, for access.
 
VecIter begin ()
 Start of the vector container, for update.
 
VecIter end ()
 End of the vector container, for update.
 
 operator const std::vector< T > & () const
 Type casting operator, for access.
 
 operator std::vector< T > & ()
 Type casting operator, for update.
 
T & operator[] (size_t i)
 Index-0 based element access.
 
const T & operator[] (size_t i) const
 Index-0 based element reference.
 
T & operator() (size_t i)
 Index-1 based element access.
 
const T & operator() (size_t i) const
 Index-1 based element reference.
 
void fill (T s)
 Fill the vector with a scalar value.
 
void fill (const T *values, size_t n=0)
 Fill the vector with data from an array.
 
void push_back (T c)
 Append a scalar value to the vector, increasing its size by one.
 
void push_back (ConstVecIter i1, ConstVecIter i2)
 Append a range of values increasing the size by i2-i1.
 
void push_back (const T *p, const T *q)
 Append a range of values increasing the size by q-p.
 
void swap (vector< T > &vec)
 Swap the content with another vector.
 
vector< T > & operator*= (T c)
 Multiplication with a scalar.
 
vector< T > & operator/= (T d)
 Division by a scalar.
 
vector< T > & operator*= (const std::vector< T > &X)
 Component-wise multiplication with a vector.
 
vector< T > & operator/= (const std::vector< T > &X)
 Component-wise division with a vector.
 
vector< T > & operator+= (const vector< T > &X)
 Add the given vector X to *this.
 
vector< T > & operator-= (const vector< T > &X)
 Subtract the given vector X from *this.
 
vector< T > & add (const std::vector< T > &X, const T &alfa=T(1), unsigned int ofsx=0, int stridex=1, unsigned int ofsy=0, int stridey=1)
 Add the given vector X scaled by alfa to *this.
 
vector< T > & relax (T alfa, const std::vector< T > &X)
 Perform \({\bf Y} = \alpha{\bf Y} + (1-\alpha){\bf X} \) where Y = *this.
 
vector< T > & relax (T alfa, const std::vector< T > &X, const std::vector< T > &Y)
 Perform \({\bf Z} = \alpha{\bf Y} + (1-\alpha){\bf X} \) where Z = *this.
 
dot (const T *v, size_t nv, size_t off1=0, int inc1=1, size_t off2=0, int inc2=1) const
 Dot product between *this and another vector. More...
 
dot (const std::vector< T > &v, size_t off1=0, int inc1=1, size_t off2=0, int inc2=1) const
 Dot product between *this and another vector. More...
 
norm2 (size_t off=0, int inc=1) const
 Return the Euclidean norm of the vector. More...
 
normInf (size_t &off, int inc=1, bool sign=false) const
 Return the infinite norm of the vector, or signed max value. More...
 
normInf (int inc=1) const
 Return the infinite norm of the vector (no index offset). More...
 
max () const
 Return the largest element of the vector.
 
min () const
 Return the smallest element of the vector.
 
asum (size_t off=0, int inc=1) const
 Return the sum of the absolute value of the vector elements. More...
 
sum (size_t off=0, int inc=1, size_t max=0) const
 Return the sum of the vector elements. More...
 
bool resize (size_t n, char forceClear=0)
 Resize the vector to length n. More...
 
void reserve (size_t n)
 Pre-allocation of vector length to n.
 
void clear ()
 Clear the vector, setting its size to zero.
 

Static Public Member Functions

static void dump (const Vector &x, const char *label, LinAlg::StorageFormat format, std::ostream &os)
 Dumps a standard vector to given output stream on specified format.
 
- Static Public Member Functions inherited from SystemVector
static SystemVectorcreate (const ProcessAdm *adm, LinAlg::MatrixType vtype)
 Static method creating a vector of the given type.
 

Protected Member Functions

virtual std::ostream & write (std::ostream &os) const
 Writes the system vector to the given output stream.
 
- Protected Member Functions inherited from SystemVector
 SystemVector ()
 The default constructor is protected to allow sub-classes only.
 

Additional Inherited Members

- Public Types inherited from utl::vector< T >
using ConstVecIter = typename std::vector< T >::const_iterator
 Convenience alias for const iterators.
 
using VecIter = typename std::vector< T >::iterator
 Convenience alias for non-const iterators.
 

Detailed Description

Standard system vector stored as a single continuous array.

Member Function Documentation

◆ assemble()

void StdVector::assemble ( const Vectors vecs,
const IntVec meqn,
int  neq 
)
virtual

Adds element vectors into the system vector.

Parameters
[in]vecsThe element vectors
[in]meqnMatrix of element equation numbers (0 based)
[in]neqNumber of equations for (each) load vector

This assembles for multiple RHS

Implements SystemVector.

◆ resize()

virtual void StdVector::resize ( size_t  n,
bool  forceClear = false 
)
inlinevirtual

Resizes the vector to length n.

Will erase the previous content, but only if the size changed, unless forceClear is true.

Reimplemented from SystemVector.

References utl::vector< T >::resize().


The documentation for this class was generated from the following files: