26#ifndef dftefeEnrichmentClassicalInterfaceSpherical_h
27#define dftefeEnrichmentClassicalInterfaceSpherical_h
33#include <unordered_map>
68 template <
typename ValueTypeBasisData,
112 cfeBasisDataStorageOverlapMatrix,
115 cfeBasisDataStorageRhs,
116 std::shared_ptr<const atoms::AtomSphericalDataContainer>
117 atomSphericalDataContainer,
118 const double atomPartitionTolerance,
119 const std::vector<std::string> & atomSymbolVec,
120 const std::vector<utils::Point> &atomCoordinatesVec,
121 const std::string fieldName,
135 std::shared_ptr<const TriangulationBase> triangulation,
137 std::shared_ptr<const atoms::AtomSphericalDataContainer>
138 atomSphericalDataContainer,
139 const double atomPartitionTolerance,
140 const std::vector<std::string> & atomSymbolVec,
141 const std::vector<utils::Point> &atomCoordinatesVec,
142 const std::string fieldName,
153 std::shared_ptr<const atoms::AtomSphericalDataContainer>
159 std::shared_ptr<const EnrichmentIdsPartition<dim>>
162 std::shared_ptr<const AtomIdsPartition<dim>>
165 std::shared_ptr<const BasisManager<ValueTypeBasisData, memorySpace>>
168 std::shared_ptr<const BasisDofHandler>
176 std::vector<ValueTypeBasisData>> &
179 std::shared_ptr<linearAlgebra::LinAlgOpContext<memorySpace>>
185 std::vector<std::string>
188 std::vector<utils::Point>
194 std::shared_ptr<const TriangulationBase>
218 std::shared_ptr<const EnrichmentIdsPartition<dim>>
221 std::shared_ptr<const atoms::AtomSphericalDataContainer>
236 std::vector<std::vector<global_size_type>>
239 std::unordered_map<global_size_type, utils::OptimizedIndexSet<size_type>>
242 std::unordered_map<global_size_type, std::vector<ValueTypeBasisData>>
245 std::shared_ptr<linearAlgebra::LinAlgOpContext<memorySpace>>
Class to get the interface between Classical and Enrichment basis. It takes as the classical basis as...
Definition: EnrichmentClassicalInterfaceSpherical.h:72
std::vector< utils::Point > getAtomCoordinatesVec() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:658
const std::vector< std::string > d_atomSymbolVec
Definition: EnrichmentClassicalInterfaceSpherical.h:233
size_type d_feOrder
Definition: EnrichmentClassicalInterfaceSpherical.h:248
bool isOrthogonalized() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:636
std::shared_ptr< const AtomIdsPartition< dim > > d_atomIdsPartition
Definition: EnrichmentClassicalInterfaceSpherical.h:220
std::unordered_map< global_size_type, std::vector< ValueTypeBasisData > > d_enrichmentIdToInterfaceCoeffMap
Definition: EnrichmentClassicalInterfaceSpherical.h:243
const std::unordered_map< global_size_type, std::vector< ValueTypeBasisData > > & getClassicalComponentCoeffMap() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:603
bool d_isOrthogonalized
Definition: EnrichmentClassicalInterfaceSpherical.h:224
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > d_linAlgOpContext
Definition: EnrichmentClassicalInterfaceSpherical.h:246
global_size_type getEnrichmentId(size_type cellId, size_type enrichmentCellLocalId) const
The localid is determined by the storage pattern of the components of basisInterfaceCoeff multivector...
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:703
std::shared_ptr< const atoms::AtomSphericalDataContainer > getAtomSphericalDataContainer() const
Function to return AtomSphericalDataContainerObject.
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:517
std::shared_ptr< const atoms::AtomSphericalDataContainer > d_atomSphericalDataContainer
Definition: EnrichmentClassicalInterfaceSpherical.h:222
std::shared_ptr< const AtomIdsPartition< dim > > getAtomIdsPartition() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:541
const std::string d_fieldName
Definition: EnrichmentClassicalInterfaceSpherical.h:235
std::shared_ptr< const BasisDofHandler > getCFEBasisDofHandler() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:568
size_type getEnrichmentLocalId(global_size_type enrichmentId) const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:777
std::shared_ptr< const EnrichmentIdsPartition< dim > > getEnrichmentIdsPartition() const
Function to return EnrichmentIDsObject.
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:529
std::shared_ptr< const FEBasisManager< ValueTypeBasisData, ValueTypeBasisData, memorySpace, dim > > d_cfeBasisManager
Definition: EnrichmentClassicalInterfaceSpherical.h:232
const std::vector< utils::Point > d_atomCoordinatesVec
Definition: EnrichmentClassicalInterfaceSpherical.h:234
~EnrichmentClassicalInterfaceSpherical()=default
Destructor for the class.
size_type getFEOrder() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:691
std::shared_ptr< const FEBasisDofHandler< ValueTypeBasisData, memorySpace, dim > > d_cfeBasisDofHandler
Definition: EnrichmentClassicalInterfaceSpherical.h:227
std::vector< std::string > getAtomSymbolVec() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:647
std::shared_ptr< const TriangulationBase > d_triangulation
Definition: EnrichmentClassicalInterfaceSpherical.h:223
std::vector< std::vector< global_size_type > > d_overlappingEnrichmentIdsInCells
Definition: EnrichmentClassicalInterfaceSpherical.h:237
std::shared_ptr< const EnrichmentIdsPartition< dim > > d_enrichmentIdsPartition
Definition: EnrichmentClassicalInterfaceSpherical.h:219
std::shared_ptr< const BasisManager< ValueTypeBasisData, memorySpace > > getCFEBasisManager() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:552
std::shared_ptr< const TriangulationBase > getTriangulation() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:680
const std::unordered_map< global_size_type, utils::OptimizedIndexSet< size_type > > & getClassicalComponentLocalIdsMap() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:586
std::unordered_map< global_size_type, utils::OptimizedIndexSet< size_type > > d_enrichmentIdToClassicalLocalIdMap
Definition: EnrichmentClassicalInterfaceSpherical.h:240
std::string getFieldName() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:669
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > getLinAlgOpContext() const
Definition: EnrichmentClassicalInterfaceSpherical.t.cpp:620
An abstract class to store and access data for a given basis, such as the basis function values on a ...
Definition: FEBasisDataStorage.h:53
Definition: FEBasisDofHandler.h:57
An abstract class to encapsulate the partitioning of a finite element basis across multiple processor...
Definition: FEBasisManager.h:44
Definition: LinAlgOpContext.h:38
Definition: OptimizedIndexSet.h:48
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