27#ifndef dftefeMultiVector_h
28#define dftefeMultiVector_h
42 namespace linearAlgebra
132 template <
typename ValueType, dftefe::utils::MemorySpace memorySpace>
227 const ValueType max);
279 const std::pair<global_size_type, global_size_type> locallyOwnedRange,
280 const std::vector<global_size_type> & ghostIndices,
305 const std::pair<global_size_type, global_size_type> locallyOwnedRange,
474 std::shared_ptr<const utils::mpi::MPIPatternP2P<memorySpace>>
477 std::shared_ptr<LinAlgOpContext<memorySpace>>
504 std::unique_ptr<utils::mpi::MPICommunicatorP2P<ValueType, memorySpace>>
506 std::shared_ptr<const utils::mpi::MPIPatternP2P<memorySpace>>
517 template <
typename ValueType, dftefe::utils::MemorySpace memorySpace>
540 template <
typename ValueType1,
570 template <
typename ValueType1,
616 template <
typename ValueType1,
652 template <
typename ValueType1,
Definition: LinAlgOpContext.h:38
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition: MultiVector.h:134
void updateGhostValues(const size_type communicationChannel=0)
Definition: MultiVector.t.cpp:611
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > getMPIPatternP2P() const
Definition: MultiVector.t.cpp:682
void updateGhostValuesBegin(const size_type communicationChannel=0)
Definition: MultiVector.t.cpp:628
std::shared_ptr< LinAlgOpContext< memorySpace > > d_linAlgOpContext
Definition: MultiVector.h:497
typename Storage::const_reference const_reference
Definition: MultiVector.h:143
MultiVector & operator=(const MultiVector &u)
Copy assignment operator.
Definition: MultiVector.t.cpp:462
size_type d_ghostSize
Definition: MultiVector.h:502
global_size_type d_globalSize
Definition: MultiVector.h:500
size_type d_numVectors
Definition: MultiVector.h:503
size_type localSize() const
Definition: MultiVector.t.cpp:703
iterator end()
Return iterator pointing to the end of MultiVector data.
Definition: MultiVector.t.cpp:518
std::unique_ptr< utils::mpi::MPICommunicatorP2P< ValueType, memorySpace > > d_mpiCommunicatorP2P
Definition: MultiVector.h:505
size_type d_localSize
Definition: MultiVector.h:499
size_type locallyOwnedSize() const
Definition: MultiVector.t.cpp:710
typename Storage::const_iterator const_iterator
Definition: MultiVector.h:145
bool isCompatible(const MultiVector< ValueType, memorySpace > &rhs) const
Definition: MultiVector.t.cpp:660
size_type d_locallyOwnedSize
Definition: MultiVector.h:501
void accumulateAddLocallyOwned(const size_type communicationChannel=0)
Definition: MultiVector.t.cpp:619
size_type ghostSize() const
Definition: MultiVector.t.cpp:717
std::vector< double > l2Norms() const
Returns norms of all the vectors in the MultiVector.
Definition: MultiVector.t.cpp:553
typename Storage::reference reference
Definition: MultiVector.h:142
global_size_type globalSize() const
Definition: MultiVector.t.cpp:696
~MultiVector()=default
Default Destructor.
typename Storage::pointer pointer
Definition: MultiVector.h:141
size_type getNumberComponents() const
Returns the nunber of vectors in this multi-vector.
Definition: MultiVector.t.cpp:604
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > d_mpiPatternP2P
Definition: MultiVector.h:507
size_type numVectors() const
Definition: MultiVector.t.cpp:724
iterator begin()
Return iterator pointing to the beginning of MultiVector data.
Definition: MultiVector.t.cpp:504
typename Storage::iterator iterator
Definition: MultiVector.h:144
std::vector< double > lInfNorms() const
Returns norms of all the vectors in the MultiVector.
Definition: MultiVector.t.cpp:582
void updateGhostValuesEnd()
Definition: MultiVector.t.cpp:637
std::unique_ptr< Storage > d_storage
Definition: MultiVector.h:496
VectorAttributes d_vectorAttributes
Definition: MultiVector.h:498
ValueType * data()
Return the raw pointer to the MultiVector data.
Definition: MultiVector.t.cpp:532
typename Storage::value_type value_type
Definition: MultiVector.h:140
std::shared_ptr< LinAlgOpContext< memorySpace > > getLinAlgOpContext() const
Definition: MultiVector.t.cpp:689
void accumulateAddLocallyOwnedBegin(const size_type communicationChannel=0)
Definition: MultiVector.t.cpp:644
void accumulateAddLocallyOwnedEnd()
Definition: MultiVector.t.cpp:653
MultiVector()=default
Default Constructor.
void setValue(const ValueType val)
Set all entries of the MultiVector to a given value.
Definition: MultiVector.t.cpp:546
Definition: VectorAttributes.h:36
Definition: MemoryStorage.h:38
const ValueType & const_reference
Definition: MemoryStorage.h:58
const ValueType * const_iterator
Definition: MemoryStorage.h:60
ValueType * iterator
Definition: MemoryStorage.h:59
ValueType * pointer
Definition: MemoryStorage.h:56
ValueType & reference
Definition: MemoryStorage.h:57
ValueType value_type
A class template to provide an interface that can act similar to STL vectors but with different Memor...
Definition: MemoryStorage.h:55
Definition: Defaults.h:37
A class template to store the communication pattern (i.e., which entries/nodes to receive from which ...
Definition: MPIPatternP2P.h:197
blas::scalar_type< ValueType1, ValueType2 > scalar_type
Definition: BlasLapackTypedef.h:70
ScalarOp
Definition: BlasLapackTypedef.h:56
void dot(const MultiVector< ValueType1, memorySpace > &u, const MultiVector< ValueType2, memorySpace > &v, blasLapack::scalar_type< ValueType1, ValueType2 > *dotProds, const blasLapack::ScalarOp &opU, const blasLapack::ScalarOp &opV)
Definition: MultiVector.t.cpp:803
void add(blasLapack::scalar_type< ValueType1, ValueType2 > a, const MultiVector< ValueType1, memorySpace > &u, blasLapack::scalar_type< ValueType1, ValueType2 > b, const MultiVector< ValueType2, memorySpace > &v, MultiVector< blasLapack::scalar_type< ValueType1, ValueType2 >, memorySpace > &w)
Perform .
Definition: MultiVector.t.cpp:747
void swap(MultiVector< ValueType, memorySpace > &X, MultiVector< ValueType, memorySpace > &Y)
Swaps the data of u with this multivector.
Definition: MultiVector.t.cpp:735
int MPIComm
Definition: MPITypes.h:83
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8
unsigned long int global_size_type
Definition: TypeConfig.h:9