A derived class of linearAlgebra::LinearSolverFunction to encapsulate the Poisson partial differential equation (PDE) discretized in a finite element (FE) basis. The Possion PDE is given as: \(\nabla^2 v(\textbf{r}) = -4 \pi \rho(\textbf{r})$\f
with the boundary condition on
\)@_fakenlv(\textbf{r})|_{\partial \Omega}=g(\textbf{r})$\f ( \(\\partial Omega$\f denoting the boundary of a domain \)\Omega$\f). Here \(v$\f has the physical notion of a potential (e.g.,
Hartree potential, nuclear potential, etc.) arising due to a charge
distributin \)\rho$\f.
More...
|
| PoissonLinearSolverFunctionFE (std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > feBasisManagerField, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > feBasisDataStorageStiffnessMatrix, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > feBasisDataStorageRhs, const quadrature::QuadratureValuesContainer< ValueType, memorySpace > &inpRhs, 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...
|
|
void | reinit (std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > feBasisManagerField, std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > feBasisDataStorageRhs, const quadrature::QuadratureValuesContainer< ValueType, memorySpace > &inpRhs) |
|
| ~PoissonLinearSolverFunctionFE ()=default |
|
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::MPIComm & | getMPIComm () const override |
|
|
size_type | d_numComponents |
|
std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > | d_feBasisManagerField |
|
std::shared_ptr< const basis::FEBasisManager< ValueTypeOperand, ValueTypeOperator, memorySpace, dim > > | d_feBasisManagerHomo |
|
std::shared_ptr< const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > > | d_AxContext |
|
std::shared_ptr< const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > > | d_AxContextNHDB |
|
std::shared_ptr< const linearAlgebra::OperatorContext< ValueTypeOperator, ValueTypeOperand, memorySpace > > | d_PCContext |
|
linearAlgebra::PreconditionerType | d_pcType |
|
linearAlgebra::MultiVector< ValueType, memorySpace > | d_x |
|
linearAlgebra::MultiVector< ValueType, memorySpace > | d_b |
|
linearAlgebra::MultiVector< ValueType, memorySpace > | d_initial |
|
linearAlgebra::MultiVector< ValueTypeOperand, memorySpace > | d_fieldInHomoDBCVec |
|
std::shared_ptr< linearAlgebra::LinAlgOpContext< memorySpace > > | d_linAlgOpContext |
|
const size_type | d_maxCellTimesNumVecs |
|
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > | d_feBasisDataStorageStiffnessMatrix |
|
std::shared_ptr< const basis::FEBasisDataStorage< ValueTypeOperator, memorySpace > > | d_feBasisDataStorageRhs |
|
template<typename ValueTypeOperator, typename ValueTypeOperand,
utils::MemorySpace memorySpace,
size_type dim>
class dftefe::electrostatics::PoissonLinearSolverFunctionFE< ValueTypeOperator, ValueTypeOperand, memorySpace, dim >
A derived class of linearAlgebra::LinearSolverFunction to encapsulate the Poisson partial differential equation (PDE) discretized in a finite element (FE) basis. The Possion PDE is given as: \(\nabla^2 v(\textbf{r}) = -4 \pi \rho(\textbf{r})$\f
with the boundary condition on
\)@_fakenlv(\textbf{r})|_{\partial \Omega}=g(\textbf{r})$\f ( \(\\partial Omega$\f denoting the boundary of a domain \)\Omega$\f). Here \(v$\f has the physical notion of a potential (e.g.,
Hartree potential, nuclear potential, etc.) arising due to a charge
distributin \)\rho$\f.
- Template Parameters
-
ValueTypeOperator | The datatype (float, double, complex<double>, etc.) for the underlying operator |
ValueTypeOperand | The datatype (float, double, complex<double>, etc.) of the vector, matrices, etc. on which the operator will act |
memorySpace | The meory sapce (HOST, DEVICE, HOST_PINNES, etc.) in which the data of the operator and its operands reside |
dim | Dimension of the Poisson problem |