DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
dftfe::kerkerSolverProblemWrapperClass Class Reference

#include <kerkerSolverProblemWrapper.h>

Inheritance diagram for dftfe::kerkerSolverProblemWrapperClass:
dftfe::dealiiLinearSolverProblem

Public Member Functions

 kerkerSolverProblemWrapperClass (const dftfe::Int feOrder, const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain)
 Constructor.
 
distributedCPUVec< double > & getX ()
 get the reference to x field
 
void vmult (distributedCPUVec< double > &Ax, distributedCPUVec< double > &x)
 Compute A matrix multipled by x.
 
void computeRhs (distributedCPUVec< double > &rhs)
 Compute right hand side vector for the problem Ax = rhs.
 
void precondition_Jacobi (distributedCPUVec< double > &dst, const distributedCPUVec< double > &src, const double omega) const
 Jacobi preconditioning function.
 
void distributeX ()
 distribute x to the constrained nodes.
 
void subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
void unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const
 
bool operator!= (double val) const
 function needed by dealii to mimic SparseMatrix
 
template<typename... Args>
void reinit (Args &&...args)
 
template<typename... Args>
void init (Args &&...args)
 
- Public Member Functions inherited from dftfe::dealiiLinearSolverProblem
 dealiiLinearSolverProblem ()
 Constructor.
 

Private Attributes

kerkerSolverProblemObject d_kerkerSolverProblemObject
 

Constructor & Destructor Documentation

◆ kerkerSolverProblemWrapperClass()

dftfe::kerkerSolverProblemWrapperClass::kerkerSolverProblemWrapperClass ( const dftfe::Int feOrder,
const MPI_Comm & mpi_comm_parent,
const MPI_Comm & mpi_comm_domain )
inline

Constructor.

Member Function Documentation

◆ computeRhs()

void dftfe::kerkerSolverProblemWrapperClass::computeRhs ( distributedCPUVec< double > & rhs)
inlinevirtual

Compute right hand side vector for the problem Ax = rhs.

Parameters
rhsvector for the right hand side values

Implements dftfe::dealiiLinearSolverProblem.

◆ distributeX()

void dftfe::kerkerSolverProblemWrapperClass::distributeX ( )
inlinevirtual

distribute x to the constrained nodes.

Implements dftfe::dealiiLinearSolverProblem.

◆ getX()

distributedCPUVec< double > & dftfe::kerkerSolverProblemWrapperClass::getX ( )
inlinevirtual

get the reference to x field

Returns
reference to x field. Assumes x field data structure is already initialized

Implements dftfe::dealiiLinearSolverProblem.

◆ init()

template<typename... Args>
void dftfe::kerkerSolverProblemWrapperClass::init ( Args &&... args)
inline

◆ operator!=()

bool dftfe::kerkerSolverProblemWrapperClass::operator!= ( double val) const
inlinevirtual

function needed by dealii to mimic SparseMatrix

Implements dftfe::dealiiLinearSolverProblem.

◆ precondition_Jacobi()

void dftfe::kerkerSolverProblemWrapperClass::precondition_Jacobi ( distributedCPUVec< double > & dst,
const distributedCPUVec< double > & src,
const double omega ) const
inlinevirtual

Jacobi preconditioning function.

Implements dftfe::dealiiLinearSolverProblem.

◆ reinit()

template<typename... Args>
void dftfe::kerkerSolverProblemWrapperClass::reinit ( Args &&... args)
inline

◆ subscribe()

void dftfe::kerkerSolverProblemWrapperClass::subscribe ( std::atomic< bool > *const validity,
const std::string & identifier = "" ) const
inlinevirtual

function needed by dealii to mimic SparseMatrix for Jacobi preconditioning

Implements dftfe::dealiiLinearSolverProblem.

◆ unsubscribe()

void dftfe::kerkerSolverProblemWrapperClass::unsubscribe ( std::atomic< bool > *const validity,
const std::string & identifier = "" ) const
inlinevirtual

function needed by dealii to mimic SparseMatrix for Jacobi preconditioning

Implements dftfe::dealiiLinearSolverProblem.

◆ vmult()

void dftfe::kerkerSolverProblemWrapperClass::vmult ( distributedCPUVec< double > & Ax,
distributedCPUVec< double > & x )
inlinevirtual

Compute A matrix multipled by x.

Implements dftfe::dealiiLinearSolverProblem.

Member Data Documentation

◆ d_kerkerSolverProblemObject

kerkerSolverProblemObject dftfe::kerkerSolverProblemWrapperClass::d_kerkerSolverProblemObject
private

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