39#ifndef MADNESS_CHEM_SCFPROTOCOL_H__INCLUDED
40#define MADNESS_CHEM_SCFPROTOCOL_H__INCLUDED
100 for (std::size_t i=0; i<
protocol.size(); ++i) {
130 std::stringstream
ss;
131 ss <<
"\nstarting protocol at time" << std::setw(8) << std::setprecision(2)
180 bool approx(
const double a,
const double b)
const {
double w(double t, double eps)
Definition DKops.h:22
struct for running a protocol of subsequently tightening precision
Definition SCFProtocol.h:54
bool set_start_from_achieved(const double achieved)
start at the first rung that is tighter than an already-achieved precision
Definition SCFProtocol.h:99
double user_dconv
density convergence provided by user
Definition SCFProtocol.h:188
double user_econv
energy convergence provided by user
Definition SCFProtocol.h:187
double end_prec
final precision
Definition SCFProtocol.h:72
World & world
Definition SCFProtocol.h:66
bool finished() const
Definition SCFProtocol.h:140
void initialize()
Definition SCFProtocol.h:121
std::vector< double > protocol
the ladder, from CalculationParameters
Definition SCFProtocol.h:185
void drop_last_rung()
drop the last rung, i.e. stop one step short of the full precision
Definition SCFProtocol.h:114
SCFProtocol & operator++()
go to the next rung of the ladder
Definition SCFProtocol.h:143
bool converged
flag if protocol has converged
Definition SCFProtocol.h:68
std::size_t start_index() const
index of the rung this protocol will start at
Definition SCFProtocol.h:82
std::size_t index
current rung
Definition SCFProtocol.h:186
double dconv
density convergence of SCF calculations
Definition SCFProtocol.h:76
double current_prec
current precision
Definition SCFProtocol.h:71
double thresh
numerical precision of representing functions
Definition SCFProtocol.h:74
void set_start_index(const std::size_t i)
start at a given rung rather than at the first
Definition SCFProtocol.h:87
double start_prec
starting precision, typically 1.e-4
Definition SCFProtocol.h:70
std::size_t size() const
number of rungs in the ladder
Definition SCFProtocol.h:79
bool on_last_rung() const
true if the current rung is the last one
Definition SCFProtocol.h:156
void infer_thresholds(const double prec)
infer thresholds for a given rung of the ladder
Definition SCFProtocol.h:172
bool approx(const double a, const double b) const
compare two positive doubles to be equal
Definition SCFProtocol.h:180
SCFProtocol(World &w, const CalculationParameters ¶m)
Definition SCFProtocol.h:56
double econv
energy convergence of SCF calculations
Definition SCFProtocol.h:75
A parallel world class.
Definition world.h:134
ProcessID rank() const
Returns the process rank in this World (same as MPI_Comm_rank()).
Definition world.h:344
#define MADNESS_CHECK_THROW(condition, msg)
Check a condition — even in a release build the condition is always evaluated so it can have side eff...
Definition madness_exception.h:207
Namespace for all elements and tools of MADNESS.
Definition DFParameters.h:10
void print(const T &t, const Ts &... ts)
Print items to std::cout (items separated by spaces) and terminate with a new line.
Definition print.h:227
double wall_time()
Returns the wall time in seconds relative to an arbitrary origin.
Definition timers.cc:48
static XNonlinearSolver< std::vector< Function< T, NDIM > >, T, vector_function_allocator< T, NDIM > > nonlinear_vector_solver(World &world, const long nvec)
Definition nonlinsol.h:371
static long abs(long a)
Definition tensor.h:219
static const double b
Definition nonlinschro.cc:119
static const double a
Definition nonlinschro.cc:118
Definition CalculationParameters.h:51
InputParameters param
Definition tdse.cc:203