2020-09-27 23:55:42 +02:00
|
|
|
(** Representation for two-electron operators expressed in a Gaussian basis set. *)
|
|
|
|
|
|
|
|
type t =
|
|
|
|
{
|
|
|
|
coef_g : float array;
|
|
|
|
expo_g : float array;
|
|
|
|
expo_g_inv : float array;
|
|
|
|
}
|
|
|
|
|
|
|
|
let make coef_g expo_g =
|
2020-09-28 00:24:36 +02:00
|
|
|
let expo_g_inv =
|
|
|
|
Array.map (fun x -> 1. /. x ) expo_g
|
2020-09-27 23:55:42 +02:00
|
|
|
in
|
|
|
|
{ coef_g ; expo_g ; expo_g_inv }
|
|
|
|
|
|
|
|
|
|
|
|
let one_over_r =
|
2020-09-28 00:24:36 +02:00
|
|
|
|
2020-09-27 23:55:42 +02:00
|
|
|
let coef_g = [|
|
|
|
|
841.88478132 ; 70.590185207 ; 18.3616020768 ; 7.2608642093 ;
|
|
|
|
3.57483416444 ; 2.01376031082 ; 1.24216542801 ; 0.81754348620 ;
|
|
|
|
0.564546514023 ; 0.404228610699 ; 0.297458536575 ; 0.223321219537 ;
|
|
|
|
0.169933732064 ; 0.130190978230 ; 0.099652303426 ; 0.075428246546 ;
|
|
|
|
0.0555635614051 ; 0.0386791283055 ; 0.0237550435652 ; 0.010006278387 ;
|
|
|
|
|]
|
|
|
|
and expo_g =
|
|
|
|
[| 84135.654509 ; 2971.58727634 ; 474.716025959 ; 130.676724560 ;
|
|
|
|
47.3938388887 ; 20.2078651631 ; 9.5411021938 ; 4.8109546955 ;
|
|
|
|
2.52795733067 ; 1.35894103210 ; 0.73586710268 ; 0.39557629706 ;
|
|
|
|
0.20785895177 ; 0.104809693858 ; 0.049485682527 ; 0.021099788990 ;
|
|
|
|
0.007652472186 ; 0.0021065225215 ; 0.0003365204879 ; 0.0000118855674 |]
|
|
|
|
in make coef_g expo_g
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|