QCaml/particles/lib/nuclei.mli

65 lines
1.3 KiB
OCaml

(** Type *)
open Common
type t = (Element.t * Coordinate.t) array
(** Conversion *)
val of_xyz_string : string -> t
(** Create from a string, in xyz format *)
val to_xyz_string : t -> string
(** Transform into a string, in xyz format *)
val of_xyz_file : string -> t
(** Create from a file, in xyz format *)
val of_zmt_string : string -> t
(** Create from a string, in z-matrix format *)
val of_zmt_file : string -> t
(** Create from a file, in z-matrix format *)
val to_string : t -> string
(** Transform to a string, for printing *)
val of_filename : string -> t
(** Detects the type of file (xyz, z-matrix) and reads the file *)
(** Query *)
val formula : t -> string
(** Returns the chemical formula *)
val repulsion : t -> float
(** Nuclear repulsion energy, in atomic units *)
val charge : t -> Charge.t
(** Sum of the charges of the nuclei *)
val small_core : t -> int
(** Number of core electrons in the small core model *)
val large_core : t -> int
(** Number of core electrons in the large core model | *)
(** Read *)
val of_trexio : Trexio.trexio_file -> t
(** Read from a file in TREXIO format *)
(** Write *)
val to_trexio : Trexio.trexio_file -> t -> unit
(** Write to a file in TREXIO format *)
(** Printers *)
val pp : Format.formatter -> t -> unit