mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-11-18 20:12:26 +01:00
Added AOBasis.values
This commit is contained in:
parent
0b1c375fe0
commit
eb2cd547fa
@ -28,6 +28,19 @@ let f12_ints t = Lazy.force t.f12_ints
|
||||
let f12_over_r12_ints t = Lazy.force t.f12_over_r12_ints
|
||||
let cartesian t = t.cartesian
|
||||
|
||||
module Am = AngularMomentum
|
||||
module Cs = ContractedShell
|
||||
|
||||
let values t point =
|
||||
let result = Vec.create (Basis.size t.basis) in
|
||||
Array.iter (fun shell ->
|
||||
Cs.values shell point
|
||||
|> Array.iteri
|
||||
(fun i_c value ->
|
||||
let i = Cs.index shell + i_c + 1 in
|
||||
result.{i} <- value)
|
||||
) (Basis.contracted_shells t.basis);
|
||||
result
|
||||
|
||||
|
||||
let make ~cartesian ~basis ?f12 nuclei =
|
||||
@ -78,13 +91,13 @@ let test_case name t =
|
||||
|
||||
let check_matrix title a r =
|
||||
let a = Mat.to_array a in
|
||||
Mat.to_array r
|
||||
Mat.to_array r
|
||||
|> Array.iteri (fun i x ->
|
||||
let message =
|
||||
Printf.sprintf "%s line %d" title i
|
||||
in
|
||||
Alcotest.(check (array (float 1.e-10))) message a.(i) x
|
||||
)
|
||||
)
|
||||
in
|
||||
|
||||
let check_eri title a r =
|
||||
|
@ -1,5 +1,7 @@
|
||||
(** Data structure for Atomic Orbitals. *)
|
||||
|
||||
open Lacaml.D
|
||||
|
||||
type t
|
||||
|
||||
(** {1 Accessors} *)
|
||||
@ -34,6 +36,10 @@ val kin_ints : t -> KinInt.t
|
||||
val cartesian : t -> bool
|
||||
(** If true, use cartesian Gaussians (6d, 10f, ...) *)
|
||||
|
||||
val values : t -> Coordinate.t -> Vec.t
|
||||
(** Values of the AOs evaluated at a given point *)
|
||||
|
||||
|
||||
|
||||
(** {1 Creators} *)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user