26#ifndef dftefeEFEOverlapOperatorContext_h
27#define dftefeEFEOverlapOperatorContext_h
60 template <
typename ValueTypeOperator,
61 typename ValueTypeOperand,
65 :
public linearAlgebra::
66 OperatorContext<ValueTypeOperator, ValueTypeOperand, memorySpace>
101 &classicalBlockBasisDataStorage,
103 &enrichmentBlockEnrichmentBasisDataStorage,
105 & enrichmentBlockClassicalBasisDataStorage,
107 const bool calculateWings =
true);
125 dim> &feBasisManager,
127 &classicalBlockBasisDataStorage,
129 & enrichmentBlockBasisDataStorage,
131 const bool calculateWings =
true);
149 dim> &feBasisManager,
151 &classicalBlockGLLBasisDataStorage,
153 &enrichmentBlockBasisDataStorage,
173 dim> &feBasisManager,
175 &classicalBlockGLLBasisDataStorage,
177 &enrichmentBlockEnrichmentBasisDataStorage,
179 &enrichmentBlockClassicalBasisDataStorage,
217 std::shared_ptr<linearAlgebra::Vector<ValueTypeOperator, memorySpace>>
219 std::shared_ptr<utils::MemoryStorage<ValueTypeOperator, memorySpace>>
Definition: EFEBasisDofHandler.h:57
An abstract class to store and access data for a given basis, such as the basis function values on a ...
Definition: FEBasisDataStorage.h:53
An abstract class to encapsulate the partitioning of a finite element basis across multiple processor...
Definition: FEBasisManager.h:44
A derived class of linearAlgebra::OperatorContext to encapsulate the action of a discrete operator on...
Definition: OrthoEFEOverlapOperatorContext.h:67
std::shared_ptr< linearAlgebra::Vector< ValueTypeOperator, memorySpace > > d_diagonal
Definition: OrthoEFEOverlapOperatorContext.h:218
const FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > * d_feBasisManager
Definition: OrthoEFEOverlapOperatorContext.h:210
linearAlgebra::blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand > ValueType
define ValueType as the superior (bigger set) of the ValueTypeOperator and ValueTypeOperand (e....
Definition: OrthoEFEOverlapOperatorContext.h:77
Storage getBasisOverlap(const size_type cellId, const size_type basisId1, const size_type basisId2) const
Definition: OrthoEFEOverlapOperatorContext.t.cpp:1686
void apply(linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > &X, linearAlgebra::MultiVector< ValueType, memorySpace > &Y) const override
Apply AX = B where A is the discretized matrix, X is the operand and B is the result.
Definition: OrthoEFEOverlapOperatorContext.t.cpp:1485
std::vector< size_type > d_dofsInCell
Definition: OrthoEFEOverlapOperatorContext.h:213
std::shared_ptr< utils::MemoryStorage< ValueTypeOperator, memorySpace > > d_basisOverlapEnrichmentBlock
Definition: OrthoEFEOverlapOperatorContext.h:220
bool d_isMassLumping
Definition: OrthoEFEOverlapOperatorContext.h:216
std::shared_ptr< Storage > d_basisOverlap
Definition: OrthoEFEOverlapOperatorContext.h:211
size_type d_nglobalEnrichmentIds
Definition: OrthoEFEOverlapOperatorContext.h:225
const EFEBasisDofHandler< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > * d_efebasisDofHandler
Definition: OrthoEFEOverlapOperatorContext.h:224
std::vector< size_type > d_cellStartIdsBasisOverlap
Definition: OrthoEFEOverlapOperatorContext.h:212
const Storage & getBasisOverlapInAllCells() const
Definition: OrthoEFEOverlapOperatorContext.t.cpp:1649
const size_type d_maxCellTimesNumVecs
Definition: OrthoEFEOverlapOperatorContext.h:214
Storage getBasisOverlapInCell(const size_type cellId) const
Definition: OrthoEFEOverlapOperatorContext.t.cpp:1662
Definition: LinAlgOpContext.h:38
An class template to encapsulate a MultiVector. A MultiVector is a collection of vectors belonging t...
Definition: MultiVector.h:134
blas::scalar_type< ValueType1, ValueType2 > scalar_type
Definition: BlasLapackTypedef.h:70
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8