20 #ifndef SELDON_FILE_DISTRIBUTED_VECTOR_HXX
31 template<
class T,
class Allocator
32 =
typename SeldonDefaultAllocator<VectFull, T>::allocator>
67 template<
class T1,
class Allocator1>
72 template<
class T1,
class Allocator1>
77 template<
class T,
class Allocator>
81 template<
class T,
class Allocator>
88 complex<T>
minComplex(
const complex<T>& x,
const complex<T>& y);
94 complex<T>
maxComplex(
const complex<T>& x,
const complex<T>& y);
99 IVect& MatchingNumber_Local,
103 const IVect& ProcNumber,
105 const MPI_Comm& comm,
int Nvol,
int nb_u,
int tag);
108 void AssembleVector(
Vector<T>& X,
const MPI_Op& oper,
110 const MPI_Comm& comm,
int Nvol,
int nb_u,
int tag);
115 const MPI_Comm& comm,
int Nvol,
int nb_u,
int tag);
117 template<
class T,
class Treal>
118 void ExchangeRelaxVector(
Vector<T>& X,
const Treal& omega,
int proc,
119 const IVect& ProcNumber,
121 const MPI_Comm& comm,
int Nvol,
int nb_u,
int tag);
151 #define SELDON_FILE_DISTRIBUTED_VECTOR_HXX
DistributedVector()
default constructor
int GetOverlapRow(int i) const
returns an overlapped row number
T maxComplex(const T &x, const T &y)
maximum for real numbers
ClassComplexType< T >::Treal Norm2(const VectorExpression< T, E > &X)
returns 2-norm of an expression with vectors
int GetNbOverlap() const
returns the number of rows already counted
T1 DotProdVector(const Vector< T1, Storage1, Allocator1 > &X, const Vector< T2, Storage2, Allocator2 > &Y)
Scalar product between two vectors.
IVect * OverlapRowNumbers
row numbers shared with other processors
const MPI_Comm & GetCommunicator() const
returns communicator
void ExtractDistributedSharedNumbers(const IVect &MatchingNumber_Subdomain, const Vector< IVect > &MatchingDofOrig_Subdomain, const Vector< bool > &is_local, int nb_ddl_local, IVect &MatchingNumber_Local, Vector< IVect > &MatchingDof_Local)
extracts MatchingNumber_Local / MatchingDof_Local from arrays MatchingNumber_Subdomain / MatchingDofO...
void SetOverlapRow(const IVect &rows, const MPI_Comm &comm)
sets overlapped rows and MPI communicator
void SetCommunicator(const MPI_Comm &comm)
sets communicator
void AssembleVectorMin(Vector< int > &X, Vector< int > &Xproc, const IVect &ProcNumber, const Vector< IVect > &DofNumber, const MPI_Comm &comm, int Nvol, int nb_u, int tag)
assembles minimums of two vectors
T minComplex(const T &x, const T &y)
minimum for real numbers
MPI_Comm comm_
MPI communicator grouping processors involved in the computation.
T1 DotProdConjVector(const Vector< T1, Storage1, Allocator1 > &X, const Vector< T2, Storage2, Allocator2 > &Y)
Scalar product between two vectors conj(X).Y .
class storing a vector distributed over all the processors