mirror of
https://gitlab.com/scemama/QCaml.git
synced 2024-12-22 04:13:33 +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 f12_over_r12_ints t = Lazy.force t.f12_over_r12_ints
|
||||||
let cartesian t = t.cartesian
|
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 =
|
let make ~cartesian ~basis ?f12 nuclei =
|
||||||
@ -78,13 +91,13 @@ let test_case name t =
|
|||||||
|
|
||||||
let check_matrix title a r =
|
let check_matrix title a r =
|
||||||
let a = Mat.to_array a in
|
let a = Mat.to_array a in
|
||||||
Mat.to_array r
|
Mat.to_array r
|
||||||
|> Array.iteri (fun i x ->
|
|> Array.iteri (fun i x ->
|
||||||
let message =
|
let message =
|
||||||
Printf.sprintf "%s line %d" title i
|
Printf.sprintf "%s line %d" title i
|
||||||
in
|
in
|
||||||
Alcotest.(check (array (float 1.e-10))) message a.(i) x
|
Alcotest.(check (array (float 1.e-10))) message a.(i) x
|
||||||
)
|
)
|
||||||
in
|
in
|
||||||
|
|
||||||
let check_eri title a r =
|
let check_eri title a r =
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
(** Data structure for Atomic Orbitals. *)
|
(** Data structure for Atomic Orbitals. *)
|
||||||
|
|
||||||
|
open Lacaml.D
|
||||||
|
|
||||||
type t
|
type t
|
||||||
|
|
||||||
(** {1 Accessors} *)
|
(** {1 Accessors} *)
|
||||||
@ -34,6 +36,10 @@ val kin_ints : t -> KinInt.t
|
|||||||
val cartesian : t -> bool
|
val cartesian : t -> bool
|
||||||
(** If true, use cartesian Gaussians (6d, 10f, ...) *)
|
(** 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} *)
|
(** {1 Creators} *)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user