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

dealii linear solver class wrapper More...

#include <dealiiLinearSolver.h>

Inheritance diagram for dftfe::dealiiLinearSolver:
dftfe::linearSolver

Public Types

enum  solverType { CG = 0 , GMRES }
 

Public Member Functions

 dealiiLinearSolver (const MPI_Comm &mpi_comm_parent, const MPI_Comm &mpi_comm_domain, const solverType type)
 Constructor.
 
void solve (dealiiLinearSolverProblem &problem, const double absTolerance, const unsigned int maxNumberIterations, const int debugLevel=0, bool distributeFlag=true)
 Solve linear system, A*x=Rhs.
 
- Public Member Functions inherited from dftfe::linearSolver
 linearSolver ()
 Constructor.
 

Private Attributes

const solverType d_type
 enum denoting the choice of the dealii solver
 
distributedCPUVec< double > gvec
 define some temporary vectors
 
distributedCPUVec< double > dvec
 
distributedCPUVec< double > hvec
 
const MPI_Comm d_mpiCommParent
 
const MPI_Comm mpi_communicator
 
const unsigned int n_mpi_processes
 
const unsigned int this_mpi_process
 
dealii::ConditionalOStream pcout
 

Detailed Description

dealii linear solver class wrapper

Author
Sambit Das

Member Enumeration Documentation

◆ solverType

Enumerator
CG 
GMRES 

Constructor & Destructor Documentation

◆ dealiiLinearSolver()

dftfe::dealiiLinearSolver::dealiiLinearSolver ( const MPI_Comm & mpi_comm_parent,
const MPI_Comm & mpi_comm_domain,
const solverType type )

Constructor.

Parameters
mpi_comm_parentparent mpi communicato
mpi_comm_domaindomain mpi communicator
typeenum specifying the choice of the dealii linear solver

Member Function Documentation

◆ solve()

void dftfe::dealiiLinearSolver::solve ( dealiiLinearSolverProblem & problem,
const double absTolerance,
const unsigned int maxNumberIterations,
const int debugLevel = 0,
bool distributeFlag = true )
virtual

Solve linear system, A*x=Rhs.

Parameters
problemlinearSolverProblem object (functor) to compute Rhs and A*x, and preconditioning
relToleranceTolerance (relative) required for convergence.
maxNumberIterationsMaximum number of iterations.
debugLevelDebug output level: 0 - no debug output 1 - limited debug output 2 - all debug output.

Implements dftfe::linearSolver.

Member Data Documentation

◆ d_mpiCommParent

const MPI_Comm dftfe::dealiiLinearSolver::d_mpiCommParent
private

◆ d_type

const solverType dftfe::dealiiLinearSolver::d_type
private

enum denoting the choice of the dealii solver

◆ dvec

distributedCPUVec<double> dftfe::dealiiLinearSolver::dvec
private

◆ gvec

distributedCPUVec<double> dftfe::dealiiLinearSolver::gvec
private

define some temporary vectors

◆ hvec

distributedCPUVec<double> dftfe::dealiiLinearSolver::hvec
private

◆ mpi_communicator

const MPI_Comm dftfe::dealiiLinearSolver::mpi_communicator
private

◆ n_mpi_processes

const unsigned int dftfe::dealiiLinearSolver::n_mpi_processes
private

◆ pcout

dealii::ConditionalOStream dftfe::dealiiLinearSolver::pcout
private

◆ this_mpi_process

const unsigned int dftfe::dealiiLinearSolver::this_mpi_process
private

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