DFT-EFE
 
Loading...
Searching...
No Matches
FractionalOccupancyFunction.h
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (c) 2021. *
3 * The Regents of the University of Michigan and DFT-EFE developers. *
4 * *
5 * This file is part of the DFT-EFE code. *
6 * *
7 * DFT-EFE is free software: you can redistribute it and/or modify *
8 * it under the terms of the Lesser GNU General Public License as *
9 * published by the Free Software Foundation, either version 3 of *
10 * the License, or (at your option) any later version. *
11 * *
12 * DFT-EFE is distributed in the hope that it will be useful, but *
13 * WITHOUT ANY WARRANTY; without even the implied warranty *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *
15 * See the Lesser GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU Lesser General Public *
18 * License at the top level of DFT-EFE distribution. If not, see *
19 * <https://www.gnu.org/licenses/>. *
20 ******************************************************************************/
21
22/*
23 * @author Avirup Sircar
24 */
25
26#ifndef dftefeFractionalOccupancyFunction_h
27#define dftefeFractionalOccupancyFunction_h
28
31
32namespace dftefe
33{
34 namespace ksdft
35 {
36 double
37 fermiDirac(const double eigenValue,
38 const double fermiEnergy,
39 const double kb,
40 const double T);
41
42 double
43 fermiDiracDer(const double eigenValue,
44 const double fermiEnergy,
45 const double kb,
46 const double T);
47
50 {
51 public:
55 FractionalOccupancyFunction(const std::vector<double> &eigenValues,
56 const size_type numElectrons,
57 const double kb,
58 const double T,
59 const double initialGuess);
60
62
63 const double
64 getValue(double &x) const override;
65
66 const double
67 getForce(double &x) const override;
68
69 void
70 setSolution(const double &x) override;
71
72 void
73 getSolution(double &solution) override;
74
75 const double &
76 getInitialGuess() const override;
77
78 private:
79 double d_x;
81 std::vector<double> d_eigenValues;
83 double d_kb;
84 double d_T;
85
86 }; // end of class FractionalOccupancyFunction
87 } // end of namespace ksdft
88} // end of namespace dftefe
89#endif // dftefeFractionalOccupancyFunction_h
Definition: FractionalOccupancyFunction.h:50
double d_initialGuess
Definition: FractionalOccupancyFunction.h:80
const double & getInitialGuess() const override
Definition: FractionalOccupancyFunction.cpp:87
const double getForce(double &x) const override
Definition: FractionalOccupancyFunction.cpp:63
void setSolution(const double &x) override
Definition: FractionalOccupancyFunction.cpp:75
std::vector< double > d_eigenValues
Definition: FractionalOccupancyFunction.h:81
void getSolution(double &solution) override
Definition: FractionalOccupancyFunction.cpp:81
double d_kb
Definition: FractionalOccupancyFunction.h:83
double d_x
Definition: FractionalOccupancyFunction.h:79
double d_T
Definition: FractionalOccupancyFunction.h:84
const double getValue(double &x) const override
Definition: FractionalOccupancyFunction.cpp:50
size_type d_numElectrons
Definition: FractionalOccupancyFunction.h:82
Definition: NewtonRaphsonSolverFunction.h:38
double fermiDirac(const double eigenValue, const double fermiEnergy, const double kb, const double T)
Definition: FractionalOccupancyFunction.cpp:10
double fermiDiracDer(const double eigenValue, const double fermiEnergy, const double kb, const double T)
Definition: FractionalOccupancyFunction.cpp:21
dealii includes
Definition: AtomFieldDataSpherical.cpp:31
unsigned int size_type
Definition: TypeConfig.h:8