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,
473 std::shared_ptr<const utils::mpi::MPIPatternP2P<memorySpace>>
476 std::shared_ptr<LinAlgOpContext<memorySpace>>
503 std::unique_ptr<utils::mpi::MPICommunicatorP2P<ValueType, memorySpace>>
505 std::shared_ptr<const utils::mpi::MPIPatternP2P<memorySpace>>
516 template <
typename ValueType, dftefe::utils::MemorySpace memorySpace>
539 template <
typename ValueType1,
569 template <
typename ValueType1,
615 template <
typename ValueType1,
651 template <
typename ValueType1,
Definition: LinAlgOpContext.h:52
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:633
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > getMPIPatternP2P() const
Definition: MultiVector.t.cpp:704
void updateGhostValuesBegin(const size_type communicationChannel=0)
Definition: MultiVector.t.cpp:650
std::shared_ptr< LinAlgOpContext< memorySpace > > d_linAlgOpContext
Definition: MultiVector.h:496
typename Storage::const_reference const_reference
Definition: MultiVector.h:143
MultiVector & operator=(const MultiVector &u)
Copy assignment operator.
Definition: MultiVector.t.cpp:482
size_type d_ghostSize
Definition: MultiVector.h:501
global_size_type d_globalSize
Definition: MultiVector.h:499
size_type d_numVectors
Definition: MultiVector.h:502
size_type localSize() const
Definition: MultiVector.t.cpp:725
iterator end()
Return iterator pointing to the end of MultiVector data.
Definition: MultiVector.t.cpp:540
std::unique_ptr< utils::mpi::MPICommunicatorP2P< ValueType, memorySpace > > d_mpiCommunicatorP2P
Definition: MultiVector.h:504
size_type d_localSize
Definition: MultiVector.h:498
virtual ~MultiVector()=default
Default Destructor.
size_type locallyOwnedSize() const
Definition: MultiVector.t.cpp:732
typename Storage::const_iterator const_iterator
Definition: MultiVector.h:145
bool isCompatible(const MultiVector< ValueType, memorySpace > &rhs) const
Definition: MultiVector.t.cpp:682
size_type d_locallyOwnedSize
Definition: MultiVector.h:500
void accumulateAddLocallyOwned(const size_type communicationChannel=0)
Definition: MultiVector.t.cpp:641
size_type ghostSize() const
Definition: MultiVector.t.cpp:739
std::vector< double > l2Norms() const
Returns norms of all the vectors in the MultiVector.
Definition: MultiVector.t.cpp:575
typename Storage::reference reference
Definition: MultiVector.h:142
global_size_type globalSize() const
Definition: MultiVector.t.cpp:718
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:626
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > d_mpiPatternP2P
Definition: MultiVector.h:506
size_type numVectors() const
Definition: MultiVector.t.cpp:746
iterator begin()
Return iterator pointing to the beginning of MultiVector data.
Definition: MultiVector.t.cpp:526
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:604
void updateGhostValuesEnd()
Definition: MultiVector.t.cpp:659
std::unique_ptr< Storage > d_storage
Definition: MultiVector.h:495
VectorAttributes d_vectorAttributes
Definition: MultiVector.h:497
ValueType * data()
Return the raw pointer to the MultiVector data.
Definition: MultiVector.t.cpp:554
typename Storage::value_type value_type
Definition: MultiVector.h:140
std::shared_ptr< LinAlgOpContext< memorySpace > > getLinAlgOpContext() const
Definition: MultiVector.t.cpp:711
void accumulateAddLocallyOwnedBegin(const size_type communicationChannel=0)
Definition: MultiVector.t.cpp:666
void accumulateAddLocallyOwnedEnd()
Definition: MultiVector.t.cpp:675
MultiVector()=default
Default Constructor.
void setValue(const ValueType val)
Set all entries of the MultiVector to a given value.
Definition: MultiVector.t.cpp:568
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:38
A class template to store the communication pattern (i.e., which entries/nodes to receive from which ...
Definition: MPIPatternP2P.h:197
typeInternal::scalar_type< ValueType1, ValueType2 > scalar_type
Definition: BlasLapackTypedef.h:183
ScalarOp
Definition: BlasLapackTypedef.h:169
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:837
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:769
void swap(MultiVector< ValueType, memorySpace > &X, MultiVector< ValueType, memorySpace > &Y)
Swaps the data of u with this multivector.
Definition: MultiVector.t.cpp:757
int MPIComm
Definition: MPITypes.h:84
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
std::uint64_t size_type
Definition: TypeConfig.h:9
std::uint64_t global_size_type
Definition: TypeConfig.h:10