DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::linearAlgebra::LinearSolverImpl< ValueTypeOperator, ValueTypeOperand, memorySpace > Class Template Referenceabstract

Abstract class that implements the LinearSolver algorithm. For example, the derived classes of it, such as CGLinearSolver, GMRESLinearSolver implement the Conjugate-Gradient (CG) and Generalized Minimum Residual (GMRES) Krylov subspace based approches, respectively, to solve a linear system of equations. More...

#include <LinearSolverImpl.h>

Public Member Functions

virtual ~LinearSolverImpl ()=default
 Default Destructor. More...
 
virtual LinearSolverError solve (LinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace > &linearSolverFunction)=0
 Function that initiates the linear solve. More...
 

Detailed Description

template<typename ValueTypeOperator, typename ValueTypeOperand, utils::MemorySpace memorySpace>
class dftefe::linearAlgebra::LinearSolverImpl< ValueTypeOperator, ValueTypeOperand, memorySpace >

Abstract class that implements the LinearSolver algorithm. For example, the derived classes of it, such as CGLinearSolver, GMRESLinearSolver implement the Conjugate-Gradient (CG) and Generalized Minimum Residual (GMRES) Krylov subspace based approches, respectively, to solve a linear system of equations.

Template Parameters
ValueTypeOperatorThe datatype (float, double, complex<double>, etc.) for the operator (e.g. Matrix) associated with the linear solve
ValueTypeOperandThe datatype (float, double, complex<double>, etc.) of the vector, matrices, etc. on which the operator will act
memorySpaceThe meory space (HOST, DEVICE, HOST_PINNED, etc.) in which the data of the operator and its operands reside

Constructor & Destructor Documentation

◆ ~LinearSolverImpl()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
virtual dftefe::linearAlgebra::LinearSolverImpl< ValueTypeOperator, ValueTypeOperand, memorySpace >::~LinearSolverImpl ( )
virtualdefault

Default Destructor.

Member Function Documentation

◆ solve()

template<typename ValueTypeOperator , typename ValueTypeOperand , utils::MemorySpace memorySpace>
virtual LinearSolverError dftefe::linearAlgebra::LinearSolverImpl< ValueTypeOperator, ValueTypeOperand, memorySpace >::solve ( LinearSolverFunction< ValueTypeOperator, ValueTypeOperand, memorySpace > &  linearSolverFunction)
pure virtual

Function that initiates the linear solve.

Parameters
[in]linearSolverFunctionReference to a LinearSolverFunction object that encapsulates the discrete partial differential equation that is being solved as a linear solve. Typically, the linearSolverFunction provides the right hand side vector (i.e., \(\mathbf{b}$\f) and the handle to the action of the discrete operator on a Vector. It also stores the final solution \)\mathbf{x}$\f

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