10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-06-26 15:12:05 +02:00
This commit is contained in:
Anthony Scemama 2018-03-21 22:48:02 +01:00
parent 29d568a47b
commit 1ca670e4b7
3 changed files with 0 additions and 219 deletions

View File

@ -41,14 +41,6 @@ let zero_m ~maxm ~expo_pq_inv ~norm_pq_sq =
result
(** Compute all the integrals of a contracted class *)
(*
let contracted_class shell_a shell_b shell_c shell_d : float Zmap.t =
TwoElectronRRVectorized.contracted_class ~zero_m shell_a shell_b shell_c shell_d
*)
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
(** Compute all the integrals of a contracted class *)
let contracted_class_shell_pairs_vec ?schwartz_p ?schwartz_q shell_p shell_q : float Zmap.t =
TwoElectronRRVectorized.contracted_class_shell_pairs ~zero_m ?schwartz_p ?schwartz_q shell_p shell_q
@ -253,190 +245,3 @@ let to_file ~filename eri_array =
done;
close_out oc
(*
module IntegralMap = Zmap
let index i j k l =
Zkey.of_int_array Zkey.Kind_4 [| i;j;k;l |]
module Key = struct
type t=int
let equal (x:int) (y:int) = x = y
let hash (x:int) = x
end
module IntegralMap = Hashtbl.Make(Key)
let index i j k l =
let f i k =
let (p,r) =
if i <= k then (i,k) else (k,i)
in p+ (r*r-r)/2
in
let p = f i k and q = f j l in
f p q
let to_file ~filename basis =
let oc = open_out filename in
let zkey = Array.map (fun b ->
let result =
Angular_momentum.(zkey_array (Kind_1 b.totAngMom))
in
{ n=Array.length result ; cls=result }
) basis
in
let key_array = Array.make 12 0 in
let result = ref [] in
let i_shift = ref 1 in
for i=0 to (Array.length basis) - 1 do
print_int !i_shift ; print_newline ();
let j_shift = ref 1 in
for j=0 to i do
let k_shift = ref 1 in
for k=0 to i do
let l_shift = ref 1 in
for l=0 to k do
let cls =
contracted_class basis.(i) basis.(j) basis.(k) basis.(l)
in
for i_c = 0 to zkey.(i).n - 1 do
let x = Zkey.(to_int_array Kind_3 zkey.(i).cls.(i_c)) in
key_array.(0) <- x.(0);
key_array.(1) <- x.(1);
key_array.(2) <- x.(2);
for j_c = 0 to zkey.(j).n - 1 do
let x = Zkey.(to_int_array Kind_3 zkey.(j).cls.(j_c)) in
key_array.(3) <- x.(0);
key_array.(4) <- x.(1);
key_array.(5) <- x.(2);
for k_c = 0 to zkey.(k).n - 1 do
let x = Zkey.(to_int_array Kind_3 zkey.(k).cls.(k_c)) in
key_array.(6) <- x.(0);
key_array.(7) <- x.(1);
key_array.(8) <- x.(2);
for l_c = 0 to zkey.(l).n - 1 do
let x = Zkey.(to_int_array Kind_3 zkey.(l).cls.(l_c)) in
key_array.( 9) <- x.(0);
key_array.(10) <- x.(1);
key_array.(11) <- x.(2);
let key =
Zkey.(of_int_array Kind_12 key_array)
in
let value =
Zmap.find cls key
in
if (abs_float value > cutoff) then
let key =
index (!i_shift+i_c) (!j_shift+j_c) (!k_shift+k_c) (!l_shift+l_c)
in
result := (key, value) :: !result
done
done
done
done;
l_shift := !l_shift + zkey.(l).n
done;
k_shift := !k_shift + zkey.(k).n
done;
j_shift := !j_shift + zkey.(j).n
done;
i_shift := !i_shift + zkey.(i).n
done
;
print_endline "Computation Done";
let result = Array.of_list !result in
let result =
let a = IntegralMap.create (Array.length result) in
Array.iter (fun (k,v) -> IntegralMap.add a k v) result;
a
in
print_endline "Map formed";
for i=1 to !i_shift - 1 do
for k=1 to !i_shift - 1 do
for j=1 to !i_shift - 1 do
for l=1 to !i_shift - 1 do
let key =
index i j k l
in
try
let value =
IntegralMap.find result key
in
Printf.fprintf oc " %5d %5d %5d %5d%20.15f\n" i j k l value
with Not_found -> ()
done
done
done
done;
close_out oc
let xto_file ~filename basis =
let zkey = Array.map (fun b ->
let result =
Angular_momentum.(zkey_array (Kind_1 b.totAngMom))
in
{ n=Array.length result ; cls=result }
) basis
in
let key_array = Array.make 12 0 in
let result = ref [] in
let (i,j,k,l) = (1,1,1,18) in
let (i,j,k,l) = (i-1,j-1,k-1,l-1) in
basis.(i) |> Cs.to_string |> print_endline;
basis.(j) |> Cs.to_string |> print_endline;
basis.(k) |> Cs.to_string |> print_endline;
basis.(l) |> Cs.to_string |> print_endline;
let bi, bj, bk, bl =
basis.(i), basis.(j), basis.(k), basis.(l)
in
let cls =
(*contracted_class basis.(i) basis.(j) basis.(k) basis.(l) *)
contracted_class bi bj bk bl
in
Zmap.iter (fun k v -> Printf.printf "%50s %20e\n" Zkey.(to_string Kind_12 k) v) cls;
for i_c = 0 to zkey.(i).n - 1 do
let x = Zkey.(to_int_array Kind_3 zkey.(i).cls.(i_c)) in
key_array.(0) <- x.(0);
key_array.(1) <- x.(1);
key_array.(2) <- x.(2);
for j_c = 0 to zkey.(j).n - 1 do
let x = Zkey.(to_int_array Kind_3 zkey.(j).cls.(j_c)) in
key_array.(3) <- x.(0);
key_array.(4) <- x.(1);
key_array.(5) <- x.(2);
for k_c = 0 to zkey.(k).n - 1 do
let x = Zkey.(to_int_array Kind_3 zkey.(k).cls.(k_c)) in
key_array.(6) <- x.(0);
key_array.(7) <- x.(1);
key_array.(8) <- x.(2);
for l_c = 0 to zkey.(l).n - 1 do
let x = Zkey.(to_int_array Kind_3 zkey.(l).cls.(l_c)) in
key_array.( 9) <- x.(0);
key_array.(10) <- x.(1);
key_array.(11) <- x.(2);
let key =
Zkey.(of_int_array Kind_12 key_array)
in
let value =
Zmap.find cls key
in
if (abs_float value > cutoff) then
result := (key, value) :: !result
done
done
done
done;
List.iter (fun (k,v) -> Printf.printf "%60s %e\n" Zkey.(to_string Kind_12 k) v) !result
;
*)

View File

@ -421,16 +421,3 @@ let contracted_class_shell_pairs ~zero_m ?schwartz_p ?schwartz_q shell_p shell_q
result
(** Computes all the two-electron integrals of the contracted shell quartet *)
let contracted_class ~zero_m shell_a shell_b shell_c shell_d : float Zmap.t =
let shell_p = Csp.make ~cutoff shell_a shell_b
and shell_q = Csp.make ~cutoff shell_c shell_d
in
match shell_p, shell_q with
| Some shell_p, Some shell_q ->
contracted_class_shell_pairs ~zero_m shell_p shell_q
| _ -> Zmap.create 0

View File

@ -855,14 +855,3 @@ let contracted_class_shell_pairs ~zero_m ?schwartz_p ?schwartz_q shell_p shell_q
(** Computes all the two-electron integrals of the contracted shell quartet *)
let contracted_class ~zero_m shell_a shell_b shell_c shell_d : float Zmap.t =
let shell_p = Csp.make ~cutoff shell_a shell_b
and shell_q = Csp.make ~cutoff shell_c shell_d
in
match shell_p, shell_q with
| Some shell_p, Some shell_q ->
contracted_class_shell_pairs ~zero_m shell_p shell_q
| _ -> Zmap.create 0