DOLFIN
DOLFIN C++ interface
Loading...
Searching...
No Matches
dolfin::Vector Class Reference

#include <Vector.h>

Inheritance diagram for dolfin::Vector:
Collaboration diagram for dolfin::Vector:

Public Member Functions

 Vector ()
 Create empty vector.
 
 Vector (MPI_Comm comm)
 Create empty vector.
 
 Vector (MPI_Comm comm, std::size_t N)
 Create vector of size N.
 
 Vector (const Vector &x)
 Copy constructor.
 
 Vector (const GenericVector &x)
 Create a Vector from a GenericVector.
 
virtual std::shared_ptr< GenericVectorcopy () const
 Return copy of vector.
 
virtual void zero ()
 Set all entries to zero and keep any sparse structure.
 
virtual void apply (std::string mode)
 Finalize assembly of tensor.
 
virtual MPI_Comm mpi_comm () const
 Return MPI communicator.
 
virtual std::string str (bool verbose) const
 Return informal string representation (pretty-print)
 
virtual void init (std::size_t N)
 Initialize vector to size N.
 
virtual void init (std::pair< std::size_t, std::size_t > range)
 Initialize vector with given ownership range.
 
virtual void init (std::pair< std::size_t, std::size_t > range, const std::vector< std::size_t > &local_to_global_map, const std::vector< la_index > &ghost_indices)
 
virtual bool empty () const
 Return true if vector is empty.
 
virtual std::size_t size () const
 Return size of vector.
 
virtual std::size_t local_size () const
 Return local size of vector.
 
virtual std::pair< std::int64_t, std::int64_t > local_range () const
 Return local ownership range of a vector.
 
virtual bool owns_index (std::size_t i) const
 Determine whether global vector index is owned by this process.
 
virtual void get (double *block, std::size_t m, const dolfin::la_index *rows) const
 
virtual void get_local (double *block, std::size_t m, const dolfin::la_index *rows) const
 
virtual void set (const double *block, std::size_t m, const dolfin::la_index *rows)
 Set block of values using global indices.
 
virtual void set_local (const double *block, std::size_t m, const dolfin::la_index *rows)
 Set block of values using local indices.
 
virtual void add (const double *block, std::size_t m, const dolfin::la_index *rows)
 Add block of values using global indices.
 
virtual void add_local (const double *block, std::size_t m, const dolfin::la_index *rows)
 Add block of values using local indices.
 
virtual void get_local (std::vector< double > &values) const
 Get all values on local process.
 
virtual void set_local (const std::vector< double > &values)
 Set all values on local process.
 
virtual void add_local (const Array< double > &values)
 Add values to each entry on local process.
 
virtual void gather (GenericVector &x, const std::vector< dolfin::la_index > &indices) const
 
virtual void gather (std::vector< double > &x, const std::vector< dolfin::la_index > &indices) const
 Gather entries (given by global indices) into x.
 
virtual void gather_on_zero (std::vector< double > &x) const
 Gather all entries into x on process 0.
 
virtual void axpy (double a, const GenericVector &x)
 Add multiple of given vector (AXPY operation)
 
virtual void abs ()
 Replace all entries in the vector by their absolute values.
 
virtual double inner (const GenericVector &x) const
 Return inner product with given vector.
 
virtual double norm (std::string norm_type) const
 Return norm of vector.
 
virtual double min () const
 Return minimum value of vector.
 
virtual double max () const
 Return maximum value of vector.
 
virtual double sum () const
 Return sum of values of vector.
 
virtual double sum (const Array< std::size_t > &rows) const
 
virtual const Vectoroperator*= (double a)
 Multiply vector by given number.
 
virtual const Vectoroperator*= (const GenericVector &x)
 Multiply vector by another vector pointwise.
 
virtual const Vectoroperator/= (double a)
 Divide vector by given number.
 
virtual const Vectoroperator+= (const GenericVector &x)
 Add given vector.
 
virtual const GenericVectoroperator+= (double a)
 Add number to all components of a vector.
 
virtual const Vectoroperator-= (const GenericVector &x)
 Subtract given vector.
 
virtual const GenericVectoroperator-= (double a)
 Subtract number from all components of a vector.
 
virtual const GenericVectoroperator= (const GenericVector &x)
 Assignment operator.
 
const Vectoroperator= (double a)
 Assignment operator.
 
virtual GenericLinearAlgebraFactoryfactory () const
 Return linear algebra backend factory.
 
virtual const GenericVectorinstance () const
 Return concrete instance / unwrap (const version)
 
virtual GenericVectorinstance ()
 Return concrete instance / unwrap (non-const version)
 
virtual std::shared_ptr< const LinearAlgebraObjectshared_instance () const
 Return concrete shared ptr instance / unwrap (const version)
 
virtual std::shared_ptr< LinearAlgebraObjectshared_instance ()
 Return concrete shared ptr instance / unwrap (non-const version)
 
const Vectoroperator= (const Vector &x)
 Assignment operator.
 
virtual void init (const TensorLayout &tensor_layout)
 
- Public Member Functions inherited from dolfin::GenericVector
virtual ~GenericVector ()
 Destructor.
 
virtual std::size_t rank () const
 Return tensor rank (number of dimensions)
 
virtual std::size_t size (std::size_t dim) const
 Return size of given dimension.
 
virtual std::pair< std::int64_t, std::int64_t > local_range (std::size_t dim) const
 Return local ownership range.
 
virtual void get (double *block, const dolfin::la_index *num_rows, const dolfin::la_index *const *rows) const
 Get block of values using global indices.
 
virtual void get_local (double *block, const dolfin::la_index *num_rows, const dolfin::la_index *const *rows) const
 Get block of values using local indices.
 
virtual void set (const double *block, const dolfin::la_index *num_rows, const dolfin::la_index *const *rows)
 Set block of values using global indices.
 
virtual void set_local (const double *block, const dolfin::la_index *num_rows, const dolfin::la_index *const *rows)
 Set block of values using local indices.
 
virtual void add (const double *block, const dolfin::la_index *num_rows, const dolfin::la_index *const *rows)
 Add block of values using global indices.
 
virtual void add_local (const double *block, const dolfin::la_index *num_rows, const dolfin::la_index *const *rows)
 Add block of values using local indices.
 
virtual void add (const double *block, const std::vector< ArrayView< const dolfin::la_index > > &rows)
 Add block of values using global indices.
 
virtual void add_local (const double *block, const std::vector< ArrayView< const dolfin::la_index > > &rows)
 Add block of values using local indices.
 
std::shared_ptr< GenericVectoroperator+ (const GenericVector &x)
 Sum two vectors (returns a new vector)
 
std::shared_ptr< GenericVectoroperator+ (double a)
 Add scalar to a vector (returns a new vector)
 
std::shared_ptr< GenericVectoroperator* (double a)
 Multiply vector by a scalar (returns a new vector)
 
virtual double operator[] (dolfin::la_index i) const
 Get value of given entry.
 
virtual double getitem (dolfin::la_index i) const
 Get value of given entry.
 
virtual void setitem (dolfin::la_index i, double value)
 
- Public Member Functions inherited from dolfin::GenericTensor
virtual ~GenericTensor ()
 Destructor.
 
- Public Member Functions inherited from dolfin::LinearAlgebraObject
- Public Member Functions inherited from dolfin::Variable
 Variable ()
 Create unnamed variable.
 
 Variable (const std::string name, const std::string label)
 Create variable with given name and label.
 
 Variable (const Variable &variable)
 Copy constructor.
 
virtual ~Variable ()
 Destructor.
 
const Variableoperator= (const Variable &variable)
 Assignment operator.
 
void rename (const std::string name, const std::string label)
 Rename variable.
 
std::string name () const
 Return name.
 
std::string label () const
 Return label (description)
 
std::size_t id () const
 

Additional Inherited Members

- Public Attributes inherited from dolfin::Variable
Parameters parameters
 Parameters.
 

Detailed Description

This class provides the default DOLFIN vector class, based on the default DOLFIN linear algebra backend.

Member Function Documentation

◆ abs()

virtual void dolfin::Vector::abs ( )
inlinevirtual

Replace all entries in the vector by their absolute values.

Implements dolfin::GenericVector.

◆ add()

virtual void dolfin::Vector::add ( const double * block,
std::size_t m,
const dolfin::la_index * rows )
inlinevirtual

Add block of values using global indices.

Implements dolfin::GenericVector.

◆ add_local() [1/2]

virtual void dolfin::Vector::add_local ( const Array< double > & values)
inlinevirtual

Add values to each entry on local process.

Implements dolfin::GenericVector.

◆ add_local() [2/2]

virtual void dolfin::Vector::add_local ( const double * block,
std::size_t m,
const dolfin::la_index * rows )
inlinevirtual

Add block of values using local indices.

Implements dolfin::GenericVector.

◆ apply()

virtual void dolfin::Vector::apply ( std::string mode)
inlinevirtual

Finalize assembly of tensor.

Implements dolfin::GenericVector.

◆ axpy()

virtual void dolfin::Vector::axpy ( double a,
const GenericVector & x )
inlinevirtual

Add multiple of given vector (AXPY operation)

Implements dolfin::GenericVector.

◆ copy()

virtual std::shared_ptr< GenericVector > dolfin::Vector::copy ( ) const
inlinevirtual

Return copy of vector.

Implements dolfin::GenericVector.

◆ empty()

virtual bool dolfin::Vector::empty ( ) const
inlinevirtual

Return true if vector is empty.

Implements dolfin::GenericTensor.

◆ factory()

virtual GenericLinearAlgebraFactory & dolfin::Vector::factory ( ) const
inlinevirtual

Return linear algebra backend factory.

Implements dolfin::GenericTensor.

◆ gather() [1/2]

virtual void dolfin::Vector::gather ( GenericVector & x,
const std::vector< dolfin::la_index > & indices ) const
inlinevirtual

Gather entries (given by global indices) into local vector x

Implements dolfin::GenericVector.

◆ gather() [2/2]

virtual void dolfin::Vector::gather ( std::vector< double > & x,
const std::vector< dolfin::la_index > & indices ) const
inlinevirtual

Gather entries (given by global indices) into x.

Implements dolfin::GenericVector.

◆ gather_on_zero()

virtual void dolfin::Vector::gather_on_zero ( std::vector< double > & x) const
inlinevirtual

Gather all entries into x on process 0.

Implements dolfin::GenericVector.

◆ get()

virtual void dolfin::Vector::get ( double * block,
std::size_t m,
const dolfin::la_index * rows ) const
inlinevirtual

Get block of values using global indices (values must all live on the local process, ghosts are no accessible)

Implements dolfin::GenericVector.

◆ get_local() [1/2]

virtual void dolfin::Vector::get_local ( double * block,
std::size_t m,
const dolfin::la_index * rows ) const
inlinevirtual

Get block of values using local indices (values must all live on the local process)

Implements dolfin::GenericVector.

◆ get_local() [2/2]

virtual void dolfin::Vector::get_local ( std::vector< double > & values) const
inlinevirtual

Get all values on local process.

Implements dolfin::GenericVector.

◆ init() [1/4]

virtual void dolfin::GenericVector::init ( const TensorLayout & tensor_layout)
inlinevirtual

Initialize zero tensor using sparsity pattern FIXME: This needs to be implemented on backend side! Remove it!

Reimplemented from dolfin::GenericVector.

◆ init() [2/4]

virtual void dolfin::Vector::init ( std::pair< std::size_t, std::size_t > range)
inlinevirtual

Initialize vector with given ownership range.

Implements dolfin::GenericVector.

◆ init() [3/4]

virtual void dolfin::Vector::init ( std::pair< std::size_t, std::size_t > range,
const std::vector< std::size_t > & local_to_global_map,
const std::vector< la_index > & ghost_indices )
inlinevirtual

Initialize vector with given ownership range and with ghost values

Implements dolfin::GenericVector.

◆ init() [4/4]

virtual void dolfin::Vector::init ( std::size_t N)
inlinevirtual

Initialize vector to size N.

Implements dolfin::GenericVector.

◆ inner()

virtual double dolfin::Vector::inner ( const GenericVector & x) const
inlinevirtual

Return inner product with given vector.

Implements dolfin::GenericVector.

◆ instance() [1/2]

virtual GenericVector * dolfin::Vector::instance ( )
inlinevirtual

Return concrete instance / unwrap (non-const version)

Reimplemented from dolfin::LinearAlgebraObject.

◆ instance() [2/2]

virtual const GenericVector * dolfin::Vector::instance ( ) const
inlinevirtual

Return concrete instance / unwrap (const version)

Reimplemented from dolfin::LinearAlgebraObject.

◆ local_range()

virtual std::pair< std::int64_t, std::int64_t > dolfin::Vector::local_range ( ) const
inlinevirtual

Return local ownership range of a vector.

Implements dolfin::GenericVector.

◆ local_size()

virtual std::size_t dolfin::Vector::local_size ( ) const
inlinevirtual

Return local size of vector.

Implements dolfin::GenericVector.

◆ max()

virtual double dolfin::Vector::max ( ) const
inlinevirtual

Return maximum value of vector.

Implements dolfin::GenericVector.

◆ min()

virtual double dolfin::Vector::min ( ) const
inlinevirtual

Return minimum value of vector.

Implements dolfin::GenericVector.

◆ mpi_comm()

virtual MPI_Comm dolfin::Vector::mpi_comm ( ) const
inlinevirtual

Return MPI communicator.

Implements dolfin::LinearAlgebraObject.

◆ norm()

virtual double dolfin::Vector::norm ( std::string norm_type) const
inlinevirtual

Return norm of vector.

Implements dolfin::GenericVector.

◆ operator*=() [1/2]

virtual const Vector & dolfin::Vector::operator*= ( const GenericVector & x)
inlinevirtual

Multiply vector by another vector pointwise.

Implements dolfin::GenericVector.

◆ operator*=() [2/2]

virtual const Vector & dolfin::Vector::operator*= ( double a)
inlinevirtual

Multiply vector by given number.

Implements dolfin::GenericVector.

◆ operator+=() [1/2]

virtual const Vector & dolfin::Vector::operator+= ( const GenericVector & x)
inlinevirtual

Add given vector.

Implements dolfin::GenericVector.

◆ operator+=() [2/2]

virtual const GenericVector & dolfin::Vector::operator+= ( double a)
inlinevirtual

Add number to all components of a vector.

Implements dolfin::GenericVector.

◆ operator-=() [1/2]

virtual const Vector & dolfin::Vector::operator-= ( const GenericVector & x)
inlinevirtual

Subtract given vector.

Implements dolfin::GenericVector.

◆ operator-=() [2/2]

virtual const GenericVector & dolfin::Vector::operator-= ( double a)
inlinevirtual

Subtract number from all components of a vector.

Implements dolfin::GenericVector.

◆ operator/=()

virtual const Vector & dolfin::Vector::operator/= ( double a)
inlinevirtual

Divide vector by given number.

Implements dolfin::GenericVector.

◆ operator=() [1/2]

virtual const GenericVector & dolfin::Vector::operator= ( const GenericVector & x)
inlinevirtual

Assignment operator.

Implements dolfin::GenericVector.

◆ operator=() [2/2]

const Vector & dolfin::Vector::operator= ( double a)
inlinevirtual

Assignment operator.

Implements dolfin::GenericVector.

◆ owns_index()

virtual bool dolfin::Vector::owns_index ( std::size_t i) const
inlinevirtual

Determine whether global vector index is owned by this process.

Implements dolfin::GenericVector.

◆ set()

virtual void dolfin::Vector::set ( const double * block,
std::size_t m,
const dolfin::la_index * rows )
inlinevirtual

Set block of values using global indices.

Implements dolfin::GenericVector.

◆ set_local() [1/2]

virtual void dolfin::Vector::set_local ( const double * block,
std::size_t m,
const dolfin::la_index * rows )
inlinevirtual

Set block of values using local indices.

Implements dolfin::GenericVector.

◆ set_local() [2/2]

virtual void dolfin::Vector::set_local ( const std::vector< double > & values)
inlinevirtual

Set all values on local process.

Implements dolfin::GenericVector.

◆ shared_instance() [1/2]

virtual std::shared_ptr< LinearAlgebraObject > dolfin::Vector::shared_instance ( )
inlinevirtual

Return concrete shared ptr instance / unwrap (non-const version)

Reimplemented from dolfin::LinearAlgebraObject.

◆ shared_instance() [2/2]

virtual std::shared_ptr< const LinearAlgebraObject > dolfin::Vector::shared_instance ( ) const
inlinevirtual

Return concrete shared ptr instance / unwrap (const version)

Reimplemented from dolfin::LinearAlgebraObject.

◆ size()

virtual std::size_t dolfin::Vector::size ( ) const
inlinevirtual

Return size of vector.

Implements dolfin::GenericVector.

◆ str()

virtual std::string dolfin::Vector::str ( bool verbose) const
inlinevirtual

Return informal string representation (pretty-print)

Implements dolfin::GenericVector.

◆ sum() [1/2]

virtual double dolfin::Vector::sum ( ) const
inlinevirtual

Return sum of values of vector.

Implements dolfin::GenericVector.

◆ sum() [2/2]

virtual double dolfin::Vector::sum ( const Array< std::size_t > & rows) const
inlinevirtual

Return sum of selected rows in vector. Repeated entries are only summed once.

Implements dolfin::GenericVector.

◆ zero()

virtual void dolfin::Vector::zero ( )
inlinevirtual

Set all entries to zero and keep any sparse structure.

Implements dolfin::GenericVector.


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