Loading...
Searching...
No Matches
dolfin::EigenVector Class Reference

`#include <EigenVector.h>`

Inheritance diagram for dolfin::EigenVector:
[legend]
Collaboration diagram for dolfin::EigenVector:
[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< GenericVector > | copy () 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 EigenVector & | operator*= (double a)
| Multiply vector by given number.
virtual const EigenVector & | operator*= (const GenericVector &x)
| Multiply vector by another vector pointwise.
virtual const EigenVector & | operator/= (double a)
| Divide vector by given number.
virtual const EigenVector & | operator+= (const GenericVector &x)
| Add given vector.
virtual const EigenVector & | operator+= (double a)
| Add number to all components of a vector.
virtual const EigenVector & | operator-= (const GenericVector &x)
| Subtract given vector.
virtual const EigenVector & | operator-= (double a)
| Subtract number from all components of a vector.
virtual const GenericVector & | operator= (const GenericVector &x)
| Assignment operator.
virtual const EigenVector & | operator= (double a)
| Assignment operator.
virtual GenericLinearAlgebraFactory & | factory () 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 EigenVector & | operator= (const EigenVector &x)
| Assignment operator.
double * | data ()
| Return pointer to underlying data.
const double * | data () const
| Return pointer to underlying data (const version).
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< GenericVector > | operator+ (const GenericVector &x)
| Sum two vectors (returns a new vector).
std::shared_ptr< GenericVector > | operator+ (double a)
| Add scalar to a vector (returns a new vector).
std::shared_ptr< GenericVector > | operator* (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 LinearAlgebraObject * | instance () const
| Return concrete instance / unwrap (const version).
virtual LinearAlgebraObject * | instance ()
| Return concrete instance / unwrap (non-const version).
virtual std::shared_ptr< const LinearAlgebraObject > | shared_instance () const
| Return concrete shared ptr instance / unwrap (const version).
virtual std::shared_ptr< LinearAlgebraObject > | shared_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 Variable & | operator= (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

## abs()

void EigenVector::abs | ( |  | ) |

virtual

Replace all entries in the vector by their absolute values.

Implements dolfin::GenericVector.

## add()

void EigenVector::add | ( | const double * | block,
|  | std::size_t | m,
|  | const dolfin::la_index * | rows )

virtual

Add block of values using global indices.

Implements dolfin::GenericVector.

## add_local() [1/2]

void EigenVector::add_local | ( | const Array< double > & | values | ) |

virtual

Add values to each entry on local process.

Implements dolfin::GenericVector.

## add_local() [2/2]

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

inline virtual

Add block of values using local indices.

Implements dolfin::GenericVector.

## apply()

void EigenVector::apply | ( | std::string | mode | ) |

virtual

Finalize assembly of tensor.

Implements dolfin::GenericVector.

## axpy()

void EigenVector::axpy | ( | double | a,
|  | const GenericVector & | x )

virtual

Add multiple of given vector (AXPY operation).

Implements dolfin::GenericVector.

## copy()

std::shared_ptr< GenericVector > EigenVector::copy | ( |  | ) | const

virtual

Create copy of tensor.

Implements dolfin::GenericVector.

## empty()

bool EigenVector::empty | ( |  | ) | const

virtual

Return true if vector is empty.

Implements dolfin::GenericTensor.

## factory()

GenericLinearAlgebraFactory & EigenVector::factory | ( |  | ) | const

virtual

Return linear algebra backend factory.

Implements dolfin::GenericTensor.

## gather() [1/2]

void EigenVector::gather | ( | GenericVector & | x,
|  | const std::vector< dolfin::la_index > & | indices ) const

virtual

Gather entries into local vector x.

Implements dolfin::GenericVector.

## gather() [2/2]

void EigenVector::gather | ( | std::vector< double > & | x,
|  | const std::vector< dolfin::la_index > & | indices ) const

virtual

Gather entries into x.

Implements dolfin::GenericVector.

## gather_on_zero()

void EigenVector::gather_on_zero | ( | std::vector< double > & | x | ) | const

virtual

Gather all entries into x on process 0.

Implements dolfin::GenericVector.

## get()

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

inline virtual

Get block of values using global indices.

Implements dolfin::GenericVector.

## get_local() [1/2]

void EigenVector::get_local | ( | double * | block,
|  | std::size_t | m,
|  | const dolfin::la_index * | rows ) const

virtual

Get block of values using local indices.

Implements dolfin::GenericVector.

## get_local() [2/2]

void EigenVector::get_local | ( | std::vector< double > & | values | ) | const

virtual

Get all values on local process.

Implements dolfin::GenericVector.

## init() [1/4]

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

inline virtual

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::EigenVector::init | ( | std::pair< std::size_t, std::size_t > | range | ) |

inline virtual

Resize vector with given ownership range.

Implements dolfin::GenericVector.

## init() [3/4]

virtual void dolfin::EigenVector::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 )

inline virtual

Resize vector with given ownership range and with ghost values.

Implements dolfin::GenericVector.

## init() [4/4]

virtual void dolfin::EigenVector::init | ( | std::size_t | N | ) |

inline virtual

Initialize vector to size N.

Implements dolfin::GenericVector.

## inner()

double EigenVector::inner | ( | const GenericVector & | x | ) | const

virtual

Return inner product with given vector.

Implements dolfin::GenericVector.

## local_range()

std::pair< std::int64_t, std::int64_t > EigenVector::local_range | ( |  | ) | const

virtual

Return local ownership range of a vector.

Implements dolfin::GenericVector.

## local_size()

virtual std::size_t dolfin::EigenVector::local_size | ( |  | ) | const

inline virtual

Return local size of vector.

Implements dolfin::GenericVector.

## max()

double EigenVector::max | ( |  | ) | const

virtual

Return maximum value of vector.

Implements dolfin::GenericVector.

## min()

double EigenVector::min | ( |  | ) | const

virtual

Return minimum value of vector.

Implements dolfin::GenericVector.

## mpi_comm()

virtual MPI_Comm dolfin::EigenVector::mpi_comm | ( |  | ) | const

inline virtual

Return MPI communicator.

Implements dolfin::LinearAlgebraObject.

## norm()

double EigenVector::norm | ( | std::string | norm_type | ) | const

virtual

Compute norm of vector.

Implements dolfin::GenericVector.

## operator*=() [1/2]

const EigenVector & EigenVector::operator*= | ( | const GenericVector & | x | ) |

virtual

Multiply vector by another vector pointwise.

Implements dolfin::GenericVector.

## operator*=() [2/2]

const EigenVector & EigenVector::operator*= | ( | double | a | ) |

virtual

Multiply vector by given number.

Implements dolfin::GenericVector.

## operator+=() [1/2]

const EigenVector & EigenVector::operator+= | ( | const GenericVector & | x | ) |

virtual

Add given vector.

Implements dolfin::GenericVector.

## operator+=() [2/2]

const EigenVector & EigenVector::operator+= | ( | double | a | ) |

virtual

Add number to all components of a vector.

Implements dolfin::GenericVector.

## operator-=() [1/2]

const EigenVector & EigenVector::operator-= | ( | const GenericVector & | x | ) |

virtual

Subtract given vector.

Implements dolfin::GenericVector.

## operator-=() [2/2]

const EigenVector & EigenVector::operator-= | ( | double | a | ) |

virtual

Subtract number from all components of a vector.

Implements dolfin::GenericVector.

## operator/=()

const EigenVector & EigenVector::operator/= | ( | double | a | ) |

virtual

Divide vector by given number.

Implements dolfin::GenericVector.

## operator=() [1/2]

const GenericVector & EigenVector::operator= | ( | const GenericVector & | x | ) |

virtual

Assignment operator.

Implements dolfin::GenericVector.

## operator=() [2/2]

const EigenVector & EigenVector::operator= | ( | double | a | ) |

virtual

Assignment operator.

Implements dolfin::GenericVector.

## operator[]()

virtual double dolfin::EigenVector::operator[] | ( | dolfin::la_index | i | ) | const

inline virtual

Access value of given entry (const version).

Reimplemented from dolfin::GenericVector.

## owns_index()

bool EigenVector::owns_index | ( | std::size_t | i | ) | const

virtual

Determine whether global vector index is owned by this process.

Implements dolfin::GenericVector.

## set()

void EigenVector::set | ( | const double * | block,
|  | std::size_t | m,
|  | const dolfin::la_index * | rows )

virtual

Set block of values using global indices.

Implements dolfin::GenericVector.

## set_local() [1/2]

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

inline virtual

Set block of values using local indices.

Implements dolfin::GenericVector.

## set_local() [2/2]

void EigenVector::set_local | ( | const std::vector< double > & | values | ) |

virtual

Set all values on local process.

Implements dolfin::GenericVector.

## size()

std::size_t EigenVector::size | ( |  | ) | const

virtual

Return true if vector is empty.

Implements dolfin::GenericVector.

## str()

std::string EigenVector::str | ( | bool | verbose | ) | const

virtual

Return informal string representation (pretty-print).

Implements dolfin::GenericVector.

## sum() [1/2]

double EigenVector::sum | ( |  | ) | const

virtual

Return sum of values of vector.

Implements dolfin::GenericVector.

## sum() [2/2]

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.

## zero()

void EigenVector::zero | ( |  | ) |

virtual

Set all entries to zero and keep any sparse structure.

Implements dolfin::GenericVector.

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

- /build/dolfin-lFBzDh/dolfin-2019.2.0~legacy20240219.1c52e83/dolfin/la/EigenVector.h
- /build/dolfin-lFBzDh/dolfin-2019.2.0~legacy20240219.1c52e83/dolfin/la/EigenVector.cpp