Flow123d
release_3.0.0-1212-g8801db3
|
#include <vector_mpi.hh>
Public Types | |
typedef std::vector< double > | VectorData |
typedef std::shared_ptr< VectorData > | VectorDataPtr |
Public Member Functions | |
VectorMPI (MPI_Comm comm=PETSC_COMM_SELF) | |
VectorMPI (unsigned int local_size, MPI_Comm comm=PETSC_COMM_WORLD) | |
Create shared pointer and PETSC vector with given size. COLLECTIVE. More... | |
VectorMPI (unsigned int local_size, std::vector< LongIdx > &ghost_idx) | |
Create PETSc vector with ghost values whose indices are specified in ghost_idx . More... | |
void | resize (unsigned int local_size) |
void | resize (unsigned int local_size, std::vector< LongIdx > &ghost_idx) |
void | duplicate (VectorMPI other) |
Return new vector with same parallel structure. More... | |
VectorDataPtr | data_ptr () |
Getter for shared pointer of output data. More... | |
Vec & | petsc_vec () |
Getter for PETSC vector of output data (e.g. can be used by scatters). More... | |
void | zero_entries () |
VectorData & | data () |
const VectorData & | data () const |
void | swap (VectorMPI &other) |
void | copy (VectorMPI &other) |
void | local_to_ghost_begin () |
local_to_ghost_{begin,end} updates the ghost values on neighbouring processors from local values More... | |
void | local_to_ghost_end () |
local_to_ghost_{begin,end} updates the ghost values on neighbouring processors from local values More... | |
void | ghost_to_local_begin () |
ghost_to_local_{begin,end} updates the local values by adding ghost values from neighbouring processors More... | |
void | ghost_to_local_end () |
ghost_to_local_{begin,end} updates the local values by adding ghost values from neighbouring processors More... | |
unsigned int | size () const |
Return size of output data. More... | |
~VectorMPI () | |
Destructor. More... | |
double & | operator[] (unsigned int idx) |
double & | operator[] (unsigned int idx) const |
Static Public Member Functions | |
static VectorMPI | sequential (unsigned int size) |
Private Attributes | |
VectorDataPtr | data_ptr_ |
shared pointer to vector of data More... | |
Vec | data_petsc_ |
stored vector of data in PETSC format More... | |
MPI_Comm | communicator_ |
communicator More... | |
Auxiliary class for output elementwise concentration vectors in convection transport, sorptions, dual porosity etc.
Stores data in two formats:
Allows the following functionalities:
Definition at line 42 of file vector_mpi.hh.
typedef std::vector<double> VectorMPI::VectorData |
Definition at line 44 of file vector_mpi.hh.
typedef std::shared_ptr< VectorData > VectorMPI::VectorDataPtr |
Definition at line 45 of file vector_mpi.hh.
|
inline |
|
inline |
Create shared pointer and PETSC vector with given size. COLLECTIVE.
Definition at line 51 of file vector_mpi.hh.
|
inline |
Create PETSc vector with ghost values whose indices are specified in ghost_idx
.
Definition at line 57 of file vector_mpi.hh.
|
inline |
Destructor.
Definition at line 194 of file vector_mpi.hh.
|
inline |
Definition at line 158 of file vector_mpi.hh.
|
inline |
|
inline |
Definition at line 135 of file vector_mpi.hh.
|
inline |
Getter for shared pointer of output data.
Definition at line 114 of file vector_mpi.hh.
|
inline |
Return new vector with same parallel structure.
Definition at line 108 of file vector_mpi.hh.
|
inline |
ghost_to_local_{begin,end} updates the local values by adding ghost values from neighbouring processors
Definition at line 176 of file vector_mpi.hh.
|
inline |
ghost_to_local_{begin,end} updates the local values by adding ghost values from neighbouring processors
Definition at line 181 of file vector_mpi.hh.
|
inline |
local_to_ghost_{begin,end} updates the ghost values on neighbouring processors from local values
Definition at line 166 of file vector_mpi.hh.
|
inline |
local_to_ghost_{begin,end} updates the ghost values on neighbouring processors from local values
Definition at line 171 of file vector_mpi.hh.
|
inline |
Access to the vector element on local index idx
.
Definition at line 203 of file vector_mpi.hh.
|
inline |
Access to the vector element on local index idx
(const version).
Definition at line 213 of file vector_mpi.hh.
|
inline |
Getter for PETSC vector of output data (e.g. can be used by scatters).
Definition at line 120 of file vector_mpi.hh.
|
inline |
Resize the vector to given local size. Operation is allowed only if this object is a unique vector object pointing to the actual data.
Definition at line 76 of file vector_mpi.hh.
|
inline |
Resize the vector to given local size with ghost values. Indices of ghost values are in ghost_idx.
Definition at line 94 of file vector_mpi.hh.
|
inlinestatic |
Helper method creating VectorMPI of given size with serial Petsc communicator.
Method is used for better readability of code.
Definition at line 67 of file vector_mpi.hh.
|
inline |
Return size of output data.
Definition at line 186 of file vector_mpi.hh.
|
inline |
Definition at line 141 of file vector_mpi.hh.
|
inline |
|
private |
communicator
Definition at line 227 of file vector_mpi.hh.
|
private |
stored vector of data in PETSC format
Definition at line 225 of file vector_mpi.hh.
|
private |
shared pointer to vector of data
Definition at line 223 of file vector_mpi.hh.