26#ifndef dftefeEFEBasisDataStorageDealii_h
27#define dftefeEFEBasisDataStorageDealii_h
55 template <
typename ValueTypeBasisCoeff,
56 typename ValueTypeBasisData,
69 std::shared_ptr<const BasisDofHandler> efeBDH,
76 std::shared_ptr<const BasisDofHandler>
88 std::shared_ptr<const quadrature::QuadratureRuleContainer>
89 quadratureRuleContainer,
96 std::vector<std::shared_ptr<const quadrature::QuadratureRule>>
104 std::shared_ptr<const quadrature::QuadratureRule>
105 baseQuadratureRuleAdaptive,
106 std::vector<std::shared_ptr<const utils::ScalarSpatialFunctionReal>>
108 const std::vector<double> & absoluteTolerances,
109 const std::vector<double> & relativeTolerances,
110 const std::vector<double> & integralThresholds,
111 const double smallestCellVolume,
171 const size_type basisId2)
const override;
189 std::shared_ptr<const quadrature::QuadratureRuleContainer>
196 Storage &basisData)
const override;
199 std::pair<size_type, size_type> cellRange,
200 Storage & basisGradientData)
const override;
209 std::shared_ptr<const quadrature::QuadratureRuleContainer>
An abstract class to store and access data for enriched fe basis, such as the basis function values o...
Definition: EFEBasisDataStorageDealii.h:61
std::vector< size_type > d_cellStartIdsGradNiGradNj
Definition: EFEBasisDataStorageDealii.h:225
void getBasisDataInCellRange(std::pair< size_type, size_type > cellRange, Storage &basisData) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3311
std::vector< size_type > d_cellStartIdsBasisGradientQuadStorage
Definition: EFEBasisDataStorageDealii.h:223
std::vector< size_type > d_nQuadPointsIncell
Definition: EFEBasisDataStorageDealii.h:221
Storage getBasisDataInCell(const size_type cellId, const size_type basisId) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3768
std::vector< size_type > d_cellStartIdsBasisHessianQuadStorage
Definition: EFEBasisDataStorageDealii.h:224
~EFEBasisDataStorageDealii()=default
const Storage & getBasisHessianDataInAllCells() const override
Definition: EFEBasisDataStorageDealii.t.cpp:3227
linearAlgebra::LinAlgOpContext< memorySpace > & d_linAlgOpContext
Definition: EFEBasisDataStorageDealii.h:226
const Storage & getBasisDataInAllCells() const override
Definition: EFEBasisDataStorageDealii.t.cpp:3183
Storage getBasisHessianData(const QuadraturePointAttributes &attributes, const size_type basisId) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3596
Storage getBasisData(const QuadraturePointAttributes &attributes, const size_type basisId) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3509
QuadratureRuleAttributes d_quadratureRuleAttributes
Definition: EFEBasisDataStorageDealii.h:211
std::shared_ptr< const EFEBasisDofHandlerDealii< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > d_efeBDH
Definition: EFEBasisDataStorageDealii.h:208
void getBasisGradientDataInCellRange(std::pair< size_type, size_type > cellRange, Storage &basisGradientData) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3393
void evaluateBasisData(const quadrature::QuadratureRuleAttributes &quadratureRuleAttributes, const BasisStorageAttributesBoolMap basisStorageAttributesBoolMap) override
Definition: EFEBasisDataStorageDealii.t.cpp:2132
Storage getBasisGradientData(const QuadraturePointAttributes &attributes, const size_type basisId) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3551
std::vector< size_type > d_cellStartIdsBasisQuadStorage
Definition: EFEBasisDataStorageDealii.h:222
BasisStorageAttributesBoolMap d_basisStorageAttributesBoolMap
Definition: EFEBasisDataStorageDealii.h:212
std::shared_ptr< Storage > d_JxWStorage
Definition: EFEBasisDataStorageDealii.h:214
std::shared_ptr< Storage > d_basisQuadStorage
Definition: EFEBasisDataStorageDealii.h:213
std::shared_ptr< Storage > d_basisGradNiGradNj
Definition: EFEBasisDataStorageDealii.h:215
Storage getBasisHessianDataInCell(const size_type cellId, const size_type basisId) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3809
const Storage & getBasisOverlapInAllCells() const override
Definition: EFEBasisDataStorageDealii.t.cpp:3644
std::vector< size_type > d_dofsInCell
Definition: EFEBasisDataStorageDealii.h:219
std::shared_ptr< Storage > d_basisHessianQuadStorage
Definition: EFEBasisDataStorageDealii.h:217
std::shared_ptr< const quadrature::QuadratureRuleContainer > d_quadratureRuleContainer
Definition: EFEBasisDataStorageDealii.h:210
std::vector< size_type > d_cellStartIdsBasisOverlap
Definition: EFEBasisDataStorageDealii.h:220
std::shared_ptr< Storage > d_basisOverlap
Definition: EFEBasisDataStorageDealii.h:218
const Storage & getBasisGradNiGradNjInAllCells() const override
Definition: EFEBasisDataStorageDealii.t.cpp:3880
bool d_evaluateBasisData
Definition: EFEBasisDataStorageDealii.h:203
Storage getBasisOverlapInCell(const size_type cellId) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3666
Storage getBasisGradNiGradNjInCell(const size_type cellId) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3845
std::shared_ptr< Storage > d_basisGradientQuadStorage
Definition: EFEBasisDataStorageDealii.h:216
void deleteBasisData() override
Definition: EFEBasisDataStorageDealii.t.cpp:3737
const Storage & getBasisGradientDataInAllCells() const override
Definition: EFEBasisDataStorageDealii.t.cpp:3205
Storage getBasisGradientDataInCell(const size_type cellId, const size_type basisId) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3789
Storage getJxWInCell(const size_type cellId) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3474
std::shared_ptr< const BasisDofHandler > getBasisDofHandler() const override
Definition: EFEBasisDataStorageDealii.t.cpp:3902
Storage getBasisOverlap(const size_type cellId, const size_type basisId1, const size_type basisId2) const override
Definition: EFEBasisDataStorageDealii.t.cpp:3700
const Storage & getJxWInAllCells() const override
Definition: EFEBasisDataStorageDealii.t.cpp:3249
std::shared_ptr< const quadrature::QuadratureRuleContainer > getQuadratureRuleContainer() const override
Definition: EFEBasisDataStorageDealii.t.cpp:3828
typename BasisDataStorage< ValueTypeBasisData, memorySpace >::Storage Storage
Definition: EFEBasisDataStorageDealii.h:66
An abstract class to store and access data for a given basis, such as the basis function values on a ...
Definition: EFEBasisDataStorage.h:52
Definition: EFEBasisDofHandlerDealii.h:61
Definition: LinAlgOpContext.h:52
Class to store the attributes of a quad point, such as the cell Id it belongs, the quadPointId within...
Definition: QuadratureAttributes.h:171
Definition: QuadratureAttributes.h:135
std::map< BasisStorageAttributes, bool > BasisStorageAttributesBoolMap
Definition: BasisDataStorage.h:50
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
std::uint64_t size_type
Definition: TypeConfig.h:9