26#ifndef dftefeEFEBasisDofHandlerDealii_h
27# define dftefeEFEBasisDofHandlerDealii_h
33# include <deal.II/fe/fe_q.h>
42# include <deal.II/dofs/dof_handler.h>
43# include <deal.II/matrix_free/matrix_free.h>
52 template <
typename ValueTypeBasisCoeff,
53 typename ValueTypeBasisData,
67 dim>> enrichmentClassicalInterface,
75 enrichmentClassicalInterface);
86 const size_type derivativeOrder = 1)
const override;
93 dim>> enrichmentClassicalInterface,
100 dim>> enrichmentClassicalInterface);
102 std::shared_ptr<const TriangulationBase>
124 std::vector<std::pair<global_size_type, global_size_type>>
127 std::vector<std::pair<global_size_type, global_size_type>>
130 std::map<BasisIdAttribute, size_type>
136 std::vector<size_type>
139 std::vector<size_type>
145 std::vector<global_size_type> &vecGlobalNodeId)
const override;
147 const std::vector<global_size_type> &
190 std::map<global_size_type, utils::Point> &dofCoords)
const override;
196 std::shared_ptr<const ConstraintsLocal<ValueTypeBasisCoeff, memorySpace>>
200 std::shared_ptr<ConstraintsLocal<ValueTypeBasisCoeff, memorySpace>>
207 constraintsLocal)
const override;
209 std::shared_ptr<const utils::mpi::MPIPatternP2P<memorySpace>>
218 std::shared_ptr<const dealii::DoFHandler<dim>>
221 const dealii::FiniteElement<dim> &
244 const std::vector<dftefe::utils::Point> &points)
const override;
249 const std::vector<dftefe::utils::Point> &points)
const override;
254 const std::vector<dftefe::utils::Point> &points)
const override;
256 std::vector<global_size_type>
262 std::shared_ptr<const EnrichmentIdsPartition<dim>>
285 std::shared_ptr<const EnrichmentIdsPartition<dim>>
287 std::vector<std::vector<global_size_type>>
290 std::vector<std::pair<global_size_type, global_size_type>>
294 std::shared_ptr<const atoms::AtomSphericalDataContainer>
308 std::shared_ptr<const utils::mpi::MPIPatternP2P<memorySpace>>
310 std::shared_ptr<const ConstraintsLocal<ValueTypeBasisCoeff, memorySpace>>
315 const std::pair<global_size_type, global_size_type> &locallyOwnedRanges,
316 std::vector<std::pair<global_size_type, global_size_type>>
Definition: ConstraintsLocal.h:43
Definition: EFEBasisDofHandlerDealii.h:61
size_type d_numCumulativeLocallyOwnedCellDofs
Definition: EFEBasisDofHandlerDealii.h:283
std::vector< std::shared_ptr< FECellBase > > d_localCells
Definition: EFEBasisDofHandlerDealii.h:281
bool d_isDistributed
Definition: EFEBasisDofHandlerDealii.h:307
std::map< BasisIdAttribute, size_type > getBasisAttributeToRangeIdMap() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1088
unsigned int getDim() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1323
~EFEBasisDofHandlerDealii()=default
bool isDistributed() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1768
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > d_mpiPatternP2P
Definition: EFEBasisDofHandlerDealii.h:309
void createConstraintsEnd(std::shared_ptr< ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > > constraintsLocal) const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1740
size_type d_totalRanges
Definition: EFEBasisDofHandlerDealii.h:289
const dealii::FiniteElement< dim > & getReferenceFE(const size_type cellId) const
Definition: EFEBasisDofHandlerDealii.t.cpp:1352
std::vector< global_size_type > getGhostEnrichmentGlobalIds() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1617
bool isVariableDofsPerCell() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:959
double getBasisFunctionValue(const size_type basisId, const utils::Point &point) const override
Definition: EFEBasisDofHandlerDealii.t.cpp:840
std::vector< std::vector< global_size_type > > d_overlappingEnrichmentIdsInCells
Definition: EFEBasisDofHandlerDealii.h:288
bool isOrthogonalized() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1672
std::shared_ptr< const ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > > d_constraintsLocal
Definition: EFEBasisDofHandlerDealii.h:311
FEBasisDofHandler< ValueTypeBasisCoeff, memorySpace, dim >::FECellIterator beginLocallyOwnedCells() override
Definition: EFEBasisDofHandlerDealii.t.cpp:1212
std::vector< size_type > getGlobalNodeIds() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1139
size_type nLocalNodes() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:972
void getCellDofsGlobalIds(size_type cellId, std::vector< global_size_type > &vecGlobalNodeId) const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1159
std::shared_ptr< const ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > > getIntrinsicConstraints() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1701
std::vector< std::pair< global_size_type, global_size_type > > getGlobalRanges() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1075
size_type getFEOrder(size_type cellId) const override
Definition: EFEBasisDofHandlerDealii.t.cpp:931
std::vector< std::pair< global_size_type, global_size_type > > d_globalRanges
Definition: EFEBasisDofHandlerDealii.h:292
std::shared_ptr< const EnrichmentClassicalInterfaceSpherical< ValueTypeBasisData, memorySpace, dim > > getEnrichmentClassicalInterface() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1659
size_type nLocalCells() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:891
const std::vector< global_size_type > & getBoundaryIds() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1198
std::shared_ptr< const atoms::AtomSphericalDataContainer > d_atomSphericalDataContainer
Definition: EFEBasisDofHandlerDealii.h:295
std::vector< double > getEnrichmentDerivative(const size_type cellId, const size_type cellLocalEnrichmentId, const dftefe::utils::Point &point) const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1469
FEBasisDofHandler< ValueTypeBasisCoeff, memorySpace, dim >::FECellIterator beginLocalCells() override
Definition: EFEBasisDofHandlerDealii.t.cpp:1268
size_type nCumulativeLocallyOwnedCellDofs() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1410
std::vector< global_size_type > d_ghostEnrichmentGlobalIds
Definition: EFEBasisDofHandlerDealii.h:293
std::shared_ptr< const EnrichmentClassicalInterfaceSpherical< ValueTypeBasisData, memorySpace, dim > > d_enrichClassIntfce
Definition: EFEBasisDofHandlerDealii.h:304
std::shared_ptr< const TriangulationBase > getTriangulation() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:878
global_size_type nGlobalEnrichmentNodes() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1630
void reinit(std::shared_ptr< const EnrichmentClassicalInterfaceSpherical< ValueTypeBasisData, memorySpace, dim > > enrichmentClassicalInterface, const utils::mpi::MPIComm &mpiComm)
Definition: EFEBasisDofHandlerDealii.t.cpp:175
std::vector< std::string > d_atomSymbolVec
Definition: EFEBasisDofHandlerDealii.h:296
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > getMPIPatternP2P() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1755
size_type nCellDofs(size_type cellId) const override
Definition: EFEBasisDofHandlerDealii.t.cpp:944
std::vector< std::shared_ptr< FECellBase > > d_locallyOwnedCells
Definition: EFEBasisDofHandlerDealii.h:282
size_type d_numCumulativeLocalCellDofs
Definition: EFEBasisDofHandlerDealii.h:284
size_type nLocallyOwnedCells() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:904
size_type totalRanges() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1685
size_type nCumulativeLocalCellDofs() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1423
double getEnrichmentValue(const size_type cellId, const size_type cellLocalEnrichmentId, const dftefe::utils::Point &point) const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1439
std::vector< std::pair< global_size_type, global_size_type > > getLocallyOwnedRanges() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1010
std::vector< size_type > getLocalNodeIds(size_type cellId) const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1121
std::shared_ptr< ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > > createConstraintsStart() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1714
std::string d_fieldName
Definition: EFEBasisDofHandlerDealii.h:298
void getBasisCenters(std::map< global_size_type, utils::Point > &dofCoords) const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1372
FEBasisDofHandler< ValueTypeBasisCoeff, memorySpace, dim >::FECellIterator endLocallyOwnedCells() override
Definition: EFEBasisDofHandlerDealii.t.cpp:1226
FEBasisDofHandler< ValueTypeBasisCoeff, memorySpace, dim >::FECellIterator endLocalCells() override
Definition: EFEBasisDofHandlerDealii.t.cpp:1282
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: EFEBasisDofHandlerDealii.t.cpp:1024
std::shared_ptr< const EnrichmentIdsPartition< dim > > getEnrichmentIdsPartition() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1643
global_size_type nGlobalNodes() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:991
std::vector< global_size_type > d_boundaryIds
Definition: EFEBasisDofHandlerDealii.h:306
bool d_isOrthogonalized
Definition: EFEBasisDofHandlerDealii.h:299
std::vector< std::pair< global_size_type, global_size_type > > d_locallyOwnedRanges
Definition: EFEBasisDofHandlerDealii.h:291
std::shared_ptr< const EnrichmentIdsPartition< dim > > d_enrichmentIdsPartition
Definition: EFEBasisDofHandlerDealii.h:286
bool d_isVariableDofsPerCell
Definition: EFEBasisDofHandlerDealii.h:280
std::vector< double > getEnrichmentHessian(const size_type cellId, const size_type cellLocalEnrichmentId, const dftefe::utils::Point &point) const override
Definition: EFEBasisDofHandlerDealii.t.cpp:1499
std::vector< double > getBasisFunctionDerivative(const size_type basisId, const utils::Point &point, const size_type derivativeOrder=1) const override
Definition: EFEBasisDofHandlerDealii.t.cpp:858
std::shared_ptr< const dealii::DoFHandler< dim > > getDoFHandler() const
Definition: EFEBasisDofHandlerDealii.t.cpp:1339
std::shared_ptr< dealii::DoFHandler< dim > > d_dofHandler
Definition: EFEBasisDofHandlerDealii.h:279
size_type nGlobalCells() const override
Definition: EFEBasisDofHandlerDealii.t.cpp:917
std::vector< utils::Point > d_atomCoordinatesVec
Definition: EFEBasisDofHandlerDealii.h:297
Definition: EFEBasisDofHandler.h:57
Class to get the interface between Classical and Enrichment basis. It takes as the classical basis as...
Definition: EnrichmentClassicalInterfaceSpherical.h:72
Definition: FEBasisDofHandler.h:57
Definition: PointImpl.h:13
int MPIComm
Definition: MPITypes.h:83
MemorySpace
Definition: MemorySpaceType.h:37
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8
unsigned long int global_size_type
Definition: TypeConfig.h:9