20 #ifndef GEOS_LINEARALGEBRA_INTERFACES_HYPREVECTOR_HPP_ 
   21 #define GEOS_LINEARALGEBRA_INTERFACES_HYPREVECTOR_HPP_ 
   36 struct hypre_ParVector_struct;
 
  116                        MPI_Comm 
const & 
comm ) 
override;
 
  126   virtual void rand( 
unsigned const seed ) 
override;
 
  141                       real64 const beta ) 
override;
 
  191   virtual MPI_Comm 
comm() 
const override;
 
  193   virtual void print( std::ostream & os = std::cout ) 
const override;
 
  195   virtual void write( 
string const & filename,
 
  196                       LAIOutputFormat const format = LAIOutputFormat::MATRIX_MARKET ) 
const override;
 
  203   using HYPRE_ParVector = 
struct hypre_ParVector_struct *;
 
  218   HYPRE_ParVector m_vec;
 
Wrapper class for hypre's ParVector.
 
~HypreVector()
Destructor.
 
virtual bool created() const override
Query vector creation status.
 
HypreVector & operator=(HypreVector &&src) noexcept
Move assignment.
 
virtual real64 normInf() const override
Infinity-norm of the vector.
 
HypreVector(HypreVector &&src) noexcept
Move constructor.
 
virtual void create(localIndex const localSize, MPI_Comm const &comm) override
Create a vector based on local number of elements.
 
virtual void print(std::ostream &os=std::cout) const override
Print the vector in Trilinos format to the terminal.
 
virtual void close() override
Close vector for modification.
 
virtual void pointwiseProduct(HypreVector const &x) override
Element-wise multiplication of this vector with another vector.
 
virtual localIndex localSize() const override
Returns the local size of the vector.
 
virtual void axpby(real64 const alpha, HypreVector const &x, real64 const beta) override
Update vector y as y = alpha*x + beta*y.
 
virtual real64 dot(HypreVector const &vec) const override
Dot product with the vector vec.
 
virtual void reciprocal() override
Replace vector elements by their reciprocals.
 
virtual void set(real64 const value) override
Set all elements to a constant value.
 
virtual MPI_Comm comm() const override
Get the communicator used by this vector.
 
HypreVector()
Empty vector constructor. Create an empty (distributed) vector.
 
virtual void copy(HypreVector const &x) override
Update vector y as y = x.
 
virtual void rand(unsigned const seed) override
Set vector elements to random entries.
 
virtual real64 norm2() const override
2-norm of the vector.
 
virtual void pointwiseDivide(HypreVector const &x) override
Element-wise division of this vector by another vector.
 
virtual void touch() override
Notify the vector about external modification through direct data pointer.
 
virtual void write(string const &filename, LAIOutputFormat const format=LAIOutputFormat::MATRIX_MARKET) const override
Write the vector to a file.
 
virtual globalIndex globalSize() const override
Returns the global of the vector.
 
virtual globalIndex ilower() const override
Get lower bound of local partition.
 
virtual void scale(real64 const scalingFactor) override
Multiply all elements by factor.
 
virtual globalIndex iupper() const override
Get upper bound of local partition.
 
virtual real64 norm1() const override
1-norm of the vector.
 
virtual void axpy(real64 const alpha, HypreVector const &x) override
Update vector y as y = alpha*x + y.
 
HypreVector(HypreVector const &src)
Copy constructor.
 
virtual void reset() override
Reset the vector to default state.
 
HYPRE_ParVector const  & unwrapped() const
Returns a pointer to the implementation.
 
HypreVector & operator=(HypreVector const &src)
Copy assignment.
 
Common base template for all vector wrapper types.
 
bool ready() const
Query vector ready status.
 
virtual arrayView1d< real64 > open()
Open the vector for modifying entries.
 
arrayView1d< real64 const > values() const
 
virtual void zero()
Set vector elements to zero.
 
bool closed() const
Query vector closed status.
 
void setName(string const &name)
Set a name for the vector (mainly used during various logging).
 
GEOS_GLOBALINDEX_TYPE globalIndex
Global index type (for indexing objects across MPI partitions).
 
double real64
64-bit floating point type.
 
GEOS_LOCALINDEX_TYPE localIndex
Local index type (for indexing objects within an MPI partition).