DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
Loading...
Searching...
No Matches
eigenSolver.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#ifndef eigenSolver_h
20#define eigenSolver_h
21
22#include "headers.h"
23#include "operator.h"
24
25namespace dftfe
26{
27 /**
28 * @brief Base class for non-linear algebraic solver.
29 *
30 * @author Phani Motamarri
31 */
32
34 {
35 public:
42
43
44 public:
45 /**
46 * @brief Destructor.
47 */
48 virtual ~eigenSolverClass() = 0;
49
50
51 /**
52 * @brief Solve eigen problem.
53 *
54 * @return Return value indicating success or failure.
55 */
56 virtual void
58 std::vector<distributedCPUVec<double>> & eigenVectors,
59 std::vector<double> & eigenValues,
60 std::vector<double> & residuals) = 0;
61
62 protected:
63 /**
64 * @brief Constructor.
65 *
66 */
68 };
69} // namespace dftfe
70#endif // dft_eigenSolver_h
virtual ~eigenSolverClass()=0
Destructor.
ReturnValueType
Definition eigenSolver.h:37
@ MAX_ITER_REACHED
Definition eigenSolver.h:40
@ FAILURE
Definition eigenSolver.h:39
@ SUCCESS
Definition eigenSolver.h:38
virtual void solve(operatorDFTClass< dftfe::utils::MemorySpace::HOST > &operatorMatrix, std::vector< distributedCPUVec< double > > &eigenVectors, std::vector< double > &eigenValues, std::vector< double > &residuals)=0
Solve eigen problem.
eigenSolverClass()
Constructor.
Base class for building the DFT operator and the action of operator on a vector.
Definition operator.h:43
Definition pseudoPotentialToDftfeConverter.cc:34
dealii::LinearAlgebra::distributed::Vector< elem_type, dealii::MemorySpace::Host > distributedCPUVec
Definition headers.h:92