26#ifndef dftefeMultivectorScratch_h
27#define dftefeMultivectorScratch_h
37 namespace linearAlgebra
50 template <
typename ValueType, utils::MemorySpace memorySpace>
71 "MultivectorScratch is already in use. Concurrent access detected.");
97 std::shared_ptr<MultiVector<ValueType, memorySpace>>
103 std::shared_ptr<MultiVector<ValueType, memorySpace>>
109 std::shared_ptr<MultiVector<ValueType, memorySpace>>
115 std::shared_ptr<MultiVector<ValueType, memorySpace>>
166 std::shared_ptr<MultiVector<ValueType, memorySpace>>
d_XinBatch;
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition: MultiVector.h:134
Shared scratch MultiVectors (large-batch and small-batch variants) that can be reused across Chebyshe...
Definition: MultivectorScratch.h:52
size_type getXinBatchSize() const
Definition: MultivectorScratch.h:148
void release()
Definition: MultivectorScratch.h:76
std::shared_ptr< MultiVector< ValueType, memorySpace > > getXoutBatch() const
Definition: MultivectorScratch.h:104
bool hasXoutBatch() const
Definition: MultivectorScratch.h:130
std::shared_ptr< MultiVector< ValueType, memorySpace > > d_XoutBatch
Definition: MultivectorScratch.h:167
bool d_inUse
Definition: MultivectorScratch.h:170
void acquire()
Definition: MultivectorScratch.h:67
MultivectorScratch(std::shared_ptr< MultiVector< ValueType, memorySpace > > XinBatch, std::shared_ptr< MultiVector< ValueType, memorySpace > > XoutBatch)
Definition: MultivectorScratch.h:54
std::shared_ptr< MultiVector< ValueType, memorySpace > > d_XinBatch
Definition: MultivectorScratch.h:166
void setXinBatchSmall(std::shared_ptr< MultiVector< ValueType, memorySpace > > v)
Definition: MultivectorScratch.h:84
std::shared_ptr< MultiVector< ValueType, memorySpace > > d_XoutBatchSmall
Definition: MultivectorScratch.h:169
std::shared_ptr< MultiVector< ValueType, memorySpace > > d_XinBatchSmall
Definition: MultivectorScratch.h:168
std::shared_ptr< MultiVector< ValueType, memorySpace > > getXinBatchSmall() const
Definition: MultivectorScratch.h:110
void setXoutBatchSmall(std::shared_ptr< MultiVector< ValueType, memorySpace > > v)
Definition: MultivectorScratch.h:90
bool hasXinBatchSmall() const
Definition: MultivectorScratch.h:136
std::shared_ptr< MultiVector< ValueType, memorySpace > > getXinBatch() const
Definition: MultivectorScratch.h:98
std::shared_ptr< MultiVector< ValueType, memorySpace > > getXoutBatchSmall() const
Definition: MultivectorScratch.h:116
size_type getXinBatchSmallSize() const
Definition: MultivectorScratch.h:160
size_type getXoutBatchSize() const
Definition: MultivectorScratch.h:154
bool hasXinBatch() const
Definition: MultivectorScratch.h:124
bool hasXoutBatchSmall() const
Definition: MultivectorScratch.h:142
void throwException(bool condition, std::string msg)
Definition: Exceptions.cpp:56
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
std::uint64_t size_type
Definition: TypeConfig.h:9