ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
gint_precision_controller.h
Go to the documentation of this file.
1#ifndef GINT_PRECISION_CONTROLLER_H
2#define GINT_PRECISION_CONTROLLER_H
3
5
6#include <string>
7
9{
10 public:
12
13 void set_mode(const std::string& precision_mode);
14
15 void reset_for_new_scf();
16
18 bool update_after_iteration(double drho, double scf_thr);
19
21
22 private:
23 enum class PrecisionMode
24 {
25 single,
27 mix
28 };
29
30 static PrecisionMode parse_mode_(const std::string& precision_mode);
31
35};
36
37#endif
Definition gint_precision_controller.h:9
GintPrecisionController()=default
bool locked_double_precision_
Definition gint_precision_controller.h:34
void reset_for_new_scf()
Definition gint_precision_controller.cpp:23
bool update_after_iteration(double drho, double scf_thr)
Returns true if precision switched from fp32 to fp64 in this call.
Definition gint_precision_controller.cpp:40
PrecisionMode
Definition gint_precision_controller.h:24
static PrecisionMode parse_mode_(const std::string &precision_mode)
Definition gint_precision_controller.cpp:10
void set_mode(const std::string &precision_mode)
Definition gint_precision_controller.cpp:5
ModuleGint::GintPrecision current_precision() const
Definition gint_precision_controller.cpp:64
ModuleGint::GintPrecision current_precision_
Definition gint_precision_controller.h:32
PrecisionMode mode_
Definition gint_precision_controller.h:33
GintPrecision
Definition gint_helper.h:10