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

A derived class of linearAlgebra::OperatorContext to encapsulate the action of a discrete operator on vectors, matrices, etc. More...

#include <LaplaceOperatorContextFE.h>

Inheritance diagram for dftefe::electrostatics::LaplaceOperatorContextFE< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >:
Collaboration diagram for dftefe::electrostatics::LaplaceOperatorContextFE< 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

 LaplaceOperatorContextFE (const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > &feBasisManagerX, const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > &feBasisManagerY, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > feBasisDataStorage, std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > linAlgOpContext, const size_type maxCellTimesNumVecs)
 Constructor. More...
 
 ~LaplaceOperatorContextFE ()=default
 
void apply (linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > &X, linearAlgebra::MultiVector< ValueType, memorySpace > &Y) const override
 

Private Attributes

const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > * d_feBasisManagerX
 
const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > * d_feBasisManagerY
 
const size_type d_maxCellTimesNumVecs
 
utils::MemoryStorage< ValueTypeOperator, memorySpace > d_gradNiGradNjInAllCells
 

Detailed Description

template<typename ValueTypeOperator, typename ValueTypeOperand, utils::MemorySpace memorySpace, size_type dim>
class dftefe::electrostatics::LaplaceOperatorContextFE< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >

A derived class of linearAlgebra::OperatorContext to encapsulate the action of a discrete operator on vectors, matrices, etc.

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_PINNED, etc.) in which the data of the operator and its operands reside

Member Typedef Documentation

◆ ValueType

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
using dftefe::electrostatics::LaplaceOperatorContextFE< 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

◆ LaplaceOperatorContextFE()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
dftefe::electrostatics::LaplaceOperatorContextFE< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::LaplaceOperatorContextFE ( const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > &  feBasisManagerX,
const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > &  feBasisManagerY,
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > >  feBasisDataStorage,
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > >  linAlgOpContext,
const size_type  maxCellTimesNumVecs 
)

Constructor.

Here is the call graph for this function:

◆ ~LaplaceOperatorContextFE()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
dftefe::electrostatics::LaplaceOperatorContextFE< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::~LaplaceOperatorContextFE ( )
default

Member Function Documentation

◆ apply()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
void dftefe::electrostatics::LaplaceOperatorContextFE< 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_feBasisManagerX

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
const basis:: FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>* dftefe::electrostatics::LaplaceOperatorContextFE< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_feBasisManagerX
private

◆ d_feBasisManagerY

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
const basis:: FEBasisManager<ValueTypeOperand, ValueTypeOperator, memorySpace, dim>* dftefe::electrostatics::LaplaceOperatorContextFE< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_feBasisManagerY
private

◆ d_gradNiGradNjInAllCells

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
utils::MemoryStorage<ValueTypeOperator, memorySpace> dftefe::electrostatics::LaplaceOperatorContextFE< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_gradNiGradNjInAllCells
private

◆ d_maxCellTimesNumVecs

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace, size_type dim>
const size_type dftefe::electrostatics::LaplaceOperatorContextFE< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >::d_maxCellTimesNumVecs
private

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