Atomic Orbitals
"Atomic basis set"
+"Atomic basis set"
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..3bedc6c --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,12 @@ +pages: + stage: deploy + script: + - mkdir .public + - cp -r docs/* .public + - mv .public public + artifacts: + paths: + - public + only: + - dev + diff --git a/Makefile b/Makefile index 42b12bb..dc58ec9 100644 --- a/Makefile +++ b/Makefile @@ -1,16 +1,22 @@ # Frontend to dune. +# No implicit rules +MAKEFLAGS += --no-builtin-rules +.SUFFIXES: + DIRS=$(shell ls */README.org | sed "s|/README.org||g") DOCS=$(patsubst %, docs/%.html, $(DIRS)) -.PHONY: default build install uninstall test clean +.PHONY: default build install uninstall test clean doc default: build -docs/%.html: %/README.org +docs/%.html: %/README.org %/lib/*.ml %/lib/*.mli %/test/*.ml + - echo $^ - ./bin/tangle.sh $* - ./bin/build_doc.sh $* + - ./bin/build_doc.sh docs doc: $(DOCS) diff --git a/bin/build_doc.sh b/bin/build_doc.sh index b08eb8b..3c2a531 100755 --- a/bin/build_doc.sh +++ b/bin/build_doc.sh @@ -14,15 +14,21 @@ fi DIR=${1%/} -rm -f docs/${DIR}.org -for i in ${DIR}/README.org ${DIR}/[a-z]*.org -do - cat $i >> docs/${DIR}.org -done - CONFIG="--load docs/htmlize.el --load docs/config.el" +if [[ ${DIR} == "docs" ]] ; then + + emacs --debug-init --batch $CONFIG docs/index.org -f org-html-export-to-html + +else + rm -f docs/${DIR}.org + for i in ${DIR}/README.org ${DIR}/[a-z]*.org + do + cat $i >> docs/${DIR}.org + done + + emacs --debug-init --batch $CONFIG docs/${DIR}.org -f org-html-export-to-html \ + && rm docs/${DIR}.org +fi -emacs --debug-init --batch $CONFIG docs/${DIR}.org -f org-html-export-to-html \ -&& rm docs/${DIR}.org diff --git a/docs/ao.html b/docs/ao.html index 810efff..fc409f7 100644 --- a/docs/ao.html +++ b/docs/ao.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- +"Atomic basis set"
+"Atomic basis set"
"Utility functions used by all the other directories."
+"Utility functions used by all the other directories."
Azimuthal quantum number, repsesented as \( s,p,d,\dots \) .
type t = +type t = | S | P | D | F | G | H | I | J | K | L | M | N | O | Int of int @@ -411,8 +411,8 @@ quartets, use in the two-electron operators.
val of_char : char -> t @@ -461,7 +461,7 @@ quartets, use in the two-electron operators. -+Angular_momentum.of_char 'p';; - : Angular_momentum.t = P @@ -480,8 +480,8 @@ Angular_momentum.(to_string D);;
val n_functions : t -> int @@ -510,7 +510,7 @@ Angular_momentum.(to_string D);; -+Angular_momentum.(n_functions D) ;; - : int = 6 @@ -523,8 +523,8 @@ Angular_momentum.( zkey_array (Doublet (P,S)) );;
val ( + ) : t -> t -> t @@ -532,7 +532,7 @@ Angular_momentum.( zkey_array (Doublet (P,S)) );;
+Angular_momentum.(D + P);; - : Angular_momentum.t = F @@ -542,8 +542,8 @@ Angular_momentum.(F - P);;
Printers can print as a string (default) or as an integer. @@ -558,12 +558,12 @@ Printers can print as a string (default) or as an integer.
We define here a data type to handle bit strings efficiently. When @@ -575,8 +575,8 @@ bit string as a multi-precision integer.
type t @@ -585,8 +585,8 @@ bit string as a multi-precision integer.
val of_int : int -> t @@ -735,13 +735,13 @@ bit string as a multi-precision integer. -+Bitstring.of_int 15;; - : Bitstring.t = ++++-------------------------------------------------------------+Bitstring.(shift_left (of_int 15) 2);; - : Bitstring.t = --++++---------------------------------------------------------- @@ -761,7 +761,7 @@ Bitstring.(testbit (of_int 15) 4);; - : bool = false-+Bitstring.(logor (of_int 15) (of_int 73));; - : Bitstring.t = ++++--+--------------------------------------------------------- @@ -776,7 +776,7 @@ Bitstring.(logxor (of_int 15) (of_int 73));;-+Bitstring.(plus_one (of_int 15));; - : Bitstring.t = ----+----------------------------------------------------------- @@ -787,7 +787,7 @@ Bitstring.(minus_one (of_int 15));;-+Bitstring.(trailing_zeros (of_int 12));; - : int = 2 @@ -798,12 +798,12 @@ Bitstring.(popcount (of_int 15));; - : int = 4-+Bitstring.(to_list (of_int 45));; - : int list = [1; 3; 4; 6]-+Bitstring.permutations 2 4;; - : Bitstring.t list = [++--------------------------------------------------------------; @@ -816,8 +816,8 @@ Bitstring.(to_list (of_int 45));;
val pp : Format.formatter -> t -> unit @@ -827,13 +827,13 @@ Bitstring.(to_list (of_int 45));;
type t @@ -846,8 +846,8 @@ This type should be used for all charges in the program (electrons, nuclei,
val of_float : float -> t @@ -863,8 +863,8 @@ This type should be used for all charges in the program (electrons, nuclei,
val ( + ) : t -> t -> t @@ -877,8 +877,8 @@ This type should be used for all charges in the program (electrons, nuclei,
val pp : Format.formatter -> t -> unit @@ -888,8 +888,8 @@ This type should be used for all charges in the program (electrons, nuclei,
This module is a wrapper around the Getopt
library and helps to
@@ -945,11 +945,11 @@ Then, define what to do with the arguments:
type short_opt = char +type short_opt = char type long_opt = string type optional = Mandatory | Optional type documentation = string @@ -980,8 +980,8 @@ don't (ls -l
) and for some arguments the argument is optional
All the options are stored in the hash table dict
where the key
@@ -1011,8 +1011,8 @@ Function to create an anonymous argument.
val get : long_opt -> string option @@ -1050,8 +1050,8 @@ Function to create an anonymous argument.
val set_specs : description list -> unit @@ -1066,16 +1066,16 @@ Sets the specifications of the current program from a list of
All constants used in the program.
val epsilon : float @@ -1106,8 +1106,8 @@ All constants used in the program.
val pi : float @@ -1162,8 +1162,8 @@ All constants used in the program.
val a0 : float @@ -1207,8 +1207,8 @@ All constants used in the program.
Coordinates in 3D space. @@ -1221,11 +1221,11 @@ module.
type bohr +type bohr type angstrom type xyz = { @@ -1244,8 +1244,8 @@ module.
val make : 'a point -> t @@ -1282,8 +1282,8 @@ module.
val bohr_to_angstrom : bohr point -> angstrom point @@ -1314,8 +1314,8 @@ module.
val neg : t -> t @@ -1374,7 +1374,7 @@ module. -+Coordinate.neg { x=1. ; y=2. ; z=3. } ;; - : Coordinate.t = -1.0000 -2.0000 -3.0000 @@ -1400,8 +1400,8 @@ Coordinate.(
val pp : Format.formatter -> t -> unit @@ -1417,13 +1417,13 @@ Coordinates can be printed in bohr or angstrom.
type t = private float @@ -1432,8 +1432,8 @@ Coordinates can be printed in bohr or angstrom.
val of_float : float -> t @@ -1453,16 +1453,16 @@ The unsafe variant doesn't do this check.
Contains powers of x, y and z describing the polynomials in atomic basis sets.
type t = private { @@ -1480,8 +1480,8 @@ Contains powers of x, y and z describing the polynomials in atomic basis sets.
val of_int_tuple : int * int * int -> t @@ -1489,7 +1489,7 @@ Contains powers of x, y and z describing the polynomials in atomic basis sets.
+Powers.of_int_tuple (2,3,1);; - : Powers.t = x^2 + y^3 + z^1 @@ -1499,8 +1499,8 @@ Powers.(to_int_tuple (of_int_tuple (2,3,1)));;
val get : Coordinate.axis -> t -> int @@ -1535,7 +1535,7 @@ Powers.(to_int_tuple (of_int_tuple (2,3,1)));; -+Powers.get Coordinate.Y (Powers.of_int_tuple (2,3,1));; - : int = 3 @@ -1549,8 +1549,8 @@ Powers.decr Coordinate.Y (Powers.of_int_tuple (2,3,1));;
val pp : Format.formatter -> t -> unit @@ -1560,8 +1560,8 @@ Powers.decr Coordinate.Y (Powers.of_int_tuple (2,3,1));;
QCaml-specific parameters @@ -1596,8 +1596,8 @@ QCaml-specific parameters
A range is a sorted list of integers in an interval. @@ -1612,8 +1612,8 @@ A range is a sorted list of integers in an interval.
type t @@ -1622,8 +1622,8 @@ A range is a sorted list of integers in an interval.
val of_string : string -> t @@ -1634,8 +1634,8 @@ A range is a sorted list of integers in an interval.
val pp : Format.formatter -> t -> unit @@ -1645,16 +1645,16 @@ A range is a sorted list of integers in an interval.
Electron spin
type t = Alfa | Beta
@@ -1669,8 +1669,8 @@ letters as Beta
, so the alignment of the code is nicer.
val other : t -> t @@ -1683,8 +1683,8 @@ Returns the opposite spin
val pp : Format.formatter -> t -> unit @@ -1694,8 +1694,8 @@ Returns the opposite spin
Utility functions. @@ -1703,8 +1703,8 @@ Utility functions.
external erf_float : float -> float = "erf_float_bytecode" "erf_float" [@@unboxed] [@@noalloc] @@ -1758,8 +1758,8 @@ Utility functions.
external erfc_float : float -> float = "erfc_float_bytecode" "erfc_float" [@@unboxed] [@@noalloc] @@ -1768,8 +1768,8 @@ Utility functions.
external gamma_float : float -> float = "gamma_float_bytecode" "gamma_float" [@@unboxed] [@@noalloc] @@ -1778,8 +1778,8 @@ Utility functions.
val popcnt : int64 -> int @@ -1788,8 +1788,8 @@ Utility functions.
val trailz : int64 -> int @@ -1798,8 +1798,8 @@ Utility functions.
val leadz : int64 -> int @@ -1808,13 +1808,13 @@ Utility functions.
val fact : int -> float @@ -1887,8 +1887,8 @@ Utility functions.
val incomplete_gamma : alpha:float -> float -> float @@ -1945,8 +1945,8 @@ where \(\gamma\) is the incomplete gamma function.
val list_some : 'a option list -> 'a list @@ -1983,8 +1983,8 @@ where \(\gamma\) is the incomplete gamma function.
val array_range : int -> int -> int array @@ -2021,8 +2021,8 @@ where \(\gamma\) is the incomplete gamma function.
val stream_range : int -> int -> int Stream.t @@ -2059,8 +2059,8 @@ where \(\gamma\) is the incomplete gamma function.
val pp_float_array_size : Format.formatter -> float array -> unit @@ -2107,7 +2107,7 @@ where \(\gamma\) is the incomplete gamma function. -+pp_float_array_size: [ 6: 1.000000 1.732051 1.732051 1.000000 1.732051 1.000000 ] @@ -2130,8 +2130,8 @@ pp_bitstring 14:
Encodes the powers of x, y, z in a compact form, suitable for being @@ -2144,7 +2144,7 @@ The small integers x, y and z are stored compactly in this 126-bits space:
-+Left Right 3 [--------------------------------------------------------------] [------------------|---------------|---------------|---------------] x y z @@ -2165,8 +2165,8 @@ The values of x,y,z should be positive and should not exceed 32767 for
type t @@ -2182,8 +2182,8 @@ The values of x,y,z should be positive and should not exceed 32767 for
val of_powers_three : Powers.t -> t @@ -2262,8 +2262,8 @@ The values of x,y,z should be positive and should not exceed 32767 for
val hash : t -> int @@ -2300,8 +2300,8 @@ The values of x,y,z should be positive and should not exceed 32767 for
val pp : Format.formatter -> t -> unit @@ -2311,16 +2311,16 @@ The values of x,y,z should be positive and should not exceed 32767 for
A hash table where the keys are Zkey
include module type of Hashtbl.Make(Zkey)
@@ -2332,7 +2332,7 @@ A hash table where the keys are Zkey
"Gaussian basis sets"
+"Gaussian basis sets"
"Integrals on the Gaussian basis sets"
+"Integrals on the Gaussian basis sets"
- Ao +- Common +- Gaussian_integrals +- Gaussian +- Linear_algebra +- Mo +- Operators +- Particles +- Perturbation +- Qcaml +- Simulation +- Top ++
Created: 2021-01-01 Fri 18:06
+ +"Linear algebra utilities of QCaml libraries."
+"Linear algebra utilities of QCaml libraries."
"Molecular orbitals"
+"Molecular orbitals"
Defines how the core electrons are frozen, for each atom.
type kind = +type kind = | All_electron | Small | Large @@ -272,8 +272,8 @@ Defines how the core electrons are frozen, for each atom.
val make : kind -> Particles.Nuclei.t -> t @@ -309,7 +309,7 @@ Defines how the core electrons are frozen, for each atom. -+let f = Frozen_core.(make Small nuclei) ;; val f : Frozen_core.t = [|0; 2; 2; 0|] @@ -319,8 +319,8 @@ val f : Frozen_core.t = [|0; 2; 2; 0|]
val num_elec : t -> int @@ -349,7 +349,7 @@ val f : Frozen_core.t = [|0; 2; 2; 0|] -+Frozen_core.num_elec f ;; - : int = 4 @@ -359,8 +359,8 @@ Frozen_core.num_mos f ;;
val pp : Format.formatter -> t -> unit @@ -372,7 +372,7 @@ Frozen_core.num_mos f ;;
"Parameteried operators, such as F12 and range-separation"
+"Parameteried operators, such as F12 and range-separation"
"Information relative to particles (electrons and nuclei)."
+"Information relative to particles (electrons and nuclei)."
Data structure which contains the number of α and β electrons.
type t +type t
open Common @@ -358,8 +358,8 @@ Data structure which contains the number of α and β electrons.
val charge : t -> Charge.t @@ -408,8 +408,8 @@ Data structure which contains the number of α and β electrons.
val pp : Format.formatter -> t -> unit @@ -418,24 +418,24 @@ Data structure which contains the number of α and β electrons.
Chemical elements.
type t = +type t = |X |H |He |Li|Be |B |C |N |O |F |Ne @@ -452,8 +452,8 @@ Chemical elements.
val of_string : string -> t @@ -514,7 +514,7 @@ Chemical elements. -+Element.of_string "Fe" ;; - : Element.t = Particles.Element.Fe @@ -533,8 +533,8 @@ Element.(to_string Fe);;
val covalent_radius : t -> Non_negative_float.t @@ -583,8 +583,8 @@ Element.(to_string Fe);;
val pp : Format.formatter -> t -> unit @@ -595,30 +595,30 @@ Element.(to_string Fe);;
Atomic mass, a non-negative float.
include module type of Common.Non_negative_float +include module type of Common.Non_negative_float
open Common +open Common type t = (Element.t * Coordinate.t) array@@ -626,12 +626,12 @@ Atomic mass, a non-negative float.
nuclei_lexer.mll
contains the description of the lexemes used in
@@ -684,8 +684,8 @@ rule read_all = parse
xyz_parser.mly
parses nuclear coordinates in xyz format.
@@ -804,8 +804,8 @@ an xyz_file
data structure.
val of_xyz_string : string -> t
@@ -864,8 +864,8 @@ an xyz_file
data structure.
val formula : t -> string
@@ -914,8 +914,8 @@ an xyz_file
data structure.
val pp : Format.formatter -> t -> unit
@@ -924,31 +924,31 @@ an xyz_file
data structure.
Z-matrix representation of nuclear coordinates.
type t +type t
val of_string : string -> t @@ -983,7 +983,7 @@ Z-matrix representation of nuclear coordinates. -+let zmt = Zmatrix.of_string " n n 1 nn @@ -1028,8 +1028,8 @@ H -0.568803 -0.793910 1.726048"
val pp : Format.formatter -> t -> unit @@ -1041,7 +1041,7 @@ H -0.568803 -0.793910 1.726048"
"Perturbation theory"
+"Perturbation theory"
type t @@ -262,8 +262,8 @@
val make : frozen_core:Mo.Frozen_core.t -> Mo.Basis.t -> t @@ -286,7 +286,7 @@ -+let mp2 = Mp2.make ~frozen_core:(Mo.Frozen_core.(make Small molecule)) mo_basis ;; @@ -295,8 +295,8 @@ let mp2 =
val energy : t -> float @@ -331,14 +331,14 @@ let mp2 = -+
val pp : Format.formatter -> t -> unit @@ -347,14 +347,14 @@ let mp2 =
"Main QCaml entry point"
+"Main QCaml entry point"
"Data describing a simulation (AOs, operators, nuclear coordinate,...)"
+"Data describing a simulation (AOs, operators, nuclear coordinate,...)"
Contains the state of the simulation.
open Common +open Common open Particles open Operators
type t +type t
val nuclei : t -> Nuclei.t @@ -327,8 +327,8 @@ Contains the state of the simulation.
val make : ?multiplicity:int -> ?charge:int -> @@ -348,8 +348,8 @@ Defaults:
val pp : Format.formatter -> t -> unit @@ -361,7 +361,7 @@ Defaults:
"Installs pretty printers for top-level."
+"Installs pretty printers for top-level."