DFT-FE
1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
workspace
include
linearSolver.h
Go to the documentation of this file.
1
// ---------------------------------------------------------------------
2
//
3
// Copyright (c) 2017-2025 The Regents of the University of Michigan and DFT-FE
4
// authors.
5
//
6
// This file is part of the DFT-FE code.
7
//
8
// The DFT-FE code is free software; you can use it, redistribute
9
// it, and/or modify it under the terms of the GNU Lesser General
10
// Public License as published by the Free Software Foundation; either
11
// version 2.1 of the License, or (at your option) any later version.
12
// The full text of the license can be found in the file LICENSE at
13
// the top level of the DFT-FE distribution.
14
//
15
// ---------------------------------------------------------------------
16
//
17
18
19
#include <
dealiiLinearSolverProblem.h
>
20
21
#ifndef linearSolver_H_
22
# define linearSolver_H_
23
24
namespace
dftfe
25
{
26
/**
27
* @brief Abstract linear solver base class.
28
*
29
* @author Sambit Das
30
*/
31
class
linearSolver
32
{
33
public
:
34
/// Constructor
35
linearSolver
();
36
37
/**
38
* @brief Solve linear system, A*x=Rhs
39
*
40
* @param problem linearSolverProblem object (functor) to compute Rhs and A*x, and preconditioning
41
* @param relTolerance Tolerance (relative) required for convergence.
42
* @param maxNumberIterations Maximum number of iterations.
43
* @param debugLevel Debug output level:
44
* 0 - no debug output
45
* 1 - limited debug output
46
* 2 - all debug output.
47
*/
48
virtual
void
49
solve
(
dealiiLinearSolverProblem
&problem,
50
const
double
relTolerance,
51
const
unsigned
int
maxNumberIterations,
52
const
int
debugLevel = 0,
53
bool
distributeFlag =
true
) = 0;
54
55
private
:
56
};
57
58
}
// namespace dftfe
59
#endif
dftfe::dealiiLinearSolverProblem
Abstract class for linear solve problems to be used with the dealiiLinearSolver interface.
Definition
dealiiLinearSolverProblem.h:31
dftfe::linearSolver::solve
virtual void solve(dealiiLinearSolverProblem &problem, const double relTolerance, const unsigned int maxNumberIterations, const int debugLevel=0, bool distributeFlag=true)=0
Solve linear system, A*x=Rhs.
dftfe::linearSolver::linearSolver
linearSolver()
Constructor.
dealiiLinearSolverProblem.h
dftfe
Definition
pseudoPotentialToDftfeConverter.cc:34
Generated by
1.13.2