From 6a8afb3a6348744b8628df4ced0f59ec39a8097a Mon Sep 17 00:00:00 2001 From: Alexander Heide Date: Wed, 19 Oct 2022 11:02:21 -0400 Subject: [PATCH 1/7] Initial packaging setup --- .github/workflows/lint.yaml | 34 ++++++++++++++++ .gitignore | 4 ++ LICENSE | 29 +++++++++++++ MANIFEST.in | 8 ++++ README.md | 9 ++++- __pycache__/__init__.cpython-39.pyc | Bin 147 -> 0 bytes __pycache__/algorithm.cpython-39.pyc | Bin 2541 -> 0 bytes __pycache__/cma.cpython-39.pyc | Bin 9903 -> 0 bytes __pycache__/directory_tree.cpython-39.pyc | Bin 3702 -> 0 bytes __pycache__/f_convert.cpython-39.pyc | Bin 2366 -> 0 bytes __pycache__/f_read.cpython-39.pyc | Bin 1134 -> 0 bytes __pycache__/force_constant.cpython-39.pyc | Bin 2657 -> 0 bytes __pycache__/g_matrix.cpython-39.pyc | Bin 1182 -> 0 bytes __pycache__/gf_method.cpython-39.pyc | Bin 2307 -> 0 bytes __pycache__/int2cart.cpython-39.pyc | Bin 3465 -> 0 bytes __pycache__/masses.cpython-39.pyc | Bin 50971 -> 0 bytes __pycache__/options.cpython-39.pyc | Bin 1924 -> 0 bytes __pycache__/reap.cpython-39.pyc | Bin 5947 -> 0 bytes __pycache__/rmsd.cpython-39.pyc | Bin 11178 -> 0 bytes __pycache__/s_vectors.cpython-39.pyc | Bin 13055 -> 0 bytes __pycache__/sapelo_template.cpython-39.pyc | Bin 2151 -> 0 bytes __pycache__/submit.cpython-39.pyc | Bin 1904 -> 0 bytes __pycache__/ted.cpython-39.pyc | Bin 6125 -> 0 bytes __pycache__/trans_disp.cpython-39.pyc | Bin 9585 -> 0 bytes __pycache__/vulcan_template.cpython-39.pyc | Bin 4177 -> 0 bytes __pycache__/zmat.cpython-39.pyc | Bin 9840 -> 0 bytes __init__.py => concordantmodes/__init__.py | 0 algorithm.py => concordantmodes/algorithm.py | 0 cma.py => concordantmodes/cma.py | 0 .../directory_tree.py | 0 f_convert.py => concordantmodes/f_convert.py | 0 f_read.py => concordantmodes/f_read.py | 0 .../force_constant.py | 0 g_matrix.py => concordantmodes/g_matrix.py | 0 gf_method.py => concordantmodes/gf_method.py | 0 int2cart.py => concordantmodes/int2cart.py | 0 masses.py => concordantmodes/masses.py | 0 options.py => concordantmodes/options.py | 0 reap.py => concordantmodes/reap.py | 0 rmsd.py => concordantmodes/rmsd.py | 0 s_vectors.py => concordantmodes/s_vectors.py | 0 .../sapelo_template.py | 0 submit.py => concordantmodes/submit.py | 0 ted.py => concordantmodes/ted.py | 0 test.py => concordantmodes/test.py | 0 .../trans_disp.py | 0 .../vulcan_template.py | 0 zmat.py => concordantmodes/zmat.py | 0 devtools/conda-envs/base.yaml | 8 ++++ .../1_H2O/molpro/CMA0/No_Spec_Red/fc.dat | 0 .../1_H2O/molpro/CMA0/No_Spec_Red/main.py | 0 .../molpro/CMA0/No_Spec_Red/template.dat | 0 .../1_H2O/molpro/CMA0/No_Spec_Red/zmat | 0 .../1_H2O/molpro/CMA0/Redundants/fc.dat | 0 .../1_H2O/molpro/CMA0/Redundants/main.py | 0 .../1_H2O/molpro/CMA0/Redundants/template.dat | 0 .../1_H2O/molpro/CMA0/Redundants/zmat | 0 .../1_H2O/molpro/CMA0/ZMAT/fc.dat | 0 .../1_H2O/molpro/CMA0/ZMAT/main.py | 0 .../1_H2O/molpro/CMA0/ZMAT/template.dat | 0 .../1_H2O/molpro/CMA0/ZMAT/zmat | 0 .../1_H2O/molpro/CMA1/main.py | 0 .../1_H2O/molpro/CMA1/nohup.out | 0 .../1_H2O/molpro/CMA1/template.dat | 0 .../1_H2O/molpro/CMA1/templateInit.dat | 0 {Example => examples}/1_H2O/molpro/CMA1/zmat | 0 .../1_H2O/molpro/CMA2/Redundants/fc.dat | 0 .../1_H2O/molpro/CMA2/Redundants/main.py | 0 .../1_H2O/molpro/CMA2/Redundants/template.dat | 0 .../1_H2O/molpro/CMA2/Redundants/zmat | 0 .../1_H2O/psi4/CMA0/No_Spec_red/fc.dat | 0 .../1_H2O/psi4/CMA0/No_Spec_red/main.py | 0 .../1_H2O/psi4/CMA0/No_Spec_red/template.dat | 0 .../1_H2O/psi4/CMA0/No_Spec_red/zmat | 0 .../1_H2O/psi4/CMA0/Redundants/fc.dat | 0 .../1_H2O/psi4/CMA0/Redundants/main.py | 0 .../1_H2O/psi4/CMA0/Redundants/template.dat | 0 .../1_H2O/psi4/CMA0/Redundants/zmat | 0 .../1_H2O/psi4/CMA0/ZMAT/fc.dat | 0 .../1_H2O/psi4/CMA0/ZMAT/main.py | 0 .../1_H2O/psi4/CMA0/ZMAT/template.dat | 0 .../1_H2O/psi4/CMA0/ZMAT/zmat | 0 {Example => examples}/1_H2O/psi4/CMA1/main.py | 0 .../1_H2O/psi4/CMA1/template.dat | 0 .../1_H2O/psi4/CMA1/templateInit.dat | 0 {Example => examples}/1_H2O/psi4/CMA1/zmat | 0 .../2_Methanol/molpro/CMA0/.template.dat.swp | Bin .../2_Methanol/molpro/CMA0/fc.dat | 0 .../2_Methanol/molpro/CMA0/main.py | 0 .../2_Methanol/molpro/CMA0/template.dat | 0 .../2_Methanol/molpro/CMA0/zmat | 0 .../molpro/CMA1/init_nosow/Disps/1/input.dat | 0 .../molpro/CMA1/init_nosow/Disps/1/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/10/input.dat | 0 .../CMA1/init_nosow/Disps/10/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/11/input.dat | 0 .../CMA1/init_nosow/Disps/11/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/12/input.dat | 0 .../CMA1/init_nosow/Disps/12/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/13/input.dat | 0 .../CMA1/init_nosow/Disps/13/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/14/input.dat | 0 .../CMA1/init_nosow/Disps/14/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/15/input.dat | 0 .../CMA1/init_nosow/Disps/15/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/16/input.dat | 0 .../CMA1/init_nosow/Disps/16/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/17/input.dat | 0 .../CMA1/init_nosow/Disps/17/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/18/input.dat | 0 .../CMA1/init_nosow/Disps/18/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/19/input.dat | 0 .../CMA1/init_nosow/Disps/19/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/2/input.dat | 0 .../molpro/CMA1/init_nosow/Disps/2/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/20/input.dat | 0 .../CMA1/init_nosow/Disps/20/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/21/input.dat | 0 .../CMA1/init_nosow/Disps/21/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/22/input.dat | 0 .../CMA1/init_nosow/Disps/22/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/23/input.dat | 0 .../CMA1/init_nosow/Disps/23/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/24/input.dat | 0 .../CMA1/init_nosow/Disps/24/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/25/input.dat | 0 .../CMA1/init_nosow/Disps/25/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/3/input.dat | 0 .../molpro/CMA1/init_nosow/Disps/3/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/4/input.dat | 0 .../molpro/CMA1/init_nosow/Disps/4/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/5/input.dat | 0 .../molpro/CMA1/init_nosow/Disps/5/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/6/input.dat | 0 .../molpro/CMA1/init_nosow/Disps/6/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/7/input.dat | 0 .../molpro/CMA1/init_nosow/Disps/7/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/8/input.dat | 0 .../molpro/CMA1/init_nosow/Disps/8/output.dat | 0 .../molpro/CMA1/init_nosow/Disps/9/input.dat | 0 .../molpro/CMA1/init_nosow/Disps/9/output.dat | 0 .../CMA1/init_nosow/DispsInit/1/input.dat | 0 .../CMA1/init_nosow/DispsInit/1/output.dat | 0 .../CMA1/init_nosow/DispsInit/10/input.dat | 0 .../CMA1/init_nosow/DispsInit/10/output.dat | 0 .../CMA1/init_nosow/DispsInit/100/input.dat | 0 .../CMA1/init_nosow/DispsInit/100/output.dat | 0 .../CMA1/init_nosow/DispsInit/101/input.dat | 0 .../CMA1/init_nosow/DispsInit/101/output.dat | 0 .../CMA1/init_nosow/DispsInit/102/input.dat | 0 .../CMA1/init_nosow/DispsInit/102/output.dat | 0 .../CMA1/init_nosow/DispsInit/103/input.dat | 0 .../CMA1/init_nosow/DispsInit/103/output.dat | 0 .../CMA1/init_nosow/DispsInit/104/input.dat | 0 .../CMA1/init_nosow/DispsInit/104/output.dat | 0 .../CMA1/init_nosow/DispsInit/105/input.dat | 0 .../CMA1/init_nosow/DispsInit/105/output.dat | 0 .../CMA1/init_nosow/DispsInit/106/input.dat | 0 .../CMA1/init_nosow/DispsInit/106/output.dat | 0 .../CMA1/init_nosow/DispsInit/107/input.dat | 0 .../CMA1/init_nosow/DispsInit/107/output.dat | 0 .../CMA1/init_nosow/DispsInit/108/input.dat | 0 .../CMA1/init_nosow/DispsInit/108/output.dat | 0 .../CMA1/init_nosow/DispsInit/109/input.dat | 0 .../CMA1/init_nosow/DispsInit/109/output.dat | 0 .../CMA1/init_nosow/DispsInit/11/input.dat | 0 .../CMA1/init_nosow/DispsInit/11/output.dat | 0 .../CMA1/init_nosow/DispsInit/110/input.dat | 0 .../CMA1/init_nosow/DispsInit/110/output.dat | 0 .../CMA1/init_nosow/DispsInit/111/input.dat | 0 .../CMA1/init_nosow/DispsInit/111/output.dat | 0 .../CMA1/init_nosow/DispsInit/112/input.dat | 0 .../CMA1/init_nosow/DispsInit/112/output.dat | 0 .../CMA1/init_nosow/DispsInit/113/input.dat | 0 .../CMA1/init_nosow/DispsInit/113/output.dat | 0 .../CMA1/init_nosow/DispsInit/114/input.dat | 0 .../CMA1/init_nosow/DispsInit/114/output.dat | 0 .../CMA1/init_nosow/DispsInit/115/input.dat | 0 .../CMA1/init_nosow/DispsInit/115/output.dat | 0 .../CMA1/init_nosow/DispsInit/116/input.dat | 0 .../CMA1/init_nosow/DispsInit/116/output.dat | 0 .../CMA1/init_nosow/DispsInit/117/input.dat | 0 .../CMA1/init_nosow/DispsInit/117/output.dat | 0 .../CMA1/init_nosow/DispsInit/118/input.dat | 0 .../CMA1/init_nosow/DispsInit/118/output.dat | 0 .../CMA1/init_nosow/DispsInit/119/input.dat | 0 .../CMA1/init_nosow/DispsInit/119/output.dat | 0 .../CMA1/init_nosow/DispsInit/12/input.dat | 0 .../CMA1/init_nosow/DispsInit/12/output.dat | 0 .../CMA1/init_nosow/DispsInit/120/input.dat | 0 .../CMA1/init_nosow/DispsInit/120/output.dat | 0 .../CMA1/init_nosow/DispsInit/121/input.dat | 0 .../CMA1/init_nosow/DispsInit/121/output.dat | 0 .../CMA1/init_nosow/DispsInit/122/input.dat | 0 .../CMA1/init_nosow/DispsInit/122/output.dat | 0 .../CMA1/init_nosow/DispsInit/123/input.dat | 0 .../CMA1/init_nosow/DispsInit/123/output.dat | 0 .../CMA1/init_nosow/DispsInit/124/input.dat | 0 .../CMA1/init_nosow/DispsInit/124/output.dat | 0 .../CMA1/init_nosow/DispsInit/125/input.dat | 0 .../CMA1/init_nosow/DispsInit/125/output.dat | 0 .../CMA1/init_nosow/DispsInit/126/input.dat | 0 .../CMA1/init_nosow/DispsInit/126/output.dat | 0 .../CMA1/init_nosow/DispsInit/127/input.dat | 0 .../CMA1/init_nosow/DispsInit/127/output.dat | 0 .../CMA1/init_nosow/DispsInit/128/input.dat | 0 .../CMA1/init_nosow/DispsInit/128/output.dat | 0 .../CMA1/init_nosow/DispsInit/129/input.dat | 0 .../CMA1/init_nosow/DispsInit/129/output.dat | 0 .../CMA1/init_nosow/DispsInit/13/input.dat | 0 .../CMA1/init_nosow/DispsInit/13/output.dat | 0 .../CMA1/init_nosow/DispsInit/130/input.dat | 0 .../CMA1/init_nosow/DispsInit/130/output.dat | 0 .../CMA1/init_nosow/DispsInit/131/input.dat | 0 .../CMA1/init_nosow/DispsInit/131/output.dat | 0 .../CMA1/init_nosow/DispsInit/132/input.dat | 0 .../CMA1/init_nosow/DispsInit/132/output.dat | 0 .../CMA1/init_nosow/DispsInit/133/input.dat | 0 .../CMA1/init_nosow/DispsInit/133/output.dat | 0 .../CMA1/init_nosow/DispsInit/134/input.dat | 0 .../CMA1/init_nosow/DispsInit/134/output.dat | 0 .../CMA1/init_nosow/DispsInit/135/input.dat | 0 .../CMA1/init_nosow/DispsInit/135/output.dat | 0 .../CMA1/init_nosow/DispsInit/136/input.dat | 0 .../CMA1/init_nosow/DispsInit/136/output.dat | 0 .../CMA1/init_nosow/DispsInit/137/input.dat | 0 .../CMA1/init_nosow/DispsInit/137/output.dat | 0 .../CMA1/init_nosow/DispsInit/138/input.dat | 0 .../CMA1/init_nosow/DispsInit/138/output.dat | 0 .../CMA1/init_nosow/DispsInit/139/input.dat | 0 .../CMA1/init_nosow/DispsInit/139/output.dat | 0 .../CMA1/init_nosow/DispsInit/14/input.dat | 0 .../CMA1/init_nosow/DispsInit/14/output.dat | 0 .../CMA1/init_nosow/DispsInit/140/input.dat | 0 .../CMA1/init_nosow/DispsInit/140/output.dat | 0 .../CMA1/init_nosow/DispsInit/141/input.dat | 0 .../CMA1/init_nosow/DispsInit/141/output.dat | 0 .../CMA1/init_nosow/DispsInit/142/input.dat | 0 .../CMA1/init_nosow/DispsInit/142/output.dat | 0 .../CMA1/init_nosow/DispsInit/143/input.dat | 0 .../CMA1/init_nosow/DispsInit/143/output.dat | 0 .../CMA1/init_nosow/DispsInit/144/input.dat | 0 .../CMA1/init_nosow/DispsInit/144/output.dat | 0 .../CMA1/init_nosow/DispsInit/145/input.dat | 0 .../CMA1/init_nosow/DispsInit/145/output.dat | 0 .../CMA1/init_nosow/DispsInit/146/input.dat | 0 .../CMA1/init_nosow/DispsInit/146/output.dat | 0 .../CMA1/init_nosow/DispsInit/147/input.dat | 0 .../CMA1/init_nosow/DispsInit/147/output.dat | 0 .../CMA1/init_nosow/DispsInit/148/input.dat | 0 .../CMA1/init_nosow/DispsInit/148/output.dat | 0 .../CMA1/init_nosow/DispsInit/149/input.dat | 0 .../CMA1/init_nosow/DispsInit/149/output.dat | 0 .../CMA1/init_nosow/DispsInit/15/input.dat | 0 .../CMA1/init_nosow/DispsInit/15/output.dat | 0 .../CMA1/init_nosow/DispsInit/150/input.dat | 0 .../CMA1/init_nosow/DispsInit/150/output.dat | 0 .../CMA1/init_nosow/DispsInit/151/input.dat | 0 .../CMA1/init_nosow/DispsInit/151/output.dat | 0 .../CMA1/init_nosow/DispsInit/152/input.dat | 0 .../CMA1/init_nosow/DispsInit/152/output.dat | 0 .../CMA1/init_nosow/DispsInit/153/input.dat | 0 .../CMA1/init_nosow/DispsInit/153/output.dat | 0 .../CMA1/init_nosow/DispsInit/154/input.dat | 0 .../CMA1/init_nosow/DispsInit/154/output.dat | 0 .../CMA1/init_nosow/DispsInit/155/input.dat | 0 .../CMA1/init_nosow/DispsInit/155/output.dat | 0 .../CMA1/init_nosow/DispsInit/156/input.dat | 0 .../CMA1/init_nosow/DispsInit/156/output.dat | 0 .../CMA1/init_nosow/DispsInit/157/input.dat | 0 .../CMA1/init_nosow/DispsInit/157/output.dat | 0 .../CMA1/init_nosow/DispsInit/16/input.dat | 0 .../CMA1/init_nosow/DispsInit/16/output.dat | 0 .../CMA1/init_nosow/DispsInit/17/input.dat | 0 .../CMA1/init_nosow/DispsInit/17/output.dat | 0 .../CMA1/init_nosow/DispsInit/18/input.dat | 0 .../CMA1/init_nosow/DispsInit/18/output.dat | 0 .../CMA1/init_nosow/DispsInit/19/input.dat | 0 .../CMA1/init_nosow/DispsInit/19/output.dat | 0 .../CMA1/init_nosow/DispsInit/2/input.dat | 0 .../CMA1/init_nosow/DispsInit/2/output.dat | 0 .../CMA1/init_nosow/DispsInit/20/input.dat | 0 .../CMA1/init_nosow/DispsInit/20/output.dat | 0 .../CMA1/init_nosow/DispsInit/21/input.dat | 0 .../CMA1/init_nosow/DispsInit/21/output.dat | 0 .../CMA1/init_nosow/DispsInit/22/input.dat | 0 .../CMA1/init_nosow/DispsInit/22/output.dat | 0 .../CMA1/init_nosow/DispsInit/23/input.dat | 0 .../CMA1/init_nosow/DispsInit/23/output.dat | 0 .../CMA1/init_nosow/DispsInit/24/input.dat | 0 .../CMA1/init_nosow/DispsInit/24/output.dat | 0 .../CMA1/init_nosow/DispsInit/25/input.dat | 0 .../CMA1/init_nosow/DispsInit/25/output.dat | 0 .../CMA1/init_nosow/DispsInit/26/input.dat | 0 .../CMA1/init_nosow/DispsInit/26/output.dat | 0 .../CMA1/init_nosow/DispsInit/27/input.dat | 0 .../CMA1/init_nosow/DispsInit/27/output.dat | 0 .../CMA1/init_nosow/DispsInit/28/input.dat | 0 .../CMA1/init_nosow/DispsInit/28/output.dat | 0 .../CMA1/init_nosow/DispsInit/29/input.dat | 0 .../CMA1/init_nosow/DispsInit/29/output.dat | 0 .../CMA1/init_nosow/DispsInit/3/input.dat | 0 .../CMA1/init_nosow/DispsInit/3/output.dat | 0 .../CMA1/init_nosow/DispsInit/30/input.dat | 0 .../CMA1/init_nosow/DispsInit/30/output.dat | 0 .../CMA1/init_nosow/DispsInit/31/input.dat | 0 .../CMA1/init_nosow/DispsInit/31/output.dat | 0 .../CMA1/init_nosow/DispsInit/32/input.dat | 0 .../CMA1/init_nosow/DispsInit/32/output.dat | 0 .../CMA1/init_nosow/DispsInit/33/input.dat | 0 .../CMA1/init_nosow/DispsInit/33/output.dat | 0 .../CMA1/init_nosow/DispsInit/34/input.dat | 0 .../CMA1/init_nosow/DispsInit/34/output.dat | 0 .../CMA1/init_nosow/DispsInit/35/input.dat | 0 .../CMA1/init_nosow/DispsInit/35/output.dat | 0 .../CMA1/init_nosow/DispsInit/36/input.dat | 0 .../CMA1/init_nosow/DispsInit/36/output.dat | 0 .../CMA1/init_nosow/DispsInit/37/input.dat | 0 .../CMA1/init_nosow/DispsInit/37/output.dat | 0 .../CMA1/init_nosow/DispsInit/38/input.dat | 0 .../CMA1/init_nosow/DispsInit/38/output.dat | 0 .../CMA1/init_nosow/DispsInit/39/input.dat | 0 .../CMA1/init_nosow/DispsInit/39/output.dat | 0 .../CMA1/init_nosow/DispsInit/4/input.dat | 0 .../CMA1/init_nosow/DispsInit/4/output.dat | 0 .../CMA1/init_nosow/DispsInit/40/input.dat | 0 .../CMA1/init_nosow/DispsInit/40/output.dat | 0 .../CMA1/init_nosow/DispsInit/41/input.dat | 0 .../CMA1/init_nosow/DispsInit/41/output.dat | 0 .../CMA1/init_nosow/DispsInit/42/input.dat | 0 .../CMA1/init_nosow/DispsInit/42/output.dat | 0 .../CMA1/init_nosow/DispsInit/43/input.dat | 0 .../CMA1/init_nosow/DispsInit/43/output.dat | 0 .../CMA1/init_nosow/DispsInit/44/input.dat | 0 .../CMA1/init_nosow/DispsInit/44/output.dat | 0 .../CMA1/init_nosow/DispsInit/45/input.dat | 0 .../CMA1/init_nosow/DispsInit/45/output.dat | 0 .../CMA1/init_nosow/DispsInit/46/input.dat | 0 .../CMA1/init_nosow/DispsInit/46/output.dat | 0 .../CMA1/init_nosow/DispsInit/47/input.dat | 0 .../CMA1/init_nosow/DispsInit/47/output.dat | 0 .../CMA1/init_nosow/DispsInit/48/input.dat | 0 .../CMA1/init_nosow/DispsInit/48/output.dat | 0 .../CMA1/init_nosow/DispsInit/49/input.dat | 0 .../CMA1/init_nosow/DispsInit/49/output.dat | 0 .../CMA1/init_nosow/DispsInit/5/input.dat | 0 .../CMA1/init_nosow/DispsInit/5/output.dat | 0 .../CMA1/init_nosow/DispsInit/50/input.dat | 0 .../CMA1/init_nosow/DispsInit/50/output.dat | 0 .../CMA1/init_nosow/DispsInit/51/input.dat | 0 .../CMA1/init_nosow/DispsInit/51/output.dat | 0 .../CMA1/init_nosow/DispsInit/52/input.dat | 0 .../CMA1/init_nosow/DispsInit/52/output.dat | 0 .../CMA1/init_nosow/DispsInit/53/input.dat | 0 .../CMA1/init_nosow/DispsInit/53/output.dat | 0 .../CMA1/init_nosow/DispsInit/54/input.dat | 0 .../CMA1/init_nosow/DispsInit/54/output.dat | 0 .../CMA1/init_nosow/DispsInit/55/input.dat | 0 .../CMA1/init_nosow/DispsInit/55/output.dat | 0 .../CMA1/init_nosow/DispsInit/56/input.dat | 0 .../CMA1/init_nosow/DispsInit/56/output.dat | 0 .../CMA1/init_nosow/DispsInit/57/input.dat | 0 .../CMA1/init_nosow/DispsInit/57/output.dat | 0 .../CMA1/init_nosow/DispsInit/58/input.dat | 0 .../CMA1/init_nosow/DispsInit/58/output.dat | 0 .../CMA1/init_nosow/DispsInit/59/input.dat | 0 .../CMA1/init_nosow/DispsInit/59/output.dat | 0 .../CMA1/init_nosow/DispsInit/6/input.dat | 0 .../CMA1/init_nosow/DispsInit/6/output.dat | 0 .../CMA1/init_nosow/DispsInit/60/input.dat | 0 .../CMA1/init_nosow/DispsInit/60/output.dat | 0 .../CMA1/init_nosow/DispsInit/61/input.dat | 0 .../CMA1/init_nosow/DispsInit/61/output.dat | 0 .../CMA1/init_nosow/DispsInit/62/input.dat | 0 .../CMA1/init_nosow/DispsInit/62/output.dat | 0 .../CMA1/init_nosow/DispsInit/63/input.dat | 0 .../CMA1/init_nosow/DispsInit/63/output.dat | 0 .../CMA1/init_nosow/DispsInit/64/input.dat | 0 .../CMA1/init_nosow/DispsInit/64/output.dat | 0 .../CMA1/init_nosow/DispsInit/65/input.dat | 0 .../CMA1/init_nosow/DispsInit/65/output.dat | 0 .../CMA1/init_nosow/DispsInit/66/input.dat | 0 .../CMA1/init_nosow/DispsInit/66/output.dat | 0 .../CMA1/init_nosow/DispsInit/67/input.dat | 0 .../CMA1/init_nosow/DispsInit/67/output.dat | 0 .../CMA1/init_nosow/DispsInit/68/input.dat | 0 .../CMA1/init_nosow/DispsInit/68/output.dat | 0 .../CMA1/init_nosow/DispsInit/69/input.dat | 0 .../CMA1/init_nosow/DispsInit/69/output.dat | 0 .../CMA1/init_nosow/DispsInit/7/input.dat | 0 .../CMA1/init_nosow/DispsInit/7/output.dat | 0 .../CMA1/init_nosow/DispsInit/70/input.dat | 0 .../CMA1/init_nosow/DispsInit/70/output.dat | 0 .../CMA1/init_nosow/DispsInit/71/input.dat | 0 .../CMA1/init_nosow/DispsInit/71/output.dat | 0 .../CMA1/init_nosow/DispsInit/72/input.dat | 0 .../CMA1/init_nosow/DispsInit/72/output.dat | 0 .../CMA1/init_nosow/DispsInit/73/input.dat | 0 .../CMA1/init_nosow/DispsInit/73/output.dat | 0 .../CMA1/init_nosow/DispsInit/74/input.dat | 0 .../CMA1/init_nosow/DispsInit/74/output.dat | 0 .../CMA1/init_nosow/DispsInit/75/input.dat | 0 .../CMA1/init_nosow/DispsInit/75/output.dat | 0 .../CMA1/init_nosow/DispsInit/76/input.dat | 0 .../CMA1/init_nosow/DispsInit/76/output.dat | 0 .../CMA1/init_nosow/DispsInit/77/input.dat | 0 .../CMA1/init_nosow/DispsInit/77/output.dat | 0 .../CMA1/init_nosow/DispsInit/78/input.dat | 0 .../CMA1/init_nosow/DispsInit/78/output.dat | 0 .../CMA1/init_nosow/DispsInit/79/input.dat | 0 .../CMA1/init_nosow/DispsInit/79/output.dat | 0 .../CMA1/init_nosow/DispsInit/8/input.dat | 0 .../CMA1/init_nosow/DispsInit/8/output.dat | 0 .../CMA1/init_nosow/DispsInit/80/input.dat | 0 .../CMA1/init_nosow/DispsInit/80/output.dat | 0 .../CMA1/init_nosow/DispsInit/81/input.dat | 0 .../CMA1/init_nosow/DispsInit/81/output.dat | 0 .../CMA1/init_nosow/DispsInit/82/input.dat | 0 .../CMA1/init_nosow/DispsInit/82/output.dat | 0 .../CMA1/init_nosow/DispsInit/83/input.dat | 0 .../CMA1/init_nosow/DispsInit/83/output.dat | 0 .../CMA1/init_nosow/DispsInit/84/input.dat | 0 .../CMA1/init_nosow/DispsInit/84/output.dat | 0 .../CMA1/init_nosow/DispsInit/85/input.dat | 0 .../CMA1/init_nosow/DispsInit/85/output.dat | 0 .../CMA1/init_nosow/DispsInit/86/input.dat | 0 .../CMA1/init_nosow/DispsInit/86/output.dat | 0 .../CMA1/init_nosow/DispsInit/87/input.dat | 0 .../CMA1/init_nosow/DispsInit/87/output.dat | 0 .../CMA1/init_nosow/DispsInit/88/input.dat | 0 .../CMA1/init_nosow/DispsInit/88/output.dat | 0 .../CMA1/init_nosow/DispsInit/89/input.dat | 0 .../CMA1/init_nosow/DispsInit/89/output.dat | 0 .../CMA1/init_nosow/DispsInit/9/input.dat | 0 .../CMA1/init_nosow/DispsInit/9/output.dat | 0 .../CMA1/init_nosow/DispsInit/90/input.dat | 0 .../CMA1/init_nosow/DispsInit/90/output.dat | 0 .../CMA1/init_nosow/DispsInit/91/input.dat | 0 .../CMA1/init_nosow/DispsInit/91/output.dat | 0 .../CMA1/init_nosow/DispsInit/92/input.dat | 0 .../CMA1/init_nosow/DispsInit/92/output.dat | 0 .../CMA1/init_nosow/DispsInit/93/input.dat | 0 .../CMA1/init_nosow/DispsInit/93/output.dat | 0 .../CMA1/init_nosow/DispsInit/94/input.dat | 0 .../CMA1/init_nosow/DispsInit/94/output.dat | 0 .../CMA1/init_nosow/DispsInit/95/input.dat | 0 .../CMA1/init_nosow/DispsInit/95/output.dat | 0 .../CMA1/init_nosow/DispsInit/96/input.dat | 0 .../CMA1/init_nosow/DispsInit/96/output.dat | 0 .../CMA1/init_nosow/DispsInit/97/input.dat | 0 .../CMA1/init_nosow/DispsInit/97/output.dat | 0 .../CMA1/init_nosow/DispsInit/98/input.dat | 0 .../CMA1/init_nosow/DispsInit/98/output.dat | 0 .../CMA1/init_nosow/DispsInit/99/input.dat | 0 .../CMA1/init_nosow/DispsInit/99/output.dat | 0 .../2_Methanol/molpro/CMA1/init_nosow/main.py | 0 .../molpro/CMA1/init_nosow/template.dat | 0 .../molpro/CMA1/init_nosow/templateInit.dat | 0 .../2_Methanol/molpro/CMA1/init_nosow/zmat | 0 .../2_Methanol/molpro/CMA1/standard/main.py | 0 .../molpro/CMA1/standard/template.dat | 0 .../molpro/CMA1/standard/templateInit.dat | 0 .../2_Methanol/molpro/CMA1/standard/zmat | 0 .../2_Methanol/psi4/CMA0/fc.dat | 0 .../2_Methanol/psi4/CMA0/main.py | 0 .../2_Methanol/psi4/CMA0/template.dat | 0 .../2_Methanol/psi4/CMA0/zmat | 0 .../2_Methanol/psi4/CMA1/energies/main.py | 0 .../psi4/CMA1/energies/template.dat | 0 .../psi4/CMA1/energies/templateInit.dat | 0 .../2_Methanol/psi4/CMA1/energies/zmat | 0 .../2_Methanol/psi4/CMA1/gradients/main.py | 0 .../psi4/CMA1/gradients/template.dat | 0 .../psi4/CMA1/gradients/templateInit.dat | 0 .../2_Methanol/psi4/CMA1/gradients/zmat | 0 options.pyc | Bin 2425 -> 0 bytes pyroject.toml | 38 ++++++++++++++++++ setup.py | 3 ++ 478 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/lint.yaml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 MANIFEST.in delete mode 100644 __pycache__/__init__.cpython-39.pyc delete mode 100644 __pycache__/algorithm.cpython-39.pyc delete mode 100644 __pycache__/cma.cpython-39.pyc delete mode 100644 __pycache__/directory_tree.cpython-39.pyc delete mode 100644 __pycache__/f_convert.cpython-39.pyc delete mode 100644 __pycache__/f_read.cpython-39.pyc delete mode 100644 __pycache__/force_constant.cpython-39.pyc delete mode 100644 __pycache__/g_matrix.cpython-39.pyc delete mode 100644 __pycache__/gf_method.cpython-39.pyc delete mode 100644 __pycache__/int2cart.cpython-39.pyc delete mode 100644 __pycache__/masses.cpython-39.pyc delete mode 100644 __pycache__/options.cpython-39.pyc delete mode 100644 __pycache__/reap.cpython-39.pyc delete mode 100644 __pycache__/rmsd.cpython-39.pyc delete mode 100644 __pycache__/s_vectors.cpython-39.pyc delete mode 100644 __pycache__/sapelo_template.cpython-39.pyc delete mode 100644 __pycache__/submit.cpython-39.pyc delete mode 100644 __pycache__/ted.cpython-39.pyc delete mode 100644 __pycache__/trans_disp.cpython-39.pyc delete mode 100644 __pycache__/vulcan_template.cpython-39.pyc delete mode 100644 __pycache__/zmat.cpython-39.pyc rename __init__.py => concordantmodes/__init__.py (100%) rename algorithm.py => concordantmodes/algorithm.py (100%) rename cma.py => concordantmodes/cma.py (100%) rename directory_tree.py => concordantmodes/directory_tree.py (100%) rename f_convert.py => concordantmodes/f_convert.py (100%) rename f_read.py => concordantmodes/f_read.py (100%) rename force_constant.py => concordantmodes/force_constant.py (100%) rename g_matrix.py => concordantmodes/g_matrix.py (100%) rename gf_method.py => concordantmodes/gf_method.py (100%) rename int2cart.py => concordantmodes/int2cart.py (100%) rename masses.py => concordantmodes/masses.py (100%) rename options.py => concordantmodes/options.py (100%) rename reap.py => concordantmodes/reap.py (100%) rename rmsd.py => concordantmodes/rmsd.py (100%) rename s_vectors.py => concordantmodes/s_vectors.py (100%) rename sapelo_template.py => concordantmodes/sapelo_template.py (100%) rename submit.py => concordantmodes/submit.py (100%) rename ted.py => concordantmodes/ted.py (100%) rename test.py => concordantmodes/test.py (100%) rename trans_disp.py => concordantmodes/trans_disp.py (100%) rename vulcan_template.py => concordantmodes/vulcan_template.py (100%) rename zmat.py => concordantmodes/zmat.py (100%) create mode 100644 devtools/conda-envs/base.yaml rename {Example => examples}/1_H2O/molpro/CMA0/No_Spec_Red/fc.dat (100%) rename {Example => examples}/1_H2O/molpro/CMA0/No_Spec_Red/main.py (100%) rename {Example => examples}/1_H2O/molpro/CMA0/No_Spec_Red/template.dat (100%) rename {Example => examples}/1_H2O/molpro/CMA0/No_Spec_Red/zmat (100%) rename {Example => examples}/1_H2O/molpro/CMA0/Redundants/fc.dat (100%) rename {Example => examples}/1_H2O/molpro/CMA0/Redundants/main.py (100%) rename {Example => examples}/1_H2O/molpro/CMA0/Redundants/template.dat (100%) rename {Example => examples}/1_H2O/molpro/CMA0/Redundants/zmat (100%) rename {Example => examples}/1_H2O/molpro/CMA0/ZMAT/fc.dat (100%) rename {Example => examples}/1_H2O/molpro/CMA0/ZMAT/main.py (100%) rename {Example => examples}/1_H2O/molpro/CMA0/ZMAT/template.dat (100%) rename {Example => examples}/1_H2O/molpro/CMA0/ZMAT/zmat (100%) rename {Example => examples}/1_H2O/molpro/CMA1/main.py (100%) rename {Example => examples}/1_H2O/molpro/CMA1/nohup.out (100%) rename {Example => examples}/1_H2O/molpro/CMA1/template.dat (100%) rename {Example => examples}/1_H2O/molpro/CMA1/templateInit.dat (100%) rename {Example => examples}/1_H2O/molpro/CMA1/zmat (100%) rename {Example => examples}/1_H2O/molpro/CMA2/Redundants/fc.dat (100%) rename {Example => examples}/1_H2O/molpro/CMA2/Redundants/main.py (100%) rename {Example => examples}/1_H2O/molpro/CMA2/Redundants/template.dat (100%) rename {Example => examples}/1_H2O/molpro/CMA2/Redundants/zmat (100%) rename {Example => examples}/1_H2O/psi4/CMA0/No_Spec_red/fc.dat (100%) rename {Example => examples}/1_H2O/psi4/CMA0/No_Spec_red/main.py (100%) rename {Example => examples}/1_H2O/psi4/CMA0/No_Spec_red/template.dat (100%) rename {Example => examples}/1_H2O/psi4/CMA0/No_Spec_red/zmat (100%) rename {Example => examples}/1_H2O/psi4/CMA0/Redundants/fc.dat (100%) rename {Example => examples}/1_H2O/psi4/CMA0/Redundants/main.py (100%) rename {Example => examples}/1_H2O/psi4/CMA0/Redundants/template.dat (100%) rename {Example => examples}/1_H2O/psi4/CMA0/Redundants/zmat (100%) rename {Example => examples}/1_H2O/psi4/CMA0/ZMAT/fc.dat (100%) rename {Example => examples}/1_H2O/psi4/CMA0/ZMAT/main.py (100%) rename {Example => examples}/1_H2O/psi4/CMA0/ZMAT/template.dat (100%) rename {Example => examples}/1_H2O/psi4/CMA0/ZMAT/zmat (100%) rename {Example => examples}/1_H2O/psi4/CMA1/main.py (100%) rename {Example => examples}/1_H2O/psi4/CMA1/template.dat (100%) rename {Example => examples}/1_H2O/psi4/CMA1/templateInit.dat (100%) rename {Example => examples}/1_H2O/psi4/CMA1/zmat (100%) rename {Example => examples}/2_Methanol/molpro/CMA0/.template.dat.swp (100%) rename {Example => examples}/2_Methanol/molpro/CMA0/fc.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA0/main.py (100%) rename {Example => examples}/2_Methanol/molpro/CMA0/template.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA0/zmat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/1/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/1/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/10/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/10/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/11/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/11/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/12/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/12/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/13/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/13/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/14/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/14/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/15/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/15/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/16/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/16/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/17/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/17/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/18/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/18/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/19/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/19/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/2/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/2/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/20/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/20/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/21/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/21/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/22/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/22/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/23/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/23/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/24/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/24/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/25/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/25/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/3/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/3/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/4/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/4/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/5/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/5/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/6/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/6/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/7/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/7/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/8/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/8/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/9/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/Disps/9/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/1/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/1/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/10/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/10/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/100/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/100/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/101/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/101/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/102/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/102/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/103/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/103/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/104/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/104/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/105/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/105/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/106/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/106/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/107/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/107/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/108/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/108/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/109/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/109/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/11/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/11/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/110/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/110/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/111/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/111/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/112/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/112/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/113/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/113/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/114/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/114/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/115/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/115/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/116/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/116/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/117/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/117/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/118/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/118/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/119/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/119/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/12/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/12/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/120/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/120/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/121/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/121/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/122/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/122/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/123/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/123/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/124/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/124/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/125/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/125/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/126/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/126/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/127/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/127/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/128/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/128/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/129/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/129/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/13/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/13/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/130/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/130/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/131/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/131/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/132/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/132/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/133/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/133/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/134/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/134/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/135/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/135/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/136/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/136/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/137/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/137/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/138/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/138/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/139/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/139/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/14/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/14/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/140/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/140/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/141/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/141/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/142/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/142/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/143/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/143/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/144/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/144/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/145/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/145/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/146/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/146/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/147/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/147/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/148/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/148/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/149/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/149/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/15/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/15/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/150/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/150/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/151/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/151/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/152/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/152/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/153/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/153/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/154/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/154/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/155/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/155/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/156/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/156/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/157/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/157/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/16/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/16/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/17/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/17/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/18/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/18/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/19/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/19/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/2/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/2/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/20/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/20/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/21/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/21/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/22/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/22/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/23/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/23/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/24/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/24/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/25/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/25/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/26/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/26/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/27/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/27/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/28/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/28/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/29/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/29/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/3/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/3/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/30/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/30/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/31/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/31/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/32/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/32/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/33/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/33/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/34/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/34/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/35/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/35/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/36/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/36/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/37/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/37/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/38/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/38/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/39/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/39/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/4/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/4/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/40/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/40/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/41/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/41/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/42/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/42/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/43/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/43/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/44/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/44/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/45/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/45/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/46/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/46/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/47/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/47/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/48/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/48/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/49/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/49/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/5/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/5/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/50/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/50/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/51/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/51/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/52/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/52/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/53/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/53/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/54/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/54/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/55/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/55/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/56/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/56/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/57/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/57/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/58/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/58/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/59/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/59/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/6/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/6/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/60/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/60/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/61/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/61/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/62/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/62/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/63/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/63/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/64/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/64/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/65/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/65/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/66/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/66/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/67/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/67/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/68/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/68/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/69/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/69/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/7/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/7/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/70/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/70/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/71/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/71/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/72/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/72/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/73/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/73/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/74/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/74/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/75/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/75/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/76/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/76/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/77/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/77/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/78/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/78/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/79/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/79/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/8/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/8/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/80/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/80/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/81/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/81/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/82/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/82/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/83/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/83/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/84/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/84/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/85/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/85/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/86/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/86/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/87/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/87/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/88/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/88/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/89/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/89/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/9/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/9/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/90/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/90/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/91/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/91/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/92/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/92/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/93/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/93/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/94/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/94/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/95/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/95/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/96/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/96/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/97/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/97/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/98/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/98/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/99/input.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/DispsInit/99/output.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/main.py (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/template.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/templateInit.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/init_nosow/zmat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/standard/main.py (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/standard/template.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/standard/templateInit.dat (100%) rename {Example => examples}/2_Methanol/molpro/CMA1/standard/zmat (100%) rename {Example => examples}/2_Methanol/psi4/CMA0/fc.dat (100%) rename {Example => examples}/2_Methanol/psi4/CMA0/main.py (100%) rename {Example => examples}/2_Methanol/psi4/CMA0/template.dat (100%) rename {Example => examples}/2_Methanol/psi4/CMA0/zmat (100%) rename {Example => examples}/2_Methanol/psi4/CMA1/energies/main.py (100%) rename {Example => examples}/2_Methanol/psi4/CMA1/energies/template.dat (100%) rename {Example => examples}/2_Methanol/psi4/CMA1/energies/templateInit.dat (100%) rename {Example => examples}/2_Methanol/psi4/CMA1/energies/zmat (100%) rename {Example => examples}/2_Methanol/psi4/CMA1/gradients/main.py (100%) rename {Example => examples}/2_Methanol/psi4/CMA1/gradients/template.dat (100%) rename {Example => examples}/2_Methanol/psi4/CMA1/gradients/templateInit.dat (100%) rename {Example => examples}/2_Methanol/psi4/CMA1/gradients/zmat (100%) delete mode 100644 options.pyc create mode 100644 pyroject.toml create mode 100644 setup.py diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml new file mode 100644 index 00000000..e4158f90 --- /dev/null +++ b/.github/workflows/lint.yaml @@ -0,0 +1,34 @@ +name: Lint + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [3.9] + + steps: + - uses: actions/checkout@v2 + + - name: Python Setup + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + + - name: Create Environment + shell: bash + run: | + python -m pip install --upgrade pip + python -m pip install black==22.10 # pinned because the style changes with version + - name: Lint + shell: bash + run: black conordantmodes --check + diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..1b7be129 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +concordantmodes.egg-info/ +concordantmodes/__pycache__/ +concordantmodes.*pyc + diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000..75ea27d6 --- /dev/null +++ b/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2022, Mitchel Lahm, Nate Kitzmiller, and Wesley D. Allen +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..91423a9b --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,8 @@ +recursive-include concordantmodes *.py +recursive-include examples + +include pyproject.toml +include README.md +include LICENSE +include MANIFEST.in + diff --git a/README.md b/README.md index c641d696..a8753f59 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,16 @@ # ConcordantModes + +

+Code style: black +<\p> + This method allows the user to compute an approximate higher level of theory hessian from a lower level of theory hessian, using a linearly scaling number of single point energies at the higher level of theory. [Gradient cost findif as opposed to a full hessian cost] So, one could compute frequencies at a CCSD(T)/cc-pVDZ level of theory, then compute the diagonal, lower level normal coordinate force constants at a CCSD(T)/cc-pVTZ level of theory, to get a very good approximation to CCSD(T)/cc-pVTZ frequencies. As of right now, the user must be on the Vulcan cluster. -// Dependencies // +## Installation User must have at least: Python version 3.5.4 @@ -18,7 +23,7 @@ conda create --name CMA python=3.9 sympy numpy scipy If you need to install anaconda, consult this website: https://www.anaconda.com/products/individual -// Quickstart Guide // +## Quickstart Guide An example is provided in the "Example" directory. diff --git a/__pycache__/__init__.cpython-39.pyc b/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index c4bd940bcfb051365082a95656f0c6b5ae623f74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147 zcmYe~<>g`kf@w>-5<&E15P=LBfgA@QE@lA|DGb33nv8xc8Hzx{2;!H8enx(7s(x8% zPI6+NeqK(tv6;Dnp?-R1Nk(asesX?Za(+=tVqQsZeoAVwetdjpUS>&ryk0@&Ee;!? PSZPkG9mvGbK+FIDyJ;dG diff --git a/__pycache__/algorithm.cpython-39.pyc b/__pycache__/algorithm.cpython-39.pyc deleted file mode 100644 index 0dd5e636f87df7af3e8a5b828f69b43e3cef9895..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2541 zcmZuz-H#kK61V$ndOovkLLhvcTIe1!oU|Ks2#AzJAW#qw>`S6Uj5xJ=+Mb!-?Qzf8 zJxO-dBcWS#(xE%SpRjpE;_uUF(fJ*ZLzLtylW<&DQK0Iks2zPkyM%nvc%-rhngmnmCEa)Qaeww6Idx!UAg7RokB>R zITdoVdLVU~Eq3myO3$+r?o?V7DyuO$Q^IXX6qAY6QejtxdSQFmF1%P|x-RlnndxL} z$*nrCggn@;PkFI>h^GL4g3nwBX?Vj@*7%^j@j#I&2opaV`Zkco)Yw+FAkU5M6so9; ztV}2QFtCA<cBPlcrZ-$dF~`MLgo`{ikVjuv5vAK2IM~B_G_*{s*RE$85s| z-*`3lcLKt`BCgo&T=PuaiJCITPf1-xe-Mn;=f(`vW? z@F#)(khA6W^(H{V z`$tdcTxb+lbX+`a2wbMpM%iK^l^Dib*a!v(l&15eDNjfKz17_E!t&!k0H?2#J$&Xb zAe71h-X7n_7Xh$6Kp2A?puZkGgO1|#9Cj2L!p~v%AEXeWRk(oB`NX@yP%O((({@v!vdAI3b=%VL}K>v6E*}v;6 z=X)Y1nai8@(YkdnT^uOXE>Dj&9qx7b>9+rHjB7L)7s|N2TEC>{i4!Hs#hl?w)>8`` zuBEPw4JsrW9nwtb8!%+!Y;39$mz3^NH!#@)X?+aZHm=CJn(AzByGls4n$ry<^=nR# zu1QysZ8tAvrqWr3`^$P*BQmF^mh<7>rEGQu{2FGuY_@@`CH#@)_bflPe2I~)&TK$y z+BWu+N->qjhNwXDk$xRBN8O8Rlq&h~kB49Yg@52P?}0EJ0800p_v)MCgQS^6-+^bkZ~xKJ9~0wKOyV1+EoG@wNDx8y~i82;di|I)PCC4Fo?;d4U0{ fB{r(Y$1<;-?w=XA@tv)kC}>!L7Nu$cApG9}{e5mB diff --git a/__pycache__/cma.cpython-39.pyc b/__pycache__/cma.cpython-39.pyc deleted file mode 100644 index 1216bb4a42db71573321a74a5b281758771bdaef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9903 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 YU!&jX&Lt!~UukagH;oze9lo*u0u-lchyVZp diff --git a/__pycache__/directory_tree.cpython-39.pyc b/__pycache__/directory_tree.cpython-39.pyc deleted file mode 100644 index 914fb96d18538795adb125722550c64b9b402bce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3702 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 diff --git a/__pycache__/f_read.cpython-39.pyc b/__pycache__/f_read.cpython-39.pyc deleted file mode 100644 index d0930cce464d68225902e71b93a4f7bad30ca331..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1134 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 IXbfZeKW6kHm;e9( diff --git a/__pycache__/gf_method.cpython-39.pyc b/__pycache__/gf_method.cpython-39.pyc deleted file mode 100644 index bb601b46705d44c37bbcf5d17c44c5f5d74a1d59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2307 zcmb6bO>Y}TbY}K5j-9WD#-(YyG#qMF*-48)jVjuRd{D_rr6y2e6;_*_wX@E8*O^_X zjccFMYeg;`xW(ecU*W)kdI z`%tTmaJorK)=RKLHcC`#VZ0B68HKSIH2|Bb3(wEO1W32#Wg>jywv)$!@KNJzV?f-6 zo;m;mHy+7`+-Qk zEQ|uDrNo>par~s!?qq?pw(8VHu-6GbODF!gWBz`DE$A)`OK5_ucmL-w2+ahVYi0NHOcP+QH{;9iCU0>SVl;f}Y3K{{In&0wDw$#%gstXhR6BYt= zTZ|yUgCyV#5m5l}9TDR&{C=ylleB`$ekbz1xDrRZH$V7rexcF`vz^X%#ZO{C5!{Qj zR>Fg{(x|(`T`0E?r0u$49A>UN28Plp0EC*aecj2^?Jb{5`xGTl8oGyFW%UQhZ$^5g zNjW{l%&|;6*0BQ*=%z71$Pl__W*yr=nFIO==@IBT%y%;f8lyN4U=N!4U2>b8v5`~S z1>lUqYyo9lq{fF-pPtNscK>w!aae1j#|CtOv*QY5eNF9s4)i9)uh|sWxPHjKn(d>< z=in^R0i)z0+&~?^L%56a!~#iwo+ng&p94f)PCDd>iW^|T_)iN{3m}_bd&7pg%fQAy z*sxx+p}pb7&_;CD21a!fH)I4Nrz&E^4B$g7&1sCMKRnBCsXSxWFwZK7r+IFk2hK>Q zHD|c}9QUP|UC7=BUh$9~(q-~RwQrrQRP0$7$bj;ZUHyoOsef`&qi5YFaS`|zhZIVW zV$Rge5#4)%`0;FZN$p~>2YH4$(!6{NuId{r&%?@Bc#e-AJ3Wi%XTaJF;RWbpz)@Cl zg&A^4DLG<$HIN=h9L9-bhffY50!1ke2SlY4tuP)a}f8Oy6Mv!jp0du zaYx{}@8+s*y%R;{7%mWdyxp~`?z|#&yh~kc(`_RO71!X|K|4562hGvbQg`6Yb&aQs zH+lc1GRYR5uKjdzVZMB$-tS(o{EyZhtyG>ae);}<+OJf)SGJPOi=34>5RC(8IZUC< zZ+EchJJ+^WmP@N8TFZ&R&)l|vLRxxP;Pa!3O-);K?@Jc9rN)y?m7bcmimd9A)Pu0G zBMpG=zSOEN2zlG7Dov7Br7i*wDju+s2&%fkDywRg)RT4)LrL@Y14*|e-2{A3WYWS1 zAPSyH9djZL;l+(WY7q*DEw3R>FU90ZqaG#jSdD^3X(*?qSx*E$U|0#ICOUDg0Oix& z1}AoT@;ENp0_&N$gy158ng)9!X;&ImsCWBf4i#yr%I6SFplBJu1?cG`0ECTcvvisk z=@cEKdH60BO110kcFAx6?h8v~WA%v(@8uc(oD9S aaBh^Te_L1Dw}*azgeN*xuYyWZUi%B;7B7+j diff --git a/__pycache__/int2cart.cpython-39.pyc b/__pycache__/int2cart.cpython-39.pyc deleted file mode 100644 index fc2e46152e83ee106bbbe84e632eed1cd451ff32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3465 zcmcgu&2JmW6`z^?Bqh=k>&Q}~IDwlKVLvSQ(=MPIE^HuGQ7b^5UKTMHE6#>qdby-# zm#!r&fdVoLv}ghM)I%;}(2IfoMRV;T@VU1Fh5LK6ONo@-^i~q{cHVn4^FHUjiCV2D z!|$(u`(yNn4rBiyWbtPMxr34a2tYE)Qx+k=`2*JVUScQP?{e*?NfxF3mmD~u!zj<=yhrTCp8#?PBi{vxjkrKaF2yqzSR@W# zyAl*Q(vv=LS2ko5Ur(;cReXKfg6OvP_p;&#cOzBwEF3of(VV2*#mGMbD0#_3Rti8~ zNhR(+7H+Z))k68 z8TkFU2+8iQ(Bk?H?WEB`oGKSQ1O9bu=h0{w?>w2Ly(rts(#Jpi$;}(z-{~jCqshTe zZE>>lk`QdKe~IQiS34-E`E8 z()>0i^Y#5NzBBv%7th?EbscRV52Hf+Pa+k{q*v%hRE&lpEj1Qss~DwSOWS#zey&zY z?-qeG3seKB_UGa}V7U*#xQl;>AFscr(vnNpv6MEM*n9w|kt_R1yf1kl4n-tH!3K!P z0ADzn4Qvc&;7YN@wkRE~zC|mgkoKP`a-#6e3jc&l=dt~qt7~R=!%&;FPdZzOwRAUe z!fQPDoVUrQ2rJ~ToUT%M-!(XP%yq!pE%sBQ&S|YmFYIYwX3~3yO_61%mr60?QwtWX zA@{5qXs~BdqXnr~*wkLK+5TGlEcK^iy|%e?!cX`;_FO!?H+5=H`d>oxskXoFiRB zt4}PebxSm8(j@$`wYc8=A6fRCAKrsDTa-6O@3$eXRcD&0 z^6cT})G>U=fkkEO7PHtcdu|>6{q>!oyt8yx8Fu3{{r<=Om-0xanQI(;eLL;jI6>Ec{-`LU9B!5XITTuh(V=(r+&+l|CgDbO^ zz)NCx-_s%+YbR1FI?@hR*<8EPcpPW4DtT1=g7(2ElOd{Q5*?&*uB|lAR2v*^p*RPv zDC?&&N-t_@oGTKp?QEom!KI3GzEg}7?K}U=!Fn-Lc{0k*Wd!Y-v{#*~ z?cNCWU;OIl+KP|jph2~}D&Ed7`i?pM{jwU@=JNTN^UEFURt$4UQ@wxWYvT_T&; z)f#EYm3E3paS;U`bf6;wn;f8d5;#wPgFX`2N52NuBX~aodTdaFK+zAO(26!NI@qz4M6;|>BV?OW!H*M!(tZ{ftQ zr|9jV{oy1nl5u*3?s^DsHwvUcJ|5+R_y55f2hBPSaeUxl6v(L!SP z=u*vpbaQDK-F|@y>1N_UuLaT(n$~?{j#;K_Sj0p9#;f5R2S%MnzzVmHl{l{xFGN*1 zNFW|~^f64#O)Vk93%ibOBIB$`iX#mpQ6};vgIDObsc!=W4RiDHG%PMUfIJ*w)WM=a zQOd#%?XzH+&HrCVsGHCUmR`okfcbpU8-{s{7S^_Y7xSQDs?wWm{Q&F)+=8r diff --git a/__pycache__/masses.cpython-39.pyc b/__pycache__/masses.cpython-39.pyc deleted file mode 100644 index 3327ab4b27895fb72a6e413e625cfbf83972a4a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50971 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 diff --git a/__pycache__/reap.cpython-39.pyc b/__pycache__/reap.cpython-39.pyc deleted file mode 100644 index 1193660fd47938bee6018aca47692358ad1ac3b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5947 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 diff --git a/__pycache__/rmsd.cpython-39.pyc b/__pycache__/rmsd.cpython-39.pyc deleted file mode 100644 index d1ba579859b12ef511f35eb7d521d28095b60a75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11178 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 diff --git a/__pycache__/s_vectors.cpython-39.pyc b/__pycache__/s_vectors.cpython-39.pyc deleted file mode 100644 index f72d45a28aa105cd0221edd8fcc1fc5f2f9c69bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13055 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 Gs`Y>IJ)Y(O diff --git a/__pycache__/sapelo_template.cpython-39.pyc b/__pycache__/sapelo_template.cpython-39.pyc deleted file mode 100644 index 7f79c2c50dee502dca235c97402783b772765334..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2151 zcmbVNPjA~c6c;5~cD1y{{-Nsz3|yT8^9ET-SEOh$Z%vw_NztT1><*YO0xi;s97$A3 zDs4RP)SmYVdf0$n_I-BJZP;laVZ#o4l={knzBvHf_8#XoEQ~tYMR)zR_|1 z0Hm?sL4_5ir|@y&C?)YxsHf}A1m-SuiD6)+nW0J1(4r=_UK&HYQa)@@2h=u;OMQ~D zm=9Qz#YC~`Z5Klu97ht5qnP1IE)|xF3nsBTW>}Wum}g2VmSGu+C{raSY=Ff@(=_aa zaSyuu28Nk6GXjX5nlqbPS0Kh$dIrtV#Ds3q#*g;Q{0V`atr|1)1)3QX;I10fdDR3- z2Y7=vPb_grTfjG|0RddtpMIP0I1?OuDPG<0KYBdqW6w)@E}0keqcRB1d(V^Dk}!Y(S(qvW7@Q^(P1q;$t7RDNPyA7o`tsPF zQzN43{?_K;-VQ`J;UiD0=-uOK$OR>-S_-C(AMz2_5;agpgo?D+y%AC2@e%;zHa=La z<4>RFEN7kb3PPSrB}kO2-fpT`T+^L$%4Bc-oX(1EO zz}~?w79>59{{nd#6L74QRp>U};m>eF(lcD@#5~1}K$u#j1`e}amQXD<_qc8lwi7ZP zbmN6-Ttg=;>20h%*jo78#(ON`;;aO~afVDvE@}W3!71Ikac6A}{5{EIiXMraL)dXwe{Phh2+8JV5hgL$28T3QZX6%RUK&AwK92K7w!g~XaS8x&!02?>XZKcLtiDCKlkn7zK+f7bD40{<~ zEhS5o>+0>p|D(Pagx{Wbh$<|o zu%f}s^~=>=8>so++-VfHWbwFY!tD!nEQ=;w1VNf7rDm}LiheP~2k`mpYyX%h%s>iqvsF@}ZLF*9IImlm0nF-R!Jr1woWXDhRaG@?#hbYaMf@XsKOF?x&?&P&z^y%@0@c2miIf34n|*wK~T6sP~|t!D?#uy zC-Hox83dGvK_ET^P2wXxyfIc%+M>|jJJ6*bTFACrx5~Lrt7yPUz|NUzR;-j{w|b+6 lc22;xZWQLD&BEcM3FKjk`Y#hj>&wc;uk>!s?W~{`>mU0DQknn& diff --git a/__pycache__/submit.cpython-39.pyc b/__pycache__/submit.cpython-39.pyc deleted file mode 100644 index 5e287a10127d2bc4b33c04d276dbf1510b5c64d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1904 zcmZux&2QT_6ep<<%Z{8lZc`_1F?hfZb+N`926V$PtOb^SU5ua~hY1-3MPzL`vLusq zw;IyPy%y*nutN;&(%b%w9e3t!*s0f@h5}pmNXJ74jDj8?$@lSlkB={EHX8^=`s%mn zSKxlvi;KgC#a;M?CKOSeqF^=S0Gl-lh?%Xxf|;avVh1)x4-mDe{R&Z=ISVUrDSm=_ z&O5Mz25+%)4)cO#v0h#r1QvJU7uSI>q+Nh{Ovx(*=8eI?rVf~LmHT9NJV|71f#`Z@ zUfcKve$fI_;u3|ZBtXFy=;1++s5(tV5vGZds+Jcr$urTjlr32LoI9Y!T_A4}_h5Q| zyFbb&tp8$`#!=SK(v#0_fBwm*{b3?Uv*Ui8XK~JHl*vg>ndl1xYQK1?yf93%M22A< ztO%V*gk3z}TEX65pT=09oR2ol+Nr_+C!CaMjK-Ma6N~>M$=IqeP@58n3+sHmwksl? zQXnM5vTDgY13>Io{aP~3v zX)`60oyx;#h^o50B0HzMOSAwjxwp2rzz68NgQ@|#4eEB_lx}uVwQ(WxE!rBAa>F3q zhUopWetNa^wReM~ZE*ZyY}OYLHCX(yYL@k~xrZvBUaB_FbF^9dR(G z>3r|oe8!K&&2fHwbSvUKdI^ggNAzazoi4V(m613}Xy8nvIF@sAYuqE;hZEie@=kXI zt_8V%O7C$$aK&*Xpj zqnSI;p5DLpMc@dHBd8tT8yq|uJP2x!pA81U%xe%qH=*76_3mUQWcQeL<9t%2OtNmy zyU(K}WwaZ3B4w;dvSIJKdAX_nE}#h^ZB0EtPqK5R8n84F{>?qB50c75#OdE>l!!X*xR zj&8A8G+|+=8es_icb01255ws!N>?Y`RI^5WAqw4Mxd}zLWxX=}*~6aA^-izGceTil lCLe0@ktXI6-TZjWVrk_5&!qCcS|RybKOv#rgI)9a)<4xb=N|w7 diff --git a/__pycache__/ted.cpython-39.pyc b/__pycache__/ted.cpython-39.pyc deleted file mode 100644 index 75b47afb62219d8d53e863fd440934e49522b43f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6125 zcmc&&(Qh0_8Q+=R+uK{;C9Y#^$4T3PAiz?wn+6(Wp{Ru#R4F)B;s<(Cv^w9e?Q`~a z?b$sizU(1{%Nq~=6C8;bBpwRlfrmaJgm|dL`wE^=ks?8PK}|`a=J(C+oj38FaAc0mFc&FhQAJK zdQCQ(aVtdAX*Xioy60?#cRksp5yeMG;}yKoODH^LO`W@}uDjgT-_q)aTU9f&ddV%j z7J5v#;@YUo?ig&SrTWU!Yu!KC0?*1uD-un=5k=x|%lE~qCpwYmiZ~QovK7Q4?8Ioq z4PSVHC)am{+lpY^YKKgXl#VqSwgqH83EM?845f=j#h&n5>t3+a@H?JRD{6Ytym)<0 zNYCvAZX<}*@S_2dXh_T-xBOPub6#%+iRNetM+xr%1-3lLQ-fwmjV`R4(^Dhz{55GpT9#4#Op_HOwONnpiLv(+*uPT8KS&erq?i9H$kuV#hfH6%hrI#!S|& z0{QtqYo)3BiHC>gE#XxrzX2j)JtNWORIDAq_)VS|4|var^#cPG>y^-7N{pnmX+D7a zCp9ds3^}}xm1qYQS}a=n0~MrLGGBh^LhqcN@?a~~-7r>*P5Jd#fdt|)wb~s&Zf*Iy zDO-_bOj^TwoK@*H?zrLIARUVvtG?%`(3mr&MIr{=9HqvZ^tMx5!e1G?ULkNDV%BQ| z5~%DbShIrmUaHGZFaaVWtTb*ggPmbEn`9R2mI*NMpMZ+IL#|O!{SHJ7u=W^A0C8U1 zV|R3UJ!UT7V@yM>$NY%5$EG2n`VG~Ok%K<{N6ak&WTh`LW;MVJi1*lQ+U@zC8N(3( zoh4>sOlpbgn$sFlKj!Btw$KZ>AiJ;S7^`r>buyOrPJHQ@{j;Wyz@^8lrnk_GSL16ofRxI4mi$oB{^W7T! z)Yq^mx@RvHb@7GB^5)dj*m%Nz1a!kR@+;WGL&gaHiC68twfzw zM}^y5Sp}M$!f+LpavBr@xV4kAM#@@G1(ciw`y$@xITRWKi8Fp^lx9Fta8>c+?2Ct{ zUS-|06kvs@Zqh#NKUEN8cvYZ%1(eGU@af0yqfkKD^vW?$$|^jb>sbg0{Xk2sL?<^- zYpyY^Jz!V0p1C~>UWq6Q8mb55s%l(WN!=_+(M(o0dLTQiWbrY_EG)6kL;JL*M*g5M zaQNg)^}OA)lL`gzroL%lTWR}D{xq@Ou{&H* zrdx%Tl?TkN9cXb$$(b>Ig&?0)&TH-%ZAaIb(WuTP3LL@*I92eD(qN3#pg6gPGZ_y1 zR`AE7#kuVkZE#r6<*#z9s2r!`zN(DGr@$fGM)*3D8ir1Rb0RvK z+%R+soKt9+7=mx6L2+^o=W=|_z%OETgw!CAsPqs-v!$LVa9*mQlMb0(bw)hY0={qx;+8r&0X7SH_L7m|$bZXsW>Rfj5G_&s8+rRJ63;NfIiM!^r%iZ$*#cMCU9QC@j{?%bu zT*BR;bbs+1ZconQT%9tzJNwmupC{w!7FDlicORsAwmNajf|U945}C+0Q+DU+o0R}(0dMp+p@>Vmg}c;6lvGpe z4C{`dGL{wG-Q<$?ve{cmN3X+Ab811qv#^M7uMVgE~6Q#Su;*iTrKamxP}i%PbN z7sE0?G{%lum2u(0V|ahIUL!i4WcAkF>e)%JcKawnsELAKx6lMK*S7EeXOLD9@Wz(CLvUVY{u|xEL1PIK4 zJp+p54k}wqA9qtcBzq>0&cTO0<`P#bha6L>R1Q-)ILRT=EvZUXs*;VB?{xzM0wgVM zZGf6L-94}WzIpxn^?TzMi#Y|qzxai_`r8i_KTDbhyEYG*38sytGd$*j*5W_j5?y^>?8nV+c@gIO%|nNl&C&9b;#EXVS= zXIOz1akp8CP2iqolWYq29GhlmaL=+LbSx3n#&_E zY@pGRXN#h#ZrJeG9M`Egco;co#p8<(koH{eJh&ctei-nvAuQ!Y&G*EpeXr()q04t@ z{I$RjBi^k=Vg~+}$1&5im73dXdCYn3{%ecQ({+z~i?X5n&Uc*dgHNAadqA}O>Ghla z9=aI1?}UwZr?um(0tw*vUiJ2h(_olfBieC*32$sKI$_|n0-8tY)Va6W_59k7K*tXo zQNs(xfL-o6eh@hfU~rEOrqO>9^ajv=%?-UpO8L(HVb`^w?aAl$pw$YV0<-1e;KkTS zhyD@G4K?p9&1hGz&uotwxY~|9V<=iP(8>-xkKWjvOH6x0{Du1>Wm^v zORjO6)P`)cd4_5ClsJphnK;LP8t0HY8|Oi1nF3+gSDw+j zOLXql%X5iMQdW(ER$@RNwvudE-IB{SF?R97lF3vc!)l$@G%Hn+<0WRj6`-;`c=w6k^86(0MnSvUYJ^dub`yiTPIRD}7=SlSGC_wHO_*fG zps4XA)9_gXLYruh-c9n5_r_MWULt1WZbz6|$8-8o!_P4(M#?2dRjcC2QdIONuu*zINY6lR+8)9`= zX>?0~z^+ysej}<@sp;@l5M{zr<-efLsI&bvl}zF?aP3Z~s%B|Wy+*<`_|bGomV_KF z;Z@)9}PNn2R-L&e8bJ(zp*b;@wP;pYQ2wD6h_s)tnZy zoIhBI^+WLPtD7?z`8mk_nqt-lF!`zf73yDL=7zSf^XZWpo-}J& zmg!?{_TSQ~@~-@wFYXeXntsHL%}d--4@H!q(+RM(vnA)@x>wt9c7iUKTvDM4UE*wbJ5Ql;mdaO!VoTHqyofFn?fv^4 zmWkAFNe227{9B0$b7RfpGsI%}m?)p1r0%YUiQaa%lPosFPB-$Z_k}7`2_>Jy<+6DwG4 zV(So!HYtkgXoT#FNNC`s@ck|ffwuQMoCiFyIzo{qR$JW5Iev+HwrPN3LsAJPaNSFAc|Jf47H?AtB$UHZL8Ow8>XS2 zdv2NYx{cBcIa1Ek>g3e4YU6(q{~YoqmFj7tOcQqv>f89QLJ{Y3EBO+JA27Vsj`CHwVn3MmGB3H;n}CXkuUZYfDig{;@i*7I;Cl21QjgwUr41sYpyAL>FU7xz`ZE%dz6ED0PYXf&d( zv0?Obr#v$^lwLm0?WLoFd zd@sg8@|}pm$lH{B)(Kb@fYr3bDlQxvJ=)ic`x^hp5k$_UXk|8xeJ%J&Tx7-!Iz$@gNECEtrtmVBq7eD(;+B!k6$gG(D^Ad|Bx%Ex7L_$=F(NrPK)X@DN2u>|zc z;;?KEWqtHY0zGZ>mnnL4{Z;x`W7y5TBzBVT#n?%{7h@;+PQz~g2zC?wIZcQ;8Jo-L zoEA=*)51&6N%FmTPLl7%bCP_g&FS2cIZgKGG%4m}ZkEzH!G0CC{P=r1|B`c(d@r7p znv*AKeib|0GqP{ia4E`< z>u<{h(j0qTzxb;k_KUyz;g?5~Ts}fsMgeleXQtq61BFe;hGFjMidBa@=3!0;YD*Pz@Bk_c+I$*$QwbMu@ z$ms>Pv_;t$l_pbzXTvJ_An2s5w&?uB55HF_Qt=TkczedU-f#Fx0ma*Cx$Fq#+v35_ z@drDJ&Vq>F1q9`3X?U69Fwe^b%?*%BR@j4NHS_NhRND4UT(@xDPE@y&hi%8;ufYUw z9?cNLokYbEKSorXG8lm3&i%rtfSxu$7fTiWE;nm(Gdz)jcWXdU!}I=c41=p%C^ZKeFW z9G&cAQv0S{Nh_$k6GJ;rfLJ4!%iu>=9bLkbBT2-nAP*5NGgxGLtUp#hS69j!zlLZ0 zH$lpVctyNI1%C*VsC*pIM<~95vq~t8Moe<|%y1B?kdK&@q5 zC^*n)X#EsQ549QPydsvej)g3a*^d>zis~39oj&--L})xXDezh?2+QW!`1v0Z%O^yf zl#un#-vhZ#)1ZMV>LRT1-I=k8h{aZ;(GPy){>k7HGx-b&9ER0-I-n|Y^cb-z=OoHB zxD7OvSukn!J|E47$}$n0EwPzbaMxoCM^$O=+Egye@GQ0tWqSBLi)RL$a%33h;@kie zQy?(}CNXO`G{M;gXd>6YRnDJ?&8L_|qIp7YQ zuLBp#fj>5p%SYOQj?1781b9+P;3v{%42LMn%s77tCluaH0XYi>s|usBIKVd}@g=z# zg3LW+6CK`i&X6jXPQ|#QZNJIasB(j@v`81lHw~M1_#7h z@7aJ%KrDb9z--}+ME*b%=QtH-r7U)0)%_525UzIzzb6##sN)Pu3f_6zXi?ZgcoHaD z5OfiJs5=N<_#X1uHsSG?QH}s5w4J6cQBcF}vyvA9L50;F=e85TZOodEaozLLi3`iLEj#5)?EZ_Rw*>Y5kL{16bzNxpr}DOtaS7G^|x-OL%D_A z?KF2AxjSj@4sy4a(rkHLI)z3gu@pLzq?ETn`p%D`f|m-Cl)z9pc^lb8hfF3WrV%0L zL(c`dOsU@o`G5pb#3k}l5tP)cBTnamVKE|rS=6LU=ug^ZejNc!^(1LhTH7RMBxrD* z4p!|^t+@m8D0oN}osN3}{Ua7UQ|&2*5ZRL11JDiBa{}*+E8h zUb+NnPZ9fu(0J*-g5@U`r&y9lc8<@jQ#G5EnbS883Di1fA+(wVs)=l(x!dE2{Q=7B zgxJyTqlE3_1QUWx%F|(s{@-B}+wjZ5#i{pi*i63(lVjHDM`$ZJj>-HfnC#Sqw4oCH zXd9rsSWL5M1u>f(i4)G|d0}E9W&u+I6k8gi6ymJ+h46ZqSa>ik#2KDW`dB!*>n8FF;95x-`%|;b{`6}4PxU6hBFZk zmJa1LZ)w*g=l$|-?g{n^=WncaZHLqAHdzoZ0*~vCx7_YblBJtGmeC2Uf^!|06)GYuE9zFolo%bs za8#?-D7a8DLVR>FzS7CW-zKT1=_>_8vvCqCh`$Y!(N{yC{VHa0xdl zdqPTu(9ROS`o0jO@s~`pdO$B(7y(5a2dIK-StV`cEHDTPl{M*rDNj)}+jrYuwVLFr zRfM~{aCB6YLbbZtbzA)>nQD~hs)6Uujd)m(6p0%$D{&GGs{cgLn zBall9BE5w7hmVgWxH>g05MF@tI2z7hO22jBB(Z#l$Zrv$ksKMFLs=SPV&9X^5sRPu-Hik9-ta9h$0Gby!{q?wc{6mVm=bsO86$h2UFs%x!m%atW%cjYEd zdIBySxN_kDGhFy5{03b)!9Rdu2Hxt!u|voV3vJFoQ0wN#Dqa6J6r1(wYDEF-lcm-ZO%6%#y zNh6rOCK2W95@0GYmq_Vxj&?{H<|R)d=fsytV1?S6el+&ofcmK7q2-pb-R>BuQt|wd z*%j9x#FmJ8Wq<5e{E!DBM-^XKy3mppjbM%(4{*e2dNE+m#vJ46vu{pp3q0aXF?W1# zB_An?^r#?EqoURKLpm+2RSutmhvmIU@tEs#)>THBQhX4d162p6hsQRMz_6R+R<~%u zmfExg{=z?l`!2n%_Z&}WL-o=!s_db|y{GZ0g|>Xp@+rX{j{ydnN3@=h7|PLMA}yif z7CPkCQ&rWFZgWcqvBE1F(Z@asU7KkjNWFw=4#PdzcUUK(CG10fAAvXs${lZjMt<*l2F<==_gdh_>kHe6mX`0fZ7B0_Z4acCS22iJj{al3A|%?It> zd$q>y3BL#xjIal8<2FGd17acLcrQ`YCy->-09=o)A#IN$jpgAh5X)9dRZO z39*YfW{;1pPyu7n3_YH9s>VGN9F?ZO>tlir zfCR)EHb)ao9T8bfwf6&`a@20_n5_?*X6Mdsy;?JFY-9^b{@z$q18Vo3{TsR;a6J(` zKZI-v_bdBvZJL`KI#^}9m9?wds2F#QW93wIOpSy>T#@kb`ls z{^Z&w^?O3OEk8IA!G$2%v1$cp*{^q-)ec%t4UT6qMWU(R!^~m&?Rx8G)tF)Z8KJ(l zQ>%8W#~4l@eT*tLx?63uY9FFc-WEr#hd`GUl1W5wLjtNZ^!Cl_?$!c&0y!Q1)>gC8 z>dd33kkipqGv<^zVc4QFnNf528R&HW?VZjE?Ni9<=nbRYY46mHdHrXwza(i^jgu5H z=yU?db2zcR_yU--V;+1uVSBsQY%d5(A&cnQIkOvjo;W<>Kt*uGJ{qRS&Z8{r(F_N> zRtQ%!oWz=@K^BV)O#@KfPdL2$#+gBTe66YbBfQ=pVKq*q=9(SHjb?egIM7#T1D!3_LKSjtMpL@JxgeY69>P@SZYJ5g77SB z5vJDAnb`5|q{4*(mp`Z2V||~F(Gt7z@XB4kXVySPGd-5{D@&*{vHE9Pdy+^KtkWn> za|b@R8m;Q~%#gdy_O=$lb&ufu69Jy4@U3)OYwXnOyXa2cFdEes0_vl;b#3OvzhNu=2et}vmyHn0YxYopBHv~y+DwoZ97JW)6xW++ z3a;^^QIeG$G+FtrTq?)~xh&`4r^w}B%Fn2BxjudM{=$<{%Q#pvu*jMii)U~A27Czy z;srO7`;sF@x$opJ#j{p!t>o!*uu3n84&KfHqtA=6FfZu@b(E)}_c;uhc;HI%^o0{j zz;bIv5$1^M-83WBG?SMNjL)0q9@M(&O35^dZy%9VPVye?bMCEr972g%!O68oF H&*%RD=xvHK diff --git a/__pycache__/zmat.cpython-39.pyc b/__pycache__/zmat.cpython-39.pyc deleted file mode 100644 index 766d9c7fcff75d16881e86e12b9af0062b68df89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9840 zcmc&)U2GfKb)G+xLyD3pSrSS8nU;T6vMkB+|9WMwz3c9F0k0RZovq8*VJOZ>qD+zE z%*eHbAy7napMsQqYmq!iMNuU0iy$brKv5KV3W6X7@-Qfh1)3Kx3ba526xk-Le&@`c z(NMBoZ}U(Qb9wIhKj)tNGrTHycc&!$?X*5${Qfs3>0hZ6{nOC7fyaJ;#*hrTCKYA= zR*DLLt3{Q+wW4MyhFXiQ#fx#7c(qz$O)u&U$7;#7R52w>?@LD9NIa8_gxR&N7So1& zPny!7L%Ve6xr}y7_Tp=0+cs@L`UiFA+`DDV0i3*VmFxDcs=Zzz?&zP2&J8^FI2w~Z zgmfKo^HV3lGCVp ziN?B9ZPbB!r?Fy{Zq}El6i>6w+LD!o#UDsk8ed;rm|JPAnR8DzYL#+*u3me5{?g^M z^K;8pXJun?uF|Mi8kSM6J8KQYwCA=E$?W>3rnUv(-(}&IWW( zBax2auYsAwIQUNoCCQO?WJBJSTM9!8AeA8%kj9V(D8^6>P@JJSpaeq+KsrM@pd>>{ zKq-b&fVvp!0+ePb4XB%;Za_T@^#JN+s25Pi$h7*X=k}r3Z}dfaN0_T0_yI?8W#h=U z@@Ki$pgXvu?n1K_Ayp)qz!-CL| zAq_qyE3u|wcNm)P`kDetsId)=cOk>N&<^IMKT-11P8Z@DVM`;z$5X<>fIA|59Cb&b z`4czS8e{MN8M;0JPO)@%#E{&vP}4YM#*D!%@)Y8Z*1^Sg#@Wueu=7CJ>37F{JJ2_Z z?4;cg(<*TPNWjrL=1Qv?GF70AP;BVO(LWaS+e&lP>E7ufzFm2z*U9YCq|?~je`EVc zh5aj`{iC7%?+NzbEvgUPJw{dYU~$HeoFWxNo(8=g6*P3_Vubs&(2$ z)vRj34~$`bfIrkHKEF@(GQr*jl@g4C5?0D__c%0Nbti&KX{*hvfs8xxf*Mh|MwlXM zlg5#y>hKf&_^GAw~MS|ca9ng_WZ;?}S49K(5Thq)c$c9h#OZpXPj z%58z$W86+uDO<<6J;CisW1w}4vv-QKmqqsCmcdb;^vA8OJkrI;Y3@lea+>um_mnaC zSZWiLYrR3e%TntU&$d{E?=v3Z5JOpOO~T^fPRe-$GwO|;MD@EZyOR|EGS)1vvZ0-n zkqbDsWj|}IJsxV0SuSf2F~6I3c!gCVuo?9VzUAQ?R#EmX2j7MRz7F3Kp>LXXpM484 z|DV1gviz$eLwqBM4>OqK8%BJi2jgpN&HL>{o#s^Es$VT*sFswq64uaUJ7N7T&DLeq zI4TX*+nREwj6oM;jL$e^Pw&%L``oGRWQ#Dk_iT18(u0zK2TKre2!-Sh- z_*<<$D5+| zA*w`ZLloc&s_|4X+UxZyxH+1mVn6&z>kMSik|vRNe7k3`17Q~PzBmK={440Q`||s80Y7%=IoL&>+Pbv} zXf}lA1VnMnP~7e;w{z6e+-#kNW*XD1dzMEe8{`bQV9xI6L~ky(_2%yr|IVy&ob!@} zh9EEbNM5ocFTV=&0!&9ReaWwwPCCE$C+Vb;ali!7FAi05%K8sp7hkV}c`my1If-i#do}G8{$9{l>Zf@>NQSed%eu|F zLrge3=(HEij-V1cbz@bD=$7k0W!Bh-%KPUB1S#x(p z^N(0_hzT_xjc6`F^W-7TSR*5v7g=*psJYwfXU!od)O;+W8Rs%%>X2rvtP#z+dydZ~ z=Ysm-Zysxgcw`vjJTk;lGsIpp#9G~RS*bPOPBp*tTKn30%tqfX)=<`hH6!a+az2Fc z79enAA%qjNz+vy8YHwX|&+nYatkc{J?uA{oby4(VqJK%O*08{qzLI`k@!xCZ+>0#B zD}GjrVKq0fH?Lk8k=~S43H#}#SJT@)I3N2f@R0bmPMA^J=PDIdKt9Q zkbq@1ZxwWPkODt;L!?qGmdr`(N001 z*u{1(?((U;-P@ep&*TA4UbiEhcLgVMeSkAhJ3xffWzLI&FGracd&F@>1l|P+mj4>> zOud%>&U7ildr9z~i17Z5-+zwNTOLj*Cxj=cX7Z#hKe~Z+H-qSo;~6ITJl0KP`mx-) z@&f#s$FbI%$l@jE@?k3EW=5z6uew*-8SCeVIihw@B@wG!L$mJH0qHVV&|z8fiL@S; z@+I6iL5&}li}JtB=9QP(M7*Rms>AoxmuP32{;vqg-Jy)0fYggJ+KE4y(GF@yM*FQ3 z99;(oY=nJ|F6_N9qaigI|2LbFjCR_jj6&;Sn!X+#(&`ma?Qf0{FM608{moBNowT;l3HAzp2YAaE!Ref|Ea24f z7M=xAf_YDGu}7>SV-S>lYeCq-y2kT#g6#yS*OUHRrhn$o(o8(k4CYgC>cejX&>o!I zPKtNGxBN3Ntv9J@Y2fh@q1&}@|-l!H1NPSyK1-}OQ-tjL%EEVqfp`Cva64);y z@r;SQo!sBYLy2DriQtzQ-v3lz4zQpLu?(p_TTs zkh_j`XbyWc;`diCu2Afweh;}gkDZR_VkIOx?cex)WT4rG&I`YTPO)Nk==>#gVkO2K zTGY==kPUTY6pKSBl0i!29qb{bVf??EroW8{xuRm6E> zu=#ENar)AotyJ;DoA(Qg=5n>Zr88{Sjjh}_9@?iTzkYM3_~`59nXN}}KQvBH0hQV+ zyqGdQ`Ouj5IVNAt5#c=hdYlo7L6-1MMbKj}Ku5?^uONqP_c^@RV*Tj#S#LAz>DO`K z_S3JxyUDz%3T``s!DE;P?;U^KFnGbxJ+!AMXE27-4`+kiy{e00zAgqoq6DKmy)X5u z4&-|%;)gT*LD_h+Wzl_&MHeSU{pOwb@7=%q(TBKQLG^j^-RFe&kQy6_a;= z@7CAu+`4(^{(Do(^F91oM?l&d#T}1nm7T^~wNk+Kj#I8z%)*Cd$ErTPy4Cwmqiz&% zfdUrbuWn`Un)XJ`sn(YZi$to{jcUcTuTCje7V0cqU`PUfPPbRZ_`6@bcOQ<)A9?a^ zPr3aR&*m~HlJv(*Hw5tU-}}I4>o=+^2uq-!+^A5D!5@Vb!*dUhJ%omS5Pj6slJTN} zd!k+W&y}Wj&%eom4;;C^Y&s>n(86_(GJDpG)yj)zjW2urrW<;^)ItrBR~l>U*Z&a~ z{}VW5hOcg{jr#0Dtx+l0?CSsmwyl{DaN|=g*9z~OxG_SuDh1AD9jJF3xFxFA%Z^$2 zxLn&ndcKegTWaB2VQcz5;9pZ{>!Qy*1I=H-*3@-Ru}m*P;Z$p;r#05ix|g)fvQewn zP220G!Zz(H?(_KG%F9F$OXQ!Iq=G0>v|bD&zifJH4NBs+S+*)GUc9^xorb4X8o2&S zK*lK7YMxSG_hMzsDsO_rb~e{dFSb-`pqA*4&FdmFr3xj-_F@}QVOezl>7}WZ;0l+L z*TcOhWvg0Vtij!G*sqx(x!3RR(|etUW#euy^~4#2)T-Qa3xOn-SSuz*s_Dbop4eh`H)``4>?*@x=_XU_OmVcyW<1)pjgzpt?U> z!Q{_YizbCd*N$Fn%d{G{mqfW%N|Z-W=WOy7sAbwKWg3%p3u?TiZ8}DEX=&c@x>&7k zRvdIxa}zwklq#OGUiIP-=0dBH_A{K z(|vI-R%vXYrn>wgV~d`4o6063=5?{xfi9bGu~v*N*2?wAUNV&SOZaG0pDV zE7c{GSVzw|xIL)Y1o}|E_TSK+qNL=MhKD``?|)Q+HSwg>w0ugXe*@6uxRQ}GfJh=I z=K%E+B(NkA2YpDj!a zczrk?;qQPoU4id=ilTq1sQPaeP5+G&)BjtE>t84d<=4tyyoWMExuaaXgmX_z(s(K_ z=GfEqf_#D^fR?n}gBZd`qrCScQ{qvnMyMuoN;)>64DBfz9@rj|l|5xo)8eqwvzJjv zF|s~}YV9CyR2dL-CFb)f+F>22*S$DAIH;!+KZ@L81eIabmjQJ+vuN(X{}0V#{X0i%utnOu u;e%ve@o1M{=N%p!!s05nXf_#fjQ!+etiIp}b)8PlHbvr3Jxo0MsQ&{j>EHnX diff --git a/__init__.py b/concordantmodes/__init__.py similarity index 100% rename from __init__.py rename to concordantmodes/__init__.py diff --git a/algorithm.py b/concordantmodes/algorithm.py similarity index 100% rename from algorithm.py rename to concordantmodes/algorithm.py diff --git a/cma.py b/concordantmodes/cma.py similarity index 100% rename from cma.py rename to concordantmodes/cma.py diff --git a/directory_tree.py b/concordantmodes/directory_tree.py similarity index 100% rename from directory_tree.py rename to concordantmodes/directory_tree.py diff --git a/f_convert.py b/concordantmodes/f_convert.py similarity index 100% rename from f_convert.py rename to concordantmodes/f_convert.py diff --git a/f_read.py b/concordantmodes/f_read.py similarity index 100% rename from f_read.py rename to concordantmodes/f_read.py diff --git a/force_constant.py b/concordantmodes/force_constant.py similarity index 100% rename from force_constant.py rename to concordantmodes/force_constant.py diff --git a/g_matrix.py b/concordantmodes/g_matrix.py similarity index 100% rename from g_matrix.py rename to concordantmodes/g_matrix.py diff --git a/gf_method.py b/concordantmodes/gf_method.py similarity index 100% rename from gf_method.py rename to concordantmodes/gf_method.py diff --git a/int2cart.py b/concordantmodes/int2cart.py similarity index 100% rename from int2cart.py rename to concordantmodes/int2cart.py diff --git a/masses.py b/concordantmodes/masses.py similarity index 100% rename from masses.py rename to concordantmodes/masses.py diff --git a/options.py b/concordantmodes/options.py similarity index 100% rename from options.py rename to concordantmodes/options.py diff --git a/reap.py b/concordantmodes/reap.py similarity index 100% rename from reap.py rename to concordantmodes/reap.py diff --git a/rmsd.py b/concordantmodes/rmsd.py similarity index 100% rename from rmsd.py rename to concordantmodes/rmsd.py diff --git a/s_vectors.py b/concordantmodes/s_vectors.py similarity index 100% rename from s_vectors.py rename to concordantmodes/s_vectors.py diff --git a/sapelo_template.py b/concordantmodes/sapelo_template.py similarity index 100% rename from sapelo_template.py rename to concordantmodes/sapelo_template.py diff --git a/submit.py b/concordantmodes/submit.py similarity index 100% rename from submit.py rename to concordantmodes/submit.py diff --git a/ted.py b/concordantmodes/ted.py similarity index 100% rename from ted.py rename to concordantmodes/ted.py diff --git a/test.py b/concordantmodes/test.py similarity index 100% rename from test.py rename to concordantmodes/test.py diff --git a/trans_disp.py b/concordantmodes/trans_disp.py similarity index 100% rename from trans_disp.py rename to concordantmodes/trans_disp.py diff --git a/vulcan_template.py b/concordantmodes/vulcan_template.py similarity index 100% rename from vulcan_template.py rename to concordantmodes/vulcan_template.py diff --git a/zmat.py b/concordantmodes/zmat.py similarity index 100% rename from zmat.py rename to concordantmodes/zmat.py diff --git a/devtools/conda-envs/base.yaml b/devtools/conda-envs/base.yaml new file mode 100644 index 00000000..b53f62af --- /dev/null +++ b/devtools/conda-envs/base.yaml @@ -0,0 +1,8 @@ +name: scipy +channels: + - conda-forge + +dependencies: + - numpy>=1.18 + - scipy>=1.9 + - sympy diff --git a/Example/1_H2O/molpro/CMA0/No_Spec_Red/fc.dat b/examples/1_H2O/molpro/CMA0/No_Spec_Red/fc.dat similarity index 100% rename from Example/1_H2O/molpro/CMA0/No_Spec_Red/fc.dat rename to examples/1_H2O/molpro/CMA0/No_Spec_Red/fc.dat diff --git a/Example/1_H2O/molpro/CMA0/No_Spec_Red/main.py b/examples/1_H2O/molpro/CMA0/No_Spec_Red/main.py similarity index 100% rename from Example/1_H2O/molpro/CMA0/No_Spec_Red/main.py rename to examples/1_H2O/molpro/CMA0/No_Spec_Red/main.py diff --git a/Example/1_H2O/molpro/CMA0/No_Spec_Red/template.dat b/examples/1_H2O/molpro/CMA0/No_Spec_Red/template.dat similarity index 100% rename from Example/1_H2O/molpro/CMA0/No_Spec_Red/template.dat rename to examples/1_H2O/molpro/CMA0/No_Spec_Red/template.dat diff --git a/Example/1_H2O/molpro/CMA0/No_Spec_Red/zmat b/examples/1_H2O/molpro/CMA0/No_Spec_Red/zmat similarity index 100% rename from Example/1_H2O/molpro/CMA0/No_Spec_Red/zmat rename to examples/1_H2O/molpro/CMA0/No_Spec_Red/zmat diff --git a/Example/1_H2O/molpro/CMA0/Redundants/fc.dat b/examples/1_H2O/molpro/CMA0/Redundants/fc.dat similarity index 100% rename from Example/1_H2O/molpro/CMA0/Redundants/fc.dat rename to examples/1_H2O/molpro/CMA0/Redundants/fc.dat diff --git a/Example/1_H2O/molpro/CMA0/Redundants/main.py b/examples/1_H2O/molpro/CMA0/Redundants/main.py similarity index 100% rename from Example/1_H2O/molpro/CMA0/Redundants/main.py rename to examples/1_H2O/molpro/CMA0/Redundants/main.py diff --git a/Example/1_H2O/molpro/CMA0/Redundants/template.dat b/examples/1_H2O/molpro/CMA0/Redundants/template.dat similarity index 100% rename from Example/1_H2O/molpro/CMA0/Redundants/template.dat rename to examples/1_H2O/molpro/CMA0/Redundants/template.dat diff --git a/Example/1_H2O/molpro/CMA0/Redundants/zmat b/examples/1_H2O/molpro/CMA0/Redundants/zmat similarity index 100% rename from Example/1_H2O/molpro/CMA0/Redundants/zmat rename to examples/1_H2O/molpro/CMA0/Redundants/zmat diff --git a/Example/1_H2O/molpro/CMA0/ZMAT/fc.dat b/examples/1_H2O/molpro/CMA0/ZMAT/fc.dat similarity index 100% rename from Example/1_H2O/molpro/CMA0/ZMAT/fc.dat rename to examples/1_H2O/molpro/CMA0/ZMAT/fc.dat diff --git a/Example/1_H2O/molpro/CMA0/ZMAT/main.py b/examples/1_H2O/molpro/CMA0/ZMAT/main.py similarity index 100% rename from Example/1_H2O/molpro/CMA0/ZMAT/main.py rename to examples/1_H2O/molpro/CMA0/ZMAT/main.py diff --git a/Example/1_H2O/molpro/CMA0/ZMAT/template.dat b/examples/1_H2O/molpro/CMA0/ZMAT/template.dat similarity index 100% rename from Example/1_H2O/molpro/CMA0/ZMAT/template.dat rename to examples/1_H2O/molpro/CMA0/ZMAT/template.dat diff --git a/Example/1_H2O/molpro/CMA0/ZMAT/zmat b/examples/1_H2O/molpro/CMA0/ZMAT/zmat similarity index 100% rename from Example/1_H2O/molpro/CMA0/ZMAT/zmat rename to examples/1_H2O/molpro/CMA0/ZMAT/zmat diff --git a/Example/1_H2O/molpro/CMA1/main.py b/examples/1_H2O/molpro/CMA1/main.py similarity index 100% rename from Example/1_H2O/molpro/CMA1/main.py rename to examples/1_H2O/molpro/CMA1/main.py diff --git a/Example/1_H2O/molpro/CMA1/nohup.out b/examples/1_H2O/molpro/CMA1/nohup.out similarity index 100% rename from Example/1_H2O/molpro/CMA1/nohup.out rename to examples/1_H2O/molpro/CMA1/nohup.out diff --git a/Example/1_H2O/molpro/CMA1/template.dat b/examples/1_H2O/molpro/CMA1/template.dat similarity index 100% rename from Example/1_H2O/molpro/CMA1/template.dat rename to examples/1_H2O/molpro/CMA1/template.dat diff --git a/Example/1_H2O/molpro/CMA1/templateInit.dat b/examples/1_H2O/molpro/CMA1/templateInit.dat similarity index 100% rename from Example/1_H2O/molpro/CMA1/templateInit.dat rename to examples/1_H2O/molpro/CMA1/templateInit.dat diff --git a/Example/1_H2O/molpro/CMA1/zmat b/examples/1_H2O/molpro/CMA1/zmat similarity index 100% rename from Example/1_H2O/molpro/CMA1/zmat rename to examples/1_H2O/molpro/CMA1/zmat diff --git a/Example/1_H2O/molpro/CMA2/Redundants/fc.dat b/examples/1_H2O/molpro/CMA2/Redundants/fc.dat similarity index 100% rename from Example/1_H2O/molpro/CMA2/Redundants/fc.dat rename to examples/1_H2O/molpro/CMA2/Redundants/fc.dat diff --git a/Example/1_H2O/molpro/CMA2/Redundants/main.py b/examples/1_H2O/molpro/CMA2/Redundants/main.py similarity index 100% rename from Example/1_H2O/molpro/CMA2/Redundants/main.py rename to examples/1_H2O/molpro/CMA2/Redundants/main.py diff --git a/Example/1_H2O/molpro/CMA2/Redundants/template.dat b/examples/1_H2O/molpro/CMA2/Redundants/template.dat similarity index 100% rename from Example/1_H2O/molpro/CMA2/Redundants/template.dat rename to examples/1_H2O/molpro/CMA2/Redundants/template.dat diff --git a/Example/1_H2O/molpro/CMA2/Redundants/zmat b/examples/1_H2O/molpro/CMA2/Redundants/zmat similarity index 100% rename from Example/1_H2O/molpro/CMA2/Redundants/zmat rename to examples/1_H2O/molpro/CMA2/Redundants/zmat diff --git a/Example/1_H2O/psi4/CMA0/No_Spec_red/fc.dat b/examples/1_H2O/psi4/CMA0/No_Spec_red/fc.dat similarity index 100% rename from Example/1_H2O/psi4/CMA0/No_Spec_red/fc.dat rename to examples/1_H2O/psi4/CMA0/No_Spec_red/fc.dat diff --git a/Example/1_H2O/psi4/CMA0/No_Spec_red/main.py b/examples/1_H2O/psi4/CMA0/No_Spec_red/main.py similarity index 100% rename from Example/1_H2O/psi4/CMA0/No_Spec_red/main.py rename to examples/1_H2O/psi4/CMA0/No_Spec_red/main.py diff --git a/Example/1_H2O/psi4/CMA0/No_Spec_red/template.dat b/examples/1_H2O/psi4/CMA0/No_Spec_red/template.dat similarity index 100% rename from Example/1_H2O/psi4/CMA0/No_Spec_red/template.dat rename to examples/1_H2O/psi4/CMA0/No_Spec_red/template.dat diff --git a/Example/1_H2O/psi4/CMA0/No_Spec_red/zmat b/examples/1_H2O/psi4/CMA0/No_Spec_red/zmat similarity index 100% rename from Example/1_H2O/psi4/CMA0/No_Spec_red/zmat rename to examples/1_H2O/psi4/CMA0/No_Spec_red/zmat diff --git a/Example/1_H2O/psi4/CMA0/Redundants/fc.dat b/examples/1_H2O/psi4/CMA0/Redundants/fc.dat similarity index 100% rename from Example/1_H2O/psi4/CMA0/Redundants/fc.dat rename to examples/1_H2O/psi4/CMA0/Redundants/fc.dat diff --git a/Example/1_H2O/psi4/CMA0/Redundants/main.py b/examples/1_H2O/psi4/CMA0/Redundants/main.py similarity index 100% rename from Example/1_H2O/psi4/CMA0/Redundants/main.py rename to examples/1_H2O/psi4/CMA0/Redundants/main.py diff --git a/Example/1_H2O/psi4/CMA0/Redundants/template.dat b/examples/1_H2O/psi4/CMA0/Redundants/template.dat similarity index 100% rename from Example/1_H2O/psi4/CMA0/Redundants/template.dat rename to examples/1_H2O/psi4/CMA0/Redundants/template.dat diff --git a/Example/1_H2O/psi4/CMA0/Redundants/zmat b/examples/1_H2O/psi4/CMA0/Redundants/zmat similarity index 100% rename from Example/1_H2O/psi4/CMA0/Redundants/zmat rename to examples/1_H2O/psi4/CMA0/Redundants/zmat diff --git a/Example/1_H2O/psi4/CMA0/ZMAT/fc.dat b/examples/1_H2O/psi4/CMA0/ZMAT/fc.dat similarity index 100% rename from Example/1_H2O/psi4/CMA0/ZMAT/fc.dat rename to examples/1_H2O/psi4/CMA0/ZMAT/fc.dat diff --git a/Example/1_H2O/psi4/CMA0/ZMAT/main.py b/examples/1_H2O/psi4/CMA0/ZMAT/main.py similarity index 100% rename from Example/1_H2O/psi4/CMA0/ZMAT/main.py rename to examples/1_H2O/psi4/CMA0/ZMAT/main.py diff --git a/Example/1_H2O/psi4/CMA0/ZMAT/template.dat b/examples/1_H2O/psi4/CMA0/ZMAT/template.dat similarity index 100% rename from Example/1_H2O/psi4/CMA0/ZMAT/template.dat rename to examples/1_H2O/psi4/CMA0/ZMAT/template.dat diff --git a/Example/1_H2O/psi4/CMA0/ZMAT/zmat b/examples/1_H2O/psi4/CMA0/ZMAT/zmat similarity index 100% rename from Example/1_H2O/psi4/CMA0/ZMAT/zmat rename to examples/1_H2O/psi4/CMA0/ZMAT/zmat diff --git a/Example/1_H2O/psi4/CMA1/main.py b/examples/1_H2O/psi4/CMA1/main.py similarity index 100% rename from Example/1_H2O/psi4/CMA1/main.py rename to examples/1_H2O/psi4/CMA1/main.py diff --git a/Example/1_H2O/psi4/CMA1/template.dat b/examples/1_H2O/psi4/CMA1/template.dat similarity index 100% rename from Example/1_H2O/psi4/CMA1/template.dat rename to examples/1_H2O/psi4/CMA1/template.dat diff --git a/Example/1_H2O/psi4/CMA1/templateInit.dat b/examples/1_H2O/psi4/CMA1/templateInit.dat similarity index 100% rename from Example/1_H2O/psi4/CMA1/templateInit.dat rename to examples/1_H2O/psi4/CMA1/templateInit.dat diff --git a/Example/1_H2O/psi4/CMA1/zmat b/examples/1_H2O/psi4/CMA1/zmat similarity index 100% rename from Example/1_H2O/psi4/CMA1/zmat rename to examples/1_H2O/psi4/CMA1/zmat diff --git a/Example/2_Methanol/molpro/CMA0/.template.dat.swp b/examples/2_Methanol/molpro/CMA0/.template.dat.swp similarity index 100% rename from Example/2_Methanol/molpro/CMA0/.template.dat.swp rename to examples/2_Methanol/molpro/CMA0/.template.dat.swp diff --git a/Example/2_Methanol/molpro/CMA0/fc.dat b/examples/2_Methanol/molpro/CMA0/fc.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA0/fc.dat rename to examples/2_Methanol/molpro/CMA0/fc.dat diff --git a/Example/2_Methanol/molpro/CMA0/main.py b/examples/2_Methanol/molpro/CMA0/main.py similarity index 100% rename from Example/2_Methanol/molpro/CMA0/main.py rename to examples/2_Methanol/molpro/CMA0/main.py diff --git a/Example/2_Methanol/molpro/CMA0/template.dat b/examples/2_Methanol/molpro/CMA0/template.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA0/template.dat rename to examples/2_Methanol/molpro/CMA0/template.dat diff --git a/Example/2_Methanol/molpro/CMA0/zmat b/examples/2_Methanol/molpro/CMA0/zmat similarity index 100% rename from Example/2_Methanol/molpro/CMA0/zmat rename to examples/2_Methanol/molpro/CMA0/zmat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/1/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/1/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/1/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/1/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/1/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/1/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/1/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/1/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/10/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/10/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/10/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/10/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/10/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/10/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/10/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/10/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/11/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/11/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/11/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/11/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/11/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/11/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/11/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/11/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/12/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/12/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/12/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/12/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/12/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/12/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/12/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/12/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/13/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/13/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/13/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/13/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/13/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/13/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/13/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/13/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/14/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/14/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/14/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/14/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/14/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/14/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/14/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/14/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/15/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/15/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/15/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/15/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/15/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/15/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/15/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/15/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/16/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/16/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/16/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/16/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/16/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/16/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/16/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/16/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/17/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/17/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/17/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/17/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/17/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/17/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/17/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/17/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/18/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/18/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/18/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/18/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/18/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/18/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/18/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/18/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/19/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/19/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/19/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/19/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/19/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/19/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/19/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/19/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/2/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/2/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/2/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/2/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/2/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/2/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/2/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/2/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/20/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/20/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/20/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/20/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/20/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/20/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/20/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/20/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/21/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/21/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/21/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/21/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/21/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/21/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/21/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/21/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/22/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/22/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/22/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/22/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/22/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/22/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/22/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/22/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/23/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/23/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/23/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/23/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/23/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/23/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/23/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/23/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/24/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/24/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/24/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/24/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/24/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/24/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/24/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/24/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/25/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/25/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/25/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/25/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/25/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/25/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/25/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/25/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/3/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/3/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/3/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/3/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/3/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/3/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/3/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/3/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/4/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/4/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/4/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/4/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/4/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/4/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/4/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/4/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/5/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/5/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/5/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/5/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/5/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/5/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/5/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/5/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/6/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/6/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/6/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/6/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/6/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/6/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/6/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/6/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/7/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/7/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/7/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/7/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/7/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/7/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/7/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/7/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/8/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/8/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/8/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/8/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/8/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/8/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/8/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/8/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/9/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/9/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/9/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/9/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/Disps/9/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/Disps/9/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/Disps/9/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/Disps/9/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/1/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/1/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/1/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/1/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/1/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/1/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/1/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/1/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/10/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/10/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/10/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/10/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/10/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/10/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/10/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/10/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/100/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/100/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/100/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/100/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/100/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/100/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/100/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/100/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/101/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/101/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/101/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/101/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/101/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/101/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/101/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/101/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/102/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/102/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/102/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/102/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/102/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/102/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/102/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/102/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/103/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/103/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/103/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/103/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/103/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/103/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/103/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/103/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/104/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/104/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/104/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/104/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/104/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/104/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/104/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/104/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/105/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/105/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/105/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/105/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/105/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/105/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/105/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/105/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/106/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/106/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/106/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/106/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/106/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/106/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/106/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/106/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/107/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/107/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/107/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/107/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/107/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/107/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/107/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/107/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/108/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/108/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/108/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/108/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/108/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/108/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/108/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/108/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/109/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/109/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/109/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/109/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/109/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/109/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/109/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/109/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/11/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/11/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/11/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/11/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/11/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/11/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/11/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/11/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/110/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/110/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/110/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/110/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/110/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/110/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/110/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/110/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/111/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/111/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/111/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/111/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/111/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/111/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/111/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/111/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/112/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/112/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/112/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/112/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/112/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/112/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/112/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/112/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/113/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/113/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/113/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/113/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/113/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/113/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/113/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/113/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/114/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/114/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/114/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/114/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/114/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/114/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/114/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/114/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/115/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/115/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/115/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/115/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/115/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/115/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/115/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/115/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/116/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/116/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/116/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/116/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/116/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/116/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/116/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/116/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/117/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/117/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/117/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/117/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/117/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/117/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/117/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/117/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/118/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/118/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/118/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/118/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/118/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/118/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/118/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/118/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/119/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/119/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/119/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/119/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/119/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/119/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/119/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/119/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/12/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/12/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/12/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/12/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/12/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/12/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/12/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/12/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/120/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/120/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/120/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/120/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/120/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/120/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/120/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/120/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/121/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/121/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/121/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/121/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/121/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/121/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/121/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/121/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/122/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/122/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/122/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/122/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/122/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/122/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/122/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/122/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/123/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/123/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/123/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/123/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/123/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/123/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/123/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/123/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/124/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/124/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/124/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/124/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/124/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/124/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/124/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/124/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/125/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/125/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/125/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/125/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/125/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/125/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/125/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/125/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/126/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/126/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/126/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/126/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/126/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/126/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/126/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/126/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/127/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/127/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/127/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/127/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/127/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/127/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/127/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/127/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/128/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/128/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/128/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/128/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/128/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/128/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/128/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/128/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/129/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/129/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/129/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/129/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/129/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/129/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/129/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/129/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/13/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/13/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/13/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/13/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/13/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/13/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/13/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/13/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/130/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/130/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/130/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/130/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/130/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/130/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/130/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/130/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/131/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/131/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/131/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/131/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/131/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/131/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/131/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/131/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/132/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/132/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/132/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/132/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/132/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/132/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/132/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/132/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/133/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/133/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/133/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/133/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/133/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/133/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/133/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/133/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/134/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/134/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/134/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/134/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/134/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/134/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/134/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/134/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/135/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/135/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/135/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/135/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/135/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/135/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/135/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/135/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/136/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/136/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/136/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/136/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/136/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/136/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/136/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/136/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/137/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/137/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/137/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/137/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/137/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/137/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/137/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/137/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/138/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/138/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/138/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/138/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/138/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/138/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/138/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/138/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/139/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/139/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/139/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/139/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/139/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/139/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/139/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/139/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/14/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/14/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/14/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/14/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/14/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/14/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/14/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/14/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/140/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/140/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/140/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/140/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/140/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/140/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/140/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/140/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/141/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/141/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/141/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/141/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/141/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/141/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/141/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/141/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/142/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/142/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/142/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/142/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/142/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/142/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/142/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/142/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/143/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/143/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/143/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/143/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/143/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/143/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/143/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/143/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/144/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/144/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/144/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/144/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/144/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/144/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/144/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/144/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/145/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/145/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/145/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/145/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/145/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/145/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/145/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/145/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/146/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/146/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/146/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/146/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/146/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/146/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/146/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/146/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/147/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/147/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/147/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/147/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/147/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/147/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/147/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/147/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/148/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/148/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/148/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/148/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/148/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/148/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/148/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/148/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/149/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/149/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/149/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/149/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/149/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/149/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/149/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/149/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/15/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/15/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/15/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/15/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/15/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/15/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/15/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/15/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/150/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/150/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/150/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/150/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/150/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/150/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/150/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/150/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/151/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/151/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/151/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/151/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/151/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/151/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/151/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/151/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/152/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/152/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/152/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/152/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/152/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/152/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/152/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/152/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/153/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/153/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/153/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/153/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/153/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/153/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/153/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/153/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/154/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/154/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/154/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/154/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/154/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/154/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/154/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/154/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/155/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/155/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/155/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/155/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/155/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/155/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/155/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/155/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/156/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/156/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/156/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/156/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/156/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/156/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/156/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/156/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/157/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/157/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/157/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/157/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/157/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/157/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/157/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/157/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/16/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/16/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/16/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/16/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/16/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/16/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/16/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/16/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/17/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/17/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/17/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/17/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/17/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/17/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/17/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/17/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/18/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/18/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/18/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/18/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/18/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/18/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/18/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/18/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/19/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/19/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/19/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/19/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/19/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/19/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/19/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/19/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/2/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/2/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/2/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/2/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/2/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/2/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/2/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/2/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/20/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/20/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/20/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/20/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/20/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/20/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/20/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/20/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/21/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/21/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/21/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/21/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/21/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/21/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/21/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/21/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/22/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/22/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/22/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/22/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/22/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/22/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/22/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/22/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/23/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/23/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/23/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/23/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/23/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/23/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/23/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/23/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/24/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/24/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/24/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/24/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/24/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/24/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/24/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/24/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/25/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/25/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/25/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/25/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/25/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/25/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/25/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/25/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/26/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/26/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/26/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/26/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/26/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/26/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/26/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/26/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/27/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/27/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/27/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/27/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/27/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/27/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/27/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/27/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/28/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/28/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/28/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/28/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/28/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/28/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/28/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/28/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/29/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/29/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/29/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/29/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/29/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/29/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/29/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/29/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/3/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/3/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/3/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/3/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/3/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/3/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/3/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/3/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/30/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/30/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/30/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/30/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/30/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/30/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/30/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/30/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/31/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/31/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/31/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/31/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/31/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/31/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/31/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/31/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/32/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/32/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/32/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/32/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/32/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/32/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/32/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/32/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/33/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/33/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/33/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/33/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/33/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/33/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/33/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/33/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/34/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/34/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/34/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/34/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/34/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/34/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/34/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/34/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/35/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/35/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/35/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/35/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/35/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/35/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/35/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/35/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/36/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/36/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/36/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/36/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/36/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/36/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/36/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/36/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/37/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/37/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/37/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/37/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/37/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/37/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/37/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/37/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/38/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/38/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/38/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/38/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/38/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/38/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/38/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/38/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/39/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/39/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/39/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/39/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/39/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/39/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/39/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/39/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/4/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/4/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/4/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/4/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/4/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/4/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/4/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/4/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/40/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/40/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/40/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/40/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/40/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/40/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/40/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/40/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/41/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/41/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/41/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/41/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/41/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/41/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/41/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/41/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/42/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/42/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/42/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/42/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/42/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/42/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/42/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/42/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/43/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/43/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/43/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/43/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/43/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/43/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/43/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/43/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/44/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/44/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/44/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/44/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/44/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/44/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/44/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/44/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/45/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/45/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/45/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/45/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/45/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/45/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/45/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/45/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/46/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/46/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/46/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/46/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/46/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/46/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/46/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/46/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/47/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/47/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/47/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/47/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/47/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/47/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/47/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/47/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/48/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/48/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/48/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/48/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/48/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/48/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/48/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/48/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/49/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/49/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/49/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/49/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/49/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/49/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/49/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/49/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/5/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/5/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/5/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/5/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/5/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/5/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/5/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/5/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/50/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/50/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/50/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/50/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/50/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/50/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/50/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/50/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/51/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/51/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/51/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/51/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/51/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/51/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/51/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/51/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/52/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/52/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/52/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/52/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/52/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/52/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/52/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/52/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/53/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/53/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/53/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/53/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/53/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/53/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/53/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/53/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/54/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/54/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/54/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/54/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/54/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/54/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/54/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/54/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/55/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/55/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/55/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/55/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/55/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/55/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/55/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/55/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/56/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/56/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/56/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/56/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/56/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/56/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/56/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/56/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/57/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/57/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/57/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/57/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/57/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/57/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/57/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/57/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/58/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/58/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/58/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/58/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/58/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/58/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/58/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/58/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/59/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/59/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/59/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/59/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/59/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/59/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/59/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/59/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/6/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/6/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/6/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/6/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/6/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/6/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/6/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/6/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/60/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/60/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/60/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/60/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/60/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/60/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/60/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/60/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/61/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/61/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/61/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/61/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/61/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/61/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/61/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/61/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/62/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/62/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/62/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/62/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/62/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/62/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/62/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/62/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/63/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/63/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/63/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/63/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/63/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/63/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/63/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/63/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/64/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/64/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/64/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/64/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/64/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/64/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/64/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/64/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/65/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/65/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/65/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/65/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/65/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/65/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/65/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/65/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/66/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/66/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/66/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/66/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/66/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/66/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/66/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/66/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/67/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/67/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/67/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/67/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/67/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/67/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/67/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/67/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/68/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/68/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/68/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/68/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/68/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/68/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/68/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/68/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/69/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/69/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/69/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/69/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/69/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/69/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/69/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/69/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/7/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/7/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/7/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/7/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/7/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/7/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/7/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/7/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/70/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/70/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/70/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/70/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/70/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/70/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/70/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/70/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/71/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/71/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/71/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/71/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/71/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/71/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/71/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/71/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/72/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/72/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/72/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/72/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/72/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/72/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/72/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/72/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/73/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/73/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/73/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/73/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/73/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/73/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/73/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/73/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/74/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/74/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/74/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/74/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/74/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/74/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/74/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/74/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/75/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/75/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/75/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/75/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/75/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/75/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/75/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/75/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/76/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/76/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/76/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/76/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/76/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/76/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/76/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/76/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/77/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/77/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/77/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/77/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/77/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/77/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/77/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/77/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/78/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/78/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/78/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/78/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/78/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/78/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/78/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/78/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/79/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/79/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/79/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/79/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/79/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/79/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/79/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/79/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/8/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/8/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/8/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/8/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/8/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/8/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/8/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/8/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/80/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/80/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/80/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/80/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/80/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/80/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/80/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/80/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/81/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/81/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/81/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/81/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/81/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/81/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/81/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/81/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/82/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/82/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/82/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/82/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/82/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/82/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/82/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/82/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/83/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/83/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/83/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/83/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/83/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/83/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/83/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/83/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/84/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/84/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/84/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/84/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/84/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/84/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/84/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/84/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/85/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/85/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/85/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/85/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/85/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/85/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/85/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/85/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/86/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/86/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/86/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/86/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/86/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/86/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/86/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/86/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/87/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/87/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/87/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/87/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/87/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/87/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/87/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/87/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/88/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/88/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/88/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/88/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/88/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/88/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/88/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/88/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/89/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/89/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/89/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/89/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/89/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/89/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/89/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/89/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/9/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/9/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/9/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/9/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/9/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/9/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/9/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/9/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/90/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/90/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/90/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/90/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/90/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/90/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/90/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/90/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/91/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/91/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/91/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/91/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/91/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/91/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/91/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/91/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/92/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/92/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/92/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/92/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/92/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/92/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/92/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/92/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/93/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/93/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/93/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/93/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/93/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/93/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/93/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/93/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/94/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/94/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/94/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/94/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/94/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/94/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/94/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/94/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/95/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/95/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/95/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/95/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/95/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/95/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/95/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/95/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/96/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/96/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/96/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/96/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/96/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/96/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/96/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/96/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/97/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/97/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/97/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/97/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/97/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/97/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/97/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/97/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/98/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/98/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/98/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/98/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/98/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/98/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/98/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/98/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/99/input.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/99/input.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/99/input.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/99/input.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/99/output.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/99/output.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/DispsInit/99/output.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/DispsInit/99/output.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/main.py b/examples/2_Methanol/molpro/CMA1/init_nosow/main.py similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/main.py rename to examples/2_Methanol/molpro/CMA1/init_nosow/main.py diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/template.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/template.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/template.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/template.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/templateInit.dat b/examples/2_Methanol/molpro/CMA1/init_nosow/templateInit.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/templateInit.dat rename to examples/2_Methanol/molpro/CMA1/init_nosow/templateInit.dat diff --git a/Example/2_Methanol/molpro/CMA1/init_nosow/zmat b/examples/2_Methanol/molpro/CMA1/init_nosow/zmat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/init_nosow/zmat rename to examples/2_Methanol/molpro/CMA1/init_nosow/zmat diff --git a/Example/2_Methanol/molpro/CMA1/standard/main.py b/examples/2_Methanol/molpro/CMA1/standard/main.py similarity index 100% rename from Example/2_Methanol/molpro/CMA1/standard/main.py rename to examples/2_Methanol/molpro/CMA1/standard/main.py diff --git a/Example/2_Methanol/molpro/CMA1/standard/template.dat b/examples/2_Methanol/molpro/CMA1/standard/template.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/standard/template.dat rename to examples/2_Methanol/molpro/CMA1/standard/template.dat diff --git a/Example/2_Methanol/molpro/CMA1/standard/templateInit.dat b/examples/2_Methanol/molpro/CMA1/standard/templateInit.dat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/standard/templateInit.dat rename to examples/2_Methanol/molpro/CMA1/standard/templateInit.dat diff --git a/Example/2_Methanol/molpro/CMA1/standard/zmat b/examples/2_Methanol/molpro/CMA1/standard/zmat similarity index 100% rename from Example/2_Methanol/molpro/CMA1/standard/zmat rename to examples/2_Methanol/molpro/CMA1/standard/zmat diff --git a/Example/2_Methanol/psi4/CMA0/fc.dat b/examples/2_Methanol/psi4/CMA0/fc.dat similarity index 100% rename from Example/2_Methanol/psi4/CMA0/fc.dat rename to examples/2_Methanol/psi4/CMA0/fc.dat diff --git a/Example/2_Methanol/psi4/CMA0/main.py b/examples/2_Methanol/psi4/CMA0/main.py similarity index 100% rename from Example/2_Methanol/psi4/CMA0/main.py rename to examples/2_Methanol/psi4/CMA0/main.py diff --git a/Example/2_Methanol/psi4/CMA0/template.dat b/examples/2_Methanol/psi4/CMA0/template.dat similarity index 100% rename from Example/2_Methanol/psi4/CMA0/template.dat rename to examples/2_Methanol/psi4/CMA0/template.dat diff --git a/Example/2_Methanol/psi4/CMA0/zmat b/examples/2_Methanol/psi4/CMA0/zmat similarity index 100% rename from Example/2_Methanol/psi4/CMA0/zmat rename to examples/2_Methanol/psi4/CMA0/zmat diff --git a/Example/2_Methanol/psi4/CMA1/energies/main.py b/examples/2_Methanol/psi4/CMA1/energies/main.py similarity index 100% rename from Example/2_Methanol/psi4/CMA1/energies/main.py rename to examples/2_Methanol/psi4/CMA1/energies/main.py diff --git a/Example/2_Methanol/psi4/CMA1/energies/template.dat b/examples/2_Methanol/psi4/CMA1/energies/template.dat similarity index 100% rename from Example/2_Methanol/psi4/CMA1/energies/template.dat rename to examples/2_Methanol/psi4/CMA1/energies/template.dat diff --git a/Example/2_Methanol/psi4/CMA1/energies/templateInit.dat b/examples/2_Methanol/psi4/CMA1/energies/templateInit.dat similarity index 100% rename from Example/2_Methanol/psi4/CMA1/energies/templateInit.dat rename to examples/2_Methanol/psi4/CMA1/energies/templateInit.dat diff --git a/Example/2_Methanol/psi4/CMA1/energies/zmat b/examples/2_Methanol/psi4/CMA1/energies/zmat similarity index 100% rename from Example/2_Methanol/psi4/CMA1/energies/zmat rename to examples/2_Methanol/psi4/CMA1/energies/zmat diff --git a/Example/2_Methanol/psi4/CMA1/gradients/main.py b/examples/2_Methanol/psi4/CMA1/gradients/main.py similarity index 100% rename from Example/2_Methanol/psi4/CMA1/gradients/main.py rename to examples/2_Methanol/psi4/CMA1/gradients/main.py diff --git a/Example/2_Methanol/psi4/CMA1/gradients/template.dat b/examples/2_Methanol/psi4/CMA1/gradients/template.dat similarity index 100% rename from Example/2_Methanol/psi4/CMA1/gradients/template.dat rename to examples/2_Methanol/psi4/CMA1/gradients/template.dat diff --git a/Example/2_Methanol/psi4/CMA1/gradients/templateInit.dat b/examples/2_Methanol/psi4/CMA1/gradients/templateInit.dat similarity index 100% rename from Example/2_Methanol/psi4/CMA1/gradients/templateInit.dat rename to examples/2_Methanol/psi4/CMA1/gradients/templateInit.dat diff --git a/Example/2_Methanol/psi4/CMA1/gradients/zmat b/examples/2_Methanol/psi4/CMA1/gradients/zmat similarity index 100% rename from Example/2_Methanol/psi4/CMA1/gradients/zmat rename to examples/2_Methanol/psi4/CMA1/gradients/zmat diff --git a/options.pyc b/options.pyc deleted file mode 100644 index d3d12c9057d29c167ebf0cd76e7bd10dd7a4c869..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2425 zcmb`JOLN>r5XWcN@%sIKzu)#cc6RN=*hLi(6RLnJNT4P;fG;YoW>za((kPmdA&^^K ze2JXk1Moq(@(JL|kq-dfqiuVND_NKR-ubC}x~F?a+Md5h27mkIFbG)p(*ys{;nIsB zf-%WhyTU|;-7xlsv2QP6P-V~SXlMFBzRFCbQhhr?1=tg~^aKcaqXR?liz?&K>v%gr zsltVmd;ypK6285zuuBM8VWz^~RM~6BJkSzWndl+dL+~Cm_Xze9>}8@xutu=YvFsz* z&%^*(_7fa*-~hoP$9<6CFcTx>K16Voi7|r11jm_}AUHyB(t)D{r<_1z1gDvpA@^~D zvrd&J2+lDvPnMGe7noQiI7M*Dfzt$+ojGR+t~hX(;Hm@X2(CGBp5VF@Xo27c6PuLM zBEc=keTm?51DvCaFbxeiM~a! z=|tZqc;qC%L-5!s$S%Q$4%{R7$O%*@c;e)_Pw+h^PAN}V2!rE!2B+$o83k?0H0UIL ze&w}`I5q=-qSVOTGb#>$f7%-V=KaxgI7o0T{Wvf~_DgQOK&f14d*g}fnVaYz_?U6>Eumu>OF#8Gs?gFtGlIC#kb7XCQ>>t}!baP!y<+S@wwf{qNXOlb{6EWv|M zmjC+mbn&qn1|yluJbVSygz|d>V`l7A%%NpGoG_Fs=}tHeLt9kes3ZzJh;IBekTy~R zOV4t3X{Nv`Q9?p#i!6@Pu?pvpM+x)@QIBP&Ok^w6I;#8Duj8*18A+sdcx| zlm8`mMK)2`G38A5jiX{4w}3sU?f&@O&rL2RZqfPy%wy0jQ<*jU)Q`2~xAkkORNxwH zE-&&zax~_+_c^YCL~jt_fc?_{1Bv$uh6otGH%-wboHH| zhZ-H26^+ktF;bcz^;`~>dZt>}L*i`zwjXk1gR@~kW) a_FuIwWniqqI}B*+_(8dxk8m$)xY)mIa{5pJ diff --git a/pyroject.toml b/pyroject.toml new file mode 100644 index 00000000..8b9b3d74 --- /dev/null +++ b/pyroject.toml @@ -0,0 +1,38 @@ +[build-system] +requires = ["setuptools>=61.0", "versioningit~=2.0"] +build-backend = "setuptools.build_meta" + +# Self-descriptive entries which should always be present +# https://packaging.python.org/en/latest/specifications/declaring-project-metadata/ +[project] +name = "Concordant Modes" +description = "The Concordant Mode Approach utilizes lower level of theory normal modes to compute higher level force constants at a fraction of the cost!" +dynamic = ["version"] +readme = "README.md" +authors = [ + { name = "Mitchell Lahm"}, { name = "Nate Kitzmiller"}, {name = "Wesley D. Allen"} +] +license = { text = "BSD 3-Clause License" } +# See https://pypi.org/classifiers/ +classifiers = [ + "Programming Language :: Python :: 3", +] +requires-python = ">=3.8" +# Declare any run-time dependencies that should be installed with the package. +dependencies = [ + "numpy >= 1.9", + "scipy >= 1.18.5", + "sympy" +] + +# Update the urls once the hosting is set up. +[project.urls] +"Source" = "https://github.com/CCQC/ConcordantModes/" +#"Documentation" = "https://{{cookiecutter.repo_name}}.readthedocs.io/" + +[project.optional-dependencies] +test = [ + "pytest>=6.1.2", + "pytest-runner" +] + diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..60684932 --- /dev/null +++ b/setup.py @@ -0,0 +1,3 @@ +from setuptools import setup + +setup() From 905ab546f7b89e7193ac2f374712b54018541211 Mon Sep 17 00:00:00 2001 From: AlexHeide Date: Wed, 19 Oct 2022 11:31:35 -0400 Subject: [PATCH 2/7] Update lint.yaml --- .github/workflows/lint.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index e4158f90..b8991715 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -30,5 +30,5 @@ jobs: python -m pip install black==22.10 # pinned because the style changes with version - name: Lint shell: bash - run: black conordantmodes --check + run: black concordantmodes --check From 0026b61e04382059ca1e8fc9e3dd6e8c1c029f7e Mon Sep 17 00:00:00 2001 From: AlexHeide Date: Wed, 19 Oct 2022 11:39:41 -0400 Subject: [PATCH 3/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a8753f59..a772c493 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

Code style: black -<\p> +

This method allows the user to compute an approximate higher level of theory hessian from a lower level of theory hessian, using a linearly scaling number of single point energies at the higher level of theory. [Gradient cost findif as opposed to a full hessian cost] So, one could compute frequencies at a CCSD(T)/cc-pVDZ level of theory, then compute the diagonal, From 2e597bf489981a56e8a68ad08cb5d18002514c57 Mon Sep 17 00:00:00 2001 From: Alexander Heide Date: Tue, 21 Mar 2023 16:39:51 -0400 Subject: [PATCH 4/7] blacken --- concordantmodes/__init__.py | 4 +- concordantmodes/_version.py | 155 +++-- concordantmodes/algorithm.py | 6 +- concordantmodes/cma.py | 91 +-- concordantmodes/force_constant.py | 4 +- concordantmodes/gf_method.py | 16 +- concordantmodes/int2cart.py | 1 + concordantmodes/options.py | 4 +- concordantmodes/reap.py | 78 ++- concordantmodes/rmsd.py | 652 +++++++++++++++------- concordantmodes/s_vectors.py | 6 +- concordantmodes/tests/suite_execute.py | 41 +- concordantmodes/tests/test_f_convert.py | 33 +- concordantmodes/tests/test_g_matrix.py | 186 +++++- concordantmodes/tests/test_gf_method.py | 14 +- concordantmodes/tests/test_reap.py | 36 +- concordantmodes/tests/test_s_vectors.py | 438 +++++++-------- concordantmodes/tests/test_transf_disp.py | 4 +- concordantmodes/tests/test_zmat.py | 50 +- concordantmodes/zmat.py | 188 ++++--- 20 files changed, 1290 insertions(+), 717 deletions(-) diff --git a/concordantmodes/__init__.py b/concordantmodes/__init__.py index ecd3379a..4d52a61e 100644 --- a/concordantmodes/__init__.py +++ b/concordantmodes/__init__.py @@ -1,3 +1,3 @@ - from . import _version -__version__ = _version.get_versions()['version'] + +__version__ = _version.get_versions()["version"] diff --git a/concordantmodes/_version.py b/concordantmodes/_version.py index 3d72a933..2edba6ca 100644 --- a/concordantmodes/_version.py +++ b/concordantmodes/_version.py @@ -1,4 +1,3 @@ - # This file helps to compute a version number in source trees obtained from # git-archive tarball (such as those provided by githubs download-from-tag # feature). Distribution tarballs (built by setup.py sdist) and build @@ -61,17 +60,18 @@ class NotThisMethod(Exception): def register_vcs_handler(vcs, method): # decorator """Create decorator to mark a method as the handler of a VCS.""" + def decorate(f): """Store f in HANDLERS[vcs][method].""" if vcs not in HANDLERS: HANDLERS[vcs] = {} HANDLERS[vcs][method] = f return f + return decorate -def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, - env=None): +def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, env=None): """Call the given command(s).""" assert isinstance(commands, list) process = None @@ -87,10 +87,14 @@ def run_command(commands, args, cwd=None, verbose=False, hide_stderr=False, try: dispcmd = str([command] + args) # remember shell=False, so use git.cmd on windows, not just git - process = subprocess.Popen([command] + args, cwd=cwd, env=env, - stdout=subprocess.PIPE, - stderr=(subprocess.PIPE if hide_stderr - else None), **popen_kwargs) + process = subprocess.Popen( + [command] + args, + cwd=cwd, + env=env, + stdout=subprocess.PIPE, + stderr=(subprocess.PIPE if hide_stderr else None), + **popen_kwargs, + ) break except OSError: e = sys.exc_info()[1] @@ -125,15 +129,21 @@ def versions_from_parentdir(parentdir_prefix, root, verbose): for _ in range(3): dirname = os.path.basename(root) if dirname.startswith(parentdir_prefix): - return {"version": dirname[len(parentdir_prefix):], - "full-revisionid": None, - "dirty": False, "error": None, "date": None} + return { + "version": dirname[len(parentdir_prefix) :], + "full-revisionid": None, + "dirty": False, + "error": None, + "date": None, + } rootdirs.append(root) root = os.path.dirname(root) # up a level if verbose: - print("Tried directories %s but none started with prefix %s" % - (str(rootdirs), parentdir_prefix)) + print( + "Tried directories %s but none started with prefix %s" + % (str(rootdirs), parentdir_prefix) + ) raise NotThisMethod("rootdir doesn't start with parentdir_prefix") @@ -192,7 +202,7 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): # starting in git-1.8.3, tags are listed as "tag: foo-1.0" instead of # just "foo-1.0". If we see a "tag: " prefix, prefer those. TAG = "tag: " - tags = {r[len(TAG):] for r in refs if r.startswith(TAG)} + tags = {r[len(TAG) :] for r in refs if r.startswith(TAG)} if not tags: # Either we're using git < 1.8.3, or there really are no tags. We use # a heuristic: assume all version tags have a digit. The old git %d @@ -201,7 +211,7 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): # between branches and tags. By ignoring refnames without digits, we # filter out many common branch names like "release" and # "stabilization", as well as "HEAD" and "master". - tags = {r for r in refs if re.search(r'\d', r)} + tags = {r for r in refs if re.search(r"\d", r)} if verbose: print("discarding '%s', no digits" % ",".join(refs - tags)) if verbose: @@ -209,24 +219,31 @@ def git_versions_from_keywords(keywords, tag_prefix, verbose): for ref in sorted(tags): # sorting will prefer e.g. "2.0" over "2.0rc1" if ref.startswith(tag_prefix): - r = ref[len(tag_prefix):] + r = ref[len(tag_prefix) :] # Filter out refs that exactly match prefix or that don't start # with a number once the prefix is stripped (mostly a concern # when prefix is '') - if not re.match(r'\d', r): + if not re.match(r"\d", r): continue if verbose: print("picking %s" % r) - return {"version": r, - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": None, - "date": date} + return { + "version": r, + "full-revisionid": keywords["full"].strip(), + "dirty": False, + "error": None, + "date": date, + } # no suitable tags, so version is "0+unknown", but full hex is still there if verbose: print("no suitable tags, using unknown + full revision id") - return {"version": "0+unknown", - "full-revisionid": keywords["full"].strip(), - "dirty": False, "error": "no suitable tags", "date": None} + return { + "version": "0+unknown", + "full-revisionid": keywords["full"].strip(), + "dirty": False, + "error": "no suitable tags", + "date": None, + } @register_vcs_handler("git", "pieces_from_vcs") @@ -248,8 +265,7 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): env.pop("GIT_DIR", None) runner = functools.partial(runner, env=env) - _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, - hide_stderr=not verbose) + _, rc = runner(GITS, ["rev-parse", "--git-dir"], cwd=root, hide_stderr=not verbose) if rc != 0: if verbose: print("Directory %s not under git control" % root) @@ -257,10 +273,19 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): # if there is a tag matching tag_prefix, this yields TAG-NUM-gHEX[-dirty] # if there isn't one, this yields HEX[-dirty] (no NUM) - describe_out, rc = runner(GITS, [ - "describe", "--tags", "--dirty", "--always", "--long", - "--match", f"{tag_prefix}[[:digit:]]*" - ], cwd=root) + describe_out, rc = runner( + GITS, + [ + "describe", + "--tags", + "--dirty", + "--always", + "--long", + "--match", + f"{tag_prefix}[[:digit:]]*", + ], + cwd=root, + ) # --long was added in git-1.5.5 if describe_out is None: raise NotThisMethod("'git describe' failed") @@ -275,8 +300,7 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): pieces["short"] = full_out[:7] # maybe improved later pieces["error"] = None - branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], - cwd=root) + branch_name, rc = runner(GITS, ["rev-parse", "--abbrev-ref", "HEAD"], cwd=root) # --abbrev-ref was added in git-1.6.3 if rc != 0 or branch_name is None: raise NotThisMethod("'git rev-parse --abbrev-ref' returned error") @@ -316,17 +340,16 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): dirty = git_describe.endswith("-dirty") pieces["dirty"] = dirty if dirty: - git_describe = git_describe[:git_describe.rindex("-dirty")] + git_describe = git_describe[: git_describe.rindex("-dirty")] # now we have TAG-NUM-gHEX or HEX if "-" in git_describe: # TAG-NUM-gHEX - mo = re.search(r'^(.+)-(\d+)-g([0-9a-f]+)$', git_describe) + mo = re.search(r"^(.+)-(\d+)-g([0-9a-f]+)$", git_describe) if not mo: # unparsable. Maybe git-describe is misbehaving? - pieces["error"] = ("unable to parse git-describe output: '%s'" - % describe_out) + pieces["error"] = "unable to parse git-describe output: '%s'" % describe_out return pieces # tag @@ -335,10 +358,12 @@ def git_pieces_from_vcs(tag_prefix, root, verbose, runner=run_command): if verbose: fmt = "tag '%s' doesn't start with prefix '%s'" print(fmt % (full_tag, tag_prefix)) - pieces["error"] = ("tag '%s' doesn't start with prefix '%s'" - % (full_tag, tag_prefix)) + pieces["error"] = "tag '%s' doesn't start with prefix '%s'" % ( + full_tag, + tag_prefix, + ) return pieces - pieces["closest-tag"] = full_tag[len(tag_prefix):] + pieces["closest-tag"] = full_tag[len(tag_prefix) :] # distance: number of commits since tag pieces["distance"] = int(mo.group(2)) @@ -387,8 +412,7 @@ def render_pep440(pieces): rendered += ".dirty" else: # exception #1 - rendered = "0+untagged.%d.g%s" % (pieces["distance"], - pieces["short"]) + rendered = "0+untagged.%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered @@ -417,8 +441,7 @@ def render_pep440_branch(pieces): rendered = "0" if pieces["branch"] != "master": rendered += ".dev0" - rendered += "+untagged.%d.g%s" % (pieces["distance"], - pieces["short"]) + rendered += "+untagged.%d.g%s" % (pieces["distance"], pieces["short"]) if pieces["dirty"]: rendered += ".dirty" return rendered @@ -579,11 +602,13 @@ def render_git_describe_long(pieces): def render(pieces, style): """Render the given version pieces into the requested style.""" if pieces["error"]: - return {"version": "unknown", - "full-revisionid": pieces.get("long"), - "dirty": None, - "error": pieces["error"], - "date": None} + return { + "version": "unknown", + "full-revisionid": pieces.get("long"), + "dirty": None, + "error": pieces["error"], + "date": None, + } if not style or style == "default": style = "pep440" # the default @@ -607,9 +632,13 @@ def render(pieces, style): else: raise ValueError("unknown style '%s'" % style) - return {"version": rendered, "full-revisionid": pieces["long"], - "dirty": pieces["dirty"], "error": None, - "date": pieces.get("date")} + return { + "version": rendered, + "full-revisionid": pieces["long"], + "dirty": pieces["dirty"], + "error": None, + "date": pieces.get("date"), + } def get_versions(): @@ -623,8 +652,7 @@ def get_versions(): verbose = cfg.verbose try: - return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, - verbose) + return git_versions_from_keywords(get_keywords(), cfg.tag_prefix, verbose) except NotThisMethod: pass @@ -633,13 +661,16 @@ def get_versions(): # versionfile_source is the relative path from the top of the source # tree (where the .git directory might live) to this file. Invert # this to find the root from __file__. - for _ in cfg.versionfile_source.split('/'): + for _ in cfg.versionfile_source.split("/"): root = os.path.dirname(root) except NameError: - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to find root of source tree", - "date": None} + return { + "version": "0+unknown", + "full-revisionid": None, + "dirty": None, + "error": "unable to find root of source tree", + "date": None, + } try: pieces = git_pieces_from_vcs(cfg.tag_prefix, root, verbose) @@ -653,6 +684,10 @@ def get_versions(): except NotThisMethod: pass - return {"version": "0+unknown", "full-revisionid": None, - "dirty": None, - "error": "unable to compute version", "date": None} + return { + "version": "0+unknown", + "full-revisionid": None, + "dirty": None, + "error": "unable to compute version", + "date": None, + } diff --git a/concordantmodes/algorithm.py b/concordantmodes/algorithm.py index 6764c8d8..bc9b647a 100644 --- a/concordantmodes/algorithm.py +++ b/concordantmodes/algorithm.py @@ -62,7 +62,7 @@ def coupling_diagnostic(self, a, initial_fc, tolerance): indices = [] diag = np.zeros((a, a)) # with open("S_p.npy", "rb") as x: - # S = np.load(x) + # S = np.load(x) for x in range(a): for y in range(a): if x == y: @@ -73,7 +73,7 @@ def coupling_diagnostic(self, a, initial_fc, tolerance): diag = np.absolute(diag) print(diag) # with open("D.npy", "wb") as q: - # np.save(q, diag) + # np.save(q, diag) # diag[np.abs(diag) < 1e-31] = 1e-30 data = np.abs(diag) hist, bin_edges = np.histogram(data, bins=a) @@ -86,6 +86,6 @@ def coupling_diagnostic(self, a, initial_fc, tolerance): indices_new.append(index) indices = indices_new # if self.options.clean_house: - # os.system("rm D.npy S_p.npy") + # os.system("rm D.npy S_p.npy") return indices diff --git a/concordantmodes/cma.py b/concordantmodes/cma.py index abe69136..06c2118a 100644 --- a/concordantmodes/cma.py +++ b/concordantmodes/cma.py @@ -122,16 +122,16 @@ def run(self): deriv_level=self.options.deriv_level_init, ) init_disp.run() - + prog_init = self.options.program_init prog_name_init = prog_init.split("@")[0] if self.options.gen_disps_init: - if os.path.exists(rootdir + '/DispsInit'): - if os.path.exists(rootdir + '/oldDispsInit'): - shutil.rmtree(rootdir + '/oldDispsInit') - shutil.copytree(rootdir + '/DispsInit',rootdir + '/oldDispsInit') - shutil.rmtree(rootdir + '/DispsInit') + if os.path.exists(rootdir + "/DispsInit"): + if os.path.exists(rootdir + "/oldDispsInit"): + shutil.rmtree(rootdir + "/oldDispsInit") + shutil.copytree(rootdir + "/DispsInit", rootdir + "/oldDispsInit") + shutil.rmtree(rootdir + "/DispsInit") dir_obj_init = DirectoryTree( prog_name_init, @@ -149,11 +149,15 @@ def run(self): dir_obj_init.run() if not self.options.calc_init: - print("The initial displacements have been generated, now they must be run locally.") + print( + "The initial displacements have been generated, now they must be run locally." + ) raise RuntimeError else: - if not os.path.exists(rootdir + '/DispsInit'): - print("You need to have a DispsInit directory already present if you want to proceed under current conditions!") + if not os.path.exists(rootdir + "/DispsInit"): + print( + "You need to have a DispsInit directory already present if you want to proceed under current conditions!" + ) raise RuntimeError os.chdir(rootdir + "/DispsInit") @@ -204,7 +208,7 @@ def run(self): self.options.molly_regex_init, self.options.success_regex_init, deriv_level=self.options.deriv_level_init, - #disp_sym = init_disp.disp_sym + # disp_sym = init_disp.disp_sym ) reap_obj_init.run() @@ -219,7 +223,7 @@ def run(self): p_array_init = np.zeros(np.eye(len(eigs_init)).shape) m_array_init = np.zeros(np.eye(len(eigs_init)).shape) ref_en_init = None - + # Need to convert this array here from cartesians to internals using projected A-tensor for i in indices: grad_s_vec = SVectors( @@ -273,7 +277,7 @@ def run(self): F = np.dot(self.TED_obj.proj.T, np.dot(F, self.TED_obj.proj)) if self.options.coords != "ZMAT": g_mat.G = np.dot(self.TED_obj.proj.T, np.dot(g_mat.G, self.TED_obj.proj)) - + # Run the GF matrix method with the internal F-Matrix and computed G-Matrix! print("Initial Frequencies:") init_GF = GFMethod( @@ -305,7 +309,6 @@ def run(self): ) TED_GF.run() - # S = TED_GF.S initial_fc = TED_GF.eig_v eigs = len(TED_GF.S) @@ -321,7 +324,7 @@ def run(self): self.zmat_obj, self.options, self.zmat_obj.variable_dictionary_final ) s_vec.run(self.zmat_obj.cartesians_final, False, proj=self.TED_obj.proj) - + transf_disp = TransfDisp( s_vec, self.zmat_obj, @@ -350,11 +353,11 @@ def run(self): prog = self.options.program progname = prog.split("@")[0] if self.options.gen_disps: - if os.path.exists(rootdir+'Disps'): - if os.path.exists(rootdir + '/oldDisps'): - shutil.rmtree(rootdir + '/oldDisps') - shutil.copytree(rootdir + '/Disps',rootdir + '/oldDisps') - shutil.rmtree(rootdir + '/Disps') + if os.path.exists(rootdir + "Disps"): + if os.path.exists(rootdir + "/oldDisps"): + shutil.rmtree(rootdir + "/oldDisps") + shutil.copytree(rootdir + "/Disps", rootdir + "/oldDisps") + shutil.rmtree(rootdir + "/Disps") dir_obj = DirectoryTree( progname, self.zmat_obj, @@ -368,17 +371,21 @@ def run(self): "Disps", ) dir_obj.run() - + if not self.options.calc: - print("The displacements have been generated, now they must be run locally.") + print( + "The displacements have been generated, now they must be run locally." + ) raise RuntimeError else: - if not os.path.exists(rootdir + '/Disps'): - print("You need to have a Disps directory already present if you want to proceed under current conditions!") + if not os.path.exists(rootdir + "/Disps"): + print( + "You need to have a Disps directory already present if you want to proceed under current conditions!" + ) raise RuntimeError - + os.chdir(rootdir + "/Disps") - + if self.options.calc: disp_list = [] for i in os.listdir(rootdir + "/Disps"): @@ -431,7 +438,7 @@ def run(self): self.options.gradient_regex, self.options.molly_regex_init, self.options.success_regex, - #disp_sym = transf_disp.disp_sym + # disp_sym = transf_disp.disp_sym ) reap_obj.run() @@ -458,18 +465,18 @@ def run(self): g_mat = GMatrix(self.zmat_obj, s_vec, self.options) g_mat.run() - + if self.options.coords != "ZMAT": g_mat.G = np.dot(self.TED_obj.proj.T, np.dot(g_mat.G, self.TED_obj.proj)) - + self.G = np.dot(np.dot(transf_disp.eig_inv, g_mat.G), transf_disp.eig_inv.T) self.G[np.abs(self.G) < self.options.tol] = 0 - + if self.options.benchmark_full: cma = True else: cma = False - + # Final GF Matrix run print("Final Frequencies:") final_GF = GFMethod( @@ -519,11 +526,11 @@ def run(self): self.options.units, ) cart_conv.run() - - #if mol2.size != 0: - # print('I cant believe its not CMA1!') + + # if mol2.size != 0: + # print('I cant believe its not CMA1!') # if self.options.rmsd: - # + # # rmsd_geom = RMSD() # rmsd_geom.run(mol1,mol2) @@ -626,9 +633,9 @@ def run(self): print("printing algo indices", algo.indices) diagnostic_indices = algo.indices # with open("L_full.npy", "rb") as w: - # L_full = np.load(w) + # L_full = np.load(w) # with open("L_0.npy", "rb") as x: - # L_0 = np.load(x) + # L_0 = np.load(x) # L_inv = LA.inv(L_full) # S = np.dot(L_inv, L_0) @@ -670,7 +677,7 @@ def run(self): print("////////////////////////////////////////////") self.TED_obj.run(np.dot(init_GF.L, final_GF.L), final_GF.freq) # if self.options.clean_house: - # os.system("rm L_full.npy") + # os.system("rm L_full.npy") # This code prints out the frequencies in order of energy as well # as the ZPVE in several different units. @@ -684,9 +691,9 @@ def run(self): + " (hartrees) " ) # if self.options.clean_house: - # os.system("rm L_0.npy L_full.npy S.npy Full_fc_levelB.npy") + # os.system("rm L_0.npy L_full.npy S.npy Full_fc_levelB.npy") # if self.options.clean_house: - # os.system("rm S_p.npy") - # path = os.getcwd() + "/L_full.npy" - # if os.path.isfile(path): - # os.system("rm L_full.npy") + # os.system("rm S_p.npy") + # path = os.getcwd() + "/L_full.npy" + # if os.path.isfile(path): + # os.system("rm L_full.npy") diff --git a/concordantmodes/force_constant.py b/concordantmodes/force_constant.py index 0b3a1287..cff40ec3 100644 --- a/concordantmodes/force_constant.py +++ b/concordantmodes/force_constant.py @@ -65,9 +65,9 @@ def first_deriv(self): # Functions for computing the diagonal and off-diagonal force constants def diag_fc(self, e_p, e_m, e_r, disp): - fc = (e_p - 2 * e_r + e_m) / (disp ** 2) + fc = (e_p - 2 * e_r + e_m) / (disp**2) return fc def off_diag_fc(self, e_pp, e_pi, e_pj, e_mi, e_mj, e_mm, e_r, disp): - fc = (e_pp - e_pi - e_pj + 2 * e_r - e_mi - e_mj + e_mm) / (2 * (disp ** 2)) + fc = (e_pp - e_pi - e_pj + 2 * e_r - e_mi - e_mj + e_mm) / (2 * (disp**2)) return fc diff --git a/concordantmodes/gf_method.py b/concordantmodes/gf_method.py index ce02fadb..cc090766 100644 --- a/concordantmodes/gf_method.py +++ b/concordantmodes/gf_method.py @@ -38,17 +38,17 @@ def run(self): self.L_p = L_p # make sure the correct "primed" or unprimed version is being saved in each instance # if self.cma: - # with open("L_full.npy", "wb") as z: - # np.save(z, L) + # with open("L_full.npy", "wb") as z: + # np.save(z, L) # # if self.cma == False: # # with open("L_intermediate.npy", "wb") as z: # # np.save(z, L) # if self.cma is None: - # with open("L_0.npy", "wb") as z: - # np.save(z, L) + # with open("L_0.npy", "wb") as z: + # np.save(z, L) # if self.cma == "init": - # with open("S_p.npy", "wb") as z: - # np.save(z, S_p) + # with open("S_p.npy", "wb") as z: + # np.save(z, S_p) # Construct the normal mode overlap matrix. Will be useful for off-diagonal diagnostics. L = np.absolute(np.real(self.L)) L_inv = LA.inv(L) @@ -64,8 +64,8 @@ def run(self): self.freq[i] = np.real(self.freq[i]) else: self.freq[i] = -np.imag(self.freq[i]) - - # # This seems to fix the constant warning I get about casting out imaginary values from the complex numbers, + + # # This seems to fix the constant warning I get about casting out imaginary values from the complex numbers, # # however I will need to test it on transition states to see if it captures the imaginary frequencies. # self.freq = np.real(self.freq) # print(self.freq) diff --git a/concordantmodes/int2cart.py b/concordantmodes/int2cart.py index 30363592..1da99036 100644 --- a/concordantmodes/int2cart.py +++ b/concordantmodes/int2cart.py @@ -2,6 +2,7 @@ from numpy import linalg as LA from . import masses + class Int2Cart(object): def __init__(self, zmat, var_dict): self.zmat = zmat diff --git a/concordantmodes/options.py b/concordantmodes/options.py index 66d4ee05..eb1b53bc 100644 --- a/concordantmodes/options.py +++ b/concordantmodes/options.py @@ -19,8 +19,8 @@ def __init__(self, **kwargs): self.disp_tol = kwargs.pop("disp_tol", 0.0001) self.energy_regex = kwargs.pop("energy_regex", "") self.energy_regex_init = kwargs.pop("energy_regex_init", "") - self.gen_disps = kwargs.pop("gen_disps",True) - self.gen_disps_init = kwargs.pop("gen_disps_init",True) + self.gen_disps = kwargs.pop("gen_disps", True) + self.gen_disps_init = kwargs.pop("gen_disps_init", True) self.geom_check = kwargs.pop("geom_check", False) self.gradient_regex = kwargs.pop("gradient_regex", "") self.man_proj = kwargs.pop("man_proj", False) diff --git a/concordantmodes/reap.py b/concordantmodes/reap.py index 336b6ef2..d62c5a93 100644 --- a/concordantmodes/reap.py +++ b/concordantmodes/reap.py @@ -46,8 +46,8 @@ def run(self): else: grad_regex1 = re.compile(self.gradient_regex[0]) grad_regex2 = re.compile(self.gradient_regex[1]) - #molly_regex1 = re.compile(self.molly_regex[0]) - #molly_regex2 = re.compile(self.molly_regex[1]) + # molly_regex1 = re.compile(self.molly_regex[0]) + # molly_regex2 = re.compile(self.molly_regex[1]) eigs = self.eigs if type(eigs) == int: size = eigs @@ -98,7 +98,15 @@ def run(self): ) # print(energy) rel = energy - ref_en - print("Relative plus " + "{:4d}".format(direc) + "{:4d}".format(i) + " " + "{:4d}".format(j) + ": " + "{: 10.9f}".format(rel)) + print( + "Relative plus " + + "{:4d}".format(direc) + + "{:4d}".format(i) + + " " + + "{:4d}".format(j) + + ": " + + "{: 10.9f}".format(rel) + ) rel_en_p[i, j] = rel relative_energies.append([(i, j), "plus", rel, direc]) absolute_energies.append([(i, j), "plus", energy, direc]) @@ -117,7 +125,15 @@ def run(self): # print(energy) rel = energy - ref_en # print("Relative minus " + str(i) + " " + str(j) + ": " + "{:10.6f}".format(rel)) - print("Relative minus " + "{:4d}".format(direc + 1) + "{:4d}".format(i) + " " + "{:4d}".format(j) + ": " + "{: 10.9f}".format(rel)) + print( + "Relative minus " + + "{:4d}".format(direc + 1) + + "{:4d}".format(i) + + " " + + "{:4d}".format(j) + + ": " + + "{: 10.9f}".format(rel) + ) rel_en_m[i, j] = rel relative_energies.append([(i, j), "minus", rel, direc + 1]) absolute_energies.append([(i, j), "minus", energy, direc + 1]) @@ -139,22 +155,22 @@ def run(self): print(rel_en_m) os.chdir("..") # if self.options.printout_rel_e: - # auxiliary = "" - # header = "Index, relative energy, directory \n" - # print(json.dumps(energy)) - # with open("auxiliary", "a") as file: - # file.seek(0) - # file.truncate() - # file.writelines(header) - # for energy in print_en: - # with open("auxiliary", "a") as file: - # file.writelines(str(energy) + "\n") + # auxiliary = "" + # header = "Index, relative energy, directory \n" + # print(json.dumps(energy)) + # with open("auxiliary", "a") as file: + # file.seek(0) + # file.truncate() + # file.writelines(header) + # for energy in print_en: + # with open("auxiliary", "a") as file: + # file.writelines(str(energy) + "\n") else: indices = self.indices p_grad_array = np.array([]) m_grad_array = np.array([]) Sum = 0 - #print(indices) + # print(indices) for index in indices: grad = self.reap_gradients( 2 * index + 1 - Sum, grad_regex1, grad_regex2 @@ -173,33 +189,33 @@ def run(self): self.p_grad_array = p_grad_array.reshape((-1, len(grad))) self.m_grad_array = m_grad_array.reshape((-1, len(grad))) os.chdir("..") - + def reap_molly(self, direc, molly1_regex, molly2_regex): os.chdir("./" + str(direc)) with open("output.dat", "r") as file: datta = file.read() - #try to grab init geom + # try to grab init geom initmolreg = r"\s*\{([^}]+)\}" reggie = re.compile(initmolreg) initmol = re.findall(initmolreg, datta) - initmol = initmol[0].split('\n') + initmol = initmol[0].split("\n") label_xyz = r"(\s*.*(\s*-?\d+\.\d+){3})+" molly_init = np.array([]) - insertion = [] - c = 0 + insertion = [] + c = 0 for x, line in enumerate(initmol): if re.search(label_xyz, line): if re.search(r"\s*[xX]", line): insertion.append(succ) - else: + else: re.search(label_xyz, line) temp = line.split()[-3:] molly_init = np.append(molly_init, np.array(temp)) c += 1 - + molly_init = molly_init.astype("float64") - molly_init = np.split(molly_init, len(molly_init)/3) - + molly_init = np.split(molly_init, len(molly_init) / 3) + with open("output.dat", "r") as file: data = file.readlines() for i in range(len(data)): @@ -218,14 +234,14 @@ def reap_molly(self, direc, molly1_regex, molly2_regex): if re.search(label_xyz, line): temp = line.split()[-3:] molly_array = np.append(molly_array, np.array(temp)) - + molly_array = molly_array.astype("float64") - molly_array = np.split(molly_array, len(molly_array)/3) + molly_array = np.split(molly_array, len(molly_array) / 3) rearrange = [] for i, initial in enumerate(molly_init): for j, final in enumerate(molly_array): if sum(np.abs(initial - final)) < 1e-6: - + rearrange.append(j) os.chdir("..") return rearrange, insertion @@ -251,7 +267,7 @@ def reap_energies(self, direc, success_regex, energy_regex): return energy - #def reap_gradients(self, direc, grad_regex1, grad_regex2, shuffle,insertion): + # def reap_gradients(self, direc, grad_regex1, grad_regex2, shuffle,insertion): def reap_gradients(self, direc, grad_regex1, grad_regex2): os.chdir("./" + str(direc)) grad_array = [] @@ -274,14 +290,14 @@ def reap_gradients(self, direc, grad_regex1, grad_regex2): grad_array.append(temp) grad_array = np.array(grad_array) grad_array = grad_array.astype("float64") - #grad_array = grad_array[shuffle] - #if len(insertion) > 0: + # grad_array = grad_array[shuffle] + # if len(insertion) > 0: # counter = 0 # for x in insertion: # grad_array = np.insert(grad_array, x, [0.0, 0.0, 0.0], axis = 0) # counter += 1 # grad_array = np.reshape(grad_array, (-1, 3)) - grad_array = grad_array.flatten() + grad_array = grad_array.flatten() if not grad1: print("Gradient failed at " + os.getcwd()) raise RuntimeError diff --git a/concordantmodes/rmsd.py b/concordantmodes/rmsd.py index eda42a4a..2aa160fa 100644 --- a/concordantmodes/rmsd.py +++ b/concordantmodes/rmsd.py @@ -3,306 +3,570 @@ import scipy.linalg as la import time + class RMSD(object): - def __init__(self): - print('Nothing to init') - - #computes the moment of inertia given a molecule and the axis - - def compute_IAB(self,mol1,mol2,n): - iab = np.zeros((3,3)) - for a in range(0,3): - for b in range(0,3): + print("Nothing to init") + + # computes the moment of inertia given a molecule and the axis + + def compute_IAB(self, mol1, mol2, n): + iab = np.zeros((3, 3)) + for a in range(0, 3): + for b in range(0, 3): if a == b: kron = 1 else: kron = 0 - for k in range(0,n): - iab[a,b] += (mol1[k,0]*mol2[k,0] + mol1[k,1]*mol2[k,1] + mol1[k,2]*mol2[k,2])*kron - mol1[k,a]*mol2[k,b] - return iab + for k in range(0, n): + iab[a, b] += ( + mol1[k, 0] * mol2[k, 0] + + mol1[k, 1] * mol2[k, 1] + + mol1[k, 2] * mol2[k, 2] + ) * kron - mol1[k, a] * mol2[k, b] + return iab - #locate centroid of molecule + # locate centroid of molecule def centroid(self, mol, n): cent = 0 for i, x in enumerate(mol): cent += x - cent = cent/n + cent = cent / n return cent - #translate centroid of molecule to origin + # translate centroid of molecule to origin - def translate(self,mol,n): - molt = np.zeros((n,3)) - mol_cent = self.centroid(mol,n) + def translate(self, mol, n): + molt = np.zeros((n, 3)) + mol_cent = self.centroid(mol, n) for i, x in enumerate(mol): - molt[i] = x - mol_cent + molt[i] = x - mol_cent return molt - #compute mixed inertia tensor + # compute mixed inertia tensor + + def compute_QAB(self, iab): + qab = np.array( + [ + [iab[0, 0], iab[0, 1], iab[0, 2], iab[1, 2]], + [iab[1, 0], iab[1, 1], iab[1, 2], iab[2, 0]], + [iab[2, 0], iab[2, 1], iab[2, 2], iab[0, 1]], + [-iab[2, 1], -iab[0, 2], -iab[1, 0], 0], + ] + ) + return qab - def compute_QAB(self,iab): - qab = np.array([ - [ iab[0,0], iab[0,1], iab[0,2],iab[1,2]], - [ iab[1,0], iab[1,1], iab[1,2],iab[2,0]], - [ iab[2,0], iab[2,1], iab[2,2],iab[0,1]], - [-iab[2,1],-iab[0,2],-iab[1,0], 0]]) - return qab - - #the whole point of this code, minimize this + # the whole point of this code, minimize this def compute_SminX(self, mol1, mol2, qab, n): SminX = 0 - for k in range(0,n): - SminX += (np.linalg.norm(mol1[k] - mol2[k]))**2 + for k in range(0, n): + SminX += (np.linalg.norm(mol1[k] - mol2[k])) ** 2 w, v = np.linalg.eig(qab + qab.T) ind = np.argmin(w) - SminX += 2*w[ind] + SminX += 2 * w[ind] return SminX - #compute moments of inertia + # compute moments of inertia def compute_moi(self, mol, n): - mxx, myy, mzz = 0., 0., 0. - for k in range(0,n): - mxx += mol[k,0]**2 - myy += mol[k,1]**2 - mzz += mol[k,2]**2 + mxx, myy, mzz = 0.0, 0.0, 0.0 + for k in range(0, n): + mxx += mol[k, 0] ** 2 + myy += mol[k, 1] ** 2 + mzz += mol[k, 2] ** 2 return mxx, myy, mzz - - #compute products of intertia + + # compute products of intertia def compute_poi(self, mol, n): - mxy, mxz, myz = 0., 0., 0. - for k in range(0,n): - mxy += mol[k,0]*mol[k,1] - mxz += mol[k,0]*mol[k,2] - myz += mol[k,1]*mol[k,2] + mxy, mxz, myz = 0.0, 0.0, 0.0 + for k in range(0, n): + mxy += mol[k, 0] * mol[k, 1] + mxz += mol[k, 0] * mol[k, 2] + myz += mol[k, 1] * mol[k, 2] return mxy, mxz, myz - #check signs of x, y, and z coordinates + # check signs of x, y, and z coordinates def sign_check(self, mol1_rot, mol2_rot): - s12 = [0., 0., 0.] + s12 = [0.0, 0.0, 0.0] s1 = (np.sign(mol1_rot)).T s2 = (np.sign(mol2_rot)).T - for k in range(0,3): - s12[k] = np.sign(np.sum(s1[k]*s2[k])) - return s12 - - #change signs of x, y, and z coordinates using s12 vector values - - def sign_change(self, mol1_rot, mol2_rot, s12, n): - for j in range(0,3): + for k in range(0, 3): + s12[k] = np.sign(np.sum(s1[k] * s2[k])) + return s12 + + # change signs of x, y, and z coordinates using s12 vector values + + def sign_change(self, mol1_rot, mol2_rot, s12, n): + for j in range(0, 3): if s12[j] != 0: - for k in range(0,n): - mol2_rot[k,j] = s12[j]*mol2_rot[k,j] + for k in range(0, n): + mol2_rot[k, j] = s12[j] * mol2_rot[k, j] return mol2_rot - #compute resultant vector between two sets of cartesians + # compute resultant vector between two sets of cartesians def compute_res0(self, mol1_rot, mol2_rot, n): - res0 = [] - for k in range(0,n): + res0 = [] + for k in range(0, n): result = mol1_rot[k] - mol2_rot[k] result.flatten() res0.append(result) res0 = np.array(res0) res0 = res0.flatten() - return res0 + return res0 - #compute rmsd using resultant vector + # compute rmsd using resultant vector - def compute_rmsd(self, res,n): - rmsd = np.sqrt(np.dot(res,res)/n) + def compute_rmsd(self, res, n): + rmsd = np.sqrt(np.dot(res, res) / n) return rmsd - + def mol_test(self, mol, n): - check = 0 - for k in range(0,n): + check = 0 + for k in range(0, n): check += mol[k] return check - - #First and Second derivatives of the Euler-Rodrigues rotation matrix derived and "simplified" in mathematica. + # First and Second derivatives of the Euler-Rodrigues rotation matrix derived and "simplified" in mathematica. - def norm(self, grud): - return np.sqrt(abs(grud[0])**2 + abs(grud[1])**2 + abs(grud[2])**2) + def norm(self, grud): + return np.sqrt(abs(grud[0]) ** 2 + abs(grud[1]) ** 2 + abs(grud[2]) ** 2) def handwritten_hess(self, mol1, mol2, n): A = 0 B = 0 G = 0 - for z in range(0,5): - grad0, grad1, grad2, hess00, hess01, hess02, hess11, hess12, hess22 = 0., 0., 0., 0., 0., 0., 0., 0., 0. + for z in range(0, 5): + grad0, grad1, grad2, hess00, hess01, hess02, hess11, hess12, hess22 = ( + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + 0.0, + ) for k in range(0, n): - c1 = mol2[k,0] - c2 = mol2[k,1] - c3 = mol2[k,2] - K1 = mol1[k,0] - K2 = mol1[k,1] - K3 = mol1[k,2] - grad0 += ((4 * (-c1 * (-K3 * A * B + K2 * A * G + K2 * B * np.sqrt(1 - A**2 - B**2 - G**2) + K3 * G * np.sqrt(1 - A**2 - B**2 - G**2)) + c2 * (K1 * A * G + 2 * K2 * A * np.sqrt(1 - A**2 - B**2 - G**2) - K1 * B * np.sqrt(1 - A**2 - B**2 - G**2) - K3 * (-1 + 2 * A**2 + B**2 + G**2)) + c3 * (2 * K3 * A * np.sqrt(1 - A**2 - B**2 - G**2) + K2 * (-1 + 2 * A**2 + B**2 + G**2) - K1 * (A * B + G * np.sqrt(1 - A**2 - B**2 - G**2)))))/np.sqrt(1 - A**2 - B**2 - G**2)) - - grad1 += (-(4 * (c2 *(K3 * A * B - K1 * B * G + K1 * A * np.sqrt(1 - A**2 - B**2 - G**2) + K3 * G * np.sqrt(1 - A**2 - B**2 - G**2)) + c3 * (-K2 * A * B - 2 * K3 * B * np.sqrt(1 - A**2 - B**2 - G**2) + K2 * G * np.sqrt(1 - A**2 - B**2 - G**2) + K1 * (-1 + 2 * A**2 + B**2 + G**2)) + c1 * (K2 * B * G + K2 * A * np.sqrt(1 - A**2 - B**2 - G**2) - 2 * K1 * B * np.sqrt(1 - A**2 - B**2 - G**2) - K3 * (-1 + A**2 - 2 * B**2 + G**2))))/np.sqrt(1 - A**2 - B**2 - G**2)) - - grad2 += (-(4 *(c3 *(-K2 * A * G + K1 * B * G + K1 * A * np.sqrt(1 - A**2 - B**2 - G**2) + K2 *B * np.sqrt(1 - A**2 - B**2 - G**2)) + c2 * (K3 *A * G + K3 * B * np.sqrt(1 - A**2 - B**2 - G**2) - 2 * K2 *G * np.sqrt(1 - A**2 - B**2 - G**2) - K1 * (-1 + A**2 + B**2 + 2 * G**2)) + c1 * (-K3 * B * G + K3 * A * np.sqrt(1 - A**2 - B**2 - G**2) - 2 * K1 * G * np.sqrt(1 - A**2 - B**2 - G**2) + K2 * (-1 + A**2 + B**2 + 2 * G**2))))/np.sqrt(1 - A**2 - B**2 - G**2)) - - hess00 += (-((4 * (c1 * (K3 * B - K2 * G) * (-1 + B**2 + G**2) + c3 * (2 * K2 * A**3 - 2* K3 * (1 - A**2 - B**2 - G**2)**(3/2) + 3 * K2 * A * (-1 + B**2 + G**2) - K1 * B * (-1 + B**2 + G**2)) + c2* (-2* K3 *A**3 - 2*K2* (1 - A**2 - B**2 - G**2)**(3/2) - 3 * K3 * A * (-1 + B**2 + G**2) + K1 * G * (-1 + B**2 + G**2))))/(1 - A**2 - B**2 - G**2)**(3/2))) - - hess01 += ((4* (-c1 * K3 * A * (-1 + A**2 + G**2) + c2 * K3 * B * (-1 + B**2 + G**2) + c3 * (K1 * A * (-1 + A**2 + G**2) - K2 * B * (-1 + B**2 + G**2)) + c1 * K2 * (-A * B * G + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + np.sqrt(1 - A**2 - B**2 - G**2) * (-1 + B**2 + G**2)) + c2 * K1 * (A * B * G + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + np.sqrt(1 - A**2 - B**2 - G**2) * (-1 + B**2 + G**2))))/(1 - A**2 - B**2 - G**2)**(3/2)) - - - hess02 += ((4* (c1 * K2 * A * (-1 + A**2 + B**2) - c3 * K2* G * (-1 + B**2 + G**2) + c2 * (-K1 * A * (-1 + A**2 + B**2) - K3 * G * (-1 + B**2 + G**2)) + c3 * K1 * (-A * B * G + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + np.sqrt(1 - A**2 - B**2 - G**2) * (-1 + B**2 + G**2)) + c1 * K3 * (A * B * G + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + np.sqrt(1 - A**2 - B**2 - G**2) * (-1 + B**2 + G**2))))/(1 - A**2 - B**2 - G**2)**(3/2)) - - hess11 += (-((4 *(-c2* (K3 *A - K1 * G) * (-1 + A**2 + G**2) + c3* (-2 * K3 * (1 - A**2 - B**2 - G**2)**(3/2) + K2 *A * (-1 + A**2 + G**2) - K1 *B * (-3 + 3 * A**2 + 2 *B**2 + 3 *G**2)) + c1* (-2 * K1 * (1 - A**2 - B**2 - G**2)**(3/2) - K2 *G * (-1 + A**2 + G**2) + K3 *B * (-3 + 3 *A**2 + 2 *B**2 + 3 *G**2))))/(1 - A**2 - B**2 - G**2)**(3/2))) - - hess12 += ((4 * (c1 * K2 * B * (-1 + A**2 + B**2) + c3 * K1 * G * (-1 + A**2 + G**2) - c1 * K3 * G * (-1 + A**2 + G**2) + c3 * K2 * (A * B * G + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + np.sqrt(1 - A**2 - B**2 - G**2) * (-1 + B**2 + G**2)) + c2 * (-K1 * B * (-1 + A**2 + B**2) + K3 * (-A * B * G + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + np.sqrt(1 - A**2 - B**2 - G**2) * (-1 + B**2 + G**2)))))/(1 - A**2 - B**2 - G**2)**(3/2)) - - hess22 += (-((4 * (c3 * (K2 *A - K1 *B) * (-1 + A**2 + B**2) + c1 * (K3 * B * (-1 + A**2 + B**2) - 3 * K2 *(-1 + A**2 + B**2) * G - 2 * K2 * G**3 - 2 * K1 * (1 - A**2 - B**2 - G**2)**(3/2)) + c2 * (-K3 *A* (-1 + A**2 + B**2) + 3 * K1 * (-1 + A**2 + B**2) * G + 2 * K1 * G**3 - 2 * K2 * (1 - A**2 - B**2 - G**2)**(3/2))))/(1 - A**2 - B**2 - G**2)**(3/2))) + c1 = mol2[k, 0] + c2 = mol2[k, 1] + c3 = mol2[k, 2] + K1 = mol1[k, 0] + K2 = mol1[k, 1] + K3 = mol1[k, 2] + grad0 += ( + 4 + * ( + -c1 + * ( + -K3 * A * B + + K2 * A * G + + K2 * B * np.sqrt(1 - A**2 - B**2 - G**2) + + K3 * G * np.sqrt(1 - A**2 - B**2 - G**2) + ) + + c2 + * ( + K1 * A * G + + 2 * K2 * A * np.sqrt(1 - A**2 - B**2 - G**2) + - K1 * B * np.sqrt(1 - A**2 - B**2 - G**2) + - K3 * (-1 + 2 * A**2 + B**2 + G**2) + ) + + c3 + * ( + 2 * K3 * A * np.sqrt(1 - A**2 - B**2 - G**2) + + K2 * (-1 + 2 * A**2 + B**2 + G**2) + - K1 * (A * B + G * np.sqrt(1 - A**2 - B**2 - G**2)) + ) + ) + ) / np.sqrt(1 - A**2 - B**2 - G**2) + + grad1 += -( + 4 + * ( + c2 + * ( + K3 * A * B + - K1 * B * G + + K1 * A * np.sqrt(1 - A**2 - B**2 - G**2) + + K3 * G * np.sqrt(1 - A**2 - B**2 - G**2) + ) + + c3 + * ( + -K2 * A * B + - 2 * K3 * B * np.sqrt(1 - A**2 - B**2 - G**2) + + K2 * G * np.sqrt(1 - A**2 - B**2 - G**2) + + K1 * (-1 + 2 * A**2 + B**2 + G**2) + ) + + c1 + * ( + K2 * B * G + + K2 * A * np.sqrt(1 - A**2 - B**2 - G**2) + - 2 * K1 * B * np.sqrt(1 - A**2 - B**2 - G**2) + - K3 * (-1 + A**2 - 2 * B**2 + G**2) + ) + ) + ) / np.sqrt(1 - A**2 - B**2 - G**2) + + grad2 += -( + 4 + * ( + c3 + * ( + -K2 * A * G + + K1 * B * G + + K1 * A * np.sqrt(1 - A**2 - B**2 - G**2) + + K2 * B * np.sqrt(1 - A**2 - B**2 - G**2) + ) + + c2 + * ( + K3 * A * G + + K3 * B * np.sqrt(1 - A**2 - B**2 - G**2) + - 2 * K2 * G * np.sqrt(1 - A**2 - B**2 - G**2) + - K1 * (-1 + A**2 + B**2 + 2 * G**2) + ) + + c1 + * ( + -K3 * B * G + + K3 * A * np.sqrt(1 - A**2 - B**2 - G**2) + - 2 * K1 * G * np.sqrt(1 - A**2 - B**2 - G**2) + + K2 * (-1 + A**2 + B**2 + 2 * G**2) + ) + ) + ) / np.sqrt(1 - A**2 - B**2 - G**2) + + hess00 += -( + ( + 4 + * ( + c1 * (K3 * B - K2 * G) * (-1 + B**2 + G**2) + + c3 + * ( + 2 * K2 * A**3 + - 2 * K3 * (1 - A**2 - B**2 - G**2) ** (3 / 2) + + 3 * K2 * A * (-1 + B**2 + G**2) + - K1 * B * (-1 + B**2 + G**2) + ) + + c2 + * ( + -2 * K3 * A**3 + - 2 * K2 * (1 - A**2 - B**2 - G**2) ** (3 / 2) + - 3 * K3 * A * (-1 + B**2 + G**2) + + K1 * G * (-1 + B**2 + G**2) + ) + ) + ) + / (1 - A**2 - B**2 - G**2) ** (3 / 2) + ) + + hess01 += ( + 4 + * ( + -c1 * K3 * A * (-1 + A**2 + G**2) + + c2 * K3 * B * (-1 + B**2 + G**2) + + c3 + * ( + K1 * A * (-1 + A**2 + G**2) + - K2 * B * (-1 + B**2 + G**2) + ) + + c1 + * K2 + * ( + -A * B * G + + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + + np.sqrt(1 - A**2 - B**2 - G**2) + * (-1 + B**2 + G**2) + ) + + c2 + * K1 + * ( + A * B * G + + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + + np.sqrt(1 - A**2 - B**2 - G**2) + * (-1 + B**2 + G**2) + ) + ) + ) / (1 - A**2 - B**2 - G**2) ** (3 / 2) + + hess02 += ( + 4 + * ( + c1 * K2 * A * (-1 + A**2 + B**2) + - c3 * K2 * G * (-1 + B**2 + G**2) + + c2 + * ( + -K1 * A * (-1 + A**2 + B**2) + - K3 * G * (-1 + B**2 + G**2) + ) + + c3 + * K1 + * ( + -A * B * G + + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + + np.sqrt(1 - A**2 - B**2 - G**2) + * (-1 + B**2 + G**2) + ) + + c1 + * K3 + * ( + A * B * G + + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + + np.sqrt(1 - A**2 - B**2 - G**2) + * (-1 + B**2 + G**2) + ) + ) + ) / (1 - A**2 - B**2 - G**2) ** (3 / 2) + + hess11 += -( + ( + 4 + * ( + -c2 * (K3 * A - K1 * G) * (-1 + A**2 + G**2) + + c3 + * ( + -2 * K3 * (1 - A**2 - B**2 - G**2) ** (3 / 2) + + K2 * A * (-1 + A**2 + G**2) + - K1 * B * (-3 + 3 * A**2 + 2 * B**2 + 3 * G**2) + ) + + c1 + * ( + -2 * K1 * (1 - A**2 - B**2 - G**2) ** (3 / 2) + - K2 * G * (-1 + A**2 + G**2) + + K3 * B * (-3 + 3 * A**2 + 2 * B**2 + 3 * G**2) + ) + ) + ) + / (1 - A**2 - B**2 - G**2) ** (3 / 2) + ) + + hess12 += ( + 4 + * ( + c1 * K2 * B * (-1 + A**2 + B**2) + + c3 * K1 * G * (-1 + A**2 + G**2) + - c1 * K3 * G * (-1 + A**2 + G**2) + + c3 + * K2 + * ( + A * B * G + + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + + np.sqrt(1 - A**2 - B**2 - G**2) + * (-1 + B**2 + G**2) + ) + + c2 + * ( + -K1 * B * (-1 + A**2 + B**2) + + K3 + * ( + -A * B * G + + (A**2) * np.sqrt(1 - A**2 - B**2 - G**2) + + np.sqrt(1 - A**2 - B**2 - G**2) + * (-1 + B**2 + G**2) + ) + ) + ) + ) / (1 - A**2 - B**2 - G**2) ** (3 / 2) + + hess22 += -( + ( + 4 + * ( + c3 * (K2 * A - K1 * B) * (-1 + A**2 + B**2) + + c1 + * ( + K3 * B * (-1 + A**2 + B**2) + - 3 * K2 * (-1 + A**2 + B**2) * G + - 2 * K2 * G**3 + - 2 * K1 * (1 - A**2 - B**2 - G**2) ** (3 / 2) + ) + + c2 + * ( + -K3 * A * (-1 + A**2 + B**2) + + 3 * K1 * (-1 + A**2 + B**2) * G + + 2 * K1 * G**3 + - 2 * K2 * (1 - A**2 - B**2 - G**2) ** (3 / 2) + ) + ) + ) + / (1 - A**2 - B**2 - G**2) ** (3 / 2) + ) grud = np.array([grad0, grad1, grad2]) - huss = np.array([ - [hess00, hess01, hess02], - [hess01, hess11, hess12], - [hess02, hess12, hess22]]) + huss = np.array( + [ + [hess00, hess01, hess02], + [hess01, hess11, hess12], + [hess02, hess12, hess22], + ] + ) bars = np.dot(grud, np.linalg.inv(huss)) if self.norm(grud) < 1e-12: - - print('Optimization of Euler-angles optimization has converged') - print(f'Norm of gradient is {self.norm(grud)}') + + print("Optimization of Euler-angles optimization has converged") + print(f"Norm of gradient is {self.norm(grud)}") break A = A - bars[0] - B = B - bars[1] + B = B - bars[1] G = G - bars[2] - - return A, B, G - - def derive_opt_rotate(self, mol1_rot, mol2_rot, n):#, oilrod): - a, b, c =self.handwritten_hess(mol1_rot, mol2_rot, n) + + return A, B, G + + def derive_opt_rotate(self, mol1_rot, mol2_rot, n): # , oilrod): + a, b, c = self.handwritten_hess(mol1_rot, mol2_rot, n) print(a, b, c) - - rot_matrix = np.array([[1 - 2*b**2 - 2*c**2, 2*(a*b+c*np.sqrt(1-a**2 - b**2 -c**2)), 2*(a*c-b*np.sqrt(1-a**2 - b**2 -c**2))], - [2*(a*b-c*np.sqrt(1-a**2 - b**2 -c**2)), 1 - 2*a**2 - 2*c**2, 2*(b*c+a*np.sqrt(1-a**2 - b**2 -c**2))], - [2*(a*c+b*np.sqrt(1-a**2 - b**2 -c**2)), 2*(b*c-a*np.sqrt(1-a**2 - b**2 -c**2)), 1 - 2*a**2 - 2*b**2] - ]) - + rot_matrix = np.array( + [ + [ + 1 - 2 * b**2 - 2 * c**2, + 2 * (a * b + c * np.sqrt(1 - a**2 - b**2 - c**2)), + 2 * (a * c - b * np.sqrt(1 - a**2 - b**2 - c**2)), + ], + [ + 2 * (a * b - c * np.sqrt(1 - a**2 - b**2 - c**2)), + 1 - 2 * a**2 - 2 * c**2, + 2 * (b * c + a * np.sqrt(1 - a**2 - b**2 - c**2)), + ], + [ + 2 * (a * c + b * np.sqrt(1 - a**2 - b**2 - c**2)), + 2 * (b * c - a * np.sqrt(1 - a**2 - b**2 - c**2)), + 1 - 2 * a**2 - 2 * b**2, + ], + ] + ) mol2Final = (np.dot(rot_matrix, mol2_rot.T)).T - return mol2Final - + return mol2Final + def eigen_convention(self, v1, v2): for i in range(0, v2.shape[0]): rowmax = np.argmax(abs(v2[i])) - if v2[i,rowmax] < 0: + if v2[i, rowmax] < 0: v2[i] = v2[i] * -1 - v1[i] = v1[i] * -1 - return v1, v2 + v1[i] = v1[i] * -1 + return v1, v2 def run(self, mol1, mol2): - start = time.time() + start = time.time() n = mol2.shape[0] - - mol1 = self.translate(mol1,n) - mol2 = self.translate(mol2,n) - - iab = self.compute_IAB(mol1,mol2,n) + + mol1 = self.translate(mol1, n) + mol2 = self.translate(mol2, n) + + iab = self.compute_IAB(mol1, mol2, n) qab = self.compute_QAB(iab) - - SminX = self.compute_SminX(mol1,mol2,qab,n) + + SminX = self.compute_SminX(mol1, mol2, qab, n) mxx1, myy1, mzz1 = self.compute_moi(mol1, n) mxx2, myy2, mzz2 = self.compute_moi(mol2, n) mxy1, mxz1, myz1 = self.compute_poi(mol1, n) mxy2, mxz2, myz2 = self.compute_poi(mol2, n) - - M1_I = np.array([ - [myy1 + mzz1, -mxy1, -mxz1], - [-mxy1, mxx1 + mzz1, -myz1], - [-mxz1, -myz1, mxx1 + myy1]]) - - M2_I = np.array([ - [myy2 + mzz2, -mxy2, -mxz2], - [-mxy2, mxx2 + mzz2, -myz2], - [-mxz2, -myz2, mxx2 + myy2]]) - - - W1, V1 = np.linalg.eig(M1_I) - W2, V2 = np.linalg.eig(M2_I) - #sort eigensolutions, not sorted because np only autosorts eigenvalues of self-adjoint systems using np.eigh + + M1_I = np.array( + [ + [myy1 + mzz1, -mxy1, -mxz1], + [-mxy1, mxx1 + mzz1, -myz1], + [-mxz1, -myz1, mxx1 + myy1], + ] + ) + + M2_I = np.array( + [ + [myy2 + mzz2, -mxy2, -mxz2], + [-mxy2, mxx2 + mzz2, -myz2], + [-mxz2, -myz2, mxx2 + myy2], + ] + ) + + W1, V1 = np.linalg.eig(M1_I) + W2, V2 = np.linalg.eig(M2_I) + # sort eigensolutions, not sorted because np only autosorts eigenvalues of self-adjoint systems using np.eigh idx1 = W1.argsort()[::-1] W1 = W1[idx1] - V1 = V1[:,idx1] - + V1 = V1[:, idx1] + idx2 = W2.argsort()[::-1] W2 = W2[idx2] - V2 = V2[:,idx2] - - + V2 = V2[:, idx2] + V1 = V1.T V2 = V2.T - #for troubleshooting purposes, this function changed the eigenvector sign convention to match mathematica's - #it will not affect the final rmsd value, just the sign convention on the molecule - #V1, V2 = self.eigen_convention(V1, V2) - + # for troubleshooting purposes, this function changed the eigenvector sign convention to match mathematica's + # it will not affect the final rmsd value, just the sign convention on the molecule + # V1, V2 = self.eigen_convention(V1, V2) + mol1_rot = (np.dot(V1, mol1.T)).T mol2_rot = (np.dot(V2, mol2.T)).T - + s12 = self.sign_check(mol1_rot, mol2_rot) - + mol2_rot = self.sign_change(mol1_rot, mol2_rot, s12, n) - - + iab_rot = self.compute_IAB(mol1_rot, mol2_rot, n) qab_rot = self.compute_QAB(iab_rot) - SminX_rot = self.compute_SminX(mol1_rot,mol2_rot,qab_rot,n) - + SminX_rot = self.compute_SminX(mol1_rot, mol2_rot, qab_rot, n) + res0 = self.compute_res0(mol1_rot, mol2_rot, n) rmsd0 = self.compute_rmsd(res0, n) - - print(f'RMSD prior to optimization of the rotatation parameters {rmsd0}') + print(f"RMSD prior to optimization of the rotatation parameters {rmsd0}") mxx1, myy1, mzz1 = self.compute_moi(mol1_rot, n) mxx2, myy2, mzz2 = self.compute_moi(mol2_rot, n) mxy1, mxz1, myz1 = self.compute_poi(mol1_rot, n) mxy2, mxz2, myz2 = self.compute_poi(mol2_rot, n) - - M1_I = np.array([ - [myy1 + mzz1, -mxy1, -mxz1], - [-mxy1, mxx1 + mzz1, -myz1], - [-mxz1, -myz1, mxx1 + myy1]]) - - M2_I = np.array([ - [myy2 + mzz2, -mxy2, -mxz2], - [-mxy2, mxx2 + mzz2, -myz2], - [-mxz2, -myz2, mxx2 + myy2]]) - - print('CHECK: Is molecule at origin? These should be zero vectors') - print(self.mol_test(mol1_rot, n)) - print(""" - - """) - print(self.mol_test(mol2_rot, n)) - print(""" - - """) - print('CHECK: Are the products of inertia zero?') + + M1_I = np.array( + [ + [myy1 + mzz1, -mxy1, -mxz1], + [-mxy1, mxx1 + mzz1, -myz1], + [-mxz1, -myz1, mxx1 + myy1], + ] + ) + + M2_I = np.array( + [ + [myy2 + mzz2, -mxy2, -mxz2], + [-mxy2, mxx2 + mzz2, -myz2], + [-mxz2, -myz2, mxx2 + myy2], + ] + ) + + print("CHECK: Is molecule at origin? These should be zero vectors") + print(self.mol_test(mol1_rot, n)) + print( + """ + + """ + ) + print(self.mol_test(mol2_rot, n)) + print( + """ + + """ + ) + print("CHECK: Are the products of inertia zero?") print(M1_I) - print(""" + print( + """ - """) - print(M2_I) - print(""" + """ + ) + print(M2_I) + print( + """ - """) - print('Beginning optimization of Euler-angle parameters') - mol2_rot = self.derive_opt_rotate(mol1_rot, mol2_rot, n) + """ + ) + print("Beginning optimization of Euler-angle parameters") + mol2_rot = self.derive_opt_rotate(mol1_rot, mol2_rot, n) resfinal = self.compute_res0(mol1_rot, mol2_rot, n) rmsdfinal = self.compute_rmsd(resfinal, n) - print('rmsdfinal') - print(rmsdfinal) + print("rmsdfinal") + print(rmsdfinal) end = time.time() - print(f'It took {end - start} seconds to compute the rmsd of {rmsdfinal}') - self.rmsd = rmsdfinal - + print(f"It took {end - start} seconds to compute the rmsd of {rmsdfinal}") + self.rmsd = rmsdfinal diff --git a/concordantmodes/s_vectors.py b/concordantmodes/s_vectors.py index d7a07197..da092387 100644 --- a/concordantmodes/s_vectors.py +++ b/concordantmodes/s_vectors.py @@ -434,9 +434,9 @@ def run(self, carts, B_proj, proj=None, second_order=False): # Now we acquire a linearly independant set of internal coordinates from the diagonalized # BB^T Matrix if not self.options.man_proj: - #if self.options.man_proj: - #if True: - #print("just this once bb") + # if self.options.man_proj: + # if True: + # print("just this once bb") if self.options.coords.upper() != "ZMAT": proj, eigs, _ = LA.svd(self.B) proj[np.abs(proj) < tol] = 0 diff --git a/concordantmodes/tests/suite_execute.py b/concordantmodes/tests/suite_execute.py index b844655d..c4d0f1e1 100644 --- a/concordantmodes/tests/suite_execute.py +++ b/concordantmodes/tests/suite_execute.py @@ -16,12 +16,14 @@ from concordantmodes.transf_disp import TransfDisp from concordantmodes.zmat import Zmat + class execute_suite(object): - def __init__(self,path,coords,s_vec_bool=False,disp_transf=False): + def __init__(self, path, coords, s_vec_bool=False, disp_transf=False): self.path = path self.coords = coords self.s_vec_bool = s_vec_bool self.disp_transf = disp_transf + def run(self): os.chdir(self.path) self.options = Options() @@ -30,15 +32,16 @@ def run(self): self.ZMAT = Zmat(self.options) output_test = self.ZMAT.zmat_read("zmat") self.ZMAT.zmat_process(output_test) - + self.ZMAT.zmat_calc() - - self.ZMAT.zmat_compile() + self.ZMAT.zmat_compile() - self.s_vec = SVectors(self.ZMAT, self.options, self.ZMAT.variable_dictionary_init) + self.s_vec = SVectors( + self.ZMAT, self.options, self.ZMAT.variable_dictionary_init + ) self.s_vec.run(self.ZMAT.cartesians_init, True) - + self.TED_obj = TED(self.s_vec.proj, self.ZMAT) self.g_mat = GMatrix(self.ZMAT, self.s_vec, self.options) self.g_mat.run() @@ -48,18 +51,32 @@ def run(self): return self.FC = FcRead("fc.dat") self.FC.run() - self.f_conv = FcConv(self.FC.fc_mat, self.s_vec, self.ZMAT, "internal", False, self.TED_obj, self.options.units) + self.f_conv = FcConv( + self.FC.fc_mat, + self.s_vec, + self.ZMAT, + "internal", + False, + self.TED_obj, + self.options.units, + ) self.f_conv.run() - - + self.F = np.dot(self.TED_obj.proj.T, np.dot(self.f_conv.F, self.TED_obj.proj)) self.G = np.dot(self.TED_obj.proj.T, np.dot(self.g_mat.G, self.TED_obj.proj)) - self.GF = GFMethod(self.G, self.F, self.options.tol, self.options.proj_tol, self.ZMAT, self.TED_obj) - + self.GF = GFMethod( + self.G, + self.F, + self.options.tol, + self.options.proj_tol, + self.ZMAT, + self.TED_obj, + ) + self.GF.run() self.algo = Algorithm(len(self.GF.L), None, self.options) self.algo.run() - + self.disps = TransfDisp( self.s_vec, self.ZMAT, diff --git a/concordantmodes/tests/test_f_convert.py b/concordantmodes/tests/test_f_convert.py index ff8fb59a..67445d2c 100644 --- a/concordantmodes/tests/test_f_convert.py +++ b/concordantmodes/tests/test_f_convert.py @@ -15,13 +15,22 @@ np.set_printoptions(precision=9) -suite = execute_suite("./ref_data/f_conv_test/","Redundant") +suite = execute_suite("./ref_data/f_conv_test/", "Redundant") suite.run() + def test_f_convert2int(): errors = [] - FCint = FcConv(suite.FC.fc_mat, suite.s_vec, suite.ZMAT, "internal", False, suite.TED_obj, suite.options.units) + FCint = FcConv( + suite.FC.fc_mat, + suite.s_vec, + suite.ZMAT, + "internal", + False, + suite.TED_obj, + suite.options.units, + ) FCint.run() FCintR = FcRead(suite.path + "/fc_int.dat") @@ -38,9 +47,25 @@ def test_f_convert2int(): def test_f_convert2cart(): errors = [] - FCint = FcConv(suite.FC.fc_mat, suite.s_vec, suite.ZMAT, "internal", False, suite.TED_obj, suite.options.units) + FCint = FcConv( + suite.FC.fc_mat, + suite.s_vec, + suite.ZMAT, + "internal", + False, + suite.TED_obj, + suite.options.units, + ) FCint.run() - FCcart = FcConv(FCint.F, suite.s_vec, suite.ZMAT, "cartesian", False, suite.TED_obj, suite.options.units) + FCcart = FcConv( + FCint.F, + suite.s_vec, + suite.ZMAT, + "cartesian", + False, + suite.TED_obj, + suite.options.units, + ) FCcart.run() FCintC = FcRead(suite.path + "/fc_cart.dat") diff --git a/concordantmodes/tests/test_g_matrix.py b/concordantmodes/tests/test_g_matrix.py index 8bc264d4..6c2082e1 100644 --- a/concordantmodes/tests/test_g_matrix.py +++ b/concordantmodes/tests/test_g_matrix.py @@ -12,9 +12,10 @@ from concordantmodes.s_vectors import SVectors from concordantmodes.zmat import Zmat -suite = execute_suite("./ref_data/s_vec_test/","Custom",s_vec_bool=True) +suite = execute_suite("./ref_data/s_vec_test/", "Custom", s_vec_bool=True) suite.run() + def test_compute_G(): errors = [] suite.s_vec.run(suite.ZMAT.cartesians_init, True) @@ -22,19 +23,176 @@ def test_compute_G(): g_mat = GMatrix(suite.ZMAT, suite.s_vec, suite.options) g_mat.run() - - G_ref = [[ 8.00121376e-05, -1.32715756e-05, -1.73338728e-05, -1.73338729e-05, -1.02628585e-05, -1.80496698e-05, -2.12604120e-05, -2.04478488e-05, -2.04478488e-05, 0.00000000e+00, 0.00000000e+00, 5.00626441e-05], - [-1.32715756e-05, 5.90035575e-04, -1.42964000e-05, -1.42962793e-05, 0.00000000e+00, -1.62927551e-05, -1.62927552e-05, 1.75444777e-05, 1.75444053e-05, 2.59451267e-05, -2.59456007e-05, -3.20145289e-05], - [-1.73338728e-05, -1.42964000e-05, 5.90035575e-04, -1.47211823e-05, 0.00000000e+00, 7.52213196e-06, 1.84338806e-05, -1.57546251e-05, 2.05416834e-05, 4.34117245e-06, 2.83001423e-05, -1.09112087e-05], - [-1.73338729e-05, -1.42962793e-05, -1.47211823e-05, 5.90035575e-04, 0.00000000e+00, 7.52323926e-06, 1.84338159e-05, 2.05416834e-05, -1.57546251e-05, -2.82999534e-05, -4.34098373e-06, -1.09111166e-05], - [-1.02628585e-05, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 5.78617728e-04, -1.21882934e-05, -1.21882934e-05, 5.81936740e-06, 5.82022404e-06, 4.38837729e-06, -4.38818656e-06, 0.00000000e+00], - [-1.80496698e-05, -1.62927551e-05, 7.52213196e-06, 7.52323926e-06, -1.21882934e-05, 1.91331520e-04, 1.56088852e-05, -7.79557410e-06, -7.79672166e-06, -1.25700962e-05, 1.25695499e-05, 6.80353003e-06], - [-2.12604120e-05, -1.62927552e-05, 1.84338806e-05, 1.84338159e-05, -1.21882934e-05, 1.56088852e-05, 1.55264109e-04, 1.00850854e-06, 1.00856159e-06, -1.56356767e-05, 1.56366743e-05, -1.42465168e-04], - [-2.04478488e-05, 1.75444777e-05, -1.57546251e-05, 2.05416834e-05, 5.81936740e-06, -7.79557410e-06, 1.00850854e-06, 1.55208823e-04, -1.12229743e-06, -1.04056524e-05, -2.64304905e-05, -1.16816043e-04], - [-2.04478488e-05, 1.75444053e-05, 2.05416834e-05, -1.57546251e-05, 5.82022404e-06, -7.79672166e-06, 1.00856159e-06, -1.12229743e-06, 1.55208824e-04, 2.64300382e-05, 1.04052001e-05, -1.16815711e-04], - [ 0.00000000e+00, 2.59451267e-05, 4.34117245e-06, -2.82999534e-05, 4.38837729e-06, -1.25700962e-05, -1.56356767e-05, -1.04056524e-05, 2.64300382e-05, 3.76136297e-04, 1.94198975e-04, -7.83770679e-05], - [ 0.00000000e+00, -2.59456007e-05, 2.83001423e-05, -4.34098373e-06, -4.38818656e-06, 1.25695499e-05, 1.56366743e-05, -2.64304905e-05, 1.04052001e-05, 1.94198975e-04, 3.76137316e-04, 7.83768965e-05], - [ 5.00626441e-05, -3.20145289e-05, -1.09112087e-05, -1.09111166e-05, 0.00000000e+00, 6.80353003e-06, -1.42465168e-04, -1.16816043e-04, -1.16815711e-04, -7.83770679e-05, 7.83768965e-05, 3.78284543e-04]] + G_ref = [ + [ + 8.00121376e-05, + -1.32715756e-05, + -1.73338728e-05, + -1.73338729e-05, + -1.02628585e-05, + -1.80496698e-05, + -2.12604120e-05, + -2.04478488e-05, + -2.04478488e-05, + 0.00000000e00, + 0.00000000e00, + 5.00626441e-05, + ], + [ + -1.32715756e-05, + 5.90035575e-04, + -1.42964000e-05, + -1.42962793e-05, + 0.00000000e00, + -1.62927551e-05, + -1.62927552e-05, + 1.75444777e-05, + 1.75444053e-05, + 2.59451267e-05, + -2.59456007e-05, + -3.20145289e-05, + ], + [ + -1.73338728e-05, + -1.42964000e-05, + 5.90035575e-04, + -1.47211823e-05, + 0.00000000e00, + 7.52213196e-06, + 1.84338806e-05, + -1.57546251e-05, + 2.05416834e-05, + 4.34117245e-06, + 2.83001423e-05, + -1.09112087e-05, + ], + [ + -1.73338729e-05, + -1.42962793e-05, + -1.47211823e-05, + 5.90035575e-04, + 0.00000000e00, + 7.52323926e-06, + 1.84338159e-05, + 2.05416834e-05, + -1.57546251e-05, + -2.82999534e-05, + -4.34098373e-06, + -1.09111166e-05, + ], + [ + -1.02628585e-05, + 0.00000000e00, + 0.00000000e00, + 0.00000000e00, + 5.78617728e-04, + -1.21882934e-05, + -1.21882934e-05, + 5.81936740e-06, + 5.82022404e-06, + 4.38837729e-06, + -4.38818656e-06, + 0.00000000e00, + ], + [ + -1.80496698e-05, + -1.62927551e-05, + 7.52213196e-06, + 7.52323926e-06, + -1.21882934e-05, + 1.91331520e-04, + 1.56088852e-05, + -7.79557410e-06, + -7.79672166e-06, + -1.25700962e-05, + 1.25695499e-05, + 6.80353003e-06, + ], + [ + -2.12604120e-05, + -1.62927552e-05, + 1.84338806e-05, + 1.84338159e-05, + -1.21882934e-05, + 1.56088852e-05, + 1.55264109e-04, + 1.00850854e-06, + 1.00856159e-06, + -1.56356767e-05, + 1.56366743e-05, + -1.42465168e-04, + ], + [ + -2.04478488e-05, + 1.75444777e-05, + -1.57546251e-05, + 2.05416834e-05, + 5.81936740e-06, + -7.79557410e-06, + 1.00850854e-06, + 1.55208823e-04, + -1.12229743e-06, + -1.04056524e-05, + -2.64304905e-05, + -1.16816043e-04, + ], + [ + -2.04478488e-05, + 1.75444053e-05, + 2.05416834e-05, + -1.57546251e-05, + 5.82022404e-06, + -7.79672166e-06, + 1.00856159e-06, + -1.12229743e-06, + 1.55208824e-04, + 2.64300382e-05, + 1.04052001e-05, + -1.16815711e-04, + ], + [ + 0.00000000e00, + 2.59451267e-05, + 4.34117245e-06, + -2.82999534e-05, + 4.38837729e-06, + -1.25700962e-05, + -1.56356767e-05, + -1.04056524e-05, + 2.64300382e-05, + 3.76136297e-04, + 1.94198975e-04, + -7.83770679e-05, + ], + [ + 0.00000000e00, + -2.59456007e-05, + 2.83001423e-05, + -4.34098373e-06, + -4.38818656e-06, + 1.25695499e-05, + 1.56366743e-05, + -2.64304905e-05, + 1.04052001e-05, + 1.94198975e-04, + 3.76137316e-04, + 7.83768965e-05, + ], + [ + 5.00626441e-05, + -3.20145289e-05, + -1.09112087e-05, + -1.09111166e-05, + 0.00000000e00, + 6.80353003e-06, + -1.42465168e-04, + -1.16816043e-04, + -1.16815711e-04, + -7.83770679e-05, + 7.83768965e-05, + 3.78284543e-04, + ], + ] G_ref = np.array(G_ref) assert np.sum(abs(G_ref - g_mat.G)) < 1.0e-8 diff --git a/concordantmodes/tests/test_gf_method.py b/concordantmodes/tests/test_gf_method.py index f3d06934..7848c641 100644 --- a/concordantmodes/tests/test_gf_method.py +++ b/concordantmodes/tests/test_gf_method.py @@ -16,13 +16,21 @@ from concordantmodes.ted import TED from concordantmodes.zmat import Zmat -suite = execute_suite("./ref_data/f_read_test/","Redundant") +suite = execute_suite("./ref_data/f_read_test/", "Redundant") suite.run() + def test_gf_method(): errors = [] - - GF = GFMethod(suite.G, suite.F, suite.options.tol, suite.options.proj_tol, suite.ZMAT, suite.TED_obj) + + GF = GFMethod( + suite.G, + suite.F, + suite.options.tol, + suite.options.proj_tol, + suite.ZMAT, + suite.TED_obj, + ) GF.run() diff --git a/concordantmodes/tests/test_reap.py b/concordantmodes/tests/test_reap.py index 31de349d..c2dfee1b 100644 --- a/concordantmodes/tests/test_reap.py +++ b/concordantmodes/tests/test_reap.py @@ -20,37 +20,39 @@ from concordantmodes.transf_disp import TransfDisp from concordantmodes.zmat import Zmat -suite = execute_suite("./ref_data/reap_test/","Redundant") +suite = execute_suite("./ref_data/reap_test/", "Redundant") suite.run() + def test_reap(): suite.options.program = "psi4@master" prog = suite.options.program prog_name = prog.split("@")[0] - + suite.options.energy_regex = r"Giraffe The Energy is\s+(\-\d+\.\d+)" suite.options.success_regex = r"beer" # print(os.getcwd()) os.chdir(suite.path + "/Disps") reap_obj = Reap( - prog_name, - suite.ZMAT, - suite.disps.disp_cart, - suite.options, - suite.disps.n_coord, - suite.GF.L, - suite.algo.indices, - suite.options.energy_regex, - suite.options.gradient_regex, - suite.options.molly_regex_init, - suite.options.success_regex - ) + prog_name, + suite.ZMAT, + suite.disps.disp_cart, + suite.options, + suite.disps.n_coord, + suite.GF.L, + suite.algo.indices, + suite.options.energy_regex, + suite.options.gradient_regex, + suite.options.molly_regex_init, + suite.options.success_regex, + ) reap_obj.run() - - ref_en = -76.332189646734 - + + ref_en = -76.332189646734 + os.chdir("../..") assert ref_en == reap_obj.m_en_array[1][1] + # test_reap() diff --git a/concordantmodes/tests/test_s_vectors.py b/concordantmodes/tests/test_s_vectors.py index 37cdca1b..e5117743 100644 --- a/concordantmodes/tests/test_s_vectors.py +++ b/concordantmodes/tests/test_s_vectors.py @@ -11,230 +11,230 @@ from concordantmodes.s_vectors import SVectors from concordantmodes.zmat import Zmat -suite = execute_suite("./ref_data/s_vec_test/","Custom",s_vec_bool=True) +suite = execute_suite("./ref_data/s_vec_test/", "Custom", s_vec_bool=True) suite.run() # B-tensor ran on INTDER B_ref_INTDER = [ - -0.9985411814, - -0.0539954540, - 0.0000000186, - 0.9985411814, - 0.0539954540, - -0.0000000186, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.3415577087, - -0.9398608036, - 0.0000390060, - 0.0000000000, - 0.0000000000, - 0.0000000000, - -0.3415577087, - 0.9398608036, - -0.0000390060, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.3547641089, - 0.4616317820, - -0.8130427571, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - -0.3547641089, - -0.4616317820, - 0.8130427571, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.3547607114, - 0.4616952226, - 0.8130082159, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - -0.3547607114, - -0.4616952226, - -0.8130082159, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - -0.3503184562, - 0.9366306525, - 0.0000008880, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.3503184562, - -0.9366306525, - -0.0000008880, - -0.0380023722, - 0.7027801558, - 0.0000006509, - -0.9382188310, - -1.0679062637, - -0.0000009208, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.9762212031, - 0.3651261079, - 0.0000002699, - 0.8251633666, - 1.0164658738, - -0.0000395779, - 0.0380023721, - -0.7027801552, - 0.0000286922, - -0.8631657387, - -0.3136857186, - 0.0000108857, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.8710959025, - -0.4550382470, - 0.9227364964, - -0.0181444829, - 0.3355468016, - -0.6184037915, - 0.0000000000, - 0.0000000000, - 0.0000000000, - -0.8529514196, - 0.1194914454, - -0.3043327049, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.8710997622, - -0.4551102486, - -0.9226973463, - -0.0181470691, - 0.3355950550, - 0.6183775308, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - -0.8529526931, - 0.1195151936, - 0.3043198155, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0605180559, - -1.1191643373, - -0.8297518682, - -0.0136825993, - 0.2530336329, - 1.4507337555, - 0.0000000000, - 0.0000000000, - 0.0000000000, - -0.0468353818, - 0.8661296968, - 0.4713374292, - 0.0000000000, - 0.0000000000, - 0.0000000000, - -0.0000000749, - 0.0000010076, - -1.0923193164, - -0.0605155392, - 1.1191172225, - -0.8298394512, - 0.0136822035, - -0.2530253119, - 1.4507535579, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.0468334106, - -0.8660929182, - 0.4714052098, - -0.0000000749, - 0.0000010076, - -1.0923193164, - -2.1071998375, - 0.6422844466, - -0.0000271200, - 0.0000000000, - 0.0000000000, - 0.0000000000, - 0.8631657387, - 0.3136857185, - -0.0000127766, - 0.6220183952, - -0.4779861168, - 0.0000199483, - 0.6220157036, - -0.4779840484, - 0.0000199482, - 0.0000000000, - 0.0000000000, - 0.0000000000 + -0.9985411814, + -0.0539954540, + 0.0000000186, + 0.9985411814, + 0.0539954540, + -0.0000000186, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.3415577087, + -0.9398608036, + 0.0000390060, + 0.0000000000, + 0.0000000000, + 0.0000000000, + -0.3415577087, + 0.9398608036, + -0.0000390060, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.3547641089, + 0.4616317820, + -0.8130427571, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + -0.3547641089, + -0.4616317820, + 0.8130427571, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.3547607114, + 0.4616952226, + 0.8130082159, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + -0.3547607114, + -0.4616952226, + -0.8130082159, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + -0.3503184562, + 0.9366306525, + 0.0000008880, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.3503184562, + -0.9366306525, + -0.0000008880, + -0.0380023722, + 0.7027801558, + 0.0000006509, + -0.9382188310, + -1.0679062637, + -0.0000009208, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.9762212031, + 0.3651261079, + 0.0000002699, + 0.8251633666, + 1.0164658738, + -0.0000395779, + 0.0380023721, + -0.7027801552, + 0.0000286922, + -0.8631657387, + -0.3136857186, + 0.0000108857, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.8710959025, + -0.4550382470, + 0.9227364964, + -0.0181444829, + 0.3355468016, + -0.6184037915, + 0.0000000000, + 0.0000000000, + 0.0000000000, + -0.8529514196, + 0.1194914454, + -0.3043327049, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.8710997622, + -0.4551102486, + -0.9226973463, + -0.0181470691, + 0.3355950550, + 0.6183775308, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + -0.8529526931, + 0.1195151936, + 0.3043198155, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0605180559, + -1.1191643373, + -0.8297518682, + -0.0136825993, + 0.2530336329, + 1.4507337555, + 0.0000000000, + 0.0000000000, + 0.0000000000, + -0.0468353818, + 0.8661296968, + 0.4713374292, + 0.0000000000, + 0.0000000000, + 0.0000000000, + -0.0000000749, + 0.0000010076, + -1.0923193164, + -0.0605155392, + 1.1191172225, + -0.8298394512, + 0.0136822035, + -0.2530253119, + 1.4507535579, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.0468334106, + -0.8660929182, + 0.4714052098, + -0.0000000749, + 0.0000010076, + -1.0923193164, + -2.1071998375, + 0.6422844466, + -0.0000271200, + 0.0000000000, + 0.0000000000, + 0.0000000000, + 0.8631657387, + 0.3136857185, + -0.0000127766, + 0.6220183952, + -0.4779861168, + 0.0000199483, + 0.6220157036, + -0.4779840484, + 0.0000199482, + 0.0000000000, + 0.0000000000, + 0.0000000000, ] B_ref_INTDER = np.array(B_ref_INTDER) -B_ref_INTDER = B_ref_INTDER.reshape((12,18)) +B_ref_INTDER = B_ref_INTDER.reshape((12, 18)) B_ref_INTDER[5:] *= 0.529177210903 @@ -243,9 +243,9 @@ def test_compute_B(): s_vec = SVectors(suite.ZMAT, suite.options, suite.ZMAT.variable_dictionary_init) s_vec.run(suite.ZMAT.cartesians_init, True) - B_diff = s_vec.B - B_ref_INTDER assert abs(np.sum(B_diff)) < 1.0e-8 + test_compute_B() diff --git a/concordantmodes/tests/test_transf_disp.py b/concordantmodes/tests/test_transf_disp.py index 2245f426..d7b87014 100644 --- a/concordantmodes/tests/test_transf_disp.py +++ b/concordantmodes/tests/test_transf_disp.py @@ -19,9 +19,10 @@ from concordantmodes.zmat import Zmat print(os.getcwd()) -suite = execute_suite("./ref_data/f_read_test/","Redundant") +suite = execute_suite("./ref_data/f_read_test/", "Redundant") suite.run() + def test_transf_disp(): errors = [] @@ -47,7 +48,6 @@ def test_transf_disp(): [1.941172931083388, -1.5774905865156932, -0.0019238478290682895], ] - if np.setdiff1d(np.array(disp_ref), disps.p_disp[3][3].tolist()).size: errors.append("Computed Displacement does not match the reference.") diff --git a/concordantmodes/tests/test_zmat.py b/concordantmodes/tests/test_zmat.py index 22b34437..e9424d9f 100644 --- a/concordantmodes/tests/test_zmat.py +++ b/concordantmodes/tests/test_zmat.py @@ -19,30 +19,32 @@ ref_Red = ["1 2\n", "1 3\n", "1 4\n", "1 5\n", "2 6\n"] ref_ZMAT = ["C\n", "O 1\n", "H 1 2\n", "H 1 2 3\n", "H 1 2 4\n", "H 2 1 3\n"] ref_Custom = [ - "1 2\n", - "1 3\n", - "1 4\n", - "1 5\n", - "2 6\n", - "2 1 3\n", - "2 1 4\n", - "2 1 5\n", - "3 1 4\n", - "4 1 5\n", - "5 1 3\n", - "6 2 1\n", - "6 2 1 4 T\n", - "4 1 3 5 O\n", - "3 1 2 6 Lx\n", - "3 1 2 6 Ly\n", - "5 1 2 4 L\n", - ] -zmat_read = [(coord1,ref_Red,file1),(coord2,ref_ZMAT,file2),(coord2,ref_Custom,file3)] - -@pytest.mark.parametrize( - "option, expected, file_name",zmat_read -) - + "1 2\n", + "1 3\n", + "1 4\n", + "1 5\n", + "2 6\n", + "2 1 3\n", + "2 1 4\n", + "2 1 5\n", + "3 1 4\n", + "4 1 5\n", + "5 1 3\n", + "6 2 1\n", + "6 2 1 4 T\n", + "4 1 3 5 O\n", + "3 1 2 6 Lx\n", + "3 1 2 6 Ly\n", + "5 1 2 4 L\n", +] +zmat_read = [ + (coord1, ref_Red, file1), + (coord2, ref_ZMAT, file2), + (coord2, ref_Custom, file3), +] + + +@pytest.mark.parametrize("option, expected, file_name", zmat_read) def test_zmat_read(option, expected, file_name): os.chdir("./ref_data/zmat_test/") options = Options() diff --git a/concordantmodes/zmat.py b/concordantmodes/zmat.py index a09a003b..61a09c06 100644 --- a/concordantmodes/zmat.py +++ b/concordantmodes/zmat.py @@ -220,20 +220,18 @@ def zmat_process(self, zmat_output): (len(self.cartesians_init), len(self.cartesians_init)) ) N = len(self.cartesians_init) - adj_mat = np.zeros((N,N)) + adj_mat = np.zeros((N, N)) for i in range(len(self.cartesians_init)): for j in range(i): inter_atomic_len[j, i] = transdisp_inter.calc_bond( self.cartesians_init[i], self.cartesians_init[j] ) - if inter_atomic_len[ - j, i - ] < self.options.bond_threshold * ( + if inter_atomic_len[j, i] < self.options.bond_threshold * ( c_r.get(self.atom_list[i]) + c_r.get(self.atom_list[j]) ): count += 1 - adj_mat[i,j] = 1 - adj_mat[j,i] = 1 + adj_mat[i, j] = 1 + adj_mat[j, i] = 1 self.bond_indices = np.append( self.bond_indices, np.array([str(j + 1), str(i + 1)]) ) @@ -246,9 +244,9 @@ def zmat_process(self, zmat_output): for i in range(len(adj_mat)): print("Degree of vertex " + str(i)) print(np.sum(adj_mat[i])) - adj_mat2 = np.dot(adj_mat,adj_mat) + adj_mat2 = np.dot(adj_mat, adj_mat) for i in range(len(adj_mat2)): - adj_mat2[i,i] = 0 + adj_mat2[i, i] = 0 print("Covalent Radius Scale Factor:") print(self.options.bond_threshold) print("Resulting bond indices:") @@ -287,53 +285,67 @@ def zmat_process(self, zmat_output): oop_count = 0 for i in range(len(self.angle_indices)): for j in range(len(self.bond_indices)): - a = np.setdiff1d( - self.angle_indices[i], self.bond_indices[j] - ) - b = np.intersect1d( - self.angle_indices[i], self.bond_indices[j] - ) - c = np.setdiff1d( - self.bond_indices[j], self.angle_indices[i] - ) + a = np.setdiff1d(self.angle_indices[i], self.bond_indices[j]) + b = np.intersect1d(self.angle_indices[i], self.bond_indices[j]) + c = np.setdiff1d(self.bond_indices[j], self.angle_indices[i]) if len(c) == 1: - d = np.where(self.bond_indices[j]==c)[0][0] + d = np.where(self.bond_indices[j] == c)[0][0] f = 1 - d g = self.bond_indices[j][f] - h = np.where(self.angle_indices[i]==g)[0][0] + h = np.where(self.angle_indices[i] == g)[0][0] if h == 1: # This is an out of plane bend - oop = np.array([self.bond_indices[j][d],self.bond_indices[j][f],a[0],a[1]]) + oop = np.array( + [ + self.bond_indices[j][d], + self.bond_indices[j][f], + a[0], + a[1], + ] + ) self.oop_indices = np.append(self.oop_indices, oop, axis=0) else: # This is a torsion if h: - tor = np.append(self.angle_indices[i].copy(),self.bond_indices[j][d]) + tor = np.append( + self.angle_indices[i].copy(), + self.bond_indices[j][d], + ) else: - tor = np.append(self.bond_indices[j][d],self.angle_indices[i].copy()) - self.torsion_indices = np.append(self.torsion_indices, tor, axis=0) - + tor = np.append( + self.bond_indices[j][d], + self.angle_indices[i].copy(), + ) + self.torsion_indices = np.append( + self.torsion_indices, tor, axis=0 + ) + self.torsion_indices = self.torsion_indices.reshape((-1, 4)) - + # Eliminate all redundancies - self.torsion_indices = np.unique(self.torsion_indices,axis=0) - + self.torsion_indices = np.unique(self.torsion_indices, axis=0) + del_list = np.array([]) for i in range(len(self.torsion_indices)): for j in range(len(self.torsion_indices) - i - 1): - a = np.array([self.torsion_indices[i],np.flip(self.torsion_indices[i+j+1])]) - a = np.unique(a,axis=0) + a = np.array( + [ + self.torsion_indices[i], + np.flip(self.torsion_indices[i + j + 1]), + ] + ) + a = np.unique(a, axis=0) if len(a) == 1: - del_list = np.append(del_list,[i+j+1]) - + del_list = np.append(del_list, [i + j + 1]) + del_list = del_list.astype(int) - self.torsion_indices = np.delete(self.torsion_indices,del_list,axis=0) + self.torsion_indices = np.delete(self.torsion_indices, del_list, axis=0) self.oop_indices = self.oop_indices.reshape((-1, 4)) - + for i in range(len(self.torsion_indices)): - self.torsion_variables.append("D" + str(i+1)) + self.torsion_variables.append("D" + str(i + 1)) for i in range(len(self.oop_indices)): - self.oop_variables.append("O" + str(i+1)) + self.oop_variables.append("O" + str(i + 1)) if self.options.topo_analysis: X_len_walks_dict = {} @@ -342,83 +354,109 @@ def zmat_process(self, zmat_output): X_len_walks_dict["4_length_walks"] = self.torsion_indices.copy() count = 4 - + # self.options.topo_max_it = 4 - + prev_walks = self.torsion_indices.copy() while True: new_walks = np.array([]) for i in range(len(prev_walks)): for j in range(len(self.bond_indices)): - a = np.where(prev_walks[i]==self.bond_indices[j][0])[0] - b = np.where(prev_walks[i]==self.bond_indices[j][1])[0] + a = np.where(prev_walks[i] == self.bond_indices[j][0])[0] + b = np.where(prev_walks[i] == self.bond_indices[j][1])[0] if len(a) and not len(b): if not a[0]: - new_walk = np.append(self.bond_indices[j][1],prev_walks[i].copy()) - new_walks = np.append(new_walks,new_walk) - elif a[0]==count-1: - new_walk = np.append(prev_walks[i].copy(),self.bond_indices[j][1]) - new_walks = np.append(new_walks,new_walk) + new_walk = np.append( + self.bond_indices[j][1], prev_walks[i].copy() + ) + new_walks = np.append(new_walks, new_walk) + elif a[0] == count - 1: + new_walk = np.append( + prev_walks[i].copy(), self.bond_indices[j][1] + ) + new_walks = np.append(new_walks, new_walk) if len(b) and not len(a): if not b[0]: - new_walk = np.append(self.bond_indices[j][0],prev_walks[i].copy()) - new_walks = np.append(new_walks,new_walk) - elif b[0]==count-1: - new_walk = np.append(prev_walks[i].copy(),self.bond_indices[j][0]) - new_walks = np.append(new_walks,new_walk) + new_walk = np.append( + self.bond_indices[j][0], prev_walks[i].copy() + ) + new_walks = np.append(new_walks, new_walk) + elif b[0] == count - 1: + new_walk = np.append( + prev_walks[i].copy(), self.bond_indices[j][0] + ) + new_walks = np.append(new_walks, new_walk) count += 1 # print(count) - new_walks = new_walks.reshape((-1,count)) - new_walks = np.unique(new_walks,axis=0) + new_walks = new_walks.reshape((-1, count)) + new_walks = np.unique(new_walks, axis=0) del_list = np.array([]) for i in range(len(new_walks)): for j in range(len(new_walks) - i - 1): - a = np.array([new_walks[i],np.flip(new_walks[i+j+1])]) - a = np.unique(a,axis=0) + a = np.array([new_walks[i], np.flip(new_walks[i + j + 1])]) + a = np.unique(a, axis=0) if len(a) == 1: - del_list = np.append(del_list,[i+j+1]) - + del_list = np.append(del_list, [i + j + 1]) + del_list = del_list.astype(int) - new_walks = np.delete(new_walks,del_list,axis=0) + new_walks = np.delete(new_walks, del_list, axis=0) prev_walks = new_walks if count > self.options.topo_max_it or not len(new_walks): - print("Walk generator has terminated at walk lengths of " + str(count)) + print( + "Walk generator has terminated at walk lengths of " + + str(count) + ) break X_len_walks_dict[str(count) + "_length_walks"] = new_walks print(str(count) + "_length_walks") print(len(new_walks)) print(new_walks) - dict_len = len(X_len_walks_dict) - 1 cycles_dict = {} for i in range(dict_len): - print(str(i+3)) - cycles_dict[str(i+3)] = np.array([]) - for j in range(len(X_len_walks_dict[str(i+3) + "_length_walks"])): - a = np.array([X_len_walks_dict[str(i+3) + "_length_walks"][j][0],X_len_walks_dict[str(i+3) + "_length_walks"][j][-1]]) + print(str(i + 3)) + cycles_dict[str(i + 3)] = np.array([]) + for j in range(len(X_len_walks_dict[str(i + 3) + "_length_walks"])): + a = np.array( + [ + X_len_walks_dict[str(i + 3) + "_length_walks"][j][0], + X_len_walks_dict[str(i + 3) + "_length_walks"][j][-1], + ] + ) for k in range(len(self.bond_indices)): - b = np.intersect1d(a,self.bond_indices[k]) + b = np.intersect1d(a, self.bond_indices[k]) if len(b) == 2: - cycle = X_len_walks_dict[str(i+3) + "_length_walks"][j].copy() - cycles_dict[str(i+3)] = np.append(cycles_dict[str(i+3)],cycle) - cycles_dict[str(i+3)] = cycles_dict[str(i+3)].reshape((-1,i+3)) + cycle = X_len_walks_dict[str(i + 3) + "_length_walks"][ + j + ].copy() + cycles_dict[str(i + 3)] = np.append( + cycles_dict[str(i + 3)], cycle + ) + cycles_dict[str(i + 3)] = cycles_dict[str(i + 3)].reshape( + (-1, i + 3) + ) del_array = np.array([]) - if len(cycles_dict[str(i+3)]): - for j in range(len(cycles_dict[str(i+3)])): - for k in range(len(cycles_dict[str(i+3)]) - j - 1): - a = np.intersect1d(cycles_dict[str(i+3)][j],cycles_dict[str(i+3)][k + j + 1]) - if len(a) == len(cycles_dict[str(i+3)][0]): - del_array = np.append(del_array,[k + j + 1]) + if len(cycles_dict[str(i + 3)]): + for j in range(len(cycles_dict[str(i + 3)])): + for k in range(len(cycles_dict[str(i + 3)]) - j - 1): + a = np.intersect1d( + cycles_dict[str(i + 3)][j], + cycles_dict[str(i + 3)][k + j + 1], + ) + if len(a) == len(cycles_dict[str(i + 3)][0]): + del_array = np.append(del_array, [k + j + 1]) del_array = del_array.astype(int) del_array = np.unique(del_array) - cycles_dict[str(i+3)] = np.delete(cycles_dict[str(i+3)],del_array,axis=0) - print(cycles_dict[str(i+3)]) - + cycles_dict[str(i + 3)] = np.delete( + cycles_dict[str(i + 3)], del_array, axis=0 + ) + print(cycles_dict[str(i + 3)]) + # raise RuntimeError elif self.options.coords.upper() == "CUSTOM": From 711139b73e5543fa4e976feccbdfcd8fe0f898d9 Mon Sep 17 00:00:00 2001 From: Alexander Heide Date: Tue, 21 Mar 2023 16:41:52 -0400 Subject: [PATCH 5/7] blacken tests --- concordantmodes/tests/ref_data/reap_test/main.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/concordantmodes/tests/ref_data/reap_test/main.py b/concordantmodes/tests/ref_data/reap_test/main.py index 7711a049..3de835f0 100644 --- a/concordantmodes/tests/ref_data/reap_test/main.py +++ b/concordantmodes/tests/ref_data/reap_test/main.py @@ -7,8 +7,8 @@ "cart_insert": 7, "coords": "Redundant", "success_regex": r"beer", - "calc" : False, - "gen_disps" : False, + "calc": False, + "gen_disps": False, "off_diag": False, "off_diag_bands": 3, "off_diag_limit": False, From fd8ff24ff9a7d175035a946f59932d1e46156e13 Mon Sep 17 00:00:00 2001 From: Alexander Heide Date: Tue, 21 Mar 2023 16:53:00 -0400 Subject: [PATCH 6/7] Updates deps and readme --- README.md | 15 ++++++++------- setup.py | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 79200cf0..53e47d20 100644 --- a/README.md +++ b/README.md @@ -30,13 +30,12 @@ To use CMA-0B, the following files must be present in the working directory: tem 3) Set the "gen_disps" keyword to False and run the CMA program one more time. An example is available at the following directory concordantmodes/Example/1_H2O/psi4/CMA_0B/Redundants/manual_submission -======= ->>>>>>> master ## Installation User must have at least: -Python version 3.5.4 -Numpy version 1.13.1 +Python version 3.7 +Numpy version 1.13.3 +qcelemental Developers must have: Pytest 7.2.0 (-c condaforge) @@ -44,10 +43,12 @@ Pytest-xdist 3.0.2 (-c condaforge) A simple way to ensure this program may be run is by creating a conda environment with the following command: -conda create --name CMA python=3.9 sympy numpy scipy +`conda create --name CMA python=3.9 sympy numpy scipy qcelemental` -If you need to install anaconda, consult the official website: -https://www.anaconda.com/products/individual +If you need to install anaconda, consult the [official website](https://www.anaconda.com/products/individual) + +Alternatively, after installing the source code, ensure `pip` is installed and run `pip install -e .` from `ConcordantModes/`. All +dependencies will be installed and `concordantmodes` will be made available as a python module. ## Quickstart Guide diff --git a/setup.py b/setup.py index 49a95b13..a25bf534 100644 --- a/setup.py +++ b/setup.py @@ -21,10 +21,10 @@ packages=setuptools.find_packages(), include_package_data=True, install_requires=[ - "numpy>=1.8.2", + "numpy>=1.13.3", "qcelemental>=0.24.0", "sympy", - "scipy >= 1.2" + "scipy >= 1.4" ], extras_require={ "tests": ["pytest", "pytest-cov", "pytest-pep8",], From f4550a9cdfcd5e3ff4b1ca22bc81ba2672bc6e07 Mon Sep 17 00:00:00 2001 From: Alexander Heide Date: Wed, 22 Mar 2023 14:50:42 -0400 Subject: [PATCH 7/7] Removes func calls to let pytest run normally. Partially pythonizes test suite. --- concordantmodes/tests/test_f_convert.py | 20 +- concordantmodes/tests/test_f_read.py | 2 - concordantmodes/tests/test_g_matrix.py | 5 +- concordantmodes/tests/test_gf_method.py | 18 +- concordantmodes/tests/test_reap.py | 6 +- concordantmodes/tests/test_s_vectors.py | 6 +- concordantmodes/tests/test_transf_disp.py | 16 +- concordantmodes/tests/test_zmat.py | 329 ++++++++++++---------- 8 files changed, 203 insertions(+), 199 deletions(-) diff --git a/concordantmodes/tests/test_f_convert.py b/concordantmodes/tests/test_f_convert.py index 67445d2c..dea30536 100644 --- a/concordantmodes/tests/test_f_convert.py +++ b/concordantmodes/tests/test_f_convert.py @@ -36,12 +36,8 @@ def test_f_convert2int(): FCintR = FcRead(suite.path + "/fc_int.dat") FCintR.run() - if np.setdiff1d(FCint.F.round(decimals=10), FCintR.fc_mat).size: - errors.append( - "Transformed internal force constants do not match the reference." - ) - - assert not errors, "errors occured:\n{}".format("\n".join(errors)) + print("Transformed internal force constants do not match the reference.") + assert np.allclose(FCint.F, FCintR.fc_mat, rtol=0, atol=1e-10) def test_f_convert2cart(): @@ -71,13 +67,5 @@ def test_f_convert2cart(): FCintC = FcRead(suite.path + "/fc_cart.dat") FCintC.run() - if np.setdiff1d(FCcart.F.round(decimals=10), FCintC.fc_mat).size: - errors.append( - "Transformed internal force constants do not match the reference." - ) - - assert not errors, "errors occured:\n{}".format("\n".join(errors)) - - -# test_f_convert2int() -# test_f_convert2cart() + print("Transformed internal force constants do not match the reference.") + assert np.allclose(FCcart.F, FCintC.fc_mat, rtol=0.0, atol=1e-10) diff --git a/concordantmodes/tests/test_f_read.py b/concordantmodes/tests/test_f_read.py index 8735a3f5..5a7415cd 100644 --- a/concordantmodes/tests/test_f_read.py +++ b/concordantmodes/tests/test_f_read.py @@ -384,5 +384,3 @@ def test_f_read(): assert not errors, "errors occured:\n{}".format("\n".join(errors)) - -test_f_read() diff --git a/concordantmodes/tests/test_g_matrix.py b/concordantmodes/tests/test_g_matrix.py index 6c2082e1..0776c330 100644 --- a/concordantmodes/tests/test_g_matrix.py +++ b/concordantmodes/tests/test_g_matrix.py @@ -195,7 +195,4 @@ def test_compute_G(): ] G_ref = np.array(G_ref) - assert np.sum(abs(G_ref - g_mat.G)) < 1.0e-8 - - -test_compute_G() + assert np.allclose(g_mat.G, G_ref, rtol=0.0, atol=1e-8) diff --git a/concordantmodes/tests/test_gf_method.py b/concordantmodes/tests/test_gf_method.py index 7848c641..29353663 100644 --- a/concordantmodes/tests/test_gf_method.py +++ b/concordantmodes/tests/test_gf_method.py @@ -16,13 +16,13 @@ from concordantmodes.ted import TED from concordantmodes.zmat import Zmat -suite = execute_suite("./ref_data/f_read_test/", "Redundant") -suite.run() - def test_gf_method(): errors = [] + suite = execute_suite("./ref_data/f_read_test/", "Redundant") + suite.run() + GF = GFMethod( suite.G, suite.F, @@ -49,14 +49,4 @@ def test_gf_method(): 3837.8500878962245, ] - if np.setdiff1d( - GF.freq.round(decimals=10), np.array(ref_freq).round(decimals=10) - ).size: - errors.append( - "Frequencies computed via the GF method do not match the reference." - ) - - assert not errors, "errors occured:\n{}".format("\n".join(errors)) - - -test_gf_method() + assert np.allclose(GF.freq, np.asarray(ref_freq), rtol=0.0, atol=1e-10) diff --git a/concordantmodes/tests/test_reap.py b/concordantmodes/tests/test_reap.py index c2dfee1b..df73fd89 100644 --- a/concordantmodes/tests/test_reap.py +++ b/concordantmodes/tests/test_reap.py @@ -1,4 +1,5 @@ import fileinput +import math import os import re import shutil @@ -52,7 +53,4 @@ def test_reap(): os.chdir("../..") - assert ref_en == reap_obj.m_en_array[1][1] - - -# test_reap() + assert math.isclose(ref_en, reap_obj.m_en_array[1][1], rel_tol=0.0, abs_tol=1e-10) diff --git a/concordantmodes/tests/test_s_vectors.py b/concordantmodes/tests/test_s_vectors.py index e5117743..1f2e6cae 100644 --- a/concordantmodes/tests/test_s_vectors.py +++ b/concordantmodes/tests/test_s_vectors.py @@ -243,9 +243,5 @@ def test_compute_B(): s_vec = SVectors(suite.ZMAT, suite.options, suite.ZMAT.variable_dictionary_init) s_vec.run(suite.ZMAT.cartesians_init, True) - B_diff = s_vec.B - B_ref_INTDER + assert np.allclose(s_vec.B, B_ref_INTDER, rtol=0.0, atol=1e-8) - assert abs(np.sum(B_diff)) < 1.0e-8 - - -test_compute_B() diff --git a/concordantmodes/tests/test_transf_disp.py b/concordantmodes/tests/test_transf_disp.py index d7b87014..a0b528f7 100644 --- a/concordantmodes/tests/test_transf_disp.py +++ b/concordantmodes/tests/test_transf_disp.py @@ -18,12 +18,12 @@ from concordantmodes.transf_disp import TransfDisp from concordantmodes.zmat import Zmat -print(os.getcwd()) -suite = execute_suite("./ref_data/f_read_test/", "Redundant") -suite.run() - def test_transf_disp(): + print(os.getcwd()) + suite = execute_suite("./ref_data/f_read_test/", "Redundant") + suite.run() + errors = [] disps = TransfDisp( @@ -48,10 +48,4 @@ def test_transf_disp(): [1.941172931083388, -1.5774905865156932, -0.0019238478290682895], ] - if np.setdiff1d(np.array(disp_ref), disps.p_disp[3][3].tolist()).size: - errors.append("Computed Displacement does not match the reference.") - - assert not errors, "errors occured:\n{}".format("\n".join(errors)) - - -test_transf_disp() + assert np.allclose(np.asarray(disp_ref), disps.p_disp[3][3], rtol=0.0, atol=1e-8) diff --git a/concordantmodes/tests/test_zmat.py b/concordantmodes/tests/test_zmat.py index e9424d9f..526f684a 100644 --- a/concordantmodes/tests/test_zmat.py +++ b/concordantmodes/tests/test_zmat.py @@ -1,3 +1,4 @@ +from functools import reduce import pytest import numpy as np import os @@ -44,65 +45,38 @@ ] -@pytest.mark.parametrize("option, expected, file_name", zmat_read) -def test_zmat_read(option, expected, file_name): +def make_zmat(type: str, option: str): os.chdir("./ref_data/zmat_test/") options = Options() options.coords = option ZMAT = Zmat(options) + output_test_red = ZMAT.zmat_read(type) + ZMAT.zmat_process(output_test_red) + os.chdir("../../") + return ZMAT - output_test = ZMAT.zmat_read(file_name) - os.chdir("../../") - assert expected == output_test +zmat = make_zmat("zmat_zmat", "ZMAT") +redundant_zmat = make_zmat("zmat_red", "Redundant") +custom_zmat = make_zmat("zmat_custom", "Custom") +ref_bond_indices = [ + (zmat, [["2", "1"], ["3", "1"], ["4", "1"], ["5", "1"], ["6", "2"]]), + (redundant_zmat, [["1", "2"], ["1", "3"], ["1", "4"], ["1", "5"], ["2", "6"]]), + (custom_zmat, [("1", "2"), ("1", "3"), ("1", "4"), ("1", "5"), ("2", "6")]), +] -def test_zmat_process(): - os.chdir("./ref_data/zmat_test/") - options = Options() - errors = [] +ref_bond_variables = [ + (zmat, ["R1", "R2", "R3", "R4", "R5"]), + (redundant_zmat, ["R1", "R2", "R3", "R4", "R5"]), + (custom_zmat, ["R1", "R2", "R3", "R4", "R5"]), +] - options.coords = "ZMAT" - ZMAT = Zmat(options) - output_test_zmat = ZMAT.zmat_read("zmat_zmat") - ZMAT.zmat_process(output_test_zmat) - ref_bond_indices = [["2", "1"], ["3", "1"], ["4", "1"], ["5", "1"], ["6", "2"]] - ref_angle_indices = [ - ["3", "1", "2"], - ["4", "1", "2"], - ["5", "1", "2"], - ["6", "2", "1"], - ] - ref_torsion_indices = [ - ["4", "1", "2", "3"], - ["5", "1", "2", "4"], - ["6", "2", "1", "3"], - ] - ref_bond_variables = ["R1", "R2", "R3", "R4", "R5"] - ref_angle_variables = ["A2", "A3", "A4", "A5"] - ref_torsion_variables = ["D3", "D4", "D5"] - if not ref_bond_indices == ZMAT.bond_indices: - errors.append("ZMAT bond indices") - if not ref_angle_indices == ZMAT.angle_indices: - errors.append("ZMAT angle indices") - if not ref_torsion_indices == ZMAT.torsion_indices: - errors.append("ZMAT torsion indices") - if not ref_bond_variables == ZMAT.bond_variables: - errors.append("ZMAT bond variables") - if not ref_angle_variables == ZMAT.angle_variables: - errors.append("ZMAT angle variables") - if not ref_torsion_variables == ZMAT.torsion_variables: - errors.append("ZMAT torsion variables") - - options.coords = "Redundant" - ZMAT = Zmat(options) - output_test_red = ZMAT.zmat_read("zmat_red") - ZMAT.zmat_process(output_test_red) - ref_bond_indices = np.array( - [["1", "2"], ["1", "3"], ["1", "4"], ["1", "5"], ["2", "6"]] - ) - ref_angle_indices = np.array( +ref_angle_indices = [ + (zmat, [["3", "1", "2"], ["4", "1", "2"], ["5", "1", "2"], ["6", "2", "1"]]), + ( + redundant_zmat, [ ["2", "1", "3"], ["2", "1", "4"], @@ -111,9 +85,32 @@ def test_zmat_process(): ["3", "1", "4"], ["3", "1", "5"], ["4", "1", "5"], - ] - ) - ref_torsion_indices = np.array( + ], + ), + ( + custom_zmat, + [ + ("2", "1", "3"), + ("2", "1", "4"), + ("2", "1", "5"), + ("3", "1", "4"), + ("4", "1", "5"), + ("5", "1", "3"), + ("6", "2", "1"), + ], + ), +] + +ref_angle_variables = [ + (zmat, ["A2", "A3", "A4", "A5"]), + (redundant_zmat, ["A1", "A2", "A3", "A4", "A5", "A6", "A7"]), + (custom_zmat, ["A1", "A2", "A3", "A4", "A5", "A6", "A7"]), +] + +ref_tors_indices = [ + (zmat, [["4", "1", "2", "3"], ["5", "1", "2", "4"], ["6", "2", "1", "3"]]), + ( + redundant_zmat, [ ["3", "1", "2", "4"], ["3", "1", "2", "5"], @@ -130,103 +127,151 @@ def test_zmat_process(): ["4", "1", "3", "5"], ["3", "1", "4", "5"], ["3", "1", "5", "4"], - ] - ) - ref_bond_variables = ["R1", "R2", "R3", "R4", "R5"] - ref_angle_variables = ["A1", "A2", "A3", "A4", "A5", "A6", "A7"] - ref_torsion_variables = [ - "D1", - "D2", - "D3", - "D4", - "D5", - "D6", - "D7", - "D8", - "D9", - "D10", - "D11", - "D12", - "D13", - "D14", - "D15", - ] - # print(np.setdiff1d(ref_bond_indices,ZMAT.bond_indices)) - if np.setdiff1d(ref_bond_indices, ZMAT.bond_indices).size: - errors.append("Redundant bond indices") - if np.setdiff1d(ref_angle_indices, ZMAT.angle_indices).size: - errors.append("Redundant angle indices") - if np.setdiff1d(ref_torsion_indices, ZMAT.torsion_indices).size: - errors.append("Redundant torsion indices") - if np.setdiff1d(ref_bond_variables, ZMAT.bond_variables).size: - errors.append("Redundant bond variables") - if np.setdiff1d(ref_angle_variables, ZMAT.angle_variables).size: - errors.append("Redundant angle variables") - if np.setdiff1d(ref_torsion_variables, ZMAT.torsion_variables).size: - errors.append("Redundant torsion variables") + ], + ), + (custom_zmat, [("6", "2", "1", "4")]), +] - options.coords = "Custom" +ref_tors_variables = [ + (zmat, ["D3", "D4", "D5"]), + ( + redundant_zmat, + [ + "D1", + "D2", + "D3", + "D4", + "D5", + "D6", + "D7", + "D8", + "D9", + "D10", + "D11", + "D12", + "D13", + "D14", + "D15", + ], + ), + (custom_zmat, ["D1"]), +] + +ref_oop_indices = (custom_zmat.oop_indices, [("4", "1", "3", "5")]) +ref_lin_indices = (custom_zmat.lin_indices, [("5", "1", "2", "4")]) +ref_linx_indices = (custom_zmat.linx_indices, [("3", "1", "2", "6")]) +ref_liny_indices = (custom_zmat.liny_indices, [("3", "1", "2", "6")]) +ref_oop_variables = (custom_zmat.oop_variables, ["O1"]) +ref_lin_variables = (custom_zmat.lin_variables, ["L1"]) +ref_linx_variables = (custom_zmat.linx_variables, ["Lx1"]) +ref_liny_variables = (custom_zmat.liny_variables, ["Ly1"]) + + +@pytest.mark.parametrize("option, expected, file_name", zmat_read) +def test_zmat_read(option, expected, file_name): + os.chdir("./ref_data/zmat_test/") + options = Options() + + options.coords = option ZMAT = Zmat(options) - output_test_red = ZMAT.zmat_read("zmat_custom") - ZMAT.zmat_process(output_test_red) - ref_bond_indices = [("1", "2"), ("1", "3"), ("1", "4"), ("1", "5"), ("2", "6")] - ref_angle_indices = [ - ("2", "1", "3"), - ("2", "1", "4"), - ("2", "1", "5"), - ("3", "1", "4"), - ("4", "1", "5"), - ("5", "1", "3"), - ("6", "2", "1"), - ] - ref_torsion_indices = [("6", "2", "1", "4")] - ref_oop_indices = [("4", "1", "3", "5")] - ref_lin_indices = [("5", "1", "2", "4")] - ref_linx_indices = [("3", "1", "2", "6")] - ref_liny_indices = [("3", "1", "2", "6")] - ref_bond_variables = ["R1", "R2", "R3", "R4", "R5"] - ref_angle_variables = ["A1", "A2", "A3", "A4", "A5", "A6", "A7"] - ref_torsion_variables = ["D1"] - ref_oop_variables = ["O1"] - ref_lin_variables = ["L1"] - ref_linx_variables = ["Lx1"] - ref_liny_variables = ["Ly1"] - - if np.setdiff1d(ref_bond_indices, ZMAT.bond_indices).size: - errors.append("Redundant bond indices") - if np.setdiff1d(ref_angle_indices, ZMAT.angle_indices).size: - errors.append("Redundant angle indices") - if np.setdiff1d(ref_torsion_indices, ZMAT.torsion_indices).size: - errors.append("Redundant torsion indices") - if np.setdiff1d(ref_oop_indices, ZMAT.oop_indices).size: - errors.append("Redundant out-of-plane indices") - if np.setdiff1d(ref_lin_indices, ZMAT.lin_indices).size: - errors.append("Redundant lin indices") - if np.setdiff1d(ref_linx_indices, ZMAT.linx_indices).size: - errors.append("Redundant linx indices") - if np.setdiff1d(ref_liny_indices, ZMAT.liny_indices).size: - errors.append("Redundant liny indices") - if not ref_bond_variables == ZMAT.bond_variables: - errors.append("Redundant bond variables") - if not ref_angle_variables == ZMAT.angle_variables: - errors.append("Redundant angle variables") - if not ref_torsion_variables == ZMAT.torsion_variables: - errors.append("Redundant torsion variables") - if not ref_oop_variables == ZMAT.oop_variables: - errors.append("Redundant out-of-plane variables") - if not ref_lin_variables == ZMAT.lin_variables: - errors.append("Redundant lin variables") - if not ref_linx_variables == ZMAT.linx_variables: - errors.append("Redundant linx variables") - if not ref_linx_variables == ZMAT.linx_variables: - errors.append("Redundant linx variables") + + output_test = ZMAT.zmat_read(file_name) os.chdir("../../") + assert expected == output_test - assert not errors, "errors occured:\n{}".format("\n".join(errors)) + +@pytest.mark.parametrize( + "ZMAT, ref_bond_indices", + ref_bond_indices, + ids=["standard zmat", "automatic redundant", "custom"], +) +def test_zmat_bond_indices(ZMAT, ref_bond_indices): + if isinstance(ZMAT.bond_indices, np.ndarray): + ZMAT.bond_indices = ZMAT.bond_indices.tolist() + assert ZMAT.bond_indices == ref_bond_indices + + +@pytest.mark.parametrize( + "ZMAT, ref_bond_variables", + ref_bond_variables, + ids=["standard zmat", "automatic redundant", "custom"], +) +def test_zmat_bond_variables(ZMAT, ref_bond_variables): + assert list(ZMAT.bond_variables) == ref_bond_variables + + +@pytest.mark.parametrize( + "ZMAT, ref_angle_indices", + ref_angle_indices, + ids=["standard zmat", "automatic redundant", "custom"], +) +def test_zmat_angle_indices(ZMAT, ref_angle_indices): + if isinstance(ZMAT.angle_indices, np.ndarray): + ZMAT.angle_indices = ZMAT.angle_indices.tolist() + assert list(ZMAT.angle_indices) == ref_angle_indices + + +@pytest.mark.parametrize( + "ZMAT, ref_angle_variables", + ref_angle_variables, + ids=["standard zmat", "automatic redundant", "custom"], +) +def test_zmat_angle_variables(ZMAT, ref_angle_variables): + assert list(ZMAT.angle_variables) == ref_angle_variables + + +@pytest.mark.parametrize( + "ZMAT, ref_tors_indices", + ref_tors_indices, + ids=["standard zmat", "automatic redundant", "custom"], +) +def test_zmat_torsion_indices(ZMAT, ref_tors_indices): + if isinstance(ZMAT.torsion_indices, np.ndarray): + ZMAT.torsion_indices = ZMAT.torsion_indices.tolist() + print(ZMAT.torsion_indices) + print(ref_tors_indices) + assert list(ZMAT.torsion_indices) == ref_tors_indices + + +@pytest.mark.parametrize( + "ZMAT, ref_tors_variables", + ref_tors_variables, + ids=["standard zmat", "automatic redundant", "custom"], +) +def test_zmat_torsion_variables(ZMAT, ref_tors_variables): + assert list(ZMAT.torsion_variables) == ref_tors_variables + + +@pytest.mark.parametrize( + "custom_zmat_coords, reference_coords", + [ + ref_oop_indices, + ref_oop_variables, + ref_lin_indices, + ref_lin_variables, + ref_linx_indices, + ref_linx_variables, + ref_liny_indices, + ref_liny_variables, + ], + ids=[ + "redundant out of plane indices", + "redundant out of place variables", + "redundant lin indices", + "redundant lin variables", + "redundant linx indices", + "redundant linx variables", + "redundant_liny indices", + "redundant_liny variables", + ], +) +def test_custom_zmat(custom_zmat_coords, reference_coords): + assert custom_zmat_coords == reference_coords # Only need to test the Custom internal coordinates +# TODO pythonize def test_zmat_calc(): os.chdir("./ref_data/zmat_test/") options = Options() @@ -311,5 +356,3 @@ def test_zmat_compile(): os.chdir("../../") assert not errors, "errors occured:\n{}".format("\n".join(errors)) - -# test_zmat_read_ZMAT()