DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
linearSolverDevice.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#if defined(DFTFE_WITH_DEVICE)
20# ifndef linearSolverDevice_H_
21# define linearSolverDevice_H_
22
24# include <DeviceTypeConfig.h>
25namespace dftfe
26{
27 /**
28 * @brief Abstract linear solver base class.
29 *
30 * @author Sambit Das, Gourab Panigrahi
31 */
32 class linearSolverDevice
33 {
34 public:
35 /// Constructor
36 linearSolverDevice();
37
38 /**
39 * @brief Solve linear system, A*x=Rhs
40 *
41 * @param problem linearSolverProblemDevice object (functor) to compute Rhs and A*x, and preconditioning
42 * @param relTolerance Tolerance (relative) required for convergence.
43 * @param maxNumberIterations Maximum number of iterations.
44 * @param debugLevel Debug output level:
45 * 0 - no debug output
46 * 1 - limited debug output
47 * 2 - all debug output.
48 */
49 virtual void
50 solve(linearSolverProblemDevice &problem,
51 const double absTolerance,
52 const unsigned int maxNumberIterations,
53 const int debugLevel = 0,
54 bool distributeFlag = true) = 0;
55
56 private:
57 };
58
59} // namespace dftfe
60# endif // linearSolverDevice_H_
61#endif
Definition pseudoPotentialToDftfeConverter.cc:34