26#ifndef dftefeCFEBasisDofHandlerDealii_h
27#define dftefeCFEBasisDofHandlerDealii_h
33#include <deal.II/fe/fe_q.h>
41#include <deal.II/dofs/dof_handler.h>
42#include <deal.II/matrix_free/matrix_free.h>
52 template <
typename ValueTypeBasisCoeff,
67 std::shared_ptr<const TriangulationBase> triangulation,
72 std::shared_ptr<const TriangulationBase> triangulation,
84 const size_type derivativeOrder = 1)
const override;
88 reinit(std::shared_ptr<const TriangulationBase> triangulation,
93 reinit(std::shared_ptr<const TriangulationBase> triangulation,
96 std::shared_ptr<const TriangulationBase>
118 std::vector<std::pair<global_size_type, global_size_type>>
121 std::vector<std::pair<global_size_type, global_size_type>>
124 std::map<BasisIdAttribute, size_type>
130 std::vector<size_type>
133 std::vector<size_type>
139 std::vector<global_size_type> &vecGlobalNodeId)
const override;
141 const std::vector<global_size_type> &
179 std::map<global_size_type, utils::Point> &dofCoords)
const override;
185 std::shared_ptr<const ConstraintsLocal<ValueTypeBasisCoeff, memorySpace>>
189 std::shared_ptr<ConstraintsLocal<ValueTypeBasisCoeff, memorySpace>>
196 constraintsLocal)
const override;
198 std::shared_ptr<const utils::mpi::MPIPatternP2P<memorySpace>>
208 std::shared_ptr<const dealii::DoFHandler<dim>>
211 const dealii::FiniteElement<dim> &
226 std::shared_ptr<const utils::mpi::MPIPatternP2P<memorySpace>>
228 std::shared_ptr<const ConstraintsLocal<ValueTypeBasisCoeff, memorySpace>>
230 std::vector<std::pair<global_size_type, global_size_type>>
235 const std::pair<global_size_type, global_size_type> &locallyOwnedRanges,
236 std::vector<std::pair<global_size_type, global_size_type>>
Definition: CFEBasisDofHandlerDealii.h:57
std::shared_ptr< const dealii::DoFHandler< dim > > getDoFHandler() const
Definition: CFEBasisDofHandlerDealii.t.cpp:1066
FECellIterator beginLocallyOwnedCells() override
Definition: CFEBasisDofHandlerDealii.t.cpp:966
size_type d_numCumulativeLocalCellDofs
Definition: CFEBasisDofHandlerDealii.h:221
const dealii::FiniteElement< dim > & getReferenceFE(const size_type cellId) const
Definition: CFEBasisDofHandlerDealii.t.cpp:1076
std::vector< global_size_type > d_boundaryIds
Definition: CFEBasisDofHandlerDealii.h:224
size_type nCumulativeLocalCellDofs() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:1127
const std::vector< global_size_type > & getBoundaryIds() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:955
global_size_type nGlobalNodes() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:816
typename FEBasisDofHandler< ValueTypeBasisCoeff, memorySpace, dim >::const_FECellIterator const_FECellIterator
Definition: CFEBasisDofHandlerDealii.h:64
FECellIterator endLocallyOwnedCells() override
Definition: CFEBasisDofHandlerDealii.t.cpp:977
std::vector< size_type > getGlobalNodeIds() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:926
std::shared_ptr< const ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > > getIntrinsicConstraints() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:1151
std::shared_ptr< const TriangulationBase > getTriangulation() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:735
std::vector< std::shared_ptr< FECellBase > > d_locallyOwnedCells
Definition: CFEBasisDofHandlerDealii.h:219
void getBasisCenters(std::map< global_size_type, utils::Point > &dofCoords) const override
Definition: CFEBasisDofHandlerDealii.t.cpp:1100
size_type totalRanges() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:1137
std::shared_ptr< const ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > > d_constraintsLocal
Definition: CFEBasisDofHandlerDealii.h:229
void getCellDofsGlobalIds(size_type cellId, std::vector< global_size_type > &vecGlobalNodeId) const override
Definition: CFEBasisDofHandlerDealii.t.cpp:942
std::vector< double > getBasisFunctionDerivative(const size_type basisId, const utils::Point &point, const size_type derivativeOrder=1) const override
Definition: CFEBasisDofHandlerDealii.t.cpp:718
void reinit(std::shared_ptr< const TriangulationBase > triangulation, const size_type feOrder, const utils::mpi::MPIComm &mpiComm)
Definition: CFEBasisDofHandlerDealii.t.cpp:136
size_type d_totalRanges
Definition: CFEBasisDofHandlerDealii.h:222
bool d_isDistributed
Definition: CFEBasisDofHandlerDealii.h:225
size_type getDim() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:1052
size_type getFEOrder(size_type cellId) const override
Definition: CFEBasisDofHandlerDealii.t.cpp:775
std::shared_ptr< ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > > createConstraintsStart() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:1161
std::vector< std::pair< global_size_type, global_size_type > > getGlobalRanges() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:884
std::shared_ptr< const TriangulationBase > d_triangulation
Definition: CFEBasisDofHandlerDealii.h:215
std::vector< size_type > getLocalNodeIds(size_type cellId) const override
Definition: CFEBasisDofHandlerDealii.t.cpp:911
std::vector< std::pair< global_size_type, global_size_type > > getLocallyOwnedRanges() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:826
void createConstraintsEnd(std::shared_ptr< ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > > constraintsLocal) const override
Definition: CFEBasisDofHandlerDealii.t.cpp:1182
size_type nCumulativeLocallyOwnedCellDofs() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:1117
FECellIterator beginLocalCells() override
Definition: CFEBasisDofHandlerDealii.t.cpp:1010
size_type nCellDofs(size_type cellId) const override
Definition: CFEBasisDofHandlerDealii.t.cpp:785
double getBasisFunctionValue(const size_type basisId, const utils::Point &point) const override
Definition: CFEBasisDofHandlerDealii.t.cpp:704
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > getMPIPatternP2P() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:1194
std::vector< std::pair< global_size_type, global_size_type > > d_locallyOwnedRanges
Definition: CFEBasisDofHandlerDealii.h:231
size_type nLocalNodes() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:806
size_type nLocalCells() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:745
size_type d_numCumulativeLocallyOwnedCellDofs
Definition: CFEBasisDofHandlerDealii.h:220
FECellIterator endLocalCells() override
Definition: CFEBasisDofHandlerDealii.t.cpp:1021
~CFEBasisDofHandlerDealii()=default
std::map< BasisIdAttribute, size_type > getBasisAttributeToRangeIdMap() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:899
bool isDistributed() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:1204
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > d_mpiPatternP2P
Definition: CFEBasisDofHandlerDealii.h:227
bool d_isVariableDofsPerCell
Definition: CFEBasisDofHandlerDealii.h:217
size_type nLocallyOwnedCells() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:755
bool isVariableDofsPerCell() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:796
size_type nGlobalCells() const override
Definition: CFEBasisDofHandlerDealii.t.cpp:765
std::vector< std::shared_ptr< FECellBase > > d_localCells
Definition: CFEBasisDofHandlerDealii.h:218
std::shared_ptr< dealii::DoFHandler< dim > > d_dofHandler
Definition: CFEBasisDofHandlerDealii.h:216
typename FEBasisDofHandler< ValueTypeBasisCoeff, memorySpace, dim >::FECellIterator FECellIterator
Definition: CFEBasisDofHandlerDealii.h:61
void getAllOwnedClassicalRanges(const std::pair< global_size_type, global_size_type > &locallyOwnedRanges, std::vector< std::pair< global_size_type, global_size_type > > &allOwnedRanges, const utils::mpi::MPIComm &mpiComm) const
Definition: CFEBasisDofHandlerDealii.t.cpp:836
Definition: ConstraintsLocal.h:43
Definition: FEBasisDofHandler.h:57
Definition: PointImpl.h:13
int MPIComm
Definition: MPITypes.h:84
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
std::uint64_t size_type
Definition: TypeConfig.h:9
std::uint64_t global_size_type
Definition: TypeConfig.h:10