1#ifndef dftefeQuadratureRuleContainer_h
2#define dftefeQuadratureRuleContainer_h
41 std::shared_ptr<const QuadratureRule> quadratureRule,
42 std::shared_ptr<const basis::TriangulationBase> triangulation,
57 std::vector<std::shared_ptr<const QuadratureRule>> quadratureRuleVec,
58 std::shared_ptr<const basis::TriangulationBase> triangulation,
75 std::shared_ptr<const QuadratureRule> baseQuadratureRule,
76 std::shared_ptr<const basis::TriangulationBase> triangulation,
79 std::vector<std::shared_ptr<const utils::ScalarSpatialFunctionReal>>
81 const std::vector<double> &absoluteTolerances,
82 const std::vector<double> &relativeTolerances,
83 const std::vector<double> &integralThresholds,
84 const double smallestCellVolume =
123 std::shared_ptr<const basis::TriangulationBase> triangulation,
125 std::vector<std::shared_ptr<const utils::ScalarSpatialFunctionReal>>
127 const std::vector<double> &absoluteTolerances,
128 const std::vector<double> &relativeTolerances,
130 & quadratureRuleContainerReference,
154 const std::vector<dftefe::utils::Point> &
164 std::vector<dftefe::utils::Point>
174 const std::vector<dftefe::utils::Point> &
184 const std::vector<double> &
193 const std::vector<double> &
239 const std::vector<size_type> &
251 std::shared_ptr<const basis::TriangulationBase>
257 template <utils::MemorySpace memorySpace>
258 inline const double *
267#ifdef DFTEFE_WITH_DEVICE
268 if (d_realPointsDevice ==
nullptr)
270 d_realPointsDevice = std::make_unique<
275 return d_realPointsDevice->data();
278 "Device memory not available");
298#ifdef DFTEFE_WITH_DEVICE
299 mutable std::unique_ptr<
An abstract class to map a real point to parametric point and vice-versa.
Definition: CellMappingBase.h:27
Definition: ParentToChildCellsManagerBase.h:13
static const size_type MAX_RECURSION
Definition: Defaults.h:47
static const double SMALLEST_CELL_VOLUME
Setting all the QuadratureRuleAdaptiveDefaults.
Definition: Defaults.h:42
Definition: QuadratureAttributes.h:135
Definition: QuadratureRuleContainer.h:27
const std::vector< double > & getJxW() const
Function that returns a vector containing the Jacobian times quadrature weight for all the quad point...
Definition: QuadratureRuleContainer.cpp:693
bool d_storeJacobianInverse
Definition: QuadratureRuleContainer.h:294
const QuadratureRule & getQuadratureRule(const dftefe::size_type cellId) const
Function that returns the handle to quadrature rule corresponding to the the cell Id.
Definition: QuadratureRuleContainer.cpp:713
const basis::CellMappingBase & getCellMapping() const
Definition: QuadratureRuleContainer.cpp:751
const std::vector< size_type > & getCellQuadStartIds() const
A function to return the starting index of the quadrature point of each cell.
Definition: QuadratureRuleContainer.cpp:733
std::vector< std::shared_ptr< const QuadratureRule > > d_quadratureRuleVec
Definition: QuadratureRuleContainer.h:285
const QuadratureRuleAttributes & getQuadratureRuleAttributes() const
Returns the underlying QuadratureRuleAttributes.
Definition: QuadratureRuleContainer.cpp:643
std::vector< dftefe::utils::Point > getCellRealPoints(const dftefe::size_type cellId) const
Function that returns a vector containing the real coordinates of the quad points in cell correspondi...
Definition: QuadratureRuleContainer.cpp:661
dftefe::size_type d_dim
Definition: QuadratureRuleContainer.h:291
std::shared_ptr< const basis::TriangulationBase > d_triangulation
Definition: QuadratureRuleContainer.h:295
~QuadratureRuleContainer()=default
size_type nCells() const
Returns the number of cells in the quadrature container.
Definition: QuadratureRuleContainer.cpp:649
const basis::CellMappingBase & d_cellMapping
Definition: QuadratureRuleContainer.h:296
std::vector< double > d_realPointsHost
Definition: QuadratureRuleContainer.h:289
size_type nQuadraturePoints() const
A function to return the total number of quadrature points in all the cells.
Definition: QuadratureRuleContainer.cpp:720
const std::vector< dftefe::utils::Point > & getRealPoints() const
Function that returns a vector containing the real coordinates of the quad points in all cells.
Definition: QuadratureRuleContainer.cpp:655
std::vector< size_type > d_cellQuadStartIds
Definition: QuadratureRuleContainer.h:287
std::vector< double > d_JxW
Definition: QuadratureRuleContainer.h:290
const double * getRealPointsPtr() const
Definition: QuadratureRuleContainer.h:259
std::vector< dftefe::utils::Point > d_realPoints
Definition: QuadratureRuleContainer.h:288
const std::vector< dftefe::utils::Point > & getCellParametricPoints(const dftefe::size_type cellId) const
Function that returns a vector containing the real coordinates of the quad points in cell correspondi...
Definition: QuadratureRuleContainer.cpp:679
size_type d_numCells
Definition: QuadratureRuleContainer.h:293
std::vector< size_type > d_numCellQuadPoints
Definition: QuadratureRuleContainer.h:286
size_type getCellQuadStartId(const size_type cellId) const
A function to return the starting index of the quadrature point of a given cell.
Definition: QuadratureRuleContainer.cpp:739
const std::vector< double > & getCellQuadratureWeights(const dftefe::size_type cellId) const
Function that returns a vector containing the weight of the quad points in cell corresponding to the ...
Definition: QuadratureRuleContainer.cpp:686
std::vector< double > getCellJxW(const dftefe::size_type cellId) const
Function that returns a vector containing the Jacobian times weight of the quad points in cell corres...
Definition: QuadratureRuleContainer.cpp:699
size_type nCellQuadraturePoints(const dftefe::size_type cellId) const
A function to returns the number of quadrature points in cell corresponding to the the cell Id.
Definition: QuadratureRuleContainer.cpp:726
const QuadratureRuleAttributes & d_quadratureRuleAttributes
Definition: QuadratureRuleContainer.h:284
size_type d_numQuadPoints
Definition: QuadratureRuleContainer.h:292
std::shared_ptr< const basis::TriangulationBase > getTriangulation() const
Definition: QuadratureRuleContainer.cpp:745
Definition: QuadratureRule.h:18
Definition: MemoryStorage.h:38
void copyFrom(const MemoryStorage< ValueType, memorySpaceSrc > &srcMemoryStorage)
Copies data from a MemoryStorage object in a different memory space. This provides a seamless interfa...
Definition: MemoryStorage.t.cpp:258
int MPIComm
Definition: MPITypes.h:84
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
std::uint64_t size_type
Definition: TypeConfig.h:9