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 #ifndef CIHEADER
00029 #define CIHEADER
00030
00031 #include "basisinfo.h"
00032 #include "integrals_2el.h"
00033
00034
00035 namespace CI {
00036
00037 struct Options {
00038 int use_random_orbitals;
00039 int use_lowdin_orbitals;
00040 int no_of_core_electrons;
00041 int use_random_starting_guess;
00042 ergo_real convergence_threshold;
00043 ergo_real initial_step_length;
00044 int max_no_of_iterations;
00045 ergo_real shift;
00046 int use_energy_diff_limit;
00047 ergo_real energy_diff_limit;
00048
00050 Options() : use_random_orbitals(0),
00051 use_lowdin_orbitals(0),
00052 no_of_core_electrons(0),
00053 use_random_starting_guess(0),
00054 convergence_threshold(1e-4),
00055 initial_step_length(0.01),
00056 max_no_of_iterations(30),
00057 shift(0.0),
00058 use_energy_diff_limit(0),
00059 energy_diff_limit(10.0)
00060 {
00061 }
00062 };
00063
00064 }
00065
00066
00067 int do_CI(
00068 const BasisInfoStruct & basisInfo,
00069 const IntegralInfo* integralInfo,
00070 const CI::Options& options,
00071 const ergo_real* S,
00072 const ergo_real* h_AO,
00073 const ergo_real* F_a,
00074 const ergo_real* F_b,
00075 int n_el_a,
00076 int n_el_b,
00077 ergo_real nuclearEnergy,
00078 ergo_real HF_energy
00079 );
00080
00081
00082 #endif