DOLFIN
DOLFIN C++ interface
Public Member Functions | List of all members
dolfin::EigenVector Class Reference

#include <EigenVector.h>

Inheritance diagram for dolfin::EigenVector:
Inheritance graph
[legend]
Collaboration diagram for dolfin::EigenVector:
Collaboration graph
[legend]

Public Member Functions

 EigenVector ()
 Create empty vector (on MPI_COMM_SELF)
 
 EigenVector (MPI_Comm comm)
 Create empty vector.
 
 EigenVector (MPI_Comm comm, std::size_t N)
 Create vector of size N.
 
 EigenVector (const EigenVector &x)
 Copy constructor.
 
 EigenVector (std::shared_ptr< Eigen::VectorXd > x)
 Construct vector from an Eigen shared_ptr.
 
virtual ~EigenVector ()
 Destructor.
 
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 std::shared_ptr< GenericVectorcopy () const
 Create copy of tensor.
 
virtual void init (std::size_t N)
 Initialize vector to size N.
 
virtual void init (std::pair< std::size_t, std::size_t > range)
 Resize 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)
 Resize vector with given ownership range and with ghost values.
 
virtual bool empty () const
 Return true if vector is empty.
 
virtual std::size_t size () const
 Return true if vector is empty.
 
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
 Get block of values using global indices.
 
virtual void get_local (double *block, std::size_t m, const dolfin::la_index *rows) const
 Get block of values using local indices.
 
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
 Gather entries into local vector x.
 
virtual void gather (std::vector< double > &x, const std::vector< dolfin::la_index > &indices) const
 Gather entries 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
 Compute 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 EigenVectoroperator*= (double a)
 Multiply vector by given number.
 
virtual const EigenVectoroperator*= (const GenericVector &x)
 Multiply vector by another vector pointwise.
 
virtual const EigenVectoroperator/= (double a)
 Divide vector by given number.
 
virtual const EigenVectoroperator+= (const GenericVector &x)
 Add given vector.
 
virtual const EigenVectoroperator+= (double a)
 Add number to all components of a vector.
 
virtual const EigenVectoroperator-= (const GenericVector &x)
 Subtract given vector.
 
virtual const EigenVectoroperator-= (double a)
 Subtract number from all components of a vector.
 
virtual const GenericVectoroperator= (const GenericVector &x)
 Assignment operator.
 
virtual const EigenVectoroperator= (double a)
 Assignment operator.
 
virtual GenericLinearAlgebraFactoryfactory () const
 Return linear algebra backend factory.
 
virtual void resize (std::size_t N)
 Resize vector to size N.
 
std::shared_ptr< const Eigen::VectorXd > vec () const
 Return reference to Eigen vector (const version)
 
std::shared_ptr< Eigen::VectorXd > vec ()
 Return reference to Eigen vector (non-const version)
 
virtual double operator[] (dolfin::la_index i) const
 Access value of given entry (const version)
 
double & operator[] (dolfin::la_index i)
 Access value of given entry (non-const version)
 
const EigenVectoroperator= (const EigenVector &x)
 Assignment operator.
 
double * data ()
 Return pointer to underlying data.
 
const double * data () const
 Return pointer to underlying data (const version)
 
- Public Member Functions inherited from dolfin::GenericVector
virtual ~GenericVector ()
 Destructor.
 
virtual void init (const TensorLayout &tensor_layout)
 
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 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
virtual const LinearAlgebraObjectinstance () const
 Return concrete instance / unwrap (const version)
 
virtual LinearAlgebraObjectinstance ()
 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)
 
- 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 a simple vector class based on Eigen. It is a simple wrapper for a Eigen vector implementing the GenericVector interface.

The interface is intentionally simple. For advanced usage, access the underlying Eigen vector and use the standard Eigen interface which is documented at http://eigen.tuxfamily.org

Member Function Documentation

◆ sum()

double EigenVector::sum ( const Array< std::size_t > &  rows) const
virtual

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

Implements dolfin::GenericVector.


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