mirror of https://gitlab.com/scemama/QCaml.git
40 lines
1.1 KiB
OCaml
40 lines
1.1 KiB
OCaml
type t
|
|
|
|
(** Returns an array of the basis set per atom *)
|
|
let of_nuclei_and_general_basis n b =
|
|
Array.map (fun (e, center) ->
|
|
List.assoc e b
|
|
|> Array.map (fun (totAngMom, shell) ->
|
|
let expo = Array.map (fun General_basis.{exponent ; coefficient} ->
|
|
exponent) shell
|
|
and coef = Array.map (fun General_basis.{exponent ; coefficient} ->
|
|
coefficient) shell
|
|
in
|
|
Contracted_shell.create ~expo ~coef ~totAngMom ~center)
|
|
) n
|
|
|
|
|
|
let to_string b =
|
|
let line ="
|
|
-----------------------------------------------------------------------
|
|
" in
|
|
"
|
|
Atomic Basis set
|
|
----------------
|
|
|
|
-----------------------------------------------------------------------
|
|
Angular Coordinates (Bohr) Exponents Coefficients
|
|
Momentum X Y Z
|
|
-----------------------------------------------------------------------
|
|
"
|
|
^( Array.mapi (fun atom_id basis ->
|
|
Array.map (fun i ->
|
|
Contracted_shell.to_string i) basis
|
|
|> Array.to_list
|
|
|> String.concat line
|
|
) b
|
|
|> Array.to_list
|
|
|> String.concat line)
|
|
^ line
|
|
|