mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-12-21 11:53:31 +01:00
Added ERI.mli
This commit is contained in:
parent
0715f56eaf
commit
031408f5ab
10
Basis/ERI.ml
10
Basis/ERI.ml
@ -6,6 +6,16 @@ open Bigarray
|
||||
|
||||
type t = (float, float32_elt, fortran_layout) Bigarray.Genarray.t
|
||||
|
||||
let get ~r1 ~r2 t =
|
||||
let i,k = r1
|
||||
and j,l = r2
|
||||
in
|
||||
t.{i,k,j,l}
|
||||
|
||||
let get_chem t i j k l = get ~r1:(i,j) ~r2:(k,l) t
|
||||
let get_phys t i j k l = get ~r1:(i,k) ~r2:(j,l) t
|
||||
|
||||
|
||||
module Am = AngularMomentum
|
||||
module As = AtomicShell
|
||||
module Asp = AtomicShellPair
|
||||
|
29
Basis/ERI.mli
Normal file
29
Basis/ERI.mli
Normal file
@ -0,0 +1,29 @@
|
||||
type t
|
||||
val get : r1:int * int -> r2:int * int -> t -> float
|
||||
val get_chem : t -> int -> int -> int -> int -> float
|
||||
val get_phys : t -> int -> int -> int -> int -> float
|
||||
|
||||
val zero_m : maxm:int -> expo_pq_inv:float -> norm_pq_sq:float -> float array
|
||||
|
||||
val contracted_class_shell_pairs :
|
||||
?schwartz_p:float Zmap.t ->
|
||||
?schwartz_q:float Zmap.t ->
|
||||
ContractedShellPair.t ->
|
||||
ContractedShellPair.t -> float Zmap.t
|
||||
|
||||
val contracted_class_shell_pairs_vec :
|
||||
?schwartz_p:float Zmap.t ->
|
||||
?schwartz_q:float Zmap.t ->
|
||||
ContractedShellPair.t ->
|
||||
ContractedShellPair.t -> float Zmap.t
|
||||
|
||||
val contracted_class_atomic_shell_pairs :
|
||||
?schwartz_p:float Zmap.t ->
|
||||
?schwartz_q:float Zmap.t ->
|
||||
AtomicShellPair.t ->
|
||||
AtomicShellPair.t -> float Zmap.t
|
||||
|
||||
val of_basis : Basis.t -> t
|
||||
|
||||
val to_file : filename:string -> t -> unit
|
||||
|
@ -69,3 +69,5 @@ let norm_scales t =
|
||||
norm_coef_scale_p_list
|
||||
|> Array.concat
|
||||
|
||||
|
||||
|
||||
|
@ -2,6 +2,8 @@ open Lacaml.D
|
||||
open Simulation
|
||||
open Constants
|
||||
|
||||
|
||||
|
||||
type t = Mat.t
|
||||
|
||||
let make ~density simulation =
|
||||
@ -21,7 +23,8 @@ let make ~density simulation =
|
||||
if abs_float p > epsilon then
|
||||
for mu = 1 to nu do
|
||||
m_F.{mu,nu} <- m_F.{mu,nu} +. p *.
|
||||
(m_G.{mu,lambda,nu,sigma} -. 0.5 *. m_G.{mu,lambda,sigma,nu})
|
||||
(ERI.get_chem m_G mu lambda nu sigma
|
||||
-. 0.5 *. ERI.get_chem m_G mu lambda sigma nu)
|
||||
done
|
||||
done
|
||||
done
|
||||
|
Loading…
Reference in New Issue
Block a user