DOLFIN
DOLFIN C++ interface
|
#include <EigenVector.h>
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. More... | |
virtual void | apply (std::string mode) |
Finalize assembly of tensor. More... | |
virtual MPI_Comm | mpi_comm () const |
Return MPI communicator. More... | |
virtual std::string | str (bool verbose) const |
Return informal string representation (pretty-print) More... | |
virtual std::shared_ptr< GenericVector > | copy () const |
Create copy of tensor. More... | |
virtual void | init (std::size_t N) |
Initialize vector to size N. More... | |
virtual void | init (std::pair< std::size_t, std::size_t > range) |
Resize vector with given ownership range. More... | |
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. More... | |
virtual bool | empty () const |
Return true if vector is empty. More... | |
virtual std::size_t | size () const |
Return true if vector is empty. More... | |
virtual std::size_t | local_size () const |
Return local size of vector. More... | |
virtual std::pair< std::int64_t, std::int64_t > | local_range () const |
Return local ownership range of a vector. More... | |
virtual bool | owns_index (std::size_t i) const |
Determine whether global vector index is owned by this process. More... | |
virtual void | get (double *block, std::size_t m, const dolfin::la_index *rows) const |
Get block of values using global indices. More... | |
virtual void | get_local (double *block, std::size_t m, const dolfin::la_index *rows) const |
Get block of values using local indices. More... | |
virtual void | set (const double *block, std::size_t m, const dolfin::la_index *rows) |
Set block of values using global indices. More... | |
virtual void | set_local (const double *block, std::size_t m, const dolfin::la_index *rows) |
Set block of values using local indices. More... | |
virtual void | add (const double *block, std::size_t m, const dolfin::la_index *rows) |
Add block of values using global indices. More... | |
virtual void | add_local (const double *block, std::size_t m, const dolfin::la_index *rows) |
Add block of values using local indices. More... | |
virtual void | get_local (std::vector< double > &values) const |
Get all values on local process. More... | |
virtual void | set_local (const std::vector< double > &values) |
Set all values on local process. More... | |
virtual void | add_local (const Array< double > &values) |
Add values to each entry on local process. More... | |
virtual void | gather (GenericVector &x, const std::vector< dolfin::la_index > &indices) const |
Gather entries into local vector x. More... | |
virtual void | gather (std::vector< double > &x, const std::vector< dolfin::la_index > &indices) const |
Gather entries into x. More... | |
virtual void | gather_on_zero (std::vector< double > &x) const |
Gather all entries into x on process 0. More... | |
virtual void | axpy (double a, const GenericVector &x) |
Add multiple of given vector (AXPY operation) More... | |
virtual void | abs () |
Replace all entries in the vector by their absolute values. More... | |
virtual double | inner (const GenericVector &x) const |
Return inner product with given vector. More... | |
virtual double | norm (std::string norm_type) const |
Compute norm of vector. More... | |
virtual double | min () const |
Return minimum value of vector. More... | |
virtual double | max () const |
Return maximum value of vector. More... | |
virtual double | sum () const |
Return sum of values of vector. More... | |
virtual double | sum (const Array< std::size_t > &rows) const |
virtual const EigenVector & | operator*= (double a) |
Multiply vector by given number. More... | |
virtual const EigenVector & | operator*= (const GenericVector &x) |
Multiply vector by another vector pointwise. More... | |
virtual const EigenVector & | operator/= (double a) |
Divide vector by given number. More... | |
virtual const EigenVector & | operator+= (const GenericVector &x) |
Add given vector. More... | |
virtual const EigenVector & | operator+= (double a) |
Add number to all components of a vector. More... | |
virtual const EigenVector & | operator-= (const GenericVector &x) |
Subtract given vector. More... | |
virtual const EigenVector & | operator-= (double a) |
Subtract number from all components of a vector. More... | |
virtual const GenericVector & | operator= (const GenericVector &x) |
Assignment operator. More... | |
virtual const EigenVector & | operator= (double a) |
Assignment operator. More... | |
virtual GenericLinearAlgebraFactory & | factory () const |
Return linear algebra backend factory. More... | |
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) More... | |
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) |
virtual void | init (std::size_t N)=0 |
Initialize vector to global size N. More... | |
virtual void | init (std::pair< std::size_t, std::size_t > range)=0 |
Initialize vector with given local ownership range. More... | |
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)=0 |
![]() | |
virtual | ~GenericVector () |
Destructor. | |
virtual void | init (const TensorLayout &tensor_layout) |
virtual std::size_t | rank () const |
Return tensor rank (number of dimensions) More... | |
virtual std::size_t | size (std::size_t dim) const |
Return size of given dimension. More... | |
virtual std::pair< std::int64_t, std::int64_t > | local_range (std::size_t dim) const |
Return local ownership range. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
virtual void | add (const double *block, const std::vector< ArrayView< const dolfin::la_index > > &rows) |
Add block of values using global indices. More... | |
virtual void | add_local (const double *block, const std::vector< ArrayView< const dolfin::la_index > > &rows) |
Add block of values using local indices. More... | |
virtual void | zero ()=0 |
Set all entries to zero and keep any sparse structure. More... | |
virtual void | apply (std::string mode)=0 |
Finalize assembly of tensor. More... | |
virtual std::string | str (bool verbose) const =0 |
Return informal string representation (pretty-print) More... | |
virtual std::shared_ptr< GenericVector > | copy () const =0 |
Return copy of vector. More... | |
virtual void | init (std::size_t N)=0 |
Initialize vector to global size N. More... | |
virtual void | init (std::pair< std::size_t, std::size_t > range)=0 |
Initialize vector with given local ownership range. More... | |
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)=0 |
virtual std::size_t | size () const =0 |
Return global size of vector. More... | |
virtual std::size_t | local_size () const =0 |
Return local size of vector. More... | |
virtual std::pair< std::int64_t, std::int64_t > | local_range () const =0 |
Return local ownership range of a vector. More... | |
virtual bool | owns_index (std::size_t i) const =0 |
Determine whether global vector index is owned by this process. More... | |
virtual void | get (double *block, std::size_t m, const dolfin::la_index *rows) const =0 |
virtual void | get_local (double *block, std::size_t m, const dolfin::la_index *rows) const =0 |
virtual void | set (const double *block, std::size_t m, const dolfin::la_index *rows)=0 |
Set block of values using global indices. More... | |
virtual void | set_local (const double *block, std::size_t m, const dolfin::la_index *rows)=0 |
Set block of values using local indices. More... | |
virtual void | add (const double *block, std::size_t m, const dolfin::la_index *rows)=0 |
Add block of values using global indices. More... | |
virtual void | add_local (const double *block, std::size_t m, const dolfin::la_index *rows)=0 |
Add block of values using local indices. More... | |
virtual void | get_local (std::vector< double > &values) const =0 |
Get all values on local process. More... | |
virtual void | set_local (const std::vector< double > &values)=0 |
Set all values on local process. More... | |
virtual void | add_local (const Array< double > &values)=0 |
Add values to each entry on local process. More... | |
virtual void | gather (GenericVector &x, const std::vector< dolfin::la_index > &indices) const =0 |
virtual void | gather (std::vector< double > &x, const std::vector< dolfin::la_index > &indices) const =0 |
Gather entries (given by global indices) into x. More... | |
virtual void | gather_on_zero (std::vector< double > &x) const =0 |
Gather all entries into x on process 0. More... | |
virtual void | axpy (double a, const GenericVector &x)=0 |
Add multiple of given vector (AXPY operation) More... | |
virtual void | abs ()=0 |
Replace all entries in the vector by their absolute values. More... | |
virtual double | inner (const GenericVector &x) const =0 |
Return inner product with given vector. More... | |
virtual double | norm (std::string norm_type) const =0 |
Return norm of vector. More... | |
virtual double | min () const =0 |
Return minimum value of vector. More... | |
virtual double | max () const =0 |
Return maximum value of vector. More... | |
virtual double | sum () const =0 |
Return sum of vector. More... | |
virtual double | sum (const Array< std::size_t > &rows) const =0 |
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 const GenericVector & | operator*= (double a)=0 |
Multiply vector by given number. More... | |
virtual const GenericVector & | operator*= (const GenericVector &x)=0 |
Multiply vector by another vector pointwise. More... | |
virtual const GenericVector & | operator/= (double a)=0 |
Divide vector by given number. More... | |
virtual const GenericVector & | operator+= (const GenericVector &x)=0 |
Add given vector. More... | |
virtual const GenericVector & | operator+= (double a)=0 |
Add number to all components of a vector. More... | |
virtual const GenericVector & | operator-= (const GenericVector &x)=0 |
Subtract given vector. More... | |
virtual const GenericVector & | operator-= (double a)=0 |
Subtract number from all components of a vector. More... | |
virtual const GenericVector & | operator= (const GenericVector &x)=0 |
Assignment operator. More... | |
virtual const GenericVector & | operator= (double a)=0 |
Assignment operator. More... | |
virtual double | operator[] (dolfin::la_index i) const |
Get value of given entry. More... | |
virtual double | getitem (dolfin::la_index i) const |
Get value of given entry. | |
virtual void | setitem (dolfin::la_index i, double value) |
![]() | |
virtual | ~GenericTensor () |
Destructor. | |
virtual void | init (const TensorLayout &tensor_layout)=0 |
Initialize zero tensor using tensor layout. More... | |
virtual bool | empty () const =0 |
Return true if empty. More... | |
virtual std::size_t | rank () const =0 |
Return tensor rank (number of dimensions) More... | |
virtual std::size_t | size (std::size_t dim) const =0 |
Return size of given dimension. More... | |
virtual std::pair< std::int64_t, std::int64_t > | local_range (std::size_t dim) const =0 |
Return local ownership range. More... | |
virtual void | get (double *block, const dolfin::la_index *num_rows, const dolfin::la_index *const *rows) const =0 |
Get block of values. More... | |
virtual void | set (const double *block, const dolfin::la_index *num_rows, const dolfin::la_index *const *rows)=0 |
Set block of values using global indices. More... | |
virtual void | set_local (const double *block, const dolfin::la_index *num_rows, const dolfin::la_index *const *rows)=0 |
Set block of values using local indices. More... | |
virtual void | add (const double *block, const std::vector< ArrayView< const dolfin::la_index > > &rows)=0 |
Add block of values using global indices. More... | |
virtual void | add_local (const double *block, const std::vector< ArrayView< const dolfin::la_index > > &rows)=0 |
Add block of values using local indices. More... | |
virtual void | add (const double *block, const dolfin::la_index *num_rows, const dolfin::la_index *const *rows)=0 |
Add block of values using global indices. More... | |
virtual void | add_local (const double *block, const dolfin::la_index *num_rows, const dolfin::la_index *const *rows)=0 |
Add block of values using local indices. More... | |
virtual void | zero ()=0 |
Set all entries to zero and keep any sparse structure. More... | |
virtual void | apply (std::string mode)=0 |
Finalize assembly of tensor. More... | |
virtual std::string | str (bool verbose) const =0 |
Return MPI communicator. More... | |
virtual GenericLinearAlgebraFactory & | factory () const =0 |
Return linear algebra backend factory. More... | |
![]() | |
virtual const LinearAlgebraObject * | instance () const |
Return concrete instance / unwrap (const version) More... | |
virtual LinearAlgebraObject * | instance () |
Return concrete instance / unwrap (non-const version) More... | |
virtual std::shared_ptr< const LinearAlgebraObject > | shared_instance () const |
Return concrete shared ptr instance / unwrap (const version) More... | |
virtual std::shared_ptr< LinearAlgebraObject > | shared_instance () |
Return concrete shared ptr instance / unwrap (non-const version) More... | |
virtual MPI_Comm | mpi_comm () const =0 |
Return MPI communicator. More... | |
![]() | |
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 |
virtual std::string | str (bool verbose) const |
Return informal string representation (pretty-print) More... | |
Additional Inherited Members | |
![]() | |
Parameters | parameters |
Parameters. | |
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
|
virtual |
Replace all entries in the vector by their absolute values.
Implements dolfin::GenericVector.
|
virtual |
Add block of values using global indices.
Implements dolfin::GenericVector.
|
virtual |
Add values to each entry on local process.
Implements dolfin::GenericVector.
|
inlinevirtual |
Add block of values using local indices.
Implements dolfin::GenericVector.
|
virtual |
Finalize assembly of tensor.
Implements dolfin::GenericVector.
|
virtual |
Add multiple of given vector (AXPY operation)
Implements dolfin::GenericVector.
|
virtual |
Create copy of tensor.
Implements dolfin::GenericVector.
|
virtual |
Return true if vector is empty.
Implements dolfin::GenericTensor.
|
virtual |
Return linear algebra backend factory.
Implements dolfin::GenericTensor.
|
virtual |
Gather entries into local vector x.
Implements dolfin::GenericVector.
|
virtual |
Gather entries into x.
Implements dolfin::GenericVector.
|
virtual |
Gather all entries into x on process 0.
Implements dolfin::GenericVector.
|
inlinevirtual |
Get block of values using global indices.
Implements dolfin::GenericVector.
|
virtual |
Get block of values using local indices.
Implements dolfin::GenericVector.
|
virtual |
Get all values on local process.
Implements dolfin::GenericVector.
|
inlinevirtual |
Initialize zero tensor using sparsity pattern FIXME: This needs to be implemented on backend side! Remove it!
Reimplemented from dolfin::GenericVector.
|
inlinevirtual |
Resize vector with given ownership range.
Implements dolfin::GenericVector.
|
virtual |
Initialize vector with given local ownership range.
Implements dolfin::GenericVector.
|
inlinevirtual |
Resize vector with given ownership range and with ghost values.
Implements dolfin::GenericVector.
|
virtual |
Initialise vector with given ownership range and with ghost values FIXME: Reimplement using init(const TensorLayout&) and deprecate
Implements dolfin::GenericVector.
|
inlinevirtual |
Initialize vector to size N.
Implements dolfin::GenericVector.
|
virtual |
Initialize vector to global size N.
Implements dolfin::GenericVector.
|
virtual |
Return inner product with given vector.
Implements dolfin::GenericVector.
|
virtual |
Return local ownership range of a vector.
Implements dolfin::GenericVector.
|
inlinevirtual |
Return local size of vector.
Implements dolfin::GenericVector.
|
virtual |
Return maximum value of vector.
Implements dolfin::GenericVector.
|
virtual |
Return minimum value of vector.
Implements dolfin::GenericVector.
|
inlinevirtual |
Return MPI communicator.
Implements dolfin::LinearAlgebraObject.
|
virtual |
Compute norm of vector.
Implements dolfin::GenericVector.
|
virtual |
Multiply vector by another vector pointwise.
Implements dolfin::GenericVector.
|
virtual |
Multiply vector by given number.
Implements dolfin::GenericVector.
|
virtual |
Add given vector.
Implements dolfin::GenericVector.
|
virtual |
Add number to all components of a vector.
Implements dolfin::GenericVector.
|
virtual |
Subtract given vector.
Implements dolfin::GenericVector.
|
virtual |
Subtract number from all components of a vector.
Implements dolfin::GenericVector.
|
virtual |
Divide vector by given number.
Implements dolfin::GenericVector.
|
virtual |
Assignment operator.
Implements dolfin::GenericVector.
|
virtual |
Assignment operator.
Implements dolfin::GenericVector.
|
inlinevirtual |
Access value of given entry (const version)
Reimplemented from dolfin::GenericVector.
|
virtual |
Determine whether global vector index is owned by this process.
Implements dolfin::GenericVector.
|
virtual |
Set block of values using global indices.
Implements dolfin::GenericVector.
|
inlinevirtual |
Set block of values using local indices.
Implements dolfin::GenericVector.
|
virtual |
Set all values on local process.
Implements dolfin::GenericVector.
|
virtual |
Return true if vector is empty.
Implements dolfin::GenericVector.
|
virtual |
Return informal string representation (pretty-print)
Implements dolfin::GenericVector.
|
virtual |
Return sum of values of vector.
Implements dolfin::GenericVector.
|
virtual |
Return sum of selected rows in vector. Repeated entries are only summed once.
Implements dolfin::GenericVector.
|
virtual |
Set all entries to zero and keep any sparse structure.
Implements dolfin::GenericVector.