mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-10-04 23:36:08 +02:00
Transposed 0m
This commit is contained in:
parent
e9c25e7fe4
commit
9a8f440f7a
@ -43,10 +43,10 @@ let hvrr_two_e_vector (angMom_a, angMom_b, angMom_c, angMom_d)
|
|||||||
in
|
in
|
||||||
let f = expo_b *. (Coordinate.coord center_ab xyz) in
|
let f = expo_b *. (Coordinate.coord center_ab xyz) in
|
||||||
Array.mapi (fun k c -> c *. expo_inv_p *.
|
Array.mapi (fun k c -> c *. expo_inv_p *.
|
||||||
( (Coordinate.coord center_pq.(k) xyz) *. zero_m_array.(k).(m+1)
|
( (Coordinate.coord center_pq.(k) xyz) *. zero_m_array.(m+1).(k)
|
||||||
-. f *. zero_m_array.(k).(m) ) ) coef_prod
|
-. f *. zero_m_array.(m).(k) ) ) coef_prod
|
||||||
|
|
||||||
| 0 -> Array.mapi (fun k c -> c *. zero_m_array.(k).(m)) coef_prod
|
| 0 -> Array.mapi (fun k c -> c *. zero_m_array.(m).(k)) coef_prod
|
||||||
| totAngMom_a ->
|
| totAngMom_a ->
|
||||||
let key = Zkey.of_int_tuple (Zkey.Three angMom_a)
|
let key = Zkey.of_int_tuple (Zkey.Three angMom_a)
|
||||||
in
|
in
|
||||||
@ -93,8 +93,7 @@ let hvrr_two_e_vector (angMom_a, angMom_b, angMom_c, angMom_d)
|
|||||||
| (i,0) -> if (i>0) then
|
| (i,0) -> if (i>0) then
|
||||||
vrr0_v m angMom_a totAngMom_a
|
vrr0_v m angMom_a totAngMom_a
|
||||||
else
|
else
|
||||||
(* TODO : TRANSPOSE zero_m_array *)
|
Array.mapi (fun k c -> c *. zero_m_array.(m).(k)) coef_prod
|
||||||
Array.mapi (fun k c -> c *. zero_m_array.(k).(m)) coef_prod
|
|
||||||
| (_,_) ->
|
| (_,_) ->
|
||||||
|
|
||||||
let key = Zkey.of_int_tuple (Zkey.Six (angMom_a, angMom_c))
|
let key = Zkey.of_int_tuple (Zkey.Six (angMom_a, angMom_c))
|
||||||
@ -196,7 +195,7 @@ let hvrr_two_e_vector (angMom_a, angMom_b, angMom_c, angMom_d)
|
|||||||
| 0 ->
|
| 0 ->
|
||||||
begin
|
begin
|
||||||
match (totAngMom_a, totAngMom_c) with
|
match (totAngMom_a, totAngMom_c) with
|
||||||
| (0,0) -> Array.mapi (fun k c -> c *. zero_m_array.(k).(0)) coef_prod
|
| (0,0) -> Array.mapi (fun k c -> c *. zero_m_array.(0).(k)) coef_prod
|
||||||
| (_,0) -> vrr0_v 0 angMom_a totAngMom_a
|
| (_,0) -> vrr0_v 0 angMom_a totAngMom_a
|
||||||
| (_,_) -> vrr_v 0 angMom_a angMom_c totAngMom_a totAngMom_c
|
| (_,_) -> vrr_v 0 angMom_a angMom_c totAngMom_a totAngMom_c
|
||||||
end
|
end
|
||||||
@ -336,7 +335,7 @@ let contracted_class_shell_pairs ~zero_m ?schwartz_p ?schwartz_q shell_p shell_q
|
|||||||
in
|
in
|
||||||
|
|
||||||
let zero_m_array =
|
let zero_m_array =
|
||||||
zero_m ~maxm ~expo_pq_inv ~norm_pq_sq
|
zero_m ~maxm:0 ~expo_pq_inv ~norm_pq_sq
|
||||||
in
|
in
|
||||||
|
|
||||||
accu +. coef_prod *. zero_m_array.(0)
|
accu +. coef_prod *. zero_m_array.(0)
|
||||||
@ -391,6 +390,20 @@ let contracted_class_shell_pairs ~zero_m ?schwartz_p ?schwartz_q shell_p shell_q
|
|||||||
and coef_prod = Array.map (fun (zero_m_array, expo_inv, d, center_cd,
|
and coef_prod = Array.map (fun (zero_m_array, expo_inv, d, center_cd,
|
||||||
center_pq,coef_prod) -> coef_prod) common
|
center_pq,coef_prod) -> coef_prod) common
|
||||||
in
|
in
|
||||||
|
(* Transpose zero_m_array
|
||||||
|
*)
|
||||||
|
let zero_m_array =
|
||||||
|
let result = Array.init (maxm+1) (fun _ ->
|
||||||
|
Array.make (Array.length coef_prod) 0.)
|
||||||
|
in
|
||||||
|
for m=0 to maxm do
|
||||||
|
for k=0 to (Array.length coef_prod-1) do
|
||||||
|
result.(m).(k) <- zero_m_array.(k).(m)
|
||||||
|
done;
|
||||||
|
done;
|
||||||
|
result
|
||||||
|
in
|
||||||
|
|
||||||
(* Compute the integral class from the primitive shell quartet *)
|
(* Compute the integral class from the primitive shell quartet *)
|
||||||
let map_1d = Array.init maxm (fun _ -> Zmap.create (4*maxm)) in
|
let map_1d = Array.init maxm (fun _ -> Zmap.create (4*maxm)) in
|
||||||
let map_2d = Array.init maxm (fun _ -> Zmap.create (Array.length class_indices)) in
|
let map_2d = Array.init maxm (fun _ -> Zmap.create (Array.length class_indices)) in
|
||||||
|
Loading…
Reference in New Issue
Block a user