26#ifndef dftefeEFEBDSOnTheFlyComputeDealii_h
27#define dftefeEFEBDSOnTheFlyComputeDealii_h
52 template <
typename ValueTypeBasisCoeff,
53 typename ValueTypeBasisData,
66 std::shared_ptr<const BasisDofHandler> feBDH,
71 const bool calculateEnrichmentDataOnTheFly =
true,
72 const bool useMemOptGradScratchSpace =
false
78 std::shared_ptr<const BasisDofHandler>
90 std::shared_ptr<const quadrature::QuadratureRuleContainer>
91 quadratureRuleContainer,
98 std::vector<std::shared_ptr<const quadrature::QuadratureRule>>
106 std::shared_ptr<const quadrature::QuadratureRule>
107 baseQuadratureRuleAdaptive,
108 std::vector<std::shared_ptr<const utils::ScalarSpatialFunctionReal>>
110 const std::vector<double> & absoluteTolerances,
111 const std::vector<double> & relativeTolerances,
112 const std::vector<double> & integralThresholds,
113 const double smallestCellVolume,
187 const size_type basisId2)
const override;
206 std::shared_ptr<const quadrature::QuadratureRuleContainer>
213 Storage &basisData)
const override;
216 std::pair<size_type, size_type> cellRange,
217 Storage & basisGradientData)
const override;
226 std::shared_ptr<const quadrature::QuadratureRuleContainer>
An abstract class to store and access data for a given basis, such as the basis function values on a ...
Definition: EFEBDSOnTheFlyComputeDealii.h:58
const Storage & getBasisHessianDataInAllCells() const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:2409
typename BasisDataStorage< ValueTypeBasisData, memorySpace >::Storage Storage
Definition: EFEBDSOnTheFlyComputeDealii.h:63
Storage getBasisOverlap(const size_type cellId, const size_type basisId1, const size_type basisId2) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3371
Storage getJxWInCell(const size_type cellId) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3175
const bool d_useMemOptGradScratchSpace
Definition: EFEBDSOnTheFlyComputeDealii.h:245
std::shared_ptr< const quadrature::QuadratureRuleContainer > d_quadratureRuleContainer
Definition: EFEBDSOnTheFlyComputeDealii.h:227
std::shared_ptr< Storage > d_basisGradientEnrichQuadStorage
Definition: EFEBDSOnTheFlyComputeDealii.h:243
Storage getBasisGradientDataInCell(const size_type cellId, const size_type basisId) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3445
const Storage & getBasisOverlapInAllCells() const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3335
std::shared_ptr< Storage > d_basisEnrichQuadStorage
Definition: EFEBDSOnTheFlyComputeDealii.h:244
Storage getBasisGradientData(const QuadraturePointAttributes &attributes, const size_type basisId) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3247
std::vector< size_type > d_nQuadPointsIncell
Definition: EFEBDSOnTheFlyComputeDealii.h:236
std::shared_ptr< const quadrature::QuadratureRuleContainer > getQuadratureRuleContainer() const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3484
void getBasisGradientDataInCellRange(std::pair< size_type, size_type > cellRange, Storage &basisGradientData) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:2753
BasisStorageAttributesBoolMap d_basisStorageAttributesBoolMap
Definition: EFEBDSOnTheFlyComputeDealii.h:229
void getBasisDataInCellRange(std::pair< size_type, size_type > cellRange, Storage &basisData) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:2487
std::shared_ptr< Storage > d_basisEnrichScratch
Definition: EFEBDSOnTheFlyComputeDealii.h:247
Storage getBasisOverlapInCell(const size_type cellId) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3353
std::shared_ptr< Storage > d_JxWStorage
Definition: EFEBDSOnTheFlyComputeDealii.h:231
std::shared_ptr< Storage > d_basisGradientParaCellClassQuadStorage
Definition: EFEBDSOnTheFlyComputeDealii.h:232
const Storage & getBasisGradientDataInAllCells() const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:2390
~EFEBDSOnTheFlyComputeDealii()=default
void evaluateBasisData(const quadrature::QuadratureRuleAttributes &quadratureRuleAttributes, const BasisStorageAttributesBoolMap basisStorageAttributesBoolMap) override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:1681
Storage getBasisHessianDataInCell(const size_type cellId, const size_type basisId) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3465
std::vector< size_type > d_cellStartIdsBasisJacobianInvQuadStorage
Definition: EFEBDSOnTheFlyComputeDealii.h:237
std::shared_ptr< Storage > d_basisParaCellClassQuadStorage
Definition: EFEBDSOnTheFlyComputeDealii.h:230
const Storage & getJxWInAllCells() const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:2431
std::vector< size_type > d_cellStartIdsBasisHessianQuadStorage
Definition: EFEBDSOnTheFlyComputeDealii.h:238
bool d_evaluateBasisData
Definition: EFEBDSOnTheFlyComputeDealii.h:220
std::shared_ptr< Storage > d_tmpGradientBlock
Definition: EFEBDSOnTheFlyComputeDealii.h:240
void deleteBasisData() override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3391
utils::MemoryStorage< ValueTypeBasisData, memorySpace > d_coeffsInAllCells
Definition: EFEBDSOnTheFlyComputeDealii.h:249
linearAlgebra::LinAlgOpContext< memorySpace > & d_linAlgOpContext
Definition: EFEBDSOnTheFlyComputeDealii.h:241
std::shared_ptr< Storage > d_basisGradientEnrichScratch
Definition: EFEBDSOnTheFlyComputeDealii.h:248
Storage getBasisData(const QuadraturePointAttributes &attributes, const size_type basisId) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3210
Storage getBasisHessianData(const QuadraturePointAttributes &attributes, const size_type basisId) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3288
std::vector< size_type > d_dofsInCell
Definition: EFEBDSOnTheFlyComputeDealii.h:235
const Storage & getBasisDataInAllCells() const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:2374
Storage getBasisGradNiGradNjInCell(const size_type cellId) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3501
std::shared_ptr< const BasisDofHandler > getBasisDofHandler() const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3540
std::shared_ptr< const EFEBasisDofHandlerDealii< ValueTypeBasisCoeff, ValueTypeBasisData, memorySpace, dim > > d_efeBDH
Definition: EFEBDSOnTheFlyComputeDealii.h:225
std::shared_ptr< Storage > d_basisHessianQuadStorage
Definition: EFEBDSOnTheFlyComputeDealii.h:234
QuadratureRuleAttributes d_quadratureRuleAttributes
Definition: EFEBDSOnTheFlyComputeDealii.h:228
Storage getBasisDataInCell(const size_type cellId, const size_type basisId) const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3424
std::shared_ptr< Storage > d_basisGradientDataClass
Definition: EFEBDSOnTheFlyComputeDealii.h:240
size_type d_maxCellBlock
Definition: EFEBDSOnTheFlyComputeDealii.h:239
std::shared_ptr< Storage > d_basisJacobianInvQuadStorage
Definition: EFEBDSOnTheFlyComputeDealii.h:233
const bool d_calculateEnrichmentDataOnTheFly
Definition: EFEBDSOnTheFlyComputeDealii.h:246
const Storage & getBasisGradNiGradNjInAllCells() const override
Definition: EFEBDSOnTheFlyComputeDealii.t.cpp:3521
size_type d_classialDofsInCell
Definition: EFEBDSOnTheFlyComputeDealii.h:242
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