10
1
mirror of https://gitlab.com/scemama/QCaml.git synced 2024-06-02 03:15:19 +02:00

Added AOBasis.values

This commit is contained in:
Anthony Scemama 2020-04-19 16:54:26 +02:00
parent 0b1c375fe0
commit eb2cd547fa
2 changed files with 21 additions and 2 deletions

View File

@ -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 =

View File

@ -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} *)