26#ifndef dftefeCFEBasisDataStorageDealii_h
27#define dftefeCFEBasisDataStorageDealii_h
51 template <
typename ValueTypeBasisCoeff,
52 typename ValueTypeBasisData,
65 std::shared_ptr<const BasisDofHandler> feBDH,
72 std::shared_ptr<const BasisDofHandler>
84 std::shared_ptr<const quadrature::QuadratureRuleContainer>
85 quadratureRuleContainer,
92 std::vector<std::shared_ptr<const quadrature::QuadratureRule>>
100 std::shared_ptr<const quadrature::QuadratureRule>
101 baseQuadratureRuleAdaptive,
102 std::vector<std::shared_ptr<const utils::ScalarSpatialFunctionReal>>
104 const std::vector<double> & absoluteTolerances,
105 const std::vector<double> & relativeTolerances,
106 const std::vector<double> & integralThresholds,
107 const double smallestCellVolume,
181 const size_type basisId2)
const override;
201 std::shared_ptr<const quadrature::QuadratureRuleContainer>
208 Storage &basisData)
const override;
211 std::pair<size_type, size_type> cellRange,
212 Storage & basisGradientData)
const override;
215 const dealii::Quadrature<dim> &
223 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: CFEBasisDataStorageDealii.h:57
const Storage & getBasisGradNiGradNjInAllCells() const override
Definition: CFEBasisDataStorageDealii.t.cpp:2727
const Storage & getBasisHessianDataInAllCells() const override
Definition: CFEBasisDataStorageDealii.t.cpp:1985
const dealii::Quadrature< dim > & getDealiiQuadratureRule() const
Definition: CFEBasisDataStorageDealii.t.cpp:2762
const Storage & getBasisDataInAllCells() const override
Definition: CFEBasisDataStorageDealii.t.cpp:1941
const Storage & getBasisOverlapInAllCells() const override
Definition: CFEBasisDataStorageDealii.t.cpp:2476
std::shared_ptr< const quadrature::QuadratureRuleContainer > d_quadratureRuleContainer
Definition: CFEBasisDataStorageDealii.h:224
~CFEBasisDataStorageDealii()=default
BasisStorageAttributesBoolMap d_basisStorageAttributesBoolMap
Definition: CFEBasisDataStorageDealii.h:226
std::vector< size_type > d_cellStartIdsBasisQuadStorage
Definition: CFEBasisDataStorageDealii.h:236
std::shared_ptr< const CFEBasisDofHandlerDealii< ValueTypeBasisCoeff, memorySpace, dim > > d_feBDH
Definition: CFEBasisDataStorageDealii.h:222
Storage getBasisData(const QuadraturePointAttributes &attributes, const size_type basisId) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2322
QuadratureRuleAttributes d_quadratureRuleAttributes
Definition: CFEBasisDataStorageDealii.h:225
dealii::Quadrature< dim > d_dealiiQuadratureRule
Definition: CFEBasisDataStorageDealii.h:240
Storage getJxWInCell(const size_type cellId) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2281
std::shared_ptr< Storage > d_basisQuadStorage
Definition: CFEBasisDataStorageDealii.h:227
std::shared_ptr< Storage > d_basisGradNiGradNj
Definition: CFEBasisDataStorageDealii.h:229
void getBasisDataInCellRange(std::pair< size_type, size_type > cellRange, Storage &basisData) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2074
Storage getBasisHessianData(const QuadraturePointAttributes &attributes, const size_type basisId) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2421
Storage getBasisGradientDataInCell(const size_type cellId, const size_type basisId) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2632
std::vector< size_type > d_cellStartIdsBasisOverlap
Definition: CFEBasisDataStorageDealii.h:234
bool d_evaluateBasisData
Definition: CFEBasisDataStorageDealii.h:219
Storage getBasisHessianDataInCell(const size_type cellId, const size_type basisId) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2652
void evaluateBasisData(const quadrature::QuadratureRuleAttributes &quadratureRuleAttributes, const BasisStorageAttributesBoolMap basisStorageAttributesBoolMap) override
Definition: CFEBasisDataStorageDealii.t.cpp:1254
std::shared_ptr< Storage > d_JxWStorage
Definition: CFEBasisDataStorageDealii.h:228
bool d_isUniformQuad
Definition: CFEBasisDataStorageDealii.h:241
void getBasisGradientDataInCellRange(std::pair< size_type, size_type > cellRange, Storage &basisGradientData) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2189
void deleteBasisData() override
Definition: CFEBasisDataStorageDealii.t.cpp:2580
std::vector< size_type > d_nQuadPointsIncell
Definition: CFEBasisDataStorageDealii.h:235
std::shared_ptr< const BasisDofHandler > getBasisDofHandler() const override
Definition: CFEBasisDataStorageDealii.t.cpp:2749
std::shared_ptr< Storage > d_basisOverlap
Definition: CFEBasisDataStorageDealii.h:232
typename BasisDataStorage< ValueTypeBasisData, memorySpace >::Storage Storage
Definition: CFEBasisDataStorageDealii.h:62
std::shared_ptr< Storage > d_basisHessianQuadStorage
Definition: CFEBasisDataStorageDealii.h:231
const Storage & getBasisGradientDataInAllCells() const override
Definition: CFEBasisDataStorageDealii.t.cpp:1963
Storage getBasisGradientData(const QuadraturePointAttributes &attributes, const size_type basisId) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2369
Storage getBasisOverlapInCell(const size_type cellId) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2498
Storage getBasisDataInCell(const size_type cellId, const size_type basisId) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2611
std::shared_ptr< Storage > d_basisGradientQuadStorage
Definition: CFEBasisDataStorageDealii.h:230
Storage getBasisOverlap(const size_type cellId, const size_type basisId1, const size_type basisId2) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2537
std::vector< size_type > d_dofsInCell
Definition: CFEBasisDataStorageDealii.h:233
const Storage & getJxWInAllCells() const override
Definition: CFEBasisDataStorageDealii.t.cpp:2007
std::vector< size_type > d_cellStartIdsBasisHessianQuadStorage
Definition: CFEBasisDataStorageDealii.h:238
std::shared_ptr< const quadrature::QuadratureRuleContainer > getQuadratureRuleContainer() const override
Definition: CFEBasisDataStorageDealii.t.cpp:2671
Storage getBasisGradNiGradNjInCell(const size_type cellId) const override
Definition: CFEBasisDataStorageDealii.t.cpp:2688
std::vector< size_type > d_cellStartIdsGradNiGradNj
Definition: CFEBasisDataStorageDealii.h:239
std::vector< size_type > d_cellStartIdsBasisGradientQuadStorage
Definition: CFEBasisDataStorageDealii.h:237
linearAlgebra::LinAlgOpContext< memorySpace > & d_linAlgOpContext
Definition: CFEBasisDataStorageDealii.h:242
Definition: CFEBasisDofHandlerDealii.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:54
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