00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00037 #ifndef CI_HEADER
00038 #define CI_HEADER
00039
00040 #include "basisinfo.h"
00041 #include "integrals_2el.h"
00042
00043
00044 namespace CI {
00045
00046 struct Options {
00047 int use_random_orbitals;
00048 int use_lowdin_orbitals;
00049 int no_of_core_electrons;
00050 int use_random_starting_guess;
00051 ergo_real convergence_threshold;
00052 ergo_real initial_step_length;
00053 int max_no_of_iterations;
00054 ergo_real shift;
00055 int use_energy_diff_limit;
00056 ergo_real energy_diff_limit;
00057
00059 Options() : use_random_orbitals(0),
00060 use_lowdin_orbitals(0),
00061 no_of_core_electrons(0),
00062 use_random_starting_guess(0),
00063 convergence_threshold(1e-4),
00064 initial_step_length(0.01),
00065 max_no_of_iterations(100),
00066 shift(0.0),
00067 use_energy_diff_limit(0),
00068 energy_diff_limit(10.0)
00069 {
00070 }
00071 };
00072
00073 }
00074
00075
00076 int do_CI(
00077 const BasisInfoStruct & basisInfo,
00078 const IntegralInfo & integralInfo,
00079 const CI::Options& options,
00080 const Molecule & molecule,
00081 const ergo_real* S,
00082 const ergo_real* h_AO,
00083 const ergo_real* F_a,
00084 const ergo_real* F_b,
00085 int n_el_a,
00086 int n_el_b,
00087 ergo_real nuclearEnergy,
00088 ergo_real HF_energy
00089 );
00090
00091
00092 #endif