DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim > Class Template Reference

#include <OrthoEFEOverlapInverseOpContextGLL.h>

Inheritance diagram for dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >:
Collaboration diagram for dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >:

Public Types

using ValueType = linearAlgebra::blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >
 

Public Member Functions

 OrthoEFEOverlapInverseOpContextGLL (const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > &feBasisManager, const FEBasisDataStorage< ValueTypeOperator, memorySpace > &classicalBlockGLLBasisDataStorage, const FEBasisDataStorage< ValueTypeOperator, memorySpace > &enrichmentBlockEnrichmentBasisDataStorage, const FEBasisDataStorage< ValueTypeOperator, memorySpace > &enrichmentBlockClassicalBasisDataStorage, std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > linAlgOpContext)
 
 OrthoEFEOverlapInverseOpContextGLL (const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > &feBasisManager, const OrthoEFEOverlapOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace, dim > &MContext, std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > linAlgOpContext, bool isCGSolved=true)
 
void apply (linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > &X, linearAlgebra::MultiVector< ValueType, memorySpace > &Y) const override
 

Private Attributes

const FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > * d_feBasisManager
 
const EFEBasisDofHandler< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > * d_efebasisDofHandler
 
linearAlgebra::Vector< ValueTypeOperator, memorySpace > d_diagonalInv
 
std::shared_ptr< utils::MemoryStorage< ValueTypeOperator, memorySpace > > d_basisOverlapEnrichmentBlock
 
size_type d_nglobalEnrichmentIds
 
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > d_linAlgOpContext
 
global_size_type d_nglobalIds
 
bool d_isCGSolved
 
std::shared_ptr< linearAlgebra::LinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace > > d_overlapInvPoisson
 
std::shared_ptr< linearAlgebra::LinearSolverImpl< ValueTypeOperator, ValueTypeOperand, memorySpace > > d_CGSolve
 

Member Typedef Documentation

◆ ValueType

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
using dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::ValueType = linearAlgebra::blasLapack::scalar_type<ValueTypeOperator, ValueTypeOperand>

Constructor & Destructor Documentation

◆ OrthoEFEOverlapInverseOpContextGLL() [1/2]

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::OrthoEFEOverlapInverseOpContextGLL ( const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > &  feBasisManager,
const FEBasisDataStorage< ValueTypeOperator, memorySpace > &  classicalBlockGLLBasisDataStorage,
const FEBasisDataStorage< ValueTypeOperator, memorySpace > &  enrichmentBlockEnrichmentBasisDataStorage,
const FEBasisDataStorage< ValueTypeOperator, memorySpace > &  enrichmentBlockClassicalBasisDataStorage,
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > >  linAlgOpContext 
)

int rank; utils::mpi::MPICommRank( d_feBasisManager->getMPIPatternP2P()->mpiCommunicator(), &rank);

utils::ConditionalOStream rootCout(std::cout); rootCout.setCondition(rank == 0);

rootCout << "Enrichment Block Matrix: " << std::endl; for (size_type i = 0; i < d_nglobalEnrichmentIds; i++) { rootCout << "["; for (size_type j = 0; j < d_nglobalEnrichmentIds; j++) { rootCout << *(basisOverlapEnrichmentBlockSTL.data() + i * d_nglobalEnrichmentIds + j) << "\t"; } rootCout << "]" << std::endl; }

rootCout << "Enrichment Block Inverse Matrix: " << std::endl; for (size_type i = 0; i < d_nglobalEnrichmentIds; i++) { rootCout << "["; for (size_type j = 0; j < d_nglobalEnrichmentIds; j++) { rootCout << *(basisOverlapEnrichmentBlockSTL.data() + i * d_nglobalEnrichmentIds + j) << "\t"; } rootCout << "]" << std::endl; }

Here is the call graph for this function:

◆ OrthoEFEOverlapInverseOpContextGLL() [2/2]

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::OrthoEFEOverlapInverseOpContextGLL ( const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > &  feBasisManager,
const OrthoEFEOverlapOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace, dim > &  MContext,
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > >  linAlgOpContext,
bool  isCGSolved = true 
)
Here is the call graph for this function:

Member Function Documentation

◆ apply()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::apply ( linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > &  X,
linearAlgebra::MultiVector< ValueType, memorySpace > &  Y 
) const
override
Here is the call graph for this function:

Member Data Documentation

◆ d_basisOverlapEnrichmentBlock

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<utils::MemoryStorage<ValueTypeOperator, memorySpace> > dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_basisOverlapEnrichmentBlock
private

◆ d_CGSolve

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<linearAlgebra::LinearSolverImpl<ValueTypeOperator, ValueTypeOperand, memorySpace> > dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_CGSolve
private

◆ d_diagonalInv

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
linearAlgebra::Vector<ValueTypeOperator, memorySpace> dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_diagonalInv
private

◆ d_efebasisDofHandler

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
const EFEBasisDofHandler<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>* dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_efebasisDofHandler
private

◆ d_feBasisManager

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
const FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>* dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_feBasisManager
private

◆ d_isCGSolved

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
bool dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_isCGSolved
private

◆ d_linAlgOpContext

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<linearAlgebra::LinAlgOpContext<memorySpace> > dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_linAlgOpContext
private

◆ d_nglobalEnrichmentIds

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
size_type dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_nglobalEnrichmentIds
private

◆ d_nglobalIds

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
global_size_type dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_nglobalIds
private

◆ d_overlapInvPoisson

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<linearAlgebra::LinearSolverFunction<ValueTypeOperator, ValueTypeOperand, memorySpace> > dftefe::basis::OrthoEFEOverlapInverseOpContextGLL< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_overlapInvPoisson
private

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