Advanced Multi-Physics (AMP)
On-Line Documentation
VectorOperationsDefault.h
Go to the documentation of this file.
1#ifndef included_AMP_VectorOperationsDefault
2#define included_AMP_VectorOperationsDefault
3
4
5#include "AMP/vectors/operations/VectorOperations.h"
6
7
8namespace AMP::LinearAlgebra {
9
10
16template<typename TYPE = double>
18{
19public:
20 // Constructor
22
25
27 std::shared_ptr<VectorOperations> cloneOperations() const override;
28
29public:
30 // function that operate on VectorData
31 std::string VectorOpName() const override;
32 void copy( const VectorData &x, VectorData &z ) override;
33 void copyCast( const VectorData &x, VectorData &z ) override;
34 void zero( VectorData &z ) override;
35 void setToScalar( const Scalar &alpha, VectorData &z ) override;
36 void setRandomValues( VectorData &x ) override;
37 void scale( const Scalar &alpha, const VectorData &x, VectorData &y ) override;
38 void scale( const Scalar &alpha, VectorData &x ) override;
39 void add( const VectorData &x, const VectorData &y, VectorData &z ) override;
40 void subtract( const VectorData &x, const VectorData &y, VectorData &z ) override;
41 void multiply( const VectorData &x, const VectorData &y, VectorData &z ) override;
42 void divide( const VectorData &x, const VectorData &y, VectorData &z ) override;
43 void reciprocal( const VectorData &x, VectorData &y ) override;
44 void linearSum( const Scalar &alpha,
45 const VectorData &x,
46 const Scalar &beta,
47 const VectorData &y,
48 VectorData &z ) override;
49 void
50 axpy( const Scalar &alpha, const VectorData &x, const VectorData &y, VectorData &z ) override;
51 void
52 axpby( const Scalar &alpha, const Scalar &beta, const VectorData &x, VectorData &y ) override;
53 void abs( const VectorData &x, VectorData &z ) override;
54 void addScalar( const VectorData &x, const Scalar &alpha, VectorData &y ) override;
55
56 void setMax( const Scalar &val, VectorData &x ) override;
57 void setMin( const Scalar &val, VectorData &x ) override;
58
59 Scalar localMin( const VectorData &x ) const override;
60 Scalar localMax( const VectorData &x ) const override;
61 Scalar localSum( const VectorData & ) const override;
62 Scalar localL1Norm( const VectorData &x ) const override;
63 Scalar localL2Norm( const VectorData &x ) const override;
64 Scalar localMaxNorm( const VectorData &x ) const override;
65 Scalar localDot( const VectorData &x, const VectorData &y ) const override;
66 Scalar localMinQuotient( const VectorData &x, const VectorData &y ) const override;
67 Scalar localWrmsNorm( const VectorData &x, const VectorData &y ) const override;
69 const VectorData &mask,
70 const VectorData &y ) const override;
71 bool localEquals( const VectorData &x,
72 const VectorData &y,
73 const Scalar &tol = 0.000001 ) const override;
74
75public: // Pull VectorOperations into the current scope
103
104public: // Write/read restart data
105 void registerChildObjects( AMP::IO::RestartManager *manager ) const override;
106 void writeRestart( int64_t fid ) const override;
108};
109
110
111} // namespace AMP::LinearAlgebra
112
113
114#endif
Class to manage reading/writing restart data.
A class used to hold vector data.
Definition VectorData.h:38
VectorOperationsDefault(int64_t fid, AMP::IO::RestartManager *manager)
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 .
void axpby(const Scalar &alpha, const Scalar &beta, const VectorData &x, VectorData &y) override
Set this vector alpha * x + this. .
void copy(const VectorData &x, VectorData &z) override
Set vector equal to x For Vectors, .
void scale(const Scalar &alpha, const VectorData &x, VectorData &y) override
Set vector equal to scaled input. For Vectors, .
void multiply(const VectorData &x, const VectorData &y, VectorData &z) override
Component-wise multiply one vector with another. For Vectors, .
Scalar localL2Norm(const VectorData &x) const override
Return local discrete -norm of this vector.
std::shared_ptr< VectorOperations > cloneOperations() const override
Clone the operations.
void writeRestart(int64_t fid) const override
Write restart data to file.
void setMax(const Scalar &val, VectorData &x) override
modify vector to set .
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.
void scale(const Scalar &alpha, VectorData &x) override
Scale a vector. For Vectors, .
void setMin(const Scalar &val, VectorData &x) override
modify vector to set .
Scalar localMinQuotient(const VectorData &x, const VectorData &y) const override
Returns the local minimum of the quotient of two vectors:
void copyCast(const VectorData &x, VectorData &z) override
Set vector equal to x (with different precision) For Vectors, .
void add(const VectorData &x, const VectorData &y, VectorData &z) override
Adds two vectors. For Vectors, .
void abs(const VectorData &x, VectorData &z) override
Set this to the component-wise absolute value of a vector. .
void registerChildObjects(AMP::IO::RestartManager *manager) const override
Register any child objects.
void axpy(const Scalar &alpha, const VectorData &x, const VectorData &y, VectorData &z) override
Set this vector to alpha * x + y. .
void zero(VectorData &z) override
Set vector entries (including ghosts) to zero.
void divide(const VectorData &x, const VectorData &y, VectorData &z) override
Component-wise divide one vector by another. For Vectors, .
Scalar localL1Norm(const VectorData &x) const override
Return local discrete -norm of this vector.
void subtract(const VectorData &x, const VectorData &y, VectorData &z) override
Subtracts one vector from another. For Vectors, .
void setRandomValues(VectorData &x) override
Set data in this vector to random values.
void reciprocal(const VectorData &x, VectorData &y) override
Set this to the component-wise reciprocal of a vector. .
Scalar localMin(const VectorData &x) const override
Return the local minimum value of the vector. .
Scalar localMaxNorm(const VectorData &x) const override
Return the local -norm of this vector.
Scalar localMax(const VectorData &x) const override
Return the local maximum value of the vector. .
Scalar localDot(const VectorData &x, const VectorData &y) const override
Return the local dot product of this vector with the argument vector.
Scalar localSum(const VectorData &) const override
Return the local sum of the vector.
std::string VectorOpName() const override
Get the type name.
Scalar localWrmsNorm(const VectorData &x, const VectorData &y) const override
Return a weighted norm of a 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. .
void addScalar(const VectorData &x, const Scalar &alpha, VectorData &y) override
set vector to .
Scalar localWrmsNormMask(const VectorData &x, const VectorData &mask, const VectorData &y) const override
Return a weighted norm of a subset of a vector.
A class used to hold vector operations.
virtual Scalar wrmsNorm(const VectorData &x, const VectorData &y) const
Return a weighted norm of a vector.
virtual void scale(const Scalar &alpha, const VectorData &x, VectorData &y)=0
Set vector equal to scaled input. For Vectors, .
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. .
virtual void multiply(const VectorData &x, const VectorData &y, VectorData &z)=0
Component-wise multiply one vector with another. For Vectors, .
virtual Scalar max(const VectorData &x) const
Return the maximum value of the vector. .
virtual void setRandomValues(VectorData &x)=0
Set data in this vector to random values.
virtual void abs(const VectorData &x, VectorData &z)=0
Set this to the component-wise absolute value of a vector. .
virtual Scalar localL1Norm(const VectorData &x) const =0
Return local discrete -norm of this vector.
virtual Scalar min(const VectorData &x) const
Return the minimum value of the vector. .
virtual Scalar maxNorm(const VectorData &x) const
Return the -norm of this vector.
virtual Scalar L1Norm(const VectorData &x) const
Return discrete -norm of this vector.
virtual Scalar wrmsNormMask(const VectorData &x, const VectorData &mask, const VectorData &y) const
Return a weighted norm of a subset of a vector.
virtual Scalar localL2Norm(const VectorData &x) const =0
Return local discrete -norm of this vector.
virtual Scalar minQuotient(const VectorData &x, const VectorData &y) const
Returns the minimum of the quotient of two vectors:
virtual Scalar dot(const VectorData &x, const VectorData &y) const
Return the dot product of this vector with the argument vector.
virtual void addScalar(const VectorData &x, const Scalar &alpha, VectorData &y)=0
set vector to .
virtual bool equals(const VectorData &x, const VectorData &y, const Scalar &tol) const
Check if two vectors are equal.
virtual Scalar localMaxNorm(const VectorData &x) const =0
Return the local -norm of this vector.
virtual void setMax(const Scalar &val, VectorData &x)=0
modify vector to set .
virtual void reciprocal(const VectorData &x, VectorData &y)=0
Set this to the component-wise reciprocal of a vector. .
virtual void axpy(const Scalar &alpha, const VectorData &x, const VectorData &y, VectorData &z)=0
Set this vector to alpha * x + y. .
virtual void divide(const VectorData &x, const VectorData &y, VectorData &z)=0
Component-wise divide one vector by another. For Vectors, .
virtual void add(const VectorData &x, const VectorData &y, VectorData &z)=0
Adds two vectors. For Vectors, .
virtual void axpby(const Scalar &alpha, const Scalar &beta, const VectorData &x, VectorData &y)=0
Set this vector alpha * x + this. .
virtual Scalar L2Norm(const VectorData &x) const
Return discrete -norm of this vector.
virtual void setMin(const Scalar &val, VectorData &x)=0
modify vector to set .
virtual void subtract(const VectorData &x, const VectorData &y, VectorData &z)=0
Subtracts one vector from another. For Vectors, .
Scalar is a class used to store a scalar variable that may be different types/precision.
Definition Scalar.h:21



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:41.
Comments on this page