10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-06-19 11:42:06 +02:00
QCaml/Basis/ERI.ml

28 lines
826 B
OCaml
Raw Normal View History

2018-01-17 19:09:57 +01:00
open Util
2018-01-18 23:42:48 +01:00
(** (00|00)^m : Fundamental electron repulsion integral
2018-01-17 19:09:57 +01:00
$ \int \int \phi_p(r1) 1/r_{12} \phi_q(r2) dr_1 dr_2 $
maxm : Maximum total angular momentum
expo_pq_inv : $1./p + 1./q$ where $p$ and $q$ are the exponents of $\phi_p$ and $\phi_q$
norm_pq_sq : square of the distance between the centers of $\phi_p$ and $\phi_q$
*)
let zero_m ~maxm ~expo_pq_inv ~norm_pq_sq =
let exp_pq =
1. /. expo_pq_inv
in
let t =
norm_pq_sq *. exp_pq
in
boys_function ~maxm t
|> Array.mapi (fun m fm ->
two_over_sq_pi *. (if m mod 2 = 0 then fm else -.fm) *.
(pow exp_pq m) *. (sqrt exp_pq)
)
(** Electron-electron repulsion integral *)
2018-01-18 23:42:48 +01:00
let contracted_class shell_a shell_b shell_c shell_d : float Zmap.t =
TwoElectronRR.contracted_class ~zero_m shell_a shell_b shell_c shell_d
2018-01-17 19:09:57 +01:00