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

A derived class of linearAlgebra::LinearSolverFunction to encapsulate the L2 Projecton partial differential equation (PDE) discretized in a finite element (FE) basis. More...

#include <L2ProjectionLinearSolverFunction.h>

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

Public Types

using ValueType = linearAlgebra::blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >
 define ValueType as the superior (bigger set) of the ValueTypeOperator and ValueTypeOperand (e.g., between double and complex<double>, complex<double> is the bigger set) More...
 

Public Member Functions

 L2ProjectionLinearSolverFunction (std::shared_ptr< const FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > cfeBasisManager, std::shared_ptr< const CFEOverlapOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace, dim > > cfeBasisDataStorageOverlapMatrix, std::shared_ptr< const FEBasisDataStorage< ValueTypeOperator, memorySpace > > cfeBasisDataStorageRhs, const quadrature::QuadratureValuesContainer< linearAlgebra::blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > &inp, const linearAlgebra::PreconditionerType pcType, std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > linAlgOpContext, const size_type maxCellTimesNumVecs)
 This constructor creates an instance of a base LinearSolverFunction called PoissonLinearSolverFE. More...
 
const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > & getAxContext () const override
 
const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > & getPCContext () const override
 
void setSolution (const linearAlgebra::MultiVector< ValueType, memorySpace > &x) override
 
void getSolution (linearAlgebra::MultiVector< ValueType, memorySpace > &solution) override
 
const linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > & getRhs () const override
 
const linearAlgebra::MultiVector< ValueType, memorySpace > & getInitialGuess () const override
 
const utils::mpi::MPICommgetMPIComm () const override
 

Private Attributes

std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > d_feBasisManager
 
std::shared_ptr< const CFEOverlapOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace, dim > > d_AxContext
 
std::shared_ptr< const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > > d_PCContext
 
linearAlgebra::MultiVector< ValueType, memorySpace > d_x
 
linearAlgebra::MultiVector< ValueType, memorySpace > d_b
 
linearAlgebra::PreconditionerType d_pcType
 
const linearAlgebra::MultiVector< ValueType, memorySpace > d_initial
 
std::shared_ptr< const utils::mpi::MPIPatternP2P< memorySpace > > d_mpiPatternP2P
 

Detailed Description

template<typename ValueTypeOperator, typename ValueTypeOperand, utils::MemorySpace memorySpace, size_type dim>
class dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >

A derived class of linearAlgebra::LinearSolverFunction to encapsulate the L2 Projecton partial differential equation (PDE) discretized in a finite element (FE) basis.

Template Parameters
ValueTypeOperatorThe datatype (float, double, complex<double>, etc.) for the underlying operator
ValueTypeOperandThe datatype (float, double, complex<double>, etc.) of the vector, matrices, etc. on which the operator will act
memorySpaceThe meory sapce (HOST, DEVICE, HOST_PINNES, etc.) in which the data of the operator and its operands reside
dimDimension of the Poisson problem

Member Typedef Documentation

◆ ValueType

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

define ValueType as the superior (bigger set) of the ValueTypeOperator and ValueTypeOperand (e.g., between double and complex<double>, complex<double> is the bigger set)

Constructor & Destructor Documentation

◆ L2ProjectionLinearSolverFunction()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::L2ProjectionLinearSolverFunction ( std::shared_ptr< const FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > >  cfeBasisManager,
std::shared_ptr< const CFEOverlapOperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace, dim > >  cfeBasisDataStorageOverlapMatrix,
std::shared_ptr< const FEBasisDataStorage< ValueTypeOperator, memorySpace > >  cfeBasisDataStorageRhs,
const quadrature::QuadratureValuesContainer< linearAlgebra::blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > &  inp,
const linearAlgebra::PreconditionerType  pcType,
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > >  linAlgOpContext,
const size_type  maxCellTimesNumVecs 
)

This constructor creates an instance of a base LinearSolverFunction called PoissonLinearSolverFE.

Here is the call graph for this function:

Member Function Documentation

◆ getAxContext()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > & dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::getAxContext
override

◆ getInitialGuess()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
const linearAlgebra::MultiVector< linearAlgebra::blasLapack::scalar_type< ValueTypeOperator, ValueTypeOperand >, memorySpace > & dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::getInitialGuess
override

◆ getMPIComm()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
const utils::mpi::MPIComm & dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::getMPIComm
override

◆ getPCContext()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > & dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::getPCContext
override

◆ getRhs()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
const linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > & dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::getRhs
override

◆ getSolution()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::getSolution ( linearAlgebra::MultiVector< ValueType, memorySpace > &  solution)
override

◆ setSolution()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
void dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::setSolution ( const linearAlgebra::MultiVector< ValueType, memorySpace > &  x)
override

Member Data Documentation

◆ d_AxContext

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<const CFEOverlapOperatorContext<ValueTypeOperator, ValueTypeOperand, memorySpace, dim> > dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_AxContext
private

◆ d_b

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
linearAlgebra::MultiVector<ValueType, memorySpace> dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_b
private

◆ d_feBasisManager

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr< const basis:: FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim> > dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_feBasisManager
private

◆ d_initial

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
const linearAlgebra::MultiVector<ValueType, memorySpace> dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_initial
private

◆ d_mpiPatternP2P

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<const utils::mpi::MPIPatternP2P<memorySpace> > dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_mpiPatternP2P
private

◆ d_PCContext

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
std::shared_ptr<const linearAlgebra::OperatorContext<ValueTypeOperator, ValueTypeOperand, memorySpace> > dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_PCContext
private

◆ d_pcType

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
linearAlgebra::PreconditionerType dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_pcType
private

◆ d_x

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
linearAlgebra::MultiVector<ValueType, memorySpace> dftefe::basis::L2ProjectionLinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_x
private

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