NOX Development
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Friends | List of all members
LOCA::Hopf::ComplexVector Class Reference

Vector class to hold two vectors to represent a complex vector. More...

#include <LOCA_Hopf_ComplexVector.H>

Inheritance diagram for LOCA::Hopf::ComplexVector:
Inheritance graph
[legend]
Collaboration diagram for LOCA::Hopf::ComplexVector:
Collaboration graph
[legend]

Public Member Functions

 ComplexVector (const Teuchos::RCP< LOCA::GlobalData > &global_data, const NOX::Abstract::Vector &realVec, const NOX::Abstract::Vector &imagVec)
 Constructor.
 
 ComplexVector (const ComplexVector &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~ComplexVector ()
 Destructor.
 
virtual NOX::Abstract::Vectoroperator= (const NOX::Abstract::Vector &y)
 Assignment operator.
 
virtual LOCA::Extended::Vectoroperator= (const LOCA::Extended::Vector &y)
 Assignment operator.
 
virtual ComplexVectoroperator= (const ComplexVector &y)
 Assignment operator.
 
virtual Teuchos::RCP< NOX::Abstract::Vectorclone (NOX::CopyType type=NOX::DeepCopy) const
 Cloning function.
 
virtual void setVec (const NOX::Abstract::Vector &realVec, const NOX::Abstract::Vector &imagVec)
 Sets the vector by setting its components.
 
virtual Teuchos::RCP< const NOX::Abstract::VectorgetRealVec () const
 Returns the real component of extended vector.
 
virtual Teuchos::RCP< const NOX::Abstract::VectorgetImagVec () const
 Returns the imaginary component of extended vector.
 
virtual Teuchos::RCP< NOX::Abstract::VectorgetRealVec ()
 Returns the real component of extended vector.
 
virtual Teuchos::RCP< NOX::Abstract::VectorgetImagVec ()
 Returns the imaginary component of extended vector.
 
- Public Member Functions inherited from LOCA::Extended::Vector
 Vector (const Vector &source, NOX::CopyType type=NOX::DeepCopy)
 Copy constructor.
 
virtual ~Vector ()
 Vector destructor.
 
virtual NOX::Abstract::Vectoroperator= (const NOX::Abstract::Vector &y)
 Assignment operator.
 
virtual Vectoroperator= (const Vector &y)
 Assignment operator.
 
virtual Teuchos::RCP< NOX::Abstract::Vectorclone (NOX::CopyType type=NOX::DeepCopy) const
 Clone function. Applies clone to each stored vector.
 
virtual Teuchos::RCP< NOX::Abstract::MultiVectorcreateMultiVector (const NOX::Abstract::Vector *const *vecs, int numVecs, NOX::CopyType type=NOX::DeepCopy) const
 Create a MultiVector with numVecs+1 columns out of an array of Vectors. The vector stored under this will be the first column with the remaining numVecs columns given by vecs.
 
virtual Teuchos::RCP< NOX::Abstract::MultiVectorcreateMultiVector (int numVecs, NOX::CopyType type=NOX::DeepCopy) const
 Create a MultiVector with numVecs columns.
 
virtual NOX::Abstract::Vectorinit (double gamma)
 NOX::Abstract::Vector init function. Initializes each stored vector and scalar.
 
virtual NOX::Abstract::Vectorrandom (bool useSeed=false, int seed=1)
 Initialize every element of this vector with random values.
 
virtual NOX::Abstract::Vectorabs (const NOX::Abstract::Vector &y)
 NOX::Abstract::Vector abs function. Compues absolute value of each stored vector and scalar.
 
virtual NOX::Abstract::Vectorreciprocal (const NOX::Abstract::Vector &y)
 NOX::Abstract::Vector reciprocal function. Computes reciprocal of each stored vector and scalar.
 
virtual NOX::Abstract::Vectorscale (double gamma)
 NOX::Abstract::Vector scale function. Scales each stored vector and scalar.
 
virtual NOX::Abstract::Vectorscale (const NOX::Abstract::Vector &a)
 NOX::Abstract::Vector scale function. Scales each stored vector and scalar.
 
virtual NOX::Abstract::Vectorupdate (double alpha, const NOX::Abstract::Vector &a, double gamma=0.0)
 NOX::Abstract::Vector update function. Applies vector update to each stored vector and scalar.
 
virtual NOX::Abstract::Vectorupdate (double alpha, const NOX::Abstract::Vector &a, double beta, const NOX::Abstract::Vector &b, double gamma=0.0)
 NOX::Abstract::Vector update function. Applies vector update to each stored vector and scalar.
 
virtual double norm (NormType type=TwoNorm) const
 NOX::Abstract::Vector norm function. Computes norm of each stored vector and combines to compute appropriate norm.
 
virtual double norm (const NOX::Abstract::Vector &weights) const
 NOX::Abstract::Vector weighted norm function. Computes weighted norm of each stored vector and combines to compute appropriate norm.
 
virtual double innerProduct (const NOX::Abstract::Vector &y) const
 NOX::Abstract::Vector innerProduct function. Computes inner product * of each stored vector and combines to compute inner product.
 
virtual NOX::size_type length () const
 NOX::Abstract::Vector length function. Computes sum of lengths of stored vectors plus number of scalars.
 
virtual void print (std::ostream &stream) const
 NOX::Abstract::Vector print function. For debugging purposes.
 
virtual void setVector (int i, const NOX::Abstract::Vector &v)
 Sets the ith vector.
 
virtual void setVectorView (int i, const Teuchos::RCP< NOX::Abstract::Vector > &v)
 Sets the ith vector as a view.
 
virtual void setScalar (int i, double s)
 Sets the ith scalar.
 
virtual void setScalarArray (double *sv)
 Sets the scalar array.
 
virtual Teuchos::RCP< const NOX::Abstract::VectorgetVector (int i) const
 Returns const ref-count pointer to the ith vector.
 
virtual Teuchos::RCP< NOX::Abstract::VectorgetVector (int i)
 Returns ref-count pointer to the ith vector.
 
virtual double getScalar (int i) const
 Returns copy of the ith scalar.
 
virtual double & getScalar (int i)
 Returns reference to the ith scalar.
 
virtual Teuchos::RCP< const NOX::Abstract::MultiVector::DenseMatrixgetScalars () const
 Returns array of scalars.
 
virtual Teuchos::RCP< NOX::Abstract::MultiVector::DenseMatrixgetScalars ()
 Returns array of scalars.
 
virtual int getNumScalars () const
 Returns number of scalars.
 
virtual int getNumVectors () const
 Returns number of vectors.
 
- Public Member Functions inherited from NOX::Abstract::Vector
 Vector ()
 Abstract Vector constructor (does nothing)
 
virtual ~Vector ()
 Abstract Vector destructor (does nothing)
 
virtual NOX::Abstract::Vectorinit (double gamma)=0
 Initialize every element of this vector with gamma.
 
virtual NOX::Abstract::Vectorrandom (bool useSeed=false, int seed=1)=0
 Initialize each element of this vector with a random value.
 
virtual NOX::Abstract::Vectorabs (const NOX::Abstract::Vector &y)=0
 Put element-wise absolute values of source vector y into this vector.
 
virtual NOX::Abstract::Vectoroperator= (const NOX::Abstract::Vector &y)=0
 Copy source vector y into this vector.
 
virtual NOX::Abstract::Vectorreciprocal (const NOX::Abstract::Vector &y)=0
 Put element-wise reciprocal of source vector y into this vector.
 
virtual NOX::Abstract::Vectorscale (double gamma)=0
 Scale each element of this vector by gamma.
 
virtual NOX::Abstract::Vectorscale (const NOX::Abstract::Vector &a)=0
 Scale this vector element-by-element by the vector a.
 
virtual NOX::Abstract::Vectorupdate (double alpha, const NOX::Abstract::Vector &a, double gamma=0.0)=0
 Compute x = (alpha * a) + (gamma * x) where x is this vector.
 
virtual NOX::Abstract::Vectorupdate (double alpha, const NOX::Abstract::Vector &a, double beta, const NOX::Abstract::Vector &b, double gamma=0.0)=0
 Compute x = (alpha * a) + (beta * b) + (gamma * x) where x is this vector.
 
virtual Teuchos::RCP< NOX::Abstract::Vectorclone (NOX::CopyType type=NOX::DeepCopy) const =0
 Create a new Vector of the same underlying type by cloning "this", and return a pointer to the new vector.
 
virtual Teuchos::RCP< NOX::Abstract::MultiVectorcreateMultiVector (const NOX::Abstract::Vector *const *vecs, int numVecs, NOX::CopyType type=NOX::DeepCopy) const
 Create a MultiVector with numVecs+1 columns out of an array of Vectors. The vector stored under this will be the first column with the remaining numVecs columns given by vecs.
 
virtual Teuchos::RCP< NOX::Abstract::MultiVectorcreateMultiVector (int numVecs, NOX::CopyType type=NOX::DeepCopy) const
 Create a MultiVector with numVecs columns.
 
virtual double norm (NOX::Abstract::Vector::NormType type=NOX::Abstract::Vector::TwoNorm) const =0
 Norm.
 
virtual double norm (const NOX::Abstract::Vector &weights) const =0
 Weighted 2-Norm.
 
virtual double innerProduct (const NOX::Abstract::Vector &y) const =0
 Inner product with y.
 
virtual NOX::size_type length () const =0
 Return the length of vector.
 
virtual void print (std::ostream &stream) const
 Print the vector. To be used for debugging only.
 

Protected Member Functions

 ComplexVector (const Teuchos::RCP< LOCA::GlobalData > &global_data)
 Default Constructor.
 
virtual Teuchos::RCP< LOCA::Extended::MultiVectorgenerateMultiVector (int nColumns, int nVectorRows, int nScalarRows) const
 generate an extended multi-vector
 
- Protected Member Functions inherited from LOCA::Extended::Vector
 Vector (const Teuchos::RCP< LOCA::GlobalData > &global_data, int nvecs, int nscalars)
 Vector constructor.
 
virtual Teuchos::RCP< LOCA::Extended::MultiVectorgenerateMultiVector (int nColumns, int nVectorRows, int nScalarRows) const
 generate an extended multi-vector
 

Friends

class ComplexMultiVector
 Declare LOCA::Hopf::ComplexMultiVector as a friend class so it can call protected methods.
 

Additional Inherited Members

- Public Types inherited from NOX::Abstract::Vector
enum  NormType { TwoNorm , OneNorm , MaxNorm }
 Norm types used in norm() calculations. More...
 
- Protected Attributes inherited from LOCA::Extended::Vector
Teuchos::RCP< LOCA::GlobalDataglobalData
 Global data.
 
std::vector< Teuchos::RCP< NOX::Abstract::Vector > > vectorPtrs
 Array of vector pointers.
 
std::vector< bool > isView
 Array indicating if each vector is a view.
 
int numScalars
 Number of scalars.
 
Teuchos::RCP< NOX::Abstract::MultiVector::DenseMatrixscalarsPtr
 Scalars.
 

Detailed Description

Vector class to hold two vectors to represent a complex vector.

This is not a true complex vector. Operations like innerProduct() are not correct for complex vectors. This class exists to make some aspects of the real-equivalent formulation of complex linear algebra simpler to implement.

Member Function Documentation

◆ clone()

Teuchos::RCP< NOX::Abstract::Vector > LOCA::Hopf::ComplexVector::clone ( NOX::CopyType  type = NOX::DeepCopy) const
virtual

Cloning function.

Reimplemented from LOCA::Extended::Vector.

◆ generateMultiVector()

Teuchos::RCP< LOCA::Extended::MultiVector > LOCA::Hopf::ComplexVector::generateMultiVector ( int  nColumns,
int  nVectorRows,
int  nScalarRows 
) const
protectedvirtual

generate an extended multi-vector

Returns an empty multivector of type LOCA::Hopf::ComplexMultiVector

Reimplemented from LOCA::Extended::Vector.

◆ operator=() [1/2]

LOCA::Extended::Vector & LOCA::Hopf::ComplexVector::operator= ( const LOCA::Extended::Vector y)
virtual

Assignment operator.

Reimplemented from LOCA::Extended::Vector.

◆ operator=() [2/2]

NOX::Abstract::Vector & LOCA::Hopf::ComplexVector::operator= ( const NOX::Abstract::Vector y)
virtual

Assignment operator.

Reimplemented from LOCA::Extended::Vector.


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