Cleaned readme for auto-generation

This commit is contained in:
Anthony Scemama 2020-12-28 12:03:13 +01:00
parent ceca635621
commit 65d04a76f2
35 changed files with 1138 additions and 188 deletions

87
ao/README.org Normal file
View File

@ -0,0 +1,87 @@
#+TITLE: Atomic Orbitals
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis
#+begin_src ocaml :export output raw
"Atomic basis set"
#+end_src
#+RESULTS: synopsis
: Atomic basis set
* Dune files :noexport:
** Generate dune files
Use [C-c C-c] on the code below to create the output for the dune files
#+header: :noweb strip-export
#+header: :var name=(file-name-directory buffer-file-name)
#+header: :var dune="lib/dune"
#+header: :var dunetest="test/dune"
#+begin_src python :exports none :results output none
name = name.split('/')[-2]
synopsis = """
<<synopsis>>
"""
with open(dune,'w') as f:
f.write(f"""
(library
(name {name})
(public_name qcaml.{name})
(synopsis {synopsis} )
<<dependencies>>
<<noimplementation>>
<<c-files>>
)
<<lex-yacc>>
""")
with open(dunetest,'w') as f:
f.write(f"""
(library
(name test_{name})
(synopsis "Test for {name} library")
(libraries
alcotest
qcaml.{name}
)
)
""")
#+end_src
** Dependencies
#+name: dependencies
#+begin_src elisp
(libraries
qcaml.common
qcaml.particles
qcaml.gaussian
qcaml.gaussian_integrals
qcaml.operators
)
#+end_src
** Modules without implementation
#+name: noimplementation
#+begin_src elisp
#+end_src
** Extra C files
#+begin_src elisp
#+end_src
** Parser files
#+name: lex-yacc
#+begin_src elisp
#+end_src

View File

@ -1,13 +1,18 @@
; name = name of the supermodule that will wrap all source files as submodules
; public_name = name of the library for ocamlfind and opam
(library
(name ao)
(public_name qcaml.ao)
(synopsis
"Atomic basis set"
)
(libraries
qcaml.common
qcaml.particles
qcaml.gaussian
qcaml.gaussian_integrals
qcaml.operators
)
(synopsis "Atomic basis set."))
qcaml.common
qcaml.particles
qcaml.gaussian
qcaml.gaussian_integrals
qcaml.operators
)
)

View File

@ -1,10 +1,9 @@
(library
(name test_ao_basis)
(name test_ao)
(synopsis "Test for ao library")
(libraries
alcotest
qcaml.common
qcaml.linear_algebra
qcaml.gaussian_integrals
qcaml.ao
)
(synopsis "Tests for the AO basis"))
)

View File

@ -2,76 +2,90 @@
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
This directory contains many utility functions used by all the other directories.
#+name: synopsis
#+begin_src ocaml :export output raw
"Utility functions used by all the other directories."
#+end_src
#+RESULTS: synopsis
: Utility functions used by all the other directories.
* Dune files :noexport:
:PROPERTIES:
:dune: lib/dune
:dune-test: test/dune
:header-args: :noweb yes
:END:
** Headers
#+begin_src elisp :tangle (org-entry-get nil "dune" t)
** Generate dune files
Use [C-c C-c] on the code below to create the output for the dune files
#+header: :noweb strip-export
#+header: :var name=(file-name-directory buffer-file-name)
#+header: :var dune="lib/dune"
#+header: :var dunetest="test/dune"
#+begin_src python :exports none :results output none
name = name.split('/')[-2]
synopsis = """
<<synopsis>>
"""
with open(dune,'w') as f:
f.write(f"""
(library
#+end_src
(name {name})
(public_name qcaml.{name})
(synopsis {synopsis} )
<<dependencies>>
<<noimplementation>>
<<c-files>>
)
<<lex-yacc>>
""")
#+begin_src elisp :tangle (org-entry-get nil "dune-test" t)
with open(dunetest,'w') as f:
f.write(f"""
(library
#+end_src
** Library
*** General information
#+begin_src elisp :tangle (org-entry-get nil "dune" t)
(name common)
(public_name qcaml.common)
(synopsis "General utilities used in all QCaml libraries.")
#+end_src
#+begin_src elisp :tangle (org-entry-get nil "dune-test" t)
(name test_common)
(synopsis "Test for common library")
#+end_src
*** Dependencies
#+begin_src elisp :tangle (org-entry-get nil "dune" t)
(libraries
str
zarith
getopt
)
#+end_src
#+begin_src elisp :tangle (org-entry-get nil "dune-test" t)
(name test_{name})
(synopsis "Test for {name} library")
(libraries
alcotest
qcaml.common
qcaml.{name}
)
#+end_src
)
""")
#+end_src
*** Extra C files
** Dependencies
#+name: dependencies
#+begin_src elisp
(libraries
str
zarith
getopt
)
#+end_src
The ~util.c~ file contains small C snippets to add missing
functionalities to OCaml, such as support for the ~popcnt~ instruction.
** Modules without implementation
#+name: noimplementation
#+begin_src elisp
#+end_src
#+begin_src elisp :tangle (org-entry-get nil "dune" t)
** Extra C files
The ~util.c~ file contains small C snippets to add missing
functionalities to OCaml, such as support for the ~popcnt~ instruction.
#+name: c-files
#+begin_src elisp
(c_names
util
)
(c_flags (:standard)
-Ofast -march=native -fPIC
)
#+end_src
** Footers
#+begin_src elisp :tangle (org-entry-get nil "dune" t)
)
#+end_src
#+begin_src elisp :tangle (org-entry-get nil "dune-test" t)
)
#+end_src
** Parser
#+name: lex-yacc
#+begin_src elisp
#+end_src

View File

@ -1,20 +1,21 @@
(library
(library
(name common)
(public_name qcaml.common)
(synopsis "General utilities used in all QCaml libraries.")
(synopsis
"Utility functions used by all the other directories."
)
(libraries
str
zarith
getopt
)
(c_names
util
)
(c_flags (:standard)
-Ofast -march=native -fPIC
)
str
zarith
getopt
)
(c_names
util
)
(c_flags (:standard)
-Ofast -march=native -fPIC
)
)

View File

@ -1,11 +1,9 @@
(library
(library
(name test_common)
(synopsis "Test for common library")
(libraries
alcotest
qcaml.common
)
)

84
gaussian/README.org Normal file
View File

@ -0,0 +1,84 @@
#+TITLE: Gaussian
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis
#+begin_src ocaml :export output raw
"Gaussian basis sets"
#+end_src
#+RESULTS: synopsis
: Gaussian basis sets
* Dune files :noexport:
** Generate dune files
Use [C-c C-c] on the code below to create the output for the dune files
#+header: :noweb strip-export
#+header: :var name=(file-name-directory buffer-file-name)
#+header: :var dune="lib/dune"
#+header: :var dunetest="test/dune"
#+begin_src python :exports none :results output none
name = name.split('/')[-2]
synopsis = """
<<synopsis>>
"""
with open(dune,'w') as f:
f.write(f"""
(library
(name {name})
(public_name qcaml.{name})
(synopsis {synopsis} )
<<dependencies>>
<<noimplementation>>
<<c-files>>
)
<<lex-yacc>>
""")
with open(dunetest,'w') as f:
f.write(f"""
(library
(name test_{name})
(synopsis "Test for {name} library")
(libraries
alcotest
qcaml.{name}
)
)
""")
#+end_src
** Dependencies
#+name: dependencies
#+begin_src elisp
(libraries
qcaml.common
qcaml.particles
)
#+end_src
** Modules without implementation
#+name: noimplementation
#+begin_src elisp
#+end_src
** Extra C files
#+begin_src elisp
#+end_src
** Parser files
#+name: lex-yacc
#+begin_src elisp
#+end_src

View File

@ -1,11 +1,15 @@
; name = name of the supermodule that will wrap all source files as submodules
; public_name = name of the library for ocamlfind and opam
(library
(name gaussian)
(public_name qcaml.gaussian)
(synopsis
"Gaussian basis sets"
)
(libraries
str
qcaml.common
qcaml.particles
)
(synopsis "Gaussian basis sets."))
qcaml.common
qcaml.particles
)
)

View File

@ -1,8 +1,9 @@
(library
(name test_gaussian_basis)
(name test_gaussian)
(synopsis "Test for gaussian library")
(libraries
alcotest
qcaml.particles
qcaml.gaussian
)
(synopsis "Tests for Gaussian basis sets"))
)

View File

@ -0,0 +1,87 @@
#+TITLE: Gaussian integrals
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis
#+begin_src ocaml :export output raw
"Integrals on the Gaussian basis sets"
#+end_src
#+RESULTS: synopsis
: Integrals on the Gaussian basis sets
* Dune files :noexport:
** Generate dune files
Use [C-c C-c] on the code below to create the output for the dune files
#+header: :noweb strip-export
#+header: :var name=(file-name-directory buffer-file-name)
#+header: :var dune="lib/dune"
#+header: :var dunetest="test/dune"
#+begin_src python :exports none :results output none
name = name.split('/')[-2]
synopsis = """
<<synopsis>>
"""
with open(dune,'w') as f:
f.write(f"""
(library
(name {name})
(public_name qcaml.{name})
(synopsis {synopsis} )
<<dependencies>>
<<noimplementation>>
<<c-files>>
)
<<lex-yacc>>
""")
with open(dunetest,'w') as f:
f.write(f"""
(library
(name test_{name})
(synopsis "Test for {name} library")
(libraries
alcotest
qcaml.{name}
)
)
""")
#+end_src
** Dependencies
#+name: dependencies
#+begin_src elisp
(libraries
qcaml.common
qcaml.linear_algebra
qcaml.gaussian
qcaml.operators
)
#+end_src
** Modules without implementation
#+name: noimplementation
#+begin_src elisp
(modules_without_implementation matrix_on_basis)
#+end_src
** Extra C files
#+begin_src elisp
#+end_src
** Parser files
#+name: lex-yacc
#+begin_src elisp
#+end_src

View File

@ -1,14 +1,17 @@
; name = name of the supermodule that will wrap all source files as submodules
; public_name = name of the library for ocamlfind and opam
(library
(name gaussian_integrals)
(public_name qcaml.gaussian_integrals)
(synopsis
"Integrals on the Gaussian basis sets"
)
(libraries
str
qcaml.common
qcaml.linear_algebra
qcaml.gaussian
qcaml.operators
)
qcaml.common
qcaml.linear_algebra
qcaml.gaussian
qcaml.operators
)
(modules_without_implementation matrix_on_basis)
(synopsis "Integrals on the Gaussian basis sets."))
)

View File

@ -1,8 +1,9 @@
(library
(name test_gaussian_integrals)
(synopsis "Test for gaussian_integrals library")
(libraries
alcotest
qcaml.particles
qcaml.gaussian_integrals
)
(synopsis "Tests for integrals on the Gaussian basis sets"))
)

84
linear_algebra/README.org Normal file
View File

@ -0,0 +1,84 @@
#+TITLE: Linear Algebra
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis
#+begin_src ocaml :export output raw
"Linear algebra utilities of QCaml libraries."
#+end_src
#+RESULTS: synopsis
: Linear algebra utilities of QCaml libraries.
* Dune files :noexport:
** Generate dune files
Use [C-c C-c] on the code below to create the output for the dune files
#+header: :noweb strip-export
#+header: :var name=(file-name-directory buffer-file-name)
#+header: :var dune="lib/dune"
#+header: :var dunetest="test/dune"
#+begin_src python :exports none :results output none
name = name.split('/')[-2]
synopsis = """
<<synopsis>>
"""
with open(dune,'w') as f:
f.write(f"""
(library
(name {name})
(public_name qcaml.{name})
(synopsis {synopsis} )
<<dependencies>>
<<noimplementation>>
<<c-files>>
)
<<lex-yacc>>
""")
with open(dunetest,'w') as f:
f.write(f"""
(library
(name test_{name})
(synopsis "Test for {name} library")
(libraries
alcotest
qcaml.{name}
)
)
""")
#+end_src
** Dependencies
#+name: dependencies
#+begin_src elisp
(libraries
qcaml.common
lacaml
)
#+end_src
** Modules without implementation
#+name: noimplementation
#+begin_src elisp
#+end_src
** Extra C files
#+begin_src elisp
#+end_src
** Parser files
#+name: lex-yacc
#+begin_src elisp
#+end_src

View File

@ -1,10 +1,15 @@
; name = name of the supermodule that will wrap all source files as submodules
; public_name = name of the library for ocamlfind and opam
(library
(name linear_algebra)
(public_name qcaml.linear_algebra)
(synopsis
"Linear algebra utilities of QCaml libraries."
)
(libraries
qcaml.common
lacaml
)
(synopsis "Linear algebra utilities of QCaml libraries."))
qcaml.common
lacaml
)
)

View File

@ -1,7 +1,9 @@
(library
(name test_linear_algebra)
(synopsis "Test for linear_algebra library")
(libraries
alcotest
qcaml.linear_algebra
)
(synopsis "Tests for linear algebra"))
)

83
mo/README.org Normal file
View File

@ -0,0 +1,83 @@
#+TITLE: Molecular orbitals
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis
#+begin_src ocaml :export output raw
"Molecular orbitals"
#+end_src
#+RESULTS: synopsis
: Parameteried operators, such as F12 and range-separation
* Dune files :noexport:
** Generate dune files
Use [C-c C-c] on the code below to create the output for the dune files
#+header: :noweb strip-export
#+header: :var name=(file-name-directory buffer-file-name)
#+header: :var dune="lib/dune"
#+header: :var dunetest="test/dune"
#+begin_src python :exports none :results output none
name = name.split('/')[-2]
synopsis = """
<<synopsis>>
"""
with open(dune,'w') as f:
f.write(f"""
(library
(name {name})
(public_name qcaml.{name})
(synopsis {synopsis} )
<<dependencies>>
<<noimplementation>>
<<c-files>>
)
<<lex-yacc>>
""")
with open(dunetest,'w') as f:
f.write(f"""
(library
(name test_{name})
(synopsis "Test for {name} library")
(libraries
alcotest
qcaml.{name}
)
)
""")
#+end_src
** Dependencies
#+name: dependencies
#+begin_src elisp
(libraries
qcaml.simulation
)
#+end_src
** Modules without implementation
#+name: noimplementation
#+begin_src elisp
#+end_src
** Extra C files
#+begin_src elisp
#+end_src
** Parser files
#+name: lex-yacc
#+begin_src elisp
#+end_src

View File

@ -1,9 +1,14 @@
; name = name of the supermodule that will wrap all source files as submodules
; public_name = name of the library for ocamlfind and opam
(library
(name mo)
(public_name qcaml.mo)
(synopsis
"Molecular orbitals"
)
(libraries
qcaml.simulation
)
(synopsis "Molecular orbitals."))
qcaml.simulation
)
)

View File

@ -1,12 +1,9 @@
(library
(name test_mo_basis)
(name test_mo)
(synopsis "Test for mo library")
(libraries
alcotest
qcaml.mo
)
(synopsis "Tests for the MO basis"))
)

83
operators/README.org Normal file
View File

@ -0,0 +1,83 @@
#+TITLE: Operators
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis
#+begin_src ocaml :export output raw
"Parameteried operators, such as F12 and range-separation"
#+end_src
#+RESULTS: synopsis
: Parameteried operators, such as F12 and range-separation
* Dune files :noexport:
** Generate dune files
Use [C-c C-c] on the code below to create the output for the dune files
#+header: :noweb strip-export
#+header: :var name=(file-name-directory buffer-file-name)
#+header: :var dune="lib/dune"
#+header: :var dunetest="test/dune"
#+begin_src python :exports none :results output none
name = name.split('/')[-2]
synopsis = """
<<synopsis>>
"""
with open(dune,'w') as f:
f.write(f"""
(library
(name {name})
(public_name qcaml.{name})
(synopsis {synopsis} )
<<dependencies>>
<<noimplementation>>
<<c-files>>
)
<<lex-yacc>>
""")
with open(dunetest,'w') as f:
f.write(f"""
(library
(name test_{name})
(synopsis "Test for {name} library")
(libraries
alcotest
qcaml.{name}
)
)
""")
#+end_src
** Dependencies
#+name: dependencies
#+begin_src elisp
(libraries
qcaml.common
)
#+end_src
** Modules without implementation
#+name: noimplementation
#+begin_src elisp
#+end_src
** Extra C files
#+begin_src elisp
#+end_src
** Parser files
#+name: lex-yacc
#+begin_src elisp
#+end_src

View File

@ -1,10 +1,14 @@
; name = name of the supermodule that will wrap all source files as submodules
; public_name = name of the library for ocamlfind and opam
(library
(name operators)
(public_name qcaml.operators)
(synopsis
"Parameteried operators, such as F12 and range-separation"
)
(libraries
str
qcaml.common
)
(synopsis "Parameterized operators"))
qcaml.common
)
)

9
operators/test/dune Normal file
View File

@ -0,0 +1,9 @@
(library
(name test_operators)
(synopsis "Test for operators library")
(libraries
alcotest
qcaml.operators
)
)

94
particles/README.org Normal file
View File

@ -0,0 +1,94 @@
#+TITLE: Common
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis
#+begin_src ocaml :export output raw
"Information relative to particles (electrons and nuclei)."
#+end_src
#+RESULTS: synopsis
: Information relative to particles (electrons and nuclei).
* Dune files :noexport:
** Generate dune files
Use [C-c C-c] on the code below to create the output for the dune files
#+header: :noweb strip-export
#+header: :var name=(file-name-directory buffer-file-name)
#+header: :var dune="lib/dune"
#+header: :var dunetest="test/dune"
#+begin_src python :exports none :results output none
name = name.split('/')[-2]
synopsis = """
<<synopsis>>
"""
with open(dune,'w') as f:
f.write(f"""
(library
(name {name})
(public_name qcaml.{name})
(synopsis {synopsis} )
<<dependencies>>
<<noimplementation>>
<<c-files>>
)
<<lex-yacc>>
""")
with open(dunetest,'w') as f:
f.write(f"""
(library
(name test_{name})
(synopsis "Test for {name} library")
(libraries
alcotest
qcaml.{name}
)
)
""")
#+end_src
** Dependencies
#+name: dependencies
#+begin_src elisp
(libraries
qcaml.common
)
#+end_src
** Modules without implementation
#+name: noimplementation
#+begin_src elisp
(modules_without_implementation
xyz_ast
)
#+end_src
** Extra C files
#+begin_src elisp
#+end_src
** Parser files
#+name: lex-yacc
#+begin_src elisp
(ocamllex
(modules
nuclei_lexer
))
(ocamlyacc
(modules
xyz_parser
))
#+end_src

View File

@ -1,17 +1,23 @@
; name = name of the supermodule that will wrap all source files as submodules
; public_name = name of the library for ocamlfind and opam
(library
(name particles)
(public_name qcaml.particles)
(synopsis
"Information relative to particles (electrons and nuclei)."
)
(libraries
str
qcaml.common
)
(modules_without_implementation xyz_ast)
(synopsis "Defines nuclei and electrons."))
qcaml.common
)
(modules_without_implementation
xyz_ast
)
)
(ocamllex
(modules nuclei_lexer)
)
(modules
nuclei_lexer
))
(ocamlyacc
(modules xyz_parser)
)
(modules
xyz_parser
))

View File

@ -1,7 +1,9 @@
(library
(name test_particles)
(synopsis "Test for particles library")
(libraries
alcotest
qcaml.particles
)
(synopsis "Tests for particles"))
)

84
perturbation/README.org Normal file
View File

@ -0,0 +1,84 @@
#+TITLE: Perturbation
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis
#+begin_src ocaml :export output raw
"Perturbation theory"
#+end_src
#+RESULTS: synopsis
: Perturbation theory
* Dune files :noexport:
** Generate dune files
Use [C-c C-c] on the code below to create the output for the dune files
#+header: :noweb strip-export
#+header: :var name=(file-name-directory buffer-file-name)
#+header: :var dune="lib/dune"
#+header: :var dunetest="test/dune"
#+begin_src python :exports none :results output none
name = name.split('/')[-2]
synopsis = """
<<synopsis>>
"""
with open(dune,'w') as f:
f.write(f"""
(library
(name {name})
(public_name qcaml.{name})
(synopsis {synopsis} )
<<dependencies>>
<<noimplementation>>
<<c-files>>
)
<<lex-yacc>>
""")
with open(dunetest,'w') as f:
f.write(f"""
(library
(name test_{name})
(synopsis "Test for {name} library")
(libraries
alcotest
qcaml.{name}
)
)
""")
#+end_src
** Dependencies
#+name: dependencies
#+begin_src elisp
(libraries
qcaml.simulation
qcaml.mo
)
#+end_src
** Modules without implementation
#+name: noimplementation
#+begin_src elisp
#+end_src
** Extra C files
#+begin_src elisp
#+end_src
** Parser files
#+name: lex-yacc
#+begin_src elisp
#+end_src

View File

@ -1,10 +1,15 @@
; name = name of the supermodule that will wrap all source files as submodules
; public_name = name of the library for ocamlfind and opam
(library
(name perturbation)
(public_name qcaml.perturbation)
(synopsis
"Perturbation theory"
)
(libraries
qcaml.simulation
qcaml.mo
)
(synopsis "Perturbation theory."))
qcaml.simulation
qcaml.mo
)
)

View File

@ -1,13 +1,9 @@
(library
(name test_perturbation)
(synopsis "Test for perturbation library")
(libraries
alcotest
qcaml.mo
qcaml.perturbation
)
(synopsis "Tests for the perturbation"))
)

91
qcaml/README.org Normal file
View File

@ -0,0 +1,91 @@
#+TITLE: QCaml
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis
#+begin_src ocaml :export output raw
"Main QCaml entry point"
#+end_src
#+RESULTS: synopsis
: Main QCaml entry point
* Dune files :noexport:
** Generate dune files
Use [C-c C-c] on the code below to create the output for the dune files
#+header: :noweb strip-export
#+header: :var name=(file-name-directory buffer-file-name)
#+header: :var dune="lib/dune"
#+header: :var dunetest="test/dune"
#+begin_src python :exports none :results output none
name = name.split('/')[-2]
synopsis = """
<<synopsis>>
"""
with open(dune,'w') as f:
f.write(f"""
(library
(name {name})
(public_name qcaml.{name})
(synopsis {synopsis} )
<<dependencies>>
<<noimplementation>>
<<c-files>>
)
<<lex-yacc>>
""")
with open(dunetest,'w') as f:
f.write(f"""
(library
(name test_{name})
(synopsis "Test for {name} library")
(libraries
alcotest
qcaml.{name}
)
)
""")
#+end_src
** Dependencies
#+name: dependencies
#+begin_src elisp
(libraries
qcaml.ao
qcaml.common
qcaml.gaussian
qcaml.gaussian_integrals
qcaml.mo
qcaml.operators
qcaml.particles
qcaml.perturbation
qcaml.simulation
)
#+end_src
** Modules without implementation
#+name: noimplementation
#+begin_src elisp
#+end_src
** Extra C files
#+begin_src elisp
#+end_src
** Parser files
#+name: lex-yacc
#+begin_src elisp
#+end_src

View File

@ -1,17 +1,22 @@
; name = name of the supermodule that will wrap all source files as submodules
; public_name = name of the library for ocamlfind and opam
(library
(name qcaml)
(public_name qcaml)
(public_name qcaml.qcaml)
(synopsis
"Main QCaml entry point"
)
(libraries
qcaml.ao
qcaml.common
qcaml.gaussian
qcaml.gaussian_integrals
qcaml.mo
qcaml.operators
qcaml.particles
qcaml.perturbation
qcaml.simulation
)
(synopsis "Main QCaml entry point"))
qcaml.ao
qcaml.common
qcaml.gaussian
qcaml.gaussian_integrals
qcaml.mo
qcaml.operators
qcaml.particles
qcaml.perturbation
qcaml.simulation
)
)

9
qcaml/test/dune Normal file
View File

@ -0,0 +1,9 @@
(library
(name test_qcaml)
(synopsis "Test for qcaml library")
(libraries
alcotest
qcaml.qcaml
)
)

88
simulation/README.org Normal file
View File

@ -0,0 +1,88 @@
#+TITLE: Simulation
#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup
#+name: synopsis
#+begin_src ocaml :export output raw
"Data describing a simulation (AOs, operators, nuclear coordinate,...)"
#+end_src
#+RESULTS: synopsis
: Data describing a simulation (AOs, operators, nuclear coordinate,...)
* Dune files :noexport:
** Generate dune files
Use [C-c C-c] on the code below to create the output for the dune files
#+header: :noweb strip-export
#+header: :var name=(file-name-directory buffer-file-name)
#+header: :var dune="lib/dune"
#+header: :var dunetest="test/dune"
#+begin_src python :exports none :results output none
name = name.split('/')[-2]
synopsis = """
<<synopsis>>
"""
with open(dune,'w') as f:
f.write(f"""
(library
(name {name})
(public_name qcaml.{name})
(synopsis {synopsis} )
<<dependencies>>
<<noimplementation>>
<<c-files>>
)
<<lex-yacc>>
""")
with open(dunetest,'w') as f:
f.write(f"""
(library
(name test_{name})
(synopsis "Test for {name} library")
(libraries
alcotest
qcaml.{name}
)
)
""")
#+end_src
** Dependencies
#+name: dependencies
#+begin_src elisp
(libraries
qcaml.common
qcaml.particles
qcaml.gaussian
qcaml.gaussian_integrals
qcaml.operators
qcaml.ao
)
#+end_src
** Modules without implementation
#+name: noimplementation
#+begin_src elisp
#+end_src
** Extra C files
#+begin_src elisp
#+end_src
** Parser files
#+name: lex-yacc
#+begin_src elisp
#+end_src

View File

@ -1,14 +1,19 @@
; name = name of the supermodule that will wrap all source files as submodules
; public_name = name of the library for ocamlfind and opam
(library
(name simulation)
(public_name qcaml.simulation)
(synopsis
"Data describing a simulation (AOs, operators, nuclear coordinate,...)"
)
(libraries
qcaml.common
qcaml.particles
qcaml.gaussian
qcaml.gaussian_integrals
qcaml.operators
qcaml.ao
)
(synopsis "Contains data describing a simulation (AOs, operators, nuclear coordinate,...)"))
qcaml.common
qcaml.particles
qcaml.gaussian
qcaml.gaussian_integrals
qcaml.operators
qcaml.ao
)
)

9
simulation/test/dune Normal file
View File

@ -0,0 +1,9 @@
(library
(name test_simulation)
(synopsis "Test for simulation library")
(libraries
alcotest
qcaml.simulation
)
)

View File

@ -5,10 +5,10 @@
test_common
test_linear_algebra
test_particles
test_gaussian_basis
test_gaussian
test_gaussian_integrals
test_ao_basis
test_mo_basis
test_ao
test_mo
test_perturbation
))

View File

@ -8,11 +8,11 @@ let test_suites: unit Alcotest.test list = [
"Linear_algebra.Vector", Test_linear_algebra.Vector.tests;
"Particles.Nuclei", Test_particles.Nuclei.tests;
"Particles.Electrons", Test_particles.Electrons.tests;
"Gaussian_basis.General_basis", Test_gaussian_basis.General_basis.tests;
"Ao_basis.Ao_basis_gaussian", Test_ao_basis.Ao_basis_gaussian.tests;
"Ao_basis.Ao_basis", Test_ao_basis.Ao_basis.tests;
"Mo.Guess", Test_mo_basis.Guess.tests;
"Mo.Hartree_Fock", Test_mo_basis.Hf.tests;
"Gaussian_basis.General_basis", Test_gaussian.General_basis.tests;
"Ao_basis.Ao_basis_gaussian", Test_ao.Ao_basis_gaussian.tests;
"Ao_basis.Ao_basis", Test_ao.Ao_basis.tests;
"Mo.Guess", Test_mo.Guess.tests;
"Mo.Hartree_Fock", Test_mo.Hf.tests;
"Perturbation.Mp2", Test_perturbation.Mp2.tests;
]