DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim > Class Template Reference

#include <EFEConstraintsLocalDealii.h>

Inheritance diagram for dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >:
Collaboration diagram for dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >:

Public Types

using GlobalSizeTypeVector = utils::MemoryStorage< global_size_type, memorySpace >
 
using SizeTypeVector = utils::MemoryStorage< size_type, memorySpace >
 

Public Member Functions

 EFEConstraintsLocalDealii (dealii::IndexSet &locally_relevant_dofs)
 
 EFEConstraintsLocalDealii (dealii::AffineConstraints< ValueTypeBasisCoeff > &dealiiAffineConstraintMatrix, std::vector< std::pair< global_size_type, global_size_type > > &locallyOwnedRanges, std::vector< global_size_type > &ghostIndices, std::unordered_map< global_size_type, size_type > &globalToLocalMapLocalDofs)
 
 ~EFEConstraintsLocalDealii ()=default
 
void copyFrom (const ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > &constraintsLocalIn) override
 
void clear () override
 
bool isConstrained (global_size_type basisId) const override
 
void close () override
 
bool isClosed () const override
 
void setInhomogeneity (global_size_type basisId, ValueTypeBasisCoeff constraintValue) override
 
const std::vector< std::pair< global_size_type, ValueTypeBasisCoeff > > * getConstraintEntries (const global_size_type lineDof) const override
 
bool isInhomogeneouslyConstrained (const global_size_type index) const override
 
ValueTypeBasisCoeff getInhomogeneity (const global_size_type lineDof) const override
 
void distributeChildToParent (linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, size_type blockSize) const override
 
void distributeParentToChild (linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, size_type blockSize) const override
 
void setConstrainedNodesToZero (linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, size_type blockSize) const override
 
void setConstrainedNodes (linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, size_type blockSize, ValueTypeBasisCoeff alpha) const override
 
const dealii::AffineConstraints< ValueTypeBasisCoeff > & getAffineConstraints () const
 
- Public Member Functions inherited from dftefe::basis::ConstraintsLocal< ValueTypeBasisCoeff, memorySpace >
 ~ConstraintsLocal ()=default
 
virtual void copyFrom (const ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > &constraintsLocalIn)=0
 
virtual void clear ()=0
 
virtual void setInhomogeneity (global_size_type basisId, ValueTypeBasisCoeff constraintValue)=0
 
virtual void close ()=0
 
virtual bool isClosed () const =0
 
virtual bool isConstrained (global_size_type basisId) const =0
 
virtual const std::vector< std::pair< global_size_type, ValueTypeBasisCoeff > > * getConstraintEntries (const global_size_type lineDof) const =0
 
virtual bool isInhomogeneouslyConstrained (const global_size_type index) const =0
 
virtual ValueTypeBasisCoeff getInhomogeneity (const global_size_type lineDof) const =0
 
virtual void distributeChildToParent (linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, size_type blockSize) const =0
 
virtual void distributeParentToChild (linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, size_type blockSize) const =0
 
virtual void setConstrainedNodesToZero (linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, size_type blockSize) const =0
 
virtual void setConstrainedNodes (linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &vectorData, size_type blockSize, ValueTypeBasisCoeff alpha) const =0
 

Private Member Functions

void addEntries (const global_size_type constrainedDofIndex, const std::vector< std::pair< global_size_type, ValueTypeBasisCoeff > > &colWeightPairs)
 
void copyConstraintsDataFromDealiiToDealii (const EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim > &constraintsDataIn)
 
void copyConstraintsDataFromDealiiToDftefe ()
 
void addLine (const global_size_type lineDof)
 
bool isGhostEntry (const global_size_type globalId) const
 
bool inLocallyOwnedRanges (const global_size_type globalId) const
 
size_type globalToLocal (const global_size_type globalId) const
 

Private Attributes

dealii::AffineConstraints< ValueTypeBasisCoeff > d_dealiiAffineConstraintMatrix
 
bool d_isCleared
 
bool d_isClosed
 
GlobalSizeTypeVector d_rowConstraintsIdsGlobal
 
SizeTypeVector d_rowConstraintsIdsLocal
 
SizeTypeVector d_columnConstraintsIdsLocal
 
SizeTypeVector d_constraintRowSizesAccumulated
 
GlobalSizeTypeVector d_columnConstraintsIdsGlobal
 
utils::MemoryStorage< double, memorySpace > d_columnConstraintsValues
 
utils::MemoryStorage< ValueTypeBasisCoeff, memorySpace > d_constraintsInhomogenities
 
SizeTypeVector d_rowConstraintsSizes
 
std::vector< std::pair< global_size_type, global_size_type > > d_locallyOwnedRanges
 
std::vector< global_size_typed_ghostIndices
 
std::unordered_map< global_size_type, size_typed_globalToLocalMap
 

Member Typedef Documentation

◆ GlobalSizeTypeVector

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
using dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::GlobalSizeTypeVector = utils::MemoryStorage<global_size_type, memorySpace>

◆ SizeTypeVector

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
using dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::SizeTypeVector = utils::MemoryStorage<size_type, memorySpace>

Constructor & Destructor Documentation

◆ EFEConstraintsLocalDealii() [1/2]

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::EFEConstraintsLocalDealii ( dealii::IndexSet &  locally_relevant_dofs)

◆ EFEConstraintsLocalDealii() [2/2]

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::EFEConstraintsLocalDealii ( dealii::AffineConstraints< ValueTypeBasisCoeff > &  dealiiAffineConstraintMatrix,
std::vector< std::pair< global_size_type, global_size_type > > &  locallyOwnedRanges,
std::vector< global_size_type > &  ghostIndices,
std::unordered_map< global_size_type, size_type > &  globalToLocalMapLocalDofs 
)
Here is the call graph for this function:

◆ ~EFEConstraintsLocalDealii()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::~EFEConstraintsLocalDealii ( )
default

Member Function Documentation

◆ addEntries()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::addEntries ( const global_size_type  constrainedDofIndex,
const std::vector< std::pair< global_size_type, ValueTypeBasisCoeff > > &  colWeightPairs 
)
private

◆ addLine()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::addLine ( const global_size_type  lineDof)
private

◆ clear()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::clear
overridevirtual

◆ close()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::close
overridevirtual

◆ copyConstraintsDataFromDealiiToDealii()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::copyConstraintsDataFromDealiiToDealii ( const EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim > &  constraintsDataIn)
private
Here is the call graph for this function:

◆ copyConstraintsDataFromDealiiToDftefe()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::copyConstraintsDataFromDealiiToDftefe
private
Here is the call graph for this function:
Here is the caller graph for this function:

◆ copyFrom()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::copyFrom ( const ConstraintsLocal< ValueTypeBasisCoeff, memorySpace > &  constraintsLocalIn)
overridevirtual

Implements dftefe::basis::ConstraintsLocal< ValueTypeBasisCoeff, memorySpace >.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ distributeChildToParent()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::distributeChildToParent ( linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &  vectorData,
size_type  blockSize 
) const
overridevirtual

Implements dftefe::basis::ConstraintsLocal< ValueTypeBasisCoeff, memorySpace >.

Here is the call graph for this function:

◆ distributeParentToChild()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::distributeParentToChild ( linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &  vectorData,
size_type  blockSize 
) const
overridevirtual

Implements dftefe::basis::ConstraintsLocal< ValueTypeBasisCoeff, memorySpace >.

Here is the call graph for this function:

◆ getAffineConstraints()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
const dealii::AffineConstraints< ValueTypeBasisCoeff > & dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::getAffineConstraints

◆ getConstraintEntries()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
const std::vector< std::pair< global_size_type, ValueTypeBasisCoeff > > * dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::getConstraintEntries ( const global_size_type  lineDof) const
overridevirtual

Implements dftefe::basis::ConstraintsLocal< ValueTypeBasisCoeff, memorySpace >.

Here is the caller graph for this function:

◆ getInhomogeneity()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
ValueTypeBasisCoeff dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::getInhomogeneity ( const global_size_type  lineDof) const
overridevirtual

Implements dftefe::basis::ConstraintsLocal< ValueTypeBasisCoeff, memorySpace >.

Here is the caller graph for this function:

◆ globalToLocal()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
size_type dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::globalToLocal ( const global_size_type  globalId) const
private
Here is the call graph for this function:

◆ inLocallyOwnedRanges()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
bool dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::inLocallyOwnedRanges ( const global_size_type  globalId) const
private

◆ isClosed()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
bool dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::isClosed
overridevirtual

◆ isConstrained()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
bool dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::isConstrained ( global_size_type  basisId) const
overridevirtual

Implements dftefe::basis::ConstraintsLocal< ValueTypeBasisCoeff, memorySpace >.

Here is the caller graph for this function:

◆ isGhostEntry()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
bool dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::isGhostEntry ( const global_size_type  globalId) const
private

◆ isInhomogeneouslyConstrained()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
bool dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::isInhomogeneouslyConstrained ( const global_size_type  index) const
overridevirtual

Implements dftefe::basis::ConstraintsLocal< ValueTypeBasisCoeff, memorySpace >.

Here is the caller graph for this function:

◆ setConstrainedNodes()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::setConstrainedNodes ( linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &  vectorData,
size_type  blockSize,
ValueTypeBasisCoeff  alpha 
) const
overridevirtual

Implements dftefe::basis::ConstraintsLocal< ValueTypeBasisCoeff, memorySpace >.

Here is the call graph for this function:

◆ setConstrainedNodesToZero()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::setConstrainedNodesToZero ( linearAlgebra::MultiVector< ValueTypeBasisCoeff, memorySpace > &  vectorData,
size_type  blockSize 
) const
overridevirtual

Implements dftefe::basis::ConstraintsLocal< ValueTypeBasisCoeff, memorySpace >.

Here is the call graph for this function:

◆ setInhomogeneity()

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::setInhomogeneity ( global_size_type  basisId,
ValueTypeBasisCoeff  constraintValue 
)
overridevirtual

Implements dftefe::basis::ConstraintsLocal< ValueTypeBasisCoeff, memorySpace >.

Here is the call graph for this function:

Member Data Documentation

◆ d_columnConstraintsIdsGlobal

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
GlobalSizeTypeVector dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_columnConstraintsIdsGlobal
private

◆ d_columnConstraintsIdsLocal

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
SizeTypeVector dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_columnConstraintsIdsLocal
private

◆ d_columnConstraintsValues

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
utils::MemoryStorage<double, memorySpace> dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_columnConstraintsValues
private

◆ d_constraintRowSizesAccumulated

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
SizeTypeVector dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_constraintRowSizesAccumulated
private

◆ d_constraintsInhomogenities

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
utils::MemoryStorage<ValueTypeBasisCoeff, memorySpace> dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_constraintsInhomogenities
private

◆ d_dealiiAffineConstraintMatrix

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
dealii::AffineConstraints<ValueTypeBasisCoeff> dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_dealiiAffineConstraintMatrix
private

◆ d_ghostIndices

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
std::vector<global_size_type> dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_ghostIndices
private

◆ d_globalToLocalMap

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
std::unordered_map<global_size_type, size_type> dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_globalToLocalMap
private

◆ d_isCleared

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
bool dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_isCleared
private

◆ d_isClosed

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
bool dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_isClosed
private

◆ d_locallyOwnedRanges

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
std::vector<std::pair<global_size_type, global_size_type> > dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_locallyOwnedRanges
private

◆ d_rowConstraintsIdsGlobal

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
GlobalSizeTypeVector dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_rowConstraintsIdsGlobal
private

◆ d_rowConstraintsIdsLocal

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
SizeTypeVector dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_rowConstraintsIdsLocal
private

◆ d_rowConstraintsSizes

template<typename ValueTypeBasisCoeff , utils::MemorySpace memorySpace, size_type dim>
SizeTypeVector dftefe::basis::EFEConstraintsLocalDealii< ValueTypeBasisCoeff, memorySpace, dim >::d_rowConstraintsSizes
private

The documentation for this class was generated from the following files: