The basic container that stores a base vector data. More...
#include <VectorBackend.hpp>
Public Types | |
using | BaseVector = ::Vec |
The type of the base vector. | |
using | value_type = PetscScalar |
The type of the elements of the DOFVector. | |
using | size_type = PetscInt |
The index/size - type. | |
Public Member Functions | |
PetscVector (DofMap const &dofMap) | |
Constructor. Constructs new BaseVector. | |
PetscVector (PetscVector &&other) | |
Move constructor. | |
PetscVector (PetscVector const &other) | |
Copy constructor. | |
~PetscVector () | |
Destructor. | |
PetscVector & | operator= (PetscVector &&other) |
Move assignment operator. | |
PetscVector & | operator= (PetscVector const &other) |
Copy assignment operator. | |
BaseVector const & | vector () const |
Return the data-vector vector_. | |
BaseVector & | vector () |
Return the data-vector vector_. | |
std::size_t | localSize () const |
Return the number of entries in the local part of the vector. | |
std::size_t | globalSize () const |
Return the number of entries in the global vector. | |
template<class Basis > | |
void | init (Basis const &, bool clear) |
Resize the vector_ to the size s . | |
void | finish () |
Finish assembly. Must be called before vector can be used in a KSP. | |
void | synchronize () |
Update the ghost regions with values from the owning process. | |
template<class MultiIndex > | |
PetscScalar | at (MultiIndex const &idx) const |
Access the entry i of the vector with read-only-access. | |
template<class MultiIndex , class Assign > | |
void | insert (MultiIndex const &dof, PetscScalar value, Assign) |
Access the entry i of the vector with write-access. | |
template<class IndexRange , class OutputIterator > | |
void | gather (IndexRange const &localInd, OutputIterator buffer) const |
Collect all values from this vector to indices given by localInd and store it into the output buffer. | |
template<class IndexRange , class LocalValues , class MaskRange , class Assign > | |
void | scatter (IndexRange const &localInd, LocalValues const &localVal, MaskRange const &mask, Assign) |
Store all values given by localVal with indices localInd in the vector. More... | |
template<class IndexRange , class Func > | |
void | forEach (IndexRange const &localInd, Func &&f) const |
Apply the functor f to each vector entry to local index in localInd range. | |
template<class Func > | |
void | forEachLocal (Func &&f) const |
Perform the f(value) on the local elements of this vector. | |
template<class Func > | |
void | forEachLocal (Func &&f) |
Perform the f(value) on the local elements of this vector. | |
void | set (PetscScalar value) |
Set all entries to value , including the ghost entries. | |
void | setZero () |
Zero all entries, including the ghost entries. | |
MPI_Comm | comm () const |
Static Public Member Functions | |
template<class Operation , class... VecIns> | |
static void | transformLocal (PetscVector &vecOut, Operation op, VecIns const &... vecIn) |
Perform the valueOut = op(valueIn...) on the local elements of [vecOut] and [vecIn...]. | |
template<class T , class BinOp1 , class BinOp2 > | |
static T | innerProductLocal (PetscVector const &in1, PetscVector const &in2, T init, BinOp1 op1, BinOp2 op2) |
Perform the op1(init, op2(value1, value2)) on the local elements of [in1] and [in2]. | |
Friends | |
void | swap (PetscVector &lhs, PetscVector &rhs) |
The basic container that stores a base vector data.
|
inline |
Store all values given by localVal
with indices localInd
in the vector.
Store only those values with mask != 0. Use an assign mode for the storage. It is not allowed to switch the assign mode before calling VecAssemblyBegin and VecAssemblyEnd.
References PetscVector< DofMap >::scatter().
Referenced by PetscVector< DofMap >::scatter().