Advanced Multi-Physics (AMP)
On-Line Documentation
Public Member Functions | Protected Attributes | Static Private Member Functions | List of all members
AMP::LinearAlgebra::NativeThyraVectorOperations Class Reference

An AMP Vector that uses Thyra for parallel data management, linear algebra, etc. More...

#include <NativeThyraVectorOperations.h>

Inheritance diagram for AMP::LinearAlgebra::NativeThyraVectorOperations:
Inheritance graph
[legend]

Public Member Functions

void abs (const VectorData &x, VectorData &z) override
 Set this to the component-wise absolute value of a vector. \(z_i = |x_i|\).
 
void abs (const VectorData &x, VectorData &z) override
 Set this to the component-wise absolute value of a vector. \(z_i = |x_i|\).
 
virtual void abs (const VectorData &x, VectorData &z)=0
 Set this to the component-wise absolute value of a vector. \(z_i = |x_i|\).
 
void add (const VectorData &x, const VectorData &y, VectorData &z) override
 Adds two vectors. For Vectors, \(\mathit{this}_i = x_i + y_i\).
 
void add (const VectorData &x, const VectorData &y, VectorData &z) override
 Adds two vectors. For Vectors, \(\mathit{this}_i = x_i + y_i\).
 
virtual void add (const VectorData &x, const VectorData &y, VectorData &z)=0
 Adds two vectors. For Vectors, \(\mathit{this}_i = x_i + y_i\).
 
void addScalar (const VectorData &x, const Scalar &alpha, VectorData &y) override
 set vector to \(x + \alpha \bar{1}\).
 
virtual void addScalar (const VectorData &x, const Scalar &alpha, VectorData &y)=0
 set vector to \(x + \alpha \bar{1}\).
 
void axpby (const Scalar &alpha, const Scalar &beta, const VectorData &x, VectorData &y) override
 Set this vector alpha * x + this. \(y_i = \alpha x_i + \beta y_i \).
 
void axpby (const Scalar &alpha, const Scalar &beta, const VectorData &x, VectorData &y) override
 Set this vector alpha * x + this. \(y_i = \alpha x_i + \beta y_i \).
 
virtual void axpby (const Scalar &alpha, const Scalar &beta, const VectorData &x, VectorData &y)=0
 Set this vector alpha * x + this. \(y_i = \alpha x_i + \beta y_i \).
 
void axpy (const Scalar &alpha, const VectorData &x, const VectorData &y, VectorData &z) override
 Set this vector to alpha * x + y. \(z_i = \alpha x_i + y_i\).
 
void axpy (const Scalar &alpha, const VectorData &x, const VectorData &y, VectorData &z) override
 Set this vector to alpha * x + y. \(z_i = \alpha x_i + y_i\).
 
virtual void axpy (const Scalar &alpha, const VectorData &x, const VectorData &y, VectorData &z)=0
 Set this vector to alpha * x + y. \(z_i = \alpha x_i + y_i\).
 
std::shared_ptr< VectorOperationscloneOperations () const override
 Clone the operations.
 
void copy (const VectorData &x, VectorData &z) override
 Set vector equal to x For Vectors, \(z_i = x_i\).
 
void copyCast (const VectorData &x, VectorData &z) override
 Set vector equal to x (with different precision) For Vectors, \(z_i = x_i\).
 
void divide (const VectorData &x, const VectorData &y, VectorData &z) override
 Component-wise divide one vector by another. For Vectors, \(z_i = x_i / y_i\).
 
void divide (const VectorData &x, const VectorData &y, VectorData &z) override
 Component-wise divide one vector by another. For Vectors, \(z_i = x_i / y_i\).
 
virtual void divide (const VectorData &x, const VectorData &y, VectorData &z)=0
 Component-wise divide one vector by another. For Vectors, \(z_i = x_i / y_i\).
 
virtual Scalar dot (const VectorData &x, const VectorData &y) const
 Return the dot product of this vector with the argument vector.
 
Scalar dot (const VectorData &x, const VectorData &y) const override
 Return the dot product of this vector with the argument vector.
 
virtual bool equals (const VectorData &x, const VectorData &y, const Scalar &tol) const
 Check if two vectors are equal.
 
uint64_t getID () const
 Get a unique id hash for the vector.
 
virtual Scalar L1Norm (const VectorData &x) const
 Return discrete \( L_1 \) -norm of this vector.
 
Scalar L1Norm (const VectorData &x) const override
 Return discrete \( L_1 \) -norm of this vector.
 
virtual Scalar L2Norm (const VectorData &x) const
 Return discrete \( L_2 \) -norm of this vector.
 
Scalar L2Norm (const VectorData &x) const override
 Return discrete \( L_2 \) -norm of this vector.
 
void linearSum (const Scalar &alpha, const VectorData &x, const Scalar &beta, const VectorData &y, VectorData &z) override
 Set a vector to be a linear combination of two vectors. \(z_i = \alpha x_i + \beta y_i\).
 
void linearSum (const Scalar &alpha, const VectorData &x, const Scalar &beta, const VectorData &y, VectorData &z) override
 Set a vector to be a linear combination of two vectors. \(z_i = \alpha x_i + \beta y_i\).
 
virtual void linearSum (const Scalar &alpha, const VectorData &x, const Scalar &beta, const VectorData &y, VectorData &z)=0
 Set a vector to be a linear combination of two vectors. \(z_i = \alpha x_i + \beta y_i\).
 
Scalar localDot (const VectorData &x, const VectorData &y) const override
 Return the local dot product of this vector with the argument vector.
 
bool localEquals (const VectorData &x, const VectorData &y, const Scalar &tol=0.000001) const override
 Determine if the local portion of two vectors are equal using an absolute tolerance.
 
virtual Scalar localL1Norm (const VectorData &x) const =0
 Return local discrete \( L_1 \) -norm of this vector.
 
Scalar localL1Norm (const VectorData &x) const override
 Return local discrete \( L_1 \) -norm of this vector.
 
virtual Scalar localL2Norm (const VectorData &x) const =0
 Return local discrete \( L_2 \) -norm of this vector.
 
Scalar localL2Norm (const VectorData &x) const override
 Return local discrete \( L_2 \) -norm of this vector.
 
Scalar localMax (const VectorData &x) const override
 Return the local maximum value of the vector. \(\max_i x_i\).
 
virtual Scalar localMaxNorm (const VectorData &x) const =0
 Return the local \( L_\infty \) -norm of this vector.
 
Scalar localMaxNorm (const VectorData &x) const override
 Return the local \( L_\infty \) -norm of this vector.
 
Scalar localMin (const VectorData &x) const override
 Return the local minimum value of the vector. \(\min_i x_i\).
 
Scalar localMinQuotient (const VectorData &x, const VectorData &y) const override
 Returns the local minimum of the quotient of two vectors:
 
Scalar localSum (const VectorData &) const override
 Return the local sum of the vector.
 
Scalar localWrmsNorm (const VectorData &x, const VectorData &y) const override
 Return a weighted norm of a vector.
 
Scalar localWrmsNormMask (const VectorData &x, const VectorData &mask, const VectorData &y) const override
 Return a weighted norm of a subset of a vector.
 
virtual Scalar max (const VectorData &x) const
 Return the maximum value of the vector. \(\max_i x_i\).
 
Scalar max (const VectorData &x) const override
 Return the maximum value of the vector. \(\max_i x_i\).
 
virtual Scalar maxNorm (const VectorData &x) const
 Return the \( L_\infty \) -norm of this vector.
 
Scalar maxNorm (const VectorData &x) const override
 Return the \( L_\infty \) -norm of this vector.
 
Scalar mean (const VectorData &x) const
 Return the mean of the values of the vector.
 
virtual Scalar min (const VectorData &x) const
 Return the minimum value of the vector. \(\min_i x_i\).
 
Scalar min (const VectorData &x) const override
 Return the minimum value of the vector. \(\min_i x_i\).
 
virtual Scalar minQuotient (const VectorData &x, const VectorData &y) const
 Returns the minimum of the quotient of two vectors:
 
void multiply (const VectorData &x, const VectorData &y, VectorData &z) override
 Component-wise multiply one vector with another. For Vectors, \(z_i = x_i y_i\).
 
void multiply (const VectorData &x, const VectorData &y, VectorData &z) override
 Component-wise multiply one vector with another. For Vectors, \(z_i = x_i y_i\).
 
virtual void multiply (const VectorData &x, const VectorData &y, VectorData &z)=0
 Component-wise multiply one vector with another. For Vectors, \(z_i = x_i y_i\).
 
 NativeThyraVectorOperations ()
 
void reciprocal (const VectorData &x, VectorData &y) override
 Set this to the component-wise reciprocal of a vector. \(y_i = 1/x_i\).
 
void reciprocal (const VectorData &x, VectorData &y) override
 Set this to the component-wise reciprocal of a vector. \(y_i = 1/x_i\).
 
virtual void reciprocal (const VectorData &x, VectorData &y)=0
 Set this to the component-wise reciprocal of a vector. \(y_i = 1/x_i\).
 
void registerChildObjects (AMP::IO::RestartManager *manager) const override
 Register any child objects.
 
void scale (const Scalar &alpha, const VectorData &x, VectorData &y) override
 Set vector equal to scaled input. For Vectors, \(y_i = \alpha x_i\).
 
void scale (const Scalar &alpha, const VectorData &x, VectorData &y) override
 Set vector equal to scaled input. For Vectors, \(y_i = \alpha x_i\).
 
virtual void scale (const Scalar &alpha, const VectorData &x, VectorData &y)=0
 Set vector equal to scaled input. For Vectors, \(y_i = \alpha x_i\).
 
void scale (const Scalar &alpha, VectorData &x) override
 Scale a vector. For Vectors, \(x_i = \alpha x_i\).
 
void scale (const Scalar &alpha, VectorData &x) override
 Scale a vector. For Vectors, \(x_i = \alpha x_i\).
 
virtual void scale (const Scalar &alpha, VectorData &x)=0
 Scale a vector. For Vectors, \(x_i = \alpha x_i\).
 
void setMax (const Scalar &val, VectorData &x) override
 modify vector to set \(x_i = max(x_i, val)\).
 
virtual void setMax (const Scalar &val, VectorData &x)=0
 modify vector to set \(x_i = max(x_i, val)\).
 
void setMin (const Scalar &val, VectorData &x) override
 modify vector to set \(x_i = min(x_i, val)\).
 
virtual void setMin (const Scalar &val, VectorData &x)=0
 modify vector to set \(x_i = min(x_i, val)\).
 
void setRandomValues (VectorData &x) override
 Set data in this vector to random values.
 
void setRandomValues (VectorData &x) override
 Set data in this vector to random values.
 
virtual void setRandomValues (VectorData &x)=0
 Set data in this vector to random values.
 
void setToScalar (const Scalar &alpha, VectorData &z) override
 Set all compenents of a vector to a scalar. For Vectors, the components of z are set to \(\alpha\).
 
void subtract (const VectorData &x, const VectorData &y, VectorData &z) override
 Subtracts one vector from another. For Vectors, \(z_i = x_i - y_i\).
 
void subtract (const VectorData &x, const VectorData &y, VectorData &z) override
 Subtracts one vector from another. For Vectors, \(z_i = x_i - y_i\).
 
virtual void subtract (const VectorData &x, const VectorData &y, VectorData &z)=0
 Subtracts one vector from another. For Vectors, \(z_i = x_i - y_i\).
 
virtual Scalar sum (const VectorData &x) const
 Return the sum of the values of the vector.
 
std::string VectorOpName () const override
 Get the type name.
 
void writeRestart (int64_t fid) const override
 Write restart data to file.
 
virtual Scalar wrmsNorm (const VectorData &x, const VectorData &y) const
 Return a weighted norm of a vector.
 
virtual Scalar wrmsNormMask (const VectorData &x, const VectorData &mask, const VectorData &y) const
 Return a weighted norm of a subset of a vector.
 
void zero (VectorData &z) override
 Set vector entries (including ghosts) to zero.
 
virtual ~NativeThyraVectorOperations ()
 

Protected Attributes

uint64_t d_hash = 0
 

Static Private Member Functions

static Teuchos::RCP< const Thyra::VectorBase< double > > getThyraVec (const VectorData &v)
 
static Teuchos::RCP< Thyra::VectorBase< double > > getThyraVec (VectorData &v)
 

Detailed Description

An AMP Vector that uses Thyra for parallel data management, linear algebra, etc.

This is an AMP wrapper to Thyra. This is different from ManagedThyraVector in that this class does not replace calls to Vec*. Rather, it wraps these calls. This class is used when Thyra is chosen as the default linear algebra engine.

This class is not to be used directly, just through base class interfaces.

See also
ThyraVector
ManagedThyraVector

Definition at line 22 of file NativeThyraVectorOperations.h.

Constructor & Destructor Documentation

◆ NativeThyraVectorOperations()

AMP::LinearAlgebra::NativeThyraVectorOperations::NativeThyraVectorOperations ( )
inline

Definition at line 25 of file NativeThyraVectorOperations.h.

◆ ~NativeThyraVectorOperations()

virtual AMP::LinearAlgebra::NativeThyraVectorOperations::~NativeThyraVectorOperations ( )
virtual

Member Function Documentation

◆ abs() [1/3]

void AMP::LinearAlgebra::NativeThyraVectorOperations::abs ( const VectorData x,
VectorData z 
)
overridevirtual

Set this to the component-wise absolute value of a vector. \(z_i = |x_i|\).

Parameters
[in]xa vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ abs() [2/3]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::abs ( const VectorData x,
VectorData z 
)
overridevirtual

Set this to the component-wise absolute value of a vector. \(z_i = |x_i|\).

Parameters
[in]xa vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ abs() [3/3]

virtual void AMP::LinearAlgebra::VectorOperations::abs ( const VectorData x,
VectorData z 
)
virtual

Set this to the component-wise absolute value of a vector. \(z_i = |x_i|\).

Parameters
[in]xa vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ add() [1/3]

void AMP::LinearAlgebra::NativeThyraVectorOperations::add ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Adds two vectors. For Vectors, \(\mathit{this}_i = x_i + y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ add() [2/3]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::add ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Adds two vectors. For Vectors, \(\mathit{this}_i = x_i + y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ add() [3/3]

virtual void AMP::LinearAlgebra::VectorOperations::add ( const VectorData x,
const VectorData y,
VectorData z 
)
virtual

Adds two vectors. For Vectors, \(\mathit{this}_i = x_i + y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ addScalar() [1/2]

void AMP::LinearAlgebra::VectorOperationsDefault< double >::addScalar ( const VectorData x,
const Scalar alpha,
VectorData y 
)
overridevirtualinherited

set vector to \(x + \alpha \bar{1}\).

for vectors, \(y_i = x_i + \alpha\).

Parameters
[in]xa vector
[in]alphaa scalar
[out]yOutput vector y

Implements AMP::LinearAlgebra::VectorOperations.

◆ addScalar() [2/2]

virtual void AMP::LinearAlgebra::VectorOperations::addScalar ( const VectorData x,
const Scalar alpha,
VectorData y 
)
virtualinherited

set vector to \(x + \alpha \bar{1}\).

for vectors, \(y_i = x_i + \alpha\).

Parameters
[in]xa vector
[in]alphaa scalar
[out]yOutput vector y

Implements AMP::LinearAlgebra::VectorOperations.

◆ axpby() [1/3]

void AMP::LinearAlgebra::NativeThyraVectorOperations::axpby ( const Scalar alpha,
const Scalar beta,
const VectorData x,
VectorData y 
)
overridevirtual

Set this vector alpha * x + this. \(y_i = \alpha x_i + \beta y_i \).

Parameters
[in]alphaa scalar
[in]betaa scalar
[in]xa vector
[in,out]yOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ axpby() [2/3]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::axpby ( const Scalar alpha,
const Scalar beta,
const VectorData x,
VectorData y 
)
overridevirtual

Set this vector alpha * x + this. \(y_i = \alpha x_i + \beta y_i \).

Parameters
[in]alphaa scalar
[in]betaa scalar
[in]xa vector
[in,out]yOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ axpby() [3/3]

virtual void AMP::LinearAlgebra::VectorOperations::axpby ( const Scalar alpha,
const Scalar beta,
const VectorData x,
VectorData y 
)
virtual

Set this vector alpha * x + this. \(y_i = \alpha x_i + \beta y_i \).

Parameters
[in]alphaa scalar
[in]betaa scalar
[in]xa vector
[in,out]yOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ axpy() [1/3]

void AMP::LinearAlgebra::NativeThyraVectorOperations::axpy ( const Scalar alpha,
const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Set this vector to alpha * x + y. \(z_i = \alpha x_i + y_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[in]ya vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ axpy() [2/3]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::axpy ( const Scalar alpha,
const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Set this vector to alpha * x + y. \(z_i = \alpha x_i + y_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[in]ya vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ axpy() [3/3]

virtual void AMP::LinearAlgebra::VectorOperations::axpy ( const Scalar alpha,
const VectorData x,
const VectorData y,
VectorData z 
)
virtual

Set this vector to alpha * x + y. \(z_i = \alpha x_i + y_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[in]ya vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ cloneOperations()

std::shared_ptr< VectorOperations > AMP::LinearAlgebra::VectorOperationsDefault< double >::cloneOperations ( ) const
overridevirtualinherited

Clone the operations.

Implements AMP::LinearAlgebra::VectorOperations.

◆ copy()

void AMP::LinearAlgebra::NativeThyraVectorOperations::copy ( const VectorData x,
VectorData z 
)
overridevirtual

Set vector equal to x For Vectors, \(z_i = x_i\).

Parameters
[in]xa vector
[out]za vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ copyCast()

void AMP::LinearAlgebra::VectorOperationsDefault< double >::copyCast ( const VectorData x,
VectorData z 
)
overridevirtualinherited

Set vector equal to x (with different precision) For Vectors, \(z_i = x_i\).

Parameters
[in]xa vector
[out]za vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ divide() [1/3]

void AMP::LinearAlgebra::NativeThyraVectorOperations::divide ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Component-wise divide one vector by another. For Vectors, \(z_i = x_i / y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ divide() [2/3]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::divide ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Component-wise divide one vector by another. For Vectors, \(z_i = x_i / y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ divide() [3/3]

virtual void AMP::LinearAlgebra::VectorOperations::divide ( const VectorData x,
const VectorData y,
VectorData z 
)
virtual

Component-wise divide one vector by another. For Vectors, \(z_i = x_i / y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ dot() [1/2]

virtual Scalar AMP::LinearAlgebra::VectorOperations::dot ( const VectorData x,
const VectorData y 
) const
virtual

Return the dot product of this vector with the argument vector.

Returns

\[\sum_i x_i y_i\]

Parameters
[in]xa vector
[in,out]ya vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ dot() [2/2]

Scalar AMP::LinearAlgebra::NativeThyraVectorOperations::dot ( const VectorData x,
const VectorData y 
) const
overridevirtual

Return the dot product of this vector with the argument vector.

Returns

\[\sum_i x_i y_i\]

Parameters
[in]xa vector
[in,out]ya vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ equals()

virtual bool AMP::LinearAlgebra::VectorOperations::equals ( const VectorData x,
const VectorData y,
const Scalar tol 
) const
virtualinherited

Check if two vectors are equal.

Returns true if all values are equal within tolerance

Parameters
[in]xa vector
[in]ya vector
[in]toltolerance to use

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ getID()

uint64_t AMP::LinearAlgebra::VectorOperations::getID ( ) const
inherited

Get a unique id hash for the vector.

◆ getThyraVec() [1/2]

static Teuchos::RCP< const Thyra::VectorBase< double > > AMP::LinearAlgebra::NativeThyraVectorOperations::getThyraVec ( const VectorData v)
staticprivate

◆ getThyraVec() [2/2]

static Teuchos::RCP< Thyra::VectorBase< double > > AMP::LinearAlgebra::NativeThyraVectorOperations::getThyraVec ( VectorData v)
staticprivate

◆ L1Norm() [1/2]

virtual Scalar AMP::LinearAlgebra::VectorOperations::L1Norm ( const VectorData x) const
virtual

Return discrete \( L_1 \) -norm of this vector.

Returns

\[\sum_i |x_i|\]

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ L1Norm() [2/2]

Scalar AMP::LinearAlgebra::NativeThyraVectorOperations::L1Norm ( const VectorData x) const
overridevirtual

Return discrete \( L_1 \) -norm of this vector.

Returns

\[\sum_i |x_i|\]

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ L2Norm() [1/2]

virtual Scalar AMP::LinearAlgebra::VectorOperations::L2Norm ( const VectorData x) const
virtual

Return discrete \( L_2 \) -norm of this vector.

Returns

\[\sqrt{\sum_i x_i^2}\]

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ L2Norm() [2/2]

Scalar AMP::LinearAlgebra::NativeThyraVectorOperations::L2Norm ( const VectorData x) const
overridevirtual

Return discrete \( L_2 \) -norm of this vector.

Returns

\[\sqrt{\sum_i x_i^2}\]

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ linearSum() [1/3]

void AMP::LinearAlgebra::NativeThyraVectorOperations::linearSum ( const Scalar alpha,
const VectorData x,
const Scalar beta,
const VectorData y,
VectorData z 
)
overridevirtual

Set a vector to be a linear combination of two vectors. \(z_i = \alpha x_i + \beta y_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[in]betaa scalar
[in]ya vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ linearSum() [2/3]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::linearSum ( const Scalar alpha,
const VectorData x,
const Scalar beta,
const VectorData y,
VectorData z 
)
overridevirtual

Set a vector to be a linear combination of two vectors. \(z_i = \alpha x_i + \beta y_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[in]betaa scalar
[in]ya vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ linearSum() [3/3]

virtual void AMP::LinearAlgebra::VectorOperations::linearSum ( const Scalar alpha,
const VectorData x,
const Scalar beta,
const VectorData y,
VectorData z 
)
virtual

Set a vector to be a linear combination of two vectors. \(z_i = \alpha x_i + \beta y_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[in]betaa scalar
[in]ya vector
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ localDot()

Scalar AMP::LinearAlgebra::VectorOperationsDefault< double >::localDot ( const VectorData x,
const VectorData y 
) const
overridevirtualinherited

Return the local dot product of this vector with the argument vector.

Returns

\[\sum_i x_i y_i\]

Parameters
[in]xa vector
[in]ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localEquals()

bool AMP::LinearAlgebra::VectorOperationsDefault< double >::localEquals ( const VectorData x,
const VectorData y,
const Scalar tol = 0.000001 
) const
overridevirtualinherited

Determine if the local portion of two vectors are equal using an absolute tolerance.

Parameters
[in]xa vector
[in]ya vector
[in]tolTolerance of comparison
Returns
True iff \(||y - x||_\infty < \mathit{tol}\)

Implements AMP::LinearAlgebra::VectorOperations.

◆ localL1Norm() [1/2]

virtual Scalar AMP::LinearAlgebra::VectorOperations::localL1Norm ( const VectorData x) const
virtualinherited

Return local discrete \( L_1 \) -norm of this vector.

Returns

\[\sum_i |x_i|\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localL1Norm() [2/2]

Scalar AMP::LinearAlgebra::VectorOperationsDefault< double >::localL1Norm ( const VectorData x) const
overridevirtualinherited

Return local discrete \( L_1 \) -norm of this vector.

Returns

\[\sum_i |x_i|\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localL2Norm() [1/2]

virtual Scalar AMP::LinearAlgebra::VectorOperations::localL2Norm ( const VectorData x) const
virtualinherited

Return local discrete \( L_2 \) -norm of this vector.

Returns

\[\sqrt{\sum_i x_i^2}\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localL2Norm() [2/2]

Scalar AMP::LinearAlgebra::VectorOperationsDefault< double >::localL2Norm ( const VectorData x) const
overridevirtualinherited

Return local discrete \( L_2 \) -norm of this vector.

Returns

\[\sqrt{\sum_i x_i^2}\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localMax()

Scalar AMP::LinearAlgebra::VectorOperationsDefault< double >::localMax ( const VectorData x) const
overridevirtualinherited

Return the local maximum value of the vector. \(\max_i x_i\).

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localMaxNorm() [1/2]

virtual Scalar AMP::LinearAlgebra::VectorOperations::localMaxNorm ( const VectorData x) const
virtualinherited

Return the local \( L_\infty \) -norm of this vector.

Returns

\[\max_i |x_i|\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localMaxNorm() [2/2]

Scalar AMP::LinearAlgebra::VectorOperationsDefault< double >::localMaxNorm ( const VectorData x) const
overridevirtualinherited

Return the local \( L_\infty \) -norm of this vector.

Returns

\[\max_i |x_i|\]

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localMin()

Scalar AMP::LinearAlgebra::VectorOperationsDefault< double >::localMin ( const VectorData x) const
overridevirtualinherited

Return the local minimum value of the vector. \(\min_i x_i\).

Parameters
[in]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ localMinQuotient()

Scalar AMP::LinearAlgebra::VectorOperationsDefault< double >::localMinQuotient ( const VectorData x,
const VectorData y 
) const
overridevirtualinherited

Returns the local minimum of the quotient of two vectors:

\[\min_{i,y_i\neq0} x_i/y_i\]

Parameters
[in]xa vector
[in]ya vector
Returns

\[\min_{i,y_i\neq0} x_i/y_i\]

Implements AMP::LinearAlgebra::VectorOperations.

◆ localSum()

Scalar AMP::LinearAlgebra::VectorOperationsDefault< double >::localSum ( const VectorData ) const
overridevirtualinherited

Return the local sum of the vector.

Implements AMP::LinearAlgebra::VectorOperations.

◆ localWrmsNorm()

Scalar AMP::LinearAlgebra::VectorOperationsDefault< double >::localWrmsNorm ( const VectorData x,
const VectorData y 
) const
overridevirtualinherited

Return a weighted norm of a vector.

Parameters
[in]xa vector
[in]ya vector
Returns

\[\sqrt{\frac{\displaystyle \sum_i x^2_i y^2_i}{n}}\]

Implements AMP::LinearAlgebra::VectorOperations.

◆ localWrmsNormMask()

Scalar AMP::LinearAlgebra::VectorOperationsDefault< double >::localWrmsNormMask ( const VectorData x,
const VectorData mask,
const VectorData y 
) const
overridevirtualinherited

Return a weighted norm of a subset of a vector.

Parameters
[in]xa vector
[in]ya vector
[in]maska vector
Returns

\[\sqrt{\frac{\displaystyle \sum_{i,\mathit{mask}_i>0} y^2_iy^2_i}{n}}\]

Implements AMP::LinearAlgebra::VectorOperations.

◆ max() [1/2]

virtual Scalar AMP::LinearAlgebra::VectorOperations::max ( const VectorData x) const
virtual

Return the maximum value of the vector. \(\max_i x_i\).

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ max() [2/2]

Scalar AMP::LinearAlgebra::NativeThyraVectorOperations::max ( const VectorData x) const
overridevirtual

Return the maximum value of the vector. \(\max_i x_i\).

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ maxNorm() [1/2]

virtual Scalar AMP::LinearAlgebra::VectorOperations::maxNorm ( const VectorData x) const
virtual

Return the \( L_\infty \) -norm of this vector.

Returns

\[\max_i |x_i|\]

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ maxNorm() [2/2]

Scalar AMP::LinearAlgebra::NativeThyraVectorOperations::maxNorm ( const VectorData x) const
overridevirtual

Return the \( L_\infty \) -norm of this vector.

Returns

\[\max_i |x_i|\]

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ mean()

Scalar AMP::LinearAlgebra::VectorOperations::mean ( const VectorData x) const
inherited

Return the mean of the values of the vector.

Parameters
[in]xa vector

◆ min() [1/2]

virtual Scalar AMP::LinearAlgebra::VectorOperations::min ( const VectorData x) const
virtual

Return the minimum value of the vector. \(\min_i x_i\).

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ min() [2/2]

Scalar AMP::LinearAlgebra::NativeThyraVectorOperations::min ( const VectorData x) const
overridevirtual

Return the minimum value of the vector. \(\min_i x_i\).

Parameters
[in]xa vector

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ minQuotient()

virtual Scalar AMP::LinearAlgebra::VectorOperations::minQuotient ( const VectorData x,
const VectorData y 
) const
virtual

Returns the minimum of the quotient of two vectors:

\[\min_{i,y_i\neq0} x_i/x_i\]

Parameters
[in]xa vector
[in]ya vector
Returns

\[\min_{i,y_i\neq0} x_i/y_i\]

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ multiply() [1/3]

void AMP::LinearAlgebra::NativeThyraVectorOperations::multiply ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Component-wise multiply one vector with another. For Vectors, \(z_i = x_i y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ multiply() [2/3]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::multiply ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Component-wise multiply one vector with another. For Vectors, \(z_i = x_i y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ multiply() [3/3]

virtual void AMP::LinearAlgebra::VectorOperations::multiply ( const VectorData x,
const VectorData y,
VectorData z 
)
virtual

Component-wise multiply one vector with another. For Vectors, \(z_i = x_i y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ reciprocal() [1/3]

void AMP::LinearAlgebra::NativeThyraVectorOperations::reciprocal ( const VectorData x,
VectorData y 
)
overridevirtual

Set this to the component-wise reciprocal of a vector. \(y_i = 1/x_i\).

Parameters
xa vector
ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ reciprocal() [2/3]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::reciprocal ( const VectorData x,
VectorData y 
)
overridevirtual

Set this to the component-wise reciprocal of a vector. \(y_i = 1/x_i\).

Parameters
xa vector
ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ reciprocal() [3/3]

virtual void AMP::LinearAlgebra::VectorOperations::reciprocal ( const VectorData x,
VectorData y 
)
virtual

Set this to the component-wise reciprocal of a vector. \(y_i = 1/x_i\).

Parameters
xa vector
ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ registerChildObjects()

void AMP::LinearAlgebra::VectorOperationsDefault< double >::registerChildObjects ( AMP::IO::RestartManager manager) const
overridevirtualinherited

Register any child objects.

This function will register child objects with the manager

Parameters
managerRestart manager

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ scale() [1/6]

void AMP::LinearAlgebra::NativeThyraVectorOperations::scale ( const Scalar alpha,
const VectorData x,
VectorData y 
)
overridevirtual

Set vector equal to scaled input. For Vectors, \(y_i = \alpha x_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[out]ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ scale() [2/6]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::scale ( const Scalar alpha,
const VectorData x,
VectorData y 
)
overridevirtual

Set vector equal to scaled input. For Vectors, \(y_i = \alpha x_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[out]ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ scale() [3/6]

virtual void AMP::LinearAlgebra::VectorOperations::scale ( const Scalar alpha,
const VectorData x,
VectorData y 
)
virtual

Set vector equal to scaled input. For Vectors, \(y_i = \alpha x_i\).

Parameters
[in]alphaa scalar
[in]xa vector
[out]ya vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ scale() [4/6]

void AMP::LinearAlgebra::NativeThyraVectorOperations::scale ( const Scalar alpha,
VectorData x 
)
overridevirtual

Scale a vector. For Vectors, \(x_i = \alpha x_i\).

Parameters
[in]alphaa scalar
[in,out]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ scale() [5/6]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::scale ( const Scalar alpha,
VectorData x 
)
overridevirtual

Scale a vector. For Vectors, \(x_i = \alpha x_i\).

Parameters
[in]alphaa scalar
[in,out]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ scale() [6/6]

virtual void AMP::LinearAlgebra::VectorOperations::scale ( const Scalar alpha,
VectorData x 
)
virtual

Scale a vector. For Vectors, \(x_i = \alpha x_i\).

Parameters
[in]alphaa scalar
[in,out]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ setMax() [1/2]

void AMP::LinearAlgebra::VectorOperationsDefault< double >::setMax ( const Scalar val,
VectorData x 
)
overridevirtualinherited

modify vector to set \(x_i = max(x_i, val)\).

Parameters
[in]xa vector
[in]vala scalar

Implements AMP::LinearAlgebra::VectorOperations.

◆ setMax() [2/2]

virtual void AMP::LinearAlgebra::VectorOperations::setMax ( const Scalar val,
VectorData x 
)
virtualinherited

modify vector to set \(x_i = max(x_i, val)\).

Parameters
[in]xa vector
[in]vala scalar

Implements AMP::LinearAlgebra::VectorOperations.

◆ setMin() [1/2]

void AMP::LinearAlgebra::VectorOperationsDefault< double >::setMin ( const Scalar val,
VectorData x 
)
overridevirtualinherited

modify vector to set \(x_i = min(x_i, val)\).

Parameters
[in]xa vector
[in]vala scalar

Implements AMP::LinearAlgebra::VectorOperations.

◆ setMin() [2/2]

virtual void AMP::LinearAlgebra::VectorOperations::setMin ( const Scalar val,
VectorData x 
)
virtualinherited

modify vector to set \(x_i = min(x_i, val)\).

Parameters
[in]xa vector
[in]vala scalar

Implements AMP::LinearAlgebra::VectorOperations.

◆ setRandomValues() [1/3]

void AMP::LinearAlgebra::NativeThyraVectorOperations::setRandomValues ( VectorData x)
overridevirtual

Set data in this vector to random values.

Parameters
[out]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ setRandomValues() [2/3]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::setRandomValues ( VectorData x)
overridevirtual

Set data in this vector to random values.

Parameters
[out]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ setRandomValues() [3/3]

virtual void AMP::LinearAlgebra::VectorOperations::setRandomValues ( VectorData x)
virtual

Set data in this vector to random values.

Parameters
[out]xa vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ setToScalar()

void AMP::LinearAlgebra::NativeThyraVectorOperations::setToScalar ( const Scalar alpha,
VectorData z 
)
overridevirtual

Set all compenents of a vector to a scalar. For Vectors, the components of z are set to \(\alpha\).

Parameters
[in]alphascalar value
[out]za vector

Implements AMP::LinearAlgebra::VectorOperations.

◆ subtract() [1/3]

void AMP::LinearAlgebra::NativeThyraVectorOperations::subtract ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Subtracts one vector from another. For Vectors, \(z_i = x_i - y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ subtract() [2/3]

void AMP::LinearAlgebra::VectorOperationsDefault< TYPE >::subtract ( const VectorData x,
const VectorData y,
VectorData z 
)
overridevirtual

Subtracts one vector from another. For Vectors, \(z_i = x_i - y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ subtract() [3/3]

virtual void AMP::LinearAlgebra::VectorOperations::subtract ( const VectorData x,
const VectorData y,
VectorData z 
)
virtual

Subtracts one vector from another. For Vectors, \(z_i = x_i - y_i\).

Parameters
[in]xInput vector x
[in]yInput vector y
[out]zOutput vector z

Implements AMP::LinearAlgebra::VectorOperations.

◆ sum()

virtual Scalar AMP::LinearAlgebra::VectorOperations::sum ( const VectorData x) const
virtualinherited

Return the sum of the values of the vector.

Parameters
[in]xa vector

◆ VectorOpName()

std::string AMP::LinearAlgebra::VectorOperationsDefault< double >::VectorOpName ( ) const
overridevirtualinherited

Get the type name.

Implements AMP::LinearAlgebra::VectorOperations.

◆ writeRestart()

void AMP::LinearAlgebra::VectorOperationsDefault< double >::writeRestart ( int64_t  fid) const
overridevirtualinherited

Write restart data to file.

This function will write the mesh to an HDF5 file

Parameters
fidFile identifier to write

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ wrmsNorm()

virtual Scalar AMP::LinearAlgebra::VectorOperations::wrmsNorm ( const VectorData x,
const VectorData y 
) const
virtual

Return a weighted norm of a vector.

Parameters
[in]xa vector
[in]ya vector
Returns

\[\sqrt{\frac{\displaystyle \sum_i x^2_iy^2_i}{n}}\]

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ wrmsNormMask()

virtual Scalar AMP::LinearAlgebra::VectorOperations::wrmsNormMask ( const VectorData x,
const VectorData mask,
const VectorData y 
) const
virtual

Return a weighted norm of a subset of a vector.

Parameters
[in]xa vector
[in]ya vector
[in]maska vector
Returns

\[\sqrt{\frac{\displaystyle \sum_{i,\mathit{mask}_i>0} x^2_iy^2_i}{n}}\]

Reimplemented from AMP::LinearAlgebra::VectorOperations.

◆ zero()

void AMP::LinearAlgebra::VectorOperationsDefault< double >::zero ( VectorData z)
overridevirtualinherited

Set vector entries (including ghosts) to zero.

This is equivalent (but more efficient) to calling setToScalar ( 0.0 ) followed by a makeConsistent(SET)

Implements AMP::LinearAlgebra::VectorOperations.

Member Data Documentation

◆ d_hash

uint64_t AMP::LinearAlgebra::VectorOperations::d_hash = 0
protectedinherited

Definition at line 399 of file VectorOperations.h.


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



Advanced Multi-Physics (AMP)
Oak Ridge National Laboratory
Idaho National Laboratory
Los Alamos National Laboratory
This page automatically produced from the
source code by doxygen
Last updated: Tue Mar 10 2026 13:06:43.
Comments on this page