From d0095c113080d96bbb6d70c590524c16281f83cf Mon Sep 17 00:00:00 2001 From: pwborthwick Date: Sun, 4 Dec 2022 22:19:32 +0000 Subject: [PATCH] . --- .gitattributes | 4 + README.md | 84 + basis/3-21g.gbf | 1216 ++++++++ basis/6-31g.gbf | 960 ++++++ basis/aug-cc-pvdz.gbf | 3522 ++++++++++++++++++++++ basis/cc-pvdz.gbf | 3391 +++++++++++++++++++++ basis/dz.gbf | 333 +++ basis/sto-3g.gbf | 1142 ++++++++ codes/cc2.py | 133 + codes/cc3.py | 502 ++++ codes/cc_rdm.py | 320 ++ codes/ccd.py | 71 + codes/ccsd.py | 208 ++ codes/ccsd_lambda.py | 298 ++ codes/ccsd_t.py | 281 ++ codes/ccsdt.py | 894 ++++++ codes/lccd.py | 56 + codes/lccsd.py | 98 + document/CCSDT-n.ipynb | 244 ++ document/Coupled_Cluster.ipynb | 875 ++++++ document/adc.md | 269 ++ document/aello.html | 4209 +++++++++++++++++++++++++++ document/aello.md | 79 + document/atom.md | 149 + document/basis.md | 67 + document/bomd.md | 154 + document/cctn.md | 25 + document/ci.md | 71 + document/cogus.md | 55 + document/diis.md | 12 + document/eom.md | 364 +++ document/ep.md | 15 + document/fcc.md | 167 ++ document/fci.md | 262 ++ document/force.md | 143 + document/h.md | 170 ++ document/integral.md | 157 + document/mbpt.md | 133 + document/mp.md | 31 + document/ocypete.html | 3757 ++++++++++++++++++++++++ document/ocypete.md | 46 + document/post.md | 71 + document/rESP.md | 216 ++ document/rhf.md | 155 + document/rohf.md | 45 + document/scc.md | 215 ++ document/tdhf.md | 437 +++ document/ucc.md | 60 + document/uhf.md | 54 + document/view.md | 179 ++ media/aello.jpeg | Bin 0 -> 5641 bytes media/ch3coh.png | Bin 0 -> 28686 bytes media/h2-dissociation.png | Bin 0 -> 22629 bytes media/h2-spectrum.png | Bin 0 -> 18782 bytes media/h2-sto-3g.png | Bin 0 -> 52263 bytes media/h2-tdhf.png | Bin 0 -> 22976 bytes media/h2o-shell.png | Bin 0 -> 163196 bytes media/h2o-spectrum.png | Bin 0 -> 23436 bytes media/h2o-sto-3g-a.png | Bin 0 -> 16940 bytes media/h2o-sto-3g.png | Bin 0 -> 46150 bytes media/hugenholtz.png | Bin 0 -> 12408 bytes media/nh3-vacf-bend.png | Bin 0 -> 9574 bytes media/nh3-vacf-bond.png | Bin 0 -> 30374 bytes media/opa-ecd.png | Bin 0 -> 26243 bytes media/order3.png | Bin 0 -> 18195 bytes mints/acetaldehyde-sto-3g-mints.npz | Bin 0 -> 93615 bytes mints/ch4-sto-3g-mints.npz | Bin 0 -> 5477 bytes mints/h2o-3-21g-mints.npz | Bin 0 -> 17703 bytes mints/h2o-6-31g-mints.npz | Bin 0 -> 18292 bytes mints/h2o-aug-cc-pvdz-mints.npz | Bin 0 -> 1757357 bytes mints/h2o-cc-pvdz-mints.npz | Bin 0 -> 217084 bytes mints/h2o-dz-mints.npz | Bin 0 -> 22655 bytes mints/h2o-sto-3g-mints.npz | Bin 0 -> 4619 bytes source/adc/ADC.ipynb | 236 ++ source/adc/adc(1).py | 378 +++ source/adc/adc.py | 793 +++++ source/aello.pyx | 491 ++++ source/atom.py | 445 +++ source/basis.py | 283 ++ source/bomd.py | 428 +++ source/cc/cctn.py | 250 ++ source/cc/fcc.py | 988 +++++++ source/cc/rcc.py | 260 ++ source/cc/scc.py | 1096 +++++++ source/cc/ucc.py | 385 +++ source/ci.py | 664 +++++ source/cogus.py | 471 +++ source/diis.py | 135 + source/eom.py | 589 ++++ source/ep.py | 512 ++++ source/fci.py | 627 ++++ source/force.py | 515 ++++ source/h.py | 812 ++++++ source/harpy.py | 75 + source/integral.py | 659 +++++ source/mbpt.py | 621 ++++ source/mp.py | 500 ++++ source/ocypete.pyx | 508 ++++ source/post.py | 504 ++++ source/project.hpf | 173 ++ source/rESP.py | 443 +++ source/rhf.py | 378 +++ source/rohf.py | 294 ++ source/setup.py | 9 + source/tdhf.py | 795 +++++ source/uhf.py | 255 ++ source/view.py | 1051 +++++++ test/ch4-sto-3g.md | 82 + test/conformation.md | 166 ++ test/h2-ccsd-eom.md | 53 + test/h2-dissociation.md | 27 + test/h2-dissociation.png | Bin 0 -> 22629 bytes test/h2-dissociation.py | 101 + test/h2-eom.md | 45 + test/h2o-dz.html | 2549 ++++++++++++++++ test/h2o-dz.md | 119 + test/h2o-sto-3g.html | 1224 ++++++++ test/h2o-sto-3g.md | 232 ++ test/hhe+-sto-3g.html | 387 +++ test/hhe+-sto-3g.md | 42 + test/k-edge.md | 44 + test/k-edge.py | 174 ++ test/validation-h2o-sto-3g.md | 86 + test/validation-h2o-sto-3g.py | 504 ++++ 124 files changed, 48857 insertions(+) create mode 100644 .gitattributes create mode 100644 README.md create mode 100644 basis/3-21g.gbf create mode 100644 basis/6-31g.gbf create mode 100644 basis/aug-cc-pvdz.gbf create mode 100644 basis/cc-pvdz.gbf create mode 100644 basis/dz.gbf create mode 100644 basis/sto-3g.gbf create mode 100644 codes/cc2.py create mode 100644 codes/cc3.py create mode 100644 codes/cc_rdm.py create mode 100644 codes/ccd.py create mode 100644 codes/ccsd.py create mode 100644 codes/ccsd_lambda.py create mode 100644 codes/ccsd_t.py create mode 100644 codes/ccsdt.py create mode 100644 codes/lccd.py create mode 100644 codes/lccsd.py create mode 100644 document/CCSDT-n.ipynb create mode 100644 document/Coupled_Cluster.ipynb create mode 100644 document/adc.md create mode 100644 document/aello.html create mode 100644 document/aello.md create mode 100644 document/atom.md create mode 100644 document/basis.md create mode 100644 document/bomd.md create mode 100644 document/cctn.md create mode 100644 document/ci.md create mode 100644 document/cogus.md create mode 100644 document/diis.md create mode 100644 document/eom.md create mode 100644 document/ep.md create mode 100644 document/fcc.md create mode 100755 document/fci.md create mode 100644 document/force.md create mode 100644 document/h.md create mode 100644 document/integral.md create mode 100644 document/mbpt.md create mode 100644 document/mp.md create mode 100644 document/ocypete.html create mode 100644 document/ocypete.md create mode 100644 document/post.md create mode 100644 document/rESP.md create mode 100644 document/rhf.md create mode 100644 document/rohf.md create mode 100644 document/scc.md create mode 100644 document/tdhf.md create mode 100644 document/ucc.md create mode 100644 document/uhf.md create mode 100644 document/view.md create mode 100644 media/aello.jpeg create mode 100644 media/ch3coh.png create mode 100644 media/h2-dissociation.png create mode 100644 media/h2-spectrum.png create mode 100644 media/h2-sto-3g.png create mode 100644 media/h2-tdhf.png create mode 100644 media/h2o-shell.png create mode 100644 media/h2o-spectrum.png create mode 100644 media/h2o-sto-3g-a.png create mode 100644 media/h2o-sto-3g.png create mode 100644 media/hugenholtz.png create mode 100644 media/nh3-vacf-bend.png create mode 100644 media/nh3-vacf-bond.png create mode 100644 media/opa-ecd.png create mode 100644 media/order3.png create mode 100644 mints/acetaldehyde-sto-3g-mints.npz create mode 100644 mints/ch4-sto-3g-mints.npz create mode 100644 mints/h2o-3-21g-mints.npz create mode 100644 mints/h2o-6-31g-mints.npz create mode 100644 mints/h2o-aug-cc-pvdz-mints.npz create mode 100644 mints/h2o-cc-pvdz-mints.npz create mode 100644 mints/h2o-dz-mints.npz create mode 100644 mints/h2o-sto-3g-mints.npz create mode 100644 source/adc/ADC.ipynb create mode 100644 source/adc/adc(1).py create mode 100644 source/adc/adc.py create mode 100644 source/aello.pyx create mode 100644 source/atom.py create mode 100644 source/basis.py create mode 100644 source/bomd.py create mode 100644 source/cc/cctn.py create mode 100644 source/cc/fcc.py create mode 100644 source/cc/rcc.py create mode 100644 source/cc/scc.py create mode 100644 source/cc/ucc.py create mode 100644 source/ci.py create mode 100644 source/cogus.py create mode 100644 source/diis.py create mode 100644 source/eom.py create mode 100644 source/ep.py create mode 100644 source/fci.py create mode 100644 source/force.py create mode 100644 source/h.py create mode 100644 source/harpy.py create mode 100644 source/integral.py create mode 100644 source/mbpt.py create mode 100644 source/mp.py create mode 100644 source/ocypete.pyx create mode 100644 source/post.py create mode 100644 source/project.hpf create mode 100644 source/rESP.py create mode 100644 source/rhf.py create mode 100644 source/rohf.py create mode 100644 source/setup.py create mode 100644 source/tdhf.py create mode 100644 source/uhf.py create mode 100644 source/view.py create mode 100644 test/ch4-sto-3g.md create mode 100644 test/conformation.md create mode 100644 test/h2-ccsd-eom.md create mode 100644 test/h2-dissociation.md create mode 100644 test/h2-dissociation.png create mode 100644 test/h2-dissociation.py create mode 100644 test/h2-eom.md create mode 100644 test/h2o-dz.html create mode 100644 test/h2o-dz.md create mode 100644 test/h2o-sto-3g.html create mode 100644 test/h2o-sto-3g.md create mode 100644 test/hhe+-sto-3g.html create mode 100644 test/hhe+-sto-3g.md create mode 100644 test/k-edge.md create mode 100644 test/k-edge.py create mode 100644 test/validation-h2o-sto-3g.md create mode 100644 test/validation-h2o-sto-3g.py diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..39e4a67 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +*.py linguist-detectable=true +*.html linguist-detectable=false +*.npz linguist-detectable=false +*.gbf linguist-detectable=false diff --git a/README.md b/README.md new file mode 100644 index 0000000..a0f7582 --- /dev/null +++ b/README.md @@ -0,0 +1,84 @@ +# harpy ![](../main/media/aello.jpeg) + +## Hartree-Fock Python + +This is not a *program*, it will run as a program but it wasn't designed with any program structure in mind. It works as a program mainly to facilitate testing but really it is just a collection of quantum chemistry codes. This is not written in Python, the python interpreter understands the code but the style is in no way 'pythonic'. The aim is to write code that can be understood not just by a Python programmer but anyone who understands pseudocode. This means that some of the more syntactically cryptic elements of the langauge have been avoided. For example, there is no einsum. Einsum is very concise and faster than basic Python loops, which are *very* slow, but if you want speed you probably will be programming in another language or using Cython in which case you'll want the explicit loops. + +There are 6 main directories: +* **source** - This contains the .py and .pyx files. Currently they are + 1. adc - algebraic diagrammatic construction + 2. aello - Cython version of the molecular integrals. + 3. atom - atom class. + 4. basis - basis class. + 5. bomd - Born-Oppenheimer molecular dynamics + 6. cc - coupled cluster directory (scc, fcc.ucc and rcc) + 7. ci - configuration interaction. + 8. cogus - cluster operator generator using Sympy + 9. diis - direct inversion of iterative subspace. + 10. eom - equation of motion ccsd and mbpt + 11. ep - electron pair approximation. + 12. fci - full configuration interaction + 13. force - integral derivatives and forces. + 14. h - hydrogenic orbitals + 15. harpy - main run program + 16. integral- molecular integrals and transforms. + 17. mbpt - many-body perturbation diagrams + 18. mp - Moller-Plesset perturbation theory. + 19. ocypete - Cython version of integral derivatives. + 20. post - post SCF, Mulliken, Lowdin, Dipole, Polarizabilities. + 21. project - data files for run. Coordinate geometry. + 22. rESP - restrained Electrostatic Potential + 23. rhf - main resticted Hartree-Fock code. + 24. rohf - restricted open-shell Hartree-Fock + 25. tdhf - time dependent Hartree-Fock + 26. uhf - main unrestricted Hartree-Fock code + 27. view - output control writes to harpy.html. + +* **document** - This contains a .md file for each code module. +* **test** - This has HTML output files for water in sto-3g, dz bases, methane and HHe+ in sto-3g. + These files are provided for comparision with existing programs and for developers wanting to compare their own program results. There are also corresponding .md files which compare harpy results to other programs. + +* **mints** - This contains .npz files containing results from calculation in numpy compressed files. Details of the file contents and how to access them are given in \document\rhf.md + +* **basis** - Basis files from Basis Set Exchange. + +* **codes** - Python code for various cluster methods produced by *cogus* + +For the theory of the code I recommend the book 'Modern Quantum Chemistry' by Szabo & Ostlund, on Github [the Crawford Projects](https://github.com/CrawfordGroup/ProgrammingProjects) and [psi4Numpy](https://github.com/psi4/psi4numpy). My interest in quantum chemistry was renewed by [Josh Goings blog](https://joshuagoings.com/blog/) particularly his article on McMurchie-Davidson integral evaluation, you should also checkout his program on Github [McMurchie-Davidson](https://github.com/jjgoings/McMurchie-Davidson). I hope something here will be useful to you. + +Finally, if you really want to run this as a program then 1) copy (as a minimum) source and basis directories, 2) from **source** directory run setup.py as **python3 setup.py build_ext --inplace install --user** 3) I have my PYTHONPATH set to /harpy/source 4) run harpy.py, again from source directory, as for example **python3 harpy.py -rhf**. You'll need python3, cython, numpy and scipy. The harpy.html output file will also be written to source directory. You can run **python3 harpy.py** with parameters **-rhf|-uhf|-rohf** - if not specified **-rhf** is run, **-v** for a verbose HTML output - if not specified a minimal output is produced, **-m** to produce a mints .npz file - if not specified no file is produced. By default harpy reads the geometry and run specification from the file *project.hpf* in the source directory this can be overridden by specifying an alternative file on the command line as eg **-..\test\water_geometry.hpf** - the file must nave an .hpf extension which must be specified on the command line. The molecule run is by default the first one in the .hpf file, this can be overridden using the command line option **-name**, where *name* is the title of a molecule in the hpf file as it appears in the *name=* specifier. + +__What you will find here__ ++ ADC - Algebraic Diagrammatic Construction - 2nd order PP, IP and EA, 1st order PP and properties ++ aello - cython McMurchie-Davidson integrals, overlap, kinetic, coulomb, 2-electron repulsion, dipole, angular momentum, nabla ++ Atom - Geometry calculations, inertia tensor, principal moments, rotor type, gauge centers, z-matrix ++ Basis - reading BSE files to create basis, normalisation, aufbau orbital assignment ++ BOMD - velocity-Verlet, Beeman or Adams-Moulton integrators, auto-correlation ++ cc(scc) - coupled cluster, CCSD(t), LCCD, CCD, CCSD-Λ, CC2, LCCSD (for loops) ++ cc(fcc) - coupled cluster, CCD, CCSD, CCSD(t), CC2, QCISD, LCCD, LCCSD (einsum) and EOM (einsum and intermediates) ++ cc(ucc) - unitary coupled-cluster (UCC2, UCC3 and UCC(4)) ++ cc(cctn) - coupled-cluster triples, CCSDT-1a, CCSDT-1b, CCSDT-2, CCSDT-3, CCSDT-4, CCSD(T) and CCSDT ++ cc(rcc) -restricted (spin-summed) CCD and CCSD ++ ci - configuration interaction singles, spin-adapted singles/triples, random phase approximation, block Davidson, CIS(D) ++ cogus - code to run COGUS automatically generated codes for CCSD, CCSD(T), CCSDT, CCD, LCCD, LCCSD, CC2, CC3 and CCSD-Λ (einsum) ++ diis - Direct Inversion of Iterative Subspace acceleration for SCF (RHF and UHF) and CCSD ++ eom - equation of motion EOM-CCSD, EOM-MBPT2 (for loops) ++ ep - electron propogator EP2 (spatial and spin), EP3 (spin), Koopman correction by Approximate Green's Function ++ fci - full configuration interaction, determinant representation by string and boolean types ++ force - McMurchie-Davidson 1st derivative integrals (for loops), numerical derivative, geometry optimization ++ h - hydrogenic orbitals, spherical harmonics, Laguerre, Numerov, finite difference. Monte-Carlo ++ integral - McMurchie-Davidson, overlap, kinetic, coulomb, 2-electron repulsion, dipole, angular, nable, electric field and quadrupole (for loops), AO -> MO ++ mbpt - MPn via automatic generation of Hugenholtz diagrams and corresponding Python code to evaluate (einsum) ++ mp - Moller-Plesset, mp2(spin-scaled and natural orbitals), mp3 (for loops), orbital-optimized mp2, Laplace Transform mp2, mp2 unrelaxed density ++ ocepete - cython force integrals ++ post - Mulliken and Lowden charge analysis, Mayer bond order, energy partitioning, dipole, mp2 dipole, quadrupole, polarizabilities, electric field, hyper-polarizability ++ rESP - restrained electrostatic potential ++ rhf - restricted Hartree-Fock, SCF procedure ++ rohf - restricted open-shell Hartree-Fock ++ tdhf - time-dependent Hartree-Fock, Magnus 2 and 4, Pade spectrum, calculation of transition properties, spectrum display, td-CCSD ++ uhf - unrestricted Hartree-Fock ++ view - HTML output, orbital plots + + + + diff --git a/basis/3-21g.gbf b/basis/3-21g.gbf new file mode 100644 index 0000000..5704065 --- /dev/null +++ b/basis/3-21g.gbf @@ -0,0 +1,1216 @@ + + +cartesian + +!---------------------------------------------------------------------- +! Basis Set Exchange +! Version v0.8.12 +! https://www.basissetexchange.org +!---------------------------------------------------------------------- +! Basis set: 3-21G +! Description: 3-21G Split-valence basis set +! Role: orbital +! Version: 1 (Data from Gaussian 09) +!---------------------------------------------------------------------- + + +**** +H 0 +S 2 1.00 + 0.5447178000D+01 0.1562849787D+00 + 0.8245472400D+00 0.9046908767D+00 +S 1 1.00 + 0.1831915800D+00 1.0000000 +**** +He 0 +S 2 1.00 + 0.1362670000D+02 0.1752298718D+00 + 0.1999350000D+01 0.8934823465D+00 +S 1 1.00 + 0.3829930000D+00 1.0000000 +**** +Li 0 +S 3 1.00 + 0.3683820000D+02 0.6966866381D-01 + 0.5481720000D+01 0.3813463493D+00 + 0.1113270000D+01 0.6817026244D+00 +SP 2 1.00 + 0.5402050000D+00 -0.2631264058D+00 0.1615459708D+00 + 0.1022550000D+00 0.1143387418D+01 0.9156628347D+00 +SP 1 1.00 + 0.2856450000D-01 0.1000000000D+01 0.1000000000D+01 +**** +Be 0 +S 3 1.00 + 0.7188760000D+02 0.6442630975D-01 + 0.1072890000D+02 0.3660960554D+00 + 0.2222050000D+01 0.6959341053D+00 +SP 2 1.00 + 0.1295480000D+01 -0.4210640659D+00 0.2051319237D+00 + 0.2688810000D+00 0.1224070192D+01 0.8825276719D+00 +SP 1 1.00 + 0.7735010000D-01 0.1000000000D+01 0.1000000000D+01 +**** +B 0 +S 3 1.00 + 0.1164340000D+03 0.6296046589D-01 + 0.1743140000D+02 0.3633038032D+00 + 0.3680160000D+01 0.6972546223D+00 +SP 2 1.00 + 0.2281870000D+01 -0.3686634773D+00 0.2311519023D+00 + 0.4652480000D+00 0.1199444806D+01 0.8667636337D+00 +SP 1 1.00 + 0.1243280000D+00 0.1000000000D+01 0.1000000000D+01 +**** +C 0 +S 3 1.00 + 0.1722560000D+03 0.6176690738D-01 + 0.2591090000D+02 0.3587940429D+00 + 0.5533350000D+01 0.7007130837D+00 +SP 2 1.00 + 0.3664980000D+01 -0.3958951621D+00 0.2364599466D+00 + 0.7705450000D+00 0.1215834356D+01 0.8606188057D+00 +SP 1 1.00 + 0.1958570000D+00 0.1000000000D+01 0.1000000000D+01 +**** +N 0 +S 3 1.00 + 0.2427660000D+03 0.5986570051D-01 + 0.3648510000D+02 0.3529550030D+00 + 0.7814490000D+01 0.7065130060D+00 +SP 2 1.00 + 0.5425220000D+01 -0.4133000774D+00 0.2379720162D+00 + 0.1149150000D+01 0.1224417267D+01 0.8589530586D+00 +SP 1 1.00 + 0.2832050000D+00 0.1000000000D+01 0.1000000000D+01 +**** +O 0 +S 3 1.00 + 0.3220370000D+03 0.5923939339D-01 + 0.4843080000D+02 0.3514999608D+00 + 0.1042060000D+02 0.7076579210D+00 +SP 2 1.00 + 0.7402940000D+01 -0.4044535832D+00 0.2445861070D+00 + 0.1576200000D+01 0.1221561761D+01 0.8539553735D+00 +SP 1 1.00 + 0.3736840000D+00 0.1000000000D+01 0.1000000000D+01 +**** +F 0 +S 3 1.00 + 0.4138010000D+03 0.5854830293D-01 + 0.6224460000D+02 0.3493080175D+00 + 0.1343400000D+02 0.7096320355D+00 +SP 2 1.00 + 0.9777590000D+01 -0.4073262777D+00 0.2466800032D+00 + 0.2086170000D+01 0.1223137831D+01 0.8523210110D+00 +SP 1 1.00 + 0.4823830000D+00 0.1000000000D+01 0.1000000000D+01 +**** +Ne 0 +S 3 1.00 + 0.5157240000D+03 0.5814303044D-01 + 0.7765380000D+02 0.3479511822D+00 + 0.1681360000D+02 0.7107143721D+00 +SP 2 1.00 + 0.1248300000D+02 -0.4099223208D+00 0.2474599836D+00 + 0.2664510000D+01 0.1224310958D+01 0.8517429435D+00 +SP 1 1.00 + 0.6062500000D+00 0.1000000000D+01 0.1000000000D+01 +**** +Na 0 +S 3 1.00 + 0.5476130000D+03 0.6749111801D-01 + 0.8206780000D+02 0.3935051050D+00 + 0.1769170000D+02 0.6656051776D+00 +SP 3 1.00 + 0.1754070000D+02 -0.1119370290D+00 0.1282330093D+00 + 0.3793980000D+01 0.2546540659D+00 0.4715330341D+00 + 0.9064410000D+00 0.8444172187D+00 0.6042730437D+00 +SP 2 1.00 + 0.5018240000D+00 -0.2196604975D+00 0.9066487958D-02 + 0.6094580000D-01 0.1089122467D+01 0.9972017754D+00 +SP 1 1.00 + 0.2443490000D-01 0.1000000000D+01 0.1000000000D+01 +**** +Mg 0 +S 3 1.00 + 0.6528410000D+03 0.6759814295D-01 + 0.9838050000D+02 0.3917776694D+00 + 0.2129960000D+02 0.6666604374D+00 +SP 3 1.00 + 0.2337270000D+02 -0.1102459524D+00 0.1210138991D+00 + 0.5199530000D+01 0.1841189206D+00 0.4628096140D+00 + 0.1315080000D+01 0.8963986133D+00 0.6069064938D+00 +SP 2 1.00 + 0.6113490000D+00 -0.3611025933D+00 0.2426330920D-01 + 0.1418410000D+00 0.1215055361D+01 0.9866733739D+00 +SP 1 1.00 + 0.4640110000D-01 0.1000000000D+01 0.1000000000D+01 +**** +Al 0 +S 3 1.00 + 0.7757370000D+03 0.6683469647D-01 + 0.1169520000D+03 0.3890609795D+00 + 0.2533260000D+02 0.6694679647D+00 +SP 3 1.00 + 0.2947960000D+02 -0.1079020233D+00 0.1175739856D+00 + 0.6633140000D+01 0.1462450316D+00 0.4611739433D+00 + 0.1726750000D+01 0.9237301994D+00 0.6055349256D+00 +SP 2 1.00 + 0.9461600000D+00 -0.3203269091D+00 0.5193828087D-01 + 0.2025060000D+00 0.1184119664D+01 0.9726596417D+00 +SP 1 1.00 + 0.6390880000D-01 0.1000000000D+01 0.1000000000D+01 +**** +Si 0 +S 3 1.00 + 0.9106550000D+03 0.6608223959D-01 + 0.1373360000D+03 0.3862286469D+00 + 0.2976010000D+02 0.6723793854D+00 +SP 3 1.00 + 0.3667160000D+02 -0.1045110359D+00 0.1133550147D+00 + 0.8317290000D+01 0.1074100369D+00 0.4575780593D+00 + 0.2216450000D+01 0.9514463269D+00 0.6074270787D+00 +SP 2 1.00 + 0.1079130000D+01 -0.3761078795D+00 0.6710299112D-01 + 0.3024220000D+00 0.1251649599D+01 0.9568828734D+00 +SP 1 1.00 + 0.9333920000D-01 0.1000000000D+01 0.1000000000D+01 +**** +P 0 +S 3 1.00 + 0.1054900000D+04 0.6554071355D-01 + 0.1591950000D+03 0.3840360794D+00 + 0.3453040000D+02 0.6745411394D+00 +SP 3 1.00 + 0.4428660000D+02 -0.1021300535D+00 0.1108510025D+00 + 0.1010190000D+02 0.8159224271D-01 0.4564950104D+00 + 0.2739970000D+01 0.9697885076D+00 0.6069360139D+00 +SP 2 1.00 + 0.1218650000D+01 -0.3714960219D+00 0.9158231022D-01 + 0.3955460000D+00 0.1270993496D+01 0.9349241043D+00 +SP 1 1.00 + 0.1228110000D+00 0.1000000000D+01 0.1000000000D+01 +**** +S 0 +S 3 1.00 + 0.1210620000D+04 0.6500708187D-01 + 0.1827470000D+03 0.3820398935D+00 + 0.3966730000D+02 0.6765448113D+00 +SP 3 1.00 + 0.5222360000D+02 -0.1003099399D+00 0.1096459702D+00 + 0.1196290000D+02 0.6508766099D-01 0.4576488757D+00 + 0.3289110000D+01 0.9814544117D+00 0.6042608359D+00 +SP 2 1.00 + 0.1223840000D+01 -0.2860888537D+00 0.1647769947D+00 + 0.4573030000D+00 0.1228059372D+01 0.8708549722D+00 +SP 1 1.00 + 0.1422690000D+00 0.1000000000D+01 0.1000000000D+01 +**** +Cl 0 +S 3 1.00 + 0.1376400000D+04 0.6458270228D-01 + 0.2078570000D+03 0.3803630134D+00 + 0.4515540000D+02 0.6781900239D+00 +SP 3 1.00 + 0.6080140000D+02 -0.9876395275D-01 0.1085980585D+00 + 0.1397650000D+02 0.5113382731D-01 0.4586822471D+00 + 0.3887100000D+01 0.9913375295D+00 0.6019623243D+00 +SP 2 1.00 + 0.1352990000D+01 -0.2224014841D+00 0.2192157972D+00 + 0.5269550000D+00 0.1182522574D+01 0.8223202393D+00 +SP 1 1.00 + 0.1667140000D+00 0.1000000000D+01 0.1000000000D+01 +**** +Ar 0 +S 3 1.00 + 0.1553710000D+04 0.6417071258D-01 + 0.2346780000D+03 0.3787970742D+00 + 0.5101210000D+02 0.6797521332D+00 +SP 3 1.00 + 0.7004530000D+02 -0.9746613989D-01 0.1076190408D+00 + 0.1614730000D+02 0.3905691599D-01 0.4595761744D+00 + 0.4534920000D+01 0.9999164093D+00 0.6000412277D+00 +SP 2 1.00 + 0.1542090000D+01 -0.1768655685D+00 0.2556870130D+00 + 0.6072670000D+00 0.1146897202D+01 0.7898420401D+00 +SP 1 1.00 + 0.1953730000D+00 0.1000000000D+01 0.1000000000D+01 +**** +K 0 +S 3 1.00 + 0.1721175500D+04 0.6487469617D-01 + 0.2600163300D+03 0.3808592775D+00 + 0.5662455400D+02 0.6773680600D+00 +SP 3 1.00 + 0.7155720000D+02 -0.1093428919D+00 0.1339654251D+00 + 0.1543894240D+02 0.1130640319D+00 0.5302672723D+00 + 0.4474551050D+01 0.9462575025D+00 0.5117991842D+00 +SP 3 1.00 + 0.4121275290D+01 -0.2699729532D+00 0.1994922290D-01 + 0.1188620640D+01 0.3646322562D+00 0.4340213019D+00 + 0.3756738350D+00 0.8107532645D+00 0.6453225709D+00 +SP 2 1.00 + 0.2445765580D+00 -0.2688250168D+00 0.3081035470D-03 + 0.3897174940D-01 0.1128982555D+01 0.9998787160D+00 +SP 1 1.00 + 0.1606254630D-01 0.1000000000D+01 0.1000000000D+01 +**** +Ca 0 +S 3 1.00 + 0.1915434800D+04 0.6462369791D-01 + 0.2895332400D+03 0.3798375877D+00 + 0.6310635200D+02 0.6783293781D+00 +SP 3 1.00 + 0.8039744200D+02 -0.1093027800D+00 0.1354331590D+00 + 0.1733075030D+02 0.1088995760D+00 0.5372214579D+00 + 0.5083623800D+01 0.9492767537D+00 0.5018043829D+00 +SP 3 1.00 + 0.4782229420D+01 -0.2816073771D+00 0.1900927729D-01 + 0.1462557920D+01 0.3410510241D+00 0.4360377329D+00 + 0.4792229560D+00 0.8381044043D+00 0.6386709258D+00 +SP 2 1.00 + 0.4396824240D+00 -0.2697048570D+00 0.3081105070D-03 + 0.5913040160D-01 0.1113292710D+01 0.9998964139D+00 +SP 1 1.00 + 0.2389701170D-01 0.1000000000D+01 0.1000000000D+01 +**** +Sc 0 +S 3 1.00 + 0.2119887400D+04 0.6442079848D-01 + 0.3204298600D+03 0.3791602911D+00 + 0.6989892800D+02 0.6789628840D+00 +SP 3 1.00 + 0.8976450310D+02 -0.1093837050D+00 0.1363278069D+00 + 0.1938509550D+02 0.1050698720D+00 0.5418597835D+00 + 0.5731423090D+01 0.9522045460D+00 0.4950550715D+00 +SP 3 1.00 + 0.5491937640D+01 -0.2852107400D+00 0.1761355971D-01 + 0.1743741510D+01 0.3241555420D+00 0.4336448242D+00 + 0.5662273420D+00 0.8565920529D+00 0.6425506952D+00 +SP 2 1.00 + 0.5168015080D+00 -0.2626779794D+00 0.3270566751D-03 + 0.6721403840D-01 0.1108078977D+01 0.9998935093D+00 +SP 1 1.00 + 0.2598451790D-01 0.1000000000D+01 0.1000000000D+01 +D 2 1.00 + 0.5722214800D+01 0.2652364479D+00 + 0.1360849500D+01 0.8558605398D+00 +D 1 1.00 + 0.3226516200D+00 1.0000000 +**** +Ti 0 +S 3 1.00 + 0.2335019800D+04 0.6421660118D-01 + 0.3530441500D+03 0.3784120069D+00 + 0.7705845200D+02 0.6796813125D+00 +SP 3 1.00 + 0.9957387050D+02 -0.1094719070D+00 0.1372966030D+00 + 0.2154670630D+02 0.1019426710D+00 0.5458753479D+00 + 0.6413965470D+01 0.9546223767D+00 0.4890680879D+00 +SP 3 1.00 + 0.6238279440D+01 -0.2861371630D+00 0.1923665080D-01 + 0.1996107510D+01 0.3218277600D+00 0.4404421590D+00 + 0.6464898720D+00 0.8595510999D+00 0.6356195070D+00 +SP 2 1.00 + 0.5732848810D+00 -0.2424499988D+00 0.2920157911D-03 + 0.7311942300D-01 0.1100074629D+01 0.9999066954D+00 +SP 1 1.00 + 0.2653793780D-01 0.1000000000D+01 0.1000000000D+01 +D 2 1.00 + 0.7083666100D+01 0.2629209951D+00 + 0.1709634100D+01 0.8557720832D+00 +D 1 1.00 + 0.4141224800D+00 1.0000000 +**** +V 0 +S 3 1.00 + 0.2563877200D+04 0.6394750087D-01 + 0.3875340400D+03 0.3775940051D+00 + 0.8459822900D+02 0.6805421093D+00 +SP 3 1.00 + 0.1097938210D+03 -0.1098355310D+00 0.1384209690D+00 + 0.2376921260D+02 0.1007070390D+00 0.5504894170D+00 + 0.7122961440D+01 0.9556327203D+00 0.4824165320D+00 +SP 3 1.00 + 0.6981204030D+01 -0.2884588118D+00 0.2182075430D-01 + 0.2219839200D+01 0.3364356998D+00 0.4567615759D+00 + 0.7198030150D+00 0.8481903234D+00 0.6186749609D+00 +SP 2 1.00 + 0.6312619520D+00 -0.2364898790D+00 0.1899535820D-03 + 0.8006166240D-01 0.1097720655D+01 0.9999396449D+00 +SP 1 1.00 + 0.2886489170D-01 0.1000000000D+01 0.1000000000D+01 +D 2 1.00 + 0.8342916900D+01 0.2640620000D+00 + 0.2032944100D+01 0.8539664831D+00 +D 1 1.00 + 0.4957115400D+00 1.0000000 +**** +Cr 0 +S 3 1.00 + 0.2798294400D+04 0.6382379506D-01 + 0.4231369600D+03 0.3770839708D+00 + 0.9243886100D+02 0.6809888473D+00 +SP 3 1.00 + 0.1202805620D+03 -0.1177790010D+00 0.1398781830D+00 + 0.2603727080D+02 0.1014311230D+00 0.5559834482D+00 + 0.7844172480D+01 0.9571981377D+00 0.4748183482D+00 +SP 3 1.00 + 0.7793275650D+01 -0.2888567131D+00 0.2218470920D-01 + 0.2497196130D+01 0.3351146841D+00 0.4616249951D+00 + 0.8051418920D+00 0.8502480973D+00 0.6145386131D+00 +SP 2 1.00 + 0.7039205640D+00 -0.2322507691D+00 0.1799644840D-03 + 0.8616195330D-01 0.1093671325D+01 0.9999447611D+00 +SP 1 1.00 + 0.3219881930D-01 0.1000000000D+01 0.1000000000D+01 +D 2 1.00 + 0.9625338600D+01 0.2655959100D+00 + 0.2362264300D+01 0.8521556801D+00 +D 1 1.00 + 0.5770944000D+00 1.0000000 +**** +Mn 0 +S 3 1.00 + 0.3041685900D+04 0.6374489896D-01 + 0.4600900600D+03 0.3767489939D+00 + 0.1005957700D+03 0.6812473889D+00 +SP 3 1.00 + 0.1317673140D+03 -0.1102963670D+00 0.1404540159D+00 + 0.2856915210D+02 0.9818963362D-01 0.5578022288D+00 + 0.8660501060D+01 0.9576594692D+00 0.4715006178D+00 +SP 3 1.00 + 0.8569080670D+01 -0.2917135460D+00 0.2422378882D-01 + 0.2768178450D+01 0.3439630141D+00 0.4686597613D+00 + 0.8872882100D+00 0.8451974601D+00 0.6074211264D+00 +SP 2 1.00 + 0.7674426160D+00 -0.2300038851D+00 0.3078885511D-03 + 0.9202526740D-01 0.1091450305D+01 0.9999073623D+00 +SP 1 1.00 + 0.3326489750D-01 0.1000000000D+01 0.1000000000D+01 +D 2 1.00 + 0.1106883900D+02 0.2652718099D+00 + 0.2730706800D+01 0.8517944796D+00 +D 1 1.00 + 0.6685094800D+00 1.0000000 +**** +Fe 0 +S 3 1.00 + 0.3299183700D+04 0.6358589971D-01 + 0.4990885600D+03 0.3762015983D+00 + 0.1091613700D+03 0.6817844969D+00 +SP 3 1.00 + 0.1434651730D+03 -0.1105517190D+00 0.1411006120D+00 + 0.3116857540D+02 0.9684680919D-01 0.5603873671D+00 + 0.9483612400D+01 0.9587974389D+00 0.4676443540D+00 +SP 3 1.00 + 0.9464564900D+01 -0.2920555188D+00 0.2376201300D-01 + 0.3100373440D+01 0.3375235918D+00 0.4689112821D+00 + 0.9864930090D+00 0.8519416294D+00 0.6083112671D+00 +SP 2 1.00 + 0.8534123410D+00 -0.2279441130D+00 -0.4262652045D-03 + 0.9881221800D-01 0.1088287380D+01 0.1000123759D+01 +SP 1 1.00 + 0.3644213760D-01 0.1000000000D+01 0.1000000000D+01 +D 2 1.00 + 0.1235448930D+02 0.2686109881D+00 + 0.3055605300D+01 0.8492716654D+00 +D 1 1.00 + 0.7385908900D+00 1.0000000 +**** +Co 0 +S 3 1.00 + 0.3564762200D+04 0.6348660328D-01 + 0.5393908500D+03 0.3758181194D+00 + 0.1180448900D+03 0.6821217353D+00 +SP 3 1.00 + 0.1554382480D+03 -0.1109867210D+00 0.1420641590D+00 + 0.3381561360D+02 0.9676741612D-01 0.5634438691D+00 + 0.1033323420D+02 0.9589921222D+00 0.4630244281D+00 +SP 3 1.00 + 0.1038152410D+02 -0.2922621778D+00 0.2631326050D-01 + 0.3382714340D+01 0.3432507278D+00 0.4769170349D+00 + 0.1076953850D+01 0.8469634444D+00 0.5991542759D+00 +SP 2 1.00 + 0.9090155490D+00 -0.2174599202D+00 0.2284428400D-03 + 0.1050405600D+00 0.1084998461D+01 0.9999337380D+00 +SP 1 1.00 + 0.3725657630D-01 0.1000000000D+01 0.1000000000D+01 +D 2 1.00 + 0.1374069800D+02 0.2709549812D+00 + 0.3408982900D+01 0.8473420555D+00 +D 1 1.00 + 0.8186409500D+00 1.0000000 +**** +Ni 0 +S 3 1.00 + 0.3848005100D+04 0.6326609847D-01 + 0.5820306900D+03 0.3751709909D+00 + 0.1273674400D+03 0.6828237835D+00 +SP 3 1.00 + 0.1682895830D+03 -0.1111150760D+00 0.1424904900D+00 + 0.3665633040D+02 0.9532380108D-01 0.5655469960D+00 + 0.1123212360D+02 0.9601612858D+00 0.4599925870D+00 +SP 3 1.00 + 0.1135877310D+02 -0.2920603921D+00 0.2613762460D-01 + 0.3738846220D+01 0.3375407231D+00 0.4765979969D+00 + 0.1182462700D+01 0.8525329813D+00 0.6003798419D+00 +SP 2 1.00 + 0.9889038410D+00 -0.2136872217D+00 0.2943514090D-03 + 0.1110249640D+00 0.1081932884D+01 0.9999170232D+00 +SP 1 1.00 + 0.3925822490D-01 0.1000000000D+01 0.1000000000D+01 +D 2 1.00 + 0.1522069400D+02 0.2726059660D+00 + 0.3786020100D+01 0.8459279070D+00 +D 1 1.00 + 0.9045573900D+00 1.0000000 +**** +Cu 0 +S 3 1.00 + 0.4134302200D+04 0.6318780134D-01 + 0.6254912200D+03 0.3748448080D+00 + 0.1369555600D+03 0.6831002145D+00 +SP 3 1.00 + 0.1814960330D+03 -0.1113198390D+00 0.1430844431D+00 + 0.3957431190D+02 0.9448678911D-01 0.5677561013D+00 + 0.1216246380D+02 0.9608790191D+00 0.4567141082D+00 +SP 3 1.00 + 0.1235111490D+02 -0.2922230629D+00 0.2772713539D-01 + 0.4049651020D+01 0.3429908579D+00 0.4835244178D+00 + 0.1279225380D+01 0.8479462667D+00 0.5929778748D+00 +SP 2 1.00 + 0.1048299940D+01 -0.2054980895D+00 0.1984900050D-03 + 0.1171180220D+00 0.1079158637D+01 0.9999443279D+00 +SP 1 1.00 + 0.4054498690D-01 0.1000000000D+01 0.1000000000D+01 +D 2 1.00 + 0.1675937600D+02 0.2741125481D+00 + 0.4178976900D+01 0.8446244862D+00 +D 1 1.00 + 0.9943270400D+00 1.0000000 +**** +Zn 0 +S 3 1.00 + 0.4432288500D+04 0.6309280449D-01 + 0.6706601200D+03 0.3745038267D+00 + 0.1469024500D+03 0.6834160486D+00 +SP 3 1.00 + 0.1950041870D+03 -0.1116283369D+00 0.1438054630D+00 + 0.4256889150D+02 0.9433552835D-01 0.5700018768D+00 + 0.1312143450D+02 0.9611002465D+00 0.4533118549D+00 +SP 3 1.00 + 0.1340230550D+02 -0.2917811139D+00 0.2870528232D-01 + 0.4399906380D+01 0.3426145478D+00 0.4862514674D+00 + 0.1385147570D+01 0.8482839836D+00 0.5902352525D+00 +SP 2 1.00 + 0.1121558010D+01 -0.2023706257D+00 0.3440940799D-03 + 0.1229436400D+00 0.1077034778D+01 0.9999052838D+00 +SP 1 1.00 + 0.4219327240D-01 0.1000000000D+01 0.1000000000D+01 +D 2 1.00 + 0.1836820200D+02 0.2753856309D+00 + 0.4591304100D+01 0.8434772897D+00 +D 1 1.00 + 0.1090202600D+01 1.0000000 +**** +Ga 0 +S 3 1.00 + 0.4751897900D+04 0.6283960439D-01 + 0.7189205400D+03 0.3736112261D+00 + 0.1574459200D+03 0.6843626478D+00 +SP 3 1.00 + 0.2095834380D+03 -0.1115161570D+00 0.1442658399D+00 + 0.4569171330D+02 0.9269636382D-01 0.5731775198D+00 + 0.1413296880D+02 0.9622870572D+00 0.4490857768D+00 +SP 3 1.00 + 0.1459953900D+02 0.2910292410D+00 0.2656185960D-01 + 0.4860842130D+01 -0.3231875870D+00 0.4833136630D+00 + 0.1549110700D+01 -0.8643910510D+00 0.5924303820D+00 +SP 2 1.00 + 0.1267942770D+01 -0.2851306292D+00 0.3018346401D-01 + 0.1883995380D+00 0.1128022057D+01 0.9884658284D+00 +SP 1 1.00 + 0.5723675570D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.2129253000D+02 0.1619895026D+00 + 0.5393166200D+01 0.5116739083D+00 + 0.1333882800D+01 0.5898732096D+00 +**** +Ge 0 +S 3 1.00 + 0.5073749900D+04 0.6272490086D-01 + 0.7677241700D+03 0.3731671051D+00 + 0.1681888100D+03 0.6847867093D+00 +SP 3 1.00 + 0.2244360270D+03 -0.1115149850D+00 0.1446395310D+00 + 0.4895542850D+02 0.9120021360D-01 0.5753795618D+00 + 0.1518370510D+02 0.9634490850D+00 0.4459948609D+00 +SP 3 1.00 + 0.1591257150D+02 -0.2895652279D+00 0.2297302161D-01 + 0.5441436790D+01 0.2938828279D+00 0.4732446592D+00 + 0.1742603230D+01 0.8891993228D+00 0.6032778983D+00 +SP 2 1.00 + 0.1466538460D+01 -0.3967339034D+00 0.2789293999D-01 + 0.2630933590D+00 0.1190669835D+01 0.9874900937D+00 +SP 1 1.00 + 0.8482071760D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.2432142100D+02 0.1577984994D+00 + 0.6223813500D+01 0.5114921980D+00 + 0.1588737500D+01 0.5857702977D+00 +**** +As 0 +S 3 1.00 + 0.5407613800D+04 0.6260110038D-01 + 0.8181743600D+03 0.3727790022D+00 + 0.1792656900D+03 0.6851842041D+00 +SP 3 1.00 + 0.2377782880D+03 -0.1128384290D+00 0.1496797750D+00 + 0.5425662270D+02 0.8722743790D-01 0.5623222652D+00 + 0.1632802910D+02 0.9681882750D+00 0.4593234971D+00 +SP 3 1.00 + 0.1710185320D+02 -0.2914536779D+00 0.2568559179D-01 + 0.5805144110D+01 0.2969618919D+00 0.4833968069D+00 + 0.1902084190D+01 0.8865791037D+00 0.5887853959D+00 +SP 2 1.00 + 0.1675403610D+01 -0.5057609655D+00 0.2528246599D-01 + 0.3416557060D+00 0.1251764524D+01 0.9874328358D+00 +SP 1 1.00 + 0.1136303120D+00 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.2743720900D+02 0.1544952053D+00 + 0.7084044000D+01 0.5114318176D+00 + 0.1855822600D+01 0.5821935201D+00 +**** +Se 0 +S 3 1.00 + 0.5751321500D+04 0.6249340240D-01 + 0.8702572100D+03 0.3723683143D+00 + 0.1907294900D+03 0.6855799263D+00 +SP 3 1.00 + 0.2550163960D+03 -0.1119076329D+00 0.1461488110D+00 + 0.5557653980D+02 0.9099935806D-01 0.5813713921D+00 + 0.1735661220D+02 0.9636681735D+00 0.4374597450D+00 +SP 3 1.00 + 0.1844567560D+02 -0.2917925089D+00 0.2442140969D-01 + 0.6328758670D+01 0.2846211839D+00 0.4833648278D+00 + 0.2096757630D+01 0.8973051926D+00 0.5879038048D+00 +SP 2 1.00 + 0.1872633330D+01 -0.5677638749D+00 0.2825548500D-01 + 0.4174736440D+00 0.1294126620D+01 0.9849059642D+00 +SP 1 1.00 + 0.1370906930D+00 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.3062746400D+02 0.1519857962D+00 + 0.7971276400D+01 0.5116402873D+00 + 0.2134809700D+01 0.5786935856D+00 +**** +Br 0 +S 3 1.00 + 0.6103289900D+04 0.6241750453D-01 + 0.9236974300D+03 0.3720414270D+00 + 0.2025203100D+03 0.6858728498D+00 +SP 3 1.00 + 0.2706015060D+03 -0.1121486999D+00 0.1477513840D+00 + 0.5825357430D+02 0.9314450925D-01 0.6010556940D+00 + 0.1846932670D+02 0.9616793735D+00 0.4128703850D+00 +SP 3 1.00 + 0.1976142580D+02 -0.2938703890D+00 0.2500708519D-01 + 0.6821751780D+01 0.2802663020D+00 0.4866098019D+00 + 0.2291628830D+01 0.9020357111D+00 0.5824233508D+00 +SP 2 1.00 + 0.2131205580D+01 -0.6518030629D+00 0.2870833401D-01 + 0.4993537140D+00 0.1336012176D+01 0.9840695395D+00 +SP 1 1.00 + 0.1647636630D+00 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.3396509700D+02 0.1496665998D+00 + 0.8900831200D+01 0.5117474993D+00 + 0.2428436000D+01 0.5759147992D+00 +**** +Kr 0 +S 3 1.00 + 0.6446630700D+04 0.6253980013D-01 + 0.9768757000D+03 0.3721075008D+00 + 0.2144795500D+03 0.6856107014D+00 +SP 3 1.00 + 0.2876446250D+03 -0.1120607140D+00 0.1475279021D+00 + 0.6262008730D+02 0.9013913269D-01 0.5868918503D+00 + 0.1969174380D+02 0.9643301108D+00 0.4295067732D+00 +SP 3 1.00 + 0.2112321280D+02 -0.2958173240D+00 0.2606954870D-01 + 0.7303285520D+01 0.2792166830D+00 0.4922497550D+00 + 0.2488849890D+01 0.9037303051D+00 0.5742737490D+00 +SP 2 1.00 + 0.2361373760D+01 -0.7202454254D+00 0.2877517760D-01 + 0.5860160490D+00 0.1376846015D+01 0.9833390701D+00 +SP 1 1.00 + 0.1944473480D+00 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.3736810300D+02 0.1479466054D+00 + 0.9854313100D+01 0.5121719185D+00 + 0.2732795500D+01 0.5729498207D+00 +**** +Rb 0 +S 3 1.00 + 0.6816722500D+04 0.6249620050D-01 + 0.1033000700D+04 0.3719500029D+00 + 0.2269086100D+03 0.6857293054D+00 +SP 3 1.00 + 0.3041283190D+03 -0.1123296170D+00 0.1484408888D+00 + 0.6626058030D+02 0.9075080238D-01 0.5891247423D+00 + 0.2091944730D+02 0.9639409908D+00 0.4258251255D+00 +SP 3 1.00 + 0.2246532550D+02 -0.3004849970D+00 0.2445409561D-01 + 0.7877468360D+01 0.2783565750D+00 0.4944538491D+00 + 0.2705271250D+01 0.9076098970D+00 0.5718567161D+00 +SP 3 1.00 + 0.2692115730D+01 -0.3311623420D+00 0.1190050559D-01 + 0.7230562880D+00 0.5096991340D+00 0.4951731447D+00 + 0.2598382590D+00 0.6982461430D+00 0.5737244147D+00 +SP 2 1.00 + 0.1897140210D+00 -0.2711927264D+00 0.3081009049D-03 + 0.3399725700D-01 0.1141549502D+01 0.9998653826D+00 +SP 1 1.00 + 0.1471231270D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.4086603100D+02 0.1466037007D+00 + 0.1084088500D+02 0.5127252025D+00 + 0.3050834100D+01 0.5699804027D+00 +**** +Sr 0 +S 3 1.00 + 0.7215473500D+04 0.6228180400D-01 + 0.1092851900D+04 0.3713101238D+00 + 0.2399818200D+03 0.6864439441D+00 +SP 3 1.00 + 0.3221245830D+03 -0.1122353181D+00 0.1488368389D+00 + 0.7009045940D+02 0.8954359874D-01 0.5919465646D+00 + 0.2217640630D+02 0.9648134634D+00 0.4221715147D+00 +SP 3 1.00 + 0.2392763060D+02 -0.3024718119D+00 0.2483697501D-01 + 0.8475113790D+01 0.2700840889D+00 0.4934775082D+00 + 0.2942934140D+01 0.9159199867D+00 0.5709829252D+00 +SP 3 1.00 + 0.2940966360D+01 -0.3519845979D+00 0.9723335540D-02 + 0.8523558630D+00 0.4972545548D+00 0.4983219640D+00 + 0.3215374960D+00 0.7238597817D+00 0.5650561210D+00 +SP 2 1.00 + 0.3480419380D+00 -0.2851468337D+00 0.3081096440D-03 + 0.4817714650D-01 0.1120939249D+01 0.9998935359D+00 +SP 1 1.00 + 0.2180335040D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.4456611500D+02 0.1451270982D+00 + 0.1188148900D+02 0.5130676936D+00 + 0.3387557900D+01 0.5676639929D+00 +**** +Y 0 +S 3 1.00 + 0.7646421000D+04 0.6189049853D-01 + 0.1156862600D+04 0.3702067912D+00 + 0.2537151800D+03 0.6877559836D+00 +SP 3 1.00 + 0.3418539800D+03 -0.1119000560D+00 0.1485716599D+00 + 0.7420986040D+02 0.8680523582D-01 0.5943066506D+00 + 0.2351352040D+02 0.9667846673D+00 0.4196039557D+00 +SP 3 1.00 + 0.1886260390D+02 -0.1477873303D+01 -0.7041406643D+00 + 0.1645405200D+02 0.1347258752D+01 0.1057861620D+01 + 0.3484499530D+01 0.1006230782D+01 0.7393821373D+00 +SP 3 1.00 + 0.3221732720D+01 -0.3699579711D+00 0.2494434829D-02 + 0.1050704660D+01 0.4308638621D+00 0.4537622898D+00 + 0.3925922690D+00 0.8020873682D+00 0.6130678517D+00 +SP 2 1.00 + 0.4327637070D+00 -0.3464582050D+00 -0.1336559069D-02 + 0.5701219000D-01 0.1132776617D+01 0.1000439599D+01 +SP 1 1.00 + 0.2375370010D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.5035375300D+02 0.1367955945D+00 + 0.1353078000D+02 0.5019061798D+00 + 0.3944996000D+01 0.5788597767D+00 +D 2 1.00 + 0.1530137400D+01 0.3384032639D+00 + 0.6300673400D+00 0.7293289459D+00 +D 1 1.00 + 0.2165884300D+00 1.0000000 +**** +Zr 0 +S 3 1.00 + 0.8084591900D+04 0.6157760047D-01 + 0.1221667800D+04 0.3693989028D+00 + 0.2676917300D+03 0.6887280052D+00 +SP 3 1.00 + 0.3610211930D+03 -0.1119067180D+00 0.1487616111D+00 + 0.7830494800D+02 0.8583992663D-01 0.5965690004D+00 + 0.2484522920D+02 0.9675130223D+00 0.4167848772D+00 +SP 3 1.00 + 0.2000627700D+02 -0.1544348624D+01 -0.7568479798D+00 + 0.1757414640D+02 0.1409596044D+01 0.1112090061D+01 + 0.3742985070D+01 0.1009349253D+01 0.7368023798D+00 +SP 3 1.00 + 0.3554788440D+01 -0.3793873088D+00 0.2599454819D-02 + 0.1178992360D+01 0.4232847258D+00 0.4599758038D+00 + 0.4446965590D+00 0.8140675616D+00 0.6058485068D+00 +SP 2 1.00 + 0.5050488190D+00 -0.3295117829D+00 -0.1248930019D-02 + 0.6211612260D-01 0.1120709453D+01 0.1000384339D+01 +SP 1 1.00 + 0.2557955310D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.5472323200D+02 0.1348239976D+00 + 0.1477416400D+02 0.5005543911D+00 + 0.4358961200D+01 0.5787822897D+00 +D 2 1.00 + 0.1862842400D+01 0.2850320290D+00 + 0.6433135400D+00 0.7972073721D+00 +D 1 1.00 + 0.1993953800D+00 1.0000000 +**** +Nb 0 +S 3 1.00 + 0.8466517300D+04 0.6180380361D-01 + 0.1281261100D+04 0.3698049216D+00 + 0.2812310800D+03 0.6880795402D+00 +SP 3 1.00 + 0.3794728780D+03 -0.1121062840D+00 0.1496673749D+00 + 0.8233588790D+02 0.8650278521D-01 0.5987182126D+00 + 0.2622247550D+02 0.9670573781D+00 0.4132381987D+00 +SP 3 1.00 + 0.2116294500D+02 -0.1555130539D+01 -0.7554622431D+00 + 0.1858978260D+02 0.1417938759D+01 0.1113966263D+01 + 0.4009981040D+01 0.1010619909D+01 0.7327671540D+00 +SP 3 1.00 + 0.3836375100D+01 -0.3891037463D+00 0.3290346942D-02 + 0.1303325200D+01 0.4349695854D+00 0.4716450753D+00 + 0.4934306400D+00 0.8115898937D+00 0.5936990064D+00 +SP 2 1.00 + 0.5723734170D+00 -0.3156093568D+00 -0.1133017876D-02 + 0.6820320050D-01 0.1114047019D+01 0.1000338056D+01 +SP 1 1.00 + 0.2715715000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.5901218700D+02 0.1337104078D+00 + 0.1601279000D+02 0.5000390291D+00 + 0.4777184600D+01 0.5775384336D+00 +D 2 1.00 + 0.1970443400D+01 0.3106808999D+00 + 0.6619346900D+00 0.7800691408D+00 +D 1 1.00 + 0.2059971900D+00 1.0000000 +**** +Mo 0 +S 3 1.00 + 0.8899491100D+04 0.6170640004D-01 + 0.1346763700D+04 0.3694536002D+00 + 0.2956351900D+03 0.6884343004D+00 +SP 3 1.00 + 0.3993138770D+03 -0.1121440250D+00 0.1500665160D+00 + 0.8659355800D+02 0.8601148352D-01 0.6007695369D+00 + 0.2763903930D+02 0.9674334852D+00 0.4103864710D+00 +SP 3 1.00 + 0.2250291540D+02 -0.1422306435D+01 -0.6680660696D+00 + 0.1949170890D+02 0.1284184615D+01 0.1030345622D+01 + 0.4278180270D+01 0.1010866226D+01 0.7283479918D+00 +SP 3 1.00 + 0.4163020710D+01 -0.3964232509D+00 0.2962629458D-02 + 0.1435305440D+01 0.4370791899D+00 0.4791471367D+00 + 0.5437821140D+00 0.8148461598D+00 0.5864869047D+00 +SP 2 1.00 + 0.6318014250D+00 -0.3033617372D+00 -0.1079133201D-02 + 0.7325791380D-01 0.1108413491D+01 0.1000313431D+01 +SP 1 1.00 + 0.2802514570D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.6378044700D+02 0.1317387929D+00 + 0.1737357600D+02 0.4985315731D+00 + 0.5230783900D+01 0.5781774688D+00 +D 2 1.00 + 0.2270936700D+01 0.3112644110D+00 + 0.7546529900D+00 0.7810341741D+00 +D 1 1.00 + 0.2351422000D+00 1.0000000 +**** +Tc 0 +S 3 1.00 + 0.9329481900D+04 0.6171189806D-01 + 0.1412505700D+04 0.3693369884D+00 + 0.3102643400D+03 0.6884723783D+00 +SP 3 1.00 + 0.4188175390D+03 -0.1124024540D+00 0.1500718580D+00 + 0.9125078120D+02 0.8531816312D-01 0.6000567119D+00 + 0.2911211720D+02 0.9681773902D+00 0.4109855669D+00 +SP 3 1.00 + 0.2591064190D+02 -0.1380446280D+01 -0.1655271309D+01 + 0.2326769750D+02 0.1197899670D+01 0.1986020459D+01 + 0.4707083150D+01 0.1052649060D+01 0.7290338916D+00 +SP 3 1.00 + 0.4441137880D+01 -0.4041144308D+00 0.1229062020D-01 + 0.1595639370D+01 0.4398378538D+00 0.4632067049D+00 + 0.5955597810D+00 0.8219360036D+00 0.5983825809D+00 +SP 2 1.00 + 0.6738811570D+00 -0.2700027944D+00 -0.9197675761D-03 + 0.7724070220D-01 0.1099150208D+01 0.1000264166D+01 +SP 1 1.00 + 0.2869556450D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.6878374900D+02 0.1296930121D+00 + 0.1880389500D+02 0.4966191463D+00 + 0.5705228000D+01 0.5795466541D+00 +D 2 1.00 + 0.2599163900D+01 0.3092194710D+00 + 0.8622757400D+00 0.7829056330D+00 +D 1 1.00 + 0.2706072700D+00 1.0000000 +**** +Ru 0 +S 3 1.00 + 0.9786161500D+04 0.6160520028D-01 + 0.1481476800D+04 0.3689816016D+00 + 0.3254122300D+03 0.6888451031D+00 +SP 3 1.00 + 0.4398665150D+03 -0.1123912090D+00 0.1503790650D+00 + 0.9576273480D+02 0.8469449409D-01 0.6019294290D+00 + 0.3060565860D+02 0.9686379149D+00 0.4084639320D+00 +SP 3 1.00 + 0.2727737250D+02 -0.1395552988D+01 -0.1668617781D+01 + 0.2451081690D+02 0.1210851848D+01 0.2002798882D+01 + 0.5008945520D+01 0.1054045099D+01 0.7251435116D+00 +SP 3 1.00 + 0.4765811660D+01 -0.4103626531D+00 0.1127417340D-01 + 0.1734531270D+01 0.4480025071D+00 0.4727032429D+00 + 0.6466354760D+00 0.8198082862D+00 0.5898430219D+00 +SP 2 1.00 + 0.7406620240D+00 -0.2639655063D+00 -0.7620441046D-03 + 0.8217095980D-01 0.1094857035D+01 0.1000211909D+01 +SP 1 1.00 + 0.3009659400D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.7398329900D+02 0.1277597962D+00 + 0.2028148900D+02 0.4951473852D+00 + 0.6194298100D+01 0.5806551827D+00 +D 2 1.00 + 0.2889107600D+01 0.3159938031D+00 + 0.9539609900D+00 0.7780655611D+00 +D 1 1.00 + 0.2958807000D+00 1.0000000 +**** +Rh 0 +S 3 1.00 + 0.1021771400D+05 0.6173240004D-01 + 0.1548411600D+04 0.3691533002D+00 + 0.3404990300D+03 0.6885138004D+00 +SP 3 1.00 + 0.4607592610D+03 -0.1124461021D+00 0.1508582420D+00 + 0.1003289400D+03 0.8438112985D-01 0.6035138860D+00 + 0.3213971350D+02 0.9689016196D+00 0.4060249090D+00 +SP 3 1.00 + 0.2879328560D+02 -0.1404090896D+01 -0.1712218278D+01 + 0.2591768470D+02 0.1216168826D+01 0.2047603377D+01 + 0.5320640440D+01 0.1056555307D+01 0.7229831249D+00 +SP 3 1.00 + 0.5109748290D+01 -0.4126468676D+00 0.9374063923D-02 + 0.1875414330D+01 0.4518853325D+00 0.4815543736D+00 + 0.6995577880D+00 0.8188988952D+00 0.5822312356D+00 +SP 2 1.00 + 0.8005710940D+00 -0.2553480035D+00 -0.7759711433D-03 + 0.8732134050D-01 0.1091308112D+01 0.1000212129D+01 +SP 1 1.00 + 0.3140693350D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.7925597300D+02 0.1261896071D+00 + 0.2178945400D+02 0.4939541278D+00 + 0.6697518100D+01 0.5813296328D+00 +D 2 1.00 + 0.3190908300D+01 0.3210399278D+00 + 0.1054575200D+01 0.7738518424D+00 +D 1 1.00 + 0.3260790600D+00 1.0000000 +**** +Pd 0 +S 3 1.00 + 0.1072874000D+05 0.6142950043D-01 + 0.1624073900D+04 0.3683282026D+00 + 0.3567937500D+03 0.6895025048D+00 +SP 3 1.00 + 0.4824782940D+03 -0.1126789240D+00 0.1510792641D+00 + 0.1050589550D+03 0.8461196572D-01 0.6050916464D+00 + 0.3368145340D+02 0.9687867882D+00 0.4039803793D+00 +SP 3 1.00 + 0.3018654250D+02 -0.1418546866D+01 -0.1709817152D+01 + 0.2716641580D+02 0.1229443675D+01 0.2049307540D+01 + 0.5635933900D+01 0.1057082555D+01 0.7186295705D+00 +SP 3 1.00 + 0.5475373890D+01 -0.4172610321D+00 0.1158391250D-01 + 0.1997604330D+01 0.4705878121D+00 0.4974547529D+00 + 0.7439301560D+00 0.8046363112D+00 0.5655272389D+00 +SP 2 1.00 + 0.8901632350D+00 -0.2784323865D+00 -0.1271580435D-02 + 0.9282090020D-01 0.1093027738D+01 0.1000331866D+01 +SP 1 1.00 + 0.3377393710D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.8423690600D+02 0.1256429007D+00 + 0.2324918600D+02 0.4937201026D+00 + 0.7196760400D+01 0.5803431030D+00 +D 2 1.00 + 0.3473076700D+01 0.3281542780D+00 + 0.1148049700D+01 0.7680266919D+00 +D 1 1.00 + 0.3548105800D+00 1.0000000 +**** +Ag 0 +S 3 1.00 + 0.1119078400D+05 0.6149480212D-01 + 0.1695077000D+04 0.3684053127D+00 + 0.3726751700D+03 0.6893247237D+00 +SP 3 1.00 + 0.5046162050D+03 -0.1126576630D+00 0.1514798020D+00 + 0.1098718020D+03 0.8402784354D-01 0.6065141580D+00 + 0.3529513400D+02 0.9692344314D+00 0.4018302360D+00 +SP 3 1.00 + 0.3156877340D+02 -0.1422027546D+01 -0.1673365657D+01 + 0.2834397060D+02 0.1234098205D+01 0.2018975646D+01 + 0.5945127400D+01 0.1055683174D+01 0.7126888926D+00 +SP 3 1.00 + 0.5800255840D+01 -0.4196170528D+00 0.1430410320D-01 + 0.2127256400D+01 0.4843500928D+00 0.5071942950D+00 + 0.7935511690D+00 0.7952035146D+00 0.5539736311D+00 +SP 2 1.00 + 0.9285444710D+00 -0.2523005089D+00 -0.1480711434D-02 + 0.9725466540D-01 0.1087391930D+01 0.1000388052D+01 +SP 1 1.00 + 0.3493292380D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.8993334900D+02 0.1240158966D+00 + 0.2487495800D+02 0.4923830864D+00 + 0.7738191400D+01 0.5814967839D+00 +D 2 1.00 + 0.3796556700D+01 0.3314258950D+00 + 0.1256644300D+01 0.7651634119D+00 +D 1 1.00 + 0.3881333100D+00 1.0000000 +**** +Cd 0 +S 3 1.00 + 0.1168608600D+05 0.6142649617D-01 + 0.1770111400D+04 0.3681566770D+00 + 0.3892089900D+03 0.6895721570D+00 +SP 3 1.00 + 0.5276003770D+03 -0.1125924770D+00 0.1518050990D+00 + 0.1148328770D+03 0.8326963198D-01 0.6077597690D+00 + 0.3695829310D+02 0.9697978087D+00 0.3999631560D+00 +SP 3 1.00 + 0.3301548210D+02 -0.1406471028D+01 -0.1609023667D+01 + 0.2954543010D+02 0.1218156268D+01 0.1959567526D+01 + 0.6278507560D+01 0.1055520308D+01 0.7080270607D+00 +SP 3 1.00 + 0.6150596330D+01 -0.4229209279D+00 0.1448229450D-01 + 0.2259746070D+01 0.4987714469D+00 0.5186611159D+00 + 0.8414261390D+00 0.7850754939D+00 0.5426657759D+00 +SP 2 1.00 + 0.9490686450D+00 -0.2215546835D+00 -0.1540265823D-02 + 0.1014878430D+00 0.1080944447D+01 0.1000412196D+01 +SP 1 1.00 + 0.3598726440D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.9547274300D+02 0.1230827990D+00 + 0.2648195900D+02 0.4916767962D+00 + 0.8282885800D+01 0.5815407955D+00 +D 2 1.00 + 0.4082141300D+01 0.3379409540D+00 + 0.1357279200D+01 0.7591678870D+00 +D 1 1.00 + 0.4208307600D+00 1.0000000 +**** +In 0 +S 3 1.00 + 0.1221454700D+05 0.6124759985D-01 + 0.1848913600D+04 0.3676753991D+00 + 0.4063683300D+03 0.6901358983D+00 +SP 3 1.00 + 0.5504422550D+03 -0.1127094329D+00 0.1523702989D+00 + 0.1197743540D+03 0.8344349526D-01 0.6096507527D+00 + 0.3866926950D+02 0.9696880355D+00 0.3970249498D+00 +SP 3 1.00 + 0.4702931320D+02 -0.2758954238D+00 -0.1408484750D+00 + 0.2249642350D+02 0.5977348125D-01 0.5290866941D+00 + 0.6697116970D+01 0.1082147535D+01 0.6620681111D+00 +SP 3 1.00 + 0.6572360380D+01 0.4284830560D+00 0.1091304620D-01 + 0.2502157560D+01 -0.4633643610D+00 0.5036758868D+00 + 0.9420245940D+00 -0.8219679320D+00 0.5581808648D+00 +SP 2 1.00 + 0.1001221380D+01 -0.4364171931D+00 -0.2316333509D-01 + 0.1659704190D+00 0.1189893475D+01 -0.9903308877D+00 +SP 1 1.00 + 0.5433974090D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.1021735600D+03 0.1205558956D+00 + 0.2839463200D+02 0.4884975820D+00 + 0.8924804500D+01 0.5850189785D+00 +D 3 1.00 + 0.4535363700D+01 0.2508574068D+00 + 0.1537148100D+01 0.5693113154D+00 + 0.4994922600D+00 0.3840635104D+00 +**** +Sn 0 +S 3 1.00 + 0.1274167400D+05 0.6113529959D-01 + 0.1928469200D+04 0.3672928976D+00 + 0.4238079700D+03 0.6905446954D+00 +SP 3 1.00 + 0.5742875030D+03 -0.1127462410D+00 0.1525797960D+00 + 0.1249536520D+03 0.8286347307D-01 0.6110105889D+00 + 0.4039575890D+02 0.9701504517D+00 0.3951548539D+00 +SP 3 1.00 + 0.4880661910D+02 -0.2824533571D+00 -0.1509627539D+00 + 0.2383588110D+02 0.6605594709D-01 0.5399677287D+00 + 0.7048295500D+01 0.1081987257D+01 0.6604823107D+00 +SP 3 1.00 + 0.6973377530D+01 0.4340355839D+00 0.1195129860D-01 + 0.2693039570D+01 -0.4610285879D+00 0.5067194520D+00 + 0.1025957600D+01 -0.8285579378D+00 0.5529105830D+00 +SP 2 1.00 + 0.1131462610D+01 0.5252084707D+00 -0.2107052591D-01 + 0.2034091770D+00 -0.1229226474D+01 -0.9905913714D+00 +SP 1 1.00 + 0.7056383040D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.1080563000D+03 0.1198237020D+00 + 0.3013157600D+02 0.4875910081D+00 + 0.9530035900D+01 0.5849874098D+00 +D 3 1.00 + 0.4962609800D+01 0.2529487035D+00 + 0.1712082900D+01 0.5727612080D+00 + 0.5771945100D+00 0.3690387051D+00 +**** +Sb 0 +S 3 1.00 + 0.1328938300D+05 0.6098430000D-01 + 0.2010521800D+04 0.3668487000D+00 + 0.4416981500D+03 0.6910501000D+00 +SP 3 1.00 + 0.5988890500D+03 -0.1127201340D+00 0.1530671170D+00 + 0.1300386010D+03 0.8264432608D-01 0.6135972481D+00 + 0.4213286020D+02 0.9702578608D+00 0.3916990150D+00 +SP 3 1.00 + 0.5151332880D+02 -0.2770433377D+00 -0.1378698580D+00 + 0.2443594590D+02 0.5750323393D-01 0.5363549769D+00 + 0.7420930800D+01 0.1084702829D+01 0.6508676379D+00 +SP 3 1.00 + 0.7314235410D+01 0.4403811641D+00 0.1530518090D-01 + 0.2844052860D+01 -0.4737340951D+00 0.5160832191D+00 + 0.1105854670D+01 -0.8221349682D+00 0.5387570471D+00 +SP 2 1.00 + 0.1278637290D+01 0.6016951047D+00 -0.2225275660D-01 + 0.2412320970D+00 -0.1258692017D+01 -0.9896433641D+00 +SP 1 1.00 + 0.8662967320D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.1158095500D+03 0.1166279038D+00 + 0.3230583500D+02 0.4834363158D+00 + 0.1025032800D+02 0.5901395192D+00 +D 3 1.00 + 0.5486210200D+01 0.2483655969D+00 + 0.1921619600D+01 0.5743153928D+00 + 0.6660626500D+00 0.3643043954D+00 +**** +Te 0 +S 3 1.00 + 0.1379656000D+05 0.6108620183D-01 + 0.2088879800D+04 0.3669629110D+00 + 0.4593931900D+03 0.6907944207D+00 +SP 3 1.00 + 0.6232631250D+03 -0.1128200240D+00 0.1534194779D+00 + 0.1353600050D+03 0.8225243100D-01 0.6148996146D+00 + 0.4400048430D+02 0.9706007190D+00 0.3895162447D+00 +SP 3 1.00 + 0.5419078330D+02 -0.2744120347D+00 -0.1433312141D+00 + 0.2582039000D+02 0.5182968462D-01 0.5391881202D+00 + 0.7809583200D+01 0.1087621523D+01 0.6522850782D+00 +SP 3 1.00 + 0.7764216830D+01 0.4467305520D+00 0.1274619601D-01 + 0.3043931600D+01 -0.4694704190D+00 0.5221231254D+00 + 0.1199252880D+01 -0.8298104900D+00 0.5326613984D+00 +SP 2 1.00 + 0.1340363800D+01 0.5904699297D+00 -0.2558833989D-01 + 0.2780883850D+00 -0.1281968387D+01 -0.9871016265D+00 +SP 1 1.00 + 0.9672607420D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.1214083000D+03 0.1169135914D+00 + 0.3401521700D+02 0.4835554645D+00 + 0.1086913800D+02 0.5883863568D+00 +D 3 1.00 + 0.5803111300D+01 0.2601938950D+00 + 0.2058065800D+01 0.5797757888D+00 + 0.7328302100D+00 0.3405579934D+00 +**** +I 0 +S 3 1.00 + 0.1435118600D+05 0.6100280121D-01 + 0.2173074100D+04 0.3666398073D+00 + 0.4778720500D+03 0.6911306137D+00 +SP 3 1.00 + 0.6481886590D+03 -0.1128506660D+00 0.1541144881D+00 + 0.1403064480D+03 0.8322833753D-01 0.6194617634D+00 + 0.4569880120D+02 0.9697515913D+00 0.3837583163D+00 +SP 3 1.00 + 0.5669468950D+02 -0.2736964882D+00 -0.1523216720D+00 + 0.2748875260D+02 0.4649967921D-01 0.5437685671D+00 + 0.8209095830D+01 0.1091576055D+01 0.6561678541D+00 +SP 3 1.00 + 0.8191678650D+01 0.4508277048D+00 0.1186987900D-01 + 0.3244595590D+01 -0.4632093728D+00 0.5265245819D+00 + 0.1300489090D+01 -0.8386360157D+00 0.5266076079D+00 +SP 2 1.00 + 0.1451380120D+01 0.6658514628D+00 -0.2754130961D-01 + 0.3281033130D+00 -0.1328583874D+01 -0.9851368322D+00 +SP 1 1.00 + 0.1150758940D+00 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.1280902600D+03 0.1158636044D+00 + 0.3598237800D+02 0.4820494181D+00 + 0.1155111600D+02 0.5894448221D+00 +D 3 1.00 + 0.6146152300D+01 0.2681817060D+00 + 0.2220937000D+01 0.5800614130D+00 + 0.8099120200D+00 0.3262263073D+00 +**** +Xe 0 +S 3 1.00 + 0.1490223600D+05 0.6099689663D-01 + 0.2256538300D+04 0.3666289798D+00 + 0.4963731700D+03 0.6911154619D+00 +SP 3 1.00 + 0.6736610920D+03 -0.1129127500D+00 0.1544274850D+00 + 0.1458490890D+03 0.8290529191D-01 0.6206173538D+00 + 0.4757707550D+02 0.9700289051D+00 0.3820041019D+00 +SP 3 1.00 + 0.5916752090D+02 -0.2739774065D+00 -0.1518571811D+00 + 0.2861159240D+02 0.4553005619D-01 0.5471506593D+00 + 0.8596596290D+01 0.1092527552D+01 0.6519540313D+00 +SP 3 1.00 + 0.8638676160D+01 0.4558408016D+00 0.9585055706D-02 + 0.3462817980D+01 -0.4617354976D+00 0.5298192868D+00 + 0.1401039790D+01 -0.8442883033D+00 0.5235984968D+00 +SP 2 1.00 + 0.1578474100D+01 0.7277717934D+00 -0.2807244179D-01 + 0.3750814120D+00 -0.1362797075D+01 -0.9842642086D+00 +SP 1 1.00 + 0.1331789700D+00 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.1349133100D+03 0.1150104908D+00 + 0.3795638700D+02 0.4815951616D+00 + 0.1222747500D+02 0.5896132529D+00 +D 3 1.00 + 0.6600492800D+01 0.2718844011D+00 + 0.2398051300D+01 0.5855569025D+00 + 0.8864823900D+00 0.3127456013D+00 +**** + diff --git a/basis/6-31g.gbf b/basis/6-31g.gbf new file mode 100644 index 0000000..a17aaca --- /dev/null +++ b/basis/6-31g.gbf @@ -0,0 +1,960 @@ + + +cartesian + +!---------------------------------------------------------------------- +! Basis Set Exchange +! Version v0.8.12 +! https://www.basissetexchange.org +!---------------------------------------------------------------------- +! Basis set: 6-31G +! Description: 6-31G valence double-zeta +! Role: orbital +! Version: 1 (Data from Gaussian 09/GAMESS) +!---------------------------------------------------------------------- + + +**** +H 0 +S 3 1.00 + 0.1873113696D+02 0.3349460434D-01 + 0.2825394365D+01 0.2347269535D+00 + 0.6401216923D+00 0.8137573261D+00 +S 1 1.00 + 0.1612777588D+00 1.0000000 +**** +He 0 +S 3 1.00 + 0.3842163400D+02 0.4013973935D-01 + 0.5778030000D+01 0.2612460970D+00 + 0.1241774000D+01 0.7931846246D+00 +S 1 1.00 + 0.2979640000D+00 1.0000000 +**** +Li 0 +S 6 1.00 + 0.6424189150D+03 0.2142607810D-02 + 0.9679851530D+02 0.1620887150D-01 + 0.2209112120D+02 0.7731557250D-01 + 0.6201070250D+01 0.2457860520D+00 + 0.1935117680D+01 0.4701890040D+00 + 0.6367357890D+00 0.3454708450D+00 +SP 3 1.00 + 0.2324918408D+01 -0.3509174574D-01 0.8941508043D-02 + 0.6324303556D+00 -0.1912328431D+00 0.1410094640D+00 + 0.7905343475D-01 0.1083987795D+01 0.9453636953D+00 +SP 1 1.00 + 0.3596197175D-01 0.1000000000D+01 0.1000000000D+01 +**** +Be 0 +S 6 1.00 + 0.1264585690D+04 0.1944757590D-02 + 0.1899368060D+03 0.1483505200D-01 + 0.4315908900D+02 0.7209054629D-01 + 0.1209866270D+02 0.2371541500D+00 + 0.3806323220D+01 0.4691986519D+00 + 0.1272890300D+01 0.3565202279D+00 +SP 3 1.00 + 0.3196463098D+01 -0.1126487285D+00 0.5598019980D-01 + 0.7478133038D+00 -0.2295064079D+00 0.2615506110D+00 + 0.2199663302D+00 0.1186916764D+01 0.7939723389D+00 +SP 1 1.00 + 0.8230990070D-01 0.1000000000D+01 0.1000000000D+01 +**** +B 0 +S 6 1.00 + 0.2068882250D+04 0.1866274590D-02 + 0.3106495700D+03 0.1425148170D-01 + 0.7068303300D+02 0.6955161850D-01 + 0.1986108030D+02 0.2325729330D+00 + 0.6299304840D+01 0.4670787120D+00 + 0.2127026970D+01 0.3634314400D+00 +SP 3 1.00 + 0.4727971071D+01 -0.1303937974D+00 0.7459757992D-01 + 0.1190337736D+01 -0.1307889514D+00 0.3078466771D+00 + 0.3594116829D+00 0.1130944484D+01 0.7434568342D+00 +SP 1 1.00 + 0.1267512469D+00 0.1000000000D+01 0.1000000000D+01 +**** +C 0 +S 6 1.00 + 0.3047524880D+04 0.1834737132D-02 + 0.4573695180D+03 0.1403732281D-01 + 0.1039486850D+03 0.6884262226D-01 + 0.2921015530D+02 0.2321844432D+00 + 0.9286662960D+01 0.4679413484D+00 + 0.3163926960D+01 0.3623119853D+00 +SP 3 1.00 + 0.7868272350D+01 -0.1193324198D+00 0.6899906659D-01 + 0.1881288540D+01 -0.1608541517D+00 0.3164239610D+00 + 0.5442492580D+00 0.1143456438D+01 0.7443082909D+00 +SP 1 1.00 + 0.1687144782D+00 0.1000000000D+01 0.1000000000D+01 +**** +N 0 +S 6 1.00 + 0.4173511460D+04 0.1834772160D-02 + 0.6274579110D+03 0.1399462700D-01 + 0.1429020930D+03 0.6858655181D-01 + 0.4023432930D+02 0.2322408730D+00 + 0.1282021290D+02 0.4690699481D+00 + 0.4390437010D+01 0.3604551991D+00 +SP 3 1.00 + 0.1162636186D+02 -0.1149611817D+00 0.6757974388D-01 + 0.2716279807D+01 -0.1691174786D+00 0.3239072959D+00 + 0.7722183966D+00 0.1145851947D+01 0.7408951398D+00 +SP 1 1.00 + 0.2120314975D+00 0.1000000000D+01 0.1000000000D+01 +**** +O 0 +S 6 1.00 + 0.5484671660D+04 0.1831074430D-02 + 0.8252349460D+03 0.1395017220D-01 + 0.1880469580D+03 0.6844507810D-01 + 0.5296450000D+02 0.2327143360D+00 + 0.1689757040D+02 0.4701928980D+00 + 0.5799635340D+01 0.3585208530D+00 +SP 3 1.00 + 0.1553961625D+02 -0.1107775495D+00 0.7087426823D-01 + 0.3599933586D+01 -0.1480262627D+00 0.3397528391D+00 + 0.1013761750D+01 0.1130767015D+01 0.7271585773D+00 +SP 1 1.00 + 0.2700058226D+00 0.1000000000D+01 0.1000000000D+01 +**** +F 0 +S 6 1.00 + 0.7001713090D+04 0.1819616901D-02 + 0.1051366090D+04 0.1391607961D-01 + 0.2392856900D+03 0.6840532453D-01 + 0.6739744530D+02 0.2331857601D+00 + 0.2151995730D+02 0.4712674392D+00 + 0.7403101300D+01 0.3566185462D+00 +SP 3 1.00 + 0.2084795280D+02 -0.1085069751D+00 0.7162872424D-01 + 0.4808308340D+01 -0.1464516581D+00 0.3459121027D+00 + 0.1344069860D+01 0.1128688581D+01 0.7224699564D+00 +SP 1 1.00 + 0.3581513930D+00 0.1000000000D+01 0.1000000000D+01 +**** +Ne 0 +S 6 1.00 + 0.8425851530D+04 0.1884348050D-02 + 0.1268519400D+04 0.1433689940D-01 + 0.2896214140D+03 0.7010962331D-01 + 0.8185900400D+02 0.2373732660D+00 + 0.2625150790D+02 0.4730071261D+00 + 0.9094720510D+01 0.3484012410D+00 +SP 3 1.00 + 0.2653213100D+02 -0.1071182872D+00 0.7190958851D-01 + 0.6101755010D+01 -0.1461638213D+00 0.3495133720D+00 + 0.1696271530D+01 0.1127773503D+01 0.7199405121D+00 +SP 1 1.00 + 0.4458187000D+00 0.1000000000D+01 0.1000000000D+01 +**** +Na 0 +S 6 1.00 + 0.9993200000D+04 0.1937659277D-02 + 0.1499890000D+04 0.1480699448D-01 + 0.3419510000D+03 0.7270547288D-01 + 0.9467960000D+02 0.2526289058D+00 + 0.2973450000D+02 0.4932418160D+00 + 0.1000630000D+02 0.3131688832D+00 +SP 6 1.00 + 0.1509630000D+03 -0.3542083504D-02 0.5001659710D-02 + 0.3558780000D+02 -0.4395884348D-01 0.3551089794D-01 + 0.1116830000D+02 -0.1097521086D+00 0.1428249917D+00 + 0.3902010000D+01 0.1873981854D+00 0.3386199803D+00 + 0.1381770000D+01 0.6466996397D+00 0.4515789738D+00 + 0.4663820000D+00 0.3060583027D+00 0.2732709841D+00 +SP 3 1.00 + 0.4979660000D+00 -0.2485031593D+00 -0.2302250043D-01 + 0.8435290000D-01 -0.1317040844D+00 0.9503590176D+00 + 0.6663500000D-01 0.1233520791D+01 0.5985790111D-01 +SP 1 1.00 + 0.2595440000D-01 0.1000000000D+01 0.1000000000D+01 +**** +Mg 0 +S 6 1.00 + 0.1172280000D+05 0.1977829317D-02 + 0.1759930000D+04 0.1511399478D-01 + 0.4008460000D+03 0.7391077448D-01 + 0.1128070000D+03 0.2491909140D+00 + 0.3599970000D+02 0.4879278316D+00 + 0.1218280000D+02 0.3196618896D+00 +SP 6 1.00 + 0.1891800000D+03 -0.3237170471D-02 0.4928129921D-02 + 0.4521190000D+02 -0.4100790597D-01 0.3498879944D-01 + 0.1435630000D+02 -0.1126000164D+00 0.1407249977D+00 + 0.5138860000D+01 0.1486330216D+00 0.3336419947D+00 + 0.1906520000D+01 0.6164970898D+00 0.4449399929D+00 + 0.7058870000D+00 0.3648290531D+00 0.2692539957D+00 +SP 3 1.00 + 0.9293400000D+00 -0.2122908985D+00 -0.2241918123D-01 + 0.2690350000D+00 -0.1079854570D+00 0.1922708390D+00 + 0.1173790000D+00 0.1175844977D+01 0.8461802916D+00 +SP 1 1.00 + 0.4210610000D-01 0.1000000000D+01 0.1000000000D+01 +**** +Al 0 +S 6 1.00 + 0.1398310000D+05 0.1942669947D-02 + 0.2098750000D+04 0.1485989959D-01 + 0.4777050000D+03 0.7284939800D-01 + 0.1343600000D+03 0.2468299932D+00 + 0.4287090000D+02 0.4872579866D+00 + 0.1451890000D+02 0.3234959911D+00 +SP 6 1.00 + 0.2396680000D+03 -0.2926190028D-02 0.4602845582D-02 + 0.5744190000D+02 -0.3740830036D-01 0.3319896813D-01 + 0.1828590000D+02 -0.1144870011D+00 0.1362818692D+00 + 0.6599140000D+01 0.1156350011D+00 0.3304756828D+00 + 0.2490490000D+01 0.6125950058D+00 0.4491455689D+00 + 0.9445450000D+00 0.3937990037D+00 0.2657037450D+00 +SP 3 1.00 + 0.1277900000D+01 -0.2276069245D+00 -0.1751260189D-01 + 0.3975900000D+00 0.1445835873D-02 0.2445330264D+00 + 0.1600950000D+00 0.1092794439D+01 0.8049340867D+00 +SP 1 1.00 + 0.5565770000D-01 0.1000000000D+01 0.1000000000D+01 +**** +Si 0 +S 6 1.00 + 0.1611590000D+05 0.1959480216D-02 + 0.2425580000D+04 0.1492880164D-01 + 0.5538670000D+03 0.7284780801D-01 + 0.1563400000D+03 0.2461300271D+00 + 0.5006830000D+02 0.4859140535D+00 + 0.1701780000D+02 0.3250020358D+00 +SP 6 1.00 + 0.2927180000D+03 -0.2780941415D-02 0.4438264521D-02 + 0.6987310000D+02 -0.3571461817D-01 0.3266793328D-01 + 0.2233630000D+02 -0.1149850585D+00 0.1347211372D+00 + 0.8150390000D+01 0.9356344760D-01 0.3286783348D+00 + 0.3134580000D+01 0.6030173068D+00 0.4496404580D+00 + 0.1225430000D+01 0.4189592131D+00 0.2613722662D+00 +SP 3 1.00 + 0.1727380000D+01 -0.2446310042D+00 -0.1779510605D-01 + 0.5729220000D+00 0.4315737717D-02 0.2535390863D+00 + 0.2221920000D+00 0.1098184508D+01 0.8006692724D+00 +SP 1 1.00 + 0.7783690000D-01 0.1000000000D+01 0.1000000000D+01 +**** +P 0 +S 6 1.00 + 0.1941330000D+05 0.1851598923D-02 + 0.2909420000D+04 0.1420619174D-01 + 0.6613640000D+03 0.6999945928D-01 + 0.1857590000D+03 0.2400788603D+00 + 0.5919430000D+02 0.4847617180D+00 + 0.2003100000D+02 0.3351998050D+00 +SP 6 1.00 + 0.3394780000D+03 -0.2782170105D-02 0.4564616191D-02 + 0.8101010000D+02 -0.3604990135D-01 0.3369357188D-01 + 0.2587800000D+02 -0.1166310044D+00 0.1397548834D+00 + 0.9452210000D+01 0.9683280364D-01 0.3393617168D+00 + 0.3665660000D+01 0.6144180231D+00 0.4509206237D+00 + 0.1467460000D+01 0.4037980152D+00 0.2385858009D+00 +SP 3 1.00 + 0.2156230000D+01 -0.2529241139D+00 -0.1776531273D-01 + 0.7489970000D+00 0.3285184468D-01 0.2740581964D+00 + 0.2831450000D+00 0.1081254762D+01 0.7854215630D+00 +SP 1 1.00 + 0.9983170000D-01 0.1000000000D+01 0.1000000000D+01 +**** +S 0 +S 6 1.00 + 0.2191710000D+05 0.1869240849D-02 + 0.3301490000D+04 0.1423030646D-01 + 0.7541460000D+03 0.6969623166D-01 + 0.2127110000D+03 0.2384871083D+00 + 0.6798960000D+02 0.4833072195D+00 + 0.2305150000D+02 0.3380741536D+00 +SP 6 1.00 + 0.4237350000D+03 -0.2376770499D-02 0.4061009982D-02 + 0.1007100000D+03 -0.3169300665D-01 0.3068129986D-01 + 0.3215990000D+02 -0.1133170238D+00 0.1304519994D+00 + 0.1180790000D+02 0.5609001177D-01 0.3272049985D+00 + 0.4631100000D+01 0.5922551243D+00 0.4528509980D+00 + 0.1870250000D+01 0.4550060955D+00 0.2560419989D+00 +SP 3 1.00 + 0.2615840000D+01 -0.2503731142D+00 -0.1451048955D-01 + 0.9221670000D+00 0.6695676310D-01 0.3102627765D+00 + 0.3412870000D+00 0.1054506269D+01 0.7544824565D+00 +SP 1 1.00 + 0.1171670000D+00 0.1000000000D+01 0.1000000000D+01 +**** +Cl 0 +S 6 1.00 + 0.2518010000D+05 0.1832959848D-02 + 0.3780350000D+04 0.1403419883D-01 + 0.8604740000D+03 0.6909739426D-01 + 0.2421450000D+03 0.2374519803D+00 + 0.7733490000D+02 0.4830339599D+00 + 0.2624700000D+02 0.3398559718D+00 +SP 6 1.00 + 0.4917650000D+03 -0.2297391417D-02 0.3989400879D-02 + 0.1169840000D+03 -0.3071371894D-01 0.3031770668D-01 + 0.3741530000D+02 -0.1125280694D+00 0.1298800286D+00 + 0.1378340000D+02 0.4501632776D-01 0.3279510723D+00 + 0.5452150000D+01 0.5893533634D+00 0.4535271000D+00 + 0.2225880000D+01 0.4652062868D+00 0.2521540556D+00 +SP 3 1.00 + 0.3186490000D+01 -0.2518280280D+00 -0.1429931472D-01 + 0.1144270000D+01 0.6158925141D-01 0.3235723331D+00 + 0.4203770000D+00 0.1060184328D+01 0.7435077653D+00 +SP 1 1.00 + 0.1426570000D+00 0.1000000000D+01 0.1000000000D+01 +**** +Ar 0 +S 6 1.00 + 0.2834830000D+05 0.1825260192D-02 + 0.4257620000D+04 0.1396860147D-01 + 0.9698570000D+03 0.6870730723D-01 + 0.2732630000D+03 0.2362040249D+00 + 0.8736950000D+02 0.4822140508D+00 + 0.2968670000D+02 0.3420430360D+00 +SP 6 1.00 + 0.5758910000D+03 -0.2159720895D-02 0.3806649842D-02 + 0.1368160000D+03 -0.2907751206D-01 0.2923049879D-01 + 0.4380980000D+02 -0.1108270460D+00 0.1264669948D+00 + 0.1620940000D+02 0.2769991148D-01 0.3235099866D+00 + 0.6460840000D+01 0.5776132395D+00 0.4548959811D+00 + 0.2651140000D+01 0.4886882026D+00 0.2566299894D+00 +SP 3 1.00 + 0.3860280000D+01 -0.2555929604D+00 -0.1591969040D-01 + 0.1413730000D+01 0.3780674206D-01 0.3246458042D+00 + 0.5166460000D+00 0.1080564060D+01 0.7439895512D+00 +SP 1 1.00 + 0.1738880000D+00 0.1000000000D+01 0.1000000000D+01 +**** +K 0 +S 6 1.00 + 0.3159442000D+05 0.1828009922D-02 + 0.4744330000D+04 0.1399402940D-01 + 0.1080419000D+04 0.6887128707D-01 + 0.3042338000D+03 0.2369759899D+00 + 0.9724586000D+02 0.4829039794D+00 + 0.3302495000D+02 0.3404794855D+00 +SP 6 1.00 + 0.6227625000D+03 -0.2502975932D-02 0.4094636754D-02 + 0.1478839000D+03 -0.3315549910D-01 0.3145198811D-01 + 0.4732735000D+02 -0.1226386967D+00 0.1351557919D+00 + 0.1751495000D+02 0.5353642855D-01 0.3390499796D+00 + 0.6922722000D+01 0.6193859832D+00 0.4629454722D+00 + 0.2768277000D+01 0.4345877882D+00 0.2242637865D+00 +SP 6 1.00 + 0.1184802000D+02 0.1277689027D-01 -0.1221377161D-01 + 0.4079211000D+01 0.2098767044D+00 -0.6900537911D-02 + 0.1763481000D+01 -0.3095274065D-02 0.2007466265D+00 + 0.7889270000D+00 -0.5593884117D+00 0.4281332565D+00 + 0.3503870000D+00 -0.5134760107D+00 0.3970156524D+00 + 0.1463440000D+00 -0.6598035138D-01 0.1104718146D+00 +SP 3 1.00 + 0.7168010000D+00 -0.5237766157D-01 0.3164300053D-01 + 0.2337410000D+00 -0.2798499878D+00 -0.4046160068D-01 + 0.3867500000D-01 0.1141545727D+01 0.1012029017D+01 +SP 1 1.00 + 0.1652100000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.9029078000D+01 0.8747672000D-01 + 0.2285045000D+01 0.3795635000D+00 + 0.6638920000D+00 0.7180393000D+00 +D 1 1.00 + 0.1793890000D+00 1.0000000 +**** +Ca 0 +S 6 1.00 + 0.3526486000D+05 0.1813501124D-02 + 0.5295503000D+04 0.1388493095D-01 + 0.1206020000D+04 0.6836162469D-01 + 0.3396839000D+03 0.2356188162D+00 + 0.1086264000D+03 0.4820639331D+00 + 0.3692103000D+02 0.3429819235D+00 +SP 6 1.00 + 0.7063096000D+03 0.2448225082D-02 0.4020370978D-02 + 0.1678187000D+03 0.3241504109D-01 0.3100600983D-01 + 0.5382558000D+02 0.1226219041D+00 0.1337278993D+00 + 0.2001638000D+02 -0.4316965145D-01 0.3367982982D+00 + 0.7970279000D+01 -0.6126995206D+00 0.4631280975D+00 + 0.3212059000D+01 -0.4487540151D+00 0.2257531988D+00 +SP 6 1.00 + 0.1419518000D+02 0.1084500055D-01 -0.1289621138D-01 + 0.4880828000D+01 0.2088333107D+00 -0.1025198110D-01 + 0.2160390000D+01 0.3150338161D-01 0.1959781209D+00 + 0.9878990000D+00 -0.5526518282D+00 0.4357933466D+00 + 0.4495170000D+00 -0.5437997277D+00 0.3996452427D+00 + 0.1873870000D+00 -0.6669342340D-01 0.9713637038D-01 +SP 3 1.00 + 0.1032271000D+01 -0.4439718086D-01 -0.4298620974D+00 + 0.3811710000D+00 -0.3284561584D+00 0.6935828957D-02 + 0.6513100000D-01 0.1163009499D+01 0.9705932940D+00 +SP 1 1.00 + 0.2601000000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.1011067000D+02 0.8747672000D-01 + 0.2558769000D+01 0.3795635000D+00 + 0.7434200000D+00 0.7180393000D+00 +D 1 1.00 + 0.2008780000D+00 1.0000000 +**** +Sc 0 +S 6 1.00 + 0.3908898000D+05 0.1803262955D-02 + 0.5869792000D+04 0.1380768965D-01 + 0.1336910000D+04 0.6800395829D-01 + 0.3766031000D+03 0.2347098941D+00 + 0.1204679000D+03 0.4815689879D+00 + 0.4098032000D+02 0.3445651913D+00 +SP 6 1.00 + 0.7862852000D+03 0.2451863032D-02 0.4039529691D-02 + 0.1868870000D+03 0.3259579042D-01 0.3122569761D-01 + 0.6000935000D+02 0.1238242016D+00 0.1349832897D+00 + 0.2225883000D+02 -0.4359890057D-01 0.3424792738D+00 + 0.8885149000D+01 -0.6177181080D+00 0.4623112646D+00 + 0.3609211000D+01 -0.4432823058D+00 0.2177523833D+00 +SP 6 1.00 + 0.2984355000D+02 -0.2586302031D-02 -0.6096652719D-02 + 0.9542383000D+01 0.7188424085D-01 -0.2628884310D-01 + 0.4056790000D+01 0.2503260030D+00 0.5091001601D-01 + 0.1704703000D+01 -0.2991003035D+00 0.3798097448D+00 + 0.7062340000D+00 -0.7446818088D+00 0.5170883610D+00 + 0.2795360000D+00 -0.1799776021D+00 0.1829772216D+00 +SP 3 1.00 + 0.1065609000D+01 0.6482978223D-01 -0.2938439989D+00 + 0.4259330000D+00 0.3253756112D+00 0.9235322967D-01 + 0.7632000000D-01 -0.1170806040D+01 0.9847929965D+00 +SP 1 1.00 + 0.2959400000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.1114701000D+02 0.8747672298D-01 + 0.2821043000D+01 0.3795635129D+00 + 0.8196200000D+00 0.7180393244D+00 +D 1 1.00 + 0.2214680000D+00 1.0000000 +**** +Ti 0 +S 6 1.00 + 0.4315295000D+05 0.1791871976D-02 + 0.6479571000D+04 0.1372391982D-01 + 0.1475675000D+04 0.6762829911D-01 + 0.4156991000D+03 0.2337641969D+00 + 0.1330006000D+03 0.4810695937D+00 + 0.4527222000D+02 0.3462279954D+00 +SP 6 1.00 + 0.8746826000D+03 0.2431008053D-02 0.4017679296D-02 + 0.2079785000D+03 0.3233027071D-01 0.3113966230D-01 + 0.6687918000D+02 0.1242520027D+00 0.1349077100D+00 + 0.2487347000D+02 -0.3903905085D-01 0.3431672253D+00 + 0.9968441000D+01 -0.6171789135D+00 0.4625760341D+00 + 0.4063826000D+01 -0.4473097098D+00 0.2154603159D+00 +SP 6 1.00 + 0.3364363000D+02 -0.2940357957D-02 -0.6311620001D-02 + 0.1087565000D+02 0.7163102894D-01 -0.2697638000D-01 + 0.4628225000D+01 0.2528914963D+00 0.5316847001D-01 + 0.1950126000D+01 -0.2966400956D+00 0.3845549000D+00 + 0.8094520000D+00 -0.7432214890D+00 0.5127662001D+00 + 0.3204740000D+00 -0.1853519973D+00 0.1811135000D+00 +SP 3 1.00 + 0.1224148000D+01 0.6351460717D-01 -0.2112070099D+00 + 0.4842630000D+00 0.3151401875D+00 0.7771998364D-01 + 0.8409600000D-01 -0.1162594216D+01 0.9898214464D+00 +SP 1 1.00 + 0.3203600000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.1369085000D+02 0.8589417880D-01 + 0.3513154000D+01 0.3784670947D+00 + 0.1040434000D+01 0.7161238900D+00 +D 1 1.00 + 0.2869620000D+00 1.0000000 +**** +V 0 +S 6 1.00 + 0.4735433000D+05 0.1784512997D-02 + 0.7110787000D+04 0.1366753998D-01 + 0.1619591000D+04 0.6736121989D-01 + 0.4563379000D+03 0.2330551996D+00 + 0.1460606000D+03 0.4806315992D+00 + 0.4975791000D+02 0.3474801994D+00 +SP 6 1.00 + 0.9681484000D+03 0.2410599011D-02 0.3995005174D-02 + 0.2302821000D+03 0.3207243014D-01 0.3104061135D-01 + 0.7414591000D+02 0.1245942006D+00 0.1347747059D+00 + 0.2764107000D+02 -0.3482177015D-01 0.3437279150D+00 + 0.1111475000D+02 -0.6167374027D+00 0.4628759202D+00 + 0.4543113000D+01 -0.4509844020D+00 0.2135547093D+00 +SP 6 1.00 + 0.3764050000D+02 -0.3233199384D-02 -0.6494056098D-02 + 0.1228238000D+02 0.7130744847D-01 -0.2753453042D-01 + 0.5233366000D+01 0.2543820302D+00 0.5516284083D-01 + 0.2208950000D+01 -0.2933887348D+00 0.3879672059D+00 + 0.9178800000D+00 -0.7415695881D+00 0.5090258077D+00 + 0.3634120000D+00 -0.1909410227D+00 0.1803840027D+00 +SP 3 1.00 + 0.1392781000D+01 0.6139702133D-01 -0.1891264918D+00 + 0.5439130000D+00 0.3061129568D+00 0.8005452654D-01 + 0.9147600000D-01 -0.1154889837D+01 0.9877398574D+00 +SP 1 1.00 + 0.3431200000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.1605025000D+02 0.8599899166D-01 + 0.4160063000D+01 0.3802996074D+00 + 0.1243265000D+01 0.7127659138D+00 +D 1 1.00 + 0.3442770000D+00 1.0000000 +**** +Cr 0 +S 6 1.00 + 0.5178981000D+05 0.1776181956D-02 + 0.7776849000D+04 0.1360475966D-01 + 0.1771385000D+04 0.6706924832D-01 + 0.4991588000D+03 0.2323103942D+00 + 0.1597982000D+03 0.4802409880D+00 + 0.5447021000D+02 0.3487652913D+00 +SP 6 1.00 + 0.1064328000D+04 0.2399669027D-02 0.3986996969D-02 + 0.2532138000D+03 0.3194886035D-01 0.3104661976D-01 + 0.8160924000D+02 0.1250868014D+00 0.1350517989D+00 + 0.3048193000D+02 -0.3221866036D-01 0.3448864973D+00 + 0.1229439000D+02 -0.6172284069D+00 0.4628570964D+00 + 0.5037722000D+01 -0.4525936050D+00 0.2110425984D+00 +SP 6 1.00 + 0.4156291000D+02 -0.3454215978D-02 -0.6722497017D-02 + 0.1367627000D+02 0.7218427953D-01 -0.2806471007D-01 + 0.5844390000D+01 0.2544819984D+00 0.5820028015D-01 + 0.2471609000D+01 -0.2934533981D+00 0.3916988010D+00 + 0.1028308000D+01 -0.7385454952D+00 0.5047823013D+00 + 0.4072500000D+00 -0.1947156987D+00 0.1790290005D+00 +SP 3 1.00 + 0.1571464000D+01 0.5892221460D-01 -0.1930100080D+00 + 0.6055800000D+00 0.2976056242D+00 0.9605620398D-01 + 0.9856100000D-01 -0.1147506479D+01 0.9817609407D+00 +SP 1 1.00 + 0.3645900000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.1841930000D+02 0.8650816335D-01 + 0.4812661000D+01 0.3826699148D+00 + 0.1446447000D+01 0.7093772274D+00 +D 1 1.00 + 0.4004130000D+00 1.0000000 +**** +Mn 0 +S 6 1.00 + 0.5634714000D+05 0.1771579986D-02 + 0.8460943000D+04 0.1357080989D-01 + 0.1927325000D+04 0.6690604948D-01 + 0.5432343000D+03 0.2318540982D+00 + 0.1739905000D+03 0.4799045963D+00 + 0.5936005000D+02 0.3495736973D+00 +SP 6 1.00 + 0.1165412000D+04 0.2388751027D-02 0.3977317926D-02 + 0.2773276000D+03 0.3181708036D-01 0.3103111942D-01 + 0.8947278000D+02 0.1254670014D+00 0.1351893975D+00 + 0.3348256000D+02 -0.2955431033D-01 0.3457386935D+00 + 0.1354037000D+02 -0.6175160070D+00 0.4629204913D+00 + 0.5557972000D+01 -0.4544458051D+00 0.2090591961D+00 +SP 6 1.00 + 0.4583532000D+02 -0.3665856137D-02 -0.6887577902D-02 + 0.1518777000D+02 0.7231971269D-01 -0.2846815959D-01 + 0.6500710000D+01 0.2544486095D+00 0.6031831914D-01 + 0.2751583000D+01 -0.2910380108D+00 0.3938960944D+00 + 0.1145404000D+01 -0.7359860274D+00 0.5013768928D+00 + 0.4536870000D+00 -0.1997617074D+00 0.1792263974D+00 +SP 3 1.00 + 0.1757999000D+01 0.5628573186D-01 -0.5035023825D+00 + 0.6670220000D+00 0.2897491610D+00 0.2345010919D+00 + 0.1051290000D+00 -0.1140653240D+01 0.9141256682D+00 +SP 1 1.00 + 0.3841800000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.2094355000D+02 0.8672702314D-01 + 0.5510486000D+01 0.3841883139D+00 + 0.1665038000D+01 0.7069071256D+00 +D 1 1.00 + 0.4617330000D+00 1.0000000 +**** +Fe 0 +S 6 1.00 + 0.6113262000D+05 0.1766110976D-02 + 0.9179342000D+04 0.1353037982D-01 + 0.2090857000D+04 0.6673127910D-01 + 0.5892479000D+03 0.2314822969D+00 + 0.1887543000D+03 0.4797057935D+00 + 0.6444629000D+02 0.3501975953D+00 +SP 6 1.00 + 0.1259980000D+04 0.2438014027D-02 0.4028018665D-02 + 0.2998761000D+03 0.3224048035D-01 0.3144646739D-01 + 0.9684917000D+02 0.1265724014D+00 0.1368316886D+00 + 0.3631020000D+02 -0.3139902035D-01 0.3487235710D+00 + 0.1472996000D+02 -0.6207593068D+00 0.4617930616D+00 + 0.6066075000D+01 -0.4502914050D+00 0.2043057830D+00 +SP 6 1.00 + 0.5043485000D+02 -0.3873255984D-02 -0.7017127880D-02 + 0.1683929000D+02 0.7196597971D-01 -0.2877659951D-01 + 0.7192086000D+01 0.2556590990D+00 0.6181382895D-01 + 0.3053420000D+01 -0.2882836988D+00 0.3954945933D+00 + 0.1273643000D+01 -0.7342821970D+00 0.4989058915D+00 + 0.5040910000D+00 -0.2049352992D+00 0.1791250969D+00 +SP 3 1.00 + 0.1950316000D+01 0.5694869031D-01 -0.4593796163D+00 + 0.7367210000D+00 0.2882915015D+00 0.2852139102D+00 + 0.1141770000D+00 -0.1138159006D+01 0.9076485323D+00 +SP 1 1.00 + 0.4114800000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.2314994000D+02 0.8876935479D-01 + 0.6122368000D+01 0.3896319210D+00 + 0.1846601000D+01 0.7014816379D+00 +D 1 1.00 + 0.5043610000D+00 1.0000000 +**** +Co 0 +S 6 1.00 + 0.6614899000D+05 0.1759787106D-02 + 0.9933077000D+04 0.1348162081D-01 + 0.2262816000D+04 0.6649342399D-01 + 0.6379154000D+03 0.2307939139D+00 + 0.2044122000D+03 0.4792919288D+00 + 0.6982538000D+02 0.3514097211D+00 +SP 6 1.00 + 0.1378841000D+04 0.2376276103D-02 0.3971488140D-02 + 0.3282694000D+03 0.3167450137D-01 0.3108174109D-01 + 0.1060946000D+03 0.1262888054D+00 0.1357439048D+00 + 0.3983275000D+02 -0.2584552112D-01 0.3476827122D+00 + 0.1618622000D+02 -0.6183491267D+00 0.4626340163D+00 + 0.6667788000D+01 -0.4567008197D+00 0.2051632072D+00 +SP 6 1.00 + 0.5452355000D+02 -0.3993003860D-02 -0.7290771623D-02 + 0.1829783000D+02 0.7409662740D-01 -0.2926026849D-01 + 0.7867348000D+01 0.2541999911D+00 0.6564149661D-01 + 0.3340534000D+01 -0.2921656898D+00 0.4000651793D+00 + 0.1393756000D+01 -0.7318702744D+00 0.4950235744D+00 + 0.5513260000D+00 -0.2040783929D+00 0.1758239909D+00 +SP 3 1.00 + 0.2151947000D+01 0.5379840456D-01 -0.2165495935D+00 + 0.8110630000D+00 0.2759969695D+00 0.1240487963D+00 + 0.1210170000D+00 -0.1129691466D+01 0.9724063708D+00 +SP 1 1.00 + 0.4303700000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.2559306000D+02 0.9004748403D-01 + 0.6800990000D+01 0.3931703176D+00 + 0.2051647000D+01 0.6976844312D+00 +D 1 1.00 + 0.5556710000D+00 1.0000000 +**** +Ni 0 +S 6 1.00 + 0.7139635000D+05 0.1753002902D-02 + 0.1072084000D+05 0.1343121925D-01 + 0.2442129000D+04 0.6627040631D-01 + 0.6884265000D+03 0.2302507872D+00 + 0.2206153000D+03 0.4790185733D+00 + 0.7539373000D+02 0.3523443804D+00 +SP 6 1.00 + 0.1492532000D+04 0.2370713841D-02 0.3967554145D-02 + 0.3554013000D+03 0.3160565787D-01 0.3109479114D-01 + 0.1149534000D+03 0.1266334915D+00 0.1359517050D+00 + 0.4322043000D+02 -0.2417036837D-01 0.3485136127D+00 + 0.1759710000D+02 -0.6187774584D+00 0.4625498169D+00 + 0.7257765000D+01 -0.4576769692D+00 0.2035186074D+00 +SP 6 1.00 + 0.5935261000D+02 -0.4162002046D-02 -0.7421451709D-02 + 0.2002181000D+02 0.7425111082D-01 -0.2953409884D-01 + 0.8614561000D+01 0.2541360028D+00 0.6731851736D-01 + 0.3660531000D+01 -0.2903477032D+00 0.4016659842D+00 + 0.1528111000D+01 -0.7302121080D+00 0.4926622807D+00 + 0.6040570000D+00 -0.2076057023D+00 0.1756892931D+00 +SP 3 1.00 + 0.2379276000D+01 0.5157890540D-01 -0.1887663036D+00 + 0.8858390000D+00 0.2707612333D+00 0.1015199019D+00 + 0.1285290000D+00 -0.1124770554D+01 0.9790906185D+00 +SP 1 1.00 + 0.4519500000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.2819147000D+02 0.9098880504D-01 + 0.7523584000D+01 0.3958207784D+00 + 0.2271228000D+01 0.6947153621D+00 +D 1 1.00 + 0.6116030000D+00 1.0000000 +**** +Cu 0 +S 6 1.00 + 0.7679438000D+05 0.1748161083D-02 + 0.1153070000D+05 0.1339602064D-01 + 0.2626575000D+04 0.6610885315D-01 + 0.7404903000D+03 0.2298265110D+00 + 0.2373528000D+03 0.4787675228D+00 + 0.8115818000D+02 0.3530739168D+00 +SP 6 1.00 + 0.1610814000D+04 0.2364054998D-02 0.3963306847D-02 + 0.3836367000D+03 0.3153634997D-01 0.3110222880D-01 + 0.1241733000D+03 0.1269451999D+00 0.1361349948D+00 + 0.4674678000D+02 -0.2262839998D-01 0.3492913866D+00 + 0.1906569000D+02 -0.6192079994D+00 0.4624779822D+00 + 0.7871567000D+01 -0.4585392996D+00 0.2020101922D+00 +SP 6 1.00 + 0.6445732000D+02 -0.4331075387D-02 -0.7523724515D-02 + 0.2185212000D+02 0.7412307662D-01 -0.2975686808D-01 + 0.9405343000D+01 0.2542108227D+00 0.6849653559D-01 + 0.3999168000D+01 -0.2874843257D+00 0.4027140741D+00 + 0.1670297000D+01 -0.7291436651D+00 0.4908489684D+00 + 0.6596270000D+00 -0.2113951189D+00 0.1759267887D+00 +SP 3 1.00 + 0.2600088000D+01 0.5027577003D-01 -0.1702910950D+00 + 0.9630940000D+00 0.2650040002D+00 0.9310132728D-01 + 0.1361610000D+00 -0.1120155001D+01 0.9814335714D+00 +SP 1 1.00 + 0.4733200000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.3085341000D+02 0.9199905385D-01 + 0.8264985000D+01 0.3985021167D+00 + 0.2495332000D+01 0.6917897289D+00 +D 1 1.00 + 0.6676580000D+00 1.0000000 +**** +Zn 0 +S 6 1.00 + 0.8240094000D+05 0.1743328988D-02 + 0.1237255000D+05 0.1335965991D-01 + 0.2818351000D+04 0.6594364956D-01 + 0.7945717000D+03 0.2294150985D+00 + 0.2547232000D+03 0.4785452968D+00 + 0.8713880000D+02 0.3537752977D+00 +SP 6 1.00 + 0.1732569000D+04 0.2361459089D-02 0.3963125053D-02 + 0.4127149000D+03 0.3150177119D-01 0.3113411042D-01 + 0.1336780000D+03 0.1272774048D+00 0.1363931018D+00 + 0.5038585000D+02 -0.2145928081D-01 0.3501266047D+00 + 0.2058358000D+02 -0.6197652235D+00 0.4623179062D+00 + 0.8505940000D+01 -0.4590180174D+00 0.2004995027D+00 +SP 6 1.00 + 0.6936492000D+02 -0.4440098182D-02 -0.7689261805D-02 + 0.2362082000D+02 0.7505253308D-01 -0.2997981924D-01 + 0.1018471000D+02 0.2533111104D+00 0.7082410821D-01 + 0.4334082000D+01 -0.2881897118D+00 0.4046140897D+00 + 0.1810918000D+01 -0.7267052298D+00 0.4882324876D+00 + 0.7148410000D+00 -0.2133439088D+00 0.1751969956D+00 +SP 3 1.00 + 0.2823842000D+01 0.4898545031D-01 -0.1586762981D+00 + 0.1039543000D+01 0.2592794075D+00 0.8379326898D-01 + 0.1432640000D+00 -0.1115711463D+01 0.9840546881D+00 +SP 1 1.00 + 0.4929600000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.3370764000D+02 0.9262647815D-01 + 0.9061106000D+01 0.4002979920D+00 + 0.2738383000D+01 0.6896607863D+00 +D 1 1.00 + 0.7302940000D+00 1.0000000 +**** +Ga 0 +S 6 1.00 + 0.8828461000D+05 0.1736921000D-02 + 0.1325606000D+05 0.1331136000D-01 + 0.3019649000D+04 0.6571709000D-01 + 0.8514222000D+03 0.2287932000D+00 + 0.2729997000D+03 0.4781507000D+00 + 0.9342593000D+02 0.3549154000D+00 +SP 6 1.00 + 0.1877680000D+04 0.2316733000D-02 0.3896102000D-02 + 0.4474374000D+03 0.3090570000D-01 0.3066136000D-01 + 0.1451401000D+03 0.1264173000D+00 0.1344509000D+00 + 0.5484977000D+02 -0.1429714000D-01 0.3470761000D+00 + 0.2244351000D+02 -0.6132855000D+00 0.4635435000D+00 + 0.9286622000D+01 -0.4703598000D+00 0.2039435000D+00 +SP 6 1.00 + 0.8005681000D+02 -0.5056378000D-02 -0.6947816000D-02 + 0.2757856000D+02 0.6117037000D-01 -0.2938902000D-01 + 0.1171717000D+02 0.2575692000D+00 0.5377307000D-01 + 0.5054113000D+01 -0.2150754000D+00 0.3764511000D+00 + 0.2172525000D+01 -0.7213703000D+00 0.4923913000D+00 + 0.9041840000D+00 -0.2785244000D+00 0.2073613000D+00 +SP 3 1.00 + 0.1112438000D+01 0.1970334000D+00 -0.9151867000D-02 + 0.3287220000D+00 -0.2497645000D+00 0.3111786000D+00 + 0.1305520000D+00 -0.8749447000D+00 0.7436549000D+00 +SP 1 1.00 + 0.4758900000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.3911406000D+02 0.8790043000D-01 + 0.1061218000D+02 0.3915600000D+00 + 0.3273033000D+01 0.6956990000D+00 +D 1 1.00 + 0.9156600000D+00 1.0000000 +**** +Ge 0 +S 6 1.00 + 0.9428132000D+05 0.1732993000D-02 + 0.1415642000D+05 0.1328181000D-01 + 0.3224935000D+04 0.6557319000D-01 + 0.9094821000D+03 0.2283712000D+00 + 0.2917149000D+03 0.4778104000D+00 + 0.9989074000D+02 0.3557135000D+00 +SP 6 1.00 + 0.2016629000D+04 0.2299186000D-02 0.3872605000D-02 + 0.4806599000D+03 0.3068823000D-01 0.3051218000D-01 + 0.1560616000D+03 0.1262906000D+00 0.1338971000D+00 + 0.5907914000D+02 -0.1105405000D-01 0.3462496000D+00 + 0.2422346000D+02 -0.6103659000D+00 0.4635741000D+00 + 0.1004418000D+02 -0.4755387000D+00 0.2047879000D+00 +SP 6 1.00 + 0.8728112000D+02 -0.5330845000D-02 -0.6893957000D-02 + 0.3028230000D+02 0.5874495000D-01 -0.2954252000D-01 + 0.1285367000D+02 0.2598349000D+00 0.5042291000D-01 + 0.5587437000D+01 -0.1926917000D+00 0.3699366000D+00 + 0.2438461000D+01 -0.7190570000D+00 0.4933147000D+00 + 0.1040324000D+01 -0.2995181000D+00 0.2116445000D+00 +SP 3 1.00 + 0.1344960000D+01 0.2338815000D+00 -0.1976804000D-01 + 0.4436620000D+00 -0.2189617000D+00 0.3028906000D+00 + 0.1760820000D+00 -0.9242006000D+00 0.7562828000D+00 +SP 1 1.00 + 0.6466500000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.4463105000D+02 0.8431036000D-01 + 0.1220184000D+02 0.3847726000D+00 + 0.3823423000D+01 0.7003323000D+00 +D 1 1.00 + 0.1108831000D+01 1.0000000 +**** +As 0 +S 6 1.00 + 0.1005955000D+06 0.1726750000D-02 + 0.1510482000D+05 0.1323462000D-01 + 0.3440884000D+04 0.6535848000D-01 + 0.9703961000D+03 0.2278042000D+00 + 0.3112852000D+03 0.4774525000D+00 + 0.1066284000D+03 0.3567619000D+00 +SP 6 1.00 + 0.2166679000D+04 0.2271761000D-02 0.3832156000D-02 + 0.5165414000D+03 0.3033475000D-01 0.3023558000D-01 + 0.1678674000D+03 0.1259057000D+00 0.1328632000D+00 + 0.6364638000D+02 -0.6687172000D-02 0.3447648000D+00 + 0.2613673000D+02 -0.6065306000D+00 0.4640368000D+00 + 0.1085439000D+02 -0.4823144000D+00 0.2064824000D+00 +SP 6 1.00 + 0.9506989000D+02 -0.5587423000D-02 -0.6816583000D-02 + 0.3318087000D+02 0.5632506000D-01 -0.2970303000D-01 + 0.1406773000D+02 0.2625835000D+00 0.4704335000D-01 + 0.6153288000D+01 -0.1718349000D+00 0.3645042000D+00 + 0.2721712000D+01 -0.7175645000D+00 0.4945157000D+00 + 0.1185334000D+01 -0.3184598000D+00 0.2149830000D+00 +SP 3 1.00 + 0.1615315000D+01 0.2645372000D+00 -0.2574061000D-01 + 0.5513300000D+00 -0.1952737000D+00 0.3072764000D+00 + 0.2227620000D+00 -0.9595400000D+00 0.7537368000D+00 +SP 1 1.00 + 0.8292300000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.5030227000D+02 0.8144711000D-01 + 0.1384166000D+02 0.3792908000D+00 + 0.4393458000D+01 0.7040401000D+00 +D 1 1.00 + 0.1310755000D+01 1.0000000 +**** +Se 0 +S 6 1.00 + 0.1070273000D+06 0.1722646000D-02 + 0.1607076000D+05 0.1320324000D-01 + 0.3661226000D+04 0.6520494000D-01 + 0.1032673000D+04 0.2273787000D+00 + 0.3313339000D+03 0.4771451000D+00 + 0.1135470000D+03 0.3575553000D+00 +SP 6 1.00 + 0.2313540000D+04 0.2261924000D-02 0.3818409000D-02 + 0.5516849000D+03 0.3019493000D-01 0.3015145000D-01 + 0.1794401000D+03 0.1258828000D+00 0.1325614000D+00 + 0.6813044000D+02 -0.4373809000D-02 0.3443419000D+00 + 0.2803062000D+02 -0.6043277000D+00 0.4639237000D+00 + 0.1166572000D+02 -0.4861200000D+00 0.2068198000D+00 +SP 6 1.00 + 0.1015754000D+03 -0.5752618000D-02 -0.6942389000D-02 + 0.3561545000D+02 0.5675608000D-01 -0.3014441000D-01 + 0.1513135000D+02 0.2651243000D+00 0.4776411000D-01 + 0.6646923000D+01 -0.1670582000D+00 0.3663827000D+00 + 0.2972805000D+01 -0.7188737000D+00 0.4940086000D+00 + 0.1316707000D+01 -0.3221907000D+00 0.2100109000D+00 +SP 3 1.00 + 0.1846991000D+01 0.2823156000D+00 -0.2653920000D-01 + 0.6471590000D+00 -0.2129616000D+00 0.3357291000D+00 + 0.2579870000D+00 -0.9545384000D+00 0.7301815000D+00 +SP 1 1.00 + 0.9410700000D-01 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.5618544000D+02 0.7904963000D-01 + 0.1554808000D+02 0.3746449000D+00 + 0.4989394000D+01 0.7071645000D+00 +D 1 1.00 + 0.1523844000D+01 1.0000000 +**** +Br 0 +S 6 1.00 + 0.1137182000D+06 0.1717696000D-02 + 0.1707444000D+05 0.1316744000D-01 + 0.3889576000D+04 0.6504553000D-01 + 0.1097096000D+04 0.2269505000D+00 + 0.3520624000D+03 0.4768357000D+00 + 0.1207002000D+03 0.3583677000D+00 +SP 6 1.00 + 0.2471138000D+04 0.2243687000D-02 0.3790182000D-02 + 0.5893838000D+03 0.2994853000D-01 0.2995979000D-01 + 0.1918738000D+03 0.1256009000D+00 0.1318228000D+00 + 0.7295339000D+02 -0.9832786000D-03 0.3432708000D+00 + 0.3005839000D+02 -0.6013141000D+00 0.4642345000D+00 + 0.1252927000D+02 -0.4913983000D+00 0.2079387000D+00 +SP 6 1.00 + 0.1096411000D+03 -0.5975683000D-02 -0.6907483000D-02 + 0.3858948000D+02 0.5542122000D-01 -0.3041432000D-01 + 0.1637818000D+02 0.2681200000D+00 0.4602725000D-01 + 0.7221836000D+01 -0.1543606000D+00 0.3650689000D+00 + 0.3263697000D+01 -0.7206306000D+00 0.4949232000D+00 + 0.1465499000D+01 -0.3316437000D+00 0.2090394000D+00 +SP 3 1.00 + 0.2103651000D+01 0.3029029000D+00 -0.2826714000D-01 + 0.7547050000D+00 -0.2152659000D+00 0.3503065000D+00 + 0.3005140000D+00 -0.9633941000D+00 0.7182446000D+00 +SP 1 1.00 + 0.1090710000D+00 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.6225514000D+02 0.7704229000D-01 + 0.1731284000D+02 0.3707384000D+00 + 0.5607915000D+01 0.7097628000D+00 +D 1 1.00 + 0.1746486000D+01 1.0000000 +**** +Kr 0 +S 6 1.00 + 0.1205524000D+06 0.1714050000D-02 + 0.1810225000D+05 0.1313805000D-01 + 0.4124126000D+04 0.6490006000D-01 + 0.1163472000D+04 0.2265185000D+00 + 0.3734612000D+03 0.4764961000D+00 + 0.1280897000D+03 0.3591952000D+00 +SP 6 1.00 + 0.2634681000D+04 0.2225111000D-02 0.3761911000D-02 + 0.6284533000D+03 0.2971122000D-01 0.2977531000D-01 + 0.2047081000D+03 0.1253926000D+00 0.1311878000D+00 + 0.7790827000D+02 0.1947058000D-02 0.3425019000D+00 + 0.3213816000D+02 -0.5987388000D+00 0.4644938000D+00 + 0.1341845000D+02 -0.4958972000D+00 0.2087284000D+00 +SP 6 1.00 + 0.1175107000D+03 -0.6157662000D-02 -0.6922855000D-02 + 0.4152553000D+02 0.5464841000D-01 -0.3069239000D-01 + 0.1765290000D+02 0.2706994000D+00 0.4480260000D-01 + 0.7818313000D+01 -0.1426136000D+00 0.3636775000D+00 + 0.3571775000D+01 -0.7216781000D+00 0.4952412000D+00 + 0.1623750000D+01 -0.3412008000D+00 0.2086340000D+00 +SP 3 1.00 + 0.2374560000D+01 0.3251184000D+00 -0.3009554000D-01 + 0.8691930000D+00 -0.2141533000D+00 0.3598893000D+00 + 0.3474730000D+00 -0.9755083000D+00 0.7103098000D+00 +SP 1 1.00 + 0.1264790000D+00 0.1000000000D+01 0.1000000000D+01 +D 3 1.00 + 0.6853888000D+02 0.7530705000D-01 + 0.1914333000D+02 0.3673551000D+00 + 0.6251213000D+01 0.7120146000D+00 +D 1 1.00 + 0.1979236000D+01 1.0000000 +**** + diff --git a/basis/aug-cc-pvdz.gbf b/basis/aug-cc-pvdz.gbf new file mode 100644 index 0000000..c610b4b --- /dev/null +++ b/basis/aug-cc-pvdz.gbf @@ -0,0 +1,3522 @@ +spherical + +! +! cc-pVDZ EMSL Basis Set Exchange Library 5/17/11 11:50 AM +! Elements References +! -------- ---------- +! H : T.H. Dunning, Jr. J. Chem. Phys. 90, 1007 (1989). +! He : D.E. Woon and T.H. Dunning, Jr. J. Chem. Phys. 100, 2975 (1994). +! Li - Ne: T.H. Dunning, Jr. J. Chem. Phys. 90, 1007 (1989). +! Na - Mg: D.E. Woon and T.H. Dunning, Jr. (to be published) +! Al - Ar: D.E. Woon and T.H. Dunning, Jr. J. Chem. Phys. 98, 1358 (1993). +! Sc - Zn: N.B. Balabanov and K.A. Peterson, J. Chem. Phys. 123, 064107 (2005), +! N.B. Balabanov and K.A. Peterson, J. Chem. Phys. 125, 074110 (2006) +! Ca : J. Koput and K.A. Peterson, J. Phys. Chem. A, 106, 9595 (2002). +! +! +! aug-cc-pVDZ Diffuse EMSL Basis Set Exchange Library 5/17/11 12:08 PM +! Elements References +! -------- --------- +! H : T.H. Dunning, Jr. J. Chem. Phys. 90, 1007 (1989). +! He : D.E. Woon and T.H. Dunning, Jr., J. Chem. Phys. 100, 2975 (1994). +! B - F: R.A. Kendall, T.H. Dunning, Jr. and R.J. Harrison, J. Chem. Phys. 96, +! 6796 (1992). +! Al - Cl: D.E. Woon and T.H. Dunning, Jr. J. Chem. Phys. 98, 1358 (1993). +! Sc - Zn: N.B. Balabanov and K.A. Peterson, J. Chem. Phys. 123, 064107 (2005), +! N.B. Balabanov and K.A. Peterson, J. Chem. Phys. 125, 074110 (2006). +! +! +! merged from cc-pvdz.gbs and diffuse-aug-cc-pvdz.gbs at Tue, 16:44 May 17, 2011 +! + + + +**** +H 0 +S 3 1.00 + 13.0100000 0.0196850 + 1.9620000 0.1379770 + 0.4446000 0.4781480 +S 1 1.00 + 0.1220000 1.0000000 +P 1 1.00 + 0.7270000 1.0000000 +S 1 1.00 + 0.0297400 1.0000000 +P 1 1.00 + 0.1410000 1.0000000 +**** +He 0 +S 3 1.00 + 38.3600000 0.0238090 + 5.7700000 0.1548910 + 1.2400000 0.4699870 +S 1 1.00 + 0.2976000 1.0000000 +P 1 1.00 + 1.2750000 1.0000000 +S 1 1.00 + 0.0725500 1.0000000 +P 1 1.00 + 0.2473000 1.0000000 +**** +Li 0 +S 8 1.00 + 1469.0000000 0.0007660 + 220.5000000 0.0058920 + 50.2600000 0.0296710 + 14.2400000 0.1091800 + 4.5810000 0.2827890 + 1.5800000 0.4531230 + 0.5640000 0.2747740 + 0.0734500 0.0097510 +S 8 1.00 + 1469.0000000 -0.0001200 + 220.5000000 -0.0009230 + 50.2600000 -0.0046890 + 14.2400000 -0.0176820 + 4.5810000 -0.0489020 + 1.5800000 -0.0960090 + 0.5640000 -0.1363800 + 0.0734500 0.5751020 +S 1 1.00 + 0.0280500 1.0000000 +P 3 1.00 + 1.5340000 0.0227840 + 0.2749000 0.1391070 + 0.0736200 0.5003750 +P 1 1.00 + 0.0240300 1.0000000 +D 1 1.00 + 0.1239000 1.0000000 +S 1 1.00 + 0.0086400 1.0000000 +P 1 1.00 + 0.0057900 1.0000000 +D 1 1.00 + 0.0725000 1.0000000 +**** +Be 0 +S 8 1.00 + 2940.0000000 0.0006800 + 441.2000000 0.0052360 + 100.5000000 0.0266060 + 28.4300000 0.0999930 + 9.1690000 0.2697020 + 3.1960000 0.4514690 + 1.1590000 0.2950740 + 0.1811000 0.0125870 +S 8 1.00 + 2940.0000000 -0.0001230 + 441.2000000 -0.0009660 + 100.5000000 -0.0048310 + 28.4300000 -0.0193140 + 9.1690000 -0.0532800 + 3.1960000 -0.1207230 + 1.1590000 -0.1334350 + 0.1811000 0.5307670 +S 1 1.00 + 0.0589000 1.0000000 +P 3 1.00 + 3.6190000 0.0291110 + 0.7110000 0.1693650 + 0.1951000 0.5134580 +P 1 1.00 + 0.0601800 1.0000000 +D 1 1.00 + 0.2380000 1.0000000 +S 1 1.00 + 0.0187700 1.0000000 +P 1 1.00 + 0.0085000 1.0000000 +D 1 1.00 + 0.0740000 1.0000000 +**** +B 0 +S 8 1.00 + 4570.0000000 0.0006960 + 685.9000000 0.0053530 + 156.5000000 0.0271340 + 44.4700000 0.1013800 + 14.4800000 0.2720550 + 5.1310000 0.4484030 + 1.8980000 0.2901230 + 0.3329000 0.0143220 +S 8 1.00 + 4570.0000000 -0.0001390 + 685.9000000 -0.0010970 + 156.5000000 -0.0054440 + 44.4700000 -0.0219160 + 14.4800000 -0.0597510 + 5.1310000 -0.1387320 + 1.8980000 -0.1314820 + 0.3329000 0.5395260 +S 1 1.00 + 0.1043000 1.0000000 +P 3 1.00 + 6.0010000 0.0354810 + 1.2410000 0.1980720 + 0.3364000 0.5052300 +P 1 1.00 + 0.0953800 1.0000000 +D 1 1.00 + 0.3430000 1.0000000 +S 1 1.00 + 0.0310500 1.0000000 +P 1 1.00 + 0.0237800 1.0000000 +D 1 1.00 + 0.0904000 1.0000000 +**** +C 0 +S 8 1.00 + 6665.0000000 0.0006920 + 1000.0000000 0.0053290 + 228.0000000 0.0270770 + 64.7100000 0.1017180 + 21.0600000 0.2747400 + 7.4950000 0.4485640 + 2.7970000 0.2850740 + 0.5215000 0.0152040 +S 8 1.00 + 6665.0000000 -0.0001460 + 1000.0000000 -0.0011540 + 228.0000000 -0.0057250 + 64.7100000 -0.0233120 + 21.0600000 -0.0639550 + 7.4950000 -0.1499810 + 2.7970000 -0.1272620 + 0.5215000 0.5445290 +S 1 1.00 + 0.1596000 1.0000000 +P 3 1.00 + 9.4390000 0.0381090 + 2.0020000 0.2094800 + 0.5456000 0.5085570 +P 1 1.00 + 0.1517000 1.0000000 +D 1 1.00 + 0.5500000 1.0000000 +S 1 1.00 + 0.0469000 1.0000000 +P 1 1.00 + 0.0404100 1.0000000 +D 1 1.00 + 0.1510000 1.0000000 +**** +N 0 +S 8 1.00 + 9046.0000000 0.0007000 + 1357.0000000 0.0053890 + 309.3000000 0.0274060 + 87.7300000 0.1032070 + 28.5600000 0.2787230 + 10.2100000 0.4485400 + 3.8380000 0.2782380 + 0.7466000 0.0154400 +S 8 1.00 + 9046.0000000 -0.0001530 + 1357.0000000 -0.0012080 + 309.3000000 -0.0059920 + 87.7300000 -0.0245440 + 28.5600000 -0.0674590 + 10.2100000 -0.1580780 + 3.8380000 -0.1218310 + 0.7466000 0.5490030 +S 1 1.00 + 0.2248000 1.0000000 +P 3 1.00 + 13.5500000 0.0399190 + 2.9170000 0.2171690 + 0.7973000 0.5103190 +P 1 1.00 + 0.2185000 1.0000000 +D 1 1.00 + 0.8170000 1.0000000 +S 1 1.00 + 0.0612400 1.0000000 +P 1 1.00 + 0.0561100 1.0000000 +D 1 1.00 + 0.2300000 1.0000000 +**** +O 0 +S 8 1.00 + 11720.0000000 0.0007100 + 1759.0000000 0.0054700 + 400.8000000 0.0278370 + 113.7000000 0.1048000 + 37.0300000 0.2830620 + 13.2700000 0.4487190 + 5.0250000 0.2709520 + 1.0130000 0.0154580 +S 8 1.00 + 11720.0000000 -0.0001600 + 1759.0000000 -0.0012630 + 400.8000000 -0.0062670 + 113.7000000 -0.0257160 + 37.0300000 -0.0709240 + 13.2700000 -0.1654110 + 5.0250000 -0.1169550 + 1.0130000 0.5573680 +S 1 1.00 + 0.3023000 1.0000000 +P 3 1.00 + 17.7000000 0.0430180 + 3.8540000 0.2289130 + 1.0460000 0.5087280 +P 1 1.00 + 0.2753000 1.0000000 +D 1 1.00 + 1.1850000 1.0000000 +S 1 1.00 + 0.0789600 1.0000000 +P 1 1.00 + 0.0685600 1.0000000 +D 1 1.00 + 0.3320000 1.0000000 +**** +F 0 +S 8 1.00 + 14710.0000000 0.0007210 + 2207.0000000 0.0055530 + 502.8000000 0.0282670 + 142.6000000 0.1064440 + 46.4700000 0.2868140 + 16.7000000 0.4486410 + 6.3560000 0.2647610 + 1.3160000 0.0153330 +S 8 1.00 + 14710.0000000 -0.0001650 + 2207.0000000 -0.0013080 + 502.8000000 -0.0064950 + 142.6000000 -0.0266910 + 46.4700000 -0.0736900 + 16.7000000 -0.1707760 + 6.3560000 -0.1123270 + 1.3160000 0.5628140 +S 1 1.00 + 0.3897000 1.0000000 +P 3 1.00 + 22.6700000 0.0448780 + 4.9770000 0.2357180 + 1.3470000 0.5085210 +P 1 1.00 + 0.3471000 1.0000000 +D 1 1.00 + 1.6400000 1.0000000 +S 1 1.00 + 0.0986300 1.0000000 +P 1 1.00 + 0.0850200 1.0000000 +D 1 1.00 + 0.4640000 1.0000000 +**** +Ne 0 +S 8 1.00 + 17880.0000000 0.0007380 + 2683.0000000 0.0056770 + 611.5000000 0.0288830 + 173.5000000 0.1085400 + 56.6400000 0.2909070 + 20.4200000 0.4483240 + 7.8100000 0.2580260 + 1.6530000 0.0150630 +S 8 1.00 + 17880.0000000 -0.0001720 + 2683.0000000 -0.0013570 + 611.5000000 -0.0067370 + 173.5000000 -0.0276630 + 56.6400000 -0.0762080 + 20.4200000 -0.1752270 + 7.8100000 -0.1070380 + 1.6530000 0.5670500 +S 1 1.00 + 0.4869000 1.0000000 +P 3 1.00 + 28.3900000 0.0460870 + 6.2700000 0.2401810 + 1.6950000 0.5087440 +P 1 1.00 + 0.4317000 1.0000000 +D 1 1.00 + 2.2020000 1.0000000 +S 1 1.00 + 0.1230000 1.0000000 +P 1 1.00 + 0.1064000 1.0000000 +D 1 1.00 + 0.6310000 1.0000000 +**** +Na 0 +S 11 1.00 + 31700.0000000 0.458878D-03 + 4755.0000000 0.355070D-02 + 1082.0000000 0.182618D-01 + 306.4000000 0.716650D-01 + 99.5300000 0.212346D+00 + 35.4200000 0.416203D+00 + 13.3000000 0.373020D+00 + 4.3920000 0.625054D-01 + 1.6760000 -0.624532D-02 + 0.5889000 0.243374D-02 + 0.0564000 -0.442381D-03 +S 11 1.00 + 31700.0000000 -0.112162D-03 + 4755.0000000 -0.868512D-03 + 1082.0000000 -0.451330D-02 + 306.4000000 -0.181436D-01 + 99.5300000 -0.580799D-01 + 35.4200000 -0.137653D+00 + 13.3000000 -0.193908D+00 + 4.3920000 0.858009D-01 + 1.6760000 0.604419D+00 + 0.5889000 0.441719D+00 + 0.0564000 0.130547D-01 +S 11 1.00 + 31700.0000000 0.170160D-04 + 4755.0000000 0.130693D-03 + 1082.0000000 0.687784D-03 + 306.4000000 0.272359D-02 + 99.5300000 0.895529D-02 + 35.4200000 0.207832D-01 + 13.3000000 0.319380D-01 + 4.3920000 -0.191368D-01 + 1.6760000 -0.102595D+00 + 0.5889000 -0.198945D+00 + 0.0564000 0.655952D+00 +S 1 1.00 + 0.0230700 1.0000000 +P 7 1.00 + 138.1000000 0.579641D-02 + 32.2400000 0.415756D-01 + 9.9850000 0.162873D+00 + 3.4840000 0.359401D+00 + 1.2310000 0.449988D+00 + 0.4177000 0.227507D+00 + 0.0651300 0.808247D-02 +P 7 1.00 + 138.1000000 -0.581531D-03 + 32.2400000 -0.407306D-02 + 9.9850000 -0.167937D-01 + 3.4840000 -0.353268D-01 + 1.2310000 -0.521971D-01 + 0.4177000 -0.168359D-01 + 0.0651300 0.434613D+00 +P 1 1.00 + 0.0205300 1.0000000 +D 1 1.00 + 0.0973000 1.0000000 +S 1 1.00 + 0.0072500 1.0000000 +P 1 1.00 + 0.0063300 1.0000000 +D 1 1.00 + 0.0468000 1.0000000 +**** +Mg 0 +S 11 1.00 + 47390.0000000 0.346023D-03 + 7108.0000000 0.268077D-02 + 1618.0000000 0.138367D-01 + 458.4000000 0.551767D-01 + 149.3000000 0.169660D+00 + 53.5900000 0.364703D+00 + 20.7000000 0.406856D+00 + 8.3840000 0.135089D+00 + 2.5420000 0.490884D-02 + 0.8787000 0.286460D-03 + 0.1077000 0.264590D-04 +S 11 1.00 + 47390.0000000 -0.877839D-04 + 7108.0000000 -0.674725D-03 + 1618.0000000 -0.355603D-02 + 458.4000000 -0.142154D-01 + 149.3000000 -0.476748D-01 + 53.5900000 -0.114892D+00 + 20.7000000 -0.200676D+00 + 8.3840000 -0.341224D-01 + 2.5420000 0.570454D+00 + 0.8787000 0.542309D+00 + 0.1077000 0.218128D-01 +S 11 1.00 + 47390.0000000 0.169628D-04 + 7108.0000000 0.129865D-03 + 1618.0000000 0.688831D-03 + 458.4000000 0.273533D-02 + 149.3000000 0.931224D-02 + 53.5900000 0.223265D-01 + 20.7000000 0.411195D-01 + 8.3840000 0.545642D-02 + 2.5420000 -0.134012D+00 + 0.8787000 -0.256176D+00 + 0.1077000 0.605856D+00 +S 1 1.00 + 0.0399900 1.0000000 +P 7 1.00 + 179.9000000 0.538161D-02 + 42.1400000 0.392418D-01 + 13.1300000 0.157445D+00 + 4.6280000 0.358535D+00 + 1.6700000 0.457226D+00 + 0.5857000 0.215918D+00 + 0.1311000 0.664948D-02 +P 7 1.00 + 179.9000000 -0.865948D-03 + 42.1400000 -0.615978D-02 + 13.1300000 -0.261519D-01 + 4.6280000 -0.570647D-01 + 1.6700000 -0.873906D-01 + 0.5857000 -0.122990D-01 + 0.1311000 0.502085D+00 +P 1 1.00 + 0.0411200 1.0000000 +D 1 1.00 + 0.1870000 1.0000000 +S 1 1.00 + 0.0148800 1.0000000 +P 1 1.00 + 0.0093500 1.0000000 +D 1 1.00 + 0.0595000 1.0000000 +**** +Al 0 +S 11 1.00 + 64150.0000000 0.290250D-03 + 9617.0000000 0.225064D-02 + 2189.0000000 0.116459D-01 + 620.5000000 0.467377D-01 + 202.7000000 0.146299D+00 + 73.1500000 0.330283D+00 + 28.5500000 0.415861D+00 + 11.7700000 0.189253D+00 + 3.3000000 0.115889D-01 + 1.1730000 -0.128385D-02 + 0.1752000 0.425883D-03 +S 11 1.00 + 64150.0000000 -0.758048D-04 + 9617.0000000 -0.581791D-03 + 2189.0000000 -0.308113D-02 + 620.5000000 -0.123112D-01 + 202.7000000 -0.419781D-01 + 73.1500000 -0.103371D+00 + 28.5500000 -0.196308D+00 + 11.7700000 -0.830002D-01 + 3.3000000 0.541040D+00 + 1.1730000 0.578796D+00 + 0.1752000 0.288147D-01 +S 11 1.00 + 64150.0000000 0.175078D-04 + 9617.0000000 0.134208D-03 + 2189.0000000 0.712442D-03 + 620.5000000 0.284330D-02 + 202.7000000 0.976842D-02 + 73.1500000 0.241850D-01 + 28.5500000 0.474993D-01 + 11.7700000 0.203621D-01 + 3.3000000 -0.158788D+00 + 1.1730000 -0.311694D+00 + 0.1752000 0.620147D+00 +S 1 1.00 + 0.0647300 1.0000000 +P 7 1.00 + 258.8000000 0.406847D-02 + 60.8900000 0.306815D-01 + 19.1400000 0.129149D+00 + 6.8810000 0.320831D+00 + 2.5740000 0.453815D+00 + 0.9572000 0.275066D+00 + 0.2099000 0.190807D-01 +P 7 1.00 + 258.8000000 -0.748053D-03 + 60.8900000 -0.545796D-02 + 19.1400000 -0.245371D-01 + 6.8810000 -0.582138D-01 + 2.5740000 -0.983756D-01 + 0.9572000 -0.260064D-01 + 0.2099000 0.464020D+00 +P 1 1.00 + 0.0598600 1.0000000 +D 1 1.00 + 0.1890000 1.0000000 +S 1 1.00 + 0.0231000 1.0000000 +P 1 1.00 + 0.0153000 1.0000000 +D 1 1.00 + 0.0535000 1.0000000 +**** +Si 0 +S 11 1.00 + 78860.0000000 0.270443D-03 + 11820.0000000 0.209717D-02 + 2692.0000000 0.108506D-01 + 763.4000000 0.436754D-01 + 249.6000000 0.137653D+00 + 90.2800000 0.316644D+00 + 35.2900000 0.418581D+00 + 14.5100000 0.210212D+00 + 4.0530000 0.144952D-01 + 1.4820000 -0.203590D-02 + 0.2517000 0.624186D-03 +S 11 1.00 + 78860.0000000 -0.723177D-04 + 11820.0000000 -0.555116D-03 + 2692.0000000 -0.293805D-02 + 763.4000000 -0.117687D-01 + 249.6000000 -0.402907D-01 + 90.2800000 -0.100609D+00 + 35.2900000 -0.196528D+00 + 14.5100000 -0.102382D+00 + 4.0530000 0.527190D+00 + 1.4820000 0.593251D+00 + 0.2517000 0.332652D-01 +S 11 1.00 + 78860.0000000 0.185113D-04 + 11820.0000000 0.142236D-03 + 2692.0000000 0.752185D-03 + 763.4000000 0.302279D-02 + 249.6000000 0.103677D-01 + 90.2800000 0.262563D-01 + 35.2900000 0.523989D-01 + 14.5100000 0.290959D-01 + 4.0530000 -0.178003D+00 + 1.4820000 -0.346874D+00 + 0.2517000 0.623020D+00 +S 1 1.00 + 0.0924300 1.0000000 +P 7 1.00 + 315.9000000 0.392656D-02 + 74.4200000 0.298811D-01 + 23.4800000 0.127212D+00 + 8.4880000 0.320943D+00 + 3.2170000 0.455429D+00 + 1.2290000 0.268563D+00 + 0.2964000 0.188336D-01 +P 7 1.00 + 315.9000000 -0.858302D-03 + 74.4200000 -0.630328D-02 + 23.4800000 -0.288255D-01 + 8.4880000 -0.694560D-01 + 3.2170000 -0.119493D+00 + 1.2290000 -0.199581D-01 + 0.2964000 0.510268D+00 +P 1 1.00 + 0.0876800 1.0000000 +D 1 1.00 + 0.2750000 1.0000000 +S 1 1.00 + 0.0332000 1.0000000 +P 1 1.00 + 0.0250000 1.0000000 +D 1 1.00 + 0.0823000 1.0000000 +**** +P 0 +S 11 1.00 + 94840.0000000 0.255509D-03 + 14220.0000000 0.198193D-02 + 3236.0000000 0.102760D-01 + 917.1000000 0.414823D-01 + 299.5000000 0.131984D+00 + 108.1000000 0.308662D+00 + 42.1800000 0.420647D+00 + 17.2800000 0.222878D+00 + 4.8580000 0.164035D-01 + 1.8180000 -0.254255D-02 + 0.3372000 0.748050D-03 +S 11 1.00 + 94840.0000000 -0.696939D-04 + 14220.0000000 -0.535266D-03 + 3236.0000000 -0.283709D-02 + 917.1000000 -0.113983D-01 + 299.5000000 -0.392929D-01 + 108.1000000 -0.996364D-01 + 42.1800000 -0.197983D+00 + 17.2800000 -0.114860D+00 + 4.8580000 0.518595D+00 + 1.8180000 0.601847D+00 + 0.3372000 0.368612D-01 +S 11 1.00 + 94840.0000000 0.191199D-04 + 14220.0000000 0.147223D-03 + 3236.0000000 0.777912D-03 + 917.1000000 0.314546D-02 + 299.5000000 0.108200D-01 + 108.1000000 0.279957D-01 + 42.1800000 0.563978D-01 + 17.2800000 0.358190D-01 + 4.8580000 -0.193387D+00 + 1.8180000 -0.372097D+00 + 0.3372000 0.624246D+00 +S 1 1.00 + 0.1232000 1.0000000 +P 7 1.00 + 370.5000000 0.395005D-02 + 87.3300000 0.302492D-01 + 27.5900000 0.129554D+00 + 10.0000000 0.327594D+00 + 3.8250000 0.456992D+00 + 1.4940000 0.253086D+00 + 0.3921000 0.168798D-01 +P 7 1.00 + 370.5000000 -0.959832D-03 + 87.3300000 -0.711177D-02 + 27.5900000 -0.327122D-01 + 10.0000000 -0.795784D-01 + 3.8250000 -0.135016D+00 + 1.4940000 -0.910585D-02 + 0.3921000 0.537802D+00 +P 1 1.00 + 0.1186000 1.0000000 +D 1 1.00 + 0.3730000 1.0000000 +S 1 1.00 + 0.0417000 1.0000000 +P 1 1.00 + 0.0343000 1.0000000 +D 1 1.00 + 0.1130000 1.0000000 +**** +S 0 +S 11 1.00 + 110800.0000000 0.247635D-03 + 16610.0000000 0.192026D-02 + 3781.0000000 0.996192D-02 + 1071.0000000 0.402975D-01 + 349.8000000 0.128604D+00 + 126.3000000 0.303480D+00 + 49.2600000 0.421432D+00 + 20.1600000 0.230781D+00 + 5.7200000 0.178971D-01 + 2.1820000 -0.297516D-02 + 0.4327000 0.849522D-03 +S 11 1.00 + 110800.0000000 -0.687039D-04 + 16610.0000000 -0.527681D-03 + 3781.0000000 -0.279671D-02 + 1071.0000000 -0.112651D-01 + 349.8000000 -0.388834D-01 + 126.3000000 -0.995025D-01 + 49.2600000 -0.199740D+00 + 20.1600000 -0.123360D+00 + 5.7200000 0.513194D+00 + 2.1820000 0.607120D+00 + 0.4327000 0.396753D-01 +S 11 1.00 + 110800.0000000 0.199077D-04 + 16610.0000000 0.153483D-03 + 3781.0000000 0.809503D-03 + 1071.0000000 0.328974D-02 + 349.8000000 0.112967D-01 + 126.3000000 0.296385D-01 + 49.2600000 0.599851D-01 + 20.1600000 0.413248D-01 + 5.7200000 -0.207474D+00 + 2.1820000 -0.392889D+00 + 0.4327000 0.632840D+00 +S 1 1.00 + 0.1570000 1.0000000 +P 7 1.00 + 399.7000000 0.447541D-02 + 94.1900000 0.341708D-01 + 29.7500000 0.144250D+00 + 10.7700000 0.353928D+00 + 4.1190000 0.459085D+00 + 1.6250000 0.206383D+00 + 0.4726000 0.102141D-01 +P 7 1.00 + 399.7000000 -0.116251D-02 + 94.1900000 -0.865664D-02 + 29.7500000 -0.390886D-01 + 10.7700000 -0.934625D-01 + 4.1190000 -0.147994D+00 + 1.6250000 0.301904D-01 + 0.4726000 0.561573D+00 +P 1 1.00 + 0.1407000 1.0000000 +D 1 1.00 + 0.4790000 1.0000000 +S 1 1.00 + 0.0507000 1.0000000 +P 1 1.00 + 0.0399000 1.0000000 +D 1 1.00 + 0.1520000 1.0000000 +**** +Cl 0 +S 11 1.00 + 127900.0000000 0.241153D-03 + 19170.0000000 0.187095D-02 + 4363.0000000 0.970827D-02 + 1236.0000000 0.393153D-01 + 403.6000000 0.125932D+00 + 145.7000000 0.299341D+00 + 56.8100000 0.421886D+00 + 23.2300000 0.237201D+00 + 6.6440000 0.191531D-01 + 2.5750000 -0.334792D-02 + 0.5371000 0.929883D-03 +S 11 1.00 + 127900.0000000 -0.678922D-04 + 19170.0000000 -0.521836D-03 + 4363.0000000 -0.276513D-02 + 1236.0000000 -0.111537D-01 + 403.6000000 -0.385919D-01 + 145.7000000 -0.994848D-01 + 56.8100000 -0.201392D+00 + 23.2300000 -0.130313D+00 + 6.6440000 0.509443D+00 + 2.5750000 0.610725D+00 + 0.5371000 0.421549D-01 +S 11 1.00 + 127900.0000000 0.204986D-04 + 19170.0000000 0.158298D-03 + 4363.0000000 0.833639D-03 + 1236.0000000 0.339880D-02 + 403.6000000 0.116738D-01 + 145.7000000 0.309622D-01 + 56.8100000 0.629533D-01 + 23.2300000 0.460257D-01 + 6.6440000 -0.219312D+00 + 2.5750000 -0.408773D+00 + 0.5371000 0.638465D+00 +S 1 1.00 + 0.1938000 1.0000000 +P 7 1.00 + 417.6000000 0.525982D-02 + 98.3300000 0.398332D-01 + 31.0400000 0.164655D+00 + 11.1900000 0.387322D+00 + 4.2490000 0.457072D+00 + 1.6240000 0.151636D+00 + 0.5322000 0.181615D-02 +P 7 1.00 + 417.6000000 -0.143570D-02 + 98.3300000 -0.107796D-01 + 31.0400000 -0.470075D-01 + 11.1900000 -0.111030D+00 + 4.2490000 -0.153275D+00 + 1.6240000 0.894609D-01 + 0.5322000 0.579444D+00 +P 1 1.00 + 0.1620000 1.0000000 +D 1 1.00 + 0.6000000 1.0000000 +S 1 1.00 + 0.0608000 1.0000000 +P 1 1.00 + 0.0466000 1.0000000 +D 1 1.00 + 0.1960000 1.0000000 +**** +Ar 0 +S 11 1.00 + 145700.0000000 0.236700D-03 + 21840.0000000 0.183523D-02 + 4972.0000000 0.952860D-02 + 1408.0000000 0.386283D-01 + 459.7000000 0.124081D+00 + 165.9000000 0.296471D+00 + 64.6900000 0.422068D+00 + 26.4400000 0.241711D+00 + 7.6280000 0.200509D-01 + 2.9960000 -0.361000D-02 + 0.6504000 0.975607D-03 +S 11 1.00 + 145700.0000000 -0.674910D-04 + 21840.0000000 -0.518522D-03 + 4972.0000000 -0.274825D-02 + 1408.0000000 -0.111007D-01 + 459.7000000 -0.384820D-01 + 165.9000000 -0.997599D-01 + 64.6900000 -0.203088D+00 + 26.4400000 -0.135608D+00 + 7.6280000 0.507195D+00 + 2.9960000 0.612898D+00 + 0.6504000 0.442968D-01 +S 11 1.00 + 145700.0000000 0.210457D-04 + 21840.0000000 0.162565D-03 + 4972.0000000 0.855463D-03 + 1408.0000000 0.349745D-02 + 459.7000000 0.120156D-01 + 165.9000000 0.321368D-01 + 64.6900000 0.655279D-01 + 26.4400000 0.499370D-01 + 7.6280000 -0.229769D+00 + 2.9960000 -0.421006D+00 + 0.6504000 0.642331D+00 +S 1 1.00 + 0.2337000 1.0000000 +P 7 1.00 + 453.7000000 0.570555D-02 + 106.8000000 0.430460D-01 + 33.7300000 0.176591D+00 + 12.1300000 0.406863D+00 + 4.5940000 0.452549D+00 + 1.6780000 0.122801D+00 + 0.5909000 -0.445996D-02 +P 7 1.00 + 453.7000000 -0.160655D-02 + 106.8000000 -0.121714D-01 + 33.7300000 -0.520789D-01 + 12.1300000 -0.123737D+00 + 4.5940000 -0.151619D+00 + 1.6780000 0.142425D+00 + 0.5909000 0.584501D+00 +P 1 1.00 + 0.1852000 1.0000000 +D 1 1.00 + 0.7380000 1.0000000 +S 1 1.00 + 0.0709000 1.0000000 +P 1 1.00 + 0.0533000 1.0000000 +D 1 1.00 + 0.2400000 1.0000000 +**** +Sc 0 +S 19 1.00 + 2.715278E+06 8.147221E-06 + 4.065984E+05 6.334788E-05 + 9.253004E+04 3.330384E-04 + 2.620792E+04 1.404055E-03 + 8.549429E+03 5.081725E-03 + 3.085975E+03 1.626926E-02 + 1.203172E+03 4.624577E-02 + 4.984869E+02 1.137223E-01 + 2.167360E+02 2.257636E-01 + 9.787476E+01 3.106700E-01 + 4.520433E+01 2.191906E-01 + 2.021187E+01 7.215879E-02 + 9.574751E+00 1.187030E-01 + 4.540346E+00 1.220532E-01 + 1.995687E+00 2.136795E-02 + 9.422150E-01 -5.357246E-04 + 4.178450E-01 2.435774E-04 + 9.576100E-02 -8.796617E-05 + 5.135100E-02 7.878246E-05 +S 19 1.00 + 2.715278E+06 -4.722109E-06 + 4.065984E+05 -3.671829E-05 + 9.253004E+04 -1.930883E-04 + 2.620792E+04 -8.146870E-04 + 8.549429E+03 -2.955526E-03 + 3.085975E+03 -9.520035E-03 + 1.203172E+03 -2.746858E-02 + 4.984869E+02 -6.991528E-02 + 2.167360E+02 -1.499251E-01 + 9.787476E+01 -2.459153E-01 + 4.520433E+01 -2.401293E-01 + 2.021187E+01 3.567987E-02 + 9.574751E+00 4.915023E-01 + 4.540346E+00 4.911381E-01 + 1.995687E+00 9.120633E-02 + 9.422150E-01 -5.356723E-03 + 4.178450E-01 8.812836E-04 + 9.576100E-02 -7.605536E-04 + 5.135100E-02 6.340116E-04 +S 19 1.00 + 2.715278E+06 9.139905E-07 + 4.065984E+05 7.108513E-06 + 9.253004E+04 3.738126E-05 + 2.620792E+04 1.578828E-04 + 8.549429E+03 5.737686E-04 + 3.085975E+03 1.859244E-03 + 1.203172E+03 5.433182E-03 + 4.984869E+02 1.425387E-02 + 2.167360E+02 3.246144E-02 + 9.787476E+01 6.003454E-02 + 4.520433E+01 6.916105E-02 + 2.021187E+01 -2.113084E-02 + 9.574751E+00 -2.666832E-01 + 4.540346E+00 -4.367591E-01 + 1.995687E+00 6.498243E-02 + 9.422150E-01 7.009599E-01 + 4.178450E-01 4.515562E-01 + 9.576100E-02 3.011910E-02 + 5.135100E-02 -1.329480E-02 +S 19 1.00 + 2.715278E+06 -2.201951E-07 + 4.065984E+05 -1.711419E-06 + 9.253004E+04 -9.008469E-06 + 2.620792E+04 -3.799997E-05 + 8.549429E+03 -1.383227E-04 + 3.085975E+03 -4.473692E-04 + 1.203172E+03 -1.310691E-03 + 4.984869E+02 -3.429860E-03 + 2.167360E+02 -7.847579E-03 + 9.787476E+01 -1.447189E-02 + 4.520433E+01 -1.690669E-02 + 2.021187E+01 5.396115E-03 + 9.574751E+00 6.671062E-02 + 4.540346E+00 1.178356E-01 + 1.995687E+00 -2.738134E-02 + 9.422150E-01 -2.260149E-01 + 4.178450E-01 -3.073539E-01 + 9.576100E-02 2.544054E-01 + 5.135100E-02 5.981590E-01 +S 19 1.00 + 2.715278E+06 -3.757238E-07 + 4.065984E+05 -2.981907E-06 + 9.253004E+04 -1.522586E-05 + 2.620792E+04 -6.684686E-05 + 8.549429E+03 -2.313129E-04 + 3.085975E+03 -7.959729E-04 + 1.203172E+03 -2.161961E-03 + 4.984869E+02 -6.206459E-03 + 2.167360E+02 -1.261905E-02 + 9.787476E+01 -2.739459E-02 + 4.520433E+01 -2.336516E-02 + 2.021187E+01 -5.734627E-03 + 9.574751E+00 1.536025E-01 + 4.540346E+00 1.447100E-01 + 1.995687E+00 9.359699E-02 + 9.422150E-01 -8.687730E-01 + 4.178450E-01 2.114597E-02 + 9.576100E-02 2.275498E+00 + 5.135100E-02 -1.190770E+00 +S 1 1.00 + 2.387800E-02 1.0000000 +P 15 1.00 + 1.059219E+04 4.500000E-05 + 2.507533E+03 4.010000E-04 + 8.144571E+02 2.302000E-03 + 3.115195E+02 1.003700E-02 + 1.319617E+02 3.495400E-02 + 5.998718E+01 9.790900E-02 + 2.866250E+01 2.106800E-01 + 1.410851E+01 3.300930E-01 + 7.103706E+00 3.310270E-01 + 3.609200E+00 1.579600E-01 + 1.776070E+00 2.209900E-02 + 8.547600E-01 -1.605000E-03 + 4.022390E-01 -1.326000E-03 + 1.546650E-01 -2.800000E-04 + 6.494500E-02 3.400000E-05 +P 15 1.00 + 1.059219E+04 -1.500000E-05 + 2.507533E+03 -1.310000E-04 + 8.144571E+02 -7.570000E-04 + 3.115195E+02 -3.318000E-03 + 1.319617E+02 -1.170600E-02 + 5.998718E+01 -3.360400E-02 + 2.866250E+01 -7.487900E-02 + 1.410851E+01 -1.225480E-01 + 7.103706E+00 -1.302760E-01 + 3.609200E+00 1.459600E-02 + 1.776070E+00 3.091840E-01 + 8.547600E-01 4.629980E-01 + 4.022390E-01 3.049570E-01 + 1.546650E-01 5.087800E-02 + 6.494500E-02 -4.493000E-03 +P 15 1.00 + 1.059219E+04 -4.000000E-06 + 2.507533E+03 -3.200000E-05 + 8.144571E+02 -1.850000E-04 + 3.115195E+02 -8.080000E-04 + 1.319617E+02 -2.870000E-03 + 5.998718E+01 -8.207000E-03 + 2.866250E+01 -1.847300E-02 + 1.410851E+01 -3.010100E-02 + 7.103706E+00 -3.294300E-02 + 3.609200E+00 7.958000E-03 + 1.776070E+00 8.799300E-02 + 8.547600E-01 1.523770E-01 + 4.022390E-01 9.717000E-02 + 1.546650E-01 -2.569380E-01 + 6.494500E-02 -5.878150E-01 +P 15 1.00 + 1.059219E+04 4.000000E-06 + 2.507533E+03 3.900000E-05 + 8.144571E+02 2.210000E-04 + 3.115195E+02 9.840000E-04 + 1.319617E+02 3.423000E-03 + 5.998718E+01 9.993000E-03 + 2.866250E+01 2.191600E-02 + 1.410851E+01 3.700800E-02 + 7.103706E+00 3.779400E-02 + 3.609200E+00 -4.379000E-03 + 1.776070E+00 -1.101640E-01 + 8.547600E-01 -1.610170E-01 + 4.022390E-01 -1.824820E-01 + 1.546650E-01 3.886110E-01 + 6.494500E-02 6.911000E-01 +P 1 1.00 + 2.635900E-02 1.0000000 +D 7 1.00 + 5.051380E+01 4.266000E-03 + 1.474050E+01 2.770800E-02 + 5.195000E+00 1.000010E-01 + 2.028460E+00 2.315810E-01 + 8.040860E-01 3.460330E-01 + 3.076890E-01 3.733740E-01 + 1.113920E-01 2.642880E-01 +D 7 1.00 + 5.051380E+01 -4.389000E-03 + 1.474050E+01 -2.836300E-02 + 5.195000E+00 -1.051370E-01 + 2.028460E+00 -2.348540E-01 + 8.040860E-01 -3.246090E-01 + 3.076890E-01 -6.428900E-02 + 1.113920E-01 6.017490E-01 +D 1 1.00 + 3.735200E-02 1.0000000 +F 2 1.00 + 7.126000E-01 3.617450E-01 + 1.636000E-01 8.218680E-01 +S 1 1.00 + 1.110000E-02 1.0000000 +P 1 1.00 + 1.066000E-02 1.0000000 +D 1 1.00 + 1.244000E-02 1.0000000 +F 1 1.00 + 4.063000E-02 1.0000000 +**** +Ti 0 +S 19 1.00 + 3.014643E+06 8.060782E-06 + 4.514329E+05 6.267518E-05 + 1.027338E+05 3.295006E-04 + 2.909817E+04 1.389203E-03 + 9.492330E+03 5.028469E-03 + 3.426346E+03 1.610419E-02 + 1.335896E+03 4.581232E-02 + 5.535026E+02 1.128613E-01 + 2.406925E+02 2.248193E-01 + 1.087293E+02 3.114571E-01 + 5.026457E+01 2.224995E-01 + 2.258004E+01 7.293128E-02 + 1.071432E+01 1.160683E-01 + 5.093546E+00 1.194774E-01 + 2.244183E+00 2.097868E-02 + 1.059570E+00 -5.091715E-04 + 4.688490E-01 2.217859E-04 + 1.061430E-01 -7.636896E-05 + 5.526200E-02 7.719539E-05 +S 19 1.00 + 3.014643E+06 -4.630486E-06 + 4.514329E+05 -3.600451E-05 + 1.027338E+05 -1.893420E-04 + 2.909817E+04 -7.988781E-04 + 9.492330E+03 -2.898698E-03 + 3.426346E+03 -9.339701E-03 + 1.335896E+03 -2.697464E-02 + 5.535026E+02 -6.878913E-02 + 2.406925E+02 -1.481037E-01 + 1.087293E+02 -2.445253E-01 + 5.026457E+01 -2.419916E-01 + 2.258004E+01 3.183790E-02 + 1.071432E+01 4.932686E-01 + 5.093546E+00 4.939655E-01 + 2.244183E+00 9.196313E-02 + 1.059570E+00 -5.316992E-03 + 4.688490E-01 8.085624E-04 + 1.061430E-01 -6.918459E-04 + 5.526200E-02 6.086512E-04 +S 19 1.00 + 3.014643E+06 9.230559E-07 + 4.514329E+05 7.178974E-06 + 1.027338E+05 3.775134E-05 + 2.909817E+04 1.594532E-04 + 9.492330E+03 5.795150E-04 + 3.426346E+03 1.878414E-03 + 1.335896E+03 5.492747E-03 + 5.535026E+02 1.443297E-02 + 2.406925E+02 3.296408E-02 + 1.087293E+02 6.125493E-02 + 5.026457E+01 7.134113E-02 + 2.258004E+01 -1.973150E-02 + 1.071432E+01 -2.741869E-01 + 5.093546E+00 -4.440977E-01 + 2.244183E+00 7.776084E-02 + 1.059570E+00 7.068444E-01 + 4.688490E-01 4.413892E-01 + 1.061430E-01 2.799769E-02 + 5.526200E-02 -1.210790E-02 +S 19 1.00 + 3.014643E+06 -2.180323E-07 + 4.514329E+05 -1.694860E-06 + 1.027338E+05 -8.919208E-06 + 2.909817E+04 -3.763633E-05 + 9.492330E+03 -1.369575E-04 + 3.426346E+03 -4.432894E-04 + 1.335896E+03 -1.298868E-03 + 5.535026E+02 -3.406752E-03 + 2.406925E+02 -7.810829E-03 + 1.087293E+02 -1.449245E-02 + 5.026457E+01 -1.708136E-02 + 2.258004E+01 4.897666E-03 + 1.071432E+01 6.753108E-02 + 5.093546E+00 1.173318E-01 + 2.244183E+00 -2.985025E-02 + 1.059570E+00 -2.277634E-01 + 4.688490E-01 -2.928115E-01 + 1.061430E-01 2.665300E-01 + 5.526200E-02 5.912406E-01 +S 19 1.00 + 3.014643E+06 -3.975126E-07 + 4.514329E+05 -3.161080E-06 + 1.027338E+05 -1.609375E-05 + 2.909817E+04 -7.092947E-05 + 9.492330E+03 -2.442710E-04 + 3.426346E+03 -8.457892E-04 + 1.335896E+03 -2.282208E-03 + 5.535026E+02 -6.619873E-03 + 2.406925E+02 -1.335024E-02 + 1.087293E+02 -2.955830E-02 + 5.026457E+01 -2.477039E-02 + 2.258004E+01 -8.414624E-03 + 1.071432E+01 1.693855E-01 + 5.093546E+00 1.500787E-01 + 2.244183E+00 9.787777E-02 + 1.059570E+00 -9.653608E-01 + 4.688490E-01 1.489721E-01 + 1.061430E-01 2.191179E+00 + 5.526200E-02 -1.243325E+00 +S 1 1.00 + 2.546500E-02 1.0000000 +P 15 1.00 + 1.191203E+04 4.400000E-05 + 2.819947E+03 3.910000E-04 + 9.159479E+02 2.248000E-03 + 3.503842E+02 9.823000E-03 + 1.484825E+02 3.433800E-02 + 6.753944E+01 9.666600E-02 + 3.230332E+01 2.094170E-01 + 1.592786E+01 3.301890E-01 + 8.038035E+00 3.319360E-01 + 4.093916E+00 1.584880E-01 + 2.022390E+00 2.231000E-02 + 9.761020E-01 -1.566000E-03 + 4.595950E-01 -1.324000E-03 + 1.771520E-01 -2.710000E-04 + 7.351700E-02 3.200000E-05 +P 15 1.00 + 1.191203E+04 -1.500000E-05 + 2.819947E+03 -1.310000E-04 + 9.159479E+02 -7.550000E-04 + 3.503842E+02 -3.319000E-03 + 1.484825E+02 -1.175000E-02 + 6.753944E+01 -3.392200E-02 + 3.230332E+01 -7.616400E-02 + 1.592786E+01 -1.257020E-01 + 8.038035E+00 -1.330980E-01 + 4.093916E+00 1.740600E-02 + 2.022390E+00 3.151650E-01 + 9.761020E-01 4.618140E-01 + 4.595950E-01 2.998560E-01 + 1.771520E-01 5.000000E-02 + 7.351700E-02 -4.230000E-03 +P 15 1.00 + 1.191203E+04 4.000000E-06 + 2.819947E+03 3.100000E-05 + 9.159479E+02 1.820000E-04 + 3.503842E+02 7.950000E-04 + 1.484825E+02 2.833000E-03 + 6.753944E+01 8.154000E-03 + 3.230332E+01 1.847200E-02 + 1.592786E+01 3.040000E-02 + 8.038035E+00 3.304700E-02 + 4.093916E+00 -8.251000E-03 + 2.022390E+00 -8.855400E-02 + 9.761020E-01 -1.496120E-01 + 4.595950E-01 -9.422700E-02 + 1.771520E-01 2.508460E-01 + 7.351700E-02 5.866430E-01 +P 15 1.00 + 1.191203E+04 4.000000E-06 + 2.819947E+03 3.900000E-05 + 9.159479E+02 2.230000E-04 + 3.503842E+02 9.920000E-04 + 1.484825E+02 3.476000E-03 + 6.753944E+01 1.017200E-02 + 3.230332E+01 2.257600E-02 + 1.592786E+01 3.823800E-02 + 8.038035E+00 3.933700E-02 + 4.093916E+00 -6.106000E-03 + 2.022390E+00 -1.129620E-01 + 9.761020E-01 -1.681140E-01 + 4.595950E-01 -1.659320E-01 + 1.771520E-01 3.914030E-01 + 7.351700E-02 6.818400E-01 +P 1 1.00 + 2.940100E-02 1.0000000 +D 7 1.00 + 6.401300E+01 3.887000E-03 + 1.881790E+01 2.639900E-02 + 6.728700E+00 9.751100E-02 + 2.664130E+00 2.328480E-01 + 1.078680E+00 3.531520E-01 + 4.232090E-01 3.721860E-01 + 1.559990E-01 2.476720E-01 +D 7 1.00 + 6.401300E+01 -3.970000E-03 + 1.881790E+01 -2.687300E-02 + 6.728700E+00 -1.022750E-01 + 2.664130E+00 -2.377280E-01 + 1.078680E+00 -3.121140E-01 + 4.232090E-01 -4.237800E-02 + 1.559990E-01 5.886580E-01 +D 1 1.00 + 5.188400E-02 1.0000000 +F 2 1.00 + 1.227400E+00 3.581580E-01 + 2.788000E-01 8.257940E-01 +S 1 1.00 + 1.173000E-02 1.0000000 +P 1 1.00 + 1.176000E-02 1.0000000 +D 1 1.00 + 1.726000E-02 1.0000000 +F 1 1.00 + 8.266000E-02 1.0000000 +**** +V 0 +S 19 1.00 + 3.321857E+06 8.039999E-06 + 4.974356E+05 6.251402E-05 + 1.132027E+05 3.286553E-04 + 3.206333E+04 1.385697E-03 + 1.045962E+04 5.016217E-03 + 3.775506E+03 1.606931E-02 + 1.472040E+03 4.574242E-02 + 6.099331E+02 1.128544E-01 + 2.652634E+02 2.254344E-01 + 1.198607E+02 3.140461E-01 + 5.544891E+01 2.267819E-01 + 2.498372E+01 7.334069E-02 + 1.188056E+01 1.102474E-01 + 5.660311E+00 1.131358E-01 + 2.495703E+00 1.971295E-02 + 1.177866E+00 -4.719088E-04 + 5.200440E-01 1.861606E-04 + 1.159650E-01 -6.208598E-05 + 5.893800E-02 7.295314E-05 +S 19 1.00 + 3.321857E+06 -4.503003E-06 + 4.974356E+05 -3.501295E-05 + 1.132027E+05 -1.841339E-04 + 3.206333E+04 -7.769216E-04 + 1.045962E+04 -2.819505E-03 + 3.775506E+03 -9.087486E-03 + 1.472040E+03 -2.627134E-02 + 6.099331E+02 -6.712726E-02 + 2.652634E+02 -1.451130E-01 + 1.198607E+02 -2.412483E-01 + 5.544891E+01 -2.416314E-01 + 2.498372E+01 3.067362E-02 + 1.188056E+01 4.970415E-01 + 5.660311E+00 4.958875E-01 + 2.495703E+00 9.181868E-02 + 1.177866E+00 -5.392514E-03 + 5.200440E-01 7.102380E-04 + 1.159650E-01 -6.363128E-04 + 5.893800E-02 5.979932E-04 +S 19 1.00 + 3.321857E+06 9.320648E-07 + 4.974356E+05 7.249306E-06 + 1.132027E+05 3.811967E-05 + 3.206333E+04 1.610238E-04 + 1.045962E+04 5.852210E-04 + 3.775506E+03 1.897502E-03 + 1.472040E+03 5.550909E-03 + 6.099331E+02 1.460584E-02 + 2.652634E+02 3.342974E-02 + 1.198607E+02 6.235722E-02 + 5.544891E+01 7.312435E-02 + 2.498372E+01 -1.911472E-02 + 1.188056E+01 -2.817249E-01 + 5.660311E+00 -4.488151E-01 + 2.495703E+00 9.202696E-02 + 1.177866E+00 7.110117E-01 + 5.200440E-01 4.309274E-01 + 1.159650E-01 2.604589E-02 + 5.893800E-02 -1.101049E-02 +S 19 1.00 + 3.321857E+06 -2.158944E-07 + 4.974356E+05 -1.678519E-06 + 1.132027E+05 -8.831213E-06 + 3.206333E+04 -3.727769E-05 + 1.045962E+04 -1.356099E-04 + 3.775506E+03 -4.392351E-04 + 1.472040E+03 -1.286948E-03 + 6.099331E+02 -3.382149E-03 + 2.652634E+02 -7.765646E-03 + 1.198607E+02 -1.447985E-02 + 5.544891E+01 -1.715502E-02 + 2.498372E+01 4.610101E-03 + 1.188056E+01 6.827831E-02 + 5.660311E+00 1.161368E-01 + 2.495703E+00 -3.277049E-02 + 1.177866E+00 -2.280000E-01 + 5.200440E-01 -2.793991E-01 + 1.159650E-01 2.771165E-01 + 5.893800E-02 5.852999E-01 +S 19 1.00 + 3.321857E+06 -4.093416E-07 + 4.974356E+05 -3.258956E-06 + 1.132027E+05 -1.656390E-05 + 3.206333E+04 -7.316689E-05 + 1.045962E+04 -2.512784E-04 + 3.775506E+03 -8.732657E-04 + 1.472040E+03 -2.347654E-03 + 6.099331E+02 -6.853150E-03 + 2.652634E+02 -1.376420E-02 + 1.198607E+02 -3.084679E-02 + 5.544891E+01 -2.562208E-02 + 2.498372E+01 -1.005123E-02 + 1.188056E+01 1.795330E-01 + 5.660311E+00 1.522400E-01 + 2.495703E+00 9.483887E-02 + 1.177866E+00 -1.014876E+00 + 5.200440E-01 2.308810E-01 + 1.159650E-01 2.113321E+00 + 5.893800E-02 -1.253048E+00 +S 1 1.00 + 2.694600E-02 1.0000000 +P 15 1.00 + 1.327320E+04 4.300000E-05 + 3.142126E+03 3.840000E-04 + 1.020588E+03 2.210000E-03 + 3.904407E+02 9.678000E-03 + 1.655043E+02 3.393600E-02 + 7.532006E+01 9.591700E-02 + 3.605503E+01 2.088530E-01 + 1.780436E+01 3.306600E-01 + 9.002929E+00 3.323120E-01 + 4.594544E+00 1.581880E-01 + 2.276760E+00 2.225200E-02 + 1.101178E+00 -1.565000E-03 + 5.186380E-01 -1.353000E-03 + 2.005650E-01 -2.650000E-04 + 8.129100E-02 2.900000E-05 +P 15 1.00 + 1.327320E+04 -1.500000E-05 + 3.142126E+03 -1.310000E-04 + 1.020588E+03 -7.550000E-04 + 3.904407E+02 -3.325000E-03 + 1.655043E+02 -1.181100E-02 + 7.532006E+01 -3.425600E-02 + 3.605503E+01 -7.736300E-02 + 1.780436E+01 -1.284560E-01 + 9.002929E+00 -1.350780E-01 + 4.594544E+00 2.083800E-02 + 2.276760E+00 3.204990E-01 + 1.101178E+00 4.602600E-01 + 5.186380E-01 2.953460E-01 + 2.005650E-01 4.904600E-02 + 8.129100E-02 -3.824000E-03 +P 15 1.00 + 1.327320E+04 4.000000E-06 + 3.142126E+03 3.200000E-05 + 1.020588E+03 1.830000E-04 + 3.904407E+02 8.020000E-04 + 1.655043E+02 2.862000E-03 + 7.532006E+01 8.287000E-03 + 3.605503E+01 1.887000E-02 + 1.780436E+01 3.130700E-02 + 9.002929E+00 3.366000E-02 + 4.594544E+00 -9.479000E-03 + 2.276760E+00 -9.231300E-02 + 1.101178E+00 -1.489890E-01 + 5.186380E-01 -8.364400E-02 + 2.005650E-01 2.493390E-01 + 8.129100E-02 5.805150E-01 +P 15 1.00 + 1.327320E+04 4.000000E-06 + 3.142126E+03 3.900000E-05 + 1.020588E+03 2.230000E-04 + 3.904407E+02 9.960000E-04 + 1.655043E+02 3.498000E-03 + 7.532006E+01 1.029600E-02 + 3.605503E+01 2.296200E-02 + 1.780436E+01 3.920800E-02 + 9.002929E+00 3.994300E-02 + 4.594544E+00 -7.121000E-03 + 2.276760E+00 -1.162250E-01 + 1.101178E+00 -1.694960E-01 + 5.186380E-01 -1.553740E-01 + 2.005650E-01 3.950220E-01 + 8.129100E-02 6.789080E-01 +P 1 1.00 + 3.179500E-02 1.0000000 +D 7 1.00 + 7.761150E+01 3.595000E-03 + 2.291590E+01 2.521000E-02 + 8.279540E+00 9.478600E-02 + 3.309930E+00 2.303630E-01 + 1.358630E+00 3.528940E-01 + 5.413500E-01 3.704140E-01 + 2.023560E-01 2.457180E-01 +D 7 1.00 + 7.761150E+01 -3.818000E-03 + 2.291590E+01 -2.671700E-02 + 8.279540E+00 -1.036900E-01 + 3.309930E+00 -2.476890E-01 + 1.358630E+00 -3.115230E-01 + 5.413500E-01 -2.282700E-02 + 2.023560E-01 5.697260E-01 +D 1 1.00 + 6.756800E-02 1.0000000 +F 2 1.00 + 1.748800E+00 3.900680E-01 + 4.057000E-01 8.008410E-01 +S 1 1.00 + 1.232000E-02 1.0000000 +P 1 1.00 + 1.244000E-02 1.0000000 +D 1 1.00 + 2.256000E-02 1.0000000 +F 1 1.00 + 1.311200E-01 1.0000000 +**** +Cr 0 +S 19 1.00 + 6.177194E+06 4.128667E-06 + 9.249295E+05 3.210767E-05 + 2.104865E+05 1.688416E-04 + 5.962005E+04 7.128520E-04 + 1.945076E+04 2.589325E-03 + 7.022056E+03 8.377350E-03 + 2.738763E+03 2.441725E-02 + 1.135814E+03 6.365135E-02 + 4.950923E+02 1.427618E-01 + 2.247487E+02 2.541275E-01 + 1.053836E+02 3.009512E-01 + 5.019359E+01 1.766513E-01 + 2.224957E+01 6.936709E-02 + 1.098265E+01 1.179579E-01 + 5.383665E+00 8.916187E-02 + 2.343685E+00 1.103630E-02 + 1.105202E+00 -3.546048E-04 + 4.878480E-01 1.057311E-04 + 8.959900E-02 1.114640E-05 +S 19 1.00 + 6.177194E+06 -2.301772E-06 + 9.249295E+05 -1.789536E-05 + 2.104865E+05 -9.416174E-05 + 5.962005E+04 -3.975074E-04 + 1.945076E+04 -1.447025E-03 + 7.022056E+03 -4.694622E-03 + 2.738763E+03 -1.382387E-02 + 1.135814E+03 -3.674643E-02 + 4.950923E+02 -8.647185E-02 + 2.247487E+02 -1.696735E-01 + 1.053836E+02 -2.507089E-01 + 5.019359E+01 -1.961156E-01 + 2.224957E+01 1.457244E-01 + 1.098265E+01 5.466706E-01 + 5.383665E+00 3.979434E-01 + 2.343685E+00 5.277007E-02 + 1.105202E+00 -4.374537E-03 + 4.878480E-01 3.204035E-04 + 8.959900E-02 -5.142077E-05 +S 19 1.00 + 6.177194E+06 4.862957E-07 + 9.249295E+05 3.776645E-06 + 2.104865E+05 1.990664E-05 + 5.962005E+04 8.389164E-05 + 1.945076E+04 3.065706E-04 + 7.022056E+03 9.944107E-04 + 2.738763E+03 2.961959E-03 + 1.135814E+03 7.969473E-03 + 4.950923E+02 1.955017E-02 + 2.247487E+02 4.085035E-02 + 1.053836E+02 6.929003E-02 + 5.019359E+01 6.146984E-02 + 2.224957E+01 -6.981302E-02 + 1.098265E+01 -3.517597E-01 + 5.383665E+00 -3.828629E-01 + 2.343685E+00 2.676401E-01 + 1.105202E+00 7.175950E-01 + 4.878480E-01 3.020814E-01 + 8.959900E-02 7.749514E-03 +S 19 1.00 + 6.177194E+06 -1.102451E-07 + 9.249295E+05 -8.530233E-07 + 2.104865E+05 -4.520358E-06 + 5.962005E+04 -1.891612E-05 + 1.945076E+04 -6.974344E-05 + 7.022056E+03 -2.237867E-04 + 2.738763E+03 -6.754503E-04 + 1.135814E+03 -1.789346E-03 + 4.950923E+02 -4.477858E-03 + 2.247487E+02 -9.140144E-03 + 1.053836E+02 -1.610562E-02 + 5.019359E+01 -1.334870E-02 + 2.224957E+01 1.426027E-02 + 1.098265E+01 8.931690E-02 + 5.383665E+00 8.885279E-02 + 2.343685E+00 -6.368776E-02 + 1.105202E+00 -2.783262E-01 + 4.878480E-01 -1.830071E-01 + 8.959900E-02 6.790937E-01 +S 19 1.00 + 6.177194E+06 2.179893E-07 + 9.249295E+05 1.612940E-06 + 2.104865E+05 9.111842E-06 + 5.962005E+04 3.500645E-05 + 1.945076E+04 1.435315E-04 + 7.022056E+03 4.035896E-04 + 2.738763E+03 1.425177E-03 + 1.135814E+03 3.114009E-03 + 4.950923E+02 9.814449E-03 + 2.247487E+02 1.474698E-02 + 1.053836E+02 3.911512E-02 + 5.019359E+01 9.170888E-03 + 2.224957E+01 1.559878E-02 + 1.098265E+01 -2.816844E-01 + 5.383665E+00 -6.895261E-03 + 2.343685E+00 -1.769781E-01 + 1.105202E+00 1.443061E+00 + 4.878480E-01 -1.029318E+00 + 8.959900E-02 -1.307667E+00 +S 1 1.00 + 3.342300E-02 1.0000000 +P 15 1.00 + 1.445420E+04 4.400000E-05 + 3.421676E+03 3.890000E-04 + 1.111387E+03 2.241000E-03 + 4.251918E+02 9.821000E-03 + 1.802623E+02 3.447100E-02 + 8.206117E+01 9.746000E-02 + 3.929726E+01 2.119850E-01 + 1.941959E+01 3.339900E-01 + 9.828899E+00 3.301370E-01 + 5.016810E+00 1.522270E-01 + 2.487091E+00 2.042500E-02 + 1.198780E+00 -1.360000E-03 + 5.586950E-01 -1.195000E-03 + 2.089240E-01 -1.970000E-04 + 8.460800E-02 2.300000E-05 +P 15 1.00 + 1.445420E+04 -1.500000E-05 + 3.421676E+03 -1.350000E-04 + 1.111387E+03 -7.770000E-04 + 4.251918E+02 -3.427000E-03 + 1.802623E+02 -1.218900E-02 + 8.206117E+01 -3.538800E-02 + 3.929726E+01 -7.991500E-02 + 1.941959E+01 -1.323350E-01 + 9.828899E+00 -1.354010E-01 + 5.016810E+00 3.200800E-02 + 2.487091E+00 3.338490E-01 + 1.198780E+00 4.617730E-01 + 5.586950E-01 2.812900E-01 + 2.089240E-01 4.184300E-02 + 8.460800E-02 -4.002000E-03 +P 15 1.00 + 1.445420E+04 4.000000E-06 + 3.421676E+03 3.200000E-05 + 1.111387E+03 1.850000E-04 + 4.251918E+02 8.100000E-04 + 1.802623E+02 2.906000E-03 + 8.206117E+01 8.391000E-03 + 3.929726E+01 1.919300E-02 + 1.941959E+01 3.156400E-02 + 9.828899E+00 3.341700E-02 + 5.016810E+00 -1.290700E-02 + 2.487091E+00 -9.365900E-02 + 1.198780E+00 -1.499770E-01 + 5.586950E-01 -6.723400E-02 + 2.089240E-01 2.707590E-01 + 8.460800E-02 5.758070E-01 +P 15 1.00 + 1.445420E+04 4.000000E-06 + 3.421676E+03 4.000000E-05 + 1.111387E+03 2.290000E-04 + 4.251918E+02 1.019000E-03 + 1.802623E+02 3.602000E-03 + 8.206117E+01 1.055000E-02 + 3.929726E+01 2.370200E-02 + 1.941959E+01 3.998800E-02 + 9.828899E+00 4.043700E-02 + 5.016810E+00 -1.207400E-02 + 2.487091E+00 -1.189390E-01 + 1.198780E+00 -1.781000E-01 + 5.586950E-01 -1.238650E-01 + 2.089240E-01 4.297220E-01 + 8.460800E-02 6.507860E-01 +P 1 1.00 + 3.325800E-02 1.0000000 +D 7 1.00 + 8.857680E+01 3.621000E-03 + 2.620450E+01 2.576600E-02 + 9.517470E+00 9.755600E-02 + 3.822480E+00 2.363120E-01 + 1.575120E+00 3.582860E-01 + 6.289280E-01 3.685430E-01 + 2.344240E-01 2.354940E-01 +D 7 1.00 + 8.857680E+01 -4.122000E-03 + 2.620450E+01 -2.930700E-02 + 9.517470E+00 -1.150620E-01 + 3.822480E+00 -2.730680E-01 + 1.575120E+00 -3.144230E-01 + 6.289280E-01 4.209700E-02 + 2.344240E-01 5.914030E-01 +D 1 1.00 + 7.681500E-02 1.0000000 +F 2 1.00 + 2.221100E+00 4.235450E-01 + 5.231000E-01 7.741140E-01 +S 1 1.00 + 1.247000E-02 1.0000000 +P 1 1.00 + 1.307000E-02 1.0000000 +D 1 1.00 + 2.517000E-02 1.0000000 +F 1 1.00 + 1.763600E-01 1.0000000 +**** +Mn 0 +S 19 1.00 + 3.960805E+06 8.242127E-06 + 5.931155E+05 6.408587E-05 + 1.349768E+05 3.369253E-04 + 3.823067E+04 1.420648E-03 + 1.247154E+04 5.143683E-03 + 4.501743E+03 1.648569E-02 + 1.755212E+03 4.698560E-02 + 7.273039E+02 1.162437E-01 + 3.163678E+02 2.335277E-01 + 1.430098E+02 3.292837E-01 + 6.621805E+01 2.440304E-01 + 2.991896E+01 7.219806E-02 + 1.430318E+01 7.687806E-02 + 6.839451E+00 7.852235E-02 + 3.012374E+00 1.294109E-02 + 1.418808E+00 -3.784873E-04 + 6.236240E-01 -2.503203E-05 + 1.340980E-01 -2.421517E-05 + 6.554800E-02 3.462071E-05 +S 19 1.00 + 3.960805E+06 -3.936095E-06 + 5.931155E+05 -3.060481E-05 + 1.349768E+05 -1.609626E-04 + 3.823067E+04 -6.792348E-04 + 1.247154E+04 -2.466182E-03 + 4.501743E+03 -7.957629E-03 + 1.755212E+03 -2.307248E-02 + 7.273039E+02 -5.932956E-02 + 3.163678E+02 -1.299451E-01 + 1.430098E+02 -2.212352E-01 + 6.621805E+01 -2.292550E-01 + 2.991896E+01 3.580733E-02 + 1.430318E+01 5.107602E-01 + 6.839451E+00 5.008307E-01 + 3.012374E+00 9.011830E-02 + 1.418808E+00 -6.909909E-03 + 6.236240E-01 -1.912925E-04 + 1.340980E-01 -6.032312E-04 + 6.554800E-02 5.621608E-04 +S 19 1.00 + 3.960805E+06 9.462709E-07 + 5.931155E+05 7.360584E-06 + 1.349768E+05 3.869935E-05 + 3.823067E+04 1.635110E-04 + 1.247154E+04 5.941775E-04 + 4.501743E+03 1.927737E-03 + 1.755212E+03 5.641731E-03 + 7.273039E+02 1.487848E-02 + 3.163678E+02 3.414783E-02 + 1.430098E+02 6.405794E-02 + 6.621805E+01 7.557659E-02 + 2.991896E+01 -1.946070E-02 + 1.430318E+01 -2.957874E-01 + 6.839451E+00 -4.521170E-01 + 3.012374E+00 1.224531E-01 + 1.418808E+00 7.169756E-01 + 6.236240E-01 4.092712E-01 + 1.340980E-01 2.221969E-02 + 6.554800E-02 -9.011202E-03 +S 19 1.00 + 3.960805E+06 -2.095391E-07 + 5.931155E+05 -1.629439E-06 + 1.349768E+05 -8.570592E-06 + 3.823067E+04 -3.619272E-05 + 1.247154E+04 -1.316146E-04 + 4.501743E+03 -4.266810E-04 + 1.755212E+03 -1.250270E-03 + 7.273039E+02 -3.294665E-03 + 3.163678E+02 -7.581860E-03 + 1.430098E+02 -1.422864E-02 + 6.621805E+01 -1.693796E-02 + 2.991896E+01 4.454298E-03 + 1.430318E+01 6.867042E-02 + 6.839451E+00 1.113335E-01 + 3.012374E+00 -3.900820E-02 + 1.418808E+00 -2.215755E-01 + 6.236240E-01 -2.544359E-01 + 1.340980E-01 2.865866E-01 + 6.554800E-02 5.755741E-01 +S 19 1.00 + 3.960805E+06 -4.121231E-07 + 5.931155E+05 -3.282099E-06 + 1.349768E+05 -1.667433E-05 + 3.823067E+04 -7.369999E-05 + 1.247154E+04 -2.529495E-04 + 4.501743E+03 -8.801425E-04 + 1.755212E+03 -2.365482E-03 + 7.273039E+02 -6.926354E-03 + 3.163678E+02 -1.393851E-02 + 1.430098E+02 -3.143840E-02 + 6.621805E+01 -2.625749E-02 + 2.991896E+01 -1.048313E-02 + 1.430318E+01 1.856472E-01 + 6.839451E+00 1.524839E-01 + 3.012374E+00 7.411368E-02 + 1.418808E+00 -1.018097E+00 + 6.236240E-01 2.980372E-01 + 1.340980E-01 1.971989E+00 + 6.554800E-02 -1.179253E+00 +S 1 1.00 + 2.958400E-02 1.0000000 +P 15 1.00 + 1.620586E+04 4.200000E-05 + 3.836274E+03 3.730000E-04 + 1.246048E+03 2.149000E-03 + 4.767535E+02 9.445000E-03 + 2.021895E+02 3.329700E-02 + 9.209487E+01 9.475900E-02 + 4.414720E+01 2.081440E-01 + 2.185468E+01 3.318050E-01 + 1.108596E+01 3.331750E-01 + 5.674108E+00 1.576010E-01 + 2.823170E+00 2.144500E-02 + 1.368621E+00 -2.558000E-03 + 6.444310E-01 -2.027000E-03 + 2.483820E-01 -3.600000E-04 + 9.725500E-02 3.400000E-05 +P 15 1.00 + 1.620586E+04 -1.500000E-05 + 3.836274E+03 -1.290000E-04 + 1.246048E+03 -7.480000E-04 + 4.767535E+02 -3.308000E-03 + 2.021895E+02 -1.181100E-02 + 9.209487E+01 -3.453300E-02 + 4.414720E+01 -7.878500E-02 + 2.185468E+01 -1.321830E-01 + 1.108596E+01 -1.371950E-01 + 5.674108E+00 2.707500E-02 + 2.823170E+00 3.288910E-01 + 1.368621E+00 4.572800E-01 + 6.444310E-01 2.889080E-01 + 2.483820E-01 4.743300E-02 + 9.725500E-02 -3.522000E-03 +P 15 1.00 + 1.620586E+04 3.000000E-06 + 3.836274E+03 3.000000E-05 + 1.246048E+03 1.720000E-04 + 4.767535E+02 7.620000E-04 + 2.021895E+02 2.726000E-03 + 9.209487E+01 7.976000E-03 + 4.414720E+01 1.828700E-02 + 2.185468E+01 3.077600E-02 + 1.108596E+01 3.237300E-02 + 5.674108E+00 -9.978000E-03 + 2.823170E+00 -9.052900E-02 + 1.368621E+00 -1.380040E-01 + 6.444310E-01 -7.796500E-02 + 2.483820E-01 2.295600E-01 + 9.725500E-02 5.761220E-01 +P 15 1.00 + 1.620586E+04 4.000000E-06 + 3.836274E+03 4.000000E-05 + 1.246048E+03 2.260000E-04 + 4.767535E+02 1.013000E-03 + 2.021895E+02 3.575000E-03 + 9.209487E+01 1.061200E-02 + 4.414720E+01 2.390200E-02 + 2.185468E+01 4.127900E-02 + 1.108596E+01 4.147500E-02 + 5.674108E+00 -9.458000E-03 + 2.823170E+00 -1.236950E-01 + 1.368621E+00 -1.743920E-01 + 6.444310E-01 -1.291700E-01 + 2.483820E-01 4.003480E-01 + 9.725500E-02 6.696460E-01 +P 1 1.00 + 3.663300E-02 1.0000000 +D 7 1.00 + 1.006630E+02 3.579000E-03 + 2.983360E+01 2.582700E-02 + 1.088940E+01 9.855900E-02 + 4.393580E+00 2.383270E-01 + 1.817820E+00 3.587070E-01 + 7.278270E-01 3.650920E-01 + 2.712950E-01 2.337380E-01 +D 7 1.00 + 1.006630E+02 -3.454000E-03 + 2.983360E+01 -2.492500E-02 + 1.088940E+01 -9.763500E-02 + 4.393580E+00 -2.366920E-01 + 1.817820E+00 -2.923500E-01 + 7.278270E-01 -4.973000E-03 + 2.712950E-01 5.065880E-01 +D 1 1.00 + 8.830900E-02 1.0000000 +F 2 1.00 + 2.703200E+00 4.267760E-01 + 6.438000E-01 7.697990E-01 +S 1 1.00 + 1.335000E-02 1.0000000 +P 1 1.00 + 1.380000E-02 1.0000000 +D 1 1.00 + 2.875000E-02 1.0000000 +F 1 1.00 + 2.226000E-01 1.0000000 +**** +Fe 0 +S 19 1.00 + 4.316265E+06 8.048803E-06 + 6.463424E+05 6.258306E-05 + 1.470897E+05 3.290239E-04 + 4.166152E+04 1.387355E-03 + 1.359077E+04 5.023256E-03 + 4.905750E+03 1.610140E-02 + 1.912746E+03 4.590034E-02 + 7.926043E+02 1.136154E-01 + 3.448065E+02 2.283869E-01 + 1.558999E+02 3.221159E-01 + 7.223091E+01 2.383661E-01 + 3.272506E+01 7.404667E-02 + 1.566762E+01 9.214197E-02 + 7.503483E+00 9.339790E-02 + 3.312223E+00 1.573965E-02 + 1.558471E+00 -4.186682E-04 + 6.839140E-01 5.376318E-05 + 1.467570E-01 -3.816654E-05 + 7.058300E-02 4.319603E-05 +S 19 1.00 + 4.316265E+06 -4.155954E-06 + 6.463424E+05 -3.231401E-05 + 1.470897E+05 -1.699525E-04 + 4.166152E+04 -7.171369E-04 + 1.359077E+04 -2.603625E-03 + 4.905750E+03 -8.399109E-03 + 1.912746E+03 -2.434109E-02 + 7.926043E+02 -6.251948E-02 + 3.448065E+02 -1.365929E-01 + 1.558999E+02 -2.312707E-01 + 7.223091E+01 -2.383734E-01 + 3.272506E+01 3.123837E-02 + 1.566762E+01 5.086818E-01 + 7.503483E+00 4.987695E-01 + 3.312223E+00 9.033552E-02 + 1.558471E+00 -6.005337E-03 + 6.839140E-01 2.312454E-04 + 1.467570E-01 -5.643680E-04 + 7.058300E-02 4.992260E-04 +S 19 1.00 + 4.316265E+06 9.532178E-07 + 6.463424E+05 7.414605E-06 + 1.470897E+05 3.898393E-05 + 4.166152E+04 1.647152E-04 + 1.359077E+04 5.985980E-04 + 4.905750E+03 1.942390E-03 + 1.912746E+03 5.687237E-03 + 7.926043E+02 1.501329E-02 + 3.448065E+02 3.452455E-02 + 1.558999E+02 6.495820E-02 + 7.223091E+01 7.716194E-02 + 3.272506E+01 -1.873411E-02 + 1.566762E+01 -3.009185E-01 + 7.503483E+00 -4.554661E-01 + 3.312223E+00 1.286463E-01 + 1.558471E+00 7.183316E-01 + 6.839140E-01 4.051743E-01 + 1.467570E-01 2.168227E-02 + 7.058300E-02 -8.343566E-03 +S 19 1.00 + 4.316265E+06 -2.063008E-07 + 6.463424E+05 -1.604169E-06 + 1.470897E+05 -8.438437E-06 + 4.166152E+04 -3.563151E-05 + 1.359077E+04 -1.295998E-04 + 4.905750E+03 -4.201534E-04 + 1.912746E+03 -1.231954E-03 + 7.926043E+02 -3.248922E-03 + 3.448065E+02 -7.493717E-03 + 1.558999E+02 -1.410102E-02 + 7.223091E+01 -1.691600E-02 + 3.272506E+01 4.218996E-03 + 1.566762E+01 6.833810E-02 + 7.503483E+00 1.098201E-01 + 3.312223E+00 -4.009005E-02 + 1.558471E+00 -2.174739E-01 + 6.839140E-01 -2.465135E-01 + 1.467570E-01 2.731435E-01 + 7.058300E-02 5.748321E-01 +S 19 1.00 + 4.316265E+06 -4.009367E-07 + 6.463424E+05 -3.189255E-06 + 1.470897E+05 -1.623079E-05 + 4.166152E+04 -7.157920E-05 + 1.359077E+04 -2.463958E-04 + 4.905750E+03 -8.544907E-04 + 1.912746E+03 -2.307593E-03 + 7.926043E+02 -6.728292E-03 + 3.448065E+02 -1.366165E-02 + 1.558999E+02 -3.062240E-02 + 7.223091E+01 -2.631137E-02 + 3.272506E+01 -9.760183E-03 + 1.566762E+01 1.801906E-01 + 7.503483E+00 1.529634E-01 + 3.312223E+00 5.505413E-02 + 1.558471E+00 -9.551364E-01 + 6.839140E-01 2.586813E-01 + 1.467570E-01 1.834049E+00 + 7.058300E-02 -9.333240E-01 +S 1 1.00 + 3.144900E-02 1.0000000 +P 15 1.00 + 1.774569E+04 4.100000E-05 + 4.200721E+03 3.690000E-04 + 1.364429E+03 2.129000E-03 + 5.220806E+02 9.369000E-03 + 2.214595E+02 3.309700E-02 + 1.009096E+02 9.443100E-02 + 4.840115E+01 2.080770E-01 + 2.398536E+01 3.323330E-01 + 1.218250E+01 3.329870E-01 + 6.242298E+00 1.568430E-01 + 3.110944E+00 2.154900E-02 + 1.509958E+00 -2.095000E-03 + 7.108450E-01 -1.739000E-03 + 2.731900E-01 -3.000000E-04 + 1.042330E-01 2.900000E-05 +P 15 1.00 + 1.774569E+04 -1.500000E-05 + 4.200721E+03 -1.300000E-04 + 1.364429E+03 -7.510000E-04 + 5.220806E+02 -3.329000E-03 + 2.214595E+02 -1.191200E-02 + 1.009096E+02 -3.493300E-02 + 4.840115E+01 -7.998900E-02 + 2.398536E+01 -1.346360E-01 + 1.218250E+01 -1.385980E-01 + 6.242298E+00 3.027800E-02 + 3.110944E+00 3.332160E-01 + 1.509958E+00 4.561530E-01 + 7.108450E-01 2.850510E-01 + 2.731900E-01 4.614400E-02 + 1.042330E-01 -3.249000E-03 +P 15 1.00 + 1.774569E+04 3.000000E-06 + 4.200721E+03 2.900000E-05 + 1.364429E+03 1.650000E-04 + 5.220806E+02 7.340000E-04 + 2.214595E+02 2.626000E-03 + 1.009096E+02 7.725000E-03 + 4.840115E+01 1.773300E-02 + 2.398536E+01 3.005500E-02 + 1.218250E+01 3.109400E-02 + 6.242298E+00 -1.004800E-02 + 3.110944E+00 -8.830600E-02 + 1.509958E+00 -1.298240E-01 + 7.108450E-01 -7.693700E-02 + 2.731900E-01 2.126610E-01 + 1.042330E-01 5.730610E-01 +P 15 1.00 + 1.774569E+04 5.000000E-06 + 4.200721E+03 4.200000E-05 + 1.364429E+03 2.410000E-04 + 5.220806E+02 1.085000E-03 + 2.214595E+02 3.831000E-03 + 1.009096E+02 1.142300E-02 + 4.840115E+01 2.579200E-02 + 2.398536E+01 4.481800E-02 + 1.218250E+01 4.459800E-02 + 6.242298E+00 -1.117700E-02 + 3.110944E+00 -1.381340E-01 + 1.509958E+00 -1.882850E-01 + 7.108450E-01 -1.073990E-01 + 2.731900E-01 4.448630E-01 + 1.042330E-01 6.402390E-01 +P 1 1.00 + 3.829100E-02 1.0000000 +D 7 1.00 + 1.133440E+02 3.530000E-03 + 3.364140E+01 2.578400E-02 + 1.233100E+01 9.911900E-02 + 4.994780E+00 2.390730E-01 + 2.072800E+00 3.571990E-01 + 8.307530E-01 3.621880E-01 + 3.091780E-01 2.364610E-01 +D 7 1.00 + 1.133440E+02 -3.890000E-03 + 3.364140E+01 -2.844200E-02 + 1.233100E+01 -1.124290E-01 + 4.994780E+00 -2.742570E-01 + 2.072800E+00 -3.155460E-01 + 8.307530E-01 5.710900E-02 + 3.091780E-01 5.636040E-01 +D 1 1.00 + 1.001300E-01 1.0000000 +F 2 1.00 + 3.224300E+00 4.222490E-01 + 7.758000E-01 7.714680E-01 +S 1 1.00 + 1.401000E-02 1.0000000 +P 1 1.00 + 1.407000E-02 1.0000000 +D 1 1.00 + 3.243000E-02 1.0000000 +F 1 1.00 + 2.749000E-01 1.0000000 +**** +Co 0 +S 19 1.00 + 4.675675E+06 7.979026E-06 + 7.001615E+05 6.204071E-05 + 1.593373E+05 3.261735E-04 + 4.513046E+04 1.375360E-03 + 1.472238E+04 4.979997E-03 + 5.314222E+03 1.596434E-02 + 2.072018E+03 4.552086E-02 + 8.586188E+02 1.127385E-01 + 3.735497E+02 2.268262E-01 + 1.689229E+02 3.203074E-01 + 7.829639E+01 2.374021E-01 + 3.552123E+01 7.477686E-02 + 1.704144E+01 9.581872E-02 + 8.173000E+00 9.649911E-02 + 3.610318E+00 1.623362E-02 + 1.697047E+00 -4.535497E-04 + 7.435320E-01 5.113519E-05 + 1.583440E-01 -4.174508E-05 + 7.503600E-02 4.027577E-05 +S 19 1.00 + 4.675675E+06 -4.200240E-06 + 7.001615E+05 -3.265831E-05 + 1.593373E+05 -1.717644E-04 + 4.513046E+04 -7.247853E-04 + 1.472238E+04 -2.631462E-03 + 5.314222E+03 -8.489272E-03 + 2.072018E+03 -2.460619E-02 + 8.586188E+02 -6.322059E-02 + 3.735497E+02 -1.381957E-01 + 1.689229E+02 -2.340680E-01 + 7.829639E+01 -2.415002E-01 + 3.552123E+01 3.035312E-02 + 1.704144E+01 5.101341E-01 + 8.173000E+00 4.974939E-01 + 3.610318E+00 8.970746E-02 + 1.697047E+00 -5.941034E-03 + 7.435320E-01 2.175362E-04 + 1.583440E-01 -5.480155E-04 + 7.503600E-02 4.525804E-04 +S 19 1.00 + 4.675675E+06 9.592692E-07 + 7.001615E+05 7.461851E-06 + 1.593373E+05 3.923137E-05 + 4.513046E+04 1.657706E-04 + 1.472238E+04 6.024335E-04 + 5.314222E+03 1.955217E-03 + 2.072018E+03 5.726326E-03 + 8.586188E+02 1.512984E-02 + 3.735497E+02 3.483973E-02 + 1.689229E+02 6.570351E-02 + 7.829639E+01 7.831503E-02 + 3.552123E+01 -1.877037E-02 + 1.704144E+01 -3.062663E-01 + 8.173000E+00 -4.566429E-01 + 3.610318E+00 1.378169E-01 + 1.697047E+00 7.193676E-01 + 7.435320E-01 3.992579E-01 + 1.583440E-01 2.079933E-02 + 7.503600E-02 -7.820663E-03 +S 19 1.00 + 4.675675E+06 -2.028840E-07 + 7.001615E+05 -1.577580E-06 + 1.593373E+05 -8.298813E-06 + 4.513046E+04 -3.504154E-05 + 1.472238E+04 -1.274655E-04 + 5.314222E+03 -4.132695E-04 + 2.072018E+03 -1.212261E-03 + 8.586188E+02 -3.199318E-03 + 3.735497E+02 -7.390972E-03 + 1.689229E+02 -1.393649E-02 + 7.829639E+01 -1.678575E-02 + 3.552123E+01 4.149856E-03 + 1.704144E+01 6.797646E-02 + 8.173000E+00 1.075807E-01 + 3.610318E+00 -4.166022E-02 + 1.697047E+00 -2.128044E-01 + 7.435320E-01 -2.381360E-01 + 1.583440E-01 2.650788E-01 + 7.503600E-02 5.722774E-01 +S 19 1.00 + 4.675675E+06 -3.863053E-07 + 7.001615E+05 -3.068788E-06 + 1.593373E+05 -1.564826E-05 + 4.513046E+04 -6.883588E-05 + 1.472238E+04 -2.377367E-04 + 5.314222E+03 -8.213173E-04 + 2.072018E+03 -2.229630E-03 + 8.586188E+02 -6.467841E-03 + 3.735497E+02 -1.325463E-02 + 1.689229E+02 -2.946686E-02 + 7.829639E+01 -2.599066E-02 + 3.552123E+01 -8.499807E-03 + 1.704144E+01 1.727316E-01 + 8.173000E+00 1.512189E-01 + 3.610318E+00 3.554509E-02 + 1.697047E+00 -8.829353E-01 + 7.435320E-01 2.143530E-01 + 1.583440E-01 1.711865E+00 + 7.503600E-02 -7.140037E-01 +S 1 1.00 + 3.309100E-02 1.0000000 +P 15 1.00 + 1.926778E+04 4.100000E-05 + 4.560986E+03 3.690000E-04 + 1.481436E+03 2.128000E-03 + 5.668671E+02 9.372000E-03 + 2.404910E+02 3.315500E-02 + 1.096105E+02 9.475200E-02 + 5.259491E+01 2.090930E-01 + 2.608361E+01 3.337220E-01 + 1.326143E+01 3.322080E-01 + 6.799778E+00 1.546130E-01 + 3.393414E+00 2.090200E-02 + 1.648766E+00 -2.024000E-03 + 7.762820E-01 -1.697000E-03 + 2.980030E-01 -2.800000E-04 + 1.136180E-01 2.600000E-05 +P 15 1.00 + 1.926778E+04 -1.500000E-05 + 4.560986E+03 -1.310000E-04 + 1.481436E+03 -7.580000E-04 + 5.668671E+02 -3.363000E-03 + 2.404910E+02 -1.205400E-02 + 1.096105E+02 -3.542400E-02 + 5.259491E+01 -8.128700E-02 + 2.608361E+01 -1.369080E-01 + 1.326143E+01 -1.390190E-01 + 6.799778E+00 3.546800E-02 + 3.393414E+00 3.384980E-01 + 1.648766E+00 4.544330E-01 + 7.762820E-01 2.797930E-01 + 2.980030E-01 4.477600E-02 + 1.136180E-01 -3.151000E-03 +P 15 1.00 + 1.926778E+04 -3.000000E-06 + 4.560986E+03 -2.900000E-05 + 1.481436E+03 -1.670000E-04 + 5.668671E+02 -7.420000E-04 + 2.404910E+02 -2.662000E-03 + 1.096105E+02 -7.841000E-03 + 5.259491E+01 -1.805100E-02 + 2.608361E+01 -3.058000E-02 + 1.326143E+01 -3.131200E-02 + 6.799778E+00 1.131100E-02 + 3.393414E+00 8.999000E-02 + 1.648766E+00 1.307330E-01 + 7.762820E-01 7.180800E-02 + 2.980030E-01 -2.216580E-01 + 1.136180E-01 -5.710250E-01 +P 15 1.00 + 1.926778E+04 5.000000E-06 + 4.560986E+03 4.500000E-05 + 1.481436E+03 2.550000E-04 + 5.668671E+02 1.144000E-03 + 2.404910E+02 4.061000E-03 + 1.096105E+02 1.209500E-02 + 5.259491E+01 2.747600E-02 + 2.608361E+01 4.755700E-02 + 1.326143E+01 4.730200E-02 + 6.799778E+00 -1.441800E-02 + 3.393414E+00 -1.500620E-01 + 1.648766E+00 -1.990920E-01 + 7.762820E-01 -7.978300E-02 + 2.980030E-01 4.590350E-01 + 1.136180E-01 6.174950E-01 +P 1 1.00 + 4.162400E-02 1.0000000 +D 7 1.00 + 1.262640E+02 3.510000E-03 + 3.752260E+01 2.588400E-02 + 1.380210E+01 1.000580E-01 + 5.609270E+00 2.405470E-01 + 2.333690E+00 3.568430E-01 + 9.364150E-01 3.595790E-01 + 3.482370E-01 2.366290E-01 +D 7 1.00 + 1.262640E+02 -4.067000E-03 + 3.752260E+01 -3.005300E-02 + 1.380210E+01 -1.196200E-01 + 5.609270E+00 -2.915130E-01 + 2.333690E+00 -3.180480E-01 + 9.364150E-01 9.169800E-02 + 3.482370E-01 5.608230E-01 +D 1 1.00 + 1.123530E-01 1.0000000 +F 2 1.00 + 3.772400E+00 4.239660E-01 + 9.170000E-01 7.684290E-01 +S 1 1.00 + 1.459000E-02 1.0000000 +P 1 1.00 + 1.525000E-02 1.0000000 +D 1 1.00 + 3.625000E-02 1.0000000 +F 1 1.00 + 3.271500E-01 1.0000000 +**** +Ni 0 +S 19 1.00 + 5.045991E+06 8.208996E-06 + 7.556142E+05 6.382884E-05 + 1.719568E+05 3.355800E-04 + 4.870479E+04 1.415075E-03 + 1.588841E+04 5.124444E-03 + 5.735123E+03 1.643256E-02 + 2.236137E+03 4.689398E-02 + 9.266468E+02 1.163534E-01 + 4.031743E+02 2.350511E-01 + 1.823476E+02 3.350184E-01 + 8.454885E+01 2.534779E-01 + 3.839634E+01 7.300901E-02 + 1.845859E+01 6.184244E-02 + 8.863548E+00 6.302956E-02 + 3.916227E+00 1.008063E-02 + 1.838870E+00 -2.244528E-04 + 8.043620E-01 -5.932767E-05 + 1.697970E-01 -1.158562E-05 + 7.930600E-02 8.115109E-06 +S 19 1.00 + 5.045991E+06 -3.657849E-06 + 7.556142E+05 -2.844094E-05 + 1.719568E+05 -1.495928E-04 + 4.870479E+04 -6.313009E-04 + 1.588841E+04 -2.293052E-03 + 5.735123E+03 -7.405123E-03 + 2.236137E+03 -2.152032E-02 + 9.266468E+02 -5.560974E-02 + 4.031743E+02 -1.230176E-01 + 1.823476E+02 -2.130104E-01 + 8.454885E+01 -2.265837E-01 + 3.839634E+01 3.546796E-02 + 1.845859E+01 5.181697E-01 + 8.863548E+00 5.025630E-01 + 3.916227E+00 8.955674E-02 + 1.838870E+00 -7.031311E-03 + 8.043620E-01 -4.339167E-04 + 1.697970E-01 -5.831711E-04 + 7.930600E-02 4.228788E-04 +S 19 1.00 + 5.045991E+06 9.594149E-07 + 7.556142E+05 7.462614E-06 + 1.719568E+05 3.923843E-05 + 4.870479E+04 1.657868E-04 + 1.588841E+04 6.025905E-04 + 5.735123E+03 1.955662E-03 + 2.236137E+03 5.730391E-03 + 9.266468E+02 1.514756E-02 + 4.031743E+02 3.493499E-02 + 1.823476E+02 6.598072E-02 + 8.454885E+01 7.893083E-02 + 3.839634E+01 -1.906249E-02 + 1.845859E+01 -3.095921E-01 + 8.863548E+00 -4.558610E-01 + 3.916227E+00 1.482931E-01 + 1.838870E+00 7.134039E-01 + 8.043620E-01 3.976063E-01 + 1.697970E-01 2.295523E-02 + 7.930600E-02 -9.151758E-03 +S 19 1.00 + 5.045991E+06 -2.013753E-07 + 7.556142E+05 -1.565832E-06 + 1.719568E+05 -8.237182E-06 + 4.870479E+04 -3.478105E-05 + 1.588841E+04 -1.265265E-04 + 5.735123E+03 -4.102589E-04 + 2.236137E+03 -1.203834E-03 + 9.266468E+02 -3.179062E-03 + 4.031743E+02 -7.353828E-03 + 1.823476E+02 -1.389022E-02 + 8.454885E+01 -1.677875E-02 + 3.839634E+01 4.163378E-03 + 1.845859E+01 6.814703E-02 + 8.863548E+00 1.061029E-01 + 3.916227E+00 -4.339980E-02 + 1.838870E+00 -2.094950E-01 + 8.043620E-01 -2.310271E-01 + 1.697970E-01 2.590532E-01 + 7.930600E-02 5.691426E-01 +S 19 1.00 + 5.045991E+06 -3.924245E-07 + 7.556142E+05 -3.113909E-06 + 1.719568E+05 -1.590447E-05 + 4.870479E+04 -6.981394E-05 + 1.588841E+04 -2.417848E-04 + 5.735123E+03 -8.326195E-04 + 2.236137E+03 -2.270294E-03 + 9.266468E+02 -6.557427E-03 + 4.031743E+02 -1.354288E-02 + 1.823476E+02 -2.989768E-02 + 8.454885E+01 -2.693106E-02 + 3.839634E+01 -7.827693E-03 + 1.845859E+01 1.741667E-01 + 8.863548E+00 1.595468E-01 + 3.916227E+00 1.995550E-02 + 1.838870E+00 -8.897000E-01 + 8.043620E-01 2.486892E-01 + 1.697970E-01 1.613012E+00 + 7.930600E-02 -5.990277E-01 +S 1 1.00 + 3.467700E-02 1.0000000 +P 15 1.00 + 2.102792E+04 4.100000E-05 + 4.977560E+03 3.630000E-04 + 1.616740E+03 2.097000E-03 + 6.186718E+02 9.250000E-03 + 2.625183E+02 3.279600E-02 + 1.196907E+02 9.400400E-02 + 5.746585E+01 2.082800E-01 + 2.852829E+01 3.336540E-01 + 1.452148E+01 3.329040E-01 + 7.453850E+00 1.553720E-01 + 3.723553E+00 2.085900E-02 + 1.809813E+00 -2.440000E-03 + 8.513360E-01 -1.998000E-03 + 3.248140E-01 -3.380000E-04 + 1.195220E-01 3.500000E-05 +P 15 1.00 + 2.102792E+04 -1.500000E-05 + 4.977560E+03 -1.290000E-04 + 1.616740E+03 -7.490000E-04 + 6.186718E+02 -3.328000E-03 + 2.625183E+02 -1.194700E-02 + 1.196907E+02 -3.524200E-02 + 5.746585E+01 -8.120400E-02 + 2.852829E+01 -1.374930E-01 + 1.452148E+01 -1.392260E-01 + 7.453850E+00 3.601600E-02 + 3.723553E+00 3.391280E-01 + 1.809813E+00 4.504720E-01 + 8.513360E-01 2.817830E-01 + 3.248140E-01 4.789800E-02 + 1.195220E-01 -2.987000E-03 +P 15 1.00 + 2.102792E+04 3.000000E-06 + 4.977560E+03 2.600000E-05 + 1.616740E+03 1.520000E-04 + 6.186718E+02 6.780000E-04 + 2.625183E+02 2.427000E-03 + 1.196907E+02 7.201000E-03 + 5.746585E+01 1.657800E-02 + 2.852829E+01 2.839200E-02 + 1.452148E+01 2.859900E-02 + 7.453850E+00 -1.013200E-02 + 3.723553E+00 -8.291200E-02 + 1.809813E+00 -1.159980E-01 + 8.513360E-01 -7.279500E-02 + 3.248140E-01 1.956400E-01 + 1.195220E-01 5.670990E-01 +P 15 1.00 + 2.102792E+04 6.000000E-06 + 4.977560E+03 5.300000E-05 + 1.616740E+03 3.050000E-04 + 6.186718E+02 1.364000E-03 + 2.625183E+02 4.876000E-03 + 1.196907E+02 1.450300E-02 + 5.746585E+01 3.329600E-02 + 2.852829E+01 5.748200E-02 + 1.452148E+01 5.870200E-02 + 7.453850E+00 -1.990400E-02 + 3.723553E+00 -1.946950E-01 + 1.809813E+00 -2.396130E-01 + 8.513360E-01 -2.232000E-03 + 3.248140E-01 5.214350E-01 + 1.195220E-01 5.455400E-01 +P 1 1.00 + 4.236600E-02 1.0000000 +D 7 1.00 + 1.402527E+02 3.376000E-03 + 4.172610E+01 2.514100E-02 + 1.539810E+01 9.774600E-02 + 6.277100E+00 2.347090E-01 + 2.618500E+00 3.469450E-01 + 1.052600E+00 3.510680E-01 + 3.916000E-01 2.502550E-01 +D 7 1.00 + 1.402527E+02 -3.495000E-03 + 4.172610E+01 -2.601500E-02 + 1.539810E+01 -1.038760E-01 + 6.277100E+00 -2.520700E-01 + 2.618500E+00 -2.945800E-01 + 1.052600E+00 1.152000E-03 + 3.916000E-01 4.385890E-01 +D 1 1.00 + 1.262000E-01 1.0000000 +F 2 1.00 + 4.345500E+00 4.174290E-01 + 1.068000E+00 7.714830E-01 +S 1 1.00 + 1.516000E-02 1.0000000 +P 1 1.00 + 1.502000E-02 1.0000000 +D 1 1.00 + 4.067000E-02 1.0000000 +F 1 1.00 + 4.083000E-01 1.0000000 +**** +Cu 0 +S 19 1.00 + 5.430321E+06 7.801026E-06 + 8.131665E+05 6.065666E-05 + 1.850544E+05 3.188964E-04 + 5.241466E+04 1.344687E-03 + 1.709868E+04 4.869050E-03 + 6.171994E+03 1.561013E-02 + 2.406481E+03 4.452077E-02 + 9.972584E+02 1.103111E-01 + 4.339289E+02 2.220342E-01 + 1.962869E+02 3.133739E-01 + 9.104280E+01 2.315121E-01 + 4.138425E+01 7.640920E-02 + 1.993278E+01 1.103818E-01 + 9.581891E+00 1.094372E-01 + 4.234516E+00 1.836311E-02 + 1.985814E+00 -6.043084E-04 + 8.670830E-01 5.092245E-05 + 1.813390E-01 -5.540730E-05 + 8.365700E-02 3.969482E-05 +S 19 1.00 + 5.430321E+06 -4.404706E-06 + 8.131665E+05 -3.424801E-05 + 1.850544E+05 -1.801238E-04 + 5.241466E+04 -7.600455E-04 + 1.709868E+04 -2.759348E-03 + 6.171994E+03 -8.900970E-03 + 2.406481E+03 -2.579378E-02 + 9.972584E+02 -6.623861E-02 + 4.339289E+02 -1.445927E-01 + 1.962869E+02 -2.440110E-01 + 9.104280E+01 -2.504837E-01 + 4.138425E+01 2.852577E-02 + 1.993278E+01 5.115874E-01 + 9.581891E+00 4.928061E-01 + 4.234516E+00 8.788437E-02 + 1.985814E+00 -5.820281E-03 + 8.670830E-01 2.013508E-04 + 1.813390E-01 -5.182553E-04 + 8.365700E-02 3.731503E-04 +S 19 1.00 + 5.430321E+06 9.704682E-07 + 8.131665E+05 7.549245E-06 + 1.850544E+05 3.968892E-05 + 5.241466E+04 1.677200E-04 + 1.709868E+04 6.095101E-04 + 6.171994E+03 1.978846E-03 + 2.406481E+03 5.798049E-03 + 9.972584E+02 1.534158E-02 + 4.339289E+02 3.540484E-02 + 1.962869E+02 6.702098E-02 + 9.104280E+01 8.026945E-02 + 4.138425E+01 -1.927231E-02 + 1.993278E+01 -3.160129E-01 + 9.581891E+00 -4.573162E-01 + 4.234516E+00 1.550841E-01 + 1.985814E+00 7.202872E-01 + 8.670830E-01 3.885122E-01 + 1.813390E-01 1.924326E-02 + 8.365700E-02 -7.103807E-03 +S 19 1.00 + 5.430321E+06 -1.959354E-07 + 8.131665E+05 -1.523472E-06 + 1.850544E+05 -8.014808E-06 + 5.241466E+04 -3.383992E-05 + 1.709868E+04 -1.231191E-04 + 6.171994E+03 -3.992085E-04 + 2.406481E+03 -1.171900E-03 + 9.972584E+02 -3.096141E-03 + 4.339289E+02 -7.171993E-03 + 1.962869E+02 -1.356621E-02 + 9.104280E+01 -1.643989E-02 + 4.138425E+01 4.107628E-03 + 1.993278E+01 6.693964E-02 + 9.581891E+00 1.028221E-01 + 4.234516E+00 -4.422945E-02 + 1.985814E+00 -2.031191E-01 + 8.670830E-01 -2.230022E-01 + 1.813390E-01 2.517975E-01 + 8.365700E-02 5.650091E-01 +S 19 1.00 + 5.430321E+06 -3.532229E-07 + 8.131665E+05 -2.798812E-06 + 1.850544E+05 -1.432517E-05 + 5.241466E+04 -6.270946E-05 + 1.709868E+04 -2.179490E-04 + 6.171994E+03 -7.474316E-04 + 2.406481E+03 -2.049271E-03 + 9.972584E+02 -5.885203E-03 + 4.339289E+02 -1.226885E-02 + 1.962869E+02 -2.683147E-02 + 9.104280E+01 -2.479261E-02 + 4.138425E+01 -5.984746E-03 + 1.993278E+01 1.557124E-01 + 9.581891E+00 1.436683E-01 + 4.234516E+00 8.374103E-03 + 1.985814E+00 -7.460711E-01 + 8.670830E-01 1.244367E-01 + 1.813390E-01 1.510110E+00 + 8.365700E-02 -3.477122E-01 +S 1 1.00 + 3.626700E-02 1.0000000 +P 15 1.00 + 2.276057E+04 4.000000E-05 + 5.387679E+03 3.610000E-04 + 1.749945E+03 2.083000E-03 + 6.696653E+02 9.197000E-03 + 2.841948E+02 3.266000E-02 + 1.296077E+02 9.379500E-02 + 6.225415E+01 2.082740E-01 + 3.092964E+01 3.339930E-01 + 1.575827E+01 3.324930E-01 + 8.094211E+00 1.547280E-01 + 4.046921E+00 2.127100E-02 + 1.967869E+00 -1.690000E-03 + 9.252950E-01 -1.516000E-03 + 3.529920E-01 -2.420000E-04 + 1.273070E-01 2.300000E-05 +P 15 1.00 + 2.276057E+04 -1.500000E-05 + 5.387679E+03 -1.310000E-04 + 1.749945E+03 -7.550000E-04 + 6.696653E+02 -3.359000E-03 + 2.841948E+02 -1.208100E-02 + 1.296077E+02 -3.570300E-02 + 6.225415E+01 -8.250200E-02 + 3.092964E+01 -1.398900E-01 + 1.575827E+01 -1.407290E-01 + 8.094211E+00 3.876600E-02 + 4.046921E+00 3.426950E-01 + 1.967869E+00 4.523100E-01 + 9.252950E-01 2.770540E-01 + 3.529920E-01 4.388500E-02 + 1.273070E-01 -2.802000E-03 +P 15 1.00 + 2.276057E+04 3.000000E-06 + 5.387679E+03 2.500000E-05 + 1.749945E+03 1.470000E-04 + 6.696653E+02 6.560000E-04 + 2.841948E+02 2.351000E-03 + 1.296077E+02 7.004000E-03 + 6.225415E+01 1.613100E-02 + 3.092964E+01 2.777000E-02 + 1.575827E+01 2.756700E-02 + 8.094211E+00 -1.011500E-02 + 4.046921E+00 -8.100900E-02 + 1.967869E+00 -1.104090E-01 + 9.252950E-01 -7.173200E-02 + 3.529920E-01 1.879300E-01 + 1.273070E-01 5.646290E-01 +P 15 1.00 + 2.276057E+04 5.000000E-06 + 5.387679E+03 4.900000E-05 + 1.749945E+03 2.780000E-04 + 6.696653E+02 1.253000E-03 + 2.841948E+02 4.447000E-03 + 1.296077E+02 1.337000E-02 + 6.225415E+01 3.046900E-02 + 3.092964E+01 5.344700E-02 + 1.575827E+01 5.263900E-02 + 8.094211E+00 -1.688100E-02 + 4.046921E+00 -1.794480E-01 + 1.967869E+00 -2.095880E-01 + 9.252950E-01 -3.963300E-02 + 3.529920E-01 5.021300E-01 + 1.273070E-01 5.811110E-01 +P 1 1.00 + 4.435600E-02 1.0000000 +D 7 1.00 + 1.738970E+02 2.700000E-03 + 5.188690E+01 2.090900E-02 + 1.934190E+01 8.440800E-02 + 7.975720E+00 2.139990E-01 + 3.398230E+00 3.359800E-01 + 1.409320E+00 3.573010E-01 + 5.488580E-01 2.645780E-01 +D 7 1.00 + 1.738970E+02 -3.363000E-03 + 5.188690E+01 -2.607900E-02 + 1.934190E+01 -1.082310E-01 + 7.975720E+00 -2.822170E-01 + 3.398230E+00 -3.471900E-01 + 1.409320E+00 2.671100E-02 + 5.488580E-01 4.920470E-01 +D 1 1.00 + 1.901990E-01 1.0000000 +F 2 1.00 + 5.028600E+00 4.242800E-01 + 1.259400E+00 7.630250E-01 +S 1 1.00 + 1.572000E-02 1.0000000 +P 1 1.00 + 1.545000E-02 1.0000000 +D 1 1.00 + 6.591000E-02 1.0000000 +F 1 1.00 + 4.617200E-01 1.0000000 +**** +Zn 0 +S 19 1.00 + 5.820021E+06 8.549241E-06 + 8.715234E+05 6.647410E-05 + 1.983350E+05 3.494962E-04 + 5.617631E+04 1.473832E-03 + 1.832582E+04 5.338330E-03 + 6.614955E+03 1.712708E-02 + 2.579199E+03 4.894085E-02 + 1.068849E+03 1.217934E-01 + 4.651045E+02 2.476589E-01 + 2.104130E+02 3.582431E-01 + 9.761629E+01 2.798174E-01 + 4.438020E+01 6.857491E-02 + 2.142308E+01 -1.311092E-03 + 1.030891E+01 1.914001E-03 + 4.553645E+00 -8.759220E-04 + 2.132821E+00 3.740096E-04 + 9.296970E-01 -1.401399E-04 + 1.921470E-01 4.757132E-05 + 8.759500E-02 -3.642711E-05 +S 19 1.00 + 5.820021E+06 -2.640069E-06 + 8.715234E+05 -2.052720E-05 + 1.983350E+05 -1.079859E-04 + 5.617631E+04 -4.558577E-04 + 1.832582E+04 -1.657758E-03 + 6.614955E+03 -5.368492E-03 + 2.579199E+03 -1.571249E-02 + 1.068849E+03 -4.122558E-02 + 4.651045E+02 -9.406459E-02 + 2.104130E+02 -1.719954E-01 + 9.761629E+01 -1.958523E-01 + 4.438020E+01 4.532907E-02 + 2.142308E+01 5.244442E-01 + 1.030891E+01 5.006142E-01 + 4.553645E+00 8.945527E-02 + 2.132821E+00 -2.146262E-03 + 9.296970E-01 2.112113E-03 + 1.921470E-01 -4.133980E-04 + 8.759500E-02 3.209752E-04 +S 19 1.00 + 5.820021E+06 9.967103E-07 + 8.715234E+05 7.754163E-06 + 1.983350E+05 4.076019E-05 + 5.617631E+04 1.722811E-04 + 1.832582E+04 6.259370E-04 + 6.614955E+03 2.032855E-03 + 2.579199E+03 5.954646E-03 + 1.068849E+03 1.576640E-02 + 4.651045E+02 3.637638E-02 + 2.104130E+02 6.892343E-02 + 9.761629E+01 8.238093E-02 + 4.438020E+01 -2.011360E-02 + 2.142308E+01 -3.252526E-01 + 1.030891E+01 -4.602899E-01 + 4.553645E+00 1.635546E-01 + 2.132821E+00 7.297118E-01 + 9.296970E-01 3.769751E-01 + 1.921470E-01 1.433224E-02 + 8.759500E-02 -6.671210E-03 +S 19 1.00 + 5.820021E+06 1.995818E-07 + 8.715234E+05 1.552973E-06 + 1.983350E+05 8.161259E-06 + 5.617631E+04 3.450747E-05 + 1.832582E+04 1.253275E-04 + 6.614955E+03 4.072990E-04 + 2.579199E+03 1.192734E-03 + 1.068849E+03 3.163140E-03 + 4.651045E+02 7.303942E-03 + 2.104130E+02 1.391279E-02 + 9.761629E+01 1.670620E-02 + 4.438020E+01 -4.035586E-03 + 2.142308E+01 -6.968861E-02 + 1.030891E+01 -1.030105E-01 + 4.553645E+00 4.471442E-02 + 2.132821E+00 2.150027E-01 + 9.296970E-01 2.220163E-01 + 1.921470E-01 -3.114776E-01 + 8.759500E-02 -5.693429E-01 +S 19 1.00 + 5.820021E+06 -5.435910E-07 + 8.715234E+05 -4.336894E-06 + 1.983350E+05 -2.197572E-05 + 5.617631E+04 -9.747392E-05 + 1.832582E+04 -3.331615E-04 + 6.614955E+03 -1.166192E-03 + 2.579199E+03 -3.119308E-03 + 1.068849E+03 -9.239504E-03 + 4.651045E+02 -1.855471E-02 + 2.104130E+02 -4.281189E-02 + 9.761629E+01 -3.571095E-02 + 4.438020E+01 -1.638350E-02 + 2.142308E+01 2.644664E-01 + 1.030891E+01 2.086588E-01 + 4.553645E+00 -1.774382E-02 + 2.132821E+00 -1.353873E+00 + 9.296970E-01 8.182926E-01 + 1.921470E-01 1.695036E+00 + 8.759500E-02 -1.388656E+00 +S 1 1.00 + 3.770200E-02 1.0000000 +P 15 1.00 + 2.441198E+04 4.100000E-05 + 5.778518E+03 3.610000E-04 + 1.876862E+03 2.088000E-03 + 7.182361E+02 9.221000E-03 + 3.048327E+02 3.277300E-02 + 1.390453E+02 9.417900E-02 + 6.680417E+01 2.091320E-01 + 3.320699E+01 3.345690E-01 + 1.692816E+01 3.303590E-01 + 8.696229E+00 1.523470E-01 + 4.350510E+00 2.298400E-02 + 2.116523E+00 1.607000E-03 + 9.953870E-01 4.680000E-04 + 3.781120E-01 6.600000E-05 + 1.345790E-01 -2.000000E-06 +P 15 1.00 + 2.441198E+04 -1.500000E-05 + 5.778518E+03 -1.350000E-04 + 1.876862E+03 -7.820000E-04 + 7.182361E+02 -3.478000E-03 + 3.048327E+02 -1.252000E-02 + 1.390453E+02 -3.701600E-02 + 6.680417E+01 -8.555900E-02 + 3.320699E+01 -1.447180E-01 + 1.692816E+01 -1.434420E-01 + 8.696229E+00 4.359500E-02 + 4.350510E+00 3.488880E-01 + 2.116523E+00 4.538650E-01 + 9.953870E-01 2.685940E-01 + 3.781120E-01 3.886800E-02 + 1.345790E-01 -2.492000E-03 +P 15 1.00 + 2.441198E+04 3.000000E-06 + 5.778518E+03 2.500000E-05 + 1.876862E+03 1.440000E-04 + 7.182361E+02 6.450000E-04 + 3.048327E+02 2.311000E-03 + 1.390453E+02 6.898000E-03 + 6.680417E+01 1.588200E-02 + 3.320699E+01 2.735000E-02 + 1.692816E+01 2.662100E-02 + 8.696229E+00 -1.085800E-02 + 4.350510E+00 -7.985300E-02 + 2.116523E+00 -1.061270E-01 + 9.953870E-01 -6.888300E-02 + 3.781120E-01 1.843850E-01 + 1.345790E-01 5.617880E-01 +P 15 1.00 + 2.441198E+04 5.000000E-06 + 5.778518E+03 4.200000E-05 + 1.876862E+03 2.380000E-04 + 7.182361E+02 1.088000E-03 + 3.048327E+02 3.821000E-03 + 1.390453E+02 1.164400E-02 + 6.680417E+01 2.616700E-02 + 3.320699E+01 4.675000E-02 + 1.692816E+01 4.330900E-02 + 8.696229E+00 -1.342900E-02 + 4.350510E+00 -1.538970E-01 + 2.116523E+00 -1.674130E-01 + 9.953870E-01 -8.499500E-02 + 3.781120E-01 4.508130E-01 + 1.345790E-01 6.408690E-01 +P 1 1.00 + 4.628200E-02 1.0000000 +D 7 1.00 + 2.056177E+02 2.342000E-03 + 6.144981E+01 1.860600E-02 + 2.305689E+01 7.710200E-02 + 9.577739E+00 2.020260E-01 + 4.133734E+00 3.294540E-01 + 1.747518E+00 3.609760E-01 + 6.995600E-01 2.716570E-01 +D 7 1.00 + 2.056177E+02 3.279000E-03 + 6.144981E+01 2.617600E-02 + 2.305689E+01 1.113670E-01 + 9.577739E+00 3.045810E-01 + 4.133734E+00 3.862990E-01 + 1.747518E+00 -5.837500E-02 + 6.995600E-01 -5.388760E-01 +D 1 1.00 + 2.516080E-01 1.0000000 +F 2 1.00 + 5.734400E+00 4.311320E-01 + 1.461500E+00 7.546420E-01 +S 1 1.00 + 1.623000E-02 1.0000000 +P 1 1.00 + 1.592000E-02 1.0000000 +D 1 1.00 + 9.049000E-02 1.0000000 +F 1 1.00 + 5.486100E-01 1.0000000 +**** +Ga 0 +S 13 1.00 + 485130.0000000 0.0002068 + 72719.0000000 0.0016047 + 16552.0000000 0.0083402 + 4687.8000000 0.0340248 + 1529.1000000 0.1111699 + 551.8100000 0.2753930 + 215.1800000 0.4212628 + 88.1740000 0.2738906 + 27.1540000 0.0283720 + 11.5030000 -0.0062931 + 3.3018000 0.0020606 + 1.3314000 -0.0009269 + 0.1931600 0.0002273 +S 13 1.00 + 485130.0000000 -0.0000643 + 72719.0000000 -0.0004954 + 16552.0000000 -0.0026208 + 4687.8000000 -0.0106839 + 1529.1000000 -0.0374123 + 551.8100000 -0.1009636 + 215.1800000 -0.2145141 + 88.1740000 -0.1752297 + 27.1540000 0.4831599 + 11.5030000 0.6323677 + 3.3018000 0.0684942 + 1.3314000 -0.0118712 + 0.1931600 0.0026652 +S 13 1.00 + 485130.0000000 0.0000245 + 72719.0000000 0.0001895 + 16552.0000000 0.0009964 + 4687.8000000 0.0041082 + 1529.1000000 0.0142938 + 551.8100000 0.0398034 + 215.1800000 0.0855940 + 88.1740000 0.0796305 + 27.1540000 -0.2939107 + 11.5030000 -0.5263914 + 3.3018000 0.5864249 + 1.3314000 0.6726347 + 0.1931600 0.0276123 +S 13 1.00 + 485130.0000000 -0.0000057 + 72719.0000000 -0.0000440 + 16552.0000000 -0.0002305 + 4687.8000000 -0.0009544 + 1529.1000000 -0.0033055 + 551.8100000 -0.0092888 + 215.1800000 -0.0198644 + 88.1740000 -0.0190888 + 27.1540000 0.0732356 + 11.5030000 0.1341526 + 3.3018000 -0.1831929 + 1.3314000 -0.3571308 + 0.1931600 0.6246013 +S 1 1.00 + 0.0708950 1.0000000 +P 10 1.00 + 3248.6000000 0.0015260 + 769.9700000 0.0127486 + 248.2000000 0.0633742 + 93.3640000 0.2065775 + 38.2510000 0.4092963 + 16.4220000 0.3919183 + 6.7918000 0.1029441 + 2.8336000 -0.0007203 + 1.1062000 0.0020950 + 0.2225000 -0.0003290 +P 10 1.00 + 3248.6000000 -0.0005803 + 769.9700000 -0.0048647 + 248.2000000 -0.0248394 + 93.3640000 -0.0841759 + 38.2510000 -0.1800885 + 16.4220000 -0.1585555 + 6.7918000 0.2355376 + 2.8336000 0.5820587 + 1.1062000 0.3366619 + 0.2225000 0.0171912 +P 10 1.00 + 3248.6000000 0.0000950 + 769.9700000 0.0007832 + 248.2000000 0.0040855 + 93.3640000 0.0135987 + 38.2510000 0.0302695 + 16.4220000 0.0241790 + 6.7918000 -0.0423777 + 2.8336000 -0.1265661 + 1.1062000 -0.0499444 + 0.2225000 0.4494199 +P 1 1.00 + 0.0617720 1.0000000 +D 5 1.00 + 65.3370000 0.0273825 + 18.4970000 0.1510805 + 6.3150000 0.3749217 + 2.1635000 0.4750799 + 0.6667500 0.2982750 +D 1 1.00 + 0.1884000 1.0000000 +S 1 1.00 + 0.0243480 1.0000000 +P 1 1.00 + 0.0151640 1.0000000 +D 1 1.00 + 0.0537000 1.0000000 +**** +Ge 0 +S 13 1.00 + 521800.0000000 0.0002045 + 78214.0000000 0.0015868 + 17803.0000000 0.0082480 + 5041.9000000 0.0336649 + 1644.5000000 0.1101249 + 593.4300000 0.2735607 + 231.3600000 0.4210670 + 94.7620000 0.2766791 + 29.2740000 0.0292180 + 12.4500000 -0.0065903 + 3.6463000 0.0022430 + 1.5025000 -0.0010382 + 0.2450300 0.0002695 +S 13 1.00 + 521800.0000000 -0.0000638 + 78214.0000000 -0.0004916 + 17803.0000000 -0.0026002 + 5041.9000000 -0.0106080 + 1644.5000000 -0.0371602 + 593.4300000 -0.1005790 + 231.3600000 -0.2143977 + 94.7620000 -0.1782617 + 29.2740000 0.4777404 + 12.4500000 0.6355983 + 3.6463000 0.0722174 + 1.5025000 -0.0127265 + 0.2450300 0.0029608 +S 13 1.00 + 521800.0000000 0.0000246 + 78214.0000000 0.0001900 + 17803.0000000 0.0009993 + 5041.9000000 0.0041200 + 1644.5000000 0.0143557 + 593.4300000 0.0400375 + 231.3600000 0.0865794 + 94.7620000 0.0815861 + 29.2740000 -0.2934770 + 12.4500000 -0.5367983 + 3.6463000 0.5637985 + 1.5025000 0.6947182 + 0.2450300 0.0315730 +S 13 1.00 + 521800.0000000 -0.0000063 + 78214.0000000 -0.0000486 + 17803.0000000 -0.0002553 + 5041.9000000 -0.0010560 + 1644.5000000 -0.0036674 + 593.4300000 -0.0103053 + 231.3600000 -0.0222200 + 94.7620000 -0.0215275 + 29.2740000 0.0806752 + 12.4500000 0.1524958 + 3.6463000 -0.1980528 + 1.5025000 -0.4073954 + 0.2450300 0.6477288 +S 1 1.00 + 0.0915940 1.0000000 +P 10 1.00 + 3568.1000000 0.0014591 + 845.7200000 0.0122176 + 272.7400000 0.0610490 + 102.6800000 0.2008039 + 42.1480000 0.4038942 + 18.1490000 0.3970027 + 7.5934000 0.1105481 + 3.1964000 0.0000768 + 1.2743000 0.0021263 + 0.2825800 -0.0003744 +P 10 1.00 + 3568.1000000 -0.0005630 + 845.7200000 -0.0047354 + 272.7400000 -0.0242643 + 102.6800000 -0.0830900 + 42.1480000 -0.1800247 + 18.1490000 -0.1663295 + 7.5934000 0.2193717 + 3.1964000 0.5820239 + 1.2743000 0.3477720 + 0.2825800 0.0192455 +P 10 1.00 + 3568.1000000 0.0001115 + 845.7200000 0.0009212 + 272.7400000 0.0048273 + 102.6800000 0.0162272 + 42.1480000 0.0366354 + 18.1490000 0.0307867 + 7.5934000 -0.0480643 + 3.1964000 -0.1559804 + 1.2743000 -0.0632370 + 0.2825800 0.5040819 +P 1 1.00 + 0.0840900 1.0000000 +D 5 1.00 + 74.7620000 0.0257684 + 21.3020000 0.1454421 + 7.3436000 0.3713721 + 2.5651000 0.4800002 + 0.8197000 0.2896800 +D 1 1.00 + 0.2470000 1.0000000 +S 1 1.00 + 0.0339610 1.0000000 +P 1 1.00 + 0.0239450 1.0000000 +D 1 1.00 + 0.0771000 1.0000000 +**** +As 0 +S 13 1.00 + 559583.7900000 0.0002024 + 83879.3300000 0.0015709 + 19092.6680000 0.0081662 + 5407.3925000 0.0333399 + 1763.7559000 0.1091726 + 636.4567200 0.2718853 + 248.0884300 0.4208509 + 101.5785100 0.2792257 + 31.4755130 0.0300301 + 13.4372820 -0.0068804 + 4.0086900 0.0024240 + 1.6849290 -0.0011491 + 0.3000190 0.0003095 +S 13 1.00 + 559583.7900000 -0.0000634 + 83879.3300000 -0.0004883 + 19092.6680000 -0.0025821 + 5407.3925000 -0.0105402 + 1763.7559000 -0.0369325 + 636.4567200 -0.1002355 + 248.0884300 -0.2142948 + 101.5785100 -0.1810526 + 31.4755130 0.4725410 + 13.4372820 0.6386194 + 4.0086900 0.0758107 + 1.6849290 -0.0135278 + 0.3000190 0.0031970 +S 13 1.00 + 559583.7900000 0.0000246 + 83879.3300000 0.0001907 + 19092.6680000 0.0010031 + 5407.3925000 0.0041353 + 1763.7559000 0.0144259 + 636.4567200 0.0402962 + 248.0884300 0.0875670 + 101.5785100 0.0835178 + 31.4755130 -0.2932935 + 13.4372820 -0.5470520 + 4.0086900 0.5438738 + 1.6849290 0.7143591 + 0.3000190 0.0353443 +S 13 1.00 + 559583.7900000 -0.0000068 + 83879.3300000 -0.0000525 + 19092.6680000 -0.0002756 + 5407.3925000 -0.0011389 + 1763.7559000 -0.0039646 + 636.4567200 -0.0111423 + 248.0884300 -0.0241991 + 101.5785100 -0.0236339 + 31.4755130 0.0866317 + 13.4372820 0.1685839 + 4.0086900 -0.2091425 + 1.6849290 -0.4500918 + 0.3000190 0.6603978 +S 1 1.00 + 0.1135870 1.0000000 +P 10 1.00 + 3886.3564000 0.0014097 + 921.2020100 0.0118277 + 297.1931900 0.0593280 + 111.9750800 0.1965115 + 46.0346210 0.3997891 + 19.8741940 0.4004653 + 8.3860880 0.1164196 + 3.5587280 0.0006918 + 1.4472820 0.0021633 + 0.3477790 -0.0004150 +P 10 1.00 + 3886.3564000 -0.0005519 + 921.2020100 -0.0046550 + 297.1931900 -0.0239176 + 111.9750800 -0.0825627 + 46.0346210 -0.1806791 + 19.8741940 -0.1724848 + 8.3860880 0.2086700 + 3.5587280 0.5823622 + 1.4472820 0.3537465 + 0.3477790 0.0206439 +P 10 1.00 + 3886.3564000 0.0001236 + 921.2020100 0.0010240 + 297.1931900 0.0053805 + 111.9750800 0.0182443 + 46.0346210 0.0415979 + 19.8741940 0.0362998 + 8.3860880 -0.0523569 + 3.5587280 -0.1791667 + 1.4472820 -0.0740477 + 0.3477790 0.5358094 +P 1 1.00 + 0.1076990 1.0000000 +D 5 1.00 + 84.4242340 0.0245288 + 24.1815890 0.1411340 + 8.4017770 0.3687579 + 2.9805020 0.4840626 + 0.9790030 0.2824434 +D 1 1.00 + 0.3098000 1.0000000 +S 1 1.00 + 0.0411520 1.0000000 +P 1 1.00 + 0.0312680 1.0000000 +D 1 1.00 + 0.1078000 1.0000000 +**** +Se 0 +S 13 1.00 + 598990.0000000 0.0002004 + 89783.0000000 0.0015554 + 20435.0000000 0.0080872 + 5786.9000000 0.0330344 + 1887.3000000 0.1082924 + 680.9700000 0.2703361 + 265.3900000 0.4206236 + 108.6300000 0.2815922 + 33.7600000 0.0308110 + 14.4650000 -0.0071617 + 4.3890000 0.0026022 + 1.8783000 -0.0012583 + 0.3585900 0.0003465 +S 13 1.00 + 598990.0000000 -0.0000629 + 89783.0000000 -0.0004850 + 20435.0000000 -0.0025644 + 5786.9000000 -0.0104761 + 1887.3000000 -0.0367223 + 680.9700000 -0.0999225 + 265.3900000 -0.2141973 + 108.6300000 -0.1836593 + 33.7600000 0.4675454 + 14.4650000 0.6414740 + 4.3890000 0.0792569 + 1.8783000 -0.0142697 + 0.3585900 0.0033792 +S 13 1.00 + 598990.0000000 0.0000247 + 89783.0000000 0.0001913 + 20435.0000000 0.0010068 + 5786.9000000 0.0041514 + 1887.3000000 0.0144991 + 680.9700000 0.0405658 + 265.3900000 0.0885364 + 108.6300000 0.0854212 + 33.7600000 -0.2932581 + 14.4650000 -0.5570727 + 4.3890000 0.5261436 + 1.8783000 0.7320371 + 0.3585900 0.0388246 +S 13 1.00 + 598990.0000000 -0.0000072 + 89783.0000000 -0.0000559 + 20435.0000000 -0.0002938 + 5786.9000000 -0.0012136 + 1887.3000000 -0.0042340 + 680.9700000 -0.0119035 + 265.3900000 -0.0260206 + 108.6300000 -0.0256148 + 33.7600000 0.0919427 + 14.4650000 0.1838700 + 4.3890000 -0.2188461 + 1.8783000 -0.4896524 + 0.3585900 0.6775818 +S 1 1.00 + 0.1364900 1.0000000 +P 10 1.00 + 4135.6000000 0.0014127 + 980.3400000 0.0118588 + 316.3500000 0.0595153 + 119.2500000 0.1972201 + 49.0680000 0.4007439 + 21.2120000 0.3994740 + 8.9462000 0.1153364 + 3.8236000 0.0002219 + 1.5883000 0.0022838 + 0.4096900 -0.0004756 +P 10 1.00 + 4135.6000000 -0.0005610 + 980.3400000 -0.0047340 + 316.3500000 -0.0243504 + 119.2500000 -0.0841071 + 49.0680000 -0.1841384 + 21.2120000 -0.1735004 + 8.9462000 0.2167263 + 3.8236000 0.5850099 + 1.5883000 0.3416816 + 0.4096900 0.0199125 +P 10 1.00 + 4135.6000000 0.0001366 + 980.3400000 0.0011308 + 316.3500000 0.0059581 + 119.2500000 0.0201866 + 49.0680000 0.0461939 + 21.2120000 0.0394050 + 8.9462000 -0.0592846 + 3.8236000 -0.2014663 + 1.5883000 -0.0687821 + 0.4096900 0.5595944 +P 1 1.00 + 0.1245900 1.0000000 +D 5 1.00 + 94.4720000 0.0234982 + 27.1800000 0.1375183 + 9.5068000 0.3664824 + 3.4168000 0.4874717 + 1.1479000 0.2765769 +D 1 1.00 + 0.3682000 1.0000000 +S 1 1.00 + 0.0487470 1.0000000 +P 1 1.00 + 0.0354920 1.0000000 +D 1 1.00 + 0.1283000 1.0000000 +**** +Br 0 +S 13 1.00 + 640100.0000000 0.0001984 + 95938.0000000 0.0015400 + 21833.0000000 0.0080096 + 6181.9000000 0.0327341 + 2015.7000000 0.1074480 + 727.1000000 0.2688946 + 283.2800000 0.4204411 + 115.9100000 0.2838041 + 36.1240000 0.0315455 + 15.5320000 -0.0074268 + 4.7857000 0.0027728 + 2.0817000 -0.0013635 + 0.4202800 0.0003812 +S 13 1.00 + 640100.0000000 -0.0000625 + 95938.0000000 -0.0004816 + 21833.0000000 -0.0025466 + 6181.9000000 -0.0104112 + 2015.7000000 -0.0365179 + 727.1000000 -0.0996295 + 283.2800000 -0.2141310 + 115.9100000 -0.1860911 + 36.1240000 0.4628261 + 15.5320000 0.6441141 + 4.7857000 0.0825502 + 2.0817000 -0.0149694 + 0.4202800 0.0035288 +S 13 1.00 + 640100.0000000 0.0000248 + 95938.0000000 0.0001919 + 21833.0000000 0.0010100 + 6181.9000000 0.0041659 + 2015.7000000 0.0145683 + 727.1000000 0.0408345 + 283.2800000 0.0894859 + 115.9100000 0.0872786 + 36.1240000 -0.2933644 + 15.5320000 -0.5667109 + 4.7857000 0.5105658 + 2.0817000 0.7477214 + 0.4202800 0.0421512 +S 13 1.00 + 640100.0000000 -0.0000076 + 95938.0000000 -0.0000588 + 21833.0000000 -0.0003092 + 6181.9000000 -0.0012766 + 2015.7000000 -0.0044634 + 727.1000000 -0.0125575 + 283.2800000 -0.0276145 + 115.9100000 -0.0273945 + 36.1240000 0.0964094 + 15.5320000 0.1976871 + 4.7857000 -0.2266693 + 2.0817000 -0.5241165 + 0.4202800 0.6889865 +S 1 1.00 + 0.1606900 1.0000000 +P 10 1.00 + 4340.8000000 0.0014448 + 1028.9000000 0.0121288 + 332.0200000 0.0608077 + 125.1600000 0.2009358 + 51.5110000 0.4047419 + 22.2810000 0.3957151 + 9.3417000 0.1102213 + 4.0132000 -0.0009090 + 1.7002000 0.0024832 + 0.4719400 -0.0005744 +P 10 1.00 + 4340.8000000 -0.0005819 + 1028.9000000 -0.0049065 + 332.0200000 -0.0252514 + 125.1600000 -0.0869445 + 51.5110000 -0.1893422 + 22.2810000 -0.1710882 + 9.3417000 0.2368755 + 4.0132000 0.5898400 + 1.7002000 0.3171944 + 0.4719400 0.0179833 +P 10 1.00 + 4340.8000000 0.0001518 + 1028.9000000 0.0012563 + 332.0200000 0.0066224 + 125.1600000 0.0223816 + 51.5110000 0.0509717 + 22.2810000 0.0414009 + 9.3417000 -0.0703970 + 4.0132000 -0.2232540 + 1.7002000 -0.0564179 + 0.4719400 0.5808079 +P 1 1.00 + 0.1442100 1.0000000 +D 5 1.00 + 104.8300000 0.0226583 + 30.2720000 0.1345895 + 10.6490000 0.3647181 + 3.8696000 0.4904196 + 1.3239000 0.2713885 +D 1 1.00 + 0.4098000 1.0000000 +S 1 1.00 + 0.0569460 1.0000000 +P 1 1.00 + 0.0410490 1.0000000 +D 1 1.00 + 0.1719000 1.0000000 +**** +Kr 0 +S 13 1.00 + 681358.8200000 0.0001969 + 102126.4800000 0.0015286 + 23243.7100000 0.0079500 + 6582.0073000 0.0324938 + 2146.4286000 0.1067240 + 774.3378200 0.2675701 + 301.6702000 0.4201851 + 123.4118400 0.2858015 + 38.5675510 0.0322461 + 16.6373790 -0.0076828 + 5.1987950 0.0029393 + 2.2948140 -0.0014662 + 0.4852110 0.0004144 +S 13 1.00 + 681358.8200000 -0.0000622 + 102126.4800000 -0.0004794 + 23243.7100000 -0.0025341 + 6582.0073000 -0.0103636 + 2146.4286000 -0.0363516 + 774.3378200 -0.0993737 + 301.6702000 -0.2140610 + 123.4118400 -0.1883192 + 38.5675510 0.4583816 + 16.6373790 0.6465664 + 5.1987950 0.0856579 + 2.2948140 -0.0156123 + 0.4852110 0.0036490 +S 13 1.00 + 681358.8200000 0.0000249 + 102126.4800000 0.0001928 + 23243.7100000 0.0010149 + 6582.0073000 0.0041857 + 2146.4286000 0.0146459 + 774.3378200 0.0411070 + 301.6702000 0.0903955 + 123.4118400 0.0890623 + 38.5675510 -0.2935718 + 16.6373790 -0.5759698 + 5.1987950 0.4968578 + 2.2948140 0.7616895 + 0.4852110 0.0453267 +S 13 1.00 + 681358.8200000 -0.0000079 + 102126.4800000 -0.0000614 + 23243.7100000 -0.0003230 + 6582.0073000 -0.0013330 + 2146.4286000 -0.0046672 + 774.3378200 -0.0131352 + 301.6702000 -0.0290342 + 123.4118400 -0.0290173 + 38.5675510 0.1002664 + 16.6373790 0.2103818 + 5.1987950 -0.2332471 + 2.2948140 -0.5546497 + 0.4852110 0.6969522 +S 1 1.00 + 0.1862700 1.0000000 +P 10 1.00 + 4474.2699000 0.0015195 + 1060.5790000 0.0127424 + 342.2081200 0.0636465 + 128.9984200 0.2085635 + 53.0872220 0.4122423 + 22.9594250 0.3878103 + 9.5073000 0.1003820 + 4.0830550 -0.0025078 + 1.7504460 0.0027139 + 0.5291900 -0.0006977 +P 10 1.00 + 4474.2699000 -0.0006208 + 1060.5790000 -0.0052212 + 342.2081200 -0.0268463 + 128.9984200 -0.0915823 + 53.0872220 -0.1968164 + 22.9594250 -0.1634750 + 9.5073000 0.2738204 + 4.0830550 0.5981592 + 1.7504460 0.2750453 + 0.5291900 0.0127706 +P 10 1.00 + 4474.2699000 0.0001701 + 1060.5790000 0.0014064 + 342.2081200 0.0073963 + 128.9984200 0.0248254 + 53.0872220 0.0557155 + 22.9594250 0.0412132 + 9.5073000 -0.0876057 + 4.0830550 -0.2440586 + 1.7504460 -0.0295007 + 0.5291900 0.6012295 +P 1 1.00 + 0.1643690 1.0000000 +D 5 1.00 + 115.5253200 0.0219557 + 33.4652460 0.1321620 + 11.8304590 0.3633484 + 4.3397710 0.4929582 + 1.5075240 0.2667560 +D 1 1.00 + 0.5030000 1.0000000 +S 1 1.00 + 0.0651450 1.0000000 +P 1 1.00 + 0.0466060 1.0000000 +D 1 1.00 + 0.2155000 1.0000000 +**** diff --git a/basis/cc-pvdz.gbf b/basis/cc-pvdz.gbf new file mode 100644 index 0000000..7156814 --- /dev/null +++ b/basis/cc-pvdz.gbf @@ -0,0 +1,3391 @@ +spherical + +! +! cc-pVDZ EMSL Basis Set Exchange Library 5/17/11 11:50 AM +! Elements References +! -------- ---------- +! H : T.H. Dunning, Jr. J. Chem. Phys. 90, 1007 (1989). +! He : D.E. Woon and T.H. Dunning, Jr. J. Chem. Phys. 100, 2975 (1994). +! Li - Ne: T.H. Dunning, Jr. J. Chem. Phys. 90, 1007 (1989). +! Na - Mg: D.E. Woon and T.H. Dunning, Jr. (to be published) +! Al - Ar: D.E. Woon and T.H. Dunning, Jr. J. Chem. Phys. 98, 1358 (1993). +! Sc - Zn: N.B. Balabanov and K.A. Peterson, J. Chem. Phys. 123, 064107 (2005), +! N.B. Balabanov and K.A. Peterson, J. Chem. Phys. 125, 074110 (2006) +! Ca : J. Koput and K.A. Peterson, J. Phys. Chem. A, 106, 9595 (2002). +! + + + +**** +H 0 +S 3 1.00 + 13.0100000 0.0196850 + 1.9620000 0.1379770 + 0.4446000 0.4781480 +S 1 1.00 + 0.1220000 1.0000000 +P 1 1.00 + 0.7270000 1.0000000 +**** +He 0 +S 3 1.00 + 38.3600000 0.0238090 + 5.7700000 0.1548910 + 1.2400000 0.4699870 +S 1 1.00 + 0.2976000 1.0000000 +P 1 1.00 + 1.2750000 1.0000000 +**** +Li 0 +S 8 1.00 + 1469.0000000 0.0007660 + 220.5000000 0.0058920 + 50.2600000 0.0296710 + 14.2400000 0.1091800 + 4.5810000 0.2827890 + 1.5800000 0.4531230 + 0.5640000 0.2747740 + 0.0734500 0.0097510 +S 8 1.00 + 1469.0000000 -0.0001200 + 220.5000000 -0.0009230 + 50.2600000 -0.0046890 + 14.2400000 -0.0176820 + 4.5810000 -0.0489020 + 1.5800000 -0.0960090 + 0.5640000 -0.1363800 + 0.0734500 0.5751020 +S 1 1.00 + 0.0280500 1.0000000 +P 3 1.00 + 1.5340000 0.0227840 + 0.2749000 0.1391070 + 0.0736200 0.5003750 +P 1 1.00 + 0.0240300 1.0000000 +D 1 1.00 + 0.1239000 1.0000000 +**** +Be 0 +S 8 1.00 + 2940.0000000 0.0006800 + 441.2000000 0.0052360 + 100.5000000 0.0266060 + 28.4300000 0.0999930 + 9.1690000 0.2697020 + 3.1960000 0.4514690 + 1.1590000 0.2950740 + 0.1811000 0.0125870 +S 8 1.00 + 2940.0000000 -0.0001230 + 441.2000000 -0.0009660 + 100.5000000 -0.0048310 + 28.4300000 -0.0193140 + 9.1690000 -0.0532800 + 3.1960000 -0.1207230 + 1.1590000 -0.1334350 + 0.1811000 0.5307670 +S 1 1.00 + 0.0589000 1.0000000 +P 3 1.00 + 3.6190000 0.0291110 + 0.7110000 0.1693650 + 0.1951000 0.5134580 +P 1 1.00 + 0.0601800 1.0000000 +D 1 1.00 + 0.2380000 1.0000000 +**** +B 0 +S 8 1.00 + 4570.0000000 0.0006960 + 685.9000000 0.0053530 + 156.5000000 0.0271340 + 44.4700000 0.1013800 + 14.4800000 0.2720550 + 5.1310000 0.4484030 + 1.8980000 0.2901230 + 0.3329000 0.0143220 +S 8 1.00 + 4570.0000000 -0.0001390 + 685.9000000 -0.0010970 + 156.5000000 -0.0054440 + 44.4700000 -0.0219160 + 14.4800000 -0.0597510 + 5.1310000 -0.1387320 + 1.8980000 -0.1314820 + 0.3329000 0.5395260 +S 1 1.00 + 0.1043000 1.0000000 +P 3 1.00 + 6.0010000 0.0354810 + 1.2410000 0.1980720 + 0.3364000 0.5052300 +P 1 1.00 + 0.0953800 1.0000000 +D 1 1.00 + 0.3430000 1.0000000 +**** +C 0 +S 8 1.00 + 6665.0000000 0.0006920 + 1000.0000000 0.0053290 + 228.0000000 0.0270770 + 64.7100000 0.1017180 + 21.0600000 0.2747400 + 7.4950000 0.4485640 + 2.7970000 0.2850740 + 0.5215000 0.0152040 +S 8 1.00 + 6665.0000000 -0.0001460 + 1000.0000000 -0.0011540 + 228.0000000 -0.0057250 + 64.7100000 -0.0233120 + 21.0600000 -0.0639550 + 7.4950000 -0.1499810 + 2.7970000 -0.1272620 + 0.5215000 0.5445290 +S 1 1.00 + 0.1596000 1.0000000 +P 3 1.00 + 9.4390000 0.0381090 + 2.0020000 0.2094800 + 0.5456000 0.5085570 +P 1 1.00 + 0.1517000 1.0000000 +D 1 1.00 + 0.5500000 1.0000000 +**** +N 0 +S 8 1.00 + 9046.0000000 0.0007000 + 1357.0000000 0.0053890 + 309.3000000 0.0274060 + 87.7300000 0.1032070 + 28.5600000 0.2787230 + 10.2100000 0.4485400 + 3.8380000 0.2782380 + 0.7466000 0.0154400 +S 8 1.00 + 9046.0000000 -0.0001530 + 1357.0000000 -0.0012080 + 309.3000000 -0.0059920 + 87.7300000 -0.0245440 + 28.5600000 -0.0674590 + 10.2100000 -0.1580780 + 3.8380000 -0.1218310 + 0.7466000 0.5490030 +S 1 1.00 + 0.2248000 1.0000000 +P 3 1.00 + 13.5500000 0.0399190 + 2.9170000 0.2171690 + 0.7973000 0.5103190 +P 1 1.00 + 0.2185000 1.0000000 +D 1 1.00 + 0.8170000 1.0000000 +**** +O 0 +S 8 1.00 + 11720.0000000 0.0007100 + 1759.0000000 0.0054700 + 400.8000000 0.0278370 + 113.7000000 0.1048000 + 37.0300000 0.2830620 + 13.2700000 0.4487190 + 5.0250000 0.2709520 + 1.0130000 0.0154580 +S 8 1.00 + 11720.0000000 -0.0001600 + 1759.0000000 -0.0012630 + 400.8000000 -0.0062670 + 113.7000000 -0.0257160 + 37.0300000 -0.0709240 + 13.2700000 -0.1654110 + 5.0250000 -0.1169550 + 1.0130000 0.5573680 +S 1 1.00 + 0.3023000 1.0000000 +P 3 1.00 + 17.7000000 0.0430180 + 3.8540000 0.2289130 + 1.0460000 0.5087280 +P 1 1.00 + 0.2753000 1.0000000 +D 1 1.00 + 1.1850000 1.0000000 +**** +F 0 +S 8 1.00 + 14710.0000000 0.0007210 + 2207.0000000 0.0055530 + 502.8000000 0.0282670 + 142.6000000 0.1064440 + 46.4700000 0.2868140 + 16.7000000 0.4486410 + 6.3560000 0.2647610 + 1.3160000 0.0153330 +S 8 1.00 + 14710.0000000 -0.0001650 + 2207.0000000 -0.0013080 + 502.8000000 -0.0064950 + 142.6000000 -0.0266910 + 46.4700000 -0.0736900 + 16.7000000 -0.1707760 + 6.3560000 -0.1123270 + 1.3160000 0.5628140 +S 1 1.00 + 0.3897000 1.0000000 +P 3 1.00 + 22.6700000 0.0448780 + 4.9770000 0.2357180 + 1.3470000 0.5085210 +P 1 1.00 + 0.3471000 1.0000000 +D 1 1.00 + 1.6400000 1.0000000 +**** +Ne 0 +S 8 1.00 + 17880.0000000 0.0007380 + 2683.0000000 0.0056770 + 611.5000000 0.0288830 + 173.5000000 0.1085400 + 56.6400000 0.2909070 + 20.4200000 0.4483240 + 7.8100000 0.2580260 + 1.6530000 0.0150630 +S 8 1.00 + 17880.0000000 -0.0001720 + 2683.0000000 -0.0013570 + 611.5000000 -0.0067370 + 173.5000000 -0.0276630 + 56.6400000 -0.0762080 + 20.4200000 -0.1752270 + 7.8100000 -0.1070380 + 1.6530000 0.5670500 +S 1 1.00 + 0.4869000 1.0000000 +P 3 1.00 + 28.3900000 0.0460870 + 6.2700000 0.2401810 + 1.6950000 0.5087440 +P 1 1.00 + 0.4317000 1.0000000 +D 1 1.00 + 2.2020000 1.0000000 +**** +Na 0 +S 11 1.00 + 31700.0000000 0.458878D-03 + 4755.0000000 0.355070D-02 + 1082.0000000 0.182618D-01 + 306.4000000 0.716650D-01 + 99.5300000 0.212346D+00 + 35.4200000 0.416203D+00 + 13.3000000 0.373020D+00 + 4.3920000 0.625054D-01 + 1.6760000 -0.624532D-02 + 0.5889000 0.243374D-02 + 0.0564000 -0.442381D-03 +S 11 1.00 + 31700.0000000 -0.112162D-03 + 4755.0000000 -0.868512D-03 + 1082.0000000 -0.451330D-02 + 306.4000000 -0.181436D-01 + 99.5300000 -0.580799D-01 + 35.4200000 -0.137653D+00 + 13.3000000 -0.193908D+00 + 4.3920000 0.858009D-01 + 1.6760000 0.604419D+00 + 0.5889000 0.441719D+00 + 0.0564000 0.130547D-01 +S 11 1.00 + 31700.0000000 0.170160D-04 + 4755.0000000 0.130693D-03 + 1082.0000000 0.687784D-03 + 306.4000000 0.272359D-02 + 99.5300000 0.895529D-02 + 35.4200000 0.207832D-01 + 13.3000000 0.319380D-01 + 4.3920000 -0.191368D-01 + 1.6760000 -0.102595D+00 + 0.5889000 -0.198945D+00 + 0.0564000 0.655952D+00 +S 1 1.00 + 0.0230700 1.0000000 +P 7 1.00 + 138.1000000 0.579641D-02 + 32.2400000 0.415756D-01 + 9.9850000 0.162873D+00 + 3.4840000 0.359401D+00 + 1.2310000 0.449988D+00 + 0.4177000 0.227507D+00 + 0.0651300 0.808247D-02 +P 7 1.00 + 138.1000000 -0.581531D-03 + 32.2400000 -0.407306D-02 + 9.9850000 -0.167937D-01 + 3.4840000 -0.353268D-01 + 1.2310000 -0.521971D-01 + 0.4177000 -0.168359D-01 + 0.0651300 0.434613D+00 +P 1 1.00 + 0.0205300 1.0000000 +D 1 1.00 + 0.0973000 1.0000000 +**** +Mg 0 +S 11 1.00 + 47390.0000000 0.346023D-03 + 7108.0000000 0.268077D-02 + 1618.0000000 0.138367D-01 + 458.4000000 0.551767D-01 + 149.3000000 0.169660D+00 + 53.5900000 0.364703D+00 + 20.7000000 0.406856D+00 + 8.3840000 0.135089D+00 + 2.5420000 0.490884D-02 + 0.8787000 0.286460D-03 + 0.1077000 0.264590D-04 +S 11 1.00 + 47390.0000000 -0.877839D-04 + 7108.0000000 -0.674725D-03 + 1618.0000000 -0.355603D-02 + 458.4000000 -0.142154D-01 + 149.3000000 -0.476748D-01 + 53.5900000 -0.114892D+00 + 20.7000000 -0.200676D+00 + 8.3840000 -0.341224D-01 + 2.5420000 0.570454D+00 + 0.8787000 0.542309D+00 + 0.1077000 0.218128D-01 +S 11 1.00 + 47390.0000000 0.169628D-04 + 7108.0000000 0.129865D-03 + 1618.0000000 0.688831D-03 + 458.4000000 0.273533D-02 + 149.3000000 0.931224D-02 + 53.5900000 0.223265D-01 + 20.7000000 0.411195D-01 + 8.3840000 0.545642D-02 + 2.5420000 -0.134012D+00 + 0.8787000 -0.256176D+00 + 0.1077000 0.605856D+00 +S 1 1.00 + 0.0399900 1.0000000 +P 7 1.00 + 179.9000000 0.538161D-02 + 42.1400000 0.392418D-01 + 13.1300000 0.157445D+00 + 4.6280000 0.358535D+00 + 1.6700000 0.457226D+00 + 0.5857000 0.215918D+00 + 0.1311000 0.664948D-02 +P 7 1.00 + 179.9000000 -0.865948D-03 + 42.1400000 -0.615978D-02 + 13.1300000 -0.261519D-01 + 4.6280000 -0.570647D-01 + 1.6700000 -0.873906D-01 + 0.5857000 -0.122990D-01 + 0.1311000 0.502085D+00 +P 1 1.00 + 0.0411200 1.0000000 +D 1 1.00 + 0.1870000 1.0000000 +**** +Al 0 +S 11 1.00 + 64150.0000000 0.290250D-03 + 9617.0000000 0.225064D-02 + 2189.0000000 0.116459D-01 + 620.5000000 0.467377D-01 + 202.7000000 0.146299D+00 + 73.1500000 0.330283D+00 + 28.5500000 0.415861D+00 + 11.7700000 0.189253D+00 + 3.3000000 0.115889D-01 + 1.1730000 -0.128385D-02 + 0.1752000 0.425883D-03 +S 11 1.00 + 64150.0000000 -0.758048D-04 + 9617.0000000 -0.581791D-03 + 2189.0000000 -0.308113D-02 + 620.5000000 -0.123112D-01 + 202.7000000 -0.419781D-01 + 73.1500000 -0.103371D+00 + 28.5500000 -0.196308D+00 + 11.7700000 -0.830002D-01 + 3.3000000 0.541040D+00 + 1.1730000 0.578796D+00 + 0.1752000 0.288147D-01 +S 11 1.00 + 64150.0000000 0.175078D-04 + 9617.0000000 0.134208D-03 + 2189.0000000 0.712442D-03 + 620.5000000 0.284330D-02 + 202.7000000 0.976842D-02 + 73.1500000 0.241850D-01 + 28.5500000 0.474993D-01 + 11.7700000 0.203621D-01 + 3.3000000 -0.158788D+00 + 1.1730000 -0.311694D+00 + 0.1752000 0.620147D+00 +S 1 1.00 + 0.0647300 1.0000000 +P 7 1.00 + 258.8000000 0.406847D-02 + 60.8900000 0.306815D-01 + 19.1400000 0.129149D+00 + 6.8810000 0.320831D+00 + 2.5740000 0.453815D+00 + 0.9572000 0.275066D+00 + 0.2099000 0.190807D-01 +P 7 1.00 + 258.8000000 -0.748053D-03 + 60.8900000 -0.545796D-02 + 19.1400000 -0.245371D-01 + 6.8810000 -0.582138D-01 + 2.5740000 -0.983756D-01 + 0.9572000 -0.260064D-01 + 0.2099000 0.464020D+00 +P 1 1.00 + 0.0598600 1.0000000 +D 1 1.00 + 0.1890000 1.0000000 +**** +Si 0 +S 11 1.00 + 78860.0000000 0.270443D-03 + 11820.0000000 0.209717D-02 + 2692.0000000 0.108506D-01 + 763.4000000 0.436754D-01 + 249.6000000 0.137653D+00 + 90.2800000 0.316644D+00 + 35.2900000 0.418581D+00 + 14.5100000 0.210212D+00 + 4.0530000 0.144952D-01 + 1.4820000 -0.203590D-02 + 0.2517000 0.624186D-03 +S 11 1.00 + 78860.0000000 -0.723177D-04 + 11820.0000000 -0.555116D-03 + 2692.0000000 -0.293805D-02 + 763.4000000 -0.117687D-01 + 249.6000000 -0.402907D-01 + 90.2800000 -0.100609D+00 + 35.2900000 -0.196528D+00 + 14.5100000 -0.102382D+00 + 4.0530000 0.527190D+00 + 1.4820000 0.593251D+00 + 0.2517000 0.332652D-01 +S 11 1.00 + 78860.0000000 0.185113D-04 + 11820.0000000 0.142236D-03 + 2692.0000000 0.752185D-03 + 763.4000000 0.302279D-02 + 249.6000000 0.103677D-01 + 90.2800000 0.262563D-01 + 35.2900000 0.523989D-01 + 14.5100000 0.290959D-01 + 4.0530000 -0.178003D+00 + 1.4820000 -0.346874D+00 + 0.2517000 0.623020D+00 +S 1 1.00 + 0.0924300 1.0000000 +P 7 1.00 + 315.9000000 0.392656D-02 + 74.4200000 0.298811D-01 + 23.4800000 0.127212D+00 + 8.4880000 0.320943D+00 + 3.2170000 0.455429D+00 + 1.2290000 0.268563D+00 + 0.2964000 0.188336D-01 +P 7 1.00 + 315.9000000 -0.858302D-03 + 74.4200000 -0.630328D-02 + 23.4800000 -0.288255D-01 + 8.4880000 -0.694560D-01 + 3.2170000 -0.119493D+00 + 1.2290000 -0.199581D-01 + 0.2964000 0.510268D+00 +P 1 1.00 + 0.0876800 1.0000000 +D 1 1.00 + 0.2750000 1.0000000 +**** +P 0 +S 11 1.00 + 94840.0000000 0.255509D-03 + 14220.0000000 0.198193D-02 + 3236.0000000 0.102760D-01 + 917.1000000 0.414823D-01 + 299.5000000 0.131984D+00 + 108.1000000 0.308662D+00 + 42.1800000 0.420647D+00 + 17.2800000 0.222878D+00 + 4.8580000 0.164035D-01 + 1.8180000 -0.254255D-02 + 0.3372000 0.748050D-03 +S 11 1.00 + 94840.0000000 -0.696939D-04 + 14220.0000000 -0.535266D-03 + 3236.0000000 -0.283709D-02 + 917.1000000 -0.113983D-01 + 299.5000000 -0.392929D-01 + 108.1000000 -0.996364D-01 + 42.1800000 -0.197983D+00 + 17.2800000 -0.114860D+00 + 4.8580000 0.518595D+00 + 1.8180000 0.601847D+00 + 0.3372000 0.368612D-01 +S 11 1.00 + 94840.0000000 0.191199D-04 + 14220.0000000 0.147223D-03 + 3236.0000000 0.777912D-03 + 917.1000000 0.314546D-02 + 299.5000000 0.108200D-01 + 108.1000000 0.279957D-01 + 42.1800000 0.563978D-01 + 17.2800000 0.358190D-01 + 4.8580000 -0.193387D+00 + 1.8180000 -0.372097D+00 + 0.3372000 0.624246D+00 +S 1 1.00 + 0.1232000 1.0000000 +P 7 1.00 + 370.5000000 0.395005D-02 + 87.3300000 0.302492D-01 + 27.5900000 0.129554D+00 + 10.0000000 0.327594D+00 + 3.8250000 0.456992D+00 + 1.4940000 0.253086D+00 + 0.3921000 0.168798D-01 +P 7 1.00 + 370.5000000 -0.959832D-03 + 87.3300000 -0.711177D-02 + 27.5900000 -0.327122D-01 + 10.0000000 -0.795784D-01 + 3.8250000 -0.135016D+00 + 1.4940000 -0.910585D-02 + 0.3921000 0.537802D+00 +P 1 1.00 + 0.1186000 1.0000000 +D 1 1.00 + 0.3730000 1.0000000 +**** +S 0 +S 11 1.00 + 110800.0000000 0.247635D-03 + 16610.0000000 0.192026D-02 + 3781.0000000 0.996192D-02 + 1071.0000000 0.402975D-01 + 349.8000000 0.128604D+00 + 126.3000000 0.303480D+00 + 49.2600000 0.421432D+00 + 20.1600000 0.230781D+00 + 5.7200000 0.178971D-01 + 2.1820000 -0.297516D-02 + 0.4327000 0.849522D-03 +S 11 1.00 + 110800.0000000 -0.687039D-04 + 16610.0000000 -0.527681D-03 + 3781.0000000 -0.279671D-02 + 1071.0000000 -0.112651D-01 + 349.8000000 -0.388834D-01 + 126.3000000 -0.995025D-01 + 49.2600000 -0.199740D+00 + 20.1600000 -0.123360D+00 + 5.7200000 0.513194D+00 + 2.1820000 0.607120D+00 + 0.4327000 0.396753D-01 +S 11 1.00 + 110800.0000000 0.199077D-04 + 16610.0000000 0.153483D-03 + 3781.0000000 0.809503D-03 + 1071.0000000 0.328974D-02 + 349.8000000 0.112967D-01 + 126.3000000 0.296385D-01 + 49.2600000 0.599851D-01 + 20.1600000 0.413248D-01 + 5.7200000 -0.207474D+00 + 2.1820000 -0.392889D+00 + 0.4327000 0.632840D+00 +S 1 1.00 + 0.1570000 1.0000000 +P 7 1.00 + 399.7000000 0.447541D-02 + 94.1900000 0.341708D-01 + 29.7500000 0.144250D+00 + 10.7700000 0.353928D+00 + 4.1190000 0.459085D+00 + 1.6250000 0.206383D+00 + 0.4726000 0.102141D-01 +P 7 1.00 + 399.7000000 -0.116251D-02 + 94.1900000 -0.865664D-02 + 29.7500000 -0.390886D-01 + 10.7700000 -0.934625D-01 + 4.1190000 -0.147994D+00 + 1.6250000 0.301904D-01 + 0.4726000 0.561573D+00 +P 1 1.00 + 0.1407000 1.0000000 +D 1 1.00 + 0.4790000 1.0000000 +**** +Cl 0 +S 11 1.00 + 127900.0000000 0.241153D-03 + 19170.0000000 0.187095D-02 + 4363.0000000 0.970827D-02 + 1236.0000000 0.393153D-01 + 403.6000000 0.125932D+00 + 145.7000000 0.299341D+00 + 56.8100000 0.421886D+00 + 23.2300000 0.237201D+00 + 6.6440000 0.191531D-01 + 2.5750000 -0.334792D-02 + 0.5371000 0.929883D-03 +S 11 1.00 + 127900.0000000 -0.678922D-04 + 19170.0000000 -0.521836D-03 + 4363.0000000 -0.276513D-02 + 1236.0000000 -0.111537D-01 + 403.6000000 -0.385919D-01 + 145.7000000 -0.994848D-01 + 56.8100000 -0.201392D+00 + 23.2300000 -0.130313D+00 + 6.6440000 0.509443D+00 + 2.5750000 0.610725D+00 + 0.5371000 0.421549D-01 +S 11 1.00 + 127900.0000000 0.204986D-04 + 19170.0000000 0.158298D-03 + 4363.0000000 0.833639D-03 + 1236.0000000 0.339880D-02 + 403.6000000 0.116738D-01 + 145.7000000 0.309622D-01 + 56.8100000 0.629533D-01 + 23.2300000 0.460257D-01 + 6.6440000 -0.219312D+00 + 2.5750000 -0.408773D+00 + 0.5371000 0.638465D+00 +S 1 1.00 + 0.1938000 1.0000000 +P 7 1.00 + 417.6000000 0.525982D-02 + 98.3300000 0.398332D-01 + 31.0400000 0.164655D+00 + 11.1900000 0.387322D+00 + 4.2490000 0.457072D+00 + 1.6240000 0.151636D+00 + 0.5322000 0.181615D-02 +P 7 1.00 + 417.6000000 -0.143570D-02 + 98.3300000 -0.107796D-01 + 31.0400000 -0.470075D-01 + 11.1900000 -0.111030D+00 + 4.2490000 -0.153275D+00 + 1.6240000 0.894609D-01 + 0.5322000 0.579444D+00 +P 1 1.00 + 0.1620000 1.0000000 +D 1 1.00 + 0.6000000 1.0000000 +**** +Ar 0 +S 11 1.00 + 145700.0000000 0.236700D-03 + 21840.0000000 0.183523D-02 + 4972.0000000 0.952860D-02 + 1408.0000000 0.386283D-01 + 459.7000000 0.124081D+00 + 165.9000000 0.296471D+00 + 64.6900000 0.422068D+00 + 26.4400000 0.241711D+00 + 7.6280000 0.200509D-01 + 2.9960000 -0.361000D-02 + 0.6504000 0.975607D-03 +S 11 1.00 + 145700.0000000 -0.674910D-04 + 21840.0000000 -0.518522D-03 + 4972.0000000 -0.274825D-02 + 1408.0000000 -0.111007D-01 + 459.7000000 -0.384820D-01 + 165.9000000 -0.997599D-01 + 64.6900000 -0.203088D+00 + 26.4400000 -0.135608D+00 + 7.6280000 0.507195D+00 + 2.9960000 0.612898D+00 + 0.6504000 0.442968D-01 +S 11 1.00 + 145700.0000000 0.210457D-04 + 21840.0000000 0.162565D-03 + 4972.0000000 0.855463D-03 + 1408.0000000 0.349745D-02 + 459.7000000 0.120156D-01 + 165.9000000 0.321368D-01 + 64.6900000 0.655279D-01 + 26.4400000 0.499370D-01 + 7.6280000 -0.229769D+00 + 2.9960000 -0.421006D+00 + 0.6504000 0.642331D+00 +S 1 1.00 + 0.2337000 1.0000000 +P 7 1.00 + 453.7000000 0.570555D-02 + 106.8000000 0.430460D-01 + 33.7300000 0.176591D+00 + 12.1300000 0.406863D+00 + 4.5940000 0.452549D+00 + 1.6780000 0.122801D+00 + 0.5909000 -0.445996D-02 +P 7 1.00 + 453.7000000 -0.160655D-02 + 106.8000000 -0.121714D-01 + 33.7300000 -0.520789D-01 + 12.1300000 -0.123737D+00 + 4.5940000 -0.151619D+00 + 1.6780000 0.142425D+00 + 0.5909000 0.584501D+00 +P 1 1.00 + 0.1852000 1.0000000 +D 1 1.00 + 0.7380000 1.0000000 +**** +Ca 0 +S 13 1.00 + 190000.7000000 0.00022145 + 28481.4600000 0.00171830 + 6482.7010000 0.00892348 + 1835.8910000 0.03630183 + 598.7243000 0.11762223 + 215.8841000 0.28604352 + 84.0124200 0.42260708 + 34.2248800 0.25774366 + 10.0249700 0.02391893 + 4.0559200 -0.00495218 + 1.0202610 0.00171779 + 0.4268650 -0.00089209 + 0.0633470 0.00024510 +S 13 1.00 + 190000.7000000 -0.00006453 + 28481.4600000 -0.00049662 + 6482.7010000 -0.00262826 + 1835.8910000 -0.01066845 + 598.7243000 -0.03713509 + 215.8841000 -0.09804284 + 84.0124200 -0.20342692 + 34.2248800 -0.15244655 + 10.0249700 0.48279406 + 4.0559200 0.62923839 + 1.0202610 0.06164842 + 0.4268650 -0.01479971 + 0.0633470 0.00361089 +S 13 1.00 + 190000.7000000 0.00002223 + 28481.4600000 0.00017170 + 6482.7010000 0.00090452 + 1835.8910000 0.00370343 + 598.7243000 0.01283750 + 215.8841000 0.03475459 + 84.0124200 0.07303491 + 34.2248800 0.06100083 + 10.0249700 -0.24292928 + 4.0559200 -0.48708500 + 1.0202610 0.56502804 + 0.4268650 0.65574386 + 0.0633470 0.02672894 +S 13 1.00 + 190000.7000000 0.00000531 + 28481.4600000 0.00004111 + 6482.7010000 0.00021568 + 1835.8910000 0.00088827 + 598.7243000 0.00305813 + 215.8841000 0.00837608 + 84.0124200 0.01741056 + 34.2248800 0.01515453 + 10.0249700 -0.06207919 + 4.0559200 -0.12611803 + 1.0202610 0.17360694 + 0.4268650 0.37822943 + 0.0633470 -0.65964698 +S 1 1.00 + 0.0263010 1.0000000 +P 10 1.00 + 1072.0430000 0.00198166 + 253.8439000 0.01612944 + 81.3162600 0.07657851 + 30.2418300 0.23269594 + 12.1011000 0.42445210 + 5.0225540 0.37326402 + 1.9092200 0.07868530 + 0.7713040 -0.00599927 + 0.3005700 0.00264257 + 0.0766490 -0.00085694 +P 10 1.00 + 1072.0430000 -0.00064891 + 253.8439000 -0.00527907 + 81.3162600 -0.02581131 + 30.2418300 -0.08062892 + 12.1011000 -0.15846552 + 5.0225540 -0.12816816 + 1.9092200 0.25610103 + 0.7713040 0.58724068 + 0.3005700 0.30372561 + 0.0766490 0.01416451 +P 10 1.00 + 1072.0430000 0.00013595 + 253.8439000 0.00109420 + 81.3162600 0.00542680 + 30.2418300 0.01674718 + 12.1011000 0.03389863 + 5.0225540 0.02531183 + 1.9092200 -0.05895713 + 0.7713040 -0.15876120 + 0.3005700 -0.08554523 + 0.0766490 0.54464665 +P 1 1.00 + 0.0277720 1.0000000 +D 4 1.00 + 10.3182000 0.03284900 + 2.5924200 0.14819200 + 0.7617000 0.31092100 + 0.2083800 0.45219500 +D 1 1.00 + 0.0537000 1.0000000 +**** +Sc 0 +S 19 1.00 + 2.715278E+06 8.147221E-06 + 4.065984E+05 6.334788E-05 + 9.253004E+04 3.330384E-04 + 2.620792E+04 1.404055E-03 + 8.549429E+03 5.081725E-03 + 3.085975E+03 1.626926E-02 + 1.203172E+03 4.624577E-02 + 4.984869E+02 1.137223E-01 + 2.167360E+02 2.257636E-01 + 9.787476E+01 3.106700E-01 + 4.520433E+01 2.191906E-01 + 2.021187E+01 7.215879E-02 + 9.574751E+00 1.187030E-01 + 4.540346E+00 1.220532E-01 + 1.995687E+00 2.136795E-02 + 9.422150E-01 -5.357246E-04 + 4.178450E-01 2.435774E-04 + 9.576100E-02 -8.796617E-05 + 5.135100E-02 7.878246E-05 +S 19 1.00 + 2.715278E+06 -4.722109E-06 + 4.065984E+05 -3.671829E-05 + 9.253004E+04 -1.930883E-04 + 2.620792E+04 -8.146870E-04 + 8.549429E+03 -2.955526E-03 + 3.085975E+03 -9.520035E-03 + 1.203172E+03 -2.746858E-02 + 4.984869E+02 -6.991528E-02 + 2.167360E+02 -1.499251E-01 + 9.787476E+01 -2.459153E-01 + 4.520433E+01 -2.401293E-01 + 2.021187E+01 3.567987E-02 + 9.574751E+00 4.915023E-01 + 4.540346E+00 4.911381E-01 + 1.995687E+00 9.120633E-02 + 9.422150E-01 -5.356723E-03 + 4.178450E-01 8.812836E-04 + 9.576100E-02 -7.605536E-04 + 5.135100E-02 6.340116E-04 +S 19 1.00 + 2.715278E+06 9.139905E-07 + 4.065984E+05 7.108513E-06 + 9.253004E+04 3.738126E-05 + 2.620792E+04 1.578828E-04 + 8.549429E+03 5.737686E-04 + 3.085975E+03 1.859244E-03 + 1.203172E+03 5.433182E-03 + 4.984869E+02 1.425387E-02 + 2.167360E+02 3.246144E-02 + 9.787476E+01 6.003454E-02 + 4.520433E+01 6.916105E-02 + 2.021187E+01 -2.113084E-02 + 9.574751E+00 -2.666832E-01 + 4.540346E+00 -4.367591E-01 + 1.995687E+00 6.498243E-02 + 9.422150E-01 7.009599E-01 + 4.178450E-01 4.515562E-01 + 9.576100E-02 3.011910E-02 + 5.135100E-02 -1.329480E-02 +S 19 1.00 + 2.715278E+06 -2.201951E-07 + 4.065984E+05 -1.711419E-06 + 9.253004E+04 -9.008469E-06 + 2.620792E+04 -3.799997E-05 + 8.549429E+03 -1.383227E-04 + 3.085975E+03 -4.473692E-04 + 1.203172E+03 -1.310691E-03 + 4.984869E+02 -3.429860E-03 + 2.167360E+02 -7.847579E-03 + 9.787476E+01 -1.447189E-02 + 4.520433E+01 -1.690669E-02 + 2.021187E+01 5.396115E-03 + 9.574751E+00 6.671062E-02 + 4.540346E+00 1.178356E-01 + 1.995687E+00 -2.738134E-02 + 9.422150E-01 -2.260149E-01 + 4.178450E-01 -3.073539E-01 + 9.576100E-02 2.544054E-01 + 5.135100E-02 5.981590E-01 +S 19 1.00 + 2.715278E+06 -3.757238E-07 + 4.065984E+05 -2.981907E-06 + 9.253004E+04 -1.522586E-05 + 2.620792E+04 -6.684686E-05 + 8.549429E+03 -2.313129E-04 + 3.085975E+03 -7.959729E-04 + 1.203172E+03 -2.161961E-03 + 4.984869E+02 -6.206459E-03 + 2.167360E+02 -1.261905E-02 + 9.787476E+01 -2.739459E-02 + 4.520433E+01 -2.336516E-02 + 2.021187E+01 -5.734627E-03 + 9.574751E+00 1.536025E-01 + 4.540346E+00 1.447100E-01 + 1.995687E+00 9.359699E-02 + 9.422150E-01 -8.687730E-01 + 4.178450E-01 2.114597E-02 + 9.576100E-02 2.275498E+00 + 5.135100E-02 -1.190770E+00 +S 1 1.00 + 2.387800E-02 1.0000000 +P 15 1.00 + 1.059219E+04 4.500000E-05 + 2.507533E+03 4.010000E-04 + 8.144571E+02 2.302000E-03 + 3.115195E+02 1.003700E-02 + 1.319617E+02 3.495400E-02 + 5.998718E+01 9.790900E-02 + 2.866250E+01 2.106800E-01 + 1.410851E+01 3.300930E-01 + 7.103706E+00 3.310270E-01 + 3.609200E+00 1.579600E-01 + 1.776070E+00 2.209900E-02 + 8.547600E-01 -1.605000E-03 + 4.022390E-01 -1.326000E-03 + 1.546650E-01 -2.800000E-04 + 6.494500E-02 3.400000E-05 +P 15 1.00 + 1.059219E+04 -1.500000E-05 + 2.507533E+03 -1.310000E-04 + 8.144571E+02 -7.570000E-04 + 3.115195E+02 -3.318000E-03 + 1.319617E+02 -1.170600E-02 + 5.998718E+01 -3.360400E-02 + 2.866250E+01 -7.487900E-02 + 1.410851E+01 -1.225480E-01 + 7.103706E+00 -1.302760E-01 + 3.609200E+00 1.459600E-02 + 1.776070E+00 3.091840E-01 + 8.547600E-01 4.629980E-01 + 4.022390E-01 3.049570E-01 + 1.546650E-01 5.087800E-02 + 6.494500E-02 -4.493000E-03 +P 15 1.00 + 1.059219E+04 -4.000000E-06 + 2.507533E+03 -3.200000E-05 + 8.144571E+02 -1.850000E-04 + 3.115195E+02 -8.080000E-04 + 1.319617E+02 -2.870000E-03 + 5.998718E+01 -8.207000E-03 + 2.866250E+01 -1.847300E-02 + 1.410851E+01 -3.010100E-02 + 7.103706E+00 -3.294300E-02 + 3.609200E+00 7.958000E-03 + 1.776070E+00 8.799300E-02 + 8.547600E-01 1.523770E-01 + 4.022390E-01 9.717000E-02 + 1.546650E-01 -2.569380E-01 + 6.494500E-02 -5.878150E-01 +P 15 1.00 + 1.059219E+04 4.000000E-06 + 2.507533E+03 3.900000E-05 + 8.144571E+02 2.210000E-04 + 3.115195E+02 9.840000E-04 + 1.319617E+02 3.423000E-03 + 5.998718E+01 9.993000E-03 + 2.866250E+01 2.191600E-02 + 1.410851E+01 3.700800E-02 + 7.103706E+00 3.779400E-02 + 3.609200E+00 -4.379000E-03 + 1.776070E+00 -1.101640E-01 + 8.547600E-01 -1.610170E-01 + 4.022390E-01 -1.824820E-01 + 1.546650E-01 3.886110E-01 + 6.494500E-02 6.911000E-01 +P 1 1.00 + 2.635900E-02 1.0000000 +D 7 1.00 + 5.051380E+01 4.266000E-03 + 1.474050E+01 2.770800E-02 + 5.195000E+00 1.000010E-01 + 2.028460E+00 2.315810E-01 + 8.040860E-01 3.460330E-01 + 3.076890E-01 3.733740E-01 + 1.113920E-01 2.642880E-01 +D 7 1.00 + 5.051380E+01 -4.389000E-03 + 1.474050E+01 -2.836300E-02 + 5.195000E+00 -1.051370E-01 + 2.028460E+00 -2.348540E-01 + 8.040860E-01 -3.246090E-01 + 3.076890E-01 -6.428900E-02 + 1.113920E-01 6.017490E-01 +D 1 1.00 + 3.735200E-02 1.0000000 +F 2 1.00 + 7.126000E-01 3.617450E-01 + 1.636000E-01 8.218680E-01 +**** +Ti 0 +S 19 1.00 + 3.014643E+06 8.060782E-06 + 4.514329E+05 6.267518E-05 + 1.027338E+05 3.295006E-04 + 2.909817E+04 1.389203E-03 + 9.492330E+03 5.028469E-03 + 3.426346E+03 1.610419E-02 + 1.335896E+03 4.581232E-02 + 5.535026E+02 1.128613E-01 + 2.406925E+02 2.248193E-01 + 1.087293E+02 3.114571E-01 + 5.026457E+01 2.224995E-01 + 2.258004E+01 7.293128E-02 + 1.071432E+01 1.160683E-01 + 5.093546E+00 1.194774E-01 + 2.244183E+00 2.097868E-02 + 1.059570E+00 -5.091715E-04 + 4.688490E-01 2.217859E-04 + 1.061430E-01 -7.636896E-05 + 5.526200E-02 7.719539E-05 +S 19 1.00 + 3.014643E+06 -4.630486E-06 + 4.514329E+05 -3.600451E-05 + 1.027338E+05 -1.893420E-04 + 2.909817E+04 -7.988781E-04 + 9.492330E+03 -2.898698E-03 + 3.426346E+03 -9.339701E-03 + 1.335896E+03 -2.697464E-02 + 5.535026E+02 -6.878913E-02 + 2.406925E+02 -1.481037E-01 + 1.087293E+02 -2.445253E-01 + 5.026457E+01 -2.419916E-01 + 2.258004E+01 3.183790E-02 + 1.071432E+01 4.932686E-01 + 5.093546E+00 4.939655E-01 + 2.244183E+00 9.196313E-02 + 1.059570E+00 -5.316992E-03 + 4.688490E-01 8.085624E-04 + 1.061430E-01 -6.918459E-04 + 5.526200E-02 6.086512E-04 +S 19 1.00 + 3.014643E+06 9.230559E-07 + 4.514329E+05 7.178974E-06 + 1.027338E+05 3.775134E-05 + 2.909817E+04 1.594532E-04 + 9.492330E+03 5.795150E-04 + 3.426346E+03 1.878414E-03 + 1.335896E+03 5.492747E-03 + 5.535026E+02 1.443297E-02 + 2.406925E+02 3.296408E-02 + 1.087293E+02 6.125493E-02 + 5.026457E+01 7.134113E-02 + 2.258004E+01 -1.973150E-02 + 1.071432E+01 -2.741869E-01 + 5.093546E+00 -4.440977E-01 + 2.244183E+00 7.776084E-02 + 1.059570E+00 7.068444E-01 + 4.688490E-01 4.413892E-01 + 1.061430E-01 2.799769E-02 + 5.526200E-02 -1.210790E-02 +S 19 1.00 + 3.014643E+06 -2.180323E-07 + 4.514329E+05 -1.694860E-06 + 1.027338E+05 -8.919208E-06 + 2.909817E+04 -3.763633E-05 + 9.492330E+03 -1.369575E-04 + 3.426346E+03 -4.432894E-04 + 1.335896E+03 -1.298868E-03 + 5.535026E+02 -3.406752E-03 + 2.406925E+02 -7.810829E-03 + 1.087293E+02 -1.449245E-02 + 5.026457E+01 -1.708136E-02 + 2.258004E+01 4.897666E-03 + 1.071432E+01 6.753108E-02 + 5.093546E+00 1.173318E-01 + 2.244183E+00 -2.985025E-02 + 1.059570E+00 -2.277634E-01 + 4.688490E-01 -2.928115E-01 + 1.061430E-01 2.665300E-01 + 5.526200E-02 5.912406E-01 +S 19 1.00 + 3.014643E+06 -3.975126E-07 + 4.514329E+05 -3.161080E-06 + 1.027338E+05 -1.609375E-05 + 2.909817E+04 -7.092947E-05 + 9.492330E+03 -2.442710E-04 + 3.426346E+03 -8.457892E-04 + 1.335896E+03 -2.282208E-03 + 5.535026E+02 -6.619873E-03 + 2.406925E+02 -1.335024E-02 + 1.087293E+02 -2.955830E-02 + 5.026457E+01 -2.477039E-02 + 2.258004E+01 -8.414624E-03 + 1.071432E+01 1.693855E-01 + 5.093546E+00 1.500787E-01 + 2.244183E+00 9.787777E-02 + 1.059570E+00 -9.653608E-01 + 4.688490E-01 1.489721E-01 + 1.061430E-01 2.191179E+00 + 5.526200E-02 -1.243325E+00 +S 1 1.00 + 2.546500E-02 1.0000000 +P 15 1.00 + 1.191203E+04 4.400000E-05 + 2.819947E+03 3.910000E-04 + 9.159479E+02 2.248000E-03 + 3.503842E+02 9.823000E-03 + 1.484825E+02 3.433800E-02 + 6.753944E+01 9.666600E-02 + 3.230332E+01 2.094170E-01 + 1.592786E+01 3.301890E-01 + 8.038035E+00 3.319360E-01 + 4.093916E+00 1.584880E-01 + 2.022390E+00 2.231000E-02 + 9.761020E-01 -1.566000E-03 + 4.595950E-01 -1.324000E-03 + 1.771520E-01 -2.710000E-04 + 7.351700E-02 3.200000E-05 +P 15 1.00 + 1.191203E+04 -1.500000E-05 + 2.819947E+03 -1.310000E-04 + 9.159479E+02 -7.550000E-04 + 3.503842E+02 -3.319000E-03 + 1.484825E+02 -1.175000E-02 + 6.753944E+01 -3.392200E-02 + 3.230332E+01 -7.616400E-02 + 1.592786E+01 -1.257020E-01 + 8.038035E+00 -1.330980E-01 + 4.093916E+00 1.740600E-02 + 2.022390E+00 3.151650E-01 + 9.761020E-01 4.618140E-01 + 4.595950E-01 2.998560E-01 + 1.771520E-01 5.000000E-02 + 7.351700E-02 -4.230000E-03 +P 15 1.00 + 1.191203E+04 4.000000E-06 + 2.819947E+03 3.100000E-05 + 9.159479E+02 1.820000E-04 + 3.503842E+02 7.950000E-04 + 1.484825E+02 2.833000E-03 + 6.753944E+01 8.154000E-03 + 3.230332E+01 1.847200E-02 + 1.592786E+01 3.040000E-02 + 8.038035E+00 3.304700E-02 + 4.093916E+00 -8.251000E-03 + 2.022390E+00 -8.855400E-02 + 9.761020E-01 -1.496120E-01 + 4.595950E-01 -9.422700E-02 + 1.771520E-01 2.508460E-01 + 7.351700E-02 5.866430E-01 +P 15 1.00 + 1.191203E+04 4.000000E-06 + 2.819947E+03 3.900000E-05 + 9.159479E+02 2.230000E-04 + 3.503842E+02 9.920000E-04 + 1.484825E+02 3.476000E-03 + 6.753944E+01 1.017200E-02 + 3.230332E+01 2.257600E-02 + 1.592786E+01 3.823800E-02 + 8.038035E+00 3.933700E-02 + 4.093916E+00 -6.106000E-03 + 2.022390E+00 -1.129620E-01 + 9.761020E-01 -1.681140E-01 + 4.595950E-01 -1.659320E-01 + 1.771520E-01 3.914030E-01 + 7.351700E-02 6.818400E-01 +P 1 1.00 + 2.940100E-02 1.0000000 +D 7 1.00 + 6.401300E+01 3.887000E-03 + 1.881790E+01 2.639900E-02 + 6.728700E+00 9.751100E-02 + 2.664130E+00 2.328480E-01 + 1.078680E+00 3.531520E-01 + 4.232090E-01 3.721860E-01 + 1.559990E-01 2.476720E-01 +D 7 1.00 + 6.401300E+01 -3.970000E-03 + 1.881790E+01 -2.687300E-02 + 6.728700E+00 -1.022750E-01 + 2.664130E+00 -2.377280E-01 + 1.078680E+00 -3.121140E-01 + 4.232090E-01 -4.237800E-02 + 1.559990E-01 5.886580E-01 +D 1 1.00 + 5.188400E-02 1.0000000 +F 2 1.00 + 1.227400E+00 3.581580E-01 + 2.788000E-01 8.257940E-01 +**** +V 0 +S 19 1.00 + 3.321857E+06 8.039999E-06 + 4.974356E+05 6.251402E-05 + 1.132027E+05 3.286553E-04 + 3.206333E+04 1.385697E-03 + 1.045962E+04 5.016217E-03 + 3.775506E+03 1.606931E-02 + 1.472040E+03 4.574242E-02 + 6.099331E+02 1.128544E-01 + 2.652634E+02 2.254344E-01 + 1.198607E+02 3.140461E-01 + 5.544891E+01 2.267819E-01 + 2.498372E+01 7.334069E-02 + 1.188056E+01 1.102474E-01 + 5.660311E+00 1.131358E-01 + 2.495703E+00 1.971295E-02 + 1.177866E+00 -4.719088E-04 + 5.200440E-01 1.861606E-04 + 1.159650E-01 -6.208598E-05 + 5.893800E-02 7.295314E-05 +S 19 1.00 + 3.321857E+06 -4.503003E-06 + 4.974356E+05 -3.501295E-05 + 1.132027E+05 -1.841339E-04 + 3.206333E+04 -7.769216E-04 + 1.045962E+04 -2.819505E-03 + 3.775506E+03 -9.087486E-03 + 1.472040E+03 -2.627134E-02 + 6.099331E+02 -6.712726E-02 + 2.652634E+02 -1.451130E-01 + 1.198607E+02 -2.412483E-01 + 5.544891E+01 -2.416314E-01 + 2.498372E+01 3.067362E-02 + 1.188056E+01 4.970415E-01 + 5.660311E+00 4.958875E-01 + 2.495703E+00 9.181868E-02 + 1.177866E+00 -5.392514E-03 + 5.200440E-01 7.102380E-04 + 1.159650E-01 -6.363128E-04 + 5.893800E-02 5.979932E-04 +S 19 1.00 + 3.321857E+06 9.320648E-07 + 4.974356E+05 7.249306E-06 + 1.132027E+05 3.811967E-05 + 3.206333E+04 1.610238E-04 + 1.045962E+04 5.852210E-04 + 3.775506E+03 1.897502E-03 + 1.472040E+03 5.550909E-03 + 6.099331E+02 1.460584E-02 + 2.652634E+02 3.342974E-02 + 1.198607E+02 6.235722E-02 + 5.544891E+01 7.312435E-02 + 2.498372E+01 -1.911472E-02 + 1.188056E+01 -2.817249E-01 + 5.660311E+00 -4.488151E-01 + 2.495703E+00 9.202696E-02 + 1.177866E+00 7.110117E-01 + 5.200440E-01 4.309274E-01 + 1.159650E-01 2.604589E-02 + 5.893800E-02 -1.101049E-02 +S 19 1.00 + 3.321857E+06 -2.158944E-07 + 4.974356E+05 -1.678519E-06 + 1.132027E+05 -8.831213E-06 + 3.206333E+04 -3.727769E-05 + 1.045962E+04 -1.356099E-04 + 3.775506E+03 -4.392351E-04 + 1.472040E+03 -1.286948E-03 + 6.099331E+02 -3.382149E-03 + 2.652634E+02 -7.765646E-03 + 1.198607E+02 -1.447985E-02 + 5.544891E+01 -1.715502E-02 + 2.498372E+01 4.610101E-03 + 1.188056E+01 6.827831E-02 + 5.660311E+00 1.161368E-01 + 2.495703E+00 -3.277049E-02 + 1.177866E+00 -2.280000E-01 + 5.200440E-01 -2.793991E-01 + 1.159650E-01 2.771165E-01 + 5.893800E-02 5.852999E-01 +S 19 1.00 + 3.321857E+06 -4.093416E-07 + 4.974356E+05 -3.258956E-06 + 1.132027E+05 -1.656390E-05 + 3.206333E+04 -7.316689E-05 + 1.045962E+04 -2.512784E-04 + 3.775506E+03 -8.732657E-04 + 1.472040E+03 -2.347654E-03 + 6.099331E+02 -6.853150E-03 + 2.652634E+02 -1.376420E-02 + 1.198607E+02 -3.084679E-02 + 5.544891E+01 -2.562208E-02 + 2.498372E+01 -1.005123E-02 + 1.188056E+01 1.795330E-01 + 5.660311E+00 1.522400E-01 + 2.495703E+00 9.483887E-02 + 1.177866E+00 -1.014876E+00 + 5.200440E-01 2.308810E-01 + 1.159650E-01 2.113321E+00 + 5.893800E-02 -1.253048E+00 +S 1 1.00 + 2.694600E-02 1.0000000 +P 15 1.00 + 1.327320E+04 4.300000E-05 + 3.142126E+03 3.840000E-04 + 1.020588E+03 2.210000E-03 + 3.904407E+02 9.678000E-03 + 1.655043E+02 3.393600E-02 + 7.532006E+01 9.591700E-02 + 3.605503E+01 2.088530E-01 + 1.780436E+01 3.306600E-01 + 9.002929E+00 3.323120E-01 + 4.594544E+00 1.581880E-01 + 2.276760E+00 2.225200E-02 + 1.101178E+00 -1.565000E-03 + 5.186380E-01 -1.353000E-03 + 2.005650E-01 -2.650000E-04 + 8.129100E-02 2.900000E-05 +P 15 1.00 + 1.327320E+04 -1.500000E-05 + 3.142126E+03 -1.310000E-04 + 1.020588E+03 -7.550000E-04 + 3.904407E+02 -3.325000E-03 + 1.655043E+02 -1.181100E-02 + 7.532006E+01 -3.425600E-02 + 3.605503E+01 -7.736300E-02 + 1.780436E+01 -1.284560E-01 + 9.002929E+00 -1.350780E-01 + 4.594544E+00 2.083800E-02 + 2.276760E+00 3.204990E-01 + 1.101178E+00 4.602600E-01 + 5.186380E-01 2.953460E-01 + 2.005650E-01 4.904600E-02 + 8.129100E-02 -3.824000E-03 +P 15 1.00 + 1.327320E+04 4.000000E-06 + 3.142126E+03 3.200000E-05 + 1.020588E+03 1.830000E-04 + 3.904407E+02 8.020000E-04 + 1.655043E+02 2.862000E-03 + 7.532006E+01 8.287000E-03 + 3.605503E+01 1.887000E-02 + 1.780436E+01 3.130700E-02 + 9.002929E+00 3.366000E-02 + 4.594544E+00 -9.479000E-03 + 2.276760E+00 -9.231300E-02 + 1.101178E+00 -1.489890E-01 + 5.186380E-01 -8.364400E-02 + 2.005650E-01 2.493390E-01 + 8.129100E-02 5.805150E-01 +P 15 1.00 + 1.327320E+04 4.000000E-06 + 3.142126E+03 3.900000E-05 + 1.020588E+03 2.230000E-04 + 3.904407E+02 9.960000E-04 + 1.655043E+02 3.498000E-03 + 7.532006E+01 1.029600E-02 + 3.605503E+01 2.296200E-02 + 1.780436E+01 3.920800E-02 + 9.002929E+00 3.994300E-02 + 4.594544E+00 -7.121000E-03 + 2.276760E+00 -1.162250E-01 + 1.101178E+00 -1.694960E-01 + 5.186380E-01 -1.553740E-01 + 2.005650E-01 3.950220E-01 + 8.129100E-02 6.789080E-01 +P 1 1.00 + 3.179500E-02 1.0000000 +D 7 1.00 + 7.761150E+01 3.595000E-03 + 2.291590E+01 2.521000E-02 + 8.279540E+00 9.478600E-02 + 3.309930E+00 2.303630E-01 + 1.358630E+00 3.528940E-01 + 5.413500E-01 3.704140E-01 + 2.023560E-01 2.457180E-01 +D 7 1.00 + 7.761150E+01 -3.818000E-03 + 2.291590E+01 -2.671700E-02 + 8.279540E+00 -1.036900E-01 + 3.309930E+00 -2.476890E-01 + 1.358630E+00 -3.115230E-01 + 5.413500E-01 -2.282700E-02 + 2.023560E-01 5.697260E-01 +D 1 1.00 + 6.756800E-02 1.0000000 +F 2 1.00 + 1.748800E+00 3.900680E-01 + 4.057000E-01 8.008410E-01 +**** +Cr 0 +S 19 1.00 + 6.177194E+06 4.128667E-06 + 9.249295E+05 3.210767E-05 + 2.104865E+05 1.688416E-04 + 5.962005E+04 7.128520E-04 + 1.945076E+04 2.589325E-03 + 7.022056E+03 8.377350E-03 + 2.738763E+03 2.441725E-02 + 1.135814E+03 6.365135E-02 + 4.950923E+02 1.427618E-01 + 2.247487E+02 2.541275E-01 + 1.053836E+02 3.009512E-01 + 5.019359E+01 1.766513E-01 + 2.224957E+01 6.936709E-02 + 1.098265E+01 1.179579E-01 + 5.383665E+00 8.916187E-02 + 2.343685E+00 1.103630E-02 + 1.105202E+00 -3.546048E-04 + 4.878480E-01 1.057311E-04 + 8.959900E-02 1.114640E-05 +S 19 1.00 + 6.177194E+06 -2.301772E-06 + 9.249295E+05 -1.789536E-05 + 2.104865E+05 -9.416174E-05 + 5.962005E+04 -3.975074E-04 + 1.945076E+04 -1.447025E-03 + 7.022056E+03 -4.694622E-03 + 2.738763E+03 -1.382387E-02 + 1.135814E+03 -3.674643E-02 + 4.950923E+02 -8.647185E-02 + 2.247487E+02 -1.696735E-01 + 1.053836E+02 -2.507089E-01 + 5.019359E+01 -1.961156E-01 + 2.224957E+01 1.457244E-01 + 1.098265E+01 5.466706E-01 + 5.383665E+00 3.979434E-01 + 2.343685E+00 5.277007E-02 + 1.105202E+00 -4.374537E-03 + 4.878480E-01 3.204035E-04 + 8.959900E-02 -5.142077E-05 +S 19 1.00 + 6.177194E+06 4.862957E-07 + 9.249295E+05 3.776645E-06 + 2.104865E+05 1.990664E-05 + 5.962005E+04 8.389164E-05 + 1.945076E+04 3.065706E-04 + 7.022056E+03 9.944107E-04 + 2.738763E+03 2.961959E-03 + 1.135814E+03 7.969473E-03 + 4.950923E+02 1.955017E-02 + 2.247487E+02 4.085035E-02 + 1.053836E+02 6.929003E-02 + 5.019359E+01 6.146984E-02 + 2.224957E+01 -6.981302E-02 + 1.098265E+01 -3.517597E-01 + 5.383665E+00 -3.828629E-01 + 2.343685E+00 2.676401E-01 + 1.105202E+00 7.175950E-01 + 4.878480E-01 3.020814E-01 + 8.959900E-02 7.749514E-03 +S 19 1.00 + 6.177194E+06 -1.102451E-07 + 9.249295E+05 -8.530233E-07 + 2.104865E+05 -4.520358E-06 + 5.962005E+04 -1.891612E-05 + 1.945076E+04 -6.974344E-05 + 7.022056E+03 -2.237867E-04 + 2.738763E+03 -6.754503E-04 + 1.135814E+03 -1.789346E-03 + 4.950923E+02 -4.477858E-03 + 2.247487E+02 -9.140144E-03 + 1.053836E+02 -1.610562E-02 + 5.019359E+01 -1.334870E-02 + 2.224957E+01 1.426027E-02 + 1.098265E+01 8.931690E-02 + 5.383665E+00 8.885279E-02 + 2.343685E+00 -6.368776E-02 + 1.105202E+00 -2.783262E-01 + 4.878480E-01 -1.830071E-01 + 8.959900E-02 6.790937E-01 +S 19 1.00 + 6.177194E+06 2.179893E-07 + 9.249295E+05 1.612940E-06 + 2.104865E+05 9.111842E-06 + 5.962005E+04 3.500645E-05 + 1.945076E+04 1.435315E-04 + 7.022056E+03 4.035896E-04 + 2.738763E+03 1.425177E-03 + 1.135814E+03 3.114009E-03 + 4.950923E+02 9.814449E-03 + 2.247487E+02 1.474698E-02 + 1.053836E+02 3.911512E-02 + 5.019359E+01 9.170888E-03 + 2.224957E+01 1.559878E-02 + 1.098265E+01 -2.816844E-01 + 5.383665E+00 -6.895261E-03 + 2.343685E+00 -1.769781E-01 + 1.105202E+00 1.443061E+00 + 4.878480E-01 -1.029318E+00 + 8.959900E-02 -1.307667E+00 +S 1 1.00 + 3.342300E-02 1.0000000 +P 15 1.00 + 1.445420E+04 4.400000E-05 + 3.421676E+03 3.890000E-04 + 1.111387E+03 2.241000E-03 + 4.251918E+02 9.821000E-03 + 1.802623E+02 3.447100E-02 + 8.206117E+01 9.746000E-02 + 3.929726E+01 2.119850E-01 + 1.941959E+01 3.339900E-01 + 9.828899E+00 3.301370E-01 + 5.016810E+00 1.522270E-01 + 2.487091E+00 2.042500E-02 + 1.198780E+00 -1.360000E-03 + 5.586950E-01 -1.195000E-03 + 2.089240E-01 -1.970000E-04 + 8.460800E-02 2.300000E-05 +P 15 1.00 + 1.445420E+04 -1.500000E-05 + 3.421676E+03 -1.350000E-04 + 1.111387E+03 -7.770000E-04 + 4.251918E+02 -3.427000E-03 + 1.802623E+02 -1.218900E-02 + 8.206117E+01 -3.538800E-02 + 3.929726E+01 -7.991500E-02 + 1.941959E+01 -1.323350E-01 + 9.828899E+00 -1.354010E-01 + 5.016810E+00 3.200800E-02 + 2.487091E+00 3.338490E-01 + 1.198780E+00 4.617730E-01 + 5.586950E-01 2.812900E-01 + 2.089240E-01 4.184300E-02 + 8.460800E-02 -4.002000E-03 +P 15 1.00 + 1.445420E+04 4.000000E-06 + 3.421676E+03 3.200000E-05 + 1.111387E+03 1.850000E-04 + 4.251918E+02 8.100000E-04 + 1.802623E+02 2.906000E-03 + 8.206117E+01 8.391000E-03 + 3.929726E+01 1.919300E-02 + 1.941959E+01 3.156400E-02 + 9.828899E+00 3.341700E-02 + 5.016810E+00 -1.290700E-02 + 2.487091E+00 -9.365900E-02 + 1.198780E+00 -1.499770E-01 + 5.586950E-01 -6.723400E-02 + 2.089240E-01 2.707590E-01 + 8.460800E-02 5.758070E-01 +P 15 1.00 + 1.445420E+04 4.000000E-06 + 3.421676E+03 4.000000E-05 + 1.111387E+03 2.290000E-04 + 4.251918E+02 1.019000E-03 + 1.802623E+02 3.602000E-03 + 8.206117E+01 1.055000E-02 + 3.929726E+01 2.370200E-02 + 1.941959E+01 3.998800E-02 + 9.828899E+00 4.043700E-02 + 5.016810E+00 -1.207400E-02 + 2.487091E+00 -1.189390E-01 + 1.198780E+00 -1.781000E-01 + 5.586950E-01 -1.238650E-01 + 2.089240E-01 4.297220E-01 + 8.460800E-02 6.507860E-01 +P 1 1.00 + 3.325800E-02 1.0000000 +D 7 1.00 + 8.857680E+01 3.621000E-03 + 2.620450E+01 2.576600E-02 + 9.517470E+00 9.755600E-02 + 3.822480E+00 2.363120E-01 + 1.575120E+00 3.582860E-01 + 6.289280E-01 3.685430E-01 + 2.344240E-01 2.354940E-01 +D 7 1.00 + 8.857680E+01 -4.122000E-03 + 2.620450E+01 -2.930700E-02 + 9.517470E+00 -1.150620E-01 + 3.822480E+00 -2.730680E-01 + 1.575120E+00 -3.144230E-01 + 6.289280E-01 4.209700E-02 + 2.344240E-01 5.914030E-01 +D 1 1.00 + 7.681500E-02 1.0000000 +F 2 1.00 + 2.221100E+00 4.235450E-01 + 5.231000E-01 7.741140E-01 +**** +Mn 0 +S 19 1.00 + 3.960805E+06 8.242127E-06 + 5.931155E+05 6.408587E-05 + 1.349768E+05 3.369253E-04 + 3.823067E+04 1.420648E-03 + 1.247154E+04 5.143683E-03 + 4.501743E+03 1.648569E-02 + 1.755212E+03 4.698560E-02 + 7.273039E+02 1.162437E-01 + 3.163678E+02 2.335277E-01 + 1.430098E+02 3.292837E-01 + 6.621805E+01 2.440304E-01 + 2.991896E+01 7.219806E-02 + 1.430318E+01 7.687806E-02 + 6.839451E+00 7.852235E-02 + 3.012374E+00 1.294109E-02 + 1.418808E+00 -3.784873E-04 + 6.236240E-01 -2.503203E-05 + 1.340980E-01 -2.421517E-05 + 6.554800E-02 3.462071E-05 +S 19 1.00 + 3.960805E+06 -3.936095E-06 + 5.931155E+05 -3.060481E-05 + 1.349768E+05 -1.609626E-04 + 3.823067E+04 -6.792348E-04 + 1.247154E+04 -2.466182E-03 + 4.501743E+03 -7.957629E-03 + 1.755212E+03 -2.307248E-02 + 7.273039E+02 -5.932956E-02 + 3.163678E+02 -1.299451E-01 + 1.430098E+02 -2.212352E-01 + 6.621805E+01 -2.292550E-01 + 2.991896E+01 3.580733E-02 + 1.430318E+01 5.107602E-01 + 6.839451E+00 5.008307E-01 + 3.012374E+00 9.011830E-02 + 1.418808E+00 -6.909909E-03 + 6.236240E-01 -1.912925E-04 + 1.340980E-01 -6.032312E-04 + 6.554800E-02 5.621608E-04 +S 19 1.00 + 3.960805E+06 9.462709E-07 + 5.931155E+05 7.360584E-06 + 1.349768E+05 3.869935E-05 + 3.823067E+04 1.635110E-04 + 1.247154E+04 5.941775E-04 + 4.501743E+03 1.927737E-03 + 1.755212E+03 5.641731E-03 + 7.273039E+02 1.487848E-02 + 3.163678E+02 3.414783E-02 + 1.430098E+02 6.405794E-02 + 6.621805E+01 7.557659E-02 + 2.991896E+01 -1.946070E-02 + 1.430318E+01 -2.957874E-01 + 6.839451E+00 -4.521170E-01 + 3.012374E+00 1.224531E-01 + 1.418808E+00 7.169756E-01 + 6.236240E-01 4.092712E-01 + 1.340980E-01 2.221969E-02 + 6.554800E-02 -9.011202E-03 +S 19 1.00 + 3.960805E+06 -2.095391E-07 + 5.931155E+05 -1.629439E-06 + 1.349768E+05 -8.570592E-06 + 3.823067E+04 -3.619272E-05 + 1.247154E+04 -1.316146E-04 + 4.501743E+03 -4.266810E-04 + 1.755212E+03 -1.250270E-03 + 7.273039E+02 -3.294665E-03 + 3.163678E+02 -7.581860E-03 + 1.430098E+02 -1.422864E-02 + 6.621805E+01 -1.693796E-02 + 2.991896E+01 4.454298E-03 + 1.430318E+01 6.867042E-02 + 6.839451E+00 1.113335E-01 + 3.012374E+00 -3.900820E-02 + 1.418808E+00 -2.215755E-01 + 6.236240E-01 -2.544359E-01 + 1.340980E-01 2.865866E-01 + 6.554800E-02 5.755741E-01 +S 19 1.00 + 3.960805E+06 -4.121231E-07 + 5.931155E+05 -3.282099E-06 + 1.349768E+05 -1.667433E-05 + 3.823067E+04 -7.369999E-05 + 1.247154E+04 -2.529495E-04 + 4.501743E+03 -8.801425E-04 + 1.755212E+03 -2.365482E-03 + 7.273039E+02 -6.926354E-03 + 3.163678E+02 -1.393851E-02 + 1.430098E+02 -3.143840E-02 + 6.621805E+01 -2.625749E-02 + 2.991896E+01 -1.048313E-02 + 1.430318E+01 1.856472E-01 + 6.839451E+00 1.524839E-01 + 3.012374E+00 7.411368E-02 + 1.418808E+00 -1.018097E+00 + 6.236240E-01 2.980372E-01 + 1.340980E-01 1.971989E+00 + 6.554800E-02 -1.179253E+00 +S 1 1.00 + 2.958400E-02 1.0000000 +P 15 1.00 + 1.620586E+04 4.200000E-05 + 3.836274E+03 3.730000E-04 + 1.246048E+03 2.149000E-03 + 4.767535E+02 9.445000E-03 + 2.021895E+02 3.329700E-02 + 9.209487E+01 9.475900E-02 + 4.414720E+01 2.081440E-01 + 2.185468E+01 3.318050E-01 + 1.108596E+01 3.331750E-01 + 5.674108E+00 1.576010E-01 + 2.823170E+00 2.144500E-02 + 1.368621E+00 -2.558000E-03 + 6.444310E-01 -2.027000E-03 + 2.483820E-01 -3.600000E-04 + 9.725500E-02 3.400000E-05 +P 15 1.00 + 1.620586E+04 -1.500000E-05 + 3.836274E+03 -1.290000E-04 + 1.246048E+03 -7.480000E-04 + 4.767535E+02 -3.308000E-03 + 2.021895E+02 -1.181100E-02 + 9.209487E+01 -3.453300E-02 + 4.414720E+01 -7.878500E-02 + 2.185468E+01 -1.321830E-01 + 1.108596E+01 -1.371950E-01 + 5.674108E+00 2.707500E-02 + 2.823170E+00 3.288910E-01 + 1.368621E+00 4.572800E-01 + 6.444310E-01 2.889080E-01 + 2.483820E-01 4.743300E-02 + 9.725500E-02 -3.522000E-03 +P 15 1.00 + 1.620586E+04 3.000000E-06 + 3.836274E+03 3.000000E-05 + 1.246048E+03 1.720000E-04 + 4.767535E+02 7.620000E-04 + 2.021895E+02 2.726000E-03 + 9.209487E+01 7.976000E-03 + 4.414720E+01 1.828700E-02 + 2.185468E+01 3.077600E-02 + 1.108596E+01 3.237300E-02 + 5.674108E+00 -9.978000E-03 + 2.823170E+00 -9.052900E-02 + 1.368621E+00 -1.380040E-01 + 6.444310E-01 -7.796500E-02 + 2.483820E-01 2.295600E-01 + 9.725500E-02 5.761220E-01 +P 15 1.00 + 1.620586E+04 4.000000E-06 + 3.836274E+03 4.000000E-05 + 1.246048E+03 2.260000E-04 + 4.767535E+02 1.013000E-03 + 2.021895E+02 3.575000E-03 + 9.209487E+01 1.061200E-02 + 4.414720E+01 2.390200E-02 + 2.185468E+01 4.127900E-02 + 1.108596E+01 4.147500E-02 + 5.674108E+00 -9.458000E-03 + 2.823170E+00 -1.236950E-01 + 1.368621E+00 -1.743920E-01 + 6.444310E-01 -1.291700E-01 + 2.483820E-01 4.003480E-01 + 9.725500E-02 6.696460E-01 +P 1 1.00 + 3.663300E-02 1.0000000 +D 7 1.00 + 1.006630E+02 3.579000E-03 + 2.983360E+01 2.582700E-02 + 1.088940E+01 9.855900E-02 + 4.393580E+00 2.383270E-01 + 1.817820E+00 3.587070E-01 + 7.278270E-01 3.650920E-01 + 2.712950E-01 2.337380E-01 +D 7 1.00 + 1.006630E+02 -3.454000E-03 + 2.983360E+01 -2.492500E-02 + 1.088940E+01 -9.763500E-02 + 4.393580E+00 -2.366920E-01 + 1.817820E+00 -2.923500E-01 + 7.278270E-01 -4.973000E-03 + 2.712950E-01 5.065880E-01 +D 1 1.00 + 8.830900E-02 1.0000000 +F 2 1.00 + 2.703200E+00 4.267760E-01 + 6.438000E-01 7.697990E-01 +**** +Fe 0 +S 19 1.00 + 4.316265E+06 8.048803E-06 + 6.463424E+05 6.258306E-05 + 1.470897E+05 3.290239E-04 + 4.166152E+04 1.387355E-03 + 1.359077E+04 5.023256E-03 + 4.905750E+03 1.610140E-02 + 1.912746E+03 4.590034E-02 + 7.926043E+02 1.136154E-01 + 3.448065E+02 2.283869E-01 + 1.558999E+02 3.221159E-01 + 7.223091E+01 2.383661E-01 + 3.272506E+01 7.404667E-02 + 1.566762E+01 9.214197E-02 + 7.503483E+00 9.339790E-02 + 3.312223E+00 1.573965E-02 + 1.558471E+00 -4.186682E-04 + 6.839140E-01 5.376318E-05 + 1.467570E-01 -3.816654E-05 + 7.058300E-02 4.319603E-05 +S 19 1.00 + 4.316265E+06 -4.155954E-06 + 6.463424E+05 -3.231401E-05 + 1.470897E+05 -1.699525E-04 + 4.166152E+04 -7.171369E-04 + 1.359077E+04 -2.603625E-03 + 4.905750E+03 -8.399109E-03 + 1.912746E+03 -2.434109E-02 + 7.926043E+02 -6.251948E-02 + 3.448065E+02 -1.365929E-01 + 1.558999E+02 -2.312707E-01 + 7.223091E+01 -2.383734E-01 + 3.272506E+01 3.123837E-02 + 1.566762E+01 5.086818E-01 + 7.503483E+00 4.987695E-01 + 3.312223E+00 9.033552E-02 + 1.558471E+00 -6.005337E-03 + 6.839140E-01 2.312454E-04 + 1.467570E-01 -5.643680E-04 + 7.058300E-02 4.992260E-04 +S 19 1.00 + 4.316265E+06 9.532178E-07 + 6.463424E+05 7.414605E-06 + 1.470897E+05 3.898393E-05 + 4.166152E+04 1.647152E-04 + 1.359077E+04 5.985980E-04 + 4.905750E+03 1.942390E-03 + 1.912746E+03 5.687237E-03 + 7.926043E+02 1.501329E-02 + 3.448065E+02 3.452455E-02 + 1.558999E+02 6.495820E-02 + 7.223091E+01 7.716194E-02 + 3.272506E+01 -1.873411E-02 + 1.566762E+01 -3.009185E-01 + 7.503483E+00 -4.554661E-01 + 3.312223E+00 1.286463E-01 + 1.558471E+00 7.183316E-01 + 6.839140E-01 4.051743E-01 + 1.467570E-01 2.168227E-02 + 7.058300E-02 -8.343566E-03 +S 19 1.00 + 4.316265E+06 -2.063008E-07 + 6.463424E+05 -1.604169E-06 + 1.470897E+05 -8.438437E-06 + 4.166152E+04 -3.563151E-05 + 1.359077E+04 -1.295998E-04 + 4.905750E+03 -4.201534E-04 + 1.912746E+03 -1.231954E-03 + 7.926043E+02 -3.248922E-03 + 3.448065E+02 -7.493717E-03 + 1.558999E+02 -1.410102E-02 + 7.223091E+01 -1.691600E-02 + 3.272506E+01 4.218996E-03 + 1.566762E+01 6.833810E-02 + 7.503483E+00 1.098201E-01 + 3.312223E+00 -4.009005E-02 + 1.558471E+00 -2.174739E-01 + 6.839140E-01 -2.465135E-01 + 1.467570E-01 2.731435E-01 + 7.058300E-02 5.748321E-01 +S 19 1.00 + 4.316265E+06 -4.009367E-07 + 6.463424E+05 -3.189255E-06 + 1.470897E+05 -1.623079E-05 + 4.166152E+04 -7.157920E-05 + 1.359077E+04 -2.463958E-04 + 4.905750E+03 -8.544907E-04 + 1.912746E+03 -2.307593E-03 + 7.926043E+02 -6.728292E-03 + 3.448065E+02 -1.366165E-02 + 1.558999E+02 -3.062240E-02 + 7.223091E+01 -2.631137E-02 + 3.272506E+01 -9.760183E-03 + 1.566762E+01 1.801906E-01 + 7.503483E+00 1.529634E-01 + 3.312223E+00 5.505413E-02 + 1.558471E+00 -9.551364E-01 + 6.839140E-01 2.586813E-01 + 1.467570E-01 1.834049E+00 + 7.058300E-02 -9.333240E-01 +S 1 1.00 + 3.144900E-02 1.0000000 +P 15 1.00 + 1.774569E+04 4.100000E-05 + 4.200721E+03 3.690000E-04 + 1.364429E+03 2.129000E-03 + 5.220806E+02 9.369000E-03 + 2.214595E+02 3.309700E-02 + 1.009096E+02 9.443100E-02 + 4.840115E+01 2.080770E-01 + 2.398536E+01 3.323330E-01 + 1.218250E+01 3.329870E-01 + 6.242298E+00 1.568430E-01 + 3.110944E+00 2.154900E-02 + 1.509958E+00 -2.095000E-03 + 7.108450E-01 -1.739000E-03 + 2.731900E-01 -3.000000E-04 + 1.042330E-01 2.900000E-05 +P 15 1.00 + 1.774569E+04 -1.500000E-05 + 4.200721E+03 -1.300000E-04 + 1.364429E+03 -7.510000E-04 + 5.220806E+02 -3.329000E-03 + 2.214595E+02 -1.191200E-02 + 1.009096E+02 -3.493300E-02 + 4.840115E+01 -7.998900E-02 + 2.398536E+01 -1.346360E-01 + 1.218250E+01 -1.385980E-01 + 6.242298E+00 3.027800E-02 + 3.110944E+00 3.332160E-01 + 1.509958E+00 4.561530E-01 + 7.108450E-01 2.850510E-01 + 2.731900E-01 4.614400E-02 + 1.042330E-01 -3.249000E-03 +P 15 1.00 + 1.774569E+04 3.000000E-06 + 4.200721E+03 2.900000E-05 + 1.364429E+03 1.650000E-04 + 5.220806E+02 7.340000E-04 + 2.214595E+02 2.626000E-03 + 1.009096E+02 7.725000E-03 + 4.840115E+01 1.773300E-02 + 2.398536E+01 3.005500E-02 + 1.218250E+01 3.109400E-02 + 6.242298E+00 -1.004800E-02 + 3.110944E+00 -8.830600E-02 + 1.509958E+00 -1.298240E-01 + 7.108450E-01 -7.693700E-02 + 2.731900E-01 2.126610E-01 + 1.042330E-01 5.730610E-01 +P 15 1.00 + 1.774569E+04 5.000000E-06 + 4.200721E+03 4.200000E-05 + 1.364429E+03 2.410000E-04 + 5.220806E+02 1.085000E-03 + 2.214595E+02 3.831000E-03 + 1.009096E+02 1.142300E-02 + 4.840115E+01 2.579200E-02 + 2.398536E+01 4.481800E-02 + 1.218250E+01 4.459800E-02 + 6.242298E+00 -1.117700E-02 + 3.110944E+00 -1.381340E-01 + 1.509958E+00 -1.882850E-01 + 7.108450E-01 -1.073990E-01 + 2.731900E-01 4.448630E-01 + 1.042330E-01 6.402390E-01 +P 1 1.00 + 3.829100E-02 1.0000000 +D 7 1.00 + 1.133440E+02 3.530000E-03 + 3.364140E+01 2.578400E-02 + 1.233100E+01 9.911900E-02 + 4.994780E+00 2.390730E-01 + 2.072800E+00 3.571990E-01 + 8.307530E-01 3.621880E-01 + 3.091780E-01 2.364610E-01 +D 7 1.00 + 1.133440E+02 -3.890000E-03 + 3.364140E+01 -2.844200E-02 + 1.233100E+01 -1.124290E-01 + 4.994780E+00 -2.742570E-01 + 2.072800E+00 -3.155460E-01 + 8.307530E-01 5.710900E-02 + 3.091780E-01 5.636040E-01 +D 1 1.00 + 1.001300E-01 1.0000000 +F 2 1.00 + 3.224300E+00 4.222490E-01 + 7.758000E-01 7.714680E-01 +**** +Co 0 +S 19 1.00 + 4.675675E+06 7.979026E-06 + 7.001615E+05 6.204071E-05 + 1.593373E+05 3.261735E-04 + 4.513046E+04 1.375360E-03 + 1.472238E+04 4.979997E-03 + 5.314222E+03 1.596434E-02 + 2.072018E+03 4.552086E-02 + 8.586188E+02 1.127385E-01 + 3.735497E+02 2.268262E-01 + 1.689229E+02 3.203074E-01 + 7.829639E+01 2.374021E-01 + 3.552123E+01 7.477686E-02 + 1.704144E+01 9.581872E-02 + 8.173000E+00 9.649911E-02 + 3.610318E+00 1.623362E-02 + 1.697047E+00 -4.535497E-04 + 7.435320E-01 5.113519E-05 + 1.583440E-01 -4.174508E-05 + 7.503600E-02 4.027577E-05 +S 19 1.00 + 4.675675E+06 -4.200240E-06 + 7.001615E+05 -3.265831E-05 + 1.593373E+05 -1.717644E-04 + 4.513046E+04 -7.247853E-04 + 1.472238E+04 -2.631462E-03 + 5.314222E+03 -8.489272E-03 + 2.072018E+03 -2.460619E-02 + 8.586188E+02 -6.322059E-02 + 3.735497E+02 -1.381957E-01 + 1.689229E+02 -2.340680E-01 + 7.829639E+01 -2.415002E-01 + 3.552123E+01 3.035312E-02 + 1.704144E+01 5.101341E-01 + 8.173000E+00 4.974939E-01 + 3.610318E+00 8.970746E-02 + 1.697047E+00 -5.941034E-03 + 7.435320E-01 2.175362E-04 + 1.583440E-01 -5.480155E-04 + 7.503600E-02 4.525804E-04 +S 19 1.00 + 4.675675E+06 9.592692E-07 + 7.001615E+05 7.461851E-06 + 1.593373E+05 3.923137E-05 + 4.513046E+04 1.657706E-04 + 1.472238E+04 6.024335E-04 + 5.314222E+03 1.955217E-03 + 2.072018E+03 5.726326E-03 + 8.586188E+02 1.512984E-02 + 3.735497E+02 3.483973E-02 + 1.689229E+02 6.570351E-02 + 7.829639E+01 7.831503E-02 + 3.552123E+01 -1.877037E-02 + 1.704144E+01 -3.062663E-01 + 8.173000E+00 -4.566429E-01 + 3.610318E+00 1.378169E-01 + 1.697047E+00 7.193676E-01 + 7.435320E-01 3.992579E-01 + 1.583440E-01 2.079933E-02 + 7.503600E-02 -7.820663E-03 +S 19 1.00 + 4.675675E+06 -2.028840E-07 + 7.001615E+05 -1.577580E-06 + 1.593373E+05 -8.298813E-06 + 4.513046E+04 -3.504154E-05 + 1.472238E+04 -1.274655E-04 + 5.314222E+03 -4.132695E-04 + 2.072018E+03 -1.212261E-03 + 8.586188E+02 -3.199318E-03 + 3.735497E+02 -7.390972E-03 + 1.689229E+02 -1.393649E-02 + 7.829639E+01 -1.678575E-02 + 3.552123E+01 4.149856E-03 + 1.704144E+01 6.797646E-02 + 8.173000E+00 1.075807E-01 + 3.610318E+00 -4.166022E-02 + 1.697047E+00 -2.128044E-01 + 7.435320E-01 -2.381360E-01 + 1.583440E-01 2.650788E-01 + 7.503600E-02 5.722774E-01 +S 19 1.00 + 4.675675E+06 -3.863053E-07 + 7.001615E+05 -3.068788E-06 + 1.593373E+05 -1.564826E-05 + 4.513046E+04 -6.883588E-05 + 1.472238E+04 -2.377367E-04 + 5.314222E+03 -8.213173E-04 + 2.072018E+03 -2.229630E-03 + 8.586188E+02 -6.467841E-03 + 3.735497E+02 -1.325463E-02 + 1.689229E+02 -2.946686E-02 + 7.829639E+01 -2.599066E-02 + 3.552123E+01 -8.499807E-03 + 1.704144E+01 1.727316E-01 + 8.173000E+00 1.512189E-01 + 3.610318E+00 3.554509E-02 + 1.697047E+00 -8.829353E-01 + 7.435320E-01 2.143530E-01 + 1.583440E-01 1.711865E+00 + 7.503600E-02 -7.140037E-01 +S 1 1.00 + 3.309100E-02 1.0000000 +P 15 1.00 + 1.926778E+04 4.100000E-05 + 4.560986E+03 3.690000E-04 + 1.481436E+03 2.128000E-03 + 5.668671E+02 9.372000E-03 + 2.404910E+02 3.315500E-02 + 1.096105E+02 9.475200E-02 + 5.259491E+01 2.090930E-01 + 2.608361E+01 3.337220E-01 + 1.326143E+01 3.322080E-01 + 6.799778E+00 1.546130E-01 + 3.393414E+00 2.090200E-02 + 1.648766E+00 -2.024000E-03 + 7.762820E-01 -1.697000E-03 + 2.980030E-01 -2.800000E-04 + 1.136180E-01 2.600000E-05 +P 15 1.00 + 1.926778E+04 -1.500000E-05 + 4.560986E+03 -1.310000E-04 + 1.481436E+03 -7.580000E-04 + 5.668671E+02 -3.363000E-03 + 2.404910E+02 -1.205400E-02 + 1.096105E+02 -3.542400E-02 + 5.259491E+01 -8.128700E-02 + 2.608361E+01 -1.369080E-01 + 1.326143E+01 -1.390190E-01 + 6.799778E+00 3.546800E-02 + 3.393414E+00 3.384980E-01 + 1.648766E+00 4.544330E-01 + 7.762820E-01 2.797930E-01 + 2.980030E-01 4.477600E-02 + 1.136180E-01 -3.151000E-03 +P 15 1.00 + 1.926778E+04 -3.000000E-06 + 4.560986E+03 -2.900000E-05 + 1.481436E+03 -1.670000E-04 + 5.668671E+02 -7.420000E-04 + 2.404910E+02 -2.662000E-03 + 1.096105E+02 -7.841000E-03 + 5.259491E+01 -1.805100E-02 + 2.608361E+01 -3.058000E-02 + 1.326143E+01 -3.131200E-02 + 6.799778E+00 1.131100E-02 + 3.393414E+00 8.999000E-02 + 1.648766E+00 1.307330E-01 + 7.762820E-01 7.180800E-02 + 2.980030E-01 -2.216580E-01 + 1.136180E-01 -5.710250E-01 +P 15 1.00 + 1.926778E+04 5.000000E-06 + 4.560986E+03 4.500000E-05 + 1.481436E+03 2.550000E-04 + 5.668671E+02 1.144000E-03 + 2.404910E+02 4.061000E-03 + 1.096105E+02 1.209500E-02 + 5.259491E+01 2.747600E-02 + 2.608361E+01 4.755700E-02 + 1.326143E+01 4.730200E-02 + 6.799778E+00 -1.441800E-02 + 3.393414E+00 -1.500620E-01 + 1.648766E+00 -1.990920E-01 + 7.762820E-01 -7.978300E-02 + 2.980030E-01 4.590350E-01 + 1.136180E-01 6.174950E-01 +P 1 1.00 + 4.162400E-02 1.0000000 +D 7 1.00 + 1.262640E+02 3.510000E-03 + 3.752260E+01 2.588400E-02 + 1.380210E+01 1.000580E-01 + 5.609270E+00 2.405470E-01 + 2.333690E+00 3.568430E-01 + 9.364150E-01 3.595790E-01 + 3.482370E-01 2.366290E-01 +D 7 1.00 + 1.262640E+02 -4.067000E-03 + 3.752260E+01 -3.005300E-02 + 1.380210E+01 -1.196200E-01 + 5.609270E+00 -2.915130E-01 + 2.333690E+00 -3.180480E-01 + 9.364150E-01 9.169800E-02 + 3.482370E-01 5.608230E-01 +D 1 1.00 + 1.123530E-01 1.0000000 +F 2 1.00 + 3.772400E+00 4.239660E-01 + 9.170000E-01 7.684290E-01 +**** +Ni 0 +S 19 1.00 + 5.045991E+06 8.208996E-06 + 7.556142E+05 6.382884E-05 + 1.719568E+05 3.355800E-04 + 4.870479E+04 1.415075E-03 + 1.588841E+04 5.124444E-03 + 5.735123E+03 1.643256E-02 + 2.236137E+03 4.689398E-02 + 9.266468E+02 1.163534E-01 + 4.031743E+02 2.350511E-01 + 1.823476E+02 3.350184E-01 + 8.454885E+01 2.534779E-01 + 3.839634E+01 7.300901E-02 + 1.845859E+01 6.184244E-02 + 8.863548E+00 6.302956E-02 + 3.916227E+00 1.008063E-02 + 1.838870E+00 -2.244528E-04 + 8.043620E-01 -5.932767E-05 + 1.697970E-01 -1.158562E-05 + 7.930600E-02 8.115109E-06 +S 19 1.00 + 5.045991E+06 -3.657849E-06 + 7.556142E+05 -2.844094E-05 + 1.719568E+05 -1.495928E-04 + 4.870479E+04 -6.313009E-04 + 1.588841E+04 -2.293052E-03 + 5.735123E+03 -7.405123E-03 + 2.236137E+03 -2.152032E-02 + 9.266468E+02 -5.560974E-02 + 4.031743E+02 -1.230176E-01 + 1.823476E+02 -2.130104E-01 + 8.454885E+01 -2.265837E-01 + 3.839634E+01 3.546796E-02 + 1.845859E+01 5.181697E-01 + 8.863548E+00 5.025630E-01 + 3.916227E+00 8.955674E-02 + 1.838870E+00 -7.031311E-03 + 8.043620E-01 -4.339167E-04 + 1.697970E-01 -5.831711E-04 + 7.930600E-02 4.228788E-04 +S 19 1.00 + 5.045991E+06 9.594149E-07 + 7.556142E+05 7.462614E-06 + 1.719568E+05 3.923843E-05 + 4.870479E+04 1.657868E-04 + 1.588841E+04 6.025905E-04 + 5.735123E+03 1.955662E-03 + 2.236137E+03 5.730391E-03 + 9.266468E+02 1.514756E-02 + 4.031743E+02 3.493499E-02 + 1.823476E+02 6.598072E-02 + 8.454885E+01 7.893083E-02 + 3.839634E+01 -1.906249E-02 + 1.845859E+01 -3.095921E-01 + 8.863548E+00 -4.558610E-01 + 3.916227E+00 1.482931E-01 + 1.838870E+00 7.134039E-01 + 8.043620E-01 3.976063E-01 + 1.697970E-01 2.295523E-02 + 7.930600E-02 -9.151758E-03 +S 19 1.00 + 5.045991E+06 -2.013753E-07 + 7.556142E+05 -1.565832E-06 + 1.719568E+05 -8.237182E-06 + 4.870479E+04 -3.478105E-05 + 1.588841E+04 -1.265265E-04 + 5.735123E+03 -4.102589E-04 + 2.236137E+03 -1.203834E-03 + 9.266468E+02 -3.179062E-03 + 4.031743E+02 -7.353828E-03 + 1.823476E+02 -1.389022E-02 + 8.454885E+01 -1.677875E-02 + 3.839634E+01 4.163378E-03 + 1.845859E+01 6.814703E-02 + 8.863548E+00 1.061029E-01 + 3.916227E+00 -4.339980E-02 + 1.838870E+00 -2.094950E-01 + 8.043620E-01 -2.310271E-01 + 1.697970E-01 2.590532E-01 + 7.930600E-02 5.691426E-01 +S 19 1.00 + 5.045991E+06 -3.924245E-07 + 7.556142E+05 -3.113909E-06 + 1.719568E+05 -1.590447E-05 + 4.870479E+04 -6.981394E-05 + 1.588841E+04 -2.417848E-04 + 5.735123E+03 -8.326195E-04 + 2.236137E+03 -2.270294E-03 + 9.266468E+02 -6.557427E-03 + 4.031743E+02 -1.354288E-02 + 1.823476E+02 -2.989768E-02 + 8.454885E+01 -2.693106E-02 + 3.839634E+01 -7.827693E-03 + 1.845859E+01 1.741667E-01 + 8.863548E+00 1.595468E-01 + 3.916227E+00 1.995550E-02 + 1.838870E+00 -8.897000E-01 + 8.043620E-01 2.486892E-01 + 1.697970E-01 1.613012E+00 + 7.930600E-02 -5.990277E-01 +S 1 1.00 + 3.467700E-02 1.0000000 +P 15 1.00 + 2.102792E+04 4.100000E-05 + 4.977560E+03 3.630000E-04 + 1.616740E+03 2.097000E-03 + 6.186718E+02 9.250000E-03 + 2.625183E+02 3.279600E-02 + 1.196907E+02 9.400400E-02 + 5.746585E+01 2.082800E-01 + 2.852829E+01 3.336540E-01 + 1.452148E+01 3.329040E-01 + 7.453850E+00 1.553720E-01 + 3.723553E+00 2.085900E-02 + 1.809813E+00 -2.440000E-03 + 8.513360E-01 -1.998000E-03 + 3.248140E-01 -3.380000E-04 + 1.195220E-01 3.500000E-05 +P 15 1.00 + 2.102792E+04 -1.500000E-05 + 4.977560E+03 -1.290000E-04 + 1.616740E+03 -7.490000E-04 + 6.186718E+02 -3.328000E-03 + 2.625183E+02 -1.194700E-02 + 1.196907E+02 -3.524200E-02 + 5.746585E+01 -8.120400E-02 + 2.852829E+01 -1.374930E-01 + 1.452148E+01 -1.392260E-01 + 7.453850E+00 3.601600E-02 + 3.723553E+00 3.391280E-01 + 1.809813E+00 4.504720E-01 + 8.513360E-01 2.817830E-01 + 3.248140E-01 4.789800E-02 + 1.195220E-01 -2.987000E-03 +P 15 1.00 + 2.102792E+04 3.000000E-06 + 4.977560E+03 2.600000E-05 + 1.616740E+03 1.520000E-04 + 6.186718E+02 6.780000E-04 + 2.625183E+02 2.427000E-03 + 1.196907E+02 7.201000E-03 + 5.746585E+01 1.657800E-02 + 2.852829E+01 2.839200E-02 + 1.452148E+01 2.859900E-02 + 7.453850E+00 -1.013200E-02 + 3.723553E+00 -8.291200E-02 + 1.809813E+00 -1.159980E-01 + 8.513360E-01 -7.279500E-02 + 3.248140E-01 1.956400E-01 + 1.195220E-01 5.670990E-01 +P 15 1.00 + 2.102792E+04 6.000000E-06 + 4.977560E+03 5.300000E-05 + 1.616740E+03 3.050000E-04 + 6.186718E+02 1.364000E-03 + 2.625183E+02 4.876000E-03 + 1.196907E+02 1.450300E-02 + 5.746585E+01 3.329600E-02 + 2.852829E+01 5.748200E-02 + 1.452148E+01 5.870200E-02 + 7.453850E+00 -1.990400E-02 + 3.723553E+00 -1.946950E-01 + 1.809813E+00 -2.396130E-01 + 8.513360E-01 -2.232000E-03 + 3.248140E-01 5.214350E-01 + 1.195220E-01 5.455400E-01 +P 1 1.00 + 4.236600E-02 1.0000000 +D 7 1.00 + 1.402527E+02 3.376000E-03 + 4.172610E+01 2.514100E-02 + 1.539810E+01 9.774600E-02 + 6.277100E+00 2.347090E-01 + 2.618500E+00 3.469450E-01 + 1.052600E+00 3.510680E-01 + 3.916000E-01 2.502550E-01 +D 7 1.00 + 1.402527E+02 -3.495000E-03 + 4.172610E+01 -2.601500E-02 + 1.539810E+01 -1.038760E-01 + 6.277100E+00 -2.520700E-01 + 2.618500E+00 -2.945800E-01 + 1.052600E+00 1.152000E-03 + 3.916000E-01 4.385890E-01 +D 1 1.00 + 1.262000E-01 1.0000000 +F 2 1.00 + 4.345500E+00 4.174290E-01 + 1.068000E+00 7.714830E-01 +**** +Cu 0 +S 19 1.00 + 5.430321E+06 7.801026E-06 + 8.131665E+05 6.065666E-05 + 1.850544E+05 3.188964E-04 + 5.241466E+04 1.344687E-03 + 1.709868E+04 4.869050E-03 + 6.171994E+03 1.561013E-02 + 2.406481E+03 4.452077E-02 + 9.972584E+02 1.103111E-01 + 4.339289E+02 2.220342E-01 + 1.962869E+02 3.133739E-01 + 9.104280E+01 2.315121E-01 + 4.138425E+01 7.640920E-02 + 1.993278E+01 1.103818E-01 + 9.581891E+00 1.094372E-01 + 4.234516E+00 1.836311E-02 + 1.985814E+00 -6.043084E-04 + 8.670830E-01 5.092245E-05 + 1.813390E-01 -5.540730E-05 + 8.365700E-02 3.969482E-05 +S 19 1.00 + 5.430321E+06 -4.404706E-06 + 8.131665E+05 -3.424801E-05 + 1.850544E+05 -1.801238E-04 + 5.241466E+04 -7.600455E-04 + 1.709868E+04 -2.759348E-03 + 6.171994E+03 -8.900970E-03 + 2.406481E+03 -2.579378E-02 + 9.972584E+02 -6.623861E-02 + 4.339289E+02 -1.445927E-01 + 1.962869E+02 -2.440110E-01 + 9.104280E+01 -2.504837E-01 + 4.138425E+01 2.852577E-02 + 1.993278E+01 5.115874E-01 + 9.581891E+00 4.928061E-01 + 4.234516E+00 8.788437E-02 + 1.985814E+00 -5.820281E-03 + 8.670830E-01 2.013508E-04 + 1.813390E-01 -5.182553E-04 + 8.365700E-02 3.731503E-04 +S 19 1.00 + 5.430321E+06 9.704682E-07 + 8.131665E+05 7.549245E-06 + 1.850544E+05 3.968892E-05 + 5.241466E+04 1.677200E-04 + 1.709868E+04 6.095101E-04 + 6.171994E+03 1.978846E-03 + 2.406481E+03 5.798049E-03 + 9.972584E+02 1.534158E-02 + 4.339289E+02 3.540484E-02 + 1.962869E+02 6.702098E-02 + 9.104280E+01 8.026945E-02 + 4.138425E+01 -1.927231E-02 + 1.993278E+01 -3.160129E-01 + 9.581891E+00 -4.573162E-01 + 4.234516E+00 1.550841E-01 + 1.985814E+00 7.202872E-01 + 8.670830E-01 3.885122E-01 + 1.813390E-01 1.924326E-02 + 8.365700E-02 -7.103807E-03 +S 19 1.00 + 5.430321E+06 -1.959354E-07 + 8.131665E+05 -1.523472E-06 + 1.850544E+05 -8.014808E-06 + 5.241466E+04 -3.383992E-05 + 1.709868E+04 -1.231191E-04 + 6.171994E+03 -3.992085E-04 + 2.406481E+03 -1.171900E-03 + 9.972584E+02 -3.096141E-03 + 4.339289E+02 -7.171993E-03 + 1.962869E+02 -1.356621E-02 + 9.104280E+01 -1.643989E-02 + 4.138425E+01 4.107628E-03 + 1.993278E+01 6.693964E-02 + 9.581891E+00 1.028221E-01 + 4.234516E+00 -4.422945E-02 + 1.985814E+00 -2.031191E-01 + 8.670830E-01 -2.230022E-01 + 1.813390E-01 2.517975E-01 + 8.365700E-02 5.650091E-01 +S 19 1.00 + 5.430321E+06 -3.532229E-07 + 8.131665E+05 -2.798812E-06 + 1.850544E+05 -1.432517E-05 + 5.241466E+04 -6.270946E-05 + 1.709868E+04 -2.179490E-04 + 6.171994E+03 -7.474316E-04 + 2.406481E+03 -2.049271E-03 + 9.972584E+02 -5.885203E-03 + 4.339289E+02 -1.226885E-02 + 1.962869E+02 -2.683147E-02 + 9.104280E+01 -2.479261E-02 + 4.138425E+01 -5.984746E-03 + 1.993278E+01 1.557124E-01 + 9.581891E+00 1.436683E-01 + 4.234516E+00 8.374103E-03 + 1.985814E+00 -7.460711E-01 + 8.670830E-01 1.244367E-01 + 1.813390E-01 1.510110E+00 + 8.365700E-02 -3.477122E-01 +S 1 1.00 + 3.626700E-02 1.0000000 +P 15 1.00 + 2.276057E+04 4.000000E-05 + 5.387679E+03 3.610000E-04 + 1.749945E+03 2.083000E-03 + 6.696653E+02 9.197000E-03 + 2.841948E+02 3.266000E-02 + 1.296077E+02 9.379500E-02 + 6.225415E+01 2.082740E-01 + 3.092964E+01 3.339930E-01 + 1.575827E+01 3.324930E-01 + 8.094211E+00 1.547280E-01 + 4.046921E+00 2.127100E-02 + 1.967869E+00 -1.690000E-03 + 9.252950E-01 -1.516000E-03 + 3.529920E-01 -2.420000E-04 + 1.273070E-01 2.300000E-05 +P 15 1.00 + 2.276057E+04 -1.500000E-05 + 5.387679E+03 -1.310000E-04 + 1.749945E+03 -7.550000E-04 + 6.696653E+02 -3.359000E-03 + 2.841948E+02 -1.208100E-02 + 1.296077E+02 -3.570300E-02 + 6.225415E+01 -8.250200E-02 + 3.092964E+01 -1.398900E-01 + 1.575827E+01 -1.407290E-01 + 8.094211E+00 3.876600E-02 + 4.046921E+00 3.426950E-01 + 1.967869E+00 4.523100E-01 + 9.252950E-01 2.770540E-01 + 3.529920E-01 4.388500E-02 + 1.273070E-01 -2.802000E-03 +P 15 1.00 + 2.276057E+04 3.000000E-06 + 5.387679E+03 2.500000E-05 + 1.749945E+03 1.470000E-04 + 6.696653E+02 6.560000E-04 + 2.841948E+02 2.351000E-03 + 1.296077E+02 7.004000E-03 + 6.225415E+01 1.613100E-02 + 3.092964E+01 2.777000E-02 + 1.575827E+01 2.756700E-02 + 8.094211E+00 -1.011500E-02 + 4.046921E+00 -8.100900E-02 + 1.967869E+00 -1.104090E-01 + 9.252950E-01 -7.173200E-02 + 3.529920E-01 1.879300E-01 + 1.273070E-01 5.646290E-01 +P 15 1.00 + 2.276057E+04 5.000000E-06 + 5.387679E+03 4.900000E-05 + 1.749945E+03 2.780000E-04 + 6.696653E+02 1.253000E-03 + 2.841948E+02 4.447000E-03 + 1.296077E+02 1.337000E-02 + 6.225415E+01 3.046900E-02 + 3.092964E+01 5.344700E-02 + 1.575827E+01 5.263900E-02 + 8.094211E+00 -1.688100E-02 + 4.046921E+00 -1.794480E-01 + 1.967869E+00 -2.095880E-01 + 9.252950E-01 -3.963300E-02 + 3.529920E-01 5.021300E-01 + 1.273070E-01 5.811110E-01 +P 1 1.00 + 4.435600E-02 1.0000000 +D 7 1.00 + 1.738970E+02 2.700000E-03 + 5.188690E+01 2.090900E-02 + 1.934190E+01 8.440800E-02 + 7.975720E+00 2.139990E-01 + 3.398230E+00 3.359800E-01 + 1.409320E+00 3.573010E-01 + 5.488580E-01 2.645780E-01 +D 7 1.00 + 1.738970E+02 -3.363000E-03 + 5.188690E+01 -2.607900E-02 + 1.934190E+01 -1.082310E-01 + 7.975720E+00 -2.822170E-01 + 3.398230E+00 -3.471900E-01 + 1.409320E+00 2.671100E-02 + 5.488580E-01 4.920470E-01 +D 1 1.00 + 1.901990E-01 1.0000000 +F 2 1.00 + 5.028600E+00 4.242800E-01 + 1.259400E+00 7.630250E-01 +**** +Zn 0 +S 19 1.00 + 5.820021E+06 8.549241E-06 + 8.715234E+05 6.647410E-05 + 1.983350E+05 3.494962E-04 + 5.617631E+04 1.473832E-03 + 1.832582E+04 5.338330E-03 + 6.614955E+03 1.712708E-02 + 2.579199E+03 4.894085E-02 + 1.068849E+03 1.217934E-01 + 4.651045E+02 2.476589E-01 + 2.104130E+02 3.582431E-01 + 9.761629E+01 2.798174E-01 + 4.438020E+01 6.857491E-02 + 2.142308E+01 -1.311092E-03 + 1.030891E+01 1.914001E-03 + 4.553645E+00 -8.759220E-04 + 2.132821E+00 3.740096E-04 + 9.296970E-01 -1.401399E-04 + 1.921470E-01 4.757132E-05 + 8.759500E-02 -3.642711E-05 +S 19 1.00 + 5.820021E+06 -2.640069E-06 + 8.715234E+05 -2.052720E-05 + 1.983350E+05 -1.079859E-04 + 5.617631E+04 -4.558577E-04 + 1.832582E+04 -1.657758E-03 + 6.614955E+03 -5.368492E-03 + 2.579199E+03 -1.571249E-02 + 1.068849E+03 -4.122558E-02 + 4.651045E+02 -9.406459E-02 + 2.104130E+02 -1.719954E-01 + 9.761629E+01 -1.958523E-01 + 4.438020E+01 4.532907E-02 + 2.142308E+01 5.244442E-01 + 1.030891E+01 5.006142E-01 + 4.553645E+00 8.945527E-02 + 2.132821E+00 -2.146262E-03 + 9.296970E-01 2.112113E-03 + 1.921470E-01 -4.133980E-04 + 8.759500E-02 3.209752E-04 +S 19 1.00 + 5.820021E+06 9.967103E-07 + 8.715234E+05 7.754163E-06 + 1.983350E+05 4.076019E-05 + 5.617631E+04 1.722811E-04 + 1.832582E+04 6.259370E-04 + 6.614955E+03 2.032855E-03 + 2.579199E+03 5.954646E-03 + 1.068849E+03 1.576640E-02 + 4.651045E+02 3.637638E-02 + 2.104130E+02 6.892343E-02 + 9.761629E+01 8.238093E-02 + 4.438020E+01 -2.011360E-02 + 2.142308E+01 -3.252526E-01 + 1.030891E+01 -4.602899E-01 + 4.553645E+00 1.635546E-01 + 2.132821E+00 7.297118E-01 + 9.296970E-01 3.769751E-01 + 1.921470E-01 1.433224E-02 + 8.759500E-02 -6.671210E-03 +S 19 1.00 + 5.820021E+06 1.995818E-07 + 8.715234E+05 1.552973E-06 + 1.983350E+05 8.161259E-06 + 5.617631E+04 3.450747E-05 + 1.832582E+04 1.253275E-04 + 6.614955E+03 4.072990E-04 + 2.579199E+03 1.192734E-03 + 1.068849E+03 3.163140E-03 + 4.651045E+02 7.303942E-03 + 2.104130E+02 1.391279E-02 + 9.761629E+01 1.670620E-02 + 4.438020E+01 -4.035586E-03 + 2.142308E+01 -6.968861E-02 + 1.030891E+01 -1.030105E-01 + 4.553645E+00 4.471442E-02 + 2.132821E+00 2.150027E-01 + 9.296970E-01 2.220163E-01 + 1.921470E-01 -3.114776E-01 + 8.759500E-02 -5.693429E-01 +S 19 1.00 + 5.820021E+06 -5.435910E-07 + 8.715234E+05 -4.336894E-06 + 1.983350E+05 -2.197572E-05 + 5.617631E+04 -9.747392E-05 + 1.832582E+04 -3.331615E-04 + 6.614955E+03 -1.166192E-03 + 2.579199E+03 -3.119308E-03 + 1.068849E+03 -9.239504E-03 + 4.651045E+02 -1.855471E-02 + 2.104130E+02 -4.281189E-02 + 9.761629E+01 -3.571095E-02 + 4.438020E+01 -1.638350E-02 + 2.142308E+01 2.644664E-01 + 1.030891E+01 2.086588E-01 + 4.553645E+00 -1.774382E-02 + 2.132821E+00 -1.353873E+00 + 9.296970E-01 8.182926E-01 + 1.921470E-01 1.695036E+00 + 8.759500E-02 -1.388656E+00 +S 1 1.00 + 3.770200E-02 1.0000000 +P 15 1.00 + 2.441198E+04 4.100000E-05 + 5.778518E+03 3.610000E-04 + 1.876862E+03 2.088000E-03 + 7.182361E+02 9.221000E-03 + 3.048327E+02 3.277300E-02 + 1.390453E+02 9.417900E-02 + 6.680417E+01 2.091320E-01 + 3.320699E+01 3.345690E-01 + 1.692816E+01 3.303590E-01 + 8.696229E+00 1.523470E-01 + 4.350510E+00 2.298400E-02 + 2.116523E+00 1.607000E-03 + 9.953870E-01 4.680000E-04 + 3.781120E-01 6.600000E-05 + 1.345790E-01 -2.000000E-06 +P 15 1.00 + 2.441198E+04 -1.500000E-05 + 5.778518E+03 -1.350000E-04 + 1.876862E+03 -7.820000E-04 + 7.182361E+02 -3.478000E-03 + 3.048327E+02 -1.252000E-02 + 1.390453E+02 -3.701600E-02 + 6.680417E+01 -8.555900E-02 + 3.320699E+01 -1.447180E-01 + 1.692816E+01 -1.434420E-01 + 8.696229E+00 4.359500E-02 + 4.350510E+00 3.488880E-01 + 2.116523E+00 4.538650E-01 + 9.953870E-01 2.685940E-01 + 3.781120E-01 3.886800E-02 + 1.345790E-01 -2.492000E-03 +P 15 1.00 + 2.441198E+04 3.000000E-06 + 5.778518E+03 2.500000E-05 + 1.876862E+03 1.440000E-04 + 7.182361E+02 6.450000E-04 + 3.048327E+02 2.311000E-03 + 1.390453E+02 6.898000E-03 + 6.680417E+01 1.588200E-02 + 3.320699E+01 2.735000E-02 + 1.692816E+01 2.662100E-02 + 8.696229E+00 -1.085800E-02 + 4.350510E+00 -7.985300E-02 + 2.116523E+00 -1.061270E-01 + 9.953870E-01 -6.888300E-02 + 3.781120E-01 1.843850E-01 + 1.345790E-01 5.617880E-01 +P 15 1.00 + 2.441198E+04 5.000000E-06 + 5.778518E+03 4.200000E-05 + 1.876862E+03 2.380000E-04 + 7.182361E+02 1.088000E-03 + 3.048327E+02 3.821000E-03 + 1.390453E+02 1.164400E-02 + 6.680417E+01 2.616700E-02 + 3.320699E+01 4.675000E-02 + 1.692816E+01 4.330900E-02 + 8.696229E+00 -1.342900E-02 + 4.350510E+00 -1.538970E-01 + 2.116523E+00 -1.674130E-01 + 9.953870E-01 -8.499500E-02 + 3.781120E-01 4.508130E-01 + 1.345790E-01 6.408690E-01 +P 1 1.00 + 4.628200E-02 1.0000000 +D 7 1.00 + 2.056177E+02 2.342000E-03 + 6.144981E+01 1.860600E-02 + 2.305689E+01 7.710200E-02 + 9.577739E+00 2.020260E-01 + 4.133734E+00 3.294540E-01 + 1.747518E+00 3.609760E-01 + 6.995600E-01 2.716570E-01 +D 7 1.00 + 2.056177E+02 3.279000E-03 + 6.144981E+01 2.617600E-02 + 2.305689E+01 1.113670E-01 + 9.577739E+00 3.045810E-01 + 4.133734E+00 3.862990E-01 + 1.747518E+00 -5.837500E-02 + 6.995600E-01 -5.388760E-01 +D 1 1.00 + 2.516080E-01 1.0000000 +F 2 1.00 + 5.734400E+00 4.311320E-01 + 1.461500E+00 7.546420E-01 +**** +Ga 0 +S 13 1.00 + 485130.0000000 0.0002068 + 72719.0000000 0.0016047 + 16552.0000000 0.0083402 + 4687.8000000 0.0340248 + 1529.1000000 0.1111699 + 551.8100000 0.2753930 + 215.1800000 0.4212628 + 88.1740000 0.2738906 + 27.1540000 0.0283720 + 11.5030000 -0.0062931 + 3.3018000 0.0020606 + 1.3314000 -0.0009269 + 0.1931600 0.0002273 +S 13 1.00 + 485130.0000000 -0.0000643 + 72719.0000000 -0.0004954 + 16552.0000000 -0.0026208 + 4687.8000000 -0.0106839 + 1529.1000000 -0.0374123 + 551.8100000 -0.1009636 + 215.1800000 -0.2145141 + 88.1740000 -0.1752297 + 27.1540000 0.4831599 + 11.5030000 0.6323677 + 3.3018000 0.0684942 + 1.3314000 -0.0118712 + 0.1931600 0.0026652 +S 13 1.00 + 485130.0000000 0.0000245 + 72719.0000000 0.0001895 + 16552.0000000 0.0009964 + 4687.8000000 0.0041082 + 1529.1000000 0.0142938 + 551.8100000 0.0398034 + 215.1800000 0.0855940 + 88.1740000 0.0796305 + 27.1540000 -0.2939107 + 11.5030000 -0.5263914 + 3.3018000 0.5864249 + 1.3314000 0.6726347 + 0.1931600 0.0276123 +S 13 1.00 + 485130.0000000 -0.0000057 + 72719.0000000 -0.0000440 + 16552.0000000 -0.0002305 + 4687.8000000 -0.0009544 + 1529.1000000 -0.0033055 + 551.8100000 -0.0092888 + 215.1800000 -0.0198644 + 88.1740000 -0.0190888 + 27.1540000 0.0732356 + 11.5030000 0.1341526 + 3.3018000 -0.1831929 + 1.3314000 -0.3571308 + 0.1931600 0.6246013 +S 1 1.00 + 0.0708950 1.0000000 +P 10 1.00 + 3248.6000000 0.0015260 + 769.9700000 0.0127486 + 248.2000000 0.0633742 + 93.3640000 0.2065775 + 38.2510000 0.4092963 + 16.4220000 0.3919183 + 6.7918000 0.1029441 + 2.8336000 -0.0007203 + 1.1062000 0.0020950 + 0.2225000 -0.0003290 +P 10 1.00 + 3248.6000000 -0.0005803 + 769.9700000 -0.0048647 + 248.2000000 -0.0248394 + 93.3640000 -0.0841759 + 38.2510000 -0.1800885 + 16.4220000 -0.1585555 + 6.7918000 0.2355376 + 2.8336000 0.5820587 + 1.1062000 0.3366619 + 0.2225000 0.0171912 +P 10 1.00 + 3248.6000000 0.0000950 + 769.9700000 0.0007832 + 248.2000000 0.0040855 + 93.3640000 0.0135987 + 38.2510000 0.0302695 + 16.4220000 0.0241790 + 6.7918000 -0.0423777 + 2.8336000 -0.1265661 + 1.1062000 -0.0499444 + 0.2225000 0.4494199 +P 1 1.00 + 0.0617720 1.0000000 +D 5 1.00 + 65.3370000 0.0273825 + 18.4970000 0.1510805 + 6.3150000 0.3749217 + 2.1635000 0.4750799 + 0.6667500 0.2982750 +D 1 1.00 + 0.1884000 1.0000000 +**** +Ge 0 +S 13 1.00 + 521800.0000000 0.0002045 + 78214.0000000 0.0015868 + 17803.0000000 0.0082480 + 5041.9000000 0.0336649 + 1644.5000000 0.1101249 + 593.4300000 0.2735607 + 231.3600000 0.4210670 + 94.7620000 0.2766791 + 29.2740000 0.0292180 + 12.4500000 -0.0065903 + 3.6463000 0.0022430 + 1.5025000 -0.0010382 + 0.2450300 0.0002695 +S 13 1.00 + 521800.0000000 -0.0000638 + 78214.0000000 -0.0004916 + 17803.0000000 -0.0026002 + 5041.9000000 -0.0106080 + 1644.5000000 -0.0371602 + 593.4300000 -0.1005790 + 231.3600000 -0.2143977 + 94.7620000 -0.1782617 + 29.2740000 0.4777404 + 12.4500000 0.6355983 + 3.6463000 0.0722174 + 1.5025000 -0.0127265 + 0.2450300 0.0029608 +S 13 1.00 + 521800.0000000 0.0000246 + 78214.0000000 0.0001900 + 17803.0000000 0.0009993 + 5041.9000000 0.0041200 + 1644.5000000 0.0143557 + 593.4300000 0.0400375 + 231.3600000 0.0865794 + 94.7620000 0.0815861 + 29.2740000 -0.2934770 + 12.4500000 -0.5367983 + 3.6463000 0.5637985 + 1.5025000 0.6947182 + 0.2450300 0.0315730 +S 13 1.00 + 521800.0000000 -0.0000063 + 78214.0000000 -0.0000486 + 17803.0000000 -0.0002553 + 5041.9000000 -0.0010560 + 1644.5000000 -0.0036674 + 593.4300000 -0.0103053 + 231.3600000 -0.0222200 + 94.7620000 -0.0215275 + 29.2740000 0.0806752 + 12.4500000 0.1524958 + 3.6463000 -0.1980528 + 1.5025000 -0.4073954 + 0.2450300 0.6477288 +S 1 1.00 + 0.0915940 1.0000000 +P 10 1.00 + 3568.1000000 0.0014591 + 845.7200000 0.0122176 + 272.7400000 0.0610490 + 102.6800000 0.2008039 + 42.1480000 0.4038942 + 18.1490000 0.3970027 + 7.5934000 0.1105481 + 3.1964000 0.0000768 + 1.2743000 0.0021263 + 0.2825800 -0.0003744 +P 10 1.00 + 3568.1000000 -0.0005630 + 845.7200000 -0.0047354 + 272.7400000 -0.0242643 + 102.6800000 -0.0830900 + 42.1480000 -0.1800247 + 18.1490000 -0.1663295 + 7.5934000 0.2193717 + 3.1964000 0.5820239 + 1.2743000 0.3477720 + 0.2825800 0.0192455 +P 10 1.00 + 3568.1000000 0.0001115 + 845.7200000 0.0009212 + 272.7400000 0.0048273 + 102.6800000 0.0162272 + 42.1480000 0.0366354 + 18.1490000 0.0307867 + 7.5934000 -0.0480643 + 3.1964000 -0.1559804 + 1.2743000 -0.0632370 + 0.2825800 0.5040819 +P 1 1.00 + 0.0840900 1.0000000 +D 5 1.00 + 74.7620000 0.0257684 + 21.3020000 0.1454421 + 7.3436000 0.3713721 + 2.5651000 0.4800002 + 0.8197000 0.2896800 +D 1 1.00 + 0.2470000 1.0000000 +**** +As 0 +S 13 1.00 + 559583.7900000 0.0002024 + 83879.3300000 0.0015709 + 19092.6680000 0.0081662 + 5407.3925000 0.0333399 + 1763.7559000 0.1091726 + 636.4567200 0.2718853 + 248.0884300 0.4208509 + 101.5785100 0.2792257 + 31.4755130 0.0300301 + 13.4372820 -0.0068804 + 4.0086900 0.0024240 + 1.6849290 -0.0011491 + 0.3000190 0.0003095 +S 13 1.00 + 559583.7900000 -0.0000634 + 83879.3300000 -0.0004883 + 19092.6680000 -0.0025821 + 5407.3925000 -0.0105402 + 1763.7559000 -0.0369325 + 636.4567200 -0.1002355 + 248.0884300 -0.2142948 + 101.5785100 -0.1810526 + 31.4755130 0.4725410 + 13.4372820 0.6386194 + 4.0086900 0.0758107 + 1.6849290 -0.0135278 + 0.3000190 0.0031970 +S 13 1.00 + 559583.7900000 0.0000246 + 83879.3300000 0.0001907 + 19092.6680000 0.0010031 + 5407.3925000 0.0041353 + 1763.7559000 0.0144259 + 636.4567200 0.0402962 + 248.0884300 0.0875670 + 101.5785100 0.0835178 + 31.4755130 -0.2932935 + 13.4372820 -0.5470520 + 4.0086900 0.5438738 + 1.6849290 0.7143591 + 0.3000190 0.0353443 +S 13 1.00 + 559583.7900000 -0.0000068 + 83879.3300000 -0.0000525 + 19092.6680000 -0.0002756 + 5407.3925000 -0.0011389 + 1763.7559000 -0.0039646 + 636.4567200 -0.0111423 + 248.0884300 -0.0241991 + 101.5785100 -0.0236339 + 31.4755130 0.0866317 + 13.4372820 0.1685839 + 4.0086900 -0.2091425 + 1.6849290 -0.4500918 + 0.3000190 0.6603978 +S 1 1.00 + 0.1135870 1.0000000 +P 10 1.00 + 3886.3564000 0.0014097 + 921.2020100 0.0118277 + 297.1931900 0.0593280 + 111.9750800 0.1965115 + 46.0346210 0.3997891 + 19.8741940 0.4004653 + 8.3860880 0.1164196 + 3.5587280 0.0006918 + 1.4472820 0.0021633 + 0.3477790 -0.0004150 +P 10 1.00 + 3886.3564000 -0.0005519 + 921.2020100 -0.0046550 + 297.1931900 -0.0239176 + 111.9750800 -0.0825627 + 46.0346210 -0.1806791 + 19.8741940 -0.1724848 + 8.3860880 0.2086700 + 3.5587280 0.5823622 + 1.4472820 0.3537465 + 0.3477790 0.0206439 +P 10 1.00 + 3886.3564000 0.0001236 + 921.2020100 0.0010240 + 297.1931900 0.0053805 + 111.9750800 0.0182443 + 46.0346210 0.0415979 + 19.8741940 0.0362998 + 8.3860880 -0.0523569 + 3.5587280 -0.1791667 + 1.4472820 -0.0740477 + 0.3477790 0.5358094 +P 1 1.00 + 0.1076990 1.0000000 +D 5 1.00 + 84.4242340 0.0245288 + 24.1815890 0.1411340 + 8.4017770 0.3687579 + 2.9805020 0.4840626 + 0.9790030 0.2824434 +D 1 1.00 + 0.3098000 1.0000000 +**** +Se 0 +S 13 1.00 + 598990.0000000 0.0002004 + 89783.0000000 0.0015554 + 20435.0000000 0.0080872 + 5786.9000000 0.0330344 + 1887.3000000 0.1082924 + 680.9700000 0.2703361 + 265.3900000 0.4206236 + 108.6300000 0.2815922 + 33.7600000 0.0308110 + 14.4650000 -0.0071617 + 4.3890000 0.0026022 + 1.8783000 -0.0012583 + 0.3585900 0.0003465 +S 13 1.00 + 598990.0000000 -0.0000629 + 89783.0000000 -0.0004850 + 20435.0000000 -0.0025644 + 5786.9000000 -0.0104761 + 1887.3000000 -0.0367223 + 680.9700000 -0.0999225 + 265.3900000 -0.2141973 + 108.6300000 -0.1836593 + 33.7600000 0.4675454 + 14.4650000 0.6414740 + 4.3890000 0.0792569 + 1.8783000 -0.0142697 + 0.3585900 0.0033792 +S 13 1.00 + 598990.0000000 0.0000247 + 89783.0000000 0.0001913 + 20435.0000000 0.0010068 + 5786.9000000 0.0041514 + 1887.3000000 0.0144991 + 680.9700000 0.0405658 + 265.3900000 0.0885364 + 108.6300000 0.0854212 + 33.7600000 -0.2932581 + 14.4650000 -0.5570727 + 4.3890000 0.5261436 + 1.8783000 0.7320371 + 0.3585900 0.0388246 +S 13 1.00 + 598990.0000000 -0.0000072 + 89783.0000000 -0.0000559 + 20435.0000000 -0.0002938 + 5786.9000000 -0.0012136 + 1887.3000000 -0.0042340 + 680.9700000 -0.0119035 + 265.3900000 -0.0260206 + 108.6300000 -0.0256148 + 33.7600000 0.0919427 + 14.4650000 0.1838700 + 4.3890000 -0.2188461 + 1.8783000 -0.4896524 + 0.3585900 0.6775818 +S 1 1.00 + 0.1364900 1.0000000 +P 10 1.00 + 4135.6000000 0.0014127 + 980.3400000 0.0118588 + 316.3500000 0.0595153 + 119.2500000 0.1972201 + 49.0680000 0.4007439 + 21.2120000 0.3994740 + 8.9462000 0.1153364 + 3.8236000 0.0002219 + 1.5883000 0.0022838 + 0.4096900 -0.0004756 +P 10 1.00 + 4135.6000000 -0.0005610 + 980.3400000 -0.0047340 + 316.3500000 -0.0243504 + 119.2500000 -0.0841071 + 49.0680000 -0.1841384 + 21.2120000 -0.1735004 + 8.9462000 0.2167263 + 3.8236000 0.5850099 + 1.5883000 0.3416816 + 0.4096900 0.0199125 +P 10 1.00 + 4135.6000000 0.0001366 + 980.3400000 0.0011308 + 316.3500000 0.0059581 + 119.2500000 0.0201866 + 49.0680000 0.0461939 + 21.2120000 0.0394050 + 8.9462000 -0.0592846 + 3.8236000 -0.2014663 + 1.5883000 -0.0687821 + 0.4096900 0.5595944 +P 1 1.00 + 0.1245900 1.0000000 +D 5 1.00 + 94.4720000 0.0234982 + 27.1800000 0.1375183 + 9.5068000 0.3664824 + 3.4168000 0.4874717 + 1.1479000 0.2765769 +D 1 1.00 + 0.3682000 1.0000000 +**** +Br 0 +S 13 1.00 + 640100.0000000 0.0001984 + 95938.0000000 0.0015400 + 21833.0000000 0.0080096 + 6181.9000000 0.0327341 + 2015.7000000 0.1074480 + 727.1000000 0.2688946 + 283.2800000 0.4204411 + 115.9100000 0.2838041 + 36.1240000 0.0315455 + 15.5320000 -0.0074268 + 4.7857000 0.0027728 + 2.0817000 -0.0013635 + 0.4202800 0.0003812 +S 13 1.00 + 640100.0000000 -0.0000625 + 95938.0000000 -0.0004816 + 21833.0000000 -0.0025466 + 6181.9000000 -0.0104112 + 2015.7000000 -0.0365179 + 727.1000000 -0.0996295 + 283.2800000 -0.2141310 + 115.9100000 -0.1860911 + 36.1240000 0.4628261 + 15.5320000 0.6441141 + 4.7857000 0.0825502 + 2.0817000 -0.0149694 + 0.4202800 0.0035288 +S 13 1.00 + 640100.0000000 0.0000248 + 95938.0000000 0.0001919 + 21833.0000000 0.0010100 + 6181.9000000 0.0041659 + 2015.7000000 0.0145683 + 727.1000000 0.0408345 + 283.2800000 0.0894859 + 115.9100000 0.0872786 + 36.1240000 -0.2933644 + 15.5320000 -0.5667109 + 4.7857000 0.5105658 + 2.0817000 0.7477214 + 0.4202800 0.0421512 +S 13 1.00 + 640100.0000000 -0.0000076 + 95938.0000000 -0.0000588 + 21833.0000000 -0.0003092 + 6181.9000000 -0.0012766 + 2015.7000000 -0.0044634 + 727.1000000 -0.0125575 + 283.2800000 -0.0276145 + 115.9100000 -0.0273945 + 36.1240000 0.0964094 + 15.5320000 0.1976871 + 4.7857000 -0.2266693 + 2.0817000 -0.5241165 + 0.4202800 0.6889865 +S 1 1.00 + 0.1606900 1.0000000 +P 10 1.00 + 4340.8000000 0.0014448 + 1028.9000000 0.0121288 + 332.0200000 0.0608077 + 125.1600000 0.2009358 + 51.5110000 0.4047419 + 22.2810000 0.3957151 + 9.3417000 0.1102213 + 4.0132000 -0.0009090 + 1.7002000 0.0024832 + 0.4719400 -0.0005744 +P 10 1.00 + 4340.8000000 -0.0005819 + 1028.9000000 -0.0049065 + 332.0200000 -0.0252514 + 125.1600000 -0.0869445 + 51.5110000 -0.1893422 + 22.2810000 -0.1710882 + 9.3417000 0.2368755 + 4.0132000 0.5898400 + 1.7002000 0.3171944 + 0.4719400 0.0179833 +P 10 1.00 + 4340.8000000 0.0001518 + 1028.9000000 0.0012563 + 332.0200000 0.0066224 + 125.1600000 0.0223816 + 51.5110000 0.0509717 + 22.2810000 0.0414009 + 9.3417000 -0.0703970 + 4.0132000 -0.2232540 + 1.7002000 -0.0564179 + 0.4719400 0.5808079 +P 1 1.00 + 0.1442100 1.0000000 +D 5 1.00 + 104.8300000 0.0226583 + 30.2720000 0.1345895 + 10.6490000 0.3647181 + 3.8696000 0.4904196 + 1.3239000 0.2713885 +D 1 1.00 + 0.4098000 1.0000000 +**** +Kr 0 +S 13 1.00 + 681358.8200000 0.0001969 + 102126.4800000 0.0015286 + 23243.7100000 0.0079500 + 6582.0073000 0.0324938 + 2146.4286000 0.1067240 + 774.3378200 0.2675701 + 301.6702000 0.4201851 + 123.4118400 0.2858015 + 38.5675510 0.0322461 + 16.6373790 -0.0076828 + 5.1987950 0.0029393 + 2.2948140 -0.0014662 + 0.4852110 0.0004144 +S 13 1.00 + 681358.8200000 -0.0000622 + 102126.4800000 -0.0004794 + 23243.7100000 -0.0025341 + 6582.0073000 -0.0103636 + 2146.4286000 -0.0363516 + 774.3378200 -0.0993737 + 301.6702000 -0.2140610 + 123.4118400 -0.1883192 + 38.5675510 0.4583816 + 16.6373790 0.6465664 + 5.1987950 0.0856579 + 2.2948140 -0.0156123 + 0.4852110 0.0036490 +S 13 1.00 + 681358.8200000 0.0000249 + 102126.4800000 0.0001928 + 23243.7100000 0.0010149 + 6582.0073000 0.0041857 + 2146.4286000 0.0146459 + 774.3378200 0.0411070 + 301.6702000 0.0903955 + 123.4118400 0.0890623 + 38.5675510 -0.2935718 + 16.6373790 -0.5759698 + 5.1987950 0.4968578 + 2.2948140 0.7616895 + 0.4852110 0.0453267 +S 13 1.00 + 681358.8200000 -0.0000079 + 102126.4800000 -0.0000614 + 23243.7100000 -0.0003230 + 6582.0073000 -0.0013330 + 2146.4286000 -0.0046672 + 774.3378200 -0.0131352 + 301.6702000 -0.0290342 + 123.4118400 -0.0290173 + 38.5675510 0.1002664 + 16.6373790 0.2103818 + 5.1987950 -0.2332471 + 2.2948140 -0.5546497 + 0.4852110 0.6969522 +S 1 1.00 + 0.1862700 1.0000000 +P 10 1.00 + 4474.2699000 0.0015195 + 1060.5790000 0.0127424 + 342.2081200 0.0636465 + 128.9984200 0.2085635 + 53.0872220 0.4122423 + 22.9594250 0.3878103 + 9.5073000 0.1003820 + 4.0830550 -0.0025078 + 1.7504460 0.0027139 + 0.5291900 -0.0006977 +P 10 1.00 + 4474.2699000 -0.0006208 + 1060.5790000 -0.0052212 + 342.2081200 -0.0268463 + 128.9984200 -0.0915823 + 53.0872220 -0.1968164 + 22.9594250 -0.1634750 + 9.5073000 0.2738204 + 4.0830550 0.5981592 + 1.7504460 0.2750453 + 0.5291900 0.0127706 +P 10 1.00 + 4474.2699000 0.0001701 + 1060.5790000 0.0014064 + 342.2081200 0.0073963 + 128.9984200 0.0248254 + 53.0872220 0.0557155 + 22.9594250 0.0412132 + 9.5073000 -0.0876057 + 4.0830550 -0.2440586 + 1.7504460 -0.0295007 + 0.5291900 0.6012295 +P 1 1.00 + 0.1643690 1.0000000 +D 5 1.00 + 115.5253200 0.0219557 + 33.4652460 0.1321620 + 11.8304590 0.3633484 + 4.3397710 0.4929582 + 1.5075240 0.2667560 +D 1 1.00 + 0.5030000 1.0000000 +**** + + diff --git a/basis/dz.gbf b/basis/dz.gbf new file mode 100644 index 0000000..a971c54 --- /dev/null +++ b/basis/dz.gbf @@ -0,0 +1,333 @@ +cartesian + +! DZ (Dunning) EMSL Basis Set Exchange Library 2/9/11 8:30 AM +! T.H. DUNNING, JR., J. CHEM. PHYS. 53, 2823 (1970). +! T.H. DUNNING, JR. AND P.J. HAY, IN METHODS OF ELECTRONIC STRUCTURE THEORY, +! VOL. 2, H.F. SCHAEFER III, ED., PLENUM PRESS (1977). +! + + +**** +H 0 +S 3 1.00 + 19.2406000 0.0328280 + 2.8992000 0.2312080 + 0.6534000 0.8172380 +S 1 1.00 + 0.1776000 1.0000000 +**** +Li 0 +S 6 1.00 + 921.3000000 0.0013670 + 138.7000000 0.0104250 + 31.9400000 0.0498590 + 9.3530000 0.1607010 + 3.1580000 0.3446040 + 1.1570000 0.4251970 +S 1 1.00 + 0.4446000 1.0000000 +S 1 1.00 + 0.0766600 1.0000000 +S 1 1.00 + 0.0286400 1.0000000 +P 3 1.00 + 1.4880000 0.0387700 + 0.2667000 0.2362570 + 0.0720100 0.8304480 +P 1 1.00 + 0.0237000 1.0000000 +**** +B 0 +S 6 1.00 + 2788.4100000 0.0021220 + 419.0390000 0.0161710 + 96.4683000 0.0783560 + 28.0694000 0.2632500 + 9.3760000 0.5967290 + 1.3057000 0.2303970 +S 1 1.00 + 3.4062000 1.0000000 +S 1 1.00 + 0.3245000 1.0000000 +S 1 1.00 + 0.1022000 1.0000000 +P 4 1.00 + 11.3413000 0.0179870 + 2.4360000 0.1103390 + 0.6836000 0.3831110 + 0.2134000 0.6478600 +P 1 1.00 + 0.0701000 1.0000000 +**** +C 0 +S 6 1.00 + 4232.6100000 0.0020290 + 634.8820000 0.0155350 + 146.0970000 0.0754110 + 42.4974000 0.2571210 + 14.1892000 0.5965550 + 1.9666000 0.2425170 +S 1 1.00 + 5.1477000 1.0000000 +S 1 1.00 + 0.4962000 1.0000000 +S 1 1.00 + 0.1533000 1.0000000 +P 4 1.00 + 18.1557000 0.0185340 + 3.9864000 0.1154420 + 1.1429000 0.3862060 + 0.3594000 0.6400890 +P 1 1.00 + 0.1146000 1.0000000 +**** +N 0 +S 6 1.00 + 5909.4400000 0.0020040 + 887.4510000 0.0153100 + 204.7490000 0.0742930 + 59.8376000 0.2533640 + 19.9981000 0.6005760 + 2.6860000 0.2451110 +S 1 1.00 + 7.1927000 1.0000000 +S 1 1.00 + 0.7000000 1.0000000 +S 1 1.00 + 0.2133000 1.0000000 +P 4 1.00 + 26.7860000 0.0182570 + 5.9564000 0.1164070 + 1.7074000 0.3901110 + 0.5314000 0.6372210 +P 1 1.00 + 0.1654000 1.0000000 +**** +O 0 +S 6 1.00 + 7816.5400000 0.0020310 + 1175.8200000 0.0154360 + 273.1880000 0.0737710 + 81.1696000 0.2476060 + 27.1836000 0.6118320 + 3.4136000 0.2412050 +S 1 1.00 + 9.5322000 1.0000000 +S 1 1.00 + 0.9398000 1.0000000 +S 1 1.00 + 0.2846000 1.0000000 +P 4 1.00 + 35.1832000 0.0195800 + 7.9040000 0.1241890 + 2.3051000 0.3947270 + 0.7171000 0.6273750 +P 1 1.00 + 0.2137000 1.0000000 +**** +F 0 +S 6 1.00 + 9994.7900000 0.0020170 + 1506.0300000 0.0152950 + 350.2690000 0.0731100 + 104.0530000 0.2464200 + 34.8432000 0.6125930 + 4.3688000 0.2424890 +S 1 1.00 + 12.2164000 1.0000000 +S 1 1.00 + 1.2078000 1.0000000 +S 1 1.00 + 0.3634000 1.0000000 +P 4 1.00 + 44.3555000 0.0208680 + 10.0820000 0.1300920 + 2.9959000 0.3962190 + 0.9383000 0.6203680 +P 1 1.00 + 0.2733000 1.0000000 +**** +Ne 0 +S 7 1.00 + 12100.0000000 0.0012000 + 1821.0000000 0.0090920 + 432.8000000 0.0413050 + 132.5000000 0.1378670 + 43.7700000 0.3624330 + 14.9100000 0.4722470 + 5.1270000 0.1300350 +S 1 1.00 + 14.9100000 1.0000000 +S 1 1.00 + 1.4910000 1.0000000 +S 1 1.00 + 0.4468000 1.0000000 +P 4 1.00 + 56.4500000 0.0208750 + 12.9200000 0.1300320 + 3.8650000 0.3956790 + 1.2030000 0.6214500 +P 1 1.00 + 0.3444000 1.0000000 +**** +Al 0 +S 5 1.00 + 23490.0000000 0.0025090 + 3548.0000000 0.0189860 + 823.5000000 0.0929140 + 237.7000000 0.3359350 + 78.6000000 0.6473910 +S 3 1.00 + 78.6000000 0.1119370 + 29.0500000 0.6559760 + 11.6200000 0.2833490 +S 1 1.00 + 3.4650000 1.0000000 +S 1 1.00 + 1.2330000 1.0000000 +S 1 1.00 + 0.2018000 1.0000000 +S 1 1.00 + 0.0780500 1.0000000 +P 4 1.00 + 141.5000000 0.0178820 + 33.2200000 0.1203750 + 10.3900000 0.4115800 + 3.5930000 0.5953530 +P 2 1.00 + 3.5930000 0.2117580 + 1.2420000 0.8377950 +P 1 1.00 + 0.3040000 1.0000000 +P 1 1.00 + 0.0762900 1.0000000 +**** +Si 0 +S 5 1.00 + 26740.0000000 0.0025830 + 4076.0000000 0.0192370 + 953.3000000 0.0938430 + 274.6000000 0.3412350 + 90.6800000 0.6416750 +S 3 1.00 + 90.6800000 0.1214390 + 33.5300000 0.6531430 + 13.4600000 0.2776240 +S 1 1.00 + 4.0510000 1.0000000 +S 1 1.00 + 1.4840000 1.0000000 +S 1 1.00 + 0.2704000 1.0000000 +S 1 1.00 + 0.0993200 1.0000000 +P 4 1.00 + 163.7000000 0.0114980 + 38.3500000 0.0777260 + 12.0200000 0.2635950 + 4.1850000 0.7582690 +P 2 1.00 + 4.1850000 -1.1730450 + 1.4830000 1.4383350 +P 1 1.00 + 0.3350000 1.0000000 +P 1 1.00 + 0.0969900 1.0000000 +**** +P 0 +S 5 1.00 + 30630.0000000 0.0026190 + 4684.0000000 0.0194790 + 1094.0000000 0.0952070 + 315.3000000 0.3457420 + 104.1000000 0.6362880 +S 3 1.00 + 104.1000000 0.1307060 + 38.4200000 0.6502740 + 15.4500000 0.2723080 +S 1 1.00 + 4.6560000 1.0000000 +S 1 1.00 + 1.7590000 1.0000000 +S 1 1.00 + 0.3409000 1.0000000 +S 1 1.00 + 0.1238000 1.0000000 +P 4 1.00 + 187.7000000 0.0131580 + 43.6300000 0.0904940 + 13.6000000 0.3050540 + 4.7660000 0.7135790 +P 2 1.00 + 4.7660000 -0.7925730 + 1.7430000 1.4299870 +P 1 1.00 + 0.4192000 1.0000000 +P 1 1.00 + 0.1245000 1.0000000 +**** +S 0 +S 5 1.00 + 35710.0000000 0.0025650 + 5397.0000000 0.0194050 + 1250.0000000 0.0955950 + 359.9000000 0.3457930 + 119.2000000 0.6357940 +S 3 1.00 + 119.2000000 0.1300960 + 43.9800000 0.6513010 + 17.6300000 0.2719550 +S 1 1.00 + 5.4200000 1.0000000 +S 1 1.00 + 2.0740000 1.0000000 +S 1 1.00 + 0.4246000 1.0000000 +S 1 1.00 + 0.1519000 1.0000000 +P 4 1.00 + 212.9000000 0.0140910 + 49.6000000 0.0966850 + 15.5200000 0.3238740 + 5.4760000 0.6917560 +P 2 1.00 + 5.4760000 -0.6267370 + 2.0440000 1.3770510 +P 1 1.00 + 0.5218000 1.0000000 +P 1 1.00 + 0.1506000 1.0000000 +**** +Cl 0 +S 5 1.00 + 40850.0000000 0.0025320 + 6179.0000000 0.0192070 + 1425.0000000 0.0952570 + 409.2000000 0.3455890 + 135.5000000 0.6364010 +S 3 1.00 + 135.5000000 0.1209560 + 50.1300000 0.6485110 + 20.2100000 0.2754870 +S 1 1.00 + 6.2830000 1.0000000 +S 1 1.00 + 2.4600000 1.0000000 +S 1 1.00 + 0.5271000 1.0000000 +S 1 1.00 + 0.1884000 1.0000000 +P 4 1.00 + 240.8000000 0.0145950 + 56.5600000 0.0990470 + 17.8500000 0.3305620 + 6.3500000 0.6828740 +P 2 1.00 + 6.3500000 -0.5617850 + 2.4030000 1.3519010 +P 1 1.00 + 0.6410000 1.0000000 +P 1 1.00 + 0.1838000 1.0000000 +**** + diff --git a/basis/sto-3g.gbf b/basis/sto-3g.gbf new file mode 100644 index 0000000..e3133e1 --- /dev/null +++ b/basis/sto-3g.gbf @@ -0,0 +1,1142 @@ + + +spherical + +!---------------------------------------------------------------------- +! Basis Set Exchange +! Version v0.8.12 +! https://www.basissetexchange.org +!---------------------------------------------------------------------- +! Basis set: STO-3G +! Description: STO-3G Minimal Basis (3 functions/AO) +! Role: orbital +! Version: 1 (Data from Gaussian09) +!---------------------------------------------------------------------- + + +**** +H 0 +S 3 1.00 + 0.3425250914D+01 0.1543289673D+00 + 0.6239137298D+00 0.5353281423D+00 + 0.1688554040D+00 0.4446345422D+00 +**** +He 0 +S 3 1.00 + 0.6362421394D+01 0.1543289673D+00 + 0.1158922999D+01 0.5353281423D+00 + 0.3136497915D+00 0.4446345422D+00 +**** +Li 0 +S 3 1.00 + 0.1611957475D+02 0.1543289673D+00 + 0.2936200663D+01 0.5353281423D+00 + 0.7946504870D+00 0.4446345422D+00 +SP 3 1.00 + 0.6362897469D+00 -0.9996722919D-01 0.1559162750D+00 + 0.1478600533D+00 0.3995128261D+00 0.6076837186D+00 + 0.4808867840D-01 0.7001154689D+00 0.3919573931D+00 +**** +Be 0 +S 3 1.00 + 0.3016787069D+02 0.1543289673D+00 + 0.5495115306D+01 0.5353281423D+00 + 0.1487192653D+01 0.4446345422D+00 +SP 3 1.00 + 0.1314833110D+01 -0.9996722919D-01 0.1559162750D+00 + 0.3055389383D+00 0.3995128261D+00 0.6076837186D+00 + 0.9937074560D-01 0.7001154689D+00 0.3919573931D+00 +**** +B 0 +S 3 1.00 + 0.4879111318D+02 0.1543289673D+00 + 0.8887362172D+01 0.5353281423D+00 + 0.2405267040D+01 0.4446345422D+00 +SP 3 1.00 + 0.2236956142D+01 -0.9996722919D-01 0.1559162750D+00 + 0.5198204999D+00 0.3995128261D+00 0.6076837186D+00 + 0.1690617600D+00 0.7001154689D+00 0.3919573931D+00 +**** +C 0 +S 3 1.00 + 0.7161683735D+02 0.1543289673D+00 + 0.1304509632D+02 0.5353281423D+00 + 0.3530512160D+01 0.4446345422D+00 +SP 3 1.00 + 0.2941249355D+01 -0.9996722919D-01 0.1559162750D+00 + 0.6834830964D+00 0.3995128261D+00 0.6076837186D+00 + 0.2222899159D+00 0.7001154689D+00 0.3919573931D+00 +**** +N 0 +S 3 1.00 + 0.9910616896D+02 0.1543289673D+00 + 0.1805231239D+02 0.5353281423D+00 + 0.4885660238D+01 0.4446345422D+00 +SP 3 1.00 + 0.3780455879D+01 -0.9996722919D-01 0.1559162750D+00 + 0.8784966449D+00 0.3995128261D+00 0.6076837186D+00 + 0.2857143744D+00 0.7001154689D+00 0.3919573931D+00 +**** +O 0 +S 3 1.00 + 0.1307093214D+03 0.1543289673D+00 + 0.2380886605D+02 0.5353281423D+00 + 0.6443608313D+01 0.4446345422D+00 +SP 3 1.00 + 0.5033151319D+01 -0.9996722919D-01 0.1559162750D+00 + 0.1169596125D+01 0.3995128261D+00 0.6076837186D+00 + 0.3803889600D+00 0.7001154689D+00 0.3919573931D+00 +**** +F 0 +S 3 1.00 + 0.1666791340D+03 0.1543289673D+00 + 0.3036081233D+02 0.5353281423D+00 + 0.8216820672D+01 0.4446345422D+00 +SP 3 1.00 + 0.6464803249D+01 -0.9996722919D-01 0.1559162750D+00 + 0.1502281245D+01 0.3995128261D+00 0.6076837186D+00 + 0.4885884864D+00 0.7001154689D+00 0.3919573931D+00 +**** +Ne 0 +S 3 1.00 + 0.2070156070D+03 0.1543289673D+00 + 0.3770815124D+02 0.5353281423D+00 + 0.1020529731D+02 0.4446345422D+00 +SP 3 1.00 + 0.8246315120D+01 -0.9996722919D-01 0.1559162750D+00 + 0.1916266291D+01 0.3995128261D+00 0.6076837186D+00 + 0.6232292721D+00 0.7001154689D+00 0.3919573931D+00 +**** +Na 0 +S 3 1.00 + 0.2507724300D+03 0.1543289673D+00 + 0.4567851117D+02 0.5353281423D+00 + 0.1236238776D+02 0.4446345422D+00 +SP 3 1.00 + 0.1204019274D+02 -0.9996722919D-01 0.1559162750D+00 + 0.2797881859D+01 0.3995128261D+00 0.6076837186D+00 + 0.9099580170D+00 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1478740622D+01 -0.2196203690D+00 0.1058760429D-01 + 0.4125648801D+00 0.2255954336D+00 0.5951670053D+00 + 0.1614750979D+00 0.9003984260D+00 0.4620010120D+00 +**** +Mg 0 +S 3 1.00 + 0.2992374137D+03 0.1543289673D+00 + 0.5450646845D+02 0.5353281423D+00 + 0.1475157752D+02 0.4446345422D+00 +SP 3 1.00 + 0.1512182352D+02 -0.9996722919D-01 0.1559162750D+00 + 0.3513986579D+01 0.3995128261D+00 0.6076837186D+00 + 0.1142857498D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1395448293D+01 -0.2196203690D+00 0.1058760429D-01 + 0.3893265318D+00 0.2255954336D+00 0.5951670053D+00 + 0.1523797659D+00 0.9003984260D+00 0.4620010120D+00 +**** +Al 0 +S 3 1.00 + 0.3514214767D+03 0.1543289673D+00 + 0.6401186067D+02 0.5353281423D+00 + 0.1732410761D+02 0.4446345422D+00 +SP 3 1.00 + 0.1889939621D+02 -0.9996722919D-01 0.1559162750D+00 + 0.4391813233D+01 0.3995128261D+00 0.6076837186D+00 + 0.1428353970D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1395448293D+01 -0.2196203690D+00 0.1058760429D-01 + 0.3893265318D+00 0.2255954336D+00 0.5951670053D+00 + 0.1523797659D+00 0.9003984260D+00 0.4620010120D+00 +**** +Si 0 +S 3 1.00 + 0.4077975514D+03 0.1543289673D+00 + 0.7428083305D+02 0.5353281423D+00 + 0.2010329229D+02 0.4446345422D+00 +SP 3 1.00 + 0.2319365606D+02 -0.9996722919D-01 0.1559162750D+00 + 0.5389706871D+01 0.3995128261D+00 0.6076837186D+00 + 0.1752899952D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1478740622D+01 -0.2196203690D+00 0.1058760429D-01 + 0.4125648801D+00 0.2255954336D+00 0.5951670053D+00 + 0.1614750979D+00 0.9003984260D+00 0.4620010120D+00 +**** +P 0 +S 3 1.00 + 0.4683656378D+03 0.1543289673D+00 + 0.8531338559D+02 0.5353281423D+00 + 0.2308913156D+02 0.4446345422D+00 +SP 3 1.00 + 0.2803263958D+02 -0.9996722919D-01 0.1559162750D+00 + 0.6514182577D+01 0.3995128261D+00 0.6076837186D+00 + 0.2118614352D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1743103231D+01 -0.2196203690D+00 0.1058760429D-01 + 0.4863213771D+00 0.2255954336D+00 0.5951670053D+00 + 0.1903428909D+00 0.9003984260D+00 0.4620010120D+00 +**** +S 0 +S 3 1.00 + 0.5331257359D+03 0.1543289673D+00 + 0.9710951830D+02 0.5353281423D+00 + 0.2628162542D+02 0.4446345422D+00 +SP 3 1.00 + 0.3332975173D+02 -0.9996722919D-01 0.1559162750D+00 + 0.7745117521D+01 0.3995128261D+00 0.6076837186D+00 + 0.2518952599D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.2029194274D+01 -0.2196203690D+00 0.1058760429D-01 + 0.5661400518D+00 0.2255954336D+00 0.5951670053D+00 + 0.2215833792D+00 0.9003984260D+00 0.4620010120D+00 +**** +Cl 0 +S 3 1.00 + 0.6013456136D+03 0.1543289673D+00 + 0.1095358542D+03 0.5353281423D+00 + 0.2964467686D+02 0.4446345422D+00 +SP 3 1.00 + 0.3896041889D+02 -0.9996722919D-01 0.1559162750D+00 + 0.9053563477D+01 0.3995128261D+00 0.6076837186D+00 + 0.2944499834D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.2129386495D+01 -0.2196203690D+00 0.1058760429D-01 + 0.5940934274D+00 0.2255954336D+00 0.5951670053D+00 + 0.2325241410D+00 0.9003984260D+00 0.4620010120D+00 +**** +Ar 0 +S 3 1.00 + 0.6744465184D+03 0.1543289673D+00 + 0.1228512753D+03 0.5353281423D+00 + 0.3324834945D+02 0.4446345422D+00 +SP 3 1.00 + 0.4516424392D+02 -0.9996722919D-01 0.1559162750D+00 + 0.1049519900D+02 0.3995128261D+00 0.6076837186D+00 + 0.3413364448D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.2621366518D+01 -0.2196203690D+00 0.1058760429D-01 + 0.7313546050D+00 0.2255954336D+00 0.5951670053D+00 + 0.2862472356D+00 0.9003984260D+00 0.4620010120D+00 +**** +K 0 +S 3 1.00 + 0.7715103681D+03 0.1543289673D+00 + 0.1405315766D+03 0.5353281423D+00 + 0.3803332899D+02 0.4446345422D+00 +SP 3 1.00 + 0.5240203979D+02 -0.9996722919D-01 0.1559162750D+00 + 0.1217710710D+02 0.3995128261D+00 0.6076837186D+00 + 0.3960373165D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.3651583985D+01 -0.2196203690D+00 0.1058760429D-01 + 0.1018782663D+01 0.2255954336D+00 0.5951670053D+00 + 0.3987446295D+00 0.9003984260D+00 0.4620010120D+00 +SP 3 1.00 + 0.5039822505D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.1860011465D+00 0.1960641165D-01 0.5715227604D+00 + 0.8214006743D-01 0.1131034442D+01 0.5498949471D+00 +**** +Ca 0 +S 3 1.00 + 0.8540324951D+03 0.1543289673D+00 + 0.1555630851D+03 0.5353281423D+00 + 0.4210144179D+02 0.4446345422D+00 +SP 3 1.00 + 0.5956029944D+02 -0.9996722919D-01 0.1559162750D+00 + 0.1384053270D+02 0.3995128261D+00 0.6076837186D+00 + 0.4501370797D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.4374706256D+01 -0.2196203690D+00 0.1058760429D-01 + 0.1220531941D+01 0.2255954336D+00 0.5951670053D+00 + 0.4777079296D+00 0.9003984260D+00 0.4620010120D+00 +SP 3 1.00 + 0.4558489757D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.1682369410D+00 0.1960641165D-01 0.5715227604D+00 + 0.7429520696D-01 0.1131034442D+01 0.5498949471D+00 +**** +Sc 0 +S 3 1.00 + 0.9416624250D+03 0.1543289673D+00 + 0.1715249862D+03 0.5353281423D+00 + 0.4642135516D+02 0.4446345422D+00 +SP 3 1.00 + 0.6717668771D+02 -0.9996722919D-01 0.1559162750D+00 + 0.1561041754D+02 0.3995128261D+00 0.6076837186D+00 + 0.5076992278D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.4698159231D+01 -0.2277635023D+00 0.4951511155D-02 + 0.1433088313D+01 0.2175436044D+00 0.5777664691D+00 + 0.5529300235D+00 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.6309328384D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.2328538976D+00 0.1960641165D-01 0.5715227604D+00 + 0.1028307363D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.5517000679D+00 0.2197679508D+00 + 0.1682861055D+00 0.6555473627D+00 + 0.6493001120D-01 0.2865732590D+00 +**** +Ti 0 +S 3 1.00 + 0.1033571245D+04 0.1543289673D+00 + 0.1882662926D+03 0.5353281423D+00 + 0.5095220601D+02 0.4446345422D+00 +SP 3 1.00 + 0.7525120460D+02 -0.9996722919D-01 0.1559162750D+00 + 0.1748676162D+02 0.3995128261D+00 0.6076837186D+00 + 0.5687237606D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.5395535474D+01 -0.2277635023D+00 0.4951511155D-02 + 0.1645810296D+01 0.2175436044D+00 0.5777664691D+00 + 0.6350047773D+00 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.7122640246D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.2628702203D+00 0.1960641165D-01 0.5715227604D+00 + 0.1160862609D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.1645981194D+01 0.2197679508D+00 + 0.5020767279D+00 0.6555473627D+00 + 0.1937168103D+00 0.2865732590D+00 +**** +V 0 +S 3 1.00 + 0.1130762517D+04 0.1543289673D+00 + 0.2059698041D+03 0.5353281423D+00 + 0.5574346711D+02 0.4446345422D+00 +SP 3 1.00 + 0.8378385011D+02 -0.9996722919D-01 0.1559162750D+00 + 0.1946956493D+02 0.3995128261D+00 0.6076837186D+00 + 0.6332106784D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.6141151276D+01 -0.2277635023D+00 0.4951511155D-02 + 0.1873246881D+01 0.2175436044D+00 0.5777664691D+00 + 0.7227568825D+00 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.7122640246D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.2628702203D+00 0.1960641165D-01 0.5715227604D+00 + 0.1160862609D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.2964817927D+01 0.2197679508D+00 + 0.9043639676D+00 0.6555473627D+00 + 0.3489317337D+00 0.2865732590D+00 +**** +Cr 0 +S 3 1.00 + 0.1232320450D+04 0.1543289673D+00 + 0.2244687082D+03 0.5353281423D+00 + 0.6074999251D+02 0.4446345422D+00 +SP 3 1.00 + 0.9277462423D+02 -0.9996722919D-01 0.1559162750D+00 + 0.2155882749D+02 0.3995128261D+00 0.6076837186D+00 + 0.7011599810D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.6899488096D+01 -0.2277635023D+00 0.4951511155D-02 + 0.2104563782D+01 0.2175436044D+00 0.5777664691D+00 + 0.8120061343D+00 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.7547780537D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.2785605708D+00 0.1960641165D-01 0.5715227604D+00 + 0.1230152851D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.4241479241D+01 0.2197679508D+00 + 0.1293786360D+01 0.6555473627D+00 + 0.4991829993D+00 0.2865732590D+00 +**** +Mn 0 +S 3 1.00 + 0.1337153266D+04 0.1543289673D+00 + 0.2435641365D+03 0.5353281423D+00 + 0.6591796062D+02 0.4446345422D+00 +SP 3 1.00 + 0.1020220021D+03 -0.9996722919D-01 0.1559162750D+00 + 0.2370771923D+02 0.3995128261D+00 0.6076837186D+00 + 0.7710486098D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.7701960922D+01 -0.2277635023D+00 0.4951511155D-02 + 0.2349343572D+01 0.2175436044D+00 0.5777664691D+00 + 0.9064497869D+00 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.6709822861D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.2476346626D+00 0.1960641165D-01 0.5715227604D+00 + 0.1093580779D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.5426950461D+01 0.2197679508D+00 + 0.1655392868D+01 0.6555473627D+00 + 0.6387020316D+00 0.2865732590D+00 +**** +Fe 0 +S 3 1.00 + 0.1447400411D+04 0.1543289673D+00 + 0.2636457916D+03 0.5353281423D+00 + 0.7135284019D+02 0.4446345422D+00 +SP 3 1.00 + 0.1119194891D+03 -0.9996722919D-01 0.1559162750D+00 + 0.2600768236D+02 0.3995128261D+00 0.6076837186D+00 + 0.8458505490D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.8548569754D+01 -0.2277635023D+00 0.4951511155D-02 + 0.2607586250D+01 0.2175436044D+00 0.5777664691D+00 + 0.1006087840D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.5921156814D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.2185279254D+00 0.1960641165D-01 0.5715227604D+00 + 0.9650423590D-01 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.6411803475D+01 0.2197679508D+00 + 0.1955804428D+01 0.6555473627D+00 + 0.7546101508D+00 0.2865732590D+00 +**** +Co 0 +S 3 1.00 + 0.1560834670D+04 0.1543289673D+00 + 0.2843079835D+03 0.5353281423D+00 + 0.7694483567D+02 0.4446345422D+00 +SP 3 1.00 + 0.1222751047D+03 -0.9996722919D-01 0.1559162750D+00 + 0.2841410473D+02 0.3995128261D+00 0.6076837186D+00 + 0.9241148731D+01 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.9439314590D+01 -0.2277635023D+00 0.4951511155D-02 + 0.2879291816D+01 0.2175436044D+00 0.5777664691D+00 + 0.1110920295D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.5921156814D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.2185279254D+00 0.1960641165D-01 0.5715227604D+00 + 0.9650423590D-01 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.7664527389D+01 0.2197679508D+00 + 0.2337925151D+01 0.6555473627D+00 + 0.9020442052D+00 0.2865732590D+00 +**** +Ni 0 +S 3 1.00 + 0.1679771028D+04 0.1543289673D+00 + 0.3059723896D+03 0.5353281423D+00 + 0.8280806943D+02 0.4446345422D+00 +SP 3 1.00 + 0.1328588899D+03 -0.9996722919D-01 0.1559162750D+00 + 0.3087354878D+02 0.3995128261D+00 0.6076837186D+00 + 0.1004103627D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1033074335D+02 -0.2277635023D+00 0.4951511155D-02 + 0.3151206003D+01 0.2175436044D+00 0.5777664691D+00 + 0.1215833241D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.6309328384D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.2328538976D+00 0.1960641165D-01 0.5715227604D+00 + 0.1028307363D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.8627722755D+01 0.2197679508D+00 + 0.2631730438D+01 0.6555473627D+00 + 0.1015403419D+01 0.2865732590D+00 +**** +Cu 0 +S 3 1.00 + 0.1801806730D+04 0.1543289673D+00 + 0.3282013450D+03 0.5353281423D+00 + 0.8882409228D+02 0.4446345422D+00 +SP 3 1.00 + 0.1441212184D+03 -0.9996722919D-01 0.1559162750D+00 + 0.3349067173D+02 0.3995128261D+00 0.6076837186D+00 + 0.1089220588D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1130775402D+02 -0.2277635023D+00 0.4951511155D-02 + 0.3449225397D+01 0.2175436044D+00 0.5777664691D+00 + 0.1330818388D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.6309328384D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.2328538976D+00 0.1960641165D-01 0.5715227604D+00 + 0.1028307363D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.9647911930D+01 0.2197679508D+00 + 0.2942920654D+01 0.6555473627D+00 + 0.1135470278D+01 0.2865732590D+00 +**** +Zn 0 +S 3 1.00 + 0.1929432301D+04 0.1543289673D+00 + 0.3514485021D+03 0.5353281423D+00 + 0.9511568021D+02 0.4446345422D+00 +SP 3 1.00 + 0.1558416755D+03 -0.9996722919D-01 0.1559162750D+00 + 0.3621425391D+02 0.3995128261D+00 0.6076837186D+00 + 0.1177799934D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1228152744D+02 -0.2277635023D+00 0.4951511155D-02 + 0.3746257327D+01 0.2175436044D+00 0.5777664691D+00 + 0.1445422541D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.8897138854D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.3283603790D+00 0.1960641165D-01 0.5715227604D+00 + 0.1450074055D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.1094737077D+02 0.2197679508D+00 + 0.3339297018D+01 0.6555473627D+00 + 0.1288404602D+01 0.2865732590D+00 +**** +Ga 0 +S 3 1.00 + 0.2061424532D+04 0.1543289673D+00 + 0.3754910517D+03 0.5353281423D+00 + 0.1016225324D+03 0.4446345422D+00 +SP 3 1.00 + 0.1677618680D+03 -0.9996722919D-01 0.1559162750D+00 + 0.3898425028D+02 0.3995128261D+00 0.6076837186D+00 + 0.1267888813D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1261505520D+02 -0.2277635023D+00 0.4951511155D-02 + 0.3847993927D+01 0.2175436044D+00 0.5777664691D+00 + 0.1484675684D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.7985243736D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.2947057141D+00 0.1960641165D-01 0.5715227604D+00 + 0.1301451506D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.1261505520D+02 0.2197679508D+00 + 0.3847993927D+01 0.6555473627D+00 + 0.1484675684D+01 0.2865732590D+00 +**** +Ge 0 +S 3 1.00 + 0.2196384229D+04 0.1543289673D+00 + 0.4000741292D+03 0.5353281423D+00 + 0.1082756726D+03 0.4446345422D+00 +SP 3 1.00 + 0.1803890380D+03 -0.9996722919D-01 0.1559162750D+00 + 0.4191853304D+02 0.3995128261D+00 0.6076837186D+00 + 0.1363320795D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1419665619D+02 -0.2277635023D+00 0.4951511155D-02 + 0.4330432640D+01 0.2175436044D+00 0.5777664691D+00 + 0.1670815538D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.9858325600D+00 -0.3088441214D+00 -0.1215468600D+00 + 0.3638342150D+00 0.1960641165D-01 0.5715227604D+00 + 0.1606730254D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.1419665619D+02 0.2197679508D+00 + 0.4330432640D+01 0.6555473627D+00 + 0.1670815538D+01 0.2865732590D+00 +**** +As 0 +S 3 1.00 + 0.2337065673D+04 0.1543289673D+00 + 0.4256994298D+03 0.5353281423D+00 + 0.1152108790D+03 0.4446345422D+00 +SP 3 1.00 + 0.1931970535D+03 -0.9996722919D-01 0.1559162750D+00 + 0.4489484040D+02 0.3995128261D+00 0.6076837186D+00 + 0.1460119548D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1587163584D+02 -0.2277635023D+00 0.4951511155D-02 + 0.4841354819D+01 0.2175436044D+00 0.5777664691D+00 + 0.1867945198D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.1107681464D+01 -0.3088441214D+00 -0.1215468600D+00 + 0.4088041239D+00 0.1960641165D-01 0.5715227604D+00 + 0.1805322114D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.1587163584D+02 0.2197679508D+00 + 0.4841354819D+01 0.6555473627D+00 + 0.1867945198D+01 0.2865732590D+00 +**** +Se 0 +S 3 1.00 + 0.2480626814D+04 0.1543289673D+00 + 0.4518492708D+03 0.5353281423D+00 + 0.1222880464D+03 0.4446345422D+00 +SP 3 1.00 + 0.2061578780D+03 -0.9996722919D-01 0.1559162750D+00 + 0.4790665727D+02 0.3995128261D+00 0.6076837186D+00 + 0.1558073180D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1763999414D+02 -0.2277635023D+00 0.4951511155D-02 + 0.5380760465D+01 0.2175436044D+00 0.5777664691D+00 + 0.2076064666D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.1214644297D+01 -0.3088441214D+00 -0.1215468600D+00 + 0.4482801363D+00 0.1960641165D-01 0.5715227604D+00 + 0.1979652346D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.1763999414D+02 0.2197679508D+00 + 0.5380760465D+01 0.6555473627D+00 + 0.2076064666D+01 0.2865732590D+00 +**** +Br 0 +S 3 1.00 + 0.2629997471D+04 0.1543289673D+00 + 0.4790573224D+03 0.5353281423D+00 + 0.1296516070D+03 0.4446345422D+00 +SP 3 1.00 + 0.2198350255D+03 -0.9996722919D-01 0.1559162750D+00 + 0.5108493222D+02 0.3995128261D+00 0.6076837186D+00 + 0.1661440546D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.1950173109D+02 -0.2277635023D+00 0.4951511155D-02 + 0.5948649577D+01 0.2175436044D+00 0.5777664691D+00 + 0.2295173940D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.1396037488D+01 -0.3088441214D+00 -0.1215468600D+00 + 0.5152256318D+00 0.1960641165D-01 0.5715227604D+00 + 0.2275290713D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.1950173109D+02 0.2197679508D+00 + 0.5948649577D+01 0.6555473627D+00 + 0.2295173940D+01 0.2865732590D+00 +**** +Kr 0 +S 3 1.00 + 0.2782160055D+04 0.1543289673D+00 + 0.5067739270D+03 0.5353281423D+00 + 0.1371528019D+03 0.4446345422D+00 +SP 3 1.00 + 0.2339514118D+03 -0.9996722919D-01 0.1559162750D+00 + 0.5436527681D+02 0.3995128261D+00 0.6076837186D+00 + 0.1768127533D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.2145684671D+02 -0.2277635023D+00 0.4951511155D-02 + 0.6545022156D+01 0.2175436044D+00 0.5777664691D+00 + 0.2525273021D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.1590049336D+01 -0.3088441214D+00 -0.1215468600D+00 + 0.5868282053D+00 0.1960641165D-01 0.5715227604D+00 + 0.2591495227D+00 0.1131034442D+01 0.5498949471D+00 +D 3 1.00 + 0.2145684671D+02 0.2197679508D+00 + 0.6545022156D+01 0.6555473627D+00 + 0.2525273021D+01 0.2865732590D+00 +**** +Rb 0 +S 3 1.00 + 0.2938601529D+04 0.1543289673D+00 + 0.5352699368D+03 0.5353281423D+00 + 0.1448649342D+03 0.4446345422D+00 +SP 3 1.00 + 0.2485070369D+03 -0.9996722919D-01 0.1559162750D+00 + 0.5774769105D+02 0.3995128261D+00 0.6076837186D+00 + 0.1878134142D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.2350534097D+02 -0.2277635023D+00 0.4951511155D-02 + 0.7169878201D+01 0.2175436044D+00 0.5777664691D+00 + 0.2766361909D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.2247796820D+01 -0.3088441214D+00 -0.1215468600D+00 + 0.8295783935D+00 0.1960641165D-01 0.5715227604D+00 + 0.3663505653D+00 0.1131034442D+01 0.5498949471D+00 +SP 3 1.00 + 0.4869939919D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.2622161565D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1158254875D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.2350534097D+02 0.2197679508D+00 + 0.7169878201D+01 0.6555473627D+00 + 0.2766361909D+01 0.2865732590D+00 +**** +Sr 0 +S 3 1.00 + 0.3100983951D+04 0.1543289673D+00 + 0.5648480978D+03 0.5353281423D+00 + 0.1528699389D+03 0.4446345422D+00 +SP 3 1.00 + 0.2635019007D+03 -0.9996722919D-01 0.1559162750D+00 + 0.6123217493D+02 0.3995128261D+00 0.6076837186D+00 + 0.1991460372D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.2557886692D+02 -0.2277635023D+00 0.4951511155D-02 + 0.7802369707D+01 0.2175436044D+00 0.5777664691D+00 + 0.3010396794D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.2461032403D+01 -0.3088441214D+00 -0.1215468600D+00 + 0.9082757342D+00 0.1960641165D-01 0.5715227604D+00 + 0.4011041407D+00 0.1131034442D+01 0.5498949471D+00 +SP 3 1.00 + 0.4370804803D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.2353408164D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1039541771D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.2557886692D+02 0.2197679508D+00 + 0.7802369707D+01 0.6555473627D+00 + 0.3010396794D+01 0.2865732590D+00 +**** +Y 0 +S 3 1.00 + 0.3266026869D+04 0.1543289673D+00 + 0.5949108712D+03 0.5353281423D+00 + 0.1610060986D+03 0.4446345422D+00 +SP 3 1.00 + 0.2779377244D+03 -0.9996722919D-01 0.1559162750D+00 + 0.6458674989D+02 0.3995128261D+00 0.6076837186D+00 + 0.2100561561D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.2896238417D+02 -0.2277635023D+00 0.4951511155D-02 + 0.8834450311D+01 0.2175436044D+00 0.5777664691D+00 + 0.3408605577D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.2527274884D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.9841077401D+00 0.5761095338D-01 0.5852047641D+00 + 0.4332066499D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.4370804803D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.2353408164D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1039541771D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.2896238417D+02 0.2197679508D+00 + 0.8834450311D+01 0.6555473627D+00 + 0.3408605577D+01 0.2865732590D+00 +D 3 1.00 + 0.4576323918D+00 0.1250662138D+00 + 0.1781996813D+00 0.6686785577D+00 + 0.7844393842D-01 0.3052468245D+00 +**** +Zr 0 +S 3 1.00 + 0.3435348677D+04 0.1543289673D+00 + 0.6257530498D+03 0.5353281423D+00 + 0.1693531958D+03 0.4446345422D+00 +SP 3 1.00 + 0.2937830292D+03 -0.9996722919D-01 0.1559162750D+00 + 0.6826885797D+02 0.3995128261D+00 0.6076837186D+00 + 0.2220315144D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.3073293103D+02 -0.2277635023D+00 0.4951511155D-02 + 0.9374523538D+01 0.2175436044D+00 0.5777664691D+00 + 0.3616982618D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.2827607815D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.1101055827D+01 0.5761095338D-01 0.5852047641D+00 + 0.4846874856D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.4869939919D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.2622161565D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1158254875D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.3073293103D+02 0.2197679508D+00 + 0.9374523538D+01 0.6555473627D+00 + 0.3616982618D+01 0.2865732590D+00 +D 3 1.00 + 0.8878301887D+00 0.1250662138D+00 + 0.3457164736D+00 0.6686785577D+00 + 0.1521852428D+00 0.3052468245D+00 +**** +Nb 0 +S 3 1.00 + 0.3610742864D+04 0.1543289673D+00 + 0.6577013201D+03 0.5353281423D+00 + 0.1779996445D+03 0.4446345422D+00 +SP 3 1.00 + 0.3100675728D+03 -0.9996722919D-01 0.1559162750D+00 + 0.7205303569D+02 0.3995128261D+00 0.6076837186D+00 + 0.2343388348D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.3301997858D+02 -0.2277635023D+00 0.4951511155D-02 + 0.1007214594D+02 0.2175436044D+00 0.5777664691D+00 + 0.3886147028D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.3144798430D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.1224568208D+01 0.5761095338D-01 0.5852047641D+00 + 0.5390579399D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.4869939919D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.2622161565D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1158254875D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.3301997858D+02 0.2197679508D+00 + 0.1007214594D+02 0.6555473627D+00 + 0.3886147028D+01 0.2865732590D+00 +D 3 1.00 + 0.1344878866D+01 0.1250662138D+00 + 0.5236888594D+00 0.6686785577D+00 + 0.2305291251D+00 0.3052468245D+00 +**** +Mo 0 +S 3 1.00 + 0.3788666115D+04 0.1543289673D+00 + 0.6901102623D+03 0.5353281423D+00 + 0.1867707691D+03 0.4446345422D+00 +SP 3 1.00 + 0.3264309567D+03 -0.9996722919D-01 0.1559162750D+00 + 0.7585553420D+02 0.3995128261D+00 0.6076837186D+00 + 0.2467057401D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.3546948129D+02 -0.2277635023D+00 0.4951511155D-02 + 0.1081932234D+02 0.2175436044D+00 0.5777664691D+00 + 0.4174430912D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.3496895188D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.1361672861D+01 0.5761095338D-01 0.5852047641D+00 + 0.5994117456D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.5129625081D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.2761985970D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1220017773D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.3546948129D+02 0.2197679508D+00 + 0.1081932234D+02 0.6555473627D+00 + 0.4174430912D+01 0.2865732590D+00 +D 3 1.00 + 0.1702112315D+01 0.1250662138D+00 + 0.6627937127D+00 0.6686785577D+00 + 0.2917634240D+00 0.3052468245D+00 +**** +Tc 0 +S 3 1.00 + 0.3970868257D+04 0.1543289673D+00 + 0.7232986098D+03 0.5353281423D+00 + 0.1957528311D+03 0.4446345422D+00 +SP 3 1.00 + 0.3435846323D+03 -0.9996722919D-01 0.1559162750D+00 + 0.7984167952D+02 0.3995128261D+00 0.6076837186D+00 + 0.2596699219D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.3808991983D+02 -0.2277635023D+00 0.4951511155D-02 + 0.1161863962D+02 0.2175436044D+00 0.5777664691D+00 + 0.4482832367D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.3829752708D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.1491285854D+01 0.5761095338D-01 0.5852047641D+00 + 0.6564677040D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.4616999826D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.2485968963D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1098096207D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.3808991983D+02 0.2197679508D+00 + 0.1161863962D+02 0.6555473627D+00 + 0.4482832367D+01 0.2865732590D+00 +D 3 1.00 + 0.2101373228D+01 0.1250662138D+00 + 0.8182638428D+00 0.6686785577D+00 + 0.3602017580D+00 0.3052468245D+00 +**** +Ru 0 +S 3 1.00 + 0.4159274210D+04 0.1543289673D+00 + 0.7576169894D+03 0.5353281423D+00 + 0.2050407239D+03 0.4446345422D+00 +SP 3 1.00 + 0.3607986561D+03 -0.9996722919D-01 0.1559162750D+00 + 0.8384184843D+02 0.3995128261D+00 0.6076837186D+00 + 0.2726797127D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.4071751678D+02 -0.2277635023D+00 0.4951511155D-02 + 0.1242014044D+02 0.2175436044D+00 0.5777664691D+00 + 0.4792076302D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.4197516371D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.1634491118D+01 0.5761095338D-01 0.5852047641D+00 + 0.7195070139D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.4131354848D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.2224479167D+00 -0.1972567438D+00 0.6290323690D+00 + 0.9825915662D-01 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.4071751678D+02 0.2197679508D+00 + 0.1242014044D+02 0.6555473627D+00 + 0.4792076302D+01 0.2865732590D+00 +D 3 1.00 + 0.2390895761D+01 0.1250662138D+00 + 0.9310024167D+00 0.6686785577D+00 + 0.4098295558D+00 0.3052468245D+00 +**** +Rh 0 +S 3 1.00 + 0.4350077794D+04 0.1543289673D+00 + 0.7923721005D+03 0.5353281423D+00 + 0.2144468133D+03 0.4446345422D+00 +SP 3 1.00 + 0.3784334264D+03 -0.9996722919D-01 0.1559162750D+00 + 0.8793978981D+02 0.3995128261D+00 0.6076837186D+00 + 0.2860074899D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.4352179455D+02 -0.2277635023D+00 0.4951511155D-02 + 0.1327553454D+02 0.2175436044D+00 0.5777664691D+00 + 0.5122113939D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.4540857408D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.1768186338D+01 0.5761095338D-01 0.5852047641D+00 + 0.7783599789D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.4131354848D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.2224479167D+00 -0.1972567438D+00 0.6290323690D+00 + 0.9825915662D-01 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.4352179455D+02 0.2197679508D+00 + 0.1327553454D+02 0.6555473627D+00 + 0.5122113939D+01 0.2865732590D+00 +D 3 1.00 + 0.2779066094D+01 0.1250662138D+00 + 0.1082153932D+01 0.6686785577D+00 + 0.4763668250D+00 0.3052468245D+00 +**** +Pd 0 +S 3 1.00 + 0.4545160269D+04 0.1543289673D+00 + 0.8279066168D+03 0.5353281423D+00 + 0.2240638402D+03 0.4446345422D+00 +SP 3 1.00 + 0.3964889433D+03 -0.9996722919D-01 0.1559162750D+00 + 0.9213550365D+02 0.3995128261D+00 0.6076837186D+00 + 0.2996532535D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.4641945097D+02 -0.2277635023D+00 0.4951511155D-02 + 0.1415941211D+02 0.2175436044D+00 0.5777664691D+00 + 0.5463141383D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.4919104589D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.1915473830D+01 0.5761095338D-01 0.5852047641D+00 + 0.8431962954D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.4370804803D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.2353408164D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1039541771D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.4641945097D+02 0.2197679508D+00 + 0.1415941211D+02 0.6555473627D+00 + 0.5463141383D+01 0.2865732590D+00 +D 3 1.00 + 0.3025977448D+01 0.1250662138D+00 + 0.1178299934D+01 0.6686785577D+00 + 0.5186905316D+00 0.3052468245D+00 +**** +Ag 0 +S 3 1.00 + 0.4744521634D+04 0.1543289673D+00 + 0.8642205383D+03 0.5353281423D+00 + 0.2338918045D+03 0.4446345422D+00 +SP 3 1.00 + 0.4149652069D+03 -0.9996722919D-01 0.1559162750D+00 + 0.9642898995D+02 0.3995128261D+00 0.6076837186D+00 + 0.3136170035D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.4941048605D+02 -0.2277635023D+00 0.4951511155D-02 + 0.1507177314D+02 0.2175436044D+00 0.5777664691D+00 + 0.5815158634D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.5290230450D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.2059988316D+01 0.5761095338D-01 0.5852047641D+00 + 0.9068119281D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.4370804803D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.2353408164D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1039541771D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.4941048605D+02 0.2197679508D+00 + 0.1507177314D+02 0.6555473627D+00 + 0.5815158634D+01 0.2865732590D+00 +D 3 1.00 + 0.3283395668D+01 0.1250662138D+00 + 0.1278537254D+01 0.6686785577D+00 + 0.5628152469D+00 0.3052468245D+00 +**** +Cd 0 +S 3 1.00 + 0.4950261905D+04 0.1543289673D+00 + 0.9016963856D+03 0.5353281423D+00 + 0.2440342313D+03 0.4446345422D+00 +SP 3 1.00 + 0.4334469385D+03 -0.9996722919D-01 0.1559162750D+00 + 0.1007237469D+03 0.3995128261D+00 0.6076837186D+00 + 0.3275848861D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.5259279235D+02 -0.2277635023D+00 0.4951511155D-02 + 0.1604247800D+02 0.2175436044D+00 0.5777664691D+00 + 0.6189686744D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.5674851796D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.2209757875D+01 0.5761095338D-01 0.5852047641D+00 + 0.9727408566D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.5949150981D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.3203250000D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1414931855D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.5259279235D+02 0.2197679508D+00 + 0.1604247800D+02 0.6555473627D+00 + 0.6189686744D+01 0.2865732590D+00 +D 3 1.00 + 0.3642963976D+01 0.1250662138D+00 + 0.1418551290D+01 0.6686785577D+00 + 0.6244497700D+00 0.3052468245D+00 +**** +In 0 +S 3 1.00 + 0.5158224714D+04 0.1543289673D+00 + 0.9395770707D+03 0.5353281423D+00 + 0.2542862231D+03 0.4446345422D+00 +SP 3 1.00 + 0.4523313223D+03 -0.9996722919D-01 0.1559162750D+00 + 0.1051120716D+03 0.3995128261D+00 0.6076837186D+00 + 0.3418570799D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.5597539769D+02 -0.2277635023D+00 0.4951511155D-02 + 0.1707428044D+02 0.2175436044D+00 0.5777664691D+00 + 0.6587788204D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.5048549180D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.1965878882D+01 0.5761095338D-01 0.5852047641D+00 + 0.8653847237D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.5669230612D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.3052530187D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1348356264D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.5597539769D+02 0.2197679508D+00 + 0.1707428044D+02 0.6555473627D+00 + 0.6587788204D+01 0.2865732590D+00 +D 3 1.00 + 0.5048549180D+01 0.1250662138D+00 + 0.1965878882D+01 0.6686785577D+00 + 0.8653847237D+00 0.3052468245D+00 +**** +Sn 0 +S 3 1.00 + 0.5370466413D+04 0.1543289673D+00 + 0.9782371611D+03 0.5353281423D+00 + 0.2647491522D+03 0.4446345422D+00 +SP 3 1.00 + 0.4720515322D+03 -0.9996722919D-01 0.1559162750D+00 + 0.1096946243D+03 0.3995128261D+00 0.6076837186D+00 + 0.3567609636D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.5915141188D+02 -0.2277635023D+00 0.4951511155D-02 + 0.1804306600D+02 0.2175436044D+00 0.5777664691D+00 + 0.6961575790D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.5583138529D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.2174045204D+01 0.5761095338D-01 0.5852047641D+00 + 0.9570200509D+00 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.6235816420D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.3357601616D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1483111678D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.5915141188D+02 0.2197679508D+00 + 0.1804306600D+02 0.6555473627D+00 + 0.6961575790D+01 0.2865732590D+00 +D 3 1.00 + 0.5583138529D+01 0.1250662138D+00 + 0.2174045204D+01 0.6686785577D+00 + 0.9570200509D+00 0.3052468245D+00 +**** +Sb 0 +S 3 1.00 + 0.5586987002D+04 0.1543289673D+00 + 0.1017676657D+04 0.5353281423D+00 + 0.2754230189D+03 0.4446345422D+00 +SP 3 1.00 + 0.4921924888D+03 -0.9996722919D-01 0.1559162750D+00 + 0.1143749494D+03 0.3995128261D+00 0.6076837186D+00 + 0.3719828336D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.6252179775D+02 -0.2277635023D+00 0.4951511155D-02 + 0.1907114112D+02 0.2175436044D+00 0.5777664691D+00 + 0.7358239131D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.6120693149D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.2383366187D+01 0.5761095338D-01 0.5852047641D+00 + 0.1049163663D+01 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.6529226928D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.3515585034D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1552895732D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.6252179775D+02 0.2197679508D+00 + 0.1907114112D+02 0.6555473627D+00 + 0.7358239131D+01 0.2865732590D+00 +D 3 1.00 + 0.6120693149D+01 0.1250662138D+00 + 0.2383366187D+01 0.6686785577D+00 + 0.1049163663D+01 0.3052468245D+00 +**** +Te 0 +S 3 1.00 + 0.5810061591D+04 0.1543289673D+00 + 0.1058309972D+04 0.5353281423D+00 + 0.2864199797D+03 0.4446345422D+00 +SP 3 1.00 + 0.5127541920D+03 -0.9996722919D-01 0.1559162750D+00 + 0.1191530471D+03 0.3995128261D+00 0.6076837186D+00 + 0.3875226900D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.6598556227D+02 -0.2277635023D+00 0.4951511155D-02 + 0.2012769970D+02 0.2175436044D+00 0.5777664691D+00 + 0.7765892279D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.6707956921D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.2612043655D+01 0.5761095338D-01 0.5852047641D+00 + 0.1149828048D+01 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.7012713483D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.3775912653D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1667887020D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.6598556227D+02 0.2197679508D+00 + 0.2012769970D+02 0.6555473627D+00 + 0.7765892279D+01 0.2865732590D+00 +D 3 1.00 + 0.6707956921D+01 0.1250662138D+00 + 0.2612043655D+01 0.6686785577D+00 + 0.1149828048D+01 0.3052468245D+00 +**** +I 0 +S 3 1.00 + 0.6035183623D+04 0.1543289673D+00 + 0.1099316231D+04 0.5353281423D+00 + 0.2975178737D+03 0.4446345422D+00 +SP 3 1.00 + 0.5337366418D+03 -0.9996722919D-01 0.1559162750D+00 + 0.1240289171D+03 0.3995128261D+00 0.6076837186D+00 + 0.4033805328D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.6954270545D+02 -0.2277635023D+00 0.4951511155D-02 + 0.2121274175D+02 0.2175436044D+00 0.5777664691D+00 + 0.8184535234D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.7295991196D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.2841021154D+01 0.5761095338D-01 0.5852047641D+00 + 0.1250624506D+01 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.7900364582D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.4253857892D+00 -0.1972567438D+00 0.6290323690D+00 + 0.1879003836D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.6954270545D+02 0.2197679508D+00 + 0.2121274175D+02 0.6555473627D+00 + 0.8184535234D+01 0.2865732590D+00 +D 3 1.00 + 0.7295991196D+01 0.1250662138D+00 + 0.2841021154D+01 0.6686785577D+00 + 0.1250624506D+01 0.3052468245D+00 +**** +Xe 0 +S 3 1.00 + 0.6264584546D+04 0.1543289673D+00 + 0.1141101895D+04 0.5353281423D+00 + 0.3088267052D+03 0.4446345422D+00 +SP 3 1.00 + 0.5551398381D+03 -0.9996722919D-01 0.1559162750D+00 + 0.1290025597D+03 0.3995128261D+00 0.6076837186D+00 + 0.4195563620D+02 0.7001154689D+00 0.3919573931D+00 +SP 3 1.00 + 0.7307773504D+02 -0.2277635023D+00 0.4951511155D-02 + 0.2229103845D+02 0.2175436044D+00 0.5777664691D+00 + 0.8600575622D+01 0.9166769611D+00 0.4846460366D+00 +SP 3 1.00 + 0.7908728280D+01 -0.3306100626D+00 -0.1283927634D+00 + 0.3079617799D+01 0.5761095338D-01 0.5852047641D+00 + 0.1355655337D+01 0.1115578745D+01 0.5439442040D+00 +SP 3 1.00 + 0.8910101433D+00 -0.3842642608D+00 -0.3481691526D+00 + 0.4797538759D+00 -0.1972567438D+00 0.6290323690D+00 + 0.2119157236D+00 0.1375495512D+01 0.6662832743D+00 +D 3 1.00 + 0.7307773504D+02 0.2197679508D+00 + 0.2229103845D+02 0.6555473627D+00 + 0.8600575622D+01 0.2865732590D+00 +D 3 1.00 + 0.7908728280D+01 0.1250662138D+00 + 0.3079617799D+01 0.6686785577D+00 + 0.1355655337D+01 0.3052468245D+00 +**** + diff --git a/codes/cc2.py b/codes/cc2.py new file mode 100644 index 0000000..3bcfcf6 --- /dev/null +++ b/codes/cc2.py @@ -0,0 +1,133 @@ + +'''s - spin orbitals, o - occupied spin orbitals, v - virtual spin orbitals +t1[v,o] - singles amplitudes, t2[v,v,o,o] - doubles amplitudes +l1[o,v] - singles lambda, l2[o,o,v,v] - doubles lambda +''' + +def cc_energy(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [2] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # -0.50000 * + T = -0.50000 * einsum('ijij->' ,g[o,o,o,o], optimize=True) + + # 1.0000 * f(i,a) t1(a,i) + T += 1.0000 * einsum('ia,ai->' ,f[o,v] ,t1, optimize=True) + + # 0.2500 * t2(a,b,i,j) + T += 0.2500 * einsum('ijab,abij->' ,g[o,o,v,v] ,t2, optimize=True) + + # -0.50000 * t1(a,j) t1(b,i) + T += -0.50000 * einsum('ijab,aj,bi->' ,g[o,o,v,v] ,t1 ,t1, optimize=True) + + # 1.0000 * f(i,i) + T += 1.0000 * einsum('ii->' ,f[o,o], optimize=True) + + return T + +def cc_singles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [2] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(a,b) t1(b,i) + T = 1.0000 * einsum('ab,bi->ai' ,f[v,v] ,t1, optimize=True) + + # 1.0000 * f(j,b) t2(a,b,i,j) + T += 1.0000 * einsum('jb,abij->ai' ,f[o,v] ,t2, optimize=True) + + # 1.0000 * t1(b,j) + T += 1.0000 * einsum('ajib,bj->ai' ,g[v,o,o,v] ,t1, optimize=True) + + # 0.5000 * t2(b,c,i,j) + T += 0.5000 * einsum('ajbc,bcij->ai' ,g[v,o,v,v] ,t2, optimize=True) + + # -1.0000 * f(j,i) t1(a,j) + T += -1.0000 * einsum('ji,aj->ai' ,f[o,o] ,t1, optimize=True) + + # -0.50000 * t2(a,b,j,k) + T += -0.50000 * einsum('jkib,abjk->ai' ,g[o,o,o,v] ,t2, optimize=True) + + # 1.0000 * t1(a,k) t1(b,j) + T += 1.0000 * einsum('jkib,ak,bj->ai' ,g[o,o,o,v] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(b,j) t2(a,c,i,k) + T += 1.0000 * einsum('jkbc,bj,acik->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * f(j,b) t1(a,j) t1(b,i) + T += -1.0000 * einsum('jb,aj,bi->ai' ,f[o,v] ,t1 ,t1, optimize=True) + + # -1.0000 * t1(b,j) t1(c,i) + T += -1.0000 * einsum('ajbc,bj,ci->ai' ,g[v,o,v,v] ,t1 ,t1, optimize=True) + + # -0.50000 * t1(a,j) t2(b,c,i,k) + T += -0.50000 * einsum('jkbc,aj,bcik->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -0.50000 * t1(b,i) t2(a,c,j,k) + T += -0.50000 * einsum('jkbc,bi,acjk->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * t1(a,k) t1(b,j) t1(c,i) + T += -1.0000 * einsum('jkbc,ak,bj,ci->ai' ,g[o,o,v,v] ,t1 ,t1 ,t1, optimize=True) + + # 1.0000 * f(a,i) + T += 1.0000 * einsum('ai->ai' ,f[v,o], optimize=True) + + return T + +def cc_doubles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [2] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * P(i,j) f(k,i) t2(a,b,j,k) + t = 1.0000 * einsum('ki,abjk->abij' ,f[o,o] ,t2, optimize=True) + T = t - t.swapaxes(3, 2) + + # 1.0000 * P(i,j) t1(c,j) + t = 1.0000 * einsum('abic,cj->abij' ,g[v,v,o,v] ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * t1(c,i) t1(d,j) + T += 1.0000 * einsum('abcd,ci,dj->abij' ,g[v,v,v,v] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(a,k) t1(b,l) + T += 1.0000 * einsum('klij,ak,bl->abij' ,g[o,o,o,o] ,t1 ,t1, optimize=True) + + # -1.0000 * P(a,b) f(a,c) t2(b,c,i,j) + t = -1.0000 * einsum('ac,bcij->abij' ,f[v,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) t1(b,k) + t = -1.0000 * einsum('akij,bk->abij' ,g[v,o,o,o] ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(a,k) t1(b,l) t1(c,j) + t = 1.0000 * einsum('klic,ak,bl,cj->abij' ,g[o,o,o,v] ,t1 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * t1(a,k) t1(b,l) t1(c,i) t1(d,j) + T += 1.0000 * einsum('klcd,ak,bl,ci,dj->abij' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t1, optimize=True) + + # -1.0000 * P(a,b)P(i,j) t1(b,k) t1(c,j) + t = -1.0000 * einsum('akic,bk,cj->abij' ,g[v,o,o,v] ,t1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # -1.0000 * P(a,b) t1(b,k) t1(c,i) t1(d,j) + t = -1.0000 * einsum('akcd,bk,ci,dj->abij' ,g[v,o,v,v] ,t1 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * + T += 1.0000 * einsum('abij->abij' ,g[v,v,o,o], optimize=True) + + return T + diff --git a/codes/cc3.py b/codes/cc3.py new file mode 100644 index 0000000..7f56bea --- /dev/null +++ b/codes/cc3.py @@ -0,0 +1,502 @@ + +'''s - spin orbitals, o - occupied spin orbitals, v - virtual spin orbitals +t1[v,o] - singles amplitudes, t2[v,v,o,o] - doubles amplitudes +l1[o,v] - singles lambda, l2[o,o,v,v] - doubles lambda +''' + +def cc_energy(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [3] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # -0.50000 * + T = -0.50000 * einsum('ijij->' ,g[o,o,o,o], optimize=True) + + # 1.0000 * f(i,a) t1(a,i) + T += 1.0000 * einsum('ia,ai->' ,f[o,v] ,t1, optimize=True) + + # 0.2500 * t2(a,b,i,j) + T += 0.2500 * einsum('ijab,abij->' ,g[o,o,v,v] ,t2, optimize=True) + + # -0.50000 * t1(a,j) t1(b,i) + T += -0.50000 * einsum('ijab,aj,bi->' ,g[o,o,v,v] ,t1 ,t1, optimize=True) + + # 1.0000 * f(i,i) + T += 1.0000 * einsum('ii->' ,f[o,o], optimize=True) + + return T + +def cc_singles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [3] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(a,b) t1(b,i) + T = 1.0000 * einsum('ab,bi->ai' ,f[v,v] ,t1, optimize=True) + + # 1.0000 * f(j,b) t2(a,b,i,j) + T += 1.0000 * einsum('jb,abij->ai' ,f[o,v] ,t2, optimize=True) + + # 1.0000 * t1(b,j) + T += 1.0000 * einsum('ajib,bj->ai' ,g[v,o,o,v] ,t1, optimize=True) + + # 0.5000 * t2(b,c,i,j) + T += 0.5000 * einsum('ajbc,bcij->ai' ,g[v,o,v,v] ,t2, optimize=True) + + # -1.0000 * f(j,i) t1(a,j) + T += -1.0000 * einsum('ji,aj->ai' ,f[o,o] ,t1, optimize=True) + + # -0.50000 * t2(a,b,j,k) + T += -0.50000 * einsum('jkib,abjk->ai' ,g[o,o,o,v] ,t2, optimize=True) + + # 0.2500 * t3(a,b,c,i,j,k) + T += 0.2500 * einsum('jkbc,abcijk->ai' ,g[o,o,v,v] ,t3, optimize=True) + + # 1.0000 * t1(a,k) t1(b,j) + T += 1.0000 * einsum('jkib,ak,bj->ai' ,g[o,o,o,v] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(b,j) t2(a,c,i,k) + T += 1.0000 * einsum('jkbc,bj,acik->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * f(j,b) t1(a,j) t1(b,i) + T += -1.0000 * einsum('jb,aj,bi->ai' ,f[o,v] ,t1 ,t1, optimize=True) + + # -1.0000 * t1(b,j) t1(c,i) + T += -1.0000 * einsum('ajbc,bj,ci->ai' ,g[v,o,v,v] ,t1 ,t1, optimize=True) + + # -0.50000 * t1(a,j) t2(b,c,i,k) + T += -0.50000 * einsum('jkbc,aj,bcik->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -0.50000 * t1(b,i) t2(a,c,j,k) + T += -0.50000 * einsum('jkbc,bi,acjk->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * t1(a,k) t1(b,j) t1(c,i) + T += -1.0000 * einsum('jkbc,ak,bj,ci->ai' ,g[o,o,v,v] ,t1 ,t1 ,t1, optimize=True) + + # 1.0000 * f(a,i) + T += 1.0000 * einsum('ai->ai' ,f[v,o], optimize=True) + + return T + +def cc_doubles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [3] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(k,c) t3(a,b,c,i,j,k) + T = 1.0000 * einsum('kc,abcijk->abij' ,f[o,v] ,t3, optimize=True) + + # 0.5000 * t2(c,d,i,j) + T += 0.5000 * einsum('abcd,cdij->abij' ,g[v,v,v,v] ,t2, optimize=True) + + # 0.5000 * t2(a,b,k,l) + T += 0.5000 * einsum('klij,abkl->abij' ,g[o,o,o,o] ,t2, optimize=True) + + # 1.0000 * P(i,j) f(k,i) t2(a,b,j,k) + t = 1.0000 * einsum('ki,abjk->abij' ,f[o,o] ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * P(i,j) t1(c,j) + t = 1.0000 * einsum('abic,cj->abij' ,g[v,v,o,v] ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * t1(c,i) t1(d,j) + T += 1.0000 * einsum('abcd,ci,dj->abij' ,g[v,v,v,v] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(a,k) t1(b,l) + T += 1.0000 * einsum('klij,ak,bl->abij' ,g[o,o,o,o] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(c,k) t3(a,b,d,i,j,l) + T += 1.0000 * einsum('klcd,ck,abdijl->abij' ,g[o,o,v,v] ,t1 ,t3, optimize=True) + + # 0.5000 * P(i,j) t3(a,b,c,j,k,l) + t = 0.5000 * einsum('klic,abcjkl->abij' ,g[o,o,o,v] ,t3, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(a,b) f(a,c) t2(b,c,i,j) + t = -1.0000 * einsum('ac,bcij->abij' ,f[v,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) t1(b,k) + t = -1.0000 * einsum('akij,bk->abij' ,g[v,o,o,o] ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(a,b) t3(b,c,d,i,j,k) + t = -0.50000 * einsum('akcd,bcdijk->abij' ,g[v,o,v,v] ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 0.2500 * t2(a,b,k,l) t2(c,d,i,j) + T += 0.2500 * einsum('klcd,abkl,cdij->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + + # 1.0000 * P(a,b) f(k,c) t1(a,k) t2(b,c,i,j) + t = 1.0000 * einsum('kc,ak,bcij->abij' ,f[o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) f(k,c) t1(c,i) t2(a,b,j,k) + t = 1.0000 * einsum('kc,ci,abjk->abij' ,f[o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * P(a,b)P(i,j) t2(b,c,j,k) + t = 1.0000 * einsum('akic,bcjk->abij' ,g[v,o,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * P(a,b) t1(c,k) t2(b,d,i,j) + t = 1.0000 * einsum('akcd,ck,bdij->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t2(a,c,i,k) t2(b,d,j,l) + t = 1.0000 * einsum('klcd,acik,bdjl->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 0.5000 * P(i,j) t1(c,j) t2(a,b,k,l) + t = 0.5000 * einsum('klic,cj,abkl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 0.5000 * t1(a,k) t1(b,l) t2(c,d,i,j) + T += 0.5000 * einsum('klcd,ak,bl,cdij->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + + # 0.5000 * P(a,b) t1(a,k) t3(b,c,d,i,j,l) + t = 0.5000 * einsum('klcd,ak,bcdijl->abij' ,g[o,o,v,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 0.5000 * t1(c,i) t1(d,j) t2(a,b,k,l) + T += 0.5000 * einsum('klcd,ci,dj,abkl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + + # 0.5000 * P(i,j) t1(c,i) t3(a,b,d,j,k,l) + t = 0.5000 * einsum('klcd,ci,abdjkl->abij' ,g[o,o,v,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(3, 2) + + # 0.5000 * P(i,j) t2(a,b,i,l) t2(c,d,j,k) + t = 0.5000 * einsum('klcd,abil,cdjk->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(i,j) t1(c,k) t2(a,b,j,l) + t = -1.0000 * einsum('klic,ck,abjl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -0.50000 * P(a,b) t1(b,k) t2(c,d,i,j) + t = -0.50000 * einsum('akcd,bk,cdij->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(a,b) t2(a,c,i,j) t2(b,d,k,l) + t = -0.50000 * einsum('klcd,acij,bdkl->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t1(c,i) t2(b,d,j,k) + t = 1.0000 * einsum('akcd,ci,bdjk->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * P(i,j) t1(a,k) t1(b,l) t1(c,j) + t = 1.0000 * einsum('klic,ak,bl,cj->abij' ,g[o,o,o,v] ,t1 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * t1(a,k) t1(b,l) t1(c,i) t1(d,j) + T += 1.0000 * einsum('klcd,ak,bl,ci,dj->abij' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t1, optimize=True) + + # 1.0000 * P(a,b) t1(a,l) t1(c,k) t2(b,d,i,j) + t = 1.0000 * einsum('klcd,al,ck,bdij->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(c,k) t1(d,i) t2(a,b,j,l) + t = 1.0000 * einsum('klcd,ck,di,abjl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(a,b)P(i,j) t1(b,k) t1(c,j) + t = -1.0000 * einsum('akic,bk,cj->abij' ,g[v,o,o,v] ,t1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # -1.0000 * P(a,b) t1(b,k) t1(c,i) t1(d,j) + t = -1.0000 * einsum('akcd,bk,ci,dj->abij' ,g[v,o,v,v] ,t1 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b)P(i,j) t1(a,k) t2(b,c,j,l) + t = -1.0000 * einsum('klic,ak,bcjl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # -1.0000 * P(a,b)P(i,j) t1(a,k) t1(c,i) t2(b,d,j,l) + t = -1.0000 * einsum('klcd,ak,ci,bdjl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * + T += 1.0000 * einsum('abij->abij' ,g[v,v,o,o], optimize=True) + + return T + +def cc_triples(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [3] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(c,d) t3(a,b,d,i,j,k) + T = 1.0000 * einsum('cd,abdijk->abcijk' ,f[v,v] ,t3, optimize=True) + + # 1.0000 * t2(a,b,k,l) + T += 1.0000 * einsum('clij,abkl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + + # -1.0000 * f(l,k) t3(a,b,c,i,j,l) + T += -1.0000 * einsum('lk,abcijl->abcijk' ,f[o,o] ,t3, optimize=True) + + # -1.0000 * t2(c,d,i,j) + T += -1.0000 * einsum('abkd,cdij->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + + # 1.0000 * P(a,b) f(a,d) t3(b,c,d,i,j,k) + t = 1.0000 * einsum('ad,bcdijk->abcijk' ,f[v,v] ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * f(l,d) t2(a,b,k,l) t2(c,d,i,j) + T += 1.0000 * einsum('ld,abkl,cdij->abcijk' ,f[o,v] ,t2 ,t2, optimize=True) + + # 1.0000 * P(a,b) t2(b,d,i,j) + t = 1.0000 * einsum('ackd,bdij->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b) t2(b,c,k,l) + t = 1.0000 * einsum('alij,bckl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) f(l,i) t3(a,b,c,j,k,l) + t = -1.0000 * einsum('li,abcjkl->abcijk' ,f[o,o] ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * f(l,d) t1(c,l) t3(a,b,d,i,j,k) + T += -1.0000 * einsum('ld,cl,abdijk->abcijk' ,f[o,v] ,t1 ,t3, optimize=True) + + # -1.0000 * f(l,d) t1(d,k) t3(a,b,c,i,j,l) + T += -1.0000 * einsum('ld,dk,abcijl->abcijk' ,f[o,v] ,t1 ,t3, optimize=True) + + # -1.0000 * P(i,j) t2(c,d,j,k) + t = -1.0000 * einsum('abid,cdjk->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * t1(d,k) t2(c,e,i,j) + T += -1.0000 * einsum('abde,dk,ceij->abcijk' ,g[v,v,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * P(i,j) t2(a,b,j,l) + t = -1.0000 * einsum('clik,abjl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * t1(c,l) t2(a,b,k,m) + T += -1.0000 * einsum('lmij,cl,abkm->abcijk' ,g[o,o,o,o] ,t1 ,t2, optimize=True) + + # 1.0000 * P(a,b) f(l,d) t2(a,d,i,j) t2(b,c,k,l) + t = 1.0000 * einsum('ld,adij,bckl->abcijk' ,f[o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t2(b,d,j,k) + t = 1.0000 * einsum('acid,bdjk->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(d,k) t2(b,e,i,j) + t = 1.0000 * einsum('acde,dk,beij->abcijk' ,g[v,v,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b) t1(b,l) t2(c,d,i,j) + t = 1.0000 * einsum('alkd,bl,cdij->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(d,j) t2(a,b,k,l) + t = 1.0000 * einsum('clid,dj,abkl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(a,l) t2(b,d,i,j) + t = 1.0000 * einsum('clkd,al,bdij->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(d,i) t2(a,b,j,l) + t = 1.0000 * einsum('clkd,di,abjl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * t1(d,i) t1(e,j) t2(a,b,k,l) + T += 1.0000 * einsum('clde,di,ej,abkl->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + + # 1.0000 * P(i,j) t1(c,l) t2(a,b,j,m) + t = 1.0000 * einsum('lmik,cl,abjm->abcijk' ,g[o,o,o,o] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b) f(l,d) t1(a,l) t3(b,c,d,i,j,k) + t = -1.0000 * einsum('ld,al,bcdijk->abcijk' ,f[o,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) f(l,d) t1(d,i) t3(a,b,c,j,k,l) + t = -1.0000 * einsum('ld,di,abcjkl->abcijk' ,f[o,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) f(l,d) t2(a,d,i,k) t2(b,c,j,l) + t = -1.0000 * einsum('ld,adik,bcjl->abcijk' ,f[o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(d,i) t2(c,e,j,k) + t = -1.0000 * einsum('abde,di,cejk->abcijk' ,g[v,v,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t2(b,c,j,l) + t = -1.0000 * einsum('alik,bcjl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b) t1(c,l) t2(b,d,i,j) + t = -1.0000 * einsum('alkd,cl,bdij->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) t1(d,k) t2(a,b,j,l) + t = -1.0000 * einsum('clid,dk,abjl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b) t1(a,l) t2(b,c,k,m) + t = -1.0000 * einsum('lmij,al,bckm->abcijk' ,g[o,o,o,o] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * t1(a,l) t1(b,m) t2(c,d,i,j) + T += -1.0000 * einsum('lmkd,al,bm,cdij->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + + # 1.0000 * P(b,c)P(i,j) f(l,d) t2(a,b,i,l) t2(c,d,j,k) + t = 1.0000 * einsum('ld,abil,cdjk->abcijk' ,f[o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(2, 1) - t.swapaxes(4, 3) + t.swapaxes(2, 1).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(d,i) t2(b,e,j,k) + t = 1.0000 * einsum('acde,di,bejk->abcijk' ,g[v,v,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(b,l) t2(c,d,j,k) + t = 1.0000 * einsum('alid,bl,cdjk->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(d,j) t2(b,c,k,l) + t = 1.0000 * einsum('alid,dj,bckl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(d,i) t2(b,c,j,l) + t = 1.0000 * einsum('alkd,di,bcjl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(b,l) t1(d,k) t2(c,e,i,j) + t = 1.0000 * einsum('alde,bl,dk,ceij->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b) t1(d,i) t1(e,j) t2(b,c,k,l) + t = 1.0000 * einsum('alde,di,ej,bckl->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t2(b,d,j,k) + t = 1.0000 * einsum('clid,al,bdjk->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(a,l) t1(d,k) t2(b,e,i,j) + t = 1.0000 * einsum('clde,al,dk,beij->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t2(b,c,j,m) + t = 1.0000 * einsum('lmik,al,bcjm->abcijk' ,g[o,o,o,o] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(i,j) t1(c,l) t1(d,k) t2(a,b,j,m) + t = 1.0000 * einsum('lmid,cl,dk,abjm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(a,l) t1(c,m) t2(b,d,i,j) + t = 1.0000 * einsum('lmkd,al,cm,bdij->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b)P(i,j) t1(c,l) t2(b,d,j,k) + t = -1.0000 * einsum('alid,cl,bdjk->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(d,k) t2(b,c,j,l) + t = -1.0000 * einsum('alid,dk,bcjl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b) t1(c,l) t1(d,k) t2(b,e,i,j) + t = -1.0000 * einsum('alde,cl,dk,beij->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) t1(d,i) t1(e,k) t2(a,b,j,l) + t = -1.0000 * einsum('clde,di,ek,abjl->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(a,l) t1(b,m) t2(c,d,j,k) + t = -1.0000 * einsum('lmid,al,bm,cdjk->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(c,l) t1(d,j) t2(a,b,k,m) + t = -1.0000 * einsum('lmid,cl,dj,abkm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(c,l) t1(d,i) t2(a,b,j,m) + t = -1.0000 * einsum('lmkd,cl,di,abjm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * t1(a,l) t1(b,m) t1(d,k) t2(c,e,i,j) + T += -1.0000 * einsum('lmde,al,bm,dk,ceij->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + + # -1.0000 * t1(c,l) t1(d,i) t1(e,j) t2(a,b,k,m) + T += -1.0000 * einsum('lmde,cl,di,ej,abkm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + + # 1.0000 * P(a,b)P(i,j) t1(b,l) t1(d,i) t2(c,e,j,k) + t = 1.0000 * einsum('alde,bl,di,cejk->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t1(d,i) t2(b,e,j,k) + t = 1.0000 * einsum('clde,al,di,bejk->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t1(c,m) t2(b,d,j,k) + t = 1.0000 * einsum('lmid,al,cm,bdjk->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t1(d,k) t2(b,c,j,m) + t = 1.0000 * einsum('lmid,al,dk,bcjm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(a,l) t1(c,m) t1(d,k) t2(b,e,i,j) + t = 1.0000 * einsum('lmde,al,cm,dk,beij->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(c,l) t1(d,i) t1(e,k) t2(a,b,j,m) + t = 1.0000 * einsum('lmde,cl,di,ek,abjm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(c,l) t1(d,i) t2(b,e,j,k) + t = -1.0000 * einsum('alde,cl,di,bejk->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(d,i) t1(e,k) t2(b,c,j,l) + t = -1.0000 * einsum('alde,di,ek,bcjl->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(a,l) t1(d,j) t2(b,c,k,m) + t = -1.0000 * einsum('lmid,al,dj,bckm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(a,l) t1(d,i) t2(b,c,j,m) + t = -1.0000 * einsum('lmkd,al,di,bcjm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(a,l) t1(b,m) t1(d,i) t2(c,e,j,k) + t = -1.0000 * einsum('lmde,al,bm,di,cejk->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b) t1(a,l) t1(d,i) t1(e,j) t2(b,c,k,m) + t = -1.0000 * einsum('lmde,al,di,ej,bckm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t1(c,m) t1(d,i) t2(b,e,j,k) + t = 1.0000 * einsum('lmde,al,cm,di,bejk->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t1(d,i) t1(e,k) t2(b,c,j,m) + t = 1.0000 * einsum('lmde,al,di,ek,bcjm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + return T + diff --git a/codes/cc_rdm.py b/codes/cc_rdm.py new file mode 100644 index 0000000..aae8898 --- /dev/null +++ b/codes/cc_rdm.py @@ -0,0 +1,320 @@ + +'''s - spin orbitals, o - occupied spin orbitals, v - virtual spin orbitals +t1[v,o] - singles amplitudes, t2[v,v,o,o] - doubles amplitudes +l1[o,v] - singles lambda, l2[o,o,v,v] - doubles lambda +''' + +def cc_oprdm(o, v, t1=None, t2=None, l1=None, l2=None): + + ''' + COGUS generated level [CC] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes, eye, zeros + + ns = sum(t1.shape) + d = zeros((ns, ns)) + kd = eye(ns) + + # density matrix block [oo] + + # -1.0000 * l1(j,a) t1(a,i) + d[o,o] = -1.0000 * einsum('ja,ai->ij' ,l1 ,t1, optimize=True) + + # -0.50000 * l2(j,k,a,b) t2(a,b,i,k) + d[o,o] += -0.50000 * einsum('jkab,abik->ij' ,l2 ,t2, optimize=True) + + # 1.0000 * kd[o,o] + d[o,o] += 1.0000 * einsum('ij->ij' ,kd[o,o], optimize=True) + + # density matrix block [ov] + + # 1.0000 * l1(j,b) t2(a,b,i,j) + d[o,v] = 1.0000 * einsum('jb,abij->ia' ,l1 ,t2, optimize=True) + + # -1.0000 * l1(j,b) t1(a,j) t1(b,i) + d[o,v] += -1.0000 * einsum('jb,aj,bi->ia' ,l1 ,t1 ,t1, optimize=True) + + # -0.50000 * l2(j,k,b,c) t1(a,j) t2(b,c,i,k) + d[o,v] += -0.50000 * einsum('jkbc,aj,bcik->ia' ,l2 ,t1 ,t2, optimize=True) + + # -0.50000 * l2(j,k,b,c) t1(b,i) t2(a,c,j,k) + d[o,v] += -0.50000 * einsum('jkbc,bi,acjk->ia' ,l2 ,t1 ,t2, optimize=True) + + # 1.0000 * t1(a,i) + d[o,v] += 1.0000 * einsum('ai->ia' ,t1, optimize=True) + + # density matrix block [vo] + + # 1.0000 * l1(i,a) + d[v,o] = 1.0000 * einsum('ia->ai' ,l1, optimize=True) + + # density matrix block [vv] + + # 1.0000 * l1(i,a) t1(b,i) + d[v,v] = 1.0000 * einsum('ia,bi->ab' ,l1 ,t1, optimize=True) + + # 0.5000 * l2(i,j,a,c) t2(b,c,i,j) + d[v,v] += 0.5000 * einsum('ijac,bcij->ab' ,l2 ,t2, optimize=True) + + return d + +def cc_tprdm(o, v, t1=None, t2=None, l1=None, l2=None): + + ''' + COGUS generated level [CC] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes, eye, zeros + + ns = sum(t1.shape) + d = zeros((ns, ns, ns, ns)) + kd = eye(ns) + + # density matrix block [oooo] + + # 0.5000 * t2(a,b,i,j) l2(k,l,a,b) + d[o,o,o,o] = 0.5000 * einsum('abij,klab->ijkl' ,t2 ,l2, optimize=True) + + # -1.0000 * P(i,j) kd[o,o] kd[o,o] + t = -1.0000 * einsum('il,jk->ijkl' ,kd[o,o], kd[o,o], optimize=True) + d[o,o,o,o] += t - t.swapaxes(1, 0) + + # 0.5000 * P(i,j) t1(a,i) t1(b,j) l2(k,l,a,b) + t = 0.5000 * einsum('ai,bj,klab->ijkl' ,t1 ,t1 ,l2, optimize=True) + d[o,o,o,o] += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j)P(k,l) t1(a,i) l1(k,a) kd[o,o] + t = -1.0000 * einsum('ai,ka,jl->ijkl' ,t1 ,l1 ,kd[o,o], optimize=True) + d[o,o,o,o] += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # -0.50000 * P(i,j)P(k,l) t2(a,b,i,m) l2(k,m,a,b) kd[o,o] + t = -0.50000 * einsum('abim,kmab,jl->ijkl' ,t2 ,l2 ,kd[o,o], optimize=True) + d[o,o,o,o] += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # density matrix block [ooov] + + # 1.0000 * t2(a,b,i,j) l1(k,b) + d[o,o,o,v] = 1.0000 * einsum('abij,kb->ijka' ,t2 ,l1, optimize=True) + + # 0.5000 * t1(a,l) t2(b,c,i,j) l2(k,l,b,c) + d[o,o,o,v] += 0.5000 * einsum('al,bcij,klbc->ijka' ,t1 ,t2 ,l2, optimize=True) + + # -1.0000 * P(i,j) t1(a,i) kd[o,o] + t = -1.0000 * einsum('ai,jk->ijka' ,t1 ,kd[o,o], optimize=True) + d[o,o,o,v] += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(a,i) t1(b,j) l1(k,b) + t = 1.0000 * einsum('ai,bj,kb->ijka' ,t1 ,t1 ,l1, optimize=True) + d[o,o,o,v] += t - t.swapaxes(1, 0) + + # 0.5000 * P(i,j) t1(a,i) t2(b,c,j,l) l2(k,l,b,c) + t = 0.5000 * einsum('ai,bcjl,klbc->ijka' ,t1 ,t2 ,l2, optimize=True) + d[o,o,o,v] += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) t1(b,i) t2(a,c,j,l) l2(k,l,b,c) + t = -1.0000 * einsum('bi,acjl,klbc->ijka' ,t1 ,t2 ,l2, optimize=True) + d[o,o,o,v] += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) t2(a,b,i,l) l1(l,b) kd[o,o] + t = -1.0000 * einsum('abil,lb,jk->ijka' ,t2 ,l1 ,kd[o,o], optimize=True) + d[o,o,o,v] += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(a,l) t1(b,i) l1(l,b) kd[o,o] + t = 1.0000 * einsum('al,bi,lb,jk->ijka' ,t1 ,t1 ,l1 ,kd[o,o], optimize=True) + d[o,o,o,v] += t - t.swapaxes(1, 0) + + # 0.5000 * P(i,j) t1(a,l) t1(b,i) t1(c,j) l2(k,l,b,c) + t = 0.5000 * einsum('al,bi,cj,klbc->ijka' ,t1 ,t1 ,t1 ,l2, optimize=True) + d[o,o,o,v] += t - t.swapaxes(1, 0) + + # 0.5000 * P(i,j) t1(a,l) t2(b,c,i,m) l2(l,m,b,c) kd[o,o] + t = 0.5000 * einsum('al,bcim,lmbc,jk->ijka' ,t1 ,t2 ,l2 ,kd[o,o], optimize=True) + d[o,o,o,v] += t - t.swapaxes(1, 0) + + # 0.5000 * P(i,j) t1(b,i) t2(a,c,l,m) l2(l,m,b,c) kd[o,o] + t = 0.5000 * einsum('bi,aclm,lmbc,jk->ijka' ,t1 ,t2 ,l2 ,kd[o,o], optimize=True) + d[o,o,o,v] += t - t.swapaxes(1, 0) + + # density matrix block [oovo] + d[o,o,v,o] -= d[o,o,o,v].swapaxes(3, 2) + + + # density matrix block [ovoo] + + # 1.0000 * t1(b,i) l2(k,l,a,b) + d[o,v,o,o] = 1.0000 * einsum('bi,klab->iakl' ,t1 ,l2, optimize=True) + + # -1.0000 * P(k,l) l1(k,a) kd[o,o] + t = -1.0000 * einsum('ka,il->iakl' ,l1 ,kd[o,o], optimize=True) + d[o,v,o,o] += t - t.swapaxes(3, 2) + + # density matrix block [vooo] + d[v,o,o,o] -= d[o,v,o,o].swapaxes(1, 0) + + + # density matrix block [vvvv] + + # 0.5000 * t2(c,d,i,j) l2(i,j,a,b) + d[v,v,v,v] = 0.5000 * einsum('cdij,ijab->abcd' ,t2 ,l2, optimize=True) + + # 0.5000 * P(a,b) t1(c,i) t1(d,j) l2(i,j,a,b) + t = 0.5000 * einsum('ci,dj,ijab->abcd' ,t1 ,t1 ,l2, optimize=True) + d[v,v,v,v] += t - t.swapaxes(1, 0) + + # density matrix block [vvvo] + + # -1.0000 * t1(c,j) l2(i,j,a,b) + d[v,v,v,o] = -1.0000 * einsum('cj,ijab->abci' ,t1 ,l2, optimize=True) + + # density matrix block [vvov] + d[v,v,o,v] -= d[v,v,v,o].swapaxes(3, 2) + + + # density matrix block [vovv] + + # -1.0000 * t2(c,d,i,j) l1(j,a) + d[v,o,v,v] = -1.0000 * einsum('cdij,ja->aicd' ,t2 ,l1, optimize=True) + + # -0.50000 * t1(b,i) t2(c,d,j,k) l2(j,k,a,b) + d[v,o,v,v] += -0.50000 * einsum('bi,cdjk,jkab->aicd' ,t1 ,t2 ,l2, optimize=True) + + # 1.0000 * P(c,d) t1(c,j) t2(d,b,i,k) l2(j,k,a,b) + t = 1.0000 * einsum('cj,dbik,jkab->aicd' ,t1 ,t2 ,l2, optimize=True) + d[v,o,v,v] += t - t.swapaxes(3, 2) + + # -1.0000 * P(c,d) t1(c,i) t1(d,j) l1(j,a) + t = -1.0000 * einsum('ci,dj,ja->aicd' ,t1 ,t1 ,l1, optimize=True) + d[v,o,v,v] += t - t.swapaxes(3, 2) + + # -0.50000 * P(c,d) t1(c,i) t2(d,b,j,k) l2(j,k,a,b) + t = -0.50000 * einsum('ci,dbjk,jkab->aicd' ,t1 ,t2 ,l2, optimize=True) + d[v,o,v,v] += t - t.swapaxes(3, 2) + + # -0.50000 * P(c,d) t1(c,j) t1(d,k) t1(b,i) l2(j,k,a,b) + t = -0.50000 * einsum('cj,dk,bi,jkab->aicd' ,t1 ,t1 ,t1 ,l2, optimize=True) + d[v,o,v,v] += t - t.swapaxes(3, 2) + + # density matrix block [ovvv] + d[o,v,v,v] -= d[v,o,v,v].swapaxes(1, 0) + + + # density matrix block [oovv] + + # 1.0000 * P(i,j) t1(a,i) t1(b,j) + t = 1.0000 * einsum('ai,bj->ijab' ,t1 ,t1, optimize=True) + d[o,o,v,v] = t - t.swapaxes(1, 0) + + # 0.2500 * t2(a,b,k,l) t2(c,d,i,j) l2(k,l,c,d) + d[o,o,v,v] += 0.2500 * einsum('abkl,cdij,klcd->ijab' ,t2 ,t2 ,l2, optimize=True) + + # 1.0000 * P(a,b) t1(a,k) t2(b,c,i,j) l1(k,c) + t = 1.0000 * einsum('ak,bcij,kc->ijab' ,t1 ,t2 ,l1, optimize=True) + d[o,o,v,v] += t - t.swapaxes(3, 2) + + # 1.0000 * P(i,j) t1(c,i) t2(a,b,j,k) l1(k,c) + t = 1.0000 * einsum('ci,abjk,kc->ijab' ,t1 ,t2 ,l1, optimize=True) + d[o,o,v,v] += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t2(a,c,i,k) t2(b,d,j,l) l2(k,l,c,d) + t = 1.0000 * einsum('acik,bdjl,klcd->ijab' ,t2 ,t2 ,l2, optimize=True) + d[o,o,v,v] += t - t.swapaxes(1, 0) + + # -0.25000 * P(i,j) t2(a,c,i,j) t2(b,d,k,l) l2(k,l,c,d) + t = -0.25000 * einsum('acij,bdkl,klcd->ijab' ,t2 ,t2 ,l2, optimize=True) + d[o,o,v,v] += t - t.swapaxes(1, 0) + + # -0.25000 * P(i,j) t2(a,c,k,l) t2(b,d,i,j) l2(k,l,c,d) + t = -0.25000 * einsum('ackl,bdij,klcd->ijab' ,t2 ,t2 ,l2, optimize=True) + d[o,o,v,v] += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t1(a,i) t2(b,c,j,k) l1(k,c) + t = 1.0000 * einsum('ai,bcjk,kc->ijab' ,t1 ,t2 ,l1, optimize=True) + d[o,o,v,v] += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # 0.2500 * P(i,j) t1(a,k) t1(b,l) t2(c,d,i,j) l2(k,l,c,d) + t = 0.2500 * einsum('ak,bl,cdij,klcd->ijab' ,t1 ,t1 ,t2 ,l2, optimize=True) + d[o,o,v,v] += t - t.swapaxes(1, 0) + + # 0.2500 * P(i,j) t1(c,i) t1(d,j) t2(a,b,k,l) l2(k,l,c,d) + t = 0.2500 * einsum('ci,dj,abkl,klcd->ijab' ,t1 ,t1 ,t2 ,l2, optimize=True) + d[o,o,v,v] += t - t.swapaxes(1, 0) + + # 0.2500 * P(a,b)P(i,j) t2(a,b,i,l) t2(c,d,j,k) l2(k,l,c,d) + t = 0.2500 * einsum('abil,cdjk,klcd->ijab' ,t2 ,t2 ,l2, optimize=True) + d[o,o,v,v] += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # -1.0000 * P(a,b)P(i,j) t1(a,i) t1(b,k) t1(c,j) l1(k,c) + t = -1.0000 * einsum('ai,bk,cj,kc->ijab' ,t1 ,t1 ,t1 ,l1, optimize=True) + d[o,o,v,v] += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # -1.0000 * P(a,b)P(i,j) t1(a,k) t1(c,i) t2(b,d,j,l) l2(k,l,c,d) + t = -1.0000 * einsum('ak,ci,bdjl,klcd->ijab' ,t1 ,t1 ,t2 ,l2, optimize=True) + d[o,o,v,v] += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # -0.50000 * P(a,b)P(i,j) t1(a,i) t1(c,j) t2(b,d,k,l) l2(k,l,c,d) + t = -0.50000 * einsum('ai,cj,bdkl,klcd->ijab' ,t1 ,t1 ,t2 ,l2, optimize=True) + d[o,o,v,v] += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # -0.25000 * P(a,b)P(i,j) t1(a,i) t1(b,k) t2(c,d,j,l) l2(k,l,c,d) + t = -0.25000 * einsum('ai,bk,cdjl,klcd->ijab' ,t1 ,t1 ,t2 ,l2, optimize=True) + d[o,o,v,v] += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # 0.2500 * P(a,b)P(i,j) t1(a,k) t1(b,i) t2(c,d,j,l) l2(k,l,c,d) + t = 0.2500 * einsum('ak,bi,cdjl,klcd->ijab' ,t1 ,t1 ,t2 ,l2, optimize=True) + d[o,o,v,v] += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # 0.2500 * P(a,b)P(i,j) t1(a,k) t1(b,l) t1(c,i) t1(d,j) l2(k,l,c,d) + t = 0.2500 * einsum('ak,bl,ci,dj,klcd->ijab' ,t1 ,t1 ,t1 ,t1 ,l2, optimize=True) + d[o,o,v,v] += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # 1.0000 * t2(a,b,i,j) + d[o,o,v,v] += 1.0000 * einsum('abij->ijab' ,t2, optimize=True) + + # density matrix block [vvoo] + + # 1.0000 * l2(i,j,a,b) + d[v,v,o,o] = 1.0000 * einsum('ijab->abij' ,l2, optimize=True) + + # density matrix block [ovov] + + # -1.0000 * t1(b,i) l1(j,a) + d[o,v,o,v] = -1.0000 * einsum('bi,ja->iajb' ,t1 ,l1, optimize=True) + + # -1.0000 * t2(b,d,i,k) l2(j,k,a,d) + d[o,v,o,v] += -1.0000 * einsum('bdik,jkad->iajb' ,t2 ,l2, optimize=True) + + # 1.0000 * t1(b,k) t1(d,i) l2(j,k,a,d) + d[o,v,o,v] += 1.0000 * einsum('bk,di,jkad->iajb' ,t1 ,t1 ,l2, optimize=True) + + # 1.0000 * t1(b,k) l1(k,a) kd[o,o] + d[o,v,o,v] += 1.0000 * einsum('bk,ka,ij->iajb' ,t1 ,l1 ,kd[o,o], optimize=True) + + # 0.5000 * t2(b,d,k,l) l2(k,l,a,d) kd[o,o] + d[o,v,o,v] += 0.5000 * einsum('bdkl,klad,ij->iajb' ,t2 ,l2 ,kd[o,o], optimize=True) + + # density matrix block [voov] + d[v,o,o,v] -= d[o,v,o,v].swapaxes(1, 0) + + + # density matrix block [ovvo] + + # 1.0000 * t1(b,i) l1(j,a) + d[o,v,v,o] = 1.0000 * einsum('bi,ja->iabj' ,t1 ,l1, optimize=True) + + # 1.0000 * t2(b,d,i,k) l2(j,k,a,d) + d[o,v,v,o] += 1.0000 * einsum('bdik,jkad->iabj' ,t2 ,l2, optimize=True) + + # -1.0000 * t1(b,k) t1(d,i) l2(j,k,a,d) + d[o,v,v,o] += -1.0000 * einsum('bk,di,jkad->iabj' ,t1 ,t1 ,l2, optimize=True) + + # -1.0000 * t1(b,k) l1(k,a) kd[o,o] + d[o,v,v,o] += -1.0000 * einsum('bk,ka,ij->iabj' ,t1 ,l1 ,kd[o,o], optimize=True) + + # -0.50000 * t2(b,d,k,l) l2(k,l,a,d) kd[o,o] + d[o,v,v,o] += -0.50000 * einsum('bdkl,klad,ij->iabj' ,t2 ,l2 ,kd[o,o], optimize=True) + + # density matrix block [vovo] + d[v,o,v,o] -= d[o,v,v,o].swapaxes(1, 0) + + + return d + diff --git a/codes/ccd.py b/codes/ccd.py new file mode 100644 index 0000000..9b03537 --- /dev/null +++ b/codes/ccd.py @@ -0,0 +1,71 @@ + +'''s - spin orbitals, o - occupied spin orbitals, v - virtual spin orbitals +t1[v,o] - singles amplitudes, t2[v,v,o,o] - doubles amplitudes +l1[o,v] - singles lambda, l2[o,o,v,v] - doubles lambda +''' + +def cc_energy(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [D] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # -0.50000 * + T = -0.50000 * einsum('ijij->' ,g[o,o,o,o], optimize=True) + + # 0.2500 * t2(a,b,i,j) + T += 0.2500 * einsum('ijab,abij->' ,g[o,o,v,v] ,t2, optimize=True) + + # 1.0000 * f(i,i) + T += 1.0000 * einsum('ii->' ,f[o,o], optimize=True) + + return T + +def cc_doubles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [D] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 0.5000 * t2(c,d,i,j) + T = 0.5000 * einsum('abcd,cdij->abij' ,g[v,v,v,v] ,t2, optimize=True) + + # 0.5000 * t2(a,b,k,l) + T += 0.5000 * einsum('klij,abkl->abij' ,g[o,o,o,o] ,t2, optimize=True) + + # 1.0000 * P(i,j) f(k,i) t2(a,b,j,k) + t = 1.0000 * einsum('ki,abjk->abij' ,f[o,o] ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(a,b) f(a,c) t2(b,c,i,j) + t = -1.0000 * einsum('ac,bcij->abij' ,f[v,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 0.2500 * t2(a,b,k,l) t2(c,d,i,j) + T += 0.2500 * einsum('klcd,abkl,cdij->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + + # 1.0000 * P(a,b)P(i,j) t2(b,c,j,k) + t = 1.0000 * einsum('akic,bcjk->abij' ,g[v,o,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * P(i,j) t2(a,c,i,k) t2(b,d,j,l) + t = 1.0000 * einsum('klcd,acik,bdjl->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 0.5000 * P(i,j) t2(a,b,i,l) t2(c,d,j,k) + t = 0.5000 * einsum('klcd,abil,cdjk->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -0.50000 * P(a,b) t2(a,c,k,l) t2(b,d,i,j) + t = -0.50000 * einsum('klcd,ackl,bdij->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * + T += 1.0000 * einsum('abij->abij' ,g[v,v,o,o], optimize=True) + + return T + diff --git a/codes/ccsd.py b/codes/ccsd.py new file mode 100644 index 0000000..50fdb3f --- /dev/null +++ b/codes/ccsd.py @@ -0,0 +1,208 @@ + +'''s - spin orbitals, o - occupied spin orbitals, v - virtual spin orbitals +t1[v,o] - singles amplitudes, t2[v,v,o,o] - doubles amplitudes +l1[o,v] - singles lambda, l2[o,o,v,v] - doubles lambda +''' + +def cc_energy(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [SD] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # -0.50000 * + T = -0.50000 * einsum('ijij->' ,g[o,o,o,o], optimize=True) + + # 1.0000 * f(i,a) t1(a,i) + T += 1.0000 * einsum('ia,ai->' ,f[o,v] ,t1, optimize=True) + + # 0.2500 * t2(a,b,i,j) + T += 0.2500 * einsum('ijab,abij->' ,g[o,o,v,v] ,t2, optimize=True) + + # -0.50000 * t1(a,j) t1(b,i) + T += -0.50000 * einsum('ijab,aj,bi->' ,g[o,o,v,v] ,t1 ,t1, optimize=True) + + # 1.0000 * f(i,i) + T += 1.0000 * einsum('ii->' ,f[o,o], optimize=True) + + return T + +def cc_singles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [SD] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(a,b) t1(b,i) + T = 1.0000 * einsum('ab,bi->ai' ,f[v,v] ,t1, optimize=True) + + # 1.0000 * f(j,b) t2(a,b,i,j) + T += 1.0000 * einsum('jb,abij->ai' ,f[o,v] ,t2, optimize=True) + + # 1.0000 * t1(b,j) + T += 1.0000 * einsum('ajib,bj->ai' ,g[v,o,o,v] ,t1, optimize=True) + + # 0.5000 * t2(b,c,i,j) + T += 0.5000 * einsum('ajbc,bcij->ai' ,g[v,o,v,v] ,t2, optimize=True) + + # -1.0000 * f(j,i) t1(a,j) + T += -1.0000 * einsum('ji,aj->ai' ,f[o,o] ,t1, optimize=True) + + # -0.50000 * t2(a,b,j,k) + T += -0.50000 * einsum('jkib,abjk->ai' ,g[o,o,o,v] ,t2, optimize=True) + + # 1.0000 * t1(a,k) t1(b,j) + T += 1.0000 * einsum('jkib,ak,bj->ai' ,g[o,o,o,v] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(b,j) t2(a,c,i,k) + T += 1.0000 * einsum('jkbc,bj,acik->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * f(j,b) t1(a,j) t1(b,i) + T += -1.0000 * einsum('jb,aj,bi->ai' ,f[o,v] ,t1 ,t1, optimize=True) + + # -1.0000 * t1(b,j) t1(c,i) + T += -1.0000 * einsum('ajbc,bj,ci->ai' ,g[v,o,v,v] ,t1 ,t1, optimize=True) + + # -0.50000 * t1(a,j) t2(b,c,i,k) + T += -0.50000 * einsum('jkbc,aj,bcik->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -0.50000 * t1(b,i) t2(a,c,j,k) + T += -0.50000 * einsum('jkbc,bi,acjk->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * t1(a,k) t1(b,j) t1(c,i) + T += -1.0000 * einsum('jkbc,ak,bj,ci->ai' ,g[o,o,v,v] ,t1 ,t1 ,t1, optimize=True) + + # 1.0000 * f(a,i) + T += 1.0000 * einsum('ai->ai' ,f[v,o], optimize=True) + + return T + +def cc_doubles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [SD] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 0.5000 * t2(c,d,i,j) + T = 0.5000 * einsum('abcd,cdij->abij' ,g[v,v,v,v] ,t2, optimize=True) + + # 0.5000 * t2(a,b,k,l) + T += 0.5000 * einsum('klij,abkl->abij' ,g[o,o,o,o] ,t2, optimize=True) + + # 1.0000 * P(i,j) f(k,i) t2(a,b,j,k) + t = 1.0000 * einsum('ki,abjk->abij' ,f[o,o] ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * P(i,j) t1(c,j) + t = 1.0000 * einsum('abic,cj->abij' ,g[v,v,o,v] ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * t1(c,i) t1(d,j) + T += 1.0000 * einsum('abcd,ci,dj->abij' ,g[v,v,v,v] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(a,k) t1(b,l) + T += 1.0000 * einsum('klij,ak,bl->abij' ,g[o,o,o,o] ,t1 ,t1, optimize=True) + + # -1.0000 * P(a,b) f(a,c) t2(b,c,i,j) + t = -1.0000 * einsum('ac,bcij->abij' ,f[v,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) t1(b,k) + t = -1.0000 * einsum('akij,bk->abij' ,g[v,o,o,o] ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # 0.2500 * t2(a,b,k,l) t2(c,d,i,j) + T += 0.2500 * einsum('klcd,abkl,cdij->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + + # 1.0000 * P(a,b) f(k,c) t1(a,k) t2(b,c,i,j) + t = 1.0000 * einsum('kc,ak,bcij->abij' ,f[o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) f(k,c) t1(c,i) t2(a,b,j,k) + t = 1.0000 * einsum('kc,ci,abjk->abij' ,f[o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * P(a,b)P(i,j) t2(b,c,j,k) + t = 1.0000 * einsum('akic,bcjk->abij' ,g[v,o,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * P(a,b) t1(c,k) t2(b,d,i,j) + t = 1.0000 * einsum('akcd,ck,bdij->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t2(a,c,i,k) t2(b,d,j,l) + t = 1.0000 * einsum('klcd,acik,bdjl->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 0.5000 * P(i,j) t1(c,j) t2(a,b,k,l) + t = 0.5000 * einsum('klic,cj,abkl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 0.5000 * t1(a,k) t1(b,l) t2(c,d,i,j) + T += 0.5000 * einsum('klcd,ak,bl,cdij->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + + # 0.5000 * t1(c,i) t1(d,j) t2(a,b,k,l) + T += 0.5000 * einsum('klcd,ci,dj,abkl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + + # 0.5000 * P(i,j) t2(a,b,i,l) t2(c,d,j,k) + t = 0.5000 * einsum('klcd,abil,cdjk->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(i,j) t1(c,k) t2(a,b,j,l) + t = -1.0000 * einsum('klic,ck,abjl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -0.50000 * P(a,b) t1(b,k) t2(c,d,i,j) + t = -0.50000 * einsum('akcd,bk,cdij->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(a,b) t2(a,c,i,j) t2(b,d,k,l) + t = -0.50000 * einsum('klcd,acij,bdkl->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t1(c,i) t2(b,d,j,k) + t = 1.0000 * einsum('akcd,ci,bdjk->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * P(i,j) t1(a,k) t1(b,l) t1(c,j) + t = 1.0000 * einsum('klic,ak,bl,cj->abij' ,g[o,o,o,v] ,t1 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * t1(a,k) t1(b,l) t1(c,i) t1(d,j) + T += 1.0000 * einsum('klcd,ak,bl,ci,dj->abij' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t1, optimize=True) + + # 1.0000 * P(a,b) t1(a,l) t1(c,k) t2(b,d,i,j) + t = 1.0000 * einsum('klcd,al,ck,bdij->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(c,k) t1(d,i) t2(a,b,j,l) + t = 1.0000 * einsum('klcd,ck,di,abjl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(a,b)P(i,j) t1(b,k) t1(c,j) + t = -1.0000 * einsum('akic,bk,cj->abij' ,g[v,o,o,v] ,t1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # -1.0000 * P(a,b) t1(b,k) t1(c,i) t1(d,j) + t = -1.0000 * einsum('akcd,bk,ci,dj->abij' ,g[v,o,v,v] ,t1 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b)P(i,j) t1(a,k) t2(b,c,j,l) + t = -1.0000 * einsum('klic,ak,bcjl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # -1.0000 * P(a,b)P(i,j) t1(a,k) t1(c,i) t2(b,d,j,l) + t = -1.0000 * einsum('klcd,ak,ci,bdjl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * + T += 1.0000 * einsum('abij->abij' ,g[v,v,o,o], optimize=True) + + return T + diff --git a/codes/ccsd_lambda.py b/codes/ccsd_lambda.py new file mode 100644 index 0000000..f279244 --- /dev/null +++ b/codes/ccsd_lambda.py @@ -0,0 +1,298 @@ + +'''s - spin orbitals, o - occupied spin orbitals, v - virtual spin orbitals +t1[v,o] - singles amplitudes, t2[v,v,o,o] - doubles amplitudes +l1[o,v] - singles lambda, l2[o,o,v,v] - doubles lambda +''' + + +def cc_lambda_lagrangian_energy(f, g, o, v, t1=None, t2=None, l1=None, l2=None): + + ''' + COGUS generated level [SD] on 29 Jul 2021 + ''' + + from numpy import einsum + + T = cc_energy(f, g, o, v, t1, t2, t3=None) + + T += einsum('ia,ai->', l1, cc_singles(f, g, o, v, t1, t2, t3=None)) + + T += einsum('ijab,abij->', l2, cc_doubles(f, g, o, v, t1, t2, t3=None)) + + + return T + +def cc_lambda_singles(f, g, o, v, t1=None, t2=None, l1=None, l2=None): + + ''' + COGUS generated level [SD] on 29 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(b,a) l1(i,b) + T = 1.0000 * einsum('ba,ib->ia' ,f[v,v] ,l1, optimize=True) + + # 1.0000 * l1(j,b) + T += 1.0000 * einsum('ibaj,jb->ia' ,g[o,v,v,o] ,l1, optimize=True) + + # 1.0000 * t1(b,j) + T += 1.0000 * einsum('ijab,bj->ia' ,g[o,o,v,v] ,t1, optimize=True) + + # 0.5000 * l2(i,j,b,c) + T += 0.5000 * einsum('bcaj,ijbc->ia' ,g[v,v,v,o] ,l2, optimize=True) + + # -1.0000 * f(i,j) l1(j,a) + T += -1.0000 * einsum('ij,ja->ia' ,f[o,o] ,l1, optimize=True) + + # -0.50000 * l2(j,k,a,b) + T += -0.50000 * einsum('ibjk,jkab->ia' ,g[o,v,o,o] ,l2, optimize=True) + + # 1.0000 * l1(j,b) t1(c,j) + T += 1.0000 * einsum('ibac,jb,cj->ia' ,g[o,v,v,v] ,l1 ,t1, optimize=True) + + # 1.0000 * l2(j,k,a,b) t1(c,k) + T += 1.0000 * einsum('ibcj,jkab,ck->ia' ,g[o,v,v,o] ,l2 ,t1, optimize=True) + + # 1.0000 * l1(k,c) t2(b,c,j,k) + T += 1.0000 * einsum('ijab,kc,bcjk->ia' ,g[o,o,v,v] ,l1 ,t2, optimize=True) + + # 1.0000 * l1(j,a) t1(b,k) + T += 1.0000 * einsum('ikbj,ja,bk->ia' ,g[o,o,v,o] ,l1 ,t1, optimize=True) + + # 1.0000 * l2(j,l,a,c) t2(b,c,k,l) + T += 1.0000 * einsum('ikbj,jlac,bckl->ia' ,g[o,o,v,o] ,l2 ,t2, optimize=True) + + # 1.0000 * l1(i,b) t1(c,j) + T += 1.0000 * einsum('bjac,ib,cj->ia' ,g[v,o,v,v] ,l1 ,t1, optimize=True) + + # 1.0000 * l2(i,k,b,d) t2(c,d,j,k) + T += 1.0000 * einsum('bjac,ikbd,cdjk->ia' ,g[v,o,v,v] ,l2 ,t2, optimize=True) + + # 0.5000 * l2(j,k,b,d) t2(c,d,j,k) + T += 0.5000 * einsum('ibac,jkbd,cdjk->ia' ,g[o,v,v,v] ,l2 ,t2, optimize=True) + + # 0.5000 * l1(k,a) t2(b,c,j,k) + T += 0.5000 * einsum('ijbc,ka,bcjk->ia' ,g[o,o,v,v] ,l1 ,t2, optimize=True) + + # 0.5000 * l2(j,k,a,b) t1(b,l) + T += 0.5000 * einsum('iljk,jkab,bl->ia' ,g[o,o,o,o] ,l2 ,t1, optimize=True) + + # 0.5000 * l2(i,j,b,c) t1(d,j) + T += 0.5000 * einsum('bcad,ijbc,dj->ia' ,g[v,v,v,v] ,l2 ,t1, optimize=True) + + # 0.5000 * l1(i,c) t2(b,c,j,k) + T += 0.5000 * einsum('jkab,ic,bcjk->ia' ,g[o,o,v,v] ,l1 ,t2, optimize=True) + + # -1.0000 * f(i,b) l1(j,a) t1(b,j) + T += -1.0000 * einsum('ib,ja,bj->ia' ,f[o,v] ,l1 ,t1, optimize=True) + + # -1.0000 * f(j,a) l1(i,b) t1(b,j) + T += -1.0000 * einsum('ja,ib,bj->ia' ,f[o,v] ,l1 ,t1, optimize=True) + + # -1.0000 * l1(j,b) t1(b,k) + T += -1.0000 * einsum('ikaj,jb,bk->ia' ,g[o,o,v,o] ,l1 ,t1, optimize=True) + + # -1.0000 * l2(i,j,b,c) t1(c,k) + T += -1.0000 * einsum('bkaj,ijbc,ck->ia' ,g[v,o,v,o] ,l2 ,t1, optimize=True) + + # -0.50000 * f(i,b) l2(j,k,a,c) t2(b,c,j,k) + T += -0.50000 * einsum('ib,jkac,bcjk->ia' ,f[o,v] ,l2 ,t2, optimize=True) + + # -0.50000 * f(j,a) l2(i,k,b,c) t2(b,c,j,k) + T += -0.50000 * einsum('ja,ikbc,bcjk->ia' ,f[o,v] ,l2 ,t2, optimize=True) + + # -0.50000 * l2(j,l,b,c) t2(b,c,k,l) + T += -0.50000 * einsum('ikaj,jlbc,bckl->ia' ,g[o,o,v,o] ,l2 ,t2, optimize=True) + + # -0.25000 * l2(j,k,a,b) t2(c,d,j,k) + T += -0.25000 * einsum('ibcd,jkab,cdjk->ia' ,g[o,v,v,v] ,l2 ,t2, optimize=True) + + # 0.2500 * l2(i,j,b,c) t2(b,c,k,l) + T += 0.2500 * einsum('klaj,ijbc,bckl->ia' ,g[o,o,v,o] ,l2 ,t2, optimize=True) + + # 1.0000 * l1(k,a) t1(b,j) t1(c,k) + T += 1.0000 * einsum('ijbc,ka,bj,ck->ia' ,g[o,o,v,v] ,l1 ,t1 ,t1, optimize=True) + + # 1.0000 * l1(i,c) t1(b,j) t1(c,k) + T += 1.0000 * einsum('jkab,ic,bj,ck->ia' ,g[o,o,v,v] ,l1 ,t1 ,t1, optimize=True) + + # 0.5000 * l2(j,k,a,b) t1(c,k) t1(d,j) + T += 0.5000 * einsum('ibcd,jkab,ck,dj->ia' ,g[o,v,v,v] ,l2 ,t1 ,t1, optimize=True) + + # 0.5000 * l2(k,l,a,d) t1(b,j) t2(c,d,k,l) + T += 0.5000 * einsum('ijbc,klad,bj,cdkl->ia' ,g[o,o,v,v] ,l2 ,t1 ,t2, optimize=True) + + # 0.5000 * l2(i,l,c,d) t1(b,j) t2(c,d,k,l) + T += 0.5000 * einsum('jkab,ilcd,bj,cdkl->ia' ,g[o,o,v,v] ,l2 ,t1 ,t2, optimize=True) + + # -1.0000 * l1(k,c) t1(b,k) t1(c,j) + T += -1.0000 * einsum('ijab,kc,bk,cj->ia' ,g[o,o,v,v] ,l1 ,t1 ,t1, optimize=True) + + # -1.0000 * l2(k,l,a,d) t1(b,k) t2(c,d,j,l) + T += -1.0000 * einsum('ijbc,klad,bk,cdjl->ia' ,g[o,o,v,v] ,l2 ,t1 ,t2, optimize=True) + + # -1.0000 * l2(j,l,a,c) t1(b,l) t1(c,k) + T += -1.0000 * einsum('ikbj,jlac,bl,ck->ia' ,g[o,o,v,o] ,l2 ,t1 ,t1, optimize=True) + + # -1.0000 * l2(i,k,b,d) t1(c,k) t1(d,j) + T += -1.0000 * einsum('bjac,ikbd,ck,dj->ia' ,g[v,o,v,v] ,l2 ,t1 ,t1, optimize=True) + + # -1.0000 * l2(i,l,c,d) t1(c,j) t2(b,d,k,l) + T += -1.0000 * einsum('jkab,ilcd,cj,bdkl->ia' ,g[o,o,v,v] ,l2 ,t1 ,t2, optimize=True) + + # -0.50000 * l2(k,l,c,d) t1(b,k) t2(c,d,j,l) + T += -0.50000 * einsum('ijab,klcd,bk,cdjl->ia' ,g[o,o,v,v] ,l2 ,t1 ,t2, optimize=True) + + # -0.50000 * l2(k,l,c,d) t1(c,j) t2(b,d,k,l) + T += -0.50000 * einsum('ijab,klcd,cj,bdkl->ia' ,g[o,o,v,v] ,l2 ,t1 ,t2, optimize=True) + + # -0.50000 * l2(i,j,b,c) t1(b,l) t1(c,k) + T += -0.50000 * einsum('klaj,ijbc,bl,ck->ia' ,g[o,o,v,o] ,l2 ,t1 ,t1, optimize=True) + + # 0.2500 * l2(k,l,a,d) t1(d,j) t2(b,c,k,l) + T += 0.2500 * einsum('ijbc,klad,dj,bckl->ia' ,g[o,o,v,v] ,l2 ,t1 ,t2, optimize=True) + + # 0.2500 * l2(i,l,c,d) t1(b,l) t2(c,d,j,k) + T += 0.2500 * einsum('jkab,ilcd,bl,cdjk->ia' ,g[o,o,v,v] ,l2 ,t1 ,t2, optimize=True) + + # -0.50000 * l2(k,l,a,d) t1(b,l) t1(c,k) t1(d,j) + T += -0.50000 * einsum('ijbc,klad,bl,ck,dj->ia' ,g[o,o,v,v] ,l2 ,t1 ,t1 ,t1, optimize=True) + + # -0.50000 * l2(i,l,c,d) t1(b,l) t1(c,k) t1(d,j) + T += -0.50000 * einsum('jkab,ilcd,bl,ck,dj->ia' ,g[o,o,v,v] ,l2 ,t1 ,t1 ,t1, optimize=True) + + # 1.0000 * f(i,a) + T += 1.0000 * einsum('ia->ia' ,f[o,v], optimize=True) + + return T + +def cc_lambda_doubles(f, g, o, v, t1=None, t2=None, l1=None, l2=None): + + ''' + COGUS generated level [SD] on 29 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 0.5000 * l2(k,l,a,b) + T = 0.5000 * einsum('ijkl,klab->ijab' ,g[o,o,o,o] ,l2, optimize=True) + + # 0.5000 * l2(i,j,c,d) + T += 0.5000 * einsum('cdab,ijcd->ijab' ,g[v,v,v,v] ,l2, optimize=True) + + # 1.0000 * P(i,j) f(i,k) l2(j,k,a,b) + t = 1.0000 * einsum('ik,jkab->ijab' ,f[o,o] ,l2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) l1(j,c) + t = 1.0000 * einsum('icab,jc->ijab' ,g[o,v,v,v] ,l1, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) f(c,a) l2(i,j,b,c) + t = -1.0000 * einsum('ca,ijbc->ijab' ,f[v,v] ,l2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(a,b) l1(k,b) + t = -1.0000 * einsum('ijak,kb->ijab' ,g[o,o,v,o] ,l1, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * l2(k,l,a,b) t1(c,l) + T += -1.0000 * einsum('ijck,klab,cl->ijab' ,g[o,o,v,o] ,l2 ,t1, optimize=True) + + # -1.0000 * l2(i,j,c,d) t1(d,k) + T += -1.0000 * einsum('ckab,ijcd,dk->ijab' ,g[v,o,v,v] ,l2 ,t1, optimize=True) + + # 0.2500 * l2(k,l,a,b) t2(c,d,k,l) + T += 0.2500 * einsum('ijcd,klab,cdkl->ijab' ,g[o,o,v,v] ,l2 ,t2, optimize=True) + + # 0.2500 * l2(i,j,c,d) t2(c,d,k,l) + T += 0.2500 * einsum('klab,ijcd,cdkl->ijab' ,g[o,o,v,v] ,l2 ,t2, optimize=True) + + # 1.0000 * P(a,b)P(i,j) f(i,a) l1(j,b) + t = 1.0000 * einsum('ia,jb->ijab' ,f[o,v] ,l1, optimize=True) + T += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # 1.0000 * P(i,j) f(i,c) l2(j,k,a,b) t1(c,k) + t = 1.0000 * einsum('ic,jkab,ck->ijab' ,f[o,v] ,l2 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b) f(k,a) l2(i,j,b,c) t1(c,k) + t = 1.0000 * einsum('ka,ijbc,ck->ijab' ,f[o,v] ,l2 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * P(a,b)P(i,j) l2(j,k,b,c) + t = 1.0000 * einsum('icak,jkbc->ijab' ,g[o,v,v,o] ,l2, optimize=True) + T += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # -1.0000 * P(a,b) l1(k,b) t1(c,k) + t = -1.0000 * einsum('ijac,kb,ck->ijab' ,g[o,o,v,v] ,l1 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(i,j) l1(j,c) t1(c,k) + t = -1.0000 * einsum('ikab,jc,ck->ijab' ,g[o,o,v,v] ,l1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) l2(j,k,a,b) t1(c,l) + t = -1.0000 * einsum('ilck,jkab,cl->ijab' ,g[o,o,v,o] ,l2 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) l2(i,j,b,c) t1(d,k) + t = -1.0000 * einsum('ckad,ijbc,dk->ijab' ,g[v,o,v,v] ,l2 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # -0.50000 * P(a,b) l2(k,l,b,d) t2(c,d,k,l) + t = -0.50000 * einsum('ijac,klbd,cdkl->ijab' ,g[o,o,v,v] ,l2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -0.50000 * l2(k,l,a,b) t1(c,l) t1(d,k) + T += -0.50000 * einsum('ijcd,klab,cl,dk->ijab' ,g[o,o,v,v] ,l2 ,t1 ,t1, optimize=True) + + # -0.50000 * P(i,j) l2(j,l,c,d) t2(c,d,k,l) + t = -0.50000 * einsum('ikab,jlcd,cdkl->ijab' ,g[o,o,v,v] ,l2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(i,j) l2(j,l,a,b) t2(c,d,k,l) + t = -0.50000 * einsum('ikcd,jlab,cdkl->ijab' ,g[o,o,v,v] ,l2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * l2(i,j,c,d) t1(c,l) t1(d,k) + T += -0.50000 * einsum('klab,ijcd,cl,dk->ijab' ,g[o,o,v,v] ,l2 ,t1 ,t1, optimize=True) + + # -0.50000 * P(a,b) l2(i,j,b,d) t2(c,d,k,l) + t = -0.50000 * einsum('klac,ijbd,cdkl->ijab' ,g[o,o,v,v] ,l2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * P(a,b)P(i,j) l2(j,k,b,c) t1(d,k) + t = 1.0000 * einsum('icad,jkbc,dk->ijab' ,g[o,v,v,v] ,l2 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) l1(j,b) t1(c,k) + t = 1.0000 * einsum('ikac,jb,ck->ijab' ,g[o,o,v,v] ,l1 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) l2(j,l,b,d) t2(c,d,k,l) + t = 1.0000 * einsum('ikac,jlbd,cdkl->ijab' ,g[o,o,v,v] ,l2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # -1.0000 * P(i,j) l2(j,l,a,b) t1(c,k) t1(d,l) + t = -1.0000 * einsum('ikcd,jlab,ck,dl->ijab' ,g[o,o,v,v] ,l2 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b)P(i,j) l2(j,k,b,c) t1(c,l) + t = -1.0000 * einsum('ilak,jkbc,cl->ijab' ,g[o,o,v,o] ,l2 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # -1.0000 * P(a,b) l2(i,j,b,d) t1(c,k) t1(d,l) + t = -1.0000 * einsum('klac,ijbd,ck,dl->ijab' ,g[o,o,v,v] ,l2 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(a,b)P(i,j) l2(j,l,b,d) t1(c,l) t1(d,k) + t = -1.0000 * einsum('ikac,jlbd,cl,dk->ijab' ,g[o,o,v,v] ,l2 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) - t.swapaxes(1, 0) + t.swapaxes(3, 2).swapaxes(1, 0) + + # 1.0000 * + T += 1.0000 * einsum('ijab->ijab' ,g[o,o,v,v], optimize=True) + + return T + diff --git a/codes/ccsd_t.py b/codes/ccsd_t.py new file mode 100644 index 0000000..cfe08cc --- /dev/null +++ b/codes/ccsd_t.py @@ -0,0 +1,281 @@ + +'''s - spin orbitals, o - occupied spin orbitals, v - virtual spin orbitals +t1[v,o] - singles amplitudes, t2[v,v,o,o] - doubles amplitudes +l1[o,v] - singles lambda, l2[o,o,v,v] - doubles lambda +''' + +def cc_energy(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [SDt] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # -0.50000 * + T = -0.50000 * einsum('ijij->' ,g[o,o,o,o], optimize=True) + + # 1.0000 * f(i,a) t1(a,i) + T += 1.0000 * einsum('ia,ai->' ,f[o,v] ,t1, optimize=True) + + # 0.2500 * t2(a,b,i,j) + T += 0.2500 * einsum('ijab,abij->' ,g[o,o,v,v] ,t2, optimize=True) + + # -0.50000 * t1(a,j) t1(b,i) + T += -0.50000 * einsum('ijab,aj,bi->' ,g[o,o,v,v] ,t1 ,t1, optimize=True) + + # 1.0000 * f(i,i) + T += 1.0000 * einsum('ii->' ,f[o,o], optimize=True) + + return T + +def cc_perturbation_energy(f, g, o, v, l1=None, l2=None, t3=None): + + ''' + COGUS generated level [SDt] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # -0.25000 * l2(j,k,a,d) t3(b,c,d,i,j,k) + T = -0.25000 * einsum('aibc,jkad,bcdijk->' ,g[v,o,v,v] ,l2 ,t3, optimize=True) + + # -0.25000 * l2(i,l,b,c) t3(a,b,c,j,k,l) + T += -0.25000 * einsum('jkai,ilbc,abcjkl->' ,g[o,o,v,o] ,l2 ,t3, optimize=True) + + # 0.2500 * l1(k,c) t3(a,b,c,i,j,k) + T += 0.2500 * einsum('ijab,kc,abcijk->' ,g[o,o,v,v] ,l1 ,t3, optimize=True) + + return T + +def cc_singles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [SDt] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(a,b) t1(b,i) + T = 1.0000 * einsum('ab,bi->ai' ,f[v,v] ,t1, optimize=True) + + # 1.0000 * f(j,b) t2(a,b,i,j) + T += 1.0000 * einsum('jb,abij->ai' ,f[o,v] ,t2, optimize=True) + + # 1.0000 * t1(b,j) + T += 1.0000 * einsum('ajib,bj->ai' ,g[v,o,o,v] ,t1, optimize=True) + + # 0.5000 * t2(b,c,i,j) + T += 0.5000 * einsum('ajbc,bcij->ai' ,g[v,o,v,v] ,t2, optimize=True) + + # -1.0000 * f(j,i) t1(a,j) + T += -1.0000 * einsum('ji,aj->ai' ,f[o,o] ,t1, optimize=True) + + # -0.50000 * t2(a,b,j,k) + T += -0.50000 * einsum('jkib,abjk->ai' ,g[o,o,o,v] ,t2, optimize=True) + + # 1.0000 * t1(a,k) t1(b,j) + T += 1.0000 * einsum('jkib,ak,bj->ai' ,g[o,o,o,v] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(b,j) t2(a,c,i,k) + T += 1.0000 * einsum('jkbc,bj,acik->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * f(j,b) t1(a,j) t1(b,i) + T += -1.0000 * einsum('jb,aj,bi->ai' ,f[o,v] ,t1 ,t1, optimize=True) + + # -1.0000 * t1(b,j) t1(c,i) + T += -1.0000 * einsum('ajbc,bj,ci->ai' ,g[v,o,v,v] ,t1 ,t1, optimize=True) + + # -0.50000 * t1(a,j) t2(b,c,i,k) + T += -0.50000 * einsum('jkbc,aj,bcik->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -0.50000 * t1(b,i) t2(a,c,j,k) + T += -0.50000 * einsum('jkbc,bi,acjk->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * t1(a,k) t1(b,j) t1(c,i) + T += -1.0000 * einsum('jkbc,ak,bj,ci->ai' ,g[o,o,v,v] ,t1 ,t1 ,t1, optimize=True) + + # 1.0000 * f(a,i) + T += 1.0000 * einsum('ai->ai' ,f[v,o], optimize=True) + + return T + +def cc_doubles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [SDt] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 0.5000 * t2(c,d,i,j) + T = 0.5000 * einsum('abcd,cdij->abij' ,g[v,v,v,v] ,t2, optimize=True) + + # 0.5000 * t2(a,b,k,l) + T += 0.5000 * einsum('klij,abkl->abij' ,g[o,o,o,o] ,t2, optimize=True) + + # 1.0000 * P(i,j) f(k,i) t2(a,b,j,k) + t = 1.0000 * einsum('ki,abjk->abij' ,f[o,o] ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * P(i,j) t1(c,j) + t = 1.0000 * einsum('abic,cj->abij' ,g[v,v,o,v] ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * t1(c,i) t1(d,j) + T += 1.0000 * einsum('abcd,ci,dj->abij' ,g[v,v,v,v] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(a,k) t1(b,l) + T += 1.0000 * einsum('klij,ak,bl->abij' ,g[o,o,o,o] ,t1 ,t1, optimize=True) + + # -1.0000 * P(a,b) f(a,c) t2(b,c,i,j) + t = -1.0000 * einsum('ac,bcij->abij' ,f[v,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) t1(b,k) + t = -1.0000 * einsum('akij,bk->abij' ,g[v,o,o,o] ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # 0.2500 * t2(a,b,k,l) t2(c,d,i,j) + T += 0.2500 * einsum('klcd,abkl,cdij->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + + # 1.0000 * P(a,b) f(k,c) t1(a,k) t2(b,c,i,j) + t = 1.0000 * einsum('kc,ak,bcij->abij' ,f[o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) f(k,c) t1(c,i) t2(a,b,j,k) + t = 1.0000 * einsum('kc,ci,abjk->abij' ,f[o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * P(a,b)P(i,j) t2(b,c,j,k) + t = 1.0000 * einsum('akic,bcjk->abij' ,g[v,o,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * P(a,b) t1(c,k) t2(b,d,i,j) + t = 1.0000 * einsum('akcd,ck,bdij->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t2(a,c,i,k) t2(b,d,j,l) + t = 1.0000 * einsum('klcd,acik,bdjl->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 0.5000 * P(i,j) t1(c,j) t2(a,b,k,l) + t = 0.5000 * einsum('klic,cj,abkl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 0.5000 * t1(a,k) t1(b,l) t2(c,d,i,j) + T += 0.5000 * einsum('klcd,ak,bl,cdij->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + + # 0.5000 * t1(c,i) t1(d,j) t2(a,b,k,l) + T += 0.5000 * einsum('klcd,ci,dj,abkl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + + # 0.5000 * P(i,j) t2(a,b,i,l) t2(c,d,j,k) + t = 0.5000 * einsum('klcd,abil,cdjk->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(i,j) t1(c,k) t2(a,b,j,l) + t = -1.0000 * einsum('klic,ck,abjl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -0.50000 * P(a,b) t1(b,k) t2(c,d,i,j) + t = -0.50000 * einsum('akcd,bk,cdij->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(a,b) t2(a,c,k,l) t2(b,d,i,j) + t = -0.50000 * einsum('klcd,ackl,bdij->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t1(c,i) t2(b,d,j,k) + t = 1.0000 * einsum('akcd,ci,bdjk->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * P(i,j) t1(a,k) t1(b,l) t1(c,j) + t = 1.0000 * einsum('klic,ak,bl,cj->abij' ,g[o,o,o,v] ,t1 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * t1(a,k) t1(b,l) t1(c,i) t1(d,j) + T += 1.0000 * einsum('klcd,ak,bl,ci,dj->abij' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t1, optimize=True) + + # 1.0000 * P(a,b) t1(a,l) t1(c,k) t2(b,d,i,j) + t = 1.0000 * einsum('klcd,al,ck,bdij->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(c,k) t1(d,i) t2(a,b,j,l) + t = 1.0000 * einsum('klcd,ck,di,abjl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(a,b)P(i,j) t1(b,k) t1(c,j) + t = -1.0000 * einsum('akic,bk,cj->abij' ,g[v,o,o,v] ,t1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # -1.0000 * P(a,b) t1(b,k) t1(c,i) t1(d,j) + t = -1.0000 * einsum('akcd,bk,ci,dj->abij' ,g[v,o,v,v] ,t1 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b)P(i,j) t1(a,k) t2(b,c,j,l) + t = -1.0000 * einsum('klic,ak,bcjl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # -1.0000 * P(a,b)P(i,j) t1(a,k) t1(c,i) t2(b,d,j,l) + t = -1.0000 * einsum('klcd,ak,ci,bdjl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * + T += 1.0000 * einsum('abij->abij' ,g[v,v,o,o], optimize=True) + + return T + +def cc_triples(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [SDt] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(c,d) t3(a,b,d,i,j,k) + T = 1.0000 * einsum('cd,abdijk->abcijk' ,f[v,v] ,t3, optimize=True) + + # 1.0000 * t2(a,b,k,l) + T += 1.0000 * einsum('clij,abkl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + + # -1.0000 * f(l,k) t3(a,b,c,i,j,l) + T += -1.0000 * einsum('lk,abcijl->abcijk' ,f[o,o] ,t3, optimize=True) + + # -1.0000 * t2(c,d,i,j) + T += -1.0000 * einsum('abkd,cdij->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + + # 1.0000 * P(a,b) f(a,d) t3(b,c,d,i,j,k) + t = 1.0000 * einsum('ad,bcdijk->abcijk' ,f[v,v] ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b) t2(b,d,i,j) + t = 1.0000 * einsum('ackd,bdij->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b) t2(b,c,k,l) + t = 1.0000 * einsum('alij,bckl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) f(l,i) t3(a,b,c,j,k,l) + t = -1.0000 * einsum('li,abcjkl->abcijk' ,f[o,o] ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t2(c,d,j,k) + t = -1.0000 * einsum('abid,cdjk->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t2(a,b,j,l) + t = -1.0000 * einsum('clik,abjl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t2(b,d,j,k) + t = 1.0000 * einsum('acid,bdjk->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t2(b,c,j,l) + t = -1.0000 * einsum('alik,bcjl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + return T + diff --git a/codes/ccsdt.py b/codes/ccsdt.py new file mode 100644 index 0000000..129f3d1 --- /dev/null +++ b/codes/ccsdt.py @@ -0,0 +1,894 @@ + +'''s - spin orbitals, o - occupied spin orbitals, v - virtual spin orbitals +t1[v,o] - singles amplitudes, t2[v,v,o,o] - doubles amplitudes +l1[o,v] - singles lambda, l2[o,o,v,v] - doubles lambda +''' + +def cc_energy(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [SDT] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # -0.50000 * + T = -0.50000 * einsum('ijij->' ,g[o,o,o,o], optimize=True) + + # 1.0000 * f(i,a) t1(a,i) + T += 1.0000 * einsum('ia,ai->' ,f[o,v] ,t1, optimize=True) + + # 0.2500 * t2(a,b,i,j) + T += 0.2500 * einsum('ijab,abij->' ,g[o,o,v,v] ,t2, optimize=True) + + # -0.50000 * t1(a,j) t1(b,i) + T += -0.50000 * einsum('ijab,aj,bi->' ,g[o,o,v,v] ,t1 ,t1, optimize=True) + + # 1.0000 * f(i,i) + T += 1.0000 * einsum('ii->' ,f[o,o], optimize=True) + + return T + +def cc_singles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [SDT] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(a,b) t1(b,i) + T = 1.0000 * einsum('ab,bi->ai' ,f[v,v] ,t1, optimize=True) + + # 1.0000 * f(j,b) t2(a,b,i,j) + T += 1.0000 * einsum('jb,abij->ai' ,f[o,v] ,t2, optimize=True) + + # 1.0000 * t1(b,j) + T += 1.0000 * einsum('ajib,bj->ai' ,g[v,o,o,v] ,t1, optimize=True) + + # 0.5000 * t2(b,c,i,j) + T += 0.5000 * einsum('ajbc,bcij->ai' ,g[v,o,v,v] ,t2, optimize=True) + + # -1.0000 * f(j,i) t1(a,j) + T += -1.0000 * einsum('ji,aj->ai' ,f[o,o] ,t1, optimize=True) + + # -0.50000 * t2(a,b,j,k) + T += -0.50000 * einsum('jkib,abjk->ai' ,g[o,o,o,v] ,t2, optimize=True) + + # 0.2500 * t3(a,b,c,i,j,k) + T += 0.2500 * einsum('jkbc,abcijk->ai' ,g[o,o,v,v] ,t3, optimize=True) + + # 1.0000 * t1(a,k) t1(b,j) + T += 1.0000 * einsum('jkib,ak,bj->ai' ,g[o,o,o,v] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(b,j) t2(a,c,i,k) + T += 1.0000 * einsum('jkbc,bj,acik->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * f(j,b) t1(a,j) t1(b,i) + T += -1.0000 * einsum('jb,aj,bi->ai' ,f[o,v] ,t1 ,t1, optimize=True) + + # -1.0000 * t1(b,j) t1(c,i) + T += -1.0000 * einsum('ajbc,bj,ci->ai' ,g[v,o,v,v] ,t1 ,t1, optimize=True) + + # -0.50000 * t1(a,j) t2(b,c,i,k) + T += -0.50000 * einsum('jkbc,aj,bcik->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -0.50000 * t1(b,i) t2(a,c,j,k) + T += -0.50000 * einsum('jkbc,bi,acjk->ai' ,g[o,o,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * t1(a,k) t1(b,j) t1(c,i) + T += -1.0000 * einsum('jkbc,ak,bj,ci->ai' ,g[o,o,v,v] ,t1 ,t1 ,t1, optimize=True) + + # 1.0000 * f(a,i) + T += 1.0000 * einsum('ai->ai' ,f[v,o], optimize=True) + + return T + +def cc_doubles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [SDT] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(k,c) t3(a,b,c,i,j,k) + T = 1.0000 * einsum('kc,abcijk->abij' ,f[o,v] ,t3, optimize=True) + + # 0.5000 * t2(c,d,i,j) + T += 0.5000 * einsum('abcd,cdij->abij' ,g[v,v,v,v] ,t2, optimize=True) + + # 0.5000 * t2(a,b,k,l) + T += 0.5000 * einsum('klij,abkl->abij' ,g[o,o,o,o] ,t2, optimize=True) + + # 1.0000 * P(i,j) f(k,i) t2(a,b,j,k) + t = 1.0000 * einsum('ki,abjk->abij' ,f[o,o] ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * P(i,j) t1(c,j) + t = 1.0000 * einsum('abic,cj->abij' ,g[v,v,o,v] ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * t1(c,i) t1(d,j) + T += 1.0000 * einsum('abcd,ci,dj->abij' ,g[v,v,v,v] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(a,k) t1(b,l) + T += 1.0000 * einsum('klij,ak,bl->abij' ,g[o,o,o,o] ,t1 ,t1, optimize=True) + + # 1.0000 * t1(c,k) t3(a,b,d,i,j,l) + T += 1.0000 * einsum('klcd,ck,abdijl->abij' ,g[o,o,v,v] ,t1 ,t3, optimize=True) + + # 0.5000 * P(i,j) t3(a,b,c,j,k,l) + t = 0.5000 * einsum('klic,abcjkl->abij' ,g[o,o,o,v] ,t3, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(a,b) f(a,c) t2(b,c,i,j) + t = -1.0000 * einsum('ac,bcij->abij' ,f[v,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) t1(b,k) + t = -1.0000 * einsum('akij,bk->abij' ,g[v,o,o,o] ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(a,b) t3(b,c,d,i,j,k) + t = -0.50000 * einsum('akcd,bcdijk->abij' ,g[v,o,v,v] ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 0.2500 * t2(a,b,k,l) t2(c,d,i,j) + T += 0.2500 * einsum('klcd,abkl,cdij->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + + # 1.0000 * P(a,b) f(k,c) t1(a,k) t2(b,c,i,j) + t = 1.0000 * einsum('kc,ak,bcij->abij' ,f[o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) f(k,c) t1(c,i) t2(a,b,j,k) + t = 1.0000 * einsum('kc,ci,abjk->abij' ,f[o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * P(a,b)P(i,j) t2(b,c,j,k) + t = 1.0000 * einsum('akic,bcjk->abij' ,g[v,o,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * P(a,b) t1(c,k) t2(b,d,i,j) + t = 1.0000 * einsum('akcd,ck,bdij->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t2(a,c,i,k) t2(b,d,j,l) + t = 1.0000 * einsum('klcd,acik,bdjl->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 0.5000 * P(i,j) t1(c,j) t2(a,b,k,l) + t = 0.5000 * einsum('klic,cj,abkl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 0.5000 * t1(a,k) t1(b,l) t2(c,d,i,j) + T += 0.5000 * einsum('klcd,ak,bl,cdij->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + + # 0.5000 * P(a,b) t1(a,k) t3(b,c,d,i,j,l) + t = 0.5000 * einsum('klcd,ak,bcdijl->abij' ,g[o,o,v,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 0.5000 * t1(c,i) t1(d,j) t2(a,b,k,l) + T += 0.5000 * einsum('klcd,ci,dj,abkl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + + # 0.5000 * P(i,j) t1(c,i) t3(a,b,d,j,k,l) + t = 0.5000 * einsum('klcd,ci,abdjkl->abij' ,g[o,o,v,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(3, 2) + + # 0.5000 * P(i,j) t2(a,b,i,l) t2(c,d,j,k) + t = 0.5000 * einsum('klcd,abil,cdjk->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(i,j) t1(c,k) t2(a,b,j,l) + t = -1.0000 * einsum('klic,ck,abjl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -0.50000 * P(a,b) t1(b,k) t2(c,d,i,j) + t = -0.50000 * einsum('akcd,bk,cdij->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(a,b) t2(a,c,k,l) t2(b,d,i,j) + t = -0.50000 * einsum('klcd,ackl,bdij->abij' ,g[o,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t1(c,i) t2(b,d,j,k) + t = 1.0000 * einsum('akcd,ci,bdjk->abij' ,g[v,o,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * P(i,j) t1(a,k) t1(b,l) t1(c,j) + t = 1.0000 * einsum('klic,ak,bl,cj->abij' ,g[o,o,o,v] ,t1 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * t1(a,k) t1(b,l) t1(c,i) t1(d,j) + T += 1.0000 * einsum('klcd,ak,bl,ci,dj->abij' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t1, optimize=True) + + # 1.0000 * P(a,b) t1(a,l) t1(c,k) t2(b,d,i,j) + t = 1.0000 * einsum('klcd,al,ck,bdij->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(c,k) t1(d,i) t2(a,b,j,l) + t = 1.0000 * einsum('klcd,ck,di,abjl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(a,b)P(i,j) t1(b,k) t1(c,j) + t = -1.0000 * einsum('akic,bk,cj->abij' ,g[v,o,o,v] ,t1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # -1.0000 * P(a,b) t1(b,k) t1(c,i) t1(d,j) + t = -1.0000 * einsum('akcd,bk,ci,dj->abij' ,g[v,o,v,v] ,t1 ,t1 ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b)P(i,j) t1(a,k) t2(b,c,j,l) + t = -1.0000 * einsum('klic,ak,bcjl->abij' ,g[o,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # -1.0000 * P(a,b)P(i,j) t1(a,k) t1(c,i) t2(b,d,j,l) + t = -1.0000 * einsum('klcd,ak,ci,bdjl->abij' ,g[o,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * + T += 1.0000 * einsum('abij->abij' ,g[v,v,o,o], optimize=True) + + return T + +def cc_triples(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [SDT] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(c,d) t3(a,b,d,i,j,k) + T = 1.0000 * einsum('cd,abdijk->abcijk' ,f[v,v] ,t3, optimize=True) + + # 1.0000 * t2(a,b,k,l) + T += 1.0000 * einsum('clij,abkl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + + # 1.0000 * t3(a,b,d,i,j,l) + T += 1.0000 * einsum('clkd,abdijl->abcijk' ,g[v,o,o,v] ,t3, optimize=True) + + # 0.5000 * t3(c,d,e,i,j,k) + T += 0.5000 * einsum('abde,cdeijk->abcijk' ,g[v,v,v,v] ,t3, optimize=True) + + # 0.5000 * t3(a,b,c,k,l,m) + T += 0.5000 * einsum('lmij,abcklm->abcijk' ,g[o,o,o,o] ,t3, optimize=True) + + # -1.0000 * f(l,k) t3(a,b,c,i,j,l) + T += -1.0000 * einsum('lk,abcijl->abcijk' ,f[o,o] ,t3, optimize=True) + + # -1.0000 * t2(c,d,i,j) + T += -1.0000 * einsum('abkd,cdij->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + + # 1.0000 * P(a,b) f(a,d) t3(b,c,d,i,j,k) + t = 1.0000 * einsum('ad,bcdijk->abcijk' ,f[v,v] ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * f(l,d) t2(a,b,k,l) t2(c,d,i,j) + T += 1.0000 * einsum('ld,abkl,cdij->abcijk' ,f[o,v] ,t2 ,t2, optimize=True) + + # 1.0000 * P(a,b) t2(b,d,i,j) + t = 1.0000 * einsum('ackd,bdij->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b) t2(b,c,k,l) + t = 1.0000 * einsum('alij,bckl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b) t3(b,c,d,i,j,l) + t = 1.0000 * einsum('alkd,bcdijl->abcijk' ,g[v,o,o,v] ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t3(a,b,d,j,k,l) + t = 1.0000 * einsum('clid,abdjkl->abcijk' ,g[v,o,o,v] ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * t1(d,k) t3(a,b,e,i,j,l) + T += 1.0000 * einsum('clde,dk,abeijl->abcijk' ,g[v,o,v,v] ,t1 ,t3, optimize=True) + + # 1.0000 * t1(d,l) t3(a,b,c,i,j,m) + T += 1.0000 * einsum('lmkd,dl,abcijm->abcijk' ,g[o,o,o,v] ,t1 ,t3, optimize=True) + + # 1.0000 * t2(c,d,k,l) t3(a,b,e,i,j,m) + T += 1.0000 * einsum('lmde,cdkl,abeijm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + + # 0.5000 * t2(a,b,k,l) t2(d,e,i,j) + T += 0.5000 * einsum('clde,abkl,deij->abcijk' ,g[v,o,v,v] ,t2 ,t2, optimize=True) + + # 0.5000 * t2(a,b,k,l) t3(c,d,e,i,j,m) + T += 0.5000 * einsum('lmde,abkl,cdeijm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + + # 0.5000 * t2(c,d,i,j) t3(a,b,e,k,l,m) + T += 0.5000 * einsum('lmde,cdij,abeklm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + + # 0.5000 * t2(c,d,l,m) t3(a,b,e,i,j,k) + T += 0.5000 * einsum('lmde,cdlm,abeijk->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + + # 0.5000 * t2(d,e,k,l) t3(a,b,c,i,j,m) + T += 0.5000 * einsum('lmde,dekl,abcijm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + + # -1.0000 * P(i,j) f(l,i) t3(a,b,c,j,k,l) + t = -1.0000 * einsum('li,abcjkl->abcijk' ,f[o,o] ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * f(l,d) t1(c,l) t3(a,b,d,i,j,k) + T += -1.0000 * einsum('ld,cl,abdijk->abcijk' ,f[o,v] ,t1 ,t3, optimize=True) + + # -1.0000 * f(l,d) t1(d,k) t3(a,b,c,i,j,l) + T += -1.0000 * einsum('ld,dk,abcijl->abcijk' ,f[o,v] ,t1 ,t3, optimize=True) + + # -1.0000 * P(i,j) t2(c,d,j,k) + t = -1.0000 * einsum('abid,cdjk->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * t1(d,k) t2(c,e,i,j) + T += -1.0000 * einsum('abde,dk,ceij->abcijk' ,g[v,v,v,v] ,t1 ,t2, optimize=True) + + # -1.0000 * P(i,j) t2(a,b,j,l) + t = -1.0000 * einsum('clik,abjl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * t1(d,l) t3(a,b,e,i,j,k) + T += -1.0000 * einsum('clde,dl,abeijk->abcijk' ,g[v,o,v,v] ,t1 ,t3, optimize=True) + + # -1.0000 * t1(c,l) t2(a,b,k,m) + T += -1.0000 * einsum('lmij,cl,abkm->abcijk' ,g[o,o,o,o] ,t1 ,t2, optimize=True) + + # -1.0000 * t1(c,l) t3(a,b,d,i,j,m) + T += -1.0000 * einsum('lmkd,cl,abdijm->abcijk' ,g[o,o,o,v] ,t1 ,t3, optimize=True) + + # -0.50000 * P(a,b) t3(b,d,e,i,j,k) + t = -0.50000 * einsum('acde,bdeijk->abcijk' ,g[v,v,v,v] ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(i,j) t3(a,b,c,j,l,m) + t = -0.50000 * einsum('lmik,abcjlm->abcijk' ,g[o,o,o,o] ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -0.50000 * t2(a,b,l,m) t2(c,d,i,j) + T += -0.50000 * einsum('lmkd,ablm,cdij->abcijk' ,g[o,o,o,v] ,t2 ,t2, optimize=True) + + # 0.2500 * t2(a,b,l,m) t3(c,d,e,i,j,k) + T += 0.2500 * einsum('lmde,ablm,cdeijk->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + + # 0.2500 * t2(d,e,i,j) t3(a,b,c,k,l,m) + T += 0.2500 * einsum('lmde,deij,abcklm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + + # 1.0000 * P(a,b) f(l,d) t2(a,d,i,j) t2(b,c,k,l) + t = 1.0000 * einsum('ld,adij,bckl->abcijk' ,f[o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t2(b,d,j,k) + t = 1.0000 * einsum('acid,bdjk->abcijk' ,g[v,v,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(d,k) t2(b,e,i,j) + t = 1.0000 * einsum('acde,dk,beij->abcijk' ,g[v,v,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t3(b,c,d,j,k,l) + t = 1.0000 * einsum('alid,bcdjkl->abcijk' ,g[v,o,o,v] ,t3, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(b,l) t2(c,d,i,j) + t = 1.0000 * einsum('alkd,bl,cdij->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b) t1(d,k) t3(b,c,e,i,j,l) + t = 1.0000 * einsum('alde,dk,bceijl->abcijk' ,g[v,o,v,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(d,j) t2(a,b,k,l) + t = 1.0000 * einsum('clid,dj,abkl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(a,l) t2(b,d,i,j) + t = 1.0000 * einsum('clkd,al,bdij->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(d,i) t2(a,b,j,l) + t = 1.0000 * einsum('clkd,di,abjl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * t1(d,i) t1(e,j) t2(a,b,k,l) + T += 1.0000 * einsum('clde,di,ej,abkl->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + + # 1.0000 * P(i,j) t1(d,i) t3(a,b,e,j,k,l) + t = 1.0000 * einsum('clde,di,abejkl->abcijk' ,g[v,o,v,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(i,j) t2(a,d,i,k) t2(b,e,j,l) + t = 1.0000 * einsum('clde,adik,bejl->abcijk' ,g[v,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(i,j) t1(c,l) t2(a,b,j,m) + t = 1.0000 * einsum('lmik,cl,abjm->abcijk' ,g[o,o,o,o] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(i,j) t1(d,l) t3(a,b,c,j,k,m) + t = 1.0000 * einsum('lmid,dl,abcjkm->abcijk' ,g[o,o,o,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(i,j) t2(a,b,j,l) t2(c,d,k,m) + t = 1.0000 * einsum('lmid,abjl,cdkm->abcijk' ,g[o,o,o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(i,j) t2(a,d,i,l) t2(b,c,j,m) + t = 1.0000 * einsum('lmkd,adil,bcjm->abcijk' ,g[o,o,o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * t1(d,l) t2(a,b,k,m) t2(c,e,i,j) + T += 1.0000 * einsum('lmde,dl,abkm,ceij->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + + # 1.0000 * P(a,b) t2(a,d,k,l) t3(b,c,e,i,j,m) + t = 1.0000 * einsum('lmde,adkl,bceijm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t2(c,d,i,l) t3(a,b,e,j,k,m) + t = 1.0000 * einsum('lmde,cdil,abejkm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # 0.5000 * P(a,b) t1(c,l) t3(b,d,e,i,j,k) + t = 0.5000 * einsum('alde,cl,bdeijk->abcijk' ,g[v,o,v,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 0.5000 * P(a,b) t2(b,c,k,l) t2(d,e,i,j) + t = 0.5000 * einsum('alde,bckl,deij->abcijk' ,g[v,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 0.5000 * P(i,j) t2(a,b,i,l) t2(d,e,j,k) + t = 0.5000 * einsum('clde,abil,dejk->abcijk' ,g[v,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 0.5000 * P(i,j) t1(d,j) t3(a,b,c,k,l,m) + t = 0.5000 * einsum('lmid,dj,abcklm->abcijk' ,g[o,o,o,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # 0.5000 * P(i,j) t1(d,i) t3(a,b,c,j,l,m) + t = 0.5000 * einsum('lmkd,di,abcjlm->abcijk' ,g[o,o,o,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # 0.5000 * t1(a,l) t1(b,m) t3(c,d,e,i,j,k) + T += 0.5000 * einsum('lmde,al,bm,cdeijk->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + + # 0.5000 * t1(d,i) t1(e,j) t3(a,b,c,k,l,m) + T += 0.5000 * einsum('lmde,di,ej,abcklm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + + # 0.5000 * P(i,j) t2(a,b,i,l) t3(c,d,e,j,k,m) + t = 0.5000 * einsum('lmde,abil,cdejkm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # 0.5000 * P(a,b) t2(a,d,i,j) t3(b,c,e,k,l,m) + t = 0.5000 * einsum('lmde,adij,bceklm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 0.5000 * P(a,b) t2(a,d,l,m) t3(b,c,e,i,j,k) + t = 0.5000 * einsum('lmde,adlm,bceijk->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # 0.5000 * P(i,j) t2(d,e,i,l) t3(a,b,c,j,k,m) + t = 0.5000 * einsum('lmde,deil,abcjkm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b) f(l,d) t1(a,l) t3(b,c,d,i,j,k) + t = -1.0000 * einsum('ld,al,bcdijk->abcijk' ,f[o,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) f(l,d) t1(d,i) t3(a,b,c,j,k,l) + t = -1.0000 * einsum('ld,di,abcjkl->abcijk' ,f[o,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) f(l,d) t2(a,d,i,k) t2(b,c,j,l) + t = -1.0000 * einsum('ld,adik,bcjl->abcijk' ,f[o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(d,i) t2(c,e,j,k) + t = -1.0000 * einsum('abde,di,cejk->abcijk' ,g[v,v,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t2(b,c,j,l) + t = -1.0000 * einsum('alik,bcjl->abcijk' ,g[v,o,o,o] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b) t1(c,l) t2(b,d,i,j) + t = -1.0000 * einsum('alkd,cl,bdij->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) t1(d,l) t3(b,c,e,i,j,k) + t = -1.0000 * einsum('alde,dl,bceijk->abcijk' ,g[v,o,v,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) t2(b,d,i,j) t2(c,e,k,l) + t = -1.0000 * einsum('alde,bdij,cekl->abcijk' ,g[v,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) t2(b,d,k,l) t2(c,e,i,j) + t = -1.0000 * einsum('alde,bdkl,ceij->abcijk' ,g[v,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) t1(d,k) t2(a,b,j,l) + t = -1.0000 * einsum('clid,dk,abjl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b) t2(a,d,i,j) t2(b,e,k,l) + t = -1.0000 * einsum('clde,adij,bekl->abcijk' ,g[v,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) t2(a,d,i,l) t2(b,e,j,k) + t = -1.0000 * einsum('clde,adil,bejk->abcijk' ,g[v,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b) t1(a,l) t2(b,c,k,m) + t = -1.0000 * einsum('lmij,al,bckm->abcijk' ,g[o,o,o,o] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) t1(c,l) t3(a,b,d,j,k,m) + t = -1.0000 * einsum('lmid,cl,abdjkm->abcijk' ,g[o,o,o,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t2(a,b,k,l) t2(c,d,j,m) + t = -1.0000 * einsum('lmid,abkl,cdjm->abcijk' ,g[o,o,o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * t1(a,l) t1(b,m) t2(c,d,i,j) + T += -1.0000 * einsum('lmkd,al,bm,cdij->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + + # -1.0000 * P(a,b) t1(a,l) t3(b,c,d,i,j,m) + t = -1.0000 * einsum('lmkd,al,bcdijm->abcijk' ,g[o,o,o,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * t1(c,l) t1(d,k) t3(a,b,e,i,j,m) + T += -1.0000 * einsum('lmde,cl,dk,abeijm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + + # -1.0000 * t1(c,m) t1(d,l) t3(a,b,e,i,j,k) + T += -1.0000 * einsum('lmde,cm,dl,abeijk->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + + # -1.0000 * t1(d,l) t1(e,k) t3(a,b,c,i,j,m) + T += -1.0000 * einsum('lmde,dl,ek,abcijm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + + # -0.50000 * P(a,b) t1(b,l) t3(c,d,e,i,j,k) + t = -0.50000 * einsum('alde,bl,cdeijk->abcijk' ,g[v,o,v,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(a,b) t1(a,l) t3(b,d,e,i,j,k) + t = -0.50000 * einsum('clde,al,bdeijk->abcijk' ,g[v,o,v,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(i,j) t1(d,k) t3(a,b,c,j,l,m) + t = -0.50000 * einsum('lmid,dk,abcjlm->abcijk' ,g[o,o,o,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -0.50000 * P(i,j) t2(a,b,l,m) t2(c,d,j,k) + t = -0.50000 * einsum('lmid,ablm,cdjk->abcijk' ,g[o,o,o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -0.50000 * P(a,b) t2(a,d,i,j) t2(b,c,l,m) + t = -0.50000 * einsum('lmkd,adij,bclm->abcijk' ,g[o,o,o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * t1(c,l) t2(a,b,k,m) t2(d,e,i,j) + T += -0.50000 * einsum('lmde,cl,abkm,deij->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + + # -0.50000 * t1(d,k) t2(a,b,l,m) t2(c,e,i,j) + T += -0.50000 * einsum('lmde,dk,ablm,ceij->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + + # -0.50000 * P(a,b) t2(a,c,k,l) t3(b,d,e,i,j,m) + t = -0.50000 * einsum('lmde,ackl,bdeijm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(i,j) t2(c,d,i,k) t3(a,b,e,j,l,m) + t = -0.50000 * einsum('lmde,cdik,abejlm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -0.25000 * P(a,b) t2(a,c,l,m) t3(b,d,e,i,j,k) + t = -0.25000 * einsum('lmde,aclm,bdeijk->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.25000 * P(i,j) t2(d,e,i,k) t3(a,b,c,j,l,m) + t = -0.25000 * einsum('lmde,deik,abcjlm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(b,c)P(i,j) f(l,d) t2(a,b,i,l) t2(c,d,j,k) + t = 1.0000 * einsum('ld,abil,cdjk->abcijk' ,f[o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(2, 1) - t.swapaxes(4, 3) + t.swapaxes(2, 1).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(d,i) t2(b,e,j,k) + t = 1.0000 * einsum('acde,di,bejk->abcijk' ,g[v,v,v,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(b,l) t2(c,d,j,k) + t = 1.0000 * einsum('alid,bl,cdjk->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(d,j) t2(b,c,k,l) + t = 1.0000 * einsum('alid,dj,bckl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(d,i) t2(b,c,j,l) + t = 1.0000 * einsum('alkd,di,bcjl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(b,l) t1(d,k) t2(c,e,i,j) + t = 1.0000 * einsum('alde,bl,dk,ceij->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b) t1(d,i) t1(e,j) t2(b,c,k,l) + t = 1.0000 * einsum('alde,di,ej,bckl->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t1(d,i) t3(b,c,e,j,k,l) + t = 1.0000 * einsum('alde,di,bcejkl->abcijk' ,g[v,o,v,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t2(b,d,i,k) t2(c,e,j,l) + t = 1.0000 * einsum('alde,bdik,cejl->abcijk' ,g[v,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t2(b,d,j,k) + t = 1.0000 * einsum('clid,al,bdjk->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(a,l) t1(d,k) t2(b,e,i,j) + t = 1.0000 * einsum('clde,al,dk,beij->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t2(b,c,j,m) + t = 1.0000 * einsum('lmik,al,bcjm->abcijk' ,g[o,o,o,o] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(i,j) t1(c,l) t1(d,k) t2(a,b,j,m) + t = 1.0000 * einsum('lmid,cl,dk,abjm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t2(a,d,j,l) t2(b,c,k,m) + t = 1.0000 * einsum('lmid,adjl,bckm->abcijk' ,g[o,o,o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(a,l) t1(c,m) t2(b,d,i,j) + t = 1.0000 * einsum('lmkd,al,cm,bdij->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(b,c)P(i,j) t2(a,b,i,l) t2(c,d,j,m) + t = 1.0000 * einsum('lmkd,abil,cdjm->abcijk' ,g[o,o,o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(2, 1) - t.swapaxes(4, 3) + t.swapaxes(2, 1).swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(a,l) t2(b,d,i,j) t2(c,e,k,m) + t = 1.0000 * einsum('lmde,al,bdij,cekm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b) t1(a,l) t2(b,d,k,m) t2(c,e,i,j) + t = 1.0000 * einsum('lmde,al,bdkm,ceij->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(c,l) t2(a,d,i,m) t2(b,e,j,k) + t = 1.0000 * einsum('lmde,cl,adim,bejk->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(c,l) t2(a,d,k,m) t2(b,e,i,j) + t = 1.0000 * einsum('lmde,cl,adkm,beij->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(i,j) t1(d,i) t2(a,b,j,l) t2(c,e,k,m) + t = 1.0000 * einsum('lmde,di,abjl,cekm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(i,j) t1(d,k) t2(a,e,i,l) t2(b,c,j,m) + t = 1.0000 * einsum('lmde,dk,aeil,bcjm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t2(a,d,i,l) t3(b,c,e,j,k,m) + t = 1.0000 * einsum('lmde,adil,bcejkm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 0.5000 * P(a,b)P(i,j) t2(b,c,i,l) t2(d,e,j,k) + t = 0.5000 * einsum('alde,bcil,dejk->abcijk' ,g[v,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(c,l) t2(b,d,j,k) + t = -1.0000 * einsum('alid,cl,bdjk->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(d,k) t2(b,c,j,l) + t = -1.0000 * einsum('alid,dk,bcjl->abcijk' ,g[v,o,o,v] ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b) t1(c,l) t1(d,k) t2(b,e,i,j) + t = -1.0000 * einsum('alde,cl,dk,beij->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b)P(i,j) t2(b,d,i,l) t2(c,e,j,k) + t = -1.0000 * einsum('alde,bdil,cejk->abcijk' ,g[v,o,v,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(d,i) t1(e,k) t2(a,b,j,l) + t = -1.0000 * einsum('clde,di,ek,abjl->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(a,l) t1(b,m) t2(c,d,j,k) + t = -1.0000 * einsum('lmid,al,bm,cdjk->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(a,l) t3(b,c,d,j,k,m) + t = -1.0000 * einsum('lmid,al,bcdjkm->abcijk' ,g[o,o,o,v] ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(c,l) t1(d,j) t2(a,b,k,m) + t = -1.0000 * einsum('lmid,cl,dj,abkm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t2(a,d,k,l) t2(b,c,j,m) + t = -1.0000 * einsum('lmid,adkl,bcjm->abcijk' ,g[o,o,o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(c,l) t1(d,i) t2(a,b,j,m) + t = -1.0000 * einsum('lmkd,cl,di,abjm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * t1(a,l) t1(b,m) t1(d,k) t2(c,e,i,j) + T += -1.0000 * einsum('lmde,al,bm,dk,ceij->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + + # -1.0000 * P(a,b) t1(a,l) t1(d,k) t3(b,c,e,i,j,m) + t = -1.0000 * einsum('lmde,al,dk,bceijm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) t1(a,m) t1(d,l) t3(b,c,e,i,j,k) + t = -1.0000 * einsum('lmde,am,dl,bceijk->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * t1(c,l) t1(d,i) t1(e,j) t2(a,b,k,m) + T += -1.0000 * einsum('lmde,cl,di,ej,abkm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + + # -1.0000 * P(i,j) t1(c,l) t1(d,i) t3(a,b,e,j,k,m) + t = -1.0000 * einsum('lmde,cl,di,abejkm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(c,l) t2(a,d,i,k) t2(b,e,j,m) + t = -1.0000 * einsum('lmde,cl,adik,bejm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(d,i) t2(a,b,k,l) t2(c,e,j,m) + t = -1.0000 * einsum('lmde,di,abkl,cejm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(d,l) t1(e,i) t3(a,b,c,j,k,m) + t = -1.0000 * einsum('lmde,dl,ei,abcjkm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b) t1(d,l) t2(a,c,k,m) t2(b,e,i,j) + t = -1.0000 * einsum('lmde,dl,ackm,beij->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(i,j) t1(d,l) t2(a,e,i,k) t2(b,c,j,m) + t = -1.0000 * einsum('lmde,dl,aeik,bcjm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -0.50000 * P(a,b)P(i,j) t2(a,d,j,k) t2(b,c,l,m) + t = -0.50000 * einsum('lmid,adjk,bclm->abcijk' ,g[o,o,o,v] ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -0.50000 * P(a,b) t1(a,l) t1(c,m) t3(b,d,e,i,j,k) + t = -0.50000 * einsum('lmde,al,cm,bdeijk->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(a,b) t1(a,l) t2(b,c,k,m) t2(d,e,i,j) + t = -0.50000 * einsum('lmde,al,bckm,deij->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(i,j) t1(c,l) t2(a,b,i,m) t2(d,e,j,k) + t = -0.50000 * einsum('lmde,cl,abim,dejk->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -0.50000 * P(i,j) t1(d,i) t1(e,k) t3(a,b,c,j,l,m) + t = -0.50000 * einsum('lmde,di,ek,abcjlm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + T += t - t.swapaxes(4, 3) + + # -0.50000 * P(i,j) t1(d,i) t2(a,b,l,m) t2(c,e,j,k) + t = -0.50000 * einsum('lmde,di,ablm,cejk->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -0.50000 * P(a,b) t1(d,k) t2(a,e,i,j) t2(b,c,l,m) + t = -0.50000 * einsum('lmde,dk,aeij,bclm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -0.50000 * P(a,b)P(i,j) t2(a,c,i,l) t3(b,d,e,j,k,m) + t = -0.50000 * einsum('lmde,acil,bdejkm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -0.50000 * P(a,b)P(i,j) t2(a,d,i,k) t3(b,c,e,j,l,m) + t = -0.50000 * einsum('lmde,adik,bcejlm->abcijk' ,g[o,o,v,v] ,t2 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(b,l) t1(d,i) t2(c,e,j,k) + t = 1.0000 * einsum('alde,bl,di,cejk->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t1(d,i) t2(b,e,j,k) + t = 1.0000 * einsum('clde,al,di,bejk->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t1(c,m) t2(b,d,j,k) + t = 1.0000 * einsum('lmid,al,cm,bdjk->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t1(d,k) t2(b,c,j,m) + t = 1.0000 * einsum('lmid,al,dk,bcjm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b) t1(a,l) t1(c,m) t1(d,k) t2(b,e,i,j) + t = 1.0000 * einsum('lmde,al,cm,dk,beij->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t2(b,d,i,m) t2(c,e,j,k) + t = 1.0000 * einsum('lmde,al,bdim,cejk->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(i,j) t1(c,l) t1(d,i) t1(e,k) t2(a,b,j,m) + t = 1.0000 * einsum('lmde,cl,di,ek,abjm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(d,i) t2(a,e,j,l) t2(b,c,k,m) + t = 1.0000 * einsum('lmde,di,aejl,bckm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(b,c)P(i,j) t1(d,k) t2(a,b,i,l) t2(c,e,j,m) + t = 1.0000 * einsum('lmde,dk,abil,cejm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(2, 1) - t.swapaxes(4, 3) + t.swapaxes(2, 1).swapaxes(4, 3) + + # 1.0000 * P(b,c)P(i,j) t1(d,l) t2(a,b,i,m) t2(c,e,j,k) + t = 1.0000 * einsum('lmde,dl,abim,cejk->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(2, 1) - t.swapaxes(4, 3) + t.swapaxes(2, 1).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(c,l) t1(d,i) t2(b,e,j,k) + t = -1.0000 * einsum('alde,cl,di,bejk->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(d,i) t1(e,k) t2(b,c,j,l) + t = -1.0000 * einsum('alde,di,ek,bcjl->abcijk' ,g[v,o,v,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(a,l) t1(d,j) t2(b,c,k,m) + t = -1.0000 * einsum('lmid,al,dj,bckm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(a,l) t1(d,i) t2(b,c,j,m) + t = -1.0000 * einsum('lmkd,al,di,bcjm->abcijk' ,g[o,o,o,v] ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(i,j) t1(a,l) t1(b,m) t1(d,i) t2(c,e,j,k) + t = -1.0000 * einsum('lmde,al,bm,di,cejk->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(4, 3) + + # -1.0000 * P(a,b) t1(a,l) t1(d,i) t1(e,j) t2(b,c,k,m) + t = -1.0000 * einsum('lmde,al,di,ej,bckm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b)P(i,j) t1(a,l) t1(d,i) t3(b,c,e,j,k,m) + t = -1.0000 * einsum('lmde,al,di,bcejkm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t3, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(a,l) t2(b,d,i,k) t2(c,e,j,m) + t = -1.0000 * einsum('lmde,al,bdik,cejm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -1.0000 * P(a,b)P(i,j) t1(d,i) t2(a,e,k,l) t2(b,c,j,m) + t = -1.0000 * einsum('lmde,di,aekl,bcjm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -0.50000 * P(a,b)P(i,j) t1(a,l) t2(b,c,i,m) t2(d,e,j,k) + t = -0.50000 * einsum('lmde,al,bcim,dejk->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # -0.50000 * P(a,b)P(i,j) t1(d,i) t2(a,e,j,k) t2(b,c,l,m) + t = -0.50000 * einsum('lmde,di,aejk,bclm->abcijk' ,g[o,o,v,v] ,t1 ,t2 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t1(c,m) t1(d,i) t2(b,e,j,k) + t = 1.0000 * einsum('lmde,al,cm,di,bejk->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + # 1.0000 * P(a,b)P(i,j) t1(a,l) t1(d,i) t1(e,k) t2(b,c,j,m) + t = 1.0000 * einsum('lmde,al,di,ek,bcjm->abcijk' ,g[o,o,v,v] ,t1 ,t1 ,t1 ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(4, 3) + t.swapaxes(1, 0).swapaxes(4, 3) + + return T + diff --git a/codes/lccd.py b/codes/lccd.py new file mode 100644 index 0000000..ad09d25 --- /dev/null +++ b/codes/lccd.py @@ -0,0 +1,56 @@ + +'''s - spin orbitals, o - occupied spin orbitals, v - virtual spin orbitals +t1[v,o] - singles amplitudes, t2[v,v,o,o] - doubles amplitudes +l1[o,v] - singles lambda, l2[o,o,v,v] - doubles lambda +''' + +def cc_energy(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [LD] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # -0.50000 * + T = -0.50000 * einsum('ijij->' ,g[o,o,o,o], optimize=True) + + # 0.2500 * t2(a,b,i,j) + T += 0.2500 * einsum('ijab,abij->' ,g[o,o,v,v] ,t2, optimize=True) + + # 1.0000 * f(i,i) + T += 1.0000 * einsum('ii->' ,f[o,o], optimize=True) + + return T + +def cc_doubles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [LD] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 0.5000 * t2(c,d,i,j) + T = 0.5000 * einsum('abcd,cdij->abij' ,g[v,v,v,v] ,t2, optimize=True) + + # 0.5000 * t2(a,b,k,l) + T += 0.5000 * einsum('klij,abkl->abij' ,g[o,o,o,o] ,t2, optimize=True) + + # 1.0000 * P(i,j) f(k,i) t2(a,b,j,k) + t = 1.0000 * einsum('ki,abjk->abij' ,f[o,o] ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(a,b) f(a,c) t2(b,c,i,j) + t = -1.0000 * einsum('ac,bcij->abij' ,f[v,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t2(b,c,j,k) + t = 1.0000 * einsum('akic,bcjk->abij' ,g[v,o,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * + T += 1.0000 * einsum('abij->abij' ,g[v,v,o,o], optimize=True) + + return T + diff --git a/codes/lccsd.py b/codes/lccsd.py new file mode 100644 index 0000000..cc87b82 --- /dev/null +++ b/codes/lccsd.py @@ -0,0 +1,98 @@ + +'''s - spin orbitals, o - occupied spin orbitals, v - virtual spin orbitals +t1[v,o] - singles amplitudes, t2[v,v,o,o] - doubles amplitudes +l1[o,v] - singles lambda, l2[o,o,v,v] - doubles lambda +''' + +def cc_energy(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [LSD] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # -0.50000 * + T = -0.50000 * einsum('ijij->' ,g[o,o,o,o], optimize=True) + + # 1.0000 * f(i,a) t1(a,i) + T += 1.0000 * einsum('ia,ai->' ,f[o,v] ,t1, optimize=True) + + # 0.2500 * t2(a,b,i,j) + T += 0.2500 * einsum('ijab,abij->' ,g[o,o,v,v] ,t2, optimize=True) + + # 1.0000 * f(i,i) + T += 1.0000 * einsum('ii->' ,f[o,o], optimize=True) + + return T + +def cc_singles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [LSD] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 1.0000 * f(a,b) t1(b,i) + T = 1.0000 * einsum('ab,bi->ai' ,f[v,v] ,t1, optimize=True) + + # 1.0000 * f(j,b) t2(a,b,i,j) + T += 1.0000 * einsum('jb,abij->ai' ,f[o,v] ,t2, optimize=True) + + # 1.0000 * t1(b,j) + T += 1.0000 * einsum('ajib,bj->ai' ,g[v,o,o,v] ,t1, optimize=True) + + # 0.5000 * t2(b,c,i,j) + T += 0.5000 * einsum('ajbc,bcij->ai' ,g[v,o,v,v] ,t2, optimize=True) + + # -1.0000 * f(j,i) t1(a,j) + T += -1.0000 * einsum('ji,aj->ai' ,f[o,o] ,t1, optimize=True) + + # -0.50000 * t2(a,b,j,k) + T += -0.50000 * einsum('jkib,abjk->ai' ,g[o,o,o,v] ,t2, optimize=True) + + # 1.0000 * f(a,i) + T += 1.0000 * einsum('ai->ai' ,f[v,o], optimize=True) + + return T + +def cc_doubles(f, g, o, v, t1=None, t2=None, t3=None): + + ''' + COGUS generated level [LSD] on 28 Jul 2021 + ''' + from numpy import einsum, swapaxes + + + # 0.5000 * t2(c,d,i,j) + T = 0.5000 * einsum('abcd,cdij->abij' ,g[v,v,v,v] ,t2, optimize=True) + + # 0.5000 * t2(a,b,k,l) + T += 0.5000 * einsum('klij,abkl->abij' ,g[o,o,o,o] ,t2, optimize=True) + + # 1.0000 * P(i,j) f(k,i) t2(a,b,j,k) + t = 1.0000 * einsum('ki,abjk->abij' ,f[o,o] ,t2, optimize=True) + T += t - t.swapaxes(3, 2) + + # 1.0000 * P(i,j) t1(c,j) + t = 1.0000 * einsum('abic,cj->abij' ,g[v,v,o,v] ,t1, optimize=True) + T += t - t.swapaxes(3, 2) + + # -1.0000 * P(a,b) f(a,c) t2(b,c,i,j) + t = -1.0000 * einsum('ac,bcij->abij' ,f[v,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) + + # -1.0000 * P(a,b) t1(b,k) + t = -1.0000 * einsum('akij,bk->abij' ,g[v,o,o,o] ,t1, optimize=True) + T += t - t.swapaxes(1, 0) + + # 1.0000 * P(a,b)P(i,j) t2(b,c,j,k) + t = 1.0000 * einsum('akic,bcjk->abij' ,g[v,o,o,v] ,t2, optimize=True) + T += t - t.swapaxes(1, 0) - t.swapaxes(3, 2) + t.swapaxes(1, 0).swapaxes(3, 2) + + # 1.0000 * + T += 1.0000 * einsum('abij->abij' ,g[v,v,o,o], optimize=True) + + return T + diff --git a/document/CCSDT-n.ipynb b/document/CCSDT-n.ipynb new file mode 100644 index 0000000..2152f2b --- /dev/null +++ b/document/CCSDT-n.ipynb @@ -0,0 +1,244 @@ +{ + "cells": [ + { + "attachments": { + "1.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "627a4314", + "metadata": {}, + "source": [ + "### The CCSDT-n Equations\n", + "\n", + "__CCSD__ and __CCSDT__\n", + "\n", + "The CCSD equations are\n", + "\n", + "$\\langle 0| \\hat{H}_N (\\hat{T}_1+\\hat{T}_2 + \\frac{1}{2}\\hat{T}^2_1) | 0 \\rangle_C = \\Delta E$...[1]\n", + "\n", + "$\\langle ^a_i| \\hat{H}_N (1+\\hat{T}_1+\\hat{T}_2 + \\hat{T}_1 \\hat{T}_2 + \\frac{1}{2}\\hat{T}^2_1 + \\frac{1}{(3!)^2} \\hat{T}^3_1) | 0 \\rangle_C = 0$...[2]\n", + "\n", + "$\\langle ^{ab}_{ij}| \\hat{H}_N (1+\\hat{T}_1+\\hat{T}_2 + \\hat{T}_1 \\hat{T}_2 + \\frac{1}{2}\\hat{T}^2_1+ \\frac{1}{2}\\hat{T}^2_2 + \\frac{1}{2}\\hat{T}^2_1 \\hat{T}_2 + \\frac{1}{(3!)^2} \\hat{T}^3_1 + \\frac{1}{(4!)^2}\\hat{T}^4_1) | 0 \\rangle_C = 0$...[3]\n", + "\n", + "The CCSDT equations are\n", + "\n", + "$\\langle 0| \\hat{H}_N (\\hat{T}_1+\\hat{T}_2 + \\frac{1}{2}\\hat{T}^2_1) | 0 \\rangle_C = \\Delta E$\n", + "\n", + "$\\langle ^a_i| \\hat{H}_N (1+\\hat{T}_1+\\hat{T}_2 + \\hat{T}_1 \\hat{T}_2 + \\frac{1}{2}\\hat{T}^2_1 + \\frac{1}{(3!)^2} \\hat{T}^3_1 ~~~~+\\boldsymbol{\\hat{T}_3~~~~})| 0 \\rangle_C = 0$...[4]\n", + "\n", + "$\\langle ^{ab}_{ij}| \\hat{H}_N (1+\\hat{T}_1+\\hat{T}_2 + \\hat{T}_1 \\hat{T}_2 + \\frac{1}{2}\\hat{T}^2_1+ \\frac{1}{2}\\hat{T}^2_2 + \\frac{1}{2}\\hat{T}^2_1 \\hat{T}_2 + \\frac{1}{(3!)^2} \\hat{T}^3_1 + \\frac{1}{(4!)^2}\\hat{T}^4_1~~~~+\\boldsymbol{\\hat{T}_3 + \\hat{T}_1\\hat{T}_3~~~~}) | 0 \\rangle_C = 0$...[5]\n", + "\n", + "$\\langle ^{abc}_{ijk} | \\hat{T}_2 + \\hat{T}_3 +\\frac{1}{2}\\hat{T}^2_2 + \\hat{T}_1 \\hat{T}_2 + \\hat{T}_2 \\hat{T}_3 + \\hat{T}_1 \\hat{T}_3 + \\frac{1}{2}\\hat{T}^2_1 \\hat{T}_2 + \\frac{1}{2}\\hat{T}_1 \\hat{T}^2_2 + \\frac{1}{2}\\hat{T}^2_1 \\hat{T}_3 + \\frac{1}{(3!)^2} \\hat{T}^3_1 \\hat{T}_2 |0 \\rangle_C=0$...[6]\n", + "\n", + "The energy equation is the same in CCSD and CCSDT although the amplitudes will be different.\n", + "\n", + "__CCSDT-1a__\n", + "\n", + "This model uses [1] for the energy. \n", + "\n", + "The singles use [4] which is [2] with addition of \n", + "![1.png](attachment:1.png)\n", + "which is $\\frac{1}{4} \\displaystyle \\sum_{mnef} \\langle mn||ef \\rangle t^{aef}_{imn}$\n", + "\n", + "The doubles use [3] with the addition of diagrams ($\\hat{T}_3$)" + ] + }, + { + "attachments": { + "2.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "dd704d26", + "metadata": {}, + "source": [ + "![2.png](attachment:2.png)\n", + "which are $+\\displaystyle \\sum_{me} f^e_m t^{abe}_{ijm}~~~~~~+\\frac{1}{2} \\boldsymbol{P}(ab) \\displaystyle \\sum_{mef}\\langle bm||ef \\rangle t^{aef}_{ijm}~~~~~ - \\frac{1}{2} \\boldsymbol{P}(ij) \\displaystyle \\sum_{mne} \\langle mn||je \\rangle t^{abe}_{imn}$\n", + "\n", + "The triples use diagrams($\\hat{T}_2$)" + ] + }, + { + "attachments": { + "3.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAWgAAABjCAIAAAA5Nw31AAAAA3NCSVQICAjb4U/gAAAAGXRFWHRTb2Z0d2FyZQBnbm9tZS1zY3JlZW5zaG907wO/PgAAHCRJREFUeJztnX1QFEf+/3vZ5cFVQFaQBORBjYgooCwxxvMUrCOJcTFFcrmLZ6xLUuZiLhorKR+IV1EuFvFSl0ITUuHEhHheDBcNmMuuouQMSiXEQxeIrDyoifJ0PBNA2ADL7nz/+JTzm9/Mbk/PLLusl379Bb2zn/n0Z3o+0/2e7l4FwzCIQqFQpOA12Q5QKJS7D5o4KBSKZGjioFAokqGJg0KhSIYmDgqFIhmaOCgUimRo4qBQKJKhiYNCoUiGJg4KhSIZmjgoFIpkaOKgUCiSoYmDQqFIhiYOCoUiGZo4KBSKZHCJY3R09B//+MeNGzdIDHV2dhYUFAwMDPDKr1y5UlhYSOjNF198UVFRIXpYS0tLbm4u5gCTyfTJJ5+Mj48Tnhc4ffp0eXk54cH5+fk3b97kFba1tb3//vtWq5XEQmVl5cmTJ0UPGxoays/P7+jowBzw3nvv9fX1kZyUxWg0fvbZZ4QHFxUVXbp0iVdoNpv//ve/Nzc3k1hobW09cuTI8PCw0I0TJ04QulFcXCx0ww189dVXX375JeHBR44caWxs5BV2d3cfOnRoaGiIxEJtbW1hYaHNZhO6UVpaSu5GQ0MD4cFyYBwzPj6uVqsPHjyIOYYFLn9nZyevPDs7OygoyGazkRhZtGjRiy++KHrYmTNnEEImk8nRAa+88kpYWBjhSVlSUlKefPJJkiPhNi4uLuaVX7hwAe8YlxdeeCEhIUH0sP7+fm9v77/97W+ODigqKkII/fDDDyQnZcnMzIyIiCA8OCoqaufOnbzC4eFhlUr1wQcfkFj46KOPvLy8BgcHeeW7d+8ODw8ndCM6OnrHjh2EB08gTzzxxOrVq0mOdBST2tpahFB5eTmJEUcx+fWvf52amkpiwWw2q1Sqw4cPkxwsD1yPQ6lUJiYmGo1GkgRkNBojIyNnzpzJK9dqtT/++OMPP/wgasFsNjc0NGi1WtEjU1JS/P399Xq9owMMBsO6desUCoWoKS7JycmElYXnntDVpKQkLy+vy5cvO/rirVu32L+NRiNJZQMDA1esWIGprF6vX7Ro0ezZs0VNcdFqtS0tLZiODEtPT09TU5PQVbVavWDBAvLmERsb6+/vL3Sjra2tvb1d1EJfX59dN9yAVqs1Go0MwZZXNTU14+PjQicXLFgwdepUTMPgYjQak5OT7bpRVVUl7IkANpuN7f05cmMCEdE4tFotYW0vX75s11EIAUnzgtraDRkPX1/ftLQ0R/dSQ0PD9evX09PTRe3w0Gq1N2/e7O3tFT3SaDQGBwdHRkbyyqdNmxYTE4OprMFguH79OkJobGystraW8NKmp6d/9dVXZrNZ+JHNZispKZFRWYhzdXW16JFQHUdNeUKaR1VVFYkFhmFImseEk5ycPDAw8P3334seaTQa/fz8Fi5cyCuX9AyuqqpyFCuMG15eXu+++y7rhq+vr9CNCUQ8cTQ2Nt6+fRt/GMMw1dXVdms7Y8aMqKgokpBBbePi4kSPRAilp6dfvHixq6tL+JHBYFCr1SkpKSR2uGi1WqgIiauOWjA8nRx9MTIycufOnQghk8k0OjoKRhiGKS4utlgsjr61bt26n3766dy5c8KPKisrOzs7ZSSO6Ojo4OBgwusSFBRkt0ej1WqvXLmC8RywWq1Xrlyx2zwiIyNDQkJI3Lh8+XJAQMCcOXNEj5xwtFqtQqEgjFVCQoK3t7ddIyQWmpqauru77cZK1I0rV66cPXuWdcPHxwch1NXVRaIbSkU8cdhstu+++w5/2K1bt3p7ex09PwlDVlxcfM8999gNupC1a9cqFAoQO3jo9fq0tDS1Wk1ih8t99903ffp0wvaBqSx0nex+GhMT8/nnn5eUlBiNRqVSGR8fPzg4+Nvf/hYhhKn43LlzY2Nj7faw9Hp9SEjI0qVLRX0WsmTJEsLKJiUl2R33abXa0dHRq1ev4i3U1dWZzWZHEUtKSiJx4+TJk2FhYVKHnxOCRqMhf/hhGsa1a9dEn8FwlqSkJOFHQUFB0dHRGDfmzZv36quvWiwW1o2ysrLHH3/crjUnEUkccXFxarVaNGSY2qI7YzP8ENFsNldUVAjHwI6Au0V4L/X19VVUVOh0OkI7XBQKxeLFi0Ur29nZ+d///hfTPsxms1BXB+bMmaNSqbZt21ZZWblw4cL6+volS5b09/c//vjj+JPqdDqDwSCMoV6vf/TRR5VKJf7rjlx18mZITExUqVQkzcPLyysxMVG2G4ODg9XV1YGBgaLeuggSJ/EiHTyDa2pq8EaMRmN4ePg999wjw4158+bV1dW988470K6ysrLS0tIyMzP9/PzwJ5WBSOJQKpUJCQkkLcOuMgqQ6KN79+4dGxsj0Z9YdDrdmTNnRkdHuYUlJSVWq3XNmjXkdriQ6KOOlFEAr4/6+PhERkZev3797Nmz06ZNW758eWtrK/7VMpCent7e3s7zrbm5uba2Vl6WRGT6qCNlFCDUR41G4/z58x09FUAfxbuxY8cOq9XqSBd0AyT6KF6SJNRHMaNgJKaPxsTEIISysrLGx8ePHDny5z//ee3atbKbBx7xCWAk95Ij6Yu1gLD66I0bN9555x2EUH9/v6g/LOnp6UNDQ7yZFwaDITk5OTw8nNwOFxJ91JEyCojqo3B1W1paKioqxsbGtm/fPn/+fFHHli9frtFoDAYDt9BgMPj4+Dz00EOiX7cLiT6KUUYBEn1U9GZA2OZhMpk+/PBDhJBwlpDb0Gq1ovqoI2UUINRHHSmjAF4fhaYFk2W+/fbbKVOmHDx4EH862YgnDq1W29DQgBmbYZRRQFQfffnll0Fga29vHxkZEXUJiI+Pj46O5t5L4+PjZ8+eXbt2LaEFIST6KP42QAT9SfbviIiI3bt3kzimUqnWrFnDG5rp9fpVq1YFBASQWBBCoo9ilFFAVB+1Wq3fffcdpnlERUVh9FGGYbZs2QJz6pqamiar05GcnCyqj2KUUUB0vINRRlkLGDeio6O5Z8/MzJT6kp4cosSB10fxyihrxFFti4qKSkpK4G+bzUYy44NFp9Nx76Wvv/76xx9/lPGKgYVEHxWdf4HXR7mJ4+DBg1OnTiX0TafTVVdXt7W1wb9DQ0Pnz593siMqqo9ilFFAVB/FK6MARh89evQoTKtDCI2Ojra0tGDsuA4SfZSkYeD1UbxWiMT0UZVKxWaKuXPnwvs7FyGeOET1UdHaIsf66PDw8KuvvsotuXbtmqhLLDqd7ubNm2yr1ev14eHhS5YsIbfAQ1QfxSujAOijjib8Qn8SIZSWliaqiXJZs2aNSqVie1ilpaUjIyPOZElE8AwUvRlE9VG8Mop3o7+/f9euXdwSmAUzKeBjRTJ9UVQfxSujJG7MnTsX/jh48KArNFEW8cQhqo/ilVEgOTnZrj6anZ3d3Nw8b948pVI5a9YsJLFl8KaQGgwGnU7n5Bs7vKaDV0YB0EcdGYHE4eXlRaKJcoEppGziMBgMMiaM8sDro3hlFBDVR/HKKOuGXX10z549nZ2dMTExCoUCbidJz5WJBa+PkkzWFNVHRUfBSEwfhRdPq1atcpEmykK0OhZ/L+GVUcCuAHbjxo2cnJwNGzbk5eVZrdbXX38dSUwc3CmkjY2N165dc/IJjMT0UbwyCuD10bCwMIRQWloaiSbKQ6fTnTt3zmw2y54wygOvj4oqowBeHyW8GZCgeZhMpry8vI0bN7799tsMw+zZswdNdo8DI0zilVFAVB/FK6MAXh+FhHLo0CG8EechShwYfVRUGQXs6qM7d+586623Pv7447q6Oj8/v2effTYjI0PqIwWmkHZ2dur1+ilTpqSmpkr6uhC8PkpyGyBsf7Kurg4hxOuBE/LYY4/BFNLKysqOjg7nnyp4fVRUGQUw+qioMgoI9VGGYXbs2JGXl3f06FGTyRQYGLh58+ZHHnlkEhMHXh8VVUYBTMMQVUZZCxg3BgYGwsPDZTyTpEKaOBzpoyTKKGuEW1uTyZSVlbVt2zbECXpOTo5U9YudQip7wigPvD5KuDINo4/CnNEHHnhAhm9z586dP3++Xq+HCaPyjPDA6KOiyiiA0UdJlFGAp49WV1cfOHBg06ZN6E7MFQpFTk6OcCsDR9TX19vdEeLUqVOEFnjg9VHyhuFIHyXRCpGYPtrS0vLoo4+KusFDRqyIEgdGHyWsLRLoo4sWLUpISOjp6cnOztbr9dOnT2cYJjo6+umnnxadlsslJCRk3rx5r7/++tdff/3ggw+Sf9ERGH2URBkF7OqjY2NjeXl5Bw4cCA0NlS3ELFu2rLCw8PDhw/fff7+8CaNCV528GTD6KIkyateNpKSk2NjYzs7Offv2lZaWgkSyYMECnU4nujQGmDlz5osvvsi7BNu2bSNZiUvoJAv5wm6MPkqijGLcuH79+q5duxoaGmS8npcTK8Ll98uWLdu4caOwPDMzMzIyksQCLL+5ceMGW9Le3n7vvfeynrzwwgsMwwwPDws39cCwb98+1oK/v39dXR35dx2xffv2OXPmCMtBTGlqahK1cPv2bS8vryNHjrAl4+PjK1eu5F77kZERqY6dOXNGpVKBBS8vr8LCQqkWhMBGKu3t7bzy7u5uhNCnn35KYiQ+Pt7uRipbtmxZsGABiQXYVYTrRnNzc0hICLcdMwwzMDDQ29tLYpBhmM7OztWrV7NN4uWXXz506BDhd+3y5ptvBgYGCvd5+eabbxBC1dXVohbGx8enTp2ak5Mj/Ojhhx9+7LHHSNzYv39/YGCg1WplSyorK9m+tkKhyM3NJbHDRWqsSBPHSy+9FBcXJyz/1a9+lZGRQWKhp6eH1xC3b9/Oy2LXrl0j9AcYGBhgbyTgqaeekmTBLoWFhQqFoqenh1eelZUVHBxMaCQ2Nnbr1q3sv8XFxbzKctMKIbyeHWHKxgOd/9OnT/PKYQHh999/T2LkmWeeuf/++4XlDz744NNPP01iAXYqOXXqFFvy0ksvcSurUChIUjaPjo6OlJSUq1evbt26NS8vT+rXeQgffsC7777r5+cHayZEWb58+YYNG4TlISEhb7zxBokF2I6Me7M88sgj3FhNmzbNYrGQmOIiKVake47a1UcZMmUUEOqjwrez8OKNC6/7tH79eu6ngYGBPB2BZNMEURzpoySiN9cIvrLPPPOMpMoqFArevhWtra28pToycKSPEiqjgF19FLOaXgjoo9y3M7yIMQwTFRUFcfDy+n/ttqWlRSHgo48+gk9DQ0OPHTu2cuVKf3//zZs3k3iCAeoifIVUVVUVHx9PuLDb7kCjubm5u7ubcBkrCE9cI7xmPzQ05O3tTRKrrKws9lNJsSJNHMnJyUJ9lFwZBXgh42l7vr6+wg5zbGws9xhe53xkZESj0XAPmBC90JE+evnyZfKNZHj6qHDlO6x2Ja8swzC8ZSmLFy/29fWVUDEH2NVHCZVRwK4+WldXNzw8TB4xnj7Ku5RqtZodpHBnMdjdAPHZZ5+FTxmG2bt3786dO7/55huTyUToiSNmzJhhV5iU2jCE+igkI8JbSaPR8NzgxSoiIoIdT+FjxU0c0mKF75Cw2N1/9Pjx48jePqOO4O0/+tNPP7Hb7Xh7e8sbf548eZKdtZ2YmCgcX8gjNTWVt/8oCEXCfUYdAROla2tr2ZJXXnmFDfumTZtkeFVfXx8REQEWZs6ceenSJRlGhLz22mvCJhUVFbVr1y5CC7DXJm+TS0f7jDqCt9fm0NDQ8uXLobK+vr4yRnY2m+3555/Pz89n7vTDCbeDxSDcf1TS3qvMnf1HL1y4wC3cvXv3rFmzyN148sknufuPtra2sjOSAwMD//3vf5ObAqTGijRxMPb00V27dkkaZguHiLdv31YqlZs2bRKOG8lpbW09duzY6dOnR0dHZRvhsX379tmzZ3NLQBltbm4mtCDURxmGWbhw4S9/+cvKykrZjg0ODp48efLEiRN9fX2yjfCA7c653T1QRo8fP05uJD4+fvPmzdwScmUUEOqjXV1dCoViy5YtN2/eJLcD2Gy2P/zhD3AnAOwYXqopLkJ9FJTRmpoaQgt29dGHHnqIUBkF/vKXvwQEBHD10fPnzyOE9u/f39HRQW4HkBErCYlDqI+SK6OAUB+VGnS3IdRHJSmjAE8fHRsb8/Pze++99ybMywlCqI9KUkYBoT5KrowCQn3UkRhJwoULFwoKCniFHR0dwu3aJSF0SZIyCgj1UXJlFBDqo7m5ub6+vvKenTJiJeEHmUAfZX8bgpGijAJCfRQm6hLuM+pOhPoo4ZxRnhHenLeRkRFJEXMPQn1UkjIK8PRRScooIJw/ajQaAwMD5e0zunLlSlbpYAkNDX3rrbdkWGMRzh8lnDPKhdcwCOeM8izYdQP2GZWKjFhJSxzcuStSlVHWiJNBdw9CfZRwNhQXnj4Kc0YTEhIm0tEJgqePSlJGAZ4+Csqo1Ijx9FF2zqgkIy5FOH9UXsPg6qPksyhZhPNHZbjhDBISx8KFC7nzR0EHlroPKm/+qIzHuHtQKBTce6mjo4NwzigX3vxRo9EIMZxgXycC3jpGGdcF5o+yryphzujixYslGeGtl/PM5sF1knzOKM+CzWZj+7NGo3HWrFkkc0a5cC/ZyMiIDDecQULi4K2vJ1lNL4S7vl5e0N0Gt33AH1IbMW99Pcky4smCu76eZDW9EN76epLV9HbdYNfXT+IvMOHhrq8n/zEgLrC+3smGAW7A29aamhqLxeKhiQP9/wMNeV0j7gJqN/zelDNotVoYjqE7q+nZV6GEcNfXWywWk8nkyZVFd9bXg8OymzL87UzzgHlu8AtMHhgxWF8PDz95Ih1vfb1UrZB1Y3BwEKZ+GY1GHx8fl/4CEw/JiQP0URnKKMDVRz1WGQW4+qjsPjN7L3msMgpw9VEZyijA6qMylFGAq486o4y6FK4+KlukYxuGDGWUtcB1IzExUZ4yKg/JiQP0UXnKKMCOzaC2HqiMAlx9VLbyxOqjnqyMAqymI0MZBVh9VJ4yCrD6qAcqowBXH3WmYYA+KkMZBbj6qPtHwdISB6uPylNGAdAOGIbx5DE/4uij8pRRIDk5GaQcT1ZGAW5Cl9e9YvVRecoowEpLnqmMAuCkMyIdq4/KU0YBuGTuV0aR1MTB6qPylFEAhogmk6mxsdGTEwe60z7kKaPAkiVLQB/18CyJ7uijJpNJtiTJ6qPylFHWjba2trq6Os9URgEYaFRVVclQRgFWH3WmYbBuuFkZRVITB7rjqzMvjeGLH374oScrowDoo6WlpTKUUQD00YsXL3qyMgqAex988AGSpYyyRiakecD0Z4+NGDz8PvvsM9kiHauPytMKWTcGBwePHz/uZmUUIeJFbiwFBQVKpTIwMHDfvn1Sv8sSHR2t0WikTtR1P7ABqkajefjhh2Ub2bBhAyzhraiomEDfXMGMGTM0Gs306dOFe9UQkpub6+fnp1ar7e5VQ0hwcLCTbrgaWMuj0Wjs7kJCyNatW6FhCNdJE9Lb26tQKDQaTXJysmw35CGnx2G1WgcGBpwZf2q12r6+Pk9WRgHQR/v6+pyvLDxhJtA3V5CUlNTX1+eMJKnVakdGRsxmszMRAzfkCbTuITg4OCoqakIaBnKifwfr6+GSyXZDHpITR1xc3JQpU5BcZRSAejpjwT2APoomorKwb+uEeeYa4DZwphWCPipbGZ0oN9wAOOl8wyDcZ9R1bshDJX4I7wsq1e9+97vy8vKcnBzZZ+3u7g4ODv7Nb34j24Lb2LhxY319/fnz5ysrK+VZsFgsYWFhv//97yfWMVeQkZFx+PDh9vb2zMxM2UZiYmKsVmt2drZsC+3t7cHBwZJ+5s79rF+/vry8vKqqSnasGIYJCwuLjIx0JtpWq/Xee+9NS0uTbUEeCsbBL1NhYBhm1apVZrPZmRM/9dRTwj1HPZOtW7d+++23zliIi4s7evToRPnjUvLz8/Pz8yfbC/Tcc8/98Y9/nGwvRPjTn/4Eq+xlwzCM88OxvXv3Ov/TXFKRkzgoFMrPHMkaB4VCodDEQaFQJEMTB4VCkQxNHBQKRTI0cVAoFMnQxEGhUCRDEweFQpEMTRwUCkUyNHFQKBTJ0MRBoVAkI3mRGyFffPFFbm5uWFjYjBkzlEplTU2NWq2OiYm5fft2W1ubxWIpKCgICwtz0dndzM+qsiTQgBByFwfKRft8pKens7/HDb8wcODAAfjXYrEsW7ZsYGDARad2Pz+rypJAA0LI3RsolwxV2tvbU1NTV65cCf+Wl5cjhHQ6HfyrUqnS0tICAgJccWr387OqLAk0IITc1YFySeI4ffo0d/uJsrKysLCw++67jy0JCQlxxXknhZ9VZUmgASHkrg6US5bVj42NcX8bJjExMT4+/uOPP2ZLLBaLh28aSM7PqrIk0IAQclcHyiU9Dm44ent7a2trU1JSuAdAOKxWqyvO7mZkVPbWrVvHjh1jf9j9fwzCgFgsFjc75mnICJTntBxXvVVhAe2HF5FLly5VVla++eab9fX1HjuKkwFhZQMCAv71r3/19/e7e0t7t2M3ICdOnGhpabHZbGVlZXv27HnggQcmyTsPgjBQntNyXJ44zp8/Hx4ezh25IYQiIyMTEhKysrJcMVCaRAgrq9FoJv3CuwdhQDo6OoqKiv75z38ihKKjozMyMtra2jx2N3O3QRgoz2k5Lp8AVlZWlpqayisMDQ319fXlFQ4MDHz55ZeffvopvJe6GyGvLEKIYZiqqqpTp0719PS4xbtJQBgQpVJpsVgghyYlJbW3t/f396P/iavvDOSBQp7RclybOHp6eq5evcrrgDli7dq1ERERK1asyMjIaGpqcqljrkBSZRFCer3e29t76dKlu3fvLi0tdaVrk4PdgISEhBQVFUEXw2AwrF69OigoCN39V98ZJAUKeUbLcW3iKC0tZRhm1apVJAe//fbb0dHRZrM5LCzsbryRJFUWIbR69er4+PiQkJDXXnvt+eefd6lvkwI+II2NjWfOnCkqKoJ/7/ar7wySAoU8o+W4ROMYGRnJzs7u6uo6d+6cWq3ev39/SEjIc889FxMTg/nWf/7zn6KionXr1gUEBIyNjbnCMVcgr7JcQkNDW1pazGaz5/9iEwkkAWlsbHz//feLiopGR0fhpeNdevWdQV6guBYms+VMwmzVOwQHB/f398PfFy9eXLp0Kfy9adOm3Nzczz//fPJcm3i4lWUYJisr64033oC/L1y48Itf/GKS/JoE6urq/vrXv5rN5sHBwb17946Ojv7PX315CAPFeEzLcflbFbuUlZWVl5ePjIxkZWWtWLHiiSeemD17tkqlKiws9Pb2jo+PLykpWb9+/aT4NuEIK4sQUigUPj4+BQUFQUFBJSUln3zyyWS76Sa6urpSU1M7Ozt37NiBEJo/f35WVtb/8NWXjd1AIY9pOZ71g0yDg4PTpk3z8vKyWq1KpXKy3XE5Y2Njo6Oj/v7+k+2IR/Bzu/rOMOktx7MSB4VCuSugG/lQKBTJ0MRBoVAkQxMHhUKRDE0cFApFMjRxUCgUydDEQaFQJEMTB4VCkQxNHBQKRTI0cVAoFMnQxEGhUCRDEweFQpEMTRwUCkUyNHFQKBTJ0MRBoVAkQxMHhUKRDE0cFApFMjRxUCgUydDEQaFQJPN/mz8dMQlZ0wkAAAAASUVORK5CYII=" + } + }, + "cell_type": "markdown", + "id": "63f96c67", + "metadata": {}, + "source": [ + "![3.png](attachment:3.png)\n", + "which are $+\\boldsymbol{P}(k/ij)\\boldsymbol{P}(a/bc) \\displaystyle \\sum_{d}\\langle bc||dk \\rangle t^{ad}_{ij}~~~-\\boldsymbol{P}(i/jk)\\boldsymbol{P}(c/ab) \\displaystyle \\sum_{l}\\langle lc||jk \\rangle t^{ab}_{il}~~~~~+\\boldsymbol{P}(c/ab)\\displaystyle \\sum_{d} f^c_d t^{abd}_{ijk}~~~~~-\\boldsymbol{P}(k/ij)\\displaystyle \\sum_{l} f^k_l t^{abc}_{ijl}$\n", + "\n", + "where $\\boldsymbol{P}(i/jk) \\rightarrow 1 - \\boldsymbol{P}(ij) - \\boldsymbol{P}(ik)$\n", + "\n", + "__CCSDT-1b__\n", + "\n", + "In addition to the additions of the CCSDT-1a model we now add to the doubles ($\\hat{T}_1 \\hat{T}_3$)" + ] + }, + { + "attachments": { + "4.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "25086961", + "metadata": {}, + "source": [ + "![4.png](attachment:4.png)\n", + "which are $+\\displaystyle \\sum_{mnef} \\langle mn||ef \\rangle t^e_m t^{fab}_{nij}~~~~~-\\frac{1}{2}\\boldsymbol{P}(ab) \\displaystyle \\sum_{mnef} \\langle mn||ef \\rangle t^a_m t^{efb}_{inj}-\\frac{1}{2}\\boldsymbol{P}(ij) \\displaystyle \\sum_{mnef} \\langle mn||ef \\rangle t^e_i t^{afb}_{mnj}$" + ] + }, + { + "attachments": { + "5.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "720541e9", + "metadata": {}, + "source": [ + "__CCSDT-2__\n", + "\n", + "In addition to the CCSDT-1b diagrams we additionally add to the triples ($\\hat{T}^2_2$)\n", + "![5.png](attachment:5.png)\n", + "which are $-\\boldsymbol{P}(k/ij)\\boldsymbol{P}(a/bc) \\displaystyle \\sum_{ld} f^d_l t^{ad}_{ij} t^{bc}_{lk}~~~~~+\\boldsymbol{P}(i/jk) \\boldsymbol{P}(abc) \\displaystyle \\sum_{lde} \\langle lb||de \\rangle t^{ad}_{il} t^{ec}_{jk}~~~~~~-\\boldsymbol{P}(ijk) \\boldsymbol{P}(a/bc) \\displaystyle \\sum_{lmd} \\langle lm||dj \\rangle t^{ad}_{il} t^{bc}_{mk}$\n", + "$~~~~~~~~~~~~~~-\\frac{1}{2} \\boldsymbol{P}(i/jk) \\boldsymbol{P}(c/ab) \\displaystyle \\sum_{lde} \\langle lc||de \\rangle t^{ab}_{il} t^{de}_{jk}~~~~~+\\frac{1}{2} \\boldsymbol{P}(k/ij) \\boldsymbol{P}(a/bc) \\displaystyle \\sum_{lmd} \\langle lm||dk \\rangle t^{ad}_{ij} t^{bc}_{lm}$\n", + "\n", + "where $\\boldsymbol{P}(abc) \\rightarrow a\\boldsymbol{P}(bc) + b\\boldsymbol{P}(ca) + c\\boldsymbol{P}(ab)$\n", + "\n", + "__CCSDT-3__\n", + "\n", + "In addition to CCSDT-2 diagrams we additionally add to the triples (other $\\hat{T}_1 \\hat{T}_2$, $\\hat{T}_1^2 \\hat{T}_2$ and $\\hat{T}_1 \\hat{T}_2^2$ contributions)" + ] + }, + { + "attachments": { + "6.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "326f7e40", + "metadata": {}, + "source": [ + "![6.png](attachment:6.png)\n", + "which are $+\\boldsymbol{P}(i/jk)\\boldsymbol{P}(c/ab) \\displaystyle \\sum_{de} \\langle ab||de \\rangle t^d_i t^{ec}_{jk}~~~~~+\\boldsymbol{P}(k/ij)\\boldsymbol{P}(a/bc) \\displaystyle \\sum_{lm} \\langle lm||ij \\rangle t^a_l t^{bc}_{mk}~~~~~-\\boldsymbol{P}(ijk)\\boldsymbol{P}(a/bc) \\displaystyle \\sum_{ld} \\langle al||id \\rangle t^d_j t^{bc}_{lk}$\n", + "$~~~~~~~~~~~~~-\\boldsymbol{P}(i/jk)\\boldsymbol{P}(abc) \\displaystyle \\sum_{ld} \\langle al||id \\rangle t^b_l t^{dc}_{jk}$" + ] + }, + { + "attachments": { + "7.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "ab029150", + "metadata": {}, + "source": [ + "![7.png](attachment:7.png)\n", + "which are $-\\boldsymbol{P}(i/jk) \\boldsymbol{P}(abc) \\displaystyle \\sum_{lde} \\langle lb||de \\rangle t^d_i t^a_l t^{ec}_{jk}~~~~~+\\boldsymbol{P}(ijk) \\boldsymbol{P}(a/bc) \\displaystyle \\sum_{lmd} \\langle lm||dj \\rangle t^d_i t^a_l t^{bc}_{mk}~~~~~-\\boldsymbol{P}(k/ij) \\boldsymbol{P}(a/bc) \\displaystyle \\sum_{lde} \\langle al||de \\rangle t^d_i t^e_j t^{bc}_{lk}$\n", + "$~~~~~~~~~~~~~~+\\boldsymbol{P}(i/jk) \\boldsymbol{P}(c/ab) \\displaystyle \\sum_{lmd} \\langle lm||id \\rangle t^a_l t^b_m t^{dc}_{jk}$" + ] + }, + { + "attachments": { + "8.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkQAAABTCAIAAADxzo8HAAAAA3NCSVQICAjb4U/gAAAAGXRFWHRTb2Z0d2FyZQBnbm9tZS1zY3JlZW5zaG907wO/PgAAIABJREFUeJztnXdAFNfa/8/u0qVIXZqAIERBpCwmKIolYtQrmlgSkxtFMepVo17vfRPSjBprTOKNGk1iElusMRo10URjbLEE3QV7QREURRAQkL5tfn88vzvvZGb3zJnZguSdz1/sYebMM8+ePfV7niOjKApJSEhISEi0ZeStbYCEhISEhISlSI2ZhISEhESbR2rMJCQkJCTaPFJjJiEhISHR5pEaMwkJCQmJNo/UmElISEhItHmkxkxCQkJCos0jNWYSEhISEm0eqTGTkJCQkGjzSI2ZhISEhESbR2rMJCQkJCTaPDZpzIxGY2FhIeHFZWVldXV13PSampqKigqr2sWmrq6urKyMm97S0nL37l3CTIqLi3U6ndBHFxYWEkbFrKysrK6uFpo/Qkin0xUXF4u4URzmnCbIjHv37jU3Nwt99N27d1taWkiurK2tffjwodD8EUIGg+H27dsibhSHuV+QIDMePHhQX18v9NHi7hKNue/uCTHDXO3Epamp6d69e0Kf29jYeP/+faF3icZcpdrU1NTmzCgqKtLr9X9KomzAunXrFApFfX09ycUTJkzo3r07Nz08PDwnJ8fapv2JTZs2yeXy2tpaVvr48eOffvppwkyioqL+9a9/CXruwYMHEUI3b94kuXjOnDlBQUGC8gfeeeedkJAQETeK48iRIwihq1evstLfe+89cvv79Onz0ksvCXru5cuXEULHjh0jufjzzz93cnJqbm4W9AiKolavXu3k5NTS0iL0RnFcv34dIXT48GFW+po1a8jtf+WVV3r16iXouVVVVTKZbNu2bYLusoTk5OTXXnuNlVhdXS2TybZs2WI3M1JSUrKzs1mJNTU1Mpls8+bNJDn89NNPCKHi4mJBzx02bNigQYME3WIJK1ascHV11el0rPThw4c/99xzdjNj5cqVLi4uXDOef/75gQMHEmbi5+f3wQcfMFNsMjJTqVQGgyE/P5/kYrVanZKSYjITjUZjbdPYj46JifH09GSlJycnX7x4kWS8VV1dffv2bZP2Y0hJSZHJZIRvZ84/vKhUqvv37z948EDEvSJQq9Xu7u5PPfUU14wH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" + } + }, + "cell_type": "markdown", + "id": "c6c87cde", + "metadata": {}, + "source": [ + "![8.png](attachment:8.png)\n", + "which are $-\\boldsymbol{P}(i/jk) \\boldsymbol{P}(c/ab) \\displaystyle \\sum_{lmde} \\langle lm||de \\rangle t^d_l t^{ab}_{im} t^{ec}_{jk}~~~~~-\\boldsymbol{P}(ijk) \\boldsymbol{P}(a/bc) \\displaystyle \\sum_{lmde} \\langle lm||de \\rangle t^e_j t^{ad}_{il} t^{bc}_{mk}~~~~~-\\boldsymbol{P}(i/jk) \\boldsymbol{P}(abc) \\displaystyle \\sum_{lmde} \\langle lm||de \\rangle t^b_m t^{ad}_{il} t^{ec}_{jk}$\n", + "$~~~~~~~~~~~~~~+\\frac{1}{2}\\boldsymbol{P}(i/jk) \\boldsymbol{P}(c/ab) \\displaystyle \\sum_{lmde} \\langle lm||de \\rangle t^d_i t^{ab}_{lm} t^{ec}_{jk}~~~~~+\\frac{1}{2}\\boldsymbol{P}(k/ij) \\boldsymbol{P}(a/bc) \\displaystyle \\sum_{lmde} \\langle lm||de \\rangle t^a_l t^{de}_{ij} t^{bc}_{mk}$\n", + "\n", + "__CCSDT-4__\n", + "\n", + "In addition to the CCSDT_3 terms we now add the remaining terms linear in $T_3$." + ] + }, + { + "attachments": { + "image.png": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAASQAAABfCAIAAADOCS0NAAAAA3NCSVQICAjb4U/gAAAZgElEQVR4Xu2dZ8yWNRfHXxAHKiriFhcKuCVuxYngwoE4ICpqQjCgGDQuRMToJ6MgkAiICQ4UUVEUcRIVgyjErbgF3OLErbjfnzl5+zbX6HXa67rv+3keywdyP71O/21Pezr+PW1b/f333/+J/6IGogZqr4HWtU8iphA1EDXwjwaiscV2EDVQJw1EY6uTomMyUQPR2GIbiBqokwaisdVJ0TGZqIFobLENRA3USQPR2Oqk6JhM1EA0ttgGogbqpIFiY3vssceuuOIK3+xce+219957b2asMMCxY8fmAT7++OMBOQRw5syZmTnUBE6fPn3ixIkaSSPz119/jRw58qmnnsqMFQZ42WWX5QHecccdATl0AGZm2w78888/p0yZcvPNNxdKXnfdddOmTSsU8xX45JNPRo8e/cILL3hFnDdv3rhx47766qt0LAF8/vnn058cIdQIrevLL79MyuBB4v43aNAg4nz66aduMfvrb7/91rZt2yOPPDIzSgDg77//DuARRxyRCXjmmWf65vCPP/5YffXVDz/88ExATeDee++93nrraSSNzOuvv04+L7744sxYAYBvvPEGgBdddFEm4D777OObwzfffBPACy+8MBNQE7jVVlt16tTJLYnyO3TosOeee7rFAr6KmV1++eVecc8++2xK/eGHH6Zjvfjii3zyBRw6dCixPvjggwRg8ci22267EVNS5YfmH63ql19+kYhp+RoBevVn5PDnn3/Oy2E6z+kQ4tIXUkPm0/fff58Ws0Mkh3mJ1giQKnfnSp9DDU7v3r2XLl0qRpsnT8f/9ddfH3300XkCweE77rjjqquu6tUSSIuBi15ps802S6cL4GqrreY7sgng5ptvngDUGptXAQpbFZloyoBppadDxGZMKZgiTp06NS1mh3ipBcBbbrmlQkA3lHx151CDICb0wAMPOITlay2MbZVVVsE8vGyDYfbVV1/dfffdMzO88sor+wIylwYws0stNradd96ZMlRoG5UD7rTTTr79WVir+uGHH0yVJIztxhtvXL58eWaFmUASbd++PRMtE+IAvOmmm7755ptCwLXXXptpW6ZYIoeZMolAcgjg1ltvrRHOlDnooIPatWs3e/bszK8SyFeGEZqBQyb4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" + } + }, + "cell_type": "markdown", + "id": "7ff6635d", + "metadata": {}, + "source": [ + "![image.png](attachment:image.png)\n", + "\n", + "which are $+\\frac{1}{2} \\boldsymbol{P}(c/ab) \\displaystyle \\sum_{de} \\langle ab||de \\rangle t^{dec}_{ijk}\n", + "~~~~~+\\frac{1}{2} \\boldsymbol{P}(k/ij) \\displaystyle \\sum_{lm} \\langle lm||ij \\rangle t^{abc}_{lmk}~~~~~\n", + "+\\boldsymbol{P}(i/jk)\\boldsymbol{P}(a/bc) \\displaystyle \\sum_{ld} \\langle al||id \\rangle t^{dbc}_{ljk}$" + ] + }, + { + "cell_type": "markdown", + "id": "8a67cd78", + "metadata": {}, + "source": [ + "__summary__\n", + "\n", + "CCSDT-1a $~~~~e^{\\hat{T}_1+\\hat{T}_2+\\hat{T}_3}~~~~~~e^{\\hat{T}_1+\\hat{T}_2}+\\hat{T}_3~~~~~~~\\hat{T}_2$\n", + "\n", + "CCSDT-1b $~~~~e^{\\hat{T}_1+\\hat{T}_2+\\hat{T}_3}~~~~~~e^{\\hat{T}_1+\\hat{T}_2+\\hat{T}_3}~~~~~~~~~~~\\hat{T}_2$\n", + "\n", + "CCSDT-2 $~~~~~e^{\\hat{T}_1+\\hat{T}_2+\\hat{T}_3}~~~~~~e^{\\hat{T}_1+\\hat{T}_2+\\hat{T}_3}~~~~~~~~~~~e^{\\hat{T}_2}$\n", + "\n", + "CCSDT-3 $~~~~~e^{\\hat{T}_1+\\hat{T}_2+\\hat{T}_3}~~~~~~e^{\\hat{T}_1+\\hat{T}_2+\\hat{T}_3}~~~~~~~~~~~e^{\\hat{T}_1+\\hat{T}_2}$\n", + "\n", + "CCSDT-4 $~~~~~e^{\\hat{T}_1+\\hat{T}_2+\\hat{T}_3}~~~~~~e^{\\hat{T}_1+\\hat{T}_2+\\hat{T}_3}~~~~~~~~~~~e^{\\hat{T}_1+\\hat{T}_2} + T_3$\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "52a308b0", + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "51771103", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/document/Coupled_Cluster.ipynb b/document/Coupled_Cluster.ipynb new file mode 100644 index 0000000..7d675f4 --- /dev/null +++ b/document/Coupled_Cluster.ipynb @@ -0,0 +1,875 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "33c3589b", + "metadata": {}, + "source": [ + "### Coupled-Cluster Equations" + ] + }, + { + "attachments": { + "ccs.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "2a905a99", + "metadata": {}, + "source": [ + "__Singles__\n", + "\n", + "From 'Many-Bodied Methods in Chemistry and Physics: MBPT and Coupled-Cluster Theory (Cambridge Molecular Science) Shavitt and Bartlett the following shows the diagrams for the Coupled-Cluster singles (CCS)\n", + "![ccs.png](attachment:ccs.png)" + ] + }, + { + "cell_type": "markdown", + "id": "81288735", + "metadata": {}, + "source": [ + "We interpret these diagrams below, defining $f^a_i$ as the canonical HF Fock matrix and $\\scriptsize{\\langle pq||rs \\rangle}$ as the anti-symmetrized 2-electron integrals in the molecular basis in physicists notation (see Appendix A for examples of interpreting diagrams),\n", + "\n", + "$\\boldsymbol{S_1}$ Labelling the spin-orbital diagram (left to right) with a down-arrow (hole) __i__ and an up-arrow (particle) __a__ we interpret this as $\\boldsymbol{f^a_i}$ We will assume that labels are assigned in alphabetical order, from left to right, within each class of lines (open particle lines, internal particle lines, open hole lines, internal hole lines) in keeping with our reference text.\n", + "\n", + "$\\boldsymbol{S_{2a}}$ As before but now labelling the down-loop __k__ and the up-loop __c__ and noting that the base line represents the cluster amplitude operator we write $\\scriptsize{\\boldsymbol{\\displaystyle \\sum_{kc} f^c_k t^{ac}_{ik}}}$\n", + "\n", + "$\\boldsymbol{S_{2b}}$ Labelling the arrow as __d__ we have two components (i) the amplitude operator $\\scriptsize{t^{cd}_{ik}}$ and (ii) the 2-particle operator $\\scriptsize{\\langle ak||cd \\rangle}$. The 2-particle operator order is determined as . Note the lines __a__ and __c__ are equivalent in that they connect the same two vertices going in the same direction, this leads to a factor of $\\frac{1}{2}$, giving overall $\\scriptsize{\\boldsymbol{\\frac{1}{2} \\displaystyle \\sum_{kc} \\langle ak||cd \\rangle t^{cd}_{ik}}}$\n", + "\n", + "$\\boldsymbol{S_{2c}}$ Labelling (left to right) as __a__, __i__ this time and the arrow as __l__ we again have two components (i) the amplitude operator $\\scriptsize{t^{ac}_{kl}}$ and (ii) the 2-particle operator $\\scriptsize{\\langle kl||ic \\rangle}$. The lines __i__ and __k__ are equivalant giving a factor of $\\frac{1}{2}$. This time there are 3 hole lines and 2 loops so a factor of $(-1)^{3-2}$ is included (note paired lines going to infinity are pseudo-loops) giving $\\scriptsize{\\boldsymbol{-\\frac{1}{2} \\displaystyle \\sum_{kc} \\langle kl||ic \\rangle t^{ac}_{kl}}}$\n", + "\n", + "$\\boldsymbol{S_{3a}}$ Labelling the arrow as __c__ there are two components (i) a Fock operator component $\\scriptsize{f^a_c}$ and (ii) an amplitude component $\\scriptsize{t^c_i}$ giving $\\scriptsize{\\boldsymbol{\\displaystyle \\sum_c f^a_c t^c_i}}$\n", + "\n", + "$\\boldsymbol{S_{3b}}$ Labelling (left to right) as __a__, __i__ and the arrow as __k__ there are two components (i) a Fock operator component $\\scriptsize{f^k_i}$ and (ii) an amplitude component $\\scriptsize{t^a_k}$ giving $\\scriptsize{\\boldsymbol{-\\displaystyle \\sum_k f^k_i t^a_k}}$\n", + "\n", + "$\\boldsymbol{S_{3c}}$ There are two components (i) a 2-particle operator component $\\scriptsize{\\langle ak||ic \\rangle}$ and (ii) the amplitude operator component $\\scriptsize{t^{c}_{k}}$ giving overall $\\scriptsize{\\boldsymbol{\\displaystyle \\sum_{kc} \\langle ak||ic \\rangle t^c_k}}$\n", + "\n", + "$\\boldsymbol{S_{4a}}$ Labelling from left to right as __i__, __c__, __k__, __a__, __d__ and __l__ we have three components. (i) a amplitude operator $\\scriptsize{t^c_i}$, (ii) a second amplitude operator $\\scriptsize{t^{ad}_{kl}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle kl||cd \\rangle}$. __k__ and __l__ are equivalent lines and there are 3 hole lines and 2 loops so the final contribution is $\\scriptsize{-\\frac{1}{2}\\boldsymbol{\\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^c_i t^{ad}_{kl}}}$\n", + "\n", + "$\\boldsymbol{S_{4b}}$ Labelling from left to right as __a__, __k__, __c__, __i__, __d__ and __l__ we have three components. (i) a amplitude operator $\\scriptsize{t^a_k}$, (ii) a second amplitude operator $\\scriptsize{t^{cd}_{il}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle kl||cd \\rangle}$. __c__ and __d__ are equivalent lines and there are 3 hole lines and 2 loops so the final contribution is $\\scriptsize{-\\frac{1}{2}\\boldsymbol{\\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^a_k t^{cd}_{il}}}$\n", + "\n", + "$\\boldsymbol{S_{4c}}$ Labelling from left to right as __c__, __k__, __d__, __l__, __a__ and __i__ we have three components. (i) a amplitude operator $\\scriptsize{t^c_k}$, (ii) a second amplitude operator $\\scriptsize{t^{da}_{li}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle kl||cd \\rangle}$. There are no equivalent lines and there are 3 hole lines and 3 loops so the final contribution is $\\scriptsize{\\boldsymbol{\\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^c_k t^{da}_{li}}}$\n", + "\n", + "$\\boldsymbol{S_{5a}}$ Labelling from left to right as __i__, __c__, __k__ and __a__ we have three components. (i) a amplitude operator $\\scriptsize{t^c_i}$, (ii) a second amplitude operator $\\scriptsize{t^a_k}$ and (iii) a Fock operator contribution of $\\scriptsize{f^c_k}$. There are no equivalent lines and there are 2 hole lines and 1 loop so the final contribution is $\\scriptsize{\\boldsymbol{-\\displaystyle \\sum_{kc} t^c_i t^a_k f^c_k}}$\n", + "\n", + "$\\boldsymbol{S_{5b}}$ Labelling from left to right as __i__, __c__, __a__, __d__ and __k__ with the shown arrow as __a__. We have three components. (i) a amplitude operator $\\scriptsize{t^c_i}$, (ii) a second amplitude operator $\\scriptsize{t^d_k}$ and (iii) a 2-particle operator contribution of $\\scriptsize{\\langle ak||cd \\rangle}$. There are no equivalent lines and there are 2 hole lines and 2 loops so the final contribution is $\\scriptsize{\\boldsymbol{\\displaystyle \\sum_{kcd} t^c_i t^d_k \\langle ak||cd \\rangle}}$\n", + "\n", + "$\\boldsymbol{S_{5c}}$ Labelling from left to right as __a__, __k__, __i__, __c__ and __l__ with the shown arrow as __i__. We have three components. (i) a amplitude operator $\\scriptsize{t^a_k}$, (ii) a second amplitude operator $\\scriptsize{t^c_l}$ and (iii) a 2-particle operator contribution of $\\scriptsize{\\langle kl||ic \\rangle}$. There are no equivalent lines and there are 3 hole lines and 2 loops so the final contribution is $\\scriptsize{\\boldsymbol{-\\displaystyle \\sum_{klc} t^a_k t^c_l \\langle kl||ic \\rangle}}$\n", + "\n", + "$\\boldsymbol{S_{6}}$ Labelling from left to right as __i__, __c__, __k__, __a__, __d__ and __l__. We have four components. (i) a amplitude operator $\\scriptsize{t^c_i}$, (ii) a second amplitude operator $\\scriptsize{t^a_k}$, (iii) a third amplitude operator $\\scriptsize{t^d_l}$ and (iv) a 2-particle operator contribution of $\\scriptsize{\\langle kl||cd \\rangle}$. There are no equivalent lines and there are 3 hole lines and 2 loops so the final contribution is $\\scriptsize{\\boldsymbol{-\\displaystyle \\sum_{klcd} t^a_k t^c_l t^d_l \\langle kl||cd \\rangle}}$\n" + ] + }, + { + "cell_type": "markdown", + "id": "858749fa", + "metadata": {}, + "source": [ + "__singles intermediates__\n", + "\n", + "It is convenient to construct the so called 'intermediates' (effective Hamiltonian elements). We can combine $\\boldsymbol{S_{2a}}$ and $\\boldsymbol{S_{4c}}$ as $\\scriptsize{\\displaystyle \\sum_{kc} f^c_k t^{ac}_{ik} + \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^c_k t^{da}_{li}}$. In the second term we can interchange $cd$ and $kl$ as they are dummy indices and noting the symmetries of $t^{ab}_{ij}$ we have\n", + "\n", + "$\\displaystyle \\sum_{kc} f^c_k t^{ac}_{ik} + \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^d_l t^{ca}_{ki} = t^{ac}_{ik} \\big( f^c_k + \\langle kl||cd \\rangle t^d_l \\big) = t^{ac}_{ik} F_{ck}$ where $F_{ck}$ is an intermediate. \n", + "- - -\n", + "A good reference for CCSD expressions is 'J. Gauss and J. F. Stanton: Coupled-cluster calculations of nuclear magnetic resonance chemical shifts J. Chem. Phys. 103 (9), 1 September 1995' This reference uses $mn$ and $ef$ rather than $kl$ and $cd$ so above equation is written as $F_{em} = f^e_m + t^f_n \\langle mn||ef \\rangle$ (see reference Table IIIa). Using Einstein repeated index summation convention.\n", + "- - -\n", + "If we now define $F_{ac} = f^c_a - \\frac{1}{2}\\displaystyle \\sum_{k} f^c_k t^a_k + \\displaystyle \\sum_{kd} t^d_k \\langle ak||cd \\rangle - \\frac{1}{2}\\displaystyle \\sum_{kld} \\langle kl||cd \\rangle \\big [ t^{ad}_{kl} + \\frac{1}{2}\\big (t^a_k t^d_l - t^d_k t^a_l \\big ) \\big]$\n", + "\n", + "It is usual to define the last expression $ t^{ad}_{kl} + \\frac{1}{2}\\big (t^a_k t^d_l - t^d_k t^a_l \\big )$ as $\\tilde{\\tau}^{ad}_{kl}$\n", + "\n", + "Similarly we define $F_{ki} = f^k_i + \\frac{1}{2}\\displaystyle \\sum_{c} f^c_k t^c_i + \\displaystyle \\sum_{lc} t^c_l \\langle kl||ic \\rangle + \\frac{1}{2}\\displaystyle \\sum_{lcd} \\langle kl||cd \\rangle \\big [ t^{cd}_{il} + \\frac{1}{2}\\big (t^c_i t^d_l - t^d_i t^c_l \\big ) \\big]$\n", + "\n", + "We have now defined the intermediates $\\boldsymbol{F_{ck}~~F_{ac}~~F_{ki}}$" + ] + }, + { + "cell_type": "markdown", + "id": "e6e3924d", + "metadata": {}, + "source": [ + "__singles amplitudes__\n", + "\n", + "Consider the expression $f^a_i + \\boldsymbol{F}^a_c t^c_i - \\boldsymbol{F}^k_i t^a_k + \\boldsymbol{F}^e_k t^{ac}_{ik} + t^c_k \\langle ak||ic \\rangle - \\frac{1}{2} t^{ac}_{kl} \\langle kl||ic \\rangle + \\frac{1}{2} t^{cd}_{ik} \\langle ak||cd \\rangle$. We note that we can immediately write this expression as $S_1 + \\boldsymbol{F}^a_c t^c_i - \\boldsymbol{F}^k_i t^a_k + \\boldsymbol{F}^e_k t^{ac}_{ik} + S_{3c} + S_{2c} + S_{2b}$\n", + "\n", + "$\\boldsymbol{F}^e_k t^{ac}_{ik} = t^{ac}_{ik} f^c_k + t^{ac}_{ik} t^d_l \\langle kl||cd \\rangle = S_{2a} + t^{ad}_{il} t^c_k \\langle lk||dc \\rangle$ swapping dummy indices which can be seen to be $S_{2a} + S_{4c}$\n", + "\n", + "$\\boldsymbol{F}^a_c t^c_i = f^c_a t^c_i - \\frac{1}{2}\\displaystyle \\sum_{k} f^c_k t^a_k t^c_i + \\displaystyle \\sum_{kd} t^d_k \\langle ak||cd \\rangle t^c_i - \\frac{1}{2} t^c_i \\displaystyle \\sum_{kld} \\langle kl||cd \\rangle \\big [ t^{ad}_{kl} + \\frac{1}{2}\\big (t^a_k t^d_l - t^d_k t^a_l \\big ) \\big]$\n", + "\n", + "The first three terms are respectively $S_{3a}~~ \\frac{1}{2}S_{5a}~~ S_{5b}$ and the $t^{ad}_{kl}$ term is $S_{4a}$\n", + "\n", + "$\\boldsymbol-{F}^k_i t^a_k = -f^k_i t^a_k - \\frac{1}{2}\\displaystyle \\sum_{c} f^c_k t^c_i t^a_k - \\displaystyle \\sum_{lc} t^c_l \\langle kl||ic \\rangle t^a_k - \\frac{1}{2} t^a_k \\displaystyle \\sum_{lcd} \\langle kl||cd \\rangle \\big [ t^{cd}_{il} + \\frac{1}{2}\\big (t^c_i t^d_l - t^d_i t^c_l \\big ) \\big]$\n", + "\n", + "This time the first three terms are $S_{3b}~~\\frac{1}{2}S_{5a}~~S_{5c}$ and the $t^{cd}_{il}$ term is $S_{4b}$\n", + "\n", + "The remaining terms are $-\\langle kl||cd \\rangle\\frac{1}{4}\\big( t^a_k t^d_l t^c_i - t^d_k t^a_l t^c_i + t^c_i t^d_l t^a_k - t^d_i t^c_l t^a_k \\big) = -\\langle kl||cd \\rangle \\frac{1}{4} \\big( 2 t^a_k t^d_l t^c_i - t^d_k t^a_l t^c_i - t^d_i t^c_l t^a_k \\big) = -\\frac{1}{2}\\langle kl||cd \\rangle t^a_k t^d_l t^c_i -\\frac{1}{4} \\langle kl||cd \\rangle t^d_k t^a_l t^c_i -\\frac{1}{4} \\langle kl||cd \\rangle t^d_i t^c_l t^a_k$ swapping dummy indices on last term we get $-\\frac{1}{2}\\langle kl||cd \\rangle t^a_k t^d_l t^c_i -\\frac{1}{4} \\langle kl||cd \\rangle t^d_k t^a_l t^c_i -\\frac{1}{4} \\langle lk||dc \\rangle t^c_i t^d_k t^a_l$ and using symmetries of 2-electron integral gives $-\\langle kl||cd \\rangle t^a_k t^d_l t^c_i = S_6$\n", + "\n", + "Hence we see our original expression $f^a_i + \\boldsymbol{F}^a_c t^c_i - \\boldsymbol{F}^k_i t^a_k + \\boldsymbol{F}^e_k t^{ac}_{ik} + t^c_k \\langle ak||ic \\rangle - \\frac{1}{2} t^{ac}_{kl} \\langle kl||ic \\rangle + \\frac{1}{2} t^{cd}_{ik} \\langle ak||cd \\rangle$ includes all contributions of the singles and is our singles amplitudes equation." + ] + }, + { + "cell_type": "markdown", + "id": "157d1e29", + "metadata": {}, + "source": [ + "- - -\n", + "__summary__\n", + "\n", + "The singles amplitudes are given by the solution to\n", + "\n", + "$t^a_b \\epsilon^a_b = f^a_i + \\boldsymbol{F}^a_c t^c_i - \\boldsymbol{F}^k_i t^a_k + \\boldsymbol{F}^e_k t^{ac}_{ik} + t^c_k \\langle ak||ic \\rangle - \\frac{1}{2} t^{ac}_{kl} \\langle kl||ic \\rangle + \\frac{1}{2} t^{cd}_{ik} \\langle ak||cd \\rangle$\n", + "\n", + "with\n", + "\n", + "$F_{ck} = f^c_k + \\displaystyle \\sum_{ld} \\langle kl||cd \\rangle t^d_l$\n", + "\n", + "$F_{ac} = f^c_a - \\frac{1}{2}\\displaystyle \\sum_{k} f^c_k t^a_k + \\displaystyle \\sum_{kd} t^d_k \\langle ak||cd \\rangle - \\frac{1}{2}\\displaystyle \\sum_{kld} \\langle kl||cd \\rangle \\big [ t^{ad}_{kl} + \\frac{1}{2}\\big (t^a_k t^d_l - t^d_k t^a_l \\big ) \\big]$\n", + " \n", + "$F_{ki} = f^k_i + \\frac{1}{2}\\displaystyle \\sum_{c} f^c_k t^c_i + \\displaystyle \\sum_{lc} t^c_l \\langle kl||ic \\rangle + \\frac{1}{2}\\displaystyle \\sum_{lcd} \\langle kl||cd \\rangle \\big [ t^{cd}_{il} + \\frac{1}{2}\\big (t^c_i t^d_l - t^d_i t^c_l \\big ) \\big]$" + ] + }, + { + "attachments": { + "2.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "a25b4c0b", + "metadata": {}, + "source": [ + "__the CCD doubles__\n", + "\n", + "The diagrams from Shavitt and Bartlett for the doubles contributions to CCD are \n", + "![2.png](attachment:2.png)\n", + "\n", + "$\\boldsymbol{D_1}$ Labelling left to right as __i__,__a__,__j__ and __b__ we have one contribution from the 2-particle operator $\\scriptsize{\\boldsymbol{\\langle ab||ij \\rangle}}$\n", + "\n", + "$\\boldsymbol{D_{2a}}$ Labelling the arrow __b__ there are two contributions (i) the amplitude operator $\\scriptsize{t^{ac}_{ij}}$ and (ii) the Fock operator $f^c_b$. There are 2 holes and 2 loops so sign is +ve.\n", + "\n", + "- - -\n", + "Sum over all distinct permutations P̂ of labels of inequivalent external particle lines and of inequivalent external hole lines.\n", + "- - -\n", + "The final contribution is $\\scriptsize{\\boldsymbol{P(ab) \\displaystyle \\sum_c \\big\\{t^{ac}_{ij} f^c_b \\big\\}}}$\n", + "\n", + "$\\boldsymbol{D_{2b}}$ Labelling the arrow __j__ there are two contributions (i) the amplitude operator $\\scriptsize{t^{ab}_{ik}}$ and (ii) the Fock operator $f^j_k$. There are 3 holes and 2 loops so sign is -ve and we can permute over __i__ and __j__ giving $\\scriptsize{\\boldsymbol{-P(ij)\\displaystyle \\sum_k \\big\\{t^{ab}_{ik} f^j_k \\big\\}}}$\n", + "\n", + "$\\boldsymbol{D_{2c}}$ Labelling the arrows __a__ and __b__ (left to right as usual). There are two contributions (i) the amplitude operator $\\scriptsize{t^{cd}_{ij}}$ and (ii) the 2-particle operator contribution of $\\scriptsize{\\langle ab||cd \\rangle}$. There are 2 hole lines and 2 loops so sign is +ve, __c__ and __d__ are equivalent lines so factor of $\\frac{1}{2}$ giving overall $\\scriptsize{\\boldsymbol{\\frac{1}{2} \\displaystyle \\sum_{cd}t^{cd}_{ij} \\langle ab||cd \\rangle}}$\n", + "\n", + "$\\boldsymbol{D_{2d}}$ Labelling the arrows __i__ and __j__ . There are two contributions (i) the amplitude operator $\\scriptsize{t^{ab}_{kl}}$ and (ii) the 2-particle operator contribution of $\\scriptsize{\\langle kl||ij \\rangle}$. There are 4 hole lines and 2 loops so sign is +ve, __k__ and __l__ are equivalent lines so factor of $\\frac{1}{2}$ giving overall $\\scriptsize{\\boldsymbol{\\frac{1}{2} \\displaystyle \\sum_{kl} t^{ab}_{kl} \\langle kl||ij \\rangle}}$\n", + "\n", + "$\\boldsymbol{D_{2e}}$ Labelling __i__, __a__, __k__, __c__, __j__ and __b__ we have two contributions (i) the amplitude operator $\\scriptsize{t^{ac}_{ik}}$ and (ii) the 2-particle operator contribution of $\\scriptsize{\\langle kb||cj \\rangle}$. We have 3 hole lines and 3 loops giving a +ve sign and there are no equivalent lines.We can anti-symmetrize on __a__ __b__ and __i__ __j__ giving overall $\\scriptsize{\\boldsymbol{P(ab)~P(ij) \\displaystyle \\sum_{kc} \\big\\{t^{ac}_{ik} \\langle kb||cj \\rangle \\big\\}}}$\n", + "\n", + "$\\boldsymbol{D_{3a}}$ Labelling arrows __c__, __k__, __d__ and __l__ we have we have three contributions (i) the amplitude operator $\\scriptsize{t^{cd}_{ij}}$ , (ii) the amplitude operator $\\scriptsize{t^{ab}_{kl}}$ and (iii) the 2-particle operator contribution of $\\scriptsize{\\langle kl||cd \\rangle}$. There are 4 hole lines and no loops giving a +ve sign, the lines __c__ __d__ and __k__ __l__ are equivalent giving a factor of $\\frac{1}{4}$ with no permutations we have $\\scriptsize{\\boldsymbol{ \\frac{1}{4} \\displaystyle \\sum_{klcd} t^{cd}_{ij} t^{ab}_{kl} \\langle kl||cd \\rangle}}$\n", + "\n", + "$\\boldsymbol{D_{3b}}$ Labelling __i__, __a__, __k__, __c__, __l__, __d__, __j__ and __b__ we have we have three contributions (i) the amplitude operator $\\scriptsize{t^{ac}_{ik}}$ , (ii) the amplitude operator $\\scriptsize{t^{bd}_{jl}}$ and (iii) the 2-particle operator contribution of $\\scriptsize{\\langle kl||cd \\rangle}$. There are 4 hole lines and 4 loops giving a +ve sign, no equivalent lines and a factor $\\frac{1}{2}$ from a pair of equivalent vertices\n", + "- - -\n", + "Associate a factor $\\frac{1}{2}$with each pair of equivalent $\\hat{T}^m$ vertices. (Two vertices are considered equivalent if they have the same number of line pairs and are connected in equivalent ways to the interaction vertex. See Shavitt and Bartlett pg 296 Fig 10.1\n", + "- - -\n", + "This gives us $\\scriptsize{\\frac{1}{2} P(ij) P(ab) t^{ac}_{ik} t^{bd}_{jl} \\langle kl||cd \\rangle}$ because we can permute the external lines. Noting $P(ij) P(ab) \\big \\{ t^{ac}_{ik} t^{bd}_{jl} \\big \\} = t^{ac}_{ik} t^{bd}_{jl} - t^{bc}_{ik} t^{ad}_{jl} - t^{ac}_{jk} t^{bd}_{il} + t^{bc}_{jk} t^{ad}_{il}$ pairing terms 1&3 and 2&4 $= P(ij) \\big \\{ t^{ac}_{ik} t^{bd}_{jl} \\big \\} - P(ab) \\big \\{ t^{bc}_{ik} t^{ad}_{jl} \\big \\}$ remembering $klcd$ are dummy indices we can write $= P(ij) \\big \\{ t^{ac}_{ik} t^{bd}_{jl} \\big \\} - P(ab) \\big \\{ t^{bd}_{il} t^{ac}_{jk} \\big \\} = 2P(ij) \\big \\{ t^{ac}_{ik} t^{bd}_{jl} \\big \\}$ and finally $S_{3b}$ is $\\scriptsize{\\boldsymbol{ P(ij) \\displaystyle \\sum_{klcd} t^{ac}_{ik} t^{bd}_{jl} \\langle kl||cd \\rangle}}$\n", + "\n", + "$\\boldsymbol{D_{3c}}$ Labelling arrows __d__ and __l__ we have we have three contributions (i) the amplitude operator $\\scriptsize{t^{cd}_{ki}}$ , (ii) the amplitude operator $\\scriptsize{t^{ab}_{lj}}$ and (iii) the 2-particle operator contribution of $\\scriptsize{\\langle kl||cd \\rangle}$. There are 4 hole lines and 3 loops giving a -ve sign, __c__ and __d__ are equivalent lines so a factor of $\\frac{1}{2}$ and we can permute __i__ and __j__ giving $\\scriptsize{\\boldsymbol{ - \\frac{1}{2}P(ij) \\displaystyle \\sum_{klcd} t^{cd}_{ki} t^{ab}_{lj} \\langle kl||cd \\rangle}}$\n", + "\n", + "$\\boldsymbol{D_{3d}}$ Labelling arrows __l__ and __d__ we have we have three contributions (i) the amplitude operator $\\scriptsize{t^{ac}_{lk}}$ , (ii) the amplitude operator $\\scriptsize{t^{db}_{ij}}$ and (iii) the 2-particle operator contribution of $\\scriptsize{\\langle kl||cd \\rangle}$. There are 4 hole lines and 3 loops giving a -ve sign, __k__ and __l__ are equivalent lines so a factor of $\\frac{1}{2}$ and we can permute __a__ and __b__ giving $\\scriptsize{\\boldsymbol{ - \\frac{1}{2}P(ab) \\displaystyle \\sum_{klcd} t^{ac}_{lk} t^{db}_{ij} \\langle kl||cd \\rangle}}$\n", + "\n", + "CCD amplitudes are given by $\\displaystyle \\sum_{n} D_n = 0$" + ] + }, + { + "cell_type": "markdown", + "id": "5a330ebd", + "metadata": {}, + "source": [ + "__doubles intermediates__\n", + "\n", + "Define $W_{klij} = \\langle kl||ij \\rangle + P(ij) \\big\\{t^c_j \\langle kl||ic \\rangle \\big \\}+ \\frac{1}{4} \\langle kl||cd \\rangle \\big[ t^{cd}_{ij} + \\big( t^c_i t^d_j - t^d_i t^c_j \\big) \\big]$\n", + "\n", + "it is usual to define the last expression $ t^{cd}_{ij} + \\big( t^c_i t^d_j - t^d_i t^c_j \\big)$ as $\\tau^{cd}_{ij}$\n", + "\n", + "Define $W_{abcd} = \\langle ab||cd \\rangle - P(ab) \\big\\{t^b_k \\langle ak||cd \\rangle \\big \\}+ \\frac{1}{4} \\langle kl||cd \\rangle \\big[ t^{ab}_{kl} + \\big( t^a_k t^b_l - t^b_k t^a_l \\big) \\big]$\n", + "\n", + "and define $W_{kbcj} = \\langle kb||cj \\rangle + t^d_j \\langle kb||cd \\rangle - t^b_l \\langle kl||cj\\rangle - \\frac{1}{2} \\langle kl||cd \\rangle \\big(t^{db}_{jl} + 2t^d_j t^b_l \\big)$" + ] + }, + { + "attachments": { + "fyne.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "4393ab4b", + "metadata": {}, + "source": [ + "__summary__\n", + "\n", + "The doubles intermediates are \n", + "\n", + "$W_{klij} = \\langle kl||ij \\rangle + P(ij) \\big\\{t^c_j \\langle kl||ic \\rangle \\big \\}+ \\frac{1}{4} \\langle kl||cd \\rangle \\big[ t^{cd}_{ij} + \\big( t^c_i t^d_j - t^d_i t^c_j \\big) \\big]$\n", + " \n", + "$W_{abcd} = \\langle ab||cd \\rangle - P(ab) \\big\\{t^b_k \\langle ak||cd \\rangle \\big \\}+ \\frac{1}{4} \\langle kl||cd \\rangle \\big[ t^{ab}_{kl} + \\big( t^a_k t^b_l - t^b_k t^a_l \\big) \\big]$\n", + "\n", + "$W_{kbcj} = \\langle kb||cj \\rangle + t^d_j \\langle kb||cd \\rangle - t^b_l \\langle kl||cj\\rangle - \\frac{1}{2} \\langle kl||cd \\rangle \\big(t^{db}_{jl} + 2t^d_j t^b_l \\big)$\n", + "\n", + "The CCD (doubles) amplitudes are given by\n", + "\n", + "$\\langle ab||ij \\rangle + \\boldsymbol{P}(ab) \\big \\{\\displaystyle \\sum_{c} f^c_b t^{ac}_{ij}\\big \\} - \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{k} f^k_j t^{ab}_{ik} \\big \\} + \\frac{1}{2} \\displaystyle \\sum_{cd} \\langle ab||cd \\rangle t^{cd}_{ij} + \\frac{1}{2} \\displaystyle \\sum_{kl} \\langle kl||ij \\rangle t^{ab}_{kl} + \\boldsymbol{P}(ij) \\boldsymbol{P}(ab) \\big \\{\\displaystyle \\sum_{kc} \\langle kb||cj \\rangle t^{ac}_{ik} \\big \\}$\n", + "$+ \\frac{1}{4} \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^{cd}_{ij} t^{ab}_{kl} + \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^{ac}_{ik} t^{bd}_{jl} \\big \\} - \\frac{1}{2} \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^{dc}_{ik} t^{ab}_{lj} \\big \\} - \\frac{1}{2} \\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^{ac}_{lk} t^{db}_{ij} \\big \\} = t^{ab}_{ij} \\epsilon^{ab}_{ij}$\n", + "\n", + "alternatively we can use the intermediates\n", + "\n", + "$\\langle ab||ij \\rangle + \\frac{1}{2} \\tau^{ab}_{kl} W_{klij} + \\frac{1}{2} \\tau^{cd}_{ij} W_{abcd} + \\boldsymbol{P}(ij)\\boldsymbol{P}(ab) \\big \\{ t^{ac}_{ik} W_{kbcj} \\big \\} + \\boldsymbol{P}(ab) \\big \\{ t^{ac}_{ij} F_{bc} \\big \\} - \\boldsymbol{P}(ij) \\big \\{ t^{ab}_{ik} F_{kj} \\big \\} = t^{ab}_{ij} \\epsilon^{ab}_{ij}$\n", + "\n", + "The intermediate expression terms represent diagrams $[D_1] + [D_{2d}+\\frac{1}{2}D_{3a}] + [D_{2c}+\\frac{1}{2}D_{3a}] + [D_{2e} + D_{3b}] + [D_{2a} + D_{3d}] + [D_{2b} + D_{3c}]$ respectively.\n", + "\n", + "The equations are solved iteratively with initial guess $t^a_i = 0$ and $t^{ab}_{ij} = \\frac{\\langle ij||ab \\rangle}{\\epsilon_i + \\epsilon_j - \\epsilon_a - \\epsilon_b}$ where $\\epsilon_i = f_{ii}$ The intermediate solution is a bit inefficient as it implicitly includes $t^a_i$ terms (which are set to zero) but is easier to program if the intermediates have already been coded.\n", + "\n", + "Since we are usually interested in the coupled-cluster correction we subtract the Hartree-Fock energy by using $f^p_q = f^p_q - f^p_p$, in other words we subtract out the diagonal.\n", + "\n", + "The equations are solved iteratively. An initial guess is made for the amplitudes, that guess is substituted into the amplitude equations and an energy computed. The resulting amplitudes are then substituted into the amplitude equations to get another new set of amplitudes and a new energy is computed. This preocedure is repeated until the difference in energy and in amplitudes are below a specified threshold for two consecutives cycles.\n", + "\n", + "__the cluster energy__\n", + "\n", + "The coupled-cluster energy is given by the diagrams\n", + "\n", + "![fyne.png](attachment:fyne.png)\n", + "\n", + "The first diagram is the CCD energy $\\frac{1}{4} \\displaystyle \\sum_{ijab} t^{ab}_{ij} \\langle ij||ab \\rangle$. The second and third diagrams are the singles contributions $\\displaystyle \\sum_{ia} f^a_i t^a_i$ and $\\frac{1}{2} \\displaystyle \\sum_{ijab} \\langle ij||ab \\rangle t^a_i t^{ab}_{ij}$\n", + "are\n", + "\n", + "__CCD benchmark__\n", + "\n", + "Hirata gives benchmarks for various computational methods https://hirata-lab.chemistry.illinois.edu/cc_data.out. His reference $H_2O$ molecule has O-H bonds of 1.827 au and an angle of 107.6$^\\circ$, the basis is STO-3G. We have code for CCD calculated without intermediates and using computed for-loops in https://github.com/pwborthwick/harpy/blob/main/source/cc/scc.py and for a version using intermediates and einsum in https://github.com/pwborthwick/harpy/blob/main/source/cc/fcc.py. The results are\n", + "\n", + "| | |\n", + "|:--|:--|\n", + "|__Hirata CCD__ | -0.0498521356 |\n", + "|Harpy scc | -0.04985214 |\n", + "|Harpy fcc | -0.04985214 |\n", + "\n", + "Code for CCD generated by symbolic methods (sympy) derived through second quantization can be found at https://github.com/pwborthwick/cogus/blob/main/codes/ccd.py (-0.0498521364)." + ] + }, + { + "attachments": { + "3.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "ee5a6030", + "metadata": {}, + "source": [ + "__singles contributions to doubles__\n", + "\n", + "![3.png](attachment:3.png)\n", + "\n", + "$\\boldsymbol{D_{4a}}$ The arrow is labelled __a__. So from left to right the labelling is __i__, __c__, __a__, __k__ and __b__. There are two contributions (i) a singles amplitude operator $\\scriptsize{t^c_i}$, (ii) a 2-particle operator $\\scriptsize{\\langle ab||cj\\rangle}$. There are 2 holes and 2 loops giving a +ve sign, no equivalent lines and we can permute the external lines __i__ and __j__ giving $\\scriptsize{\\boldsymbol{P(ij) \\displaystyle \\sum_c \\big \\{ t^c_i \\langle ab||cj \\rangle \\big \\}}}$\n", + "\n", + "$\\boldsymbol{D_{4b}}$ The arrow is labelled __i__. So from left to right the labelling is __a__, __k__, __i__, __j__ and __b__. There are two contributions (i) a singles amplitude operator $\\scriptsize{t^a_k}$, (ii) a 2-particle operator $\\scriptsize{\\langle ij||kb\\rangle}$. There are 3 holes and 2 loops giving a -ve sign, no equivalent lines and we can permute the external lines __a__ and __b__ giving $\\scriptsize{\\boldsymbol{-P(ab) \\displaystyle \\sum_k \\big \\{ t^a_k \\langle ij||kb \\rangle \\big \\}}}$\n", + "\n", + "$\\boldsymbol{D_{5a}}$ The arrows are labelled __c__ and __k__ giving an overall labelling of __i__, __c__, __k__, __a__, __j__ and __b__. There are three contributions (i) a singles amplitude $\\scriptsize{t^c_i}$, (ii) a Fock operator $\\scriptsize{f^c_k}$ and (iii) a doubles amplitude $\\scriptsize{t^{ab}_{kj}}$. There are 3 holes and 2 loops giving a -ve sign, no equivalent lines and we can permute __i__ and __j__ giving $\\scriptsize{\\boldsymbol{-P(ij) \\displaystyle \\sum_{kc} \\big \\{ t^c_i f^c_k t^{ab}_{kj} \\big \\}}}$\n", + "\n", + "$\\boldsymbol{D_{5b}}$ The arrows are labelled __k__ and __c__ giving an overall labelling of __a__, __k__, __c__, __i__, __j__ and __b__. There are three contributions (i) a singles amplitude $\\scriptsize{t^a_k}$, (ii) a Fock operator $\\scriptsize{f^c_k}$ and (iii) a doubles amplitude $\\scriptsize{t^{cb}_{ij}}$. There are 3 holes and 2 loops giving a -ve sign, no equivalent lines and we can permute __a__ and __b__ giving $\\scriptsize{\\boldsymbol{-P(ab) \\displaystyle \\sum_{kc}\\big \\{ t^a_k f^c_k t^{cb}_{ij} \\big \\}}}$\n", + "\n", + "$\\boldsymbol{D_{5c}}$ The arrow is labelled __a__ giving a labelling of __i__, __c__, __a__, __k__, __d__, __j__ and __b__. There are three contributions (i) a single amplitude $\\scriptsize{t^c_i}$, (ii) a double amplitude $\\scriptsize{t^{db}_{kj}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle ak||cd \\rangle}$. There are 3 holes and 3 loops giving a +ve sign, no equivalent lines and we can permute __i__, __j__ and __a__, __b__ giving $\\scriptsize{\\boldsymbol{P(ij)P(ab) \\displaystyle \\sum_{kcd}\\big \\{ t^c_i t^{db}_{kj} \\langle ak||cd \\rangle} \\big \\}}$\n", + "\n", + "$\\boldsymbol{D_{5d}}$ The arrow is labelled __i__ giving a labelling of __a__, __k__, __i__, __l__, __c__, __j__ and __b__. There are three contributions (i) a single amplitude $\\scriptsize{t^a_k}$, (ii) a double amplitude $\\scriptsize{t^{cb}_{lj}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle kl||ic \\rangle}$. There are 4 holes and 3 loops giving a -ve sign, no equivalent lines and we can permute __i__, __j__ and __a__, __b__ giving $\\scriptsize{\\boldsymbol{-P(ij)P(ab) \\displaystyle \\sum_{klc}\\big \\{ t^a_k t^{cb}_{lj} \\langle kl||ic \\rangle} \\big \\}}$\n", + "\n", + "$\\boldsymbol{D_{5e}}$ The arrows are labelled __k__, __c__ and __b__ giving a labelling of __a__, __k__, __c__, __i__, __b__ and __j__. There are three contributions (i) a single amplitude $\\scriptsize{t^a_k}$, (ii) a double amplitude $\\scriptsize{t^{cd}_{ij}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle kb||cd \\rangle}$. There are 3 holes and 2 loops giving a -ve sign, the lines __c__ and __d__ are equivalent giving a factor of $\\frac{1}{2}$ and we can permute __a__, __b__ giving $\\scriptsize{\\boldsymbol{- \\frac{1}{2} P(ab) \\displaystyle \\sum_{kcd}\\big \\{ t^a_k t^{cd}_{ij} \\langle kb||cd \\rangle} \\big \\}}$\n", + "\n", + "$\\boldsymbol{D_{5f}}$ The arrows are labelled __c__, __k__ and __j__ giving a labelling of __i__, __c__, __k__, __a__, __j__ and __b__. There are three contributions (i) a single amplitude $\\scriptsize{t^c_i}$, (ii) a double amplitude $\\scriptsize{t^{ab}_{kl}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle kl||cj \\rangle}$. There are 4 holes and 2 loops giving a +ve sign, the lines __k__ and __l__ are equivalent giving a factor of $\\frac{1}{2}$ and we can permute __i__, __j__ giving $\\scriptsize{\\boldsymbol{ \\frac{1}{2} P(ij) \\displaystyle \\sum_{klc}\\big \\{ t^c_i t^{ab}_{kl} \\langle kl||cj \\rangle} \\big \\}}$\n", + "\n", + "$\\boldsymbol{D_{5g}}$ The arrow is labelled __a__ giving a labelling of __k__, __c__, __a__, __d__, __i__, __j__ and __b__. There are three contributions (i) a single amplitude $\\scriptsize{t^c_k}$, (ii) a double amplitude $\\scriptsize{t^{db}_{ij}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle ka||cd \\rangle}$. There are 3 holes and 3 loops giving a +ve sign, there are no equivalent lines and we can permute __a__, __b__ giving $\\scriptsize{\\boldsymbol{ P(ab) \\displaystyle \\sum_{kcd}\\big \\{ t^c_k t^{db}_{ij} \\langle ka||cd \\rangle} \\big \\}}$\n", + "\n", + "$\\boldsymbol{D_{5h}}$ The arrow is labelled __i__ giving a labelling of __k__, __c__, __i__, __l__, __a__, __j__ and __b__. There are three contributions (i) a single amplitude $\\scriptsize{t^c_k}$, (ii) a double amplitude $\\scriptsize{t^{ab}_{lj}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle kl||ci \\rangle}$. There are 4 holes and 3 loops giving a -ve sign, there are no equivalent lines and we can permute __i__, __j__ giving $\\scriptsize{\\boldsymbol{- P(ij) \\displaystyle \\sum_{klc}\\big \\{ t^c_k t^{ab}_{lj} \\langle kl||ci \\rangle} \\big \\}}$\n", + "\n", + "$\\boldsymbol{D_{6a}}$ The arrows are labelled __a__ and __b__ giving a labelling of __i__, __c__, __a__, __b__, __d__ and __j__. There are three contributions (i) a single amplitude $\\scriptsize{t^c_i}$, (ii) a single amplitude $\\scriptsize{t^{d}_{j}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle ab||cd \\rangle}$. There are 2 holes and 2 loops giving a +ve sign, there are a pair of equivalent vertices (__i__,__c__ and __d__,__j__) giving a factor of $\\frac{1}{2}$, we can permute by __i__ and __j__. Overall we have $\\scriptsize{\\boldsymbol{\\frac{1}{2} P(ij)\\displaystyle \\sum_{cd} \\big \\{ t^c_i t^d_j \\langle ab||cd \\rangle \\big \\} = \\displaystyle \\sum_{cd} t^c_i t^d_j \\langle ab||cd \\rangle} }$\n", + "\n", + "$\\boldsymbol{D_{6b}}$ The arrows are labelled __i__ and __j__ giving a labelling of __a__, __k__, __i__, __j__, __l__ and __b__. There are three contributions (i) a single amplitude $\\scriptsize{t^a_k}$, (ii) a single amplitude $\\scriptsize{t^{b}_{l}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle kl||ij \\rangle}$. There are 4 holes and 2 loops giving a +ve sign, there are a pair of equivalent vertices (__a__,__k__ and __l__,__b__) giving a factor of $\\frac{1}{2}$, we can permute by __a__ and __b__. Overall we have $\\scriptsize{\\boldsymbol{\\frac{1}{2} P(ab)\\displaystyle \\sum_{kl} \\big \\{ t^a_k t^b_l \\langle kl||ij \\rangle \\big \\} = \\displaystyle \\sum_{kl} t^a_k t^b_l \\langle kl||ij \\rangle} }$\n", + "\n", + "$\\boldsymbol{D_{6c}}$ The arrows are labelled __c__ and __k__ giving a labelling of __i__, __c__, __k__, __a__, __j__ and __b__. There are three contributions (i) a single amplitude $\\scriptsize{t^c_i}$, (ii) a single amplitude $\\scriptsize{t^{a}_{k}}$ and (iii) a 2-particle operator $\\scriptsize{\\langle kb||cj \\rangle}$. There are 3 holes and 2 loops giving a -ve sign, we can permute by __a__, __b__ and __i__,__j__. Overall we have $\\scriptsize{\\boldsymbol{-P(ij)P(ab)\\displaystyle \\sum_{kl} \\big \\{ t^a_k t^b_l \\langle kb||cj \\rangle \\big \\} = -\\displaystyle \\sum_{kc} t^a_k t^c_i \\langle kb||cj \\rangle} }$\n", + "\n", + "$\\boldsymbol{D_{7a}}$ The arrows are labelled __c__, __k__, __l__ and __d__ giving a labelling of __i__, __c__, __k__, __a__, __b__ ,__l__, __d__and __j__. There are four contributions (i) a single amplitude $\\scriptsize{t^c_i}$, (ii) a single amplitude $\\scriptsize{t^{d}_{j}}$, (iii) a doubles amplitude operator $\\scriptsize{t^{ab}_{kl}}$ and (iv) a 2-particle operator $\\scriptsize{\\langle kl||cd \\rangle}$. There are 4 holes and 2 loops giving a +ve sign, there is an equivalent pair of lines __k__, __l__ and equivalent vertices __c__,__k__ and __d__,__j__ giving a factor of $\\frac{1}{4}$ we can also permute by __i__,__j__. Overall we have $\\scriptsize{\\boldsymbol{\\frac{1}{4} P(ij)\\displaystyle \\sum_{klcd} \\big \\{ t^c_i t^d_j t^{ab}_{kl} \\langle kl||cd \\rangle \\big \\} = \\frac{1}{2}\\displaystyle \\sum_{klcd} t^c_i t^d_j t^{ab}_{kl} \\langle kl||cd \\rangle} }$\n", + "\n", + "$\\boldsymbol{D_{7b}}$ The arrows are labelled __k__, __c__, __d__ and __l__ giving a labelling of __a__, __k__, __c__, __i__, __j__ ,__d__, __l__and __b__. There are four contributions (i) a single amplitude $\\scriptsize{t^a_k}$, (ii) a single amplitude $\\scriptsize{t^{b}_{l}}$, (iii) a doubles amplitude operator $\\scriptsize{t^{cd}_{ij}}$ and (iv) a 2-particle operator $\\scriptsize{\\langle kl||cd \\rangle}$. There are 4 holes and 2 loops giving a +ve sign, there is an equivalent pair of lines __c__, __d__ and equivalent vertices __k__,__c__ and __l__,__b__ giving a factor of $\\frac{1}{4}$ we can also permute by __a__,__b__. Overall we have $\\scriptsize{\\boldsymbol{\\frac{1}{4} P(ab)\\displaystyle \\sum_{klcd} \\big \\{ t^a_k t^b_l t^{cd}_{ij} \\langle kl||cd \\rangle \\big \\} = \\frac{1}{2}\\displaystyle \\sum_{klcd} t^a_k t^b_l t^{cd}_{ij} \\langle kl||cd \\rangle} }$\n", + "\n", + "$\\boldsymbol{D_{7c}}$ The arrows are labelled __c__ and __k__ giving a labelling of __i__, __c__, __k__, __a__, __l__, __d__ ,__j__ and __b__. There are four contributions (i) a single amplitude $\\scriptsize{t^c_i}$, (ii) a single amplitude $\\scriptsize{t^{a}_{k}}$, (iii) a doubles amplitude operator $\\scriptsize{t^{db}_{lj}}$ and (iv) a 2-particle operator $\\scriptsize{\\langle kl||cd \\rangle}$. There are 4 holes and 3 loops giving a -ve sign, there are no equivalent lines but we can permute by __i__, __j__ and __a__,__b__. Overall we have $\\scriptsize{\\boldsymbol{-P(ij)P(ab) \\displaystyle \\sum_{klcd} \\big \\{ t^c_i t^a_k t^{db}_{lj} \\langle kl||cd \\rangle \\big \\}} }$\n", + "\n", + "$\\boldsymbol{D_{7d}}$ The arrows are labelled __d__ and __l__ giving a labelling of __k__, __c__, __i__, __d__, __l__, __a__ ,__j__ and __b__. There are four contributions (i) a single amplitude $\\scriptsize{t^c_k}$, (ii) a single amplitude $\\scriptsize{t^{b}_{j}}$, (iii) a doubles amplitude operator $\\scriptsize{t^{ab}_{lj}}$ and (iv) a 2-particle operator $\\scriptsize{\\langle kl||cd \\rangle}$. There are 4 holes and 3 loops giving a -ve sign, there are no equivalent lines but we can permute by __i__, __j__. Overall we have $\\scriptsize{\\boldsymbol{-P(ij) \\displaystyle \\sum_{klcd} \\big \\{ t^c_k t^b_j t^{ab}_{lj} \\langle kl||cd \\rangle \\big \\}} }$\n", + "\n", + "$\\boldsymbol{D_{7e}}$ The arrows are labelled __l__ and __d__ giving a labelling of __k__, __c__, __a__, __l__, __d__, __i__ ,__j__ and __b__. There are four contributions (i) a single amplitude $\\scriptsize{t^c_k}$, (ii) a single amplitude $\\scriptsize{t^{a}_{l}}$, (iii) a doubles amplitude operator $\\scriptsize{t^{db}_{ij}}$ and (iv) a 2-particle operator $\\scriptsize{\\langle kl||cd \\rangle}$. There are 4 holes and 3 loops giving a -ve sign, there are no equivalent lines but we can permute by __a__, __b__. Overall we have $\\scriptsize{\\boldsymbol{-P(ab) \\displaystyle \\sum_{klcd} \\big \\{ t^c_k t^a_l t^{db}_{ij} \\langle kl||cd \\rangle \\big \\}} }$\n", + "\n", + "$\\boldsymbol{D_{8a}}$ The arrow is labelled __b__ giving a labelling of __i__, __c__, __k__, __a__, __b__, __d__ and __j__. There are four contributions (i) a single amplitude $\\scriptsize{t^c_i}$, (ii) a single amplitude $\\scriptsize{t^{a}_{k}}$, (iii) a single amplitude operator $\\scriptsize{t^{d}_{j}}$ and (iv) a 2-particle operator $\\scriptsize{\\langle kb||cd \\rangle}$. There are 3 holes and 1 loop giving a +ve sign, the vertices __k__,__a__ and __d__,__j__ are equivalent giving a factor of $\\frac{1}{2}$ and we can permute by __i__, __j__ and __a__, __b__. Overall we have $\\scriptsize{\\boldsymbol{P(ij)P(ab) \\frac{1}{2}\\displaystyle \\sum_{kcd} \\big \\{ t^c_i t^a_k t^{d}_{j} \\langle kb||cd \\rangle \\big \\} = P(ab)\\displaystyle \\sum_{kcd} \\big \\{ t^c_i t^a_k t^{d}_{j} \\langle kb||cd \\rangle \\big \\} } }$\n", + "\n", + "$\\boldsymbol{D_{8b}}$ The arrow is labelled __j__ giving a labelling of __i__, __c__, __k__, __a__, __j__, __l__ and __b__. There are four contributions (i) a single amplitude $\\scriptsize{t^c_i}$, (ii) a single amplitude $\\scriptsize{t^{a}_{k}}$, (iii) a single amplitude operator $\\scriptsize{t^{b}_{l}}$ and (iv) a 2-particle operator $\\scriptsize{\\langle kl||cj \\rangle}$. There are 4 holes and 0 loops giving a +ve sign, the vetices __k__,__a__ and __l__,__b__ are equivalent giving a factor of $\\frac{1}{2}$ and we can permute by __i__, __j__ and __a__, __b__. Overall we have $\\scriptsize{\\boldsymbol{P(ij)P(ab) \\frac{1}{2}\\displaystyle \\sum_{klc} \\big \\{ t^c_i t^a_k t^{b}_{l} \\langle kl||cj \\rangle \\big \\} = P(ij)\\displaystyle \\sum_{klc} \\big \\{ t^c_i t^a_k t^{b}_{l} \\langle kl||cj \\rangle \\big \\} } }$\n", + "\n", + "$\\boldsymbol{D_{9}}$ The labelling is __i__, __c__, __k__, __a__, __j__,__d__, __l__ and __b__. There are five contributions (i) a single amplitude $\\scriptsize{t^c_i}$, (ii) a single amplitude $\\scriptsize{t^{a}_{k}}$, (iii) a single amplitude operator $\\scriptsize{t^{d}_{j}}$,(iv) a single amplitude $t^b_l$ and (v) a 2-particle operator $\\scriptsize{\\langle kl||cd \\rangle}$. There are 4 holes and 0 loops giving a +ve sign, the vetices __k__,__a__ and __l__,__b__ and __i__, __c__ and __j__, __d__ are equivalent giving a factor of $\\frac{1}{4}$ and we can permute by __i__, __j__ and __a__, __b__. Overall we have $\\scriptsize{\\boldsymbol{P(ij)P(ab) \\frac{1}{4}\\displaystyle \\sum_{klcd} \\big \\{ t^c_i t^a_k t^d_j t^{b}_{l} \\langle kl||cd \\rangle \\big \\} = \\displaystyle \\sum_{klcd} \\big \\{ t^c_i t^a_k t^d_j t^{b}_{l} \\langle kl||cj \\rangle \\big \\} } }$\n" + ] + }, + { + "cell_type": "markdown", + "id": "98a1ccac", + "metadata": {}, + "source": [ + "__summary__\n", + "\n", + "The total singles contribution to the $\\hat{T}_2$ amplitudes are \n", + "\n", + "$\\boldsymbol{P}(ij)\\big \\{ \\displaystyle \\sum_{c} \\langle ab||cj \\rangle t^c_i \\big \\} - \\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_k \\langle kb||ij \\rangle t^a_k \\big \\} - \\boldsymbol{P}(ij) \\big \\{\\displaystyle \\sum_{kc}f^c_k t^c_i t^{ab}_{kj} \\big \\} - \\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{kc} f^c_k t^a_k t^{cb}_{ij}\\big \\} + \\boldsymbol{P}(ij)\\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{kcd} \\langle ak||cd \\rangle t^c_i t^{db}_{kj}\\big \\} - $\n", + "$\\boldsymbol{P}(ij)\\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{klc} \\langle kl||ic \\rangle t^a_k t^{cb}_{lj}\\big \\} - \\frac{1}{2} \\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{kcd} \\langle kb||cd \\rangle t^a_k t^{cd}_{ij} \\big \\} + \\frac{1}{2} \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{klc} \\langle kl||cj \\rangle t^c_i t^{ab}_{kl} \\big \\} + \\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{kcd} \\langle ka||cd \\rangle t^c_k t^{db}_{ij} \\big \\} - $\n", + "$\\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{klc} \\langle kl||ci \\rangle t^c_k t^{ab}_{lj} \\big \\} + \\displaystyle \\sum_{cd} \\langle ab||cd \\rangle t^c_i t^d_j + \\displaystyle \\sum_{kl} \\langle kl||ij \\rangle t^a_k t^b_l - \\boldsymbol{P}(ij) \\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{kc} \\langle kb||cj \\rangle t^c_i t^a_k \\big \\} + \\frac{1}{2} \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^c_i t^d_j t^{ab}_{kl} + \\frac{1}{2} \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^a_k t^b_l t^{cd}_{ij} - $\n", + "$\\boldsymbol{P}(ij) \\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^c_i t^a_k t^{db}_{lj}\\big \\} - \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^c_k t^d_i t^{ab}_{lj} \\big \\} - \\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^c_k t^a_l t^{db}_{ij} \\big \\} + \\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{kcd} \\langle kb||cd \\rangle t^c_i t^a_k t^d_j \\big \\} + $\n", + "$ \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{klc} \\langle kl||cj \\rangle t^c_i t^a_k t^b_l \\big \\} + \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^c_i t^d_j t^a_k t^b_l$\n", + "\n", + "Add these to the CCD (doubles) amplitudes to get the CCSD $\\hat{T}_2$ amplitude equation.\n", + "\n", + "For the intermediate style form of the CCSD $\\hat{T}_2$ amplitudes add to the CCD equation\n", + "\n", + "$\\boldsymbol{P}(ij) \\big \\{\\langle ab||cj \\rangle t^c_i \\big \\} - \\boldsymbol{P}(ab) \\big \\{\\langle ib||cj \\rangle t^a_k \\big \\} - \\boldsymbol{P}(ij)\\boldsymbol{P}(ab) \\big \\{ \\langle kb||cj \\rangle t^c_i t^a_k \\big \\} - \\frac{1}{2} \\boldsymbol{P}(ab) \\big \\{ t^{ac}_{ij} t^b_k f^c_k \\big \\} - \\frac{1}{2} \\boldsymbol{P}(ij) \\big \\{ t^{ab}_{ik} t^c_j f^c_k \\big \\} $" + ] + }, + { + "cell_type": "markdown", + "id": "de7bf227", + "metadata": {}, + "source": [ + "__CCSD benchmark__\n", + "\n", + "The CCSD expressions above are coded in _harpy_ modules 'cc/scc' (explicit loops) and 'cc/fcc' (einsum and intermediates) with comparison to Hirata given below\n", + "\n", + "| | |\n", + "|:--|:--|\n", + "|__Hirata CCSD__ | -0.0501273286 |\n", + "|Harpy scc | -0.05012733|\n", + "|Harpy fcc | -0.05012733 |\n", + "\n", + "Code for CCSD generated by symbolic methods (sympy) derived through second quantization can be found at https://github.com/pwborthwick/cogus/blob/main/codes/ccsd.py (-0.0501273292). CCSDT code is also available.\n", + "\n", + "__linear CCD and linear CCSD__\n", + "\n", + "For linear CCD (LCCD) we only use diagrams that are linear in $t^{ab}_{ij}$, explicitly that is\n", + "\n", + "$D_1$, $D_{2a}$, $D_{2b}$, $D_{2c}$, $D_{2d}$ and $D_{2e}$.\n", + "\n", + "For linear CCSD (LCCSD) we additionally use diagrams linear in $t^a_i$, explicitly that is\n", + "\n", + "$D_1$, $D_{2a}$, $D_{2b}$, $D_{2c}$, $D_{2d}$, $D_{2e}$, $D_{4a}$ and $D_{4b}$. $S_1$, $S_{2a}$, $S_{2b}$, $S_{2c}$, $S_{3a}$, $S_{3b}$ and $S_{3c}$ \n", + "\n", + "The linear versions are coded in _harpy_ 'cc/scc' (explicit loops) and 'cc/fcc' (einsum and intermediates) with comparison to Hirata given below\n", + "\n", + "| | |\n", + "|:--|:--|\n", + "|__Hirata LCCD__ | -0.0505753360 |\n", + "|Harpy scc | -0.05057534|\n", + "|Harpy fcc | -0.05057534 |\n", + "|__Hirata LCCSD__ | -0.0508915694|\n", + "|Harpy scc | -0.05089157|\n", + "|Harpy fcc | -0.05089157 |\n", + "\n", + "Codes for linear methods generated by symbolic methods (sympy) derived through second quantization can be found at https://github.com/pwborthwick/cogus/blob/main/codes/lccd.py and https://github.com/pwborthwick/cogus/blob/main/codes/lccsd.py (-0.0505753368 and 0.0508915702)." + ] + }, + { + "cell_type": "markdown", + "id": "3e05b438", + "metadata": {}, + "source": [ + "__The CC2 Approximation__\n", + "\n", + "The coupled-cluster wavefunction is written as $\\Psi = e^{\\hat{T}} \\Phi_0$, $\\Phi_0 = |0 \\rangle$ is the reference (ground-state) and $\\hat{T} =\\displaystyle \\sum_n \\hat{T}_n$. Here $\\hat{T}_n$ are the n-body cluster operators defined by $\\hat{T}_n = \\frac{1}{(n!)^2} \\displaystyle \\sum_{ij...ab...} t^{ab...}_{ij...} \\big \\{a^\\dagger i b^\\dagger j... \\big \\}$\n", + "\n", + "$\\big \\{ \\big \\}$ denotes normal-ordering and $^\\dagger$ denotes a creation operator.\n", + "\n", + "For CCSD we truncate $\\hat{T} = \\hat{T}_1 + \\hat{T}_2$ The equations we are solving are then\n", + "\n", + "$\\langle 0| \\hat{H}_N (\\hat{T}_1 + \\hat{T}_2 + \\frac{1}{2}\\hat{T}_1^2)|0 \\rangle_c = \\Delta E$ (energy)\n", + "\n", + "$\\langle ^a_i | \\hat{H}_N(1 + \\hat{T}_1 + \\hat{T}_2 + \\hat{T}_1 \\hat{T}_2 + \\frac{1}{2}\\hat{T}_1^2 + \\frac{1}{3!}\\hat{T}_1^3)|0 \\rangle_c = 0$ (singles amplitudes)\n", + "\n", + "$\\langle ^{ab}_{ij} | \\hat{H}_N(1 + \\hat{T}_1 + \\hat{T}_2 + \\frac{1}{2}\\hat{T}_1^2 + \\frac{1}{2}\\hat{T}_2^2 + \\hat{T}_1 \\hat{T}_2 + \\frac{1}{2}\\hat{T}_1^2 \\hat{T}_2+ \\frac{1}{3!}\\hat{T}_1^3 + \\frac{1}{4!}\\hat{T}_1^4))|0 \\rangle_c = 0$ (doubles amplitudes)\n", + "\n", + "Here c in $\\langle \\rangle_c$ indicates we are restricted to connected diagrams and $H_N$ the normal ordered Hamiltonian $= F_N + V_N$\n", + "\n", + "In the CC2 approximation the singles amplitudes are the same as above ie CCSD, however the doubles amplitudes are given by $\\langle ^{ab}_{ij}|\\hat{H}_N e^{\\hat{T}_1} + \\hat{F}_N e^{\\hat{T}_2} |0 \\rangle = 0$ In practice this means we use only diagrams that have (i) only single amplitudes and (ii) only Fock operator acting on a double amplitude ie (i) $D_1$, $D_{4a}$, $D_{4b}$, $D_{6a}$, $D_{6b}$, $D_{6c}$, $D_{8a}$, $D_{8b}$ and $D_9$ (ii) $D_{2a}$ and $D_{2b}$.\n", + "\n", + "The doubles are then\n", + "\n", + "$\\langle ab||ij \\rangle + \\boldsymbol{P}(ij)\\big \\{ \\displaystyle \\sum_{c} \\langle ab||cj \\rangle t^c_i \\big \\} - \\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_k \\langle kb||ij \\rangle t^a_k \\big \\}+ \\boldsymbol{P}(ab) \\big \\{\\displaystyle \\sum_{c} f^c_b t^{ac}_{ij}\\big \\} - \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{k} f^k_j t^{ab}_{ik} \\big \\} + \\displaystyle \\sum_{cd} \\langle ab||cd \\rangle t^c_i t^d_j$\n", + "\n", + "$+\\displaystyle \\sum_{kl} \\langle kl||ij \\rangle t^a_k t^b_l - \\boldsymbol{P}(ij) \\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{kc} \\langle kb||cj \\rangle t^c_i t^a_k \\big \\} +\\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{kcd} \\langle kb||cd \\rangle t^c_i t^a_k t^d_j \\big \\}+\\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{klc} \\langle kl||cj \\rangle t^c_i t^a_k t^b_l \\big \\} + \\displaystyle \\sum_{klcd} \\langle kl||cd \\rangle t^c_i t^d_j t^a_k t^b_l = 0$\n", + "\n", + "CC2 is coded in _harpy_ 'cc/scc' (explicit loops) and 'cc/fcc' (einsum) \n", + "\n", + "| | |\n", + "|:--|:--|\n", + "|Harpy scc | -0.03633142|\n", + "|Harpy fcc | -0.03633142 |\n", + "\n", + "Code for CC2 generated by symbolic methods (sympy) derived through second quantization can be found at https://github.com/pwborthwick/cogus/blob/main/codes/cc2.py (-0.0360000096). CC3 code is also available." + ] + }, + { + "cell_type": "markdown", + "id": "e8dec093", + "metadata": {}, + "source": [ + "__perturbative triples ccsd(T)__\n", + "\n", + "The perturbative triples correction is a non-iterative triples addition to the CCSD energy. There are two parts \n", + "\n", + "(i) disconnected triples - $ \\boldsymbol{P}(i/jk) \\boldsymbol{P}(a/bc) \\big \\{\\langle jk||bc \\rangle t^a_i \\big \\}$\n", + "\n", + "(ii) connected triples - $ \\boldsymbol{P}(i/jk) \\boldsymbol{P}(a/bc) \\big \\{ \\displaystyle \\sum_e \\langle ei||bc \\rangle t^{ae}_{jk} - \\displaystyle \\sum_m \\langle ma||jk \\rangle t^{bc}_{im} \\big \\}$\n", + "\n", + "where $\\boldsymbol{P}(p/qr) = f(pqr) - f(qpr) - f(rqp)$. The total (T) energy correction is\n", + "\n", + "$\\scriptsize{\\frac{1}{(3!)^2}\\displaystyle \\sum_{ijkabc} \\big [ \\big (\\boldsymbol{P}(i/jk) \\boldsymbol{P}(a/bc) \\big \\{\\langle jk||bc \\rangle t^a_i \\big \\} + \\boldsymbol{P}(i/jk) \\boldsymbol{P}(a/bc) \\big \\{ \\displaystyle \\sum_e \\langle ei||bc \\rangle t^{ae}_{jk} - \\displaystyle \\sum_m \\langle ma||jk \\rangle t^{bc}_{im} \\big \\} \\big ) \\big(\\boldsymbol{P}(i/jk) \\boldsymbol{P}(a/bc) \\big \\{ \\displaystyle \\sum_e \\langle ei||bc \\rangle t^{ae}_{jk} - \\displaystyle \\sum_m \\langle ma||jk \\rangle t^{bc}_{im} \\big \\} \\big )\\frac{1}{\\epsilon_i + \\epsilon_j + \\epsilon_k - \\epsilon_a - \\epsilon_b - \\epsilon_c} }$\n", + "\n", + "That is $\\frac{1}{36}$th times the sum of the connected and disconnected triples times the connected triples divided by the triples orbital energies.\n", + "\n", + "CCSD(T) is coded in _harpy_ 'cc/scc' (explicit loops) and 'cc/fcc' (einsum) (there is no Hirata benchmark), these are the _harpy_ values for Hirata $H_2O$ in STO-3G\n", + "\n", + "| | |\n", + "|:--|:--|\n", + "|Harpy scc | -0.00007504|\n", + "|Harpy fcc | -0.00007504 |\n", + "\n", + "Code for CCSD(T) generated by symbolic methods (sympy) derived through second quantization can be found at https://github.com/pwborthwick/cogus/blob/main/codes/ccsd_t.py (-7.50413e-05)." + ] + }, + { + "cell_type": "markdown", + "id": "1f475f21", + "metadata": {}, + "source": [ + "__Quadratic Configuration Interaction Single and Doubles (QCISD)__\n", + "\n", + "This is defined as\n", + "\n", + "$$E_{qcisd} = \\langle \\Phi_0 \\vert \\hat{H} \\vert (1 + T_2) \\vert \\Phi_0 \\rangle_C$$\n", + "$$0 = \\langle \\Phi^a_i \\vert \\hat{H} \\vert (T_1 + T_2 + T_1 T_2) \\vert \\Phi_0 \\rangle_C$$\n", + "$$0 = \\langle \\Phi^{ab}_{ij} \\vert \\hat{H} \\vert (1 + T_1 + T_2 + \\frac{1}{2}T_2^2) \\vert \\Phi_0 \\rangle_C$$\n", + "\n", + "The singles uses diagrams $S_{2a-2c}$, $S_{3a-3c}$ and $S_{4a-4c}$, the doubles using diagrams $D_1$, $D_{2a-2e}$, $D_{3a-3c}$ and $D_{4a-4b}$\n", + "\n", + "| | |\n", + "|:--|:--|\n", + "|__Hirata QCISD__ | -0.05014527 |\n", + "|Harpy fcc | -0.05014527 |\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "30085416", + "metadata": {}, + "source": [ + "__ΛCCSD__\n", + "\n", + "The $\\Lambda$ de-excitation operators are defined $\\Lambda_n = \\frac{1}{(n!)^2} \\displaystyle \\sum_{ij...ab...} \\lambda^{ij...}_{ab...} \\{i^\\dagger a j^\\dagger b... \\}$\n", + "\n", + "The $\\Lambda$ amplitudes are given by\n", + "\n", + "$\\langle 0|\\hat{H}_N e^{\\hat{T}} | ^a_i \\rangle_c + \\langle 0|\\Lambda(\\hat{H}_N e^{\\hat{T}})_c|^a_i \\rangle_c =0~~~$ and $~~~\\langle 0|\\hat{H}_N e^{\\hat{T}} | ^{ab}_{ij} \\rangle_c + \\langle 0|\\Lambda\\hat{H}_N e^{\\hat{T}}|^{ab}_{ij} \\rangle_c + \\displaystyle \\sum_{c=a,b~~k=i,j} \\langle 0|\\hat{H}_N e^{\\hat{T}}|^c_k \\rangle \\langle ^c_k|\\Lambda|^{ab}_{ij} \\rangle = 0$\n", + "\n", + "The intermediates for $\\Lambda$ are modified to\n", + "\n", + "$F^\\lambda_{ac} = F_{ac} - \\frac{1}{2} t^a_k F_{ck}$\n", + "\n", + "$F^\\lambda_{ki} = F_{ki} + \\frac{1}{2} t^c_i F_{ck}$\n", + "\n", + "$F^\\lambda_{ck} = F_{ck}$\n", + "\n", + "$W^\\lambda_{klij} = W_{klij} + \\frac{1}{4} \\tau^{cd}_{ij} \\langle kl||cd\\rangle$\n", + "\n", + "$W^\\lambda_{abcd} = W_{abcd} + \\frac{1}{4} \\tau^{ab}_{kl} \\langle kl||cd\\rangle$\n", + "\n", + "$W^\\lambda_{kbcj} = W_{kbcj} - \\frac{1}{2} t^{db}_{jl} \\langle kl||cd\\rangle$\n", + "\n", + "additionally we define\n", + "\n", + "$W^\\lambda_{klic} = \\langle kl||ic \\rangle + t^d_i \\langle kl||dc \\rangle$\n", + "\n", + "$W^\\lambda_{akcd} = \\langle ak||cd \\rangle - t^a_l \\langle kl||dc \\rangle$\n", + "\n", + "$W^\\lambda_{kbij} = \\langle kb||ij \\rangle - F^\\lambda_{ck}t^{bc}_{ij}-t^b_l W^\\lambda_{klij}+\\frac{1}{2}\\langle kb||cd \\rangle \\tau^{cd}_{ij} + \\boldsymbol{P}(ij)\\big \\{\\langle kl||ic \\rangle t^{bc}_{jl} \\big \\} + \\boldsymbol{P}(ij)\\big \\{ t^c_i \\big ( \\langle kb||cj \\rangle - t^{bd}_{lj}\\langle kl||cd \\rangle \\big) \\big \\}$\n", + "\n", + "$W^\\lambda_{abci} = \\langle ab||ci \\rangle - F^\\lambda_{ck}t^{ab}_{ki} + t^d_i W^\\lambda_{abcd}+\\frac{1}{2}\\langle kl||ci \\rangle \\tau^{ab}_{kl} - \\boldsymbol{P}(ab)\\big \\{\\langle kb||cd \\rangle t^{ad}_{ki} \\big \\} - \\boldsymbol{P}(ab)\\big \\{ t^a_k \\big ( \\langle kb||ci \\rangle - t^{bd}_{li}\\langle kl||cd \\rangle \\big) \\big \\}$ \n", + "\n", + "$G^\\lambda_{ac} = -\\frac{1}{2}t^{cd}_{kl} \\lambda^{kl}_{ad}$\n", + "\n", + "$G^\\lambda_{ki} = \\frac{1}{2}t^{cd}_{kl} \\lambda^{il}_{cd}$\n", + "\n", + "with these the $\\Lambda$ amplitudes are given by\n", + "\n", + "$F^\\lambda_{ia} + \\lambda^i_c F^\\lambda_{ca} - \\lambda^k_a F^\\lambda_{ik} + \\lambda^k_c W^\\lambda_{icak} + \\frac{1}{2}\\lambda^{ik}_{cd} W^\\lambda_{cdak} - \\frac{1}{2}\\lambda^{kl}_{ac} W^\\lambda_{ickl} - G^\\lambda_{cd} W^\\lambda_{cida} - G^\\lambda_{kl} W^\\lambda_{kila} = 0$\n", + "\n", + "$\\langle ij||ab \\rangle + \\boldsymbol{P}(ab)\\big\\{ \\lambda^{ij}_{ac} F^\\lambda_{cb} \\big \\} - \\boldsymbol{P}(ij)\\big\\{ \\lambda^{ik}_{ab} F^\\lambda_{jk} \\big \\} + \\frac{1}{2} \\lambda^{kl}_{ab} W^\\lambda_{ijkl} + \\frac{1}{2} \\lambda^{ij}_{cd} W^\\lambda_{cdab} + \\boldsymbol{P}(ij) \\big \\{ \\lambda^i_c W^\\lambda_{cjab} \\big \\} - \\boldsymbol{P}(ab) \\big \\{ \\lambda^k_a W^\\lambda_{ijkb} \\big \\} + \\boldsymbol{P}(ij)\\boldsymbol{P}(ab) \\big \\{ \\lambda^{ik}_{ac} W^\\lambda_{jcbk} \\big \\} +$\n", + "$\\boldsymbol{P}(ij)\\boldsymbol{P}(ab) \\big \\{ \\lambda^{i}_{a} F^\\lambda_{jb} \\big \\} + \\boldsymbol{P}(ab) \\big \\{\\langle ij||ac \\rangle G^\\lambda_{bc}\\big \\} - \\boldsymbol{P}(ij) \\big \\{ \\langle ik||ab \\rangle G^\\lambda_{kj}\\big \\} = 0$\n", + "\n", + "The $\\Lambda$ psuedo-energy is given by $E_\\lambda = \\lambda^i_a f^a_i + \\frac{1}{4} \\lambda^{ij}_{ab} \\langle ab ||ij \\rangle$\n", + "\n", + "The initial $t^a_i$ and $t^{ab}_{ij}$ amplitudes for a $\\Lambda$ computation are those from a converged CCSD computation, $\\lambda^i_a=(t^a_i)^T$ and $\\lambda^{ij}_{ab} = (t^{ab}_{ij})^T$\n", + "\n", + "$\\Lambda$CCSD is coded in _harpy_ 'cc/scc' (explicit loops) and 'cc/fcc' (einsum) (there is no Hirata benchmark), these are the pseudo-energy _harpy_ values for Hirata $H_2O$ in STO-3G\n", + "\n", + "| | |\n", + "|:--|:--|\n", + "|Harpy scc | -0.04938752|\n", + "|Harpy fcc | -0.04938753 |\n", + "\n", + "Code for $\\Lambda$CCSD generated by symbolic methods (sympy) derived through second quantization can be found at location given below (-0.049387528749).\n", + "\n", + "The Lagrangian energy for $\\Lambda$CCSD is given by $\\epsilon_{cc} + \\lambda^i_a t^a_i \\epsilon^{ia} + \\lambda^{ij}_{ab} \\epsilon^{ijab}$ (the $f^p_p$ are replaced for the calculation of $\\boldsymbol{F}_{ac}$ and $\\boldsymbol{F}_{ki}$ in the t-amplitudes - see code in _harpy/cc/fcc_). The _harpy/cc/fcc_ code has been tested against _harpy/cogus/ccsd_lambda_ which in turn has been tested against code from _pdaggerq_ (https://github.com/edeprince3/pdaggerq). " + ] + }, + { + "cell_type": "markdown", + "id": "124ca388", + "metadata": {}, + "source": [ + "__the $\\Lambda$CCSD(T) correction__\n", + "\n", + "In a similar way to CCSD a perturbative triples correction can be made to $\\Lambda$CCSD as follows\n", + "\n", + "Defining $\\lambda^{ijk}_{abc} = \\boldsymbol{P}(k/ij)\\boldsymbol{P}(a/bc) \\big \\{\\displaystyle \\sum_d \\langle dk||bc \\rangle \\lambda^{ij}_{ad}\\big \\} - \\boldsymbol{P}(i/jk)\\boldsymbol{P}(c/ab)\\big \\{\\displaystyle \\sum_k \\langle jk||lc \\rangle \\lambda^{il}_{ab}\\big \\} + \\boldsymbol{P}(i/ij)\\boldsymbol{P}(a/bc) \\big \\{ \\langle bc||jk \\rangle \\lambda^i_a \\big \\} + \\boldsymbol{P}(i/ij)\\boldsymbol{P}(a/bc) \\big \\{\\lambda^{jk}_{bc} f^i_a \\big \\} $\n", + "and $~~~~~~~t^{abc}_{ijk} = \\boldsymbol{P}(k/ij)\\boldsymbol{P}(a/bc) \\big \\{\\displaystyle \\sum_d \\langle bc|dk \\rangle t^{ad}_{ij}\\big \\} - \\boldsymbol{P}(i/jk)\\boldsymbol{P}(c/ab)\\big \\{\\displaystyle \\sum_k \\langle lc||jk \\rangle \\lambda^{ab}_{il} \\big \\} $\n", + "\n", + "The $\\Lambda$CCSD(T) correction is $\\Delta E^{\\Lambda CCSD(T)} = \\frac{1}{(3!)^2} \\lambda^{ijk}_{abc} t^{abc}_{ijk} \\frac{1}{\\epsilon^{ijk}_{abc}}$\n", + "\n", + "$\\boldsymbol{P}(i/jk)$ is defined as $ijk - jik - kji$" + ] + }, + { + "attachments": { + "fynl.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "4b26c32c", + "metadata": {}, + "source": [ + "__Λ-diagrams__\n", + "The singles $\\lambda$ are\n", + "![fynl.png](attachment:fynl.png)\n", + "which are interpreted as (the superscript numerals refer to the line in the symbolically generated code (https://github.com/pwborthwick/cogus/blob/main/codes/ccsd_lambda.pycorresponding) corresponding to that diagram). __j__ and __b__ have been used to label internal (summed) lines in some diagrams to keep the label set minimal. Repeated indices are summed.\n", + "\n", + "$1~~f^a_i~^{166}~~~~~2~~t^c_k \\langle ik||ac \\rangle~^{40}~~~~~3~~\\lambda^i_c f^a_c~^{34}~~4~~~~~\\lambda^k_a f^k_i~~^{46}~~~~~5~~\\lambda^k_c \\langle ci||ka \\rangle~~^{37}~~~~~6~~-\\lambda^k_a t^c_k f^c_i~~^{88}~~~~~7~~-\\lambda^i_c t^c_k f^a_k~~^{91}~~~~~8~~\\lambda^i_c t^d_k \\langle ck||ad \\rangle~~^{67}$\n", + "$9~~-\\lambda^k_a t^c_l \\langle il||kc \\rangle~~^{61}~~~~~10~~\\lambda^k_d t^c_k \\langle da||ci \\rangle ~~^{52}~~~~~11~~-\\lambda^k_c t^c_l \\langle li||ka \\rangle~~^{94}~~~~~12~~\\lambda^k_c t^{cd}_{kl} \\langle li||da \\rangle~~^{58}~~~~~13~~-\\frac{1}{2}\\lambda^k_a t^{cd}_{kl} \\langle il||cd \\rangle~~^{76}$\n", + "$14~~-\\frac{1}{2} \\lambda^i_c t^{cd}_{kl} \\langle kl||ad \\rangle~~^{85}~~~~~15~~-\\lambda^l_c t^c_k t^d_l \\langle ki||da \\rangle~~^{130}~~~~~16~~-\\lambda^k_a t^c_k t^d_l \\langle il||cd \\rangle ~~^{115}~~~~~17~~-\\lambda^i_c t^c_k t^d_l \\langle kl||ad \\rangle~~^{118}~~~~~18~~\\frac{1}{2}^{il}_{cd}\\langle cd||al \\rangle~~^{43}$\n", + "$19~~-\\frac{1}{2}\\lambda^{kl}_{ad} \\langle id||kl \\rangle~~^{49}~~~~~20~~ \\frac{1}{2} \\lambda^{ij}_{bc} t^d_j \\langle bc||ad \\rangle~~^{82}~~~~~21~~\\frac{1}{2}\\lambda^{jk}_{ab} t^b_l \\langle il||jk \\rangle~~^{79}~~~~~22~~-\\lambda^{kl}_{ad} t^c_k \\langle id||cl \\rangle~~^{55}~~~~~23~~-\\lambda^{il}_{cd} t^c_k \\langle kd||al \\rangle~~^{97}$\n", + "$24~~-\\frac{1}{2}\\lambda^{kl}_{ca} t^{cd}_{kl} f^d_i~~^{100}~~~~~25~~-\\frac{1}{2}\\lambda^{ki}_{cd} t^{cd}_{kl} f^a_l~~^{103}~~~~~26~~\\frac{1}{2} \\lambda^{ki}_{cd} t^{ca}_{ki} \\langle dl||ab \\rangle~~^{73}~~~~~27~~-\\frac{1}{2} \\lambda^{ki}_{ca} t^{ca}_{kl} \\langle lj||ib \\rangle~~^{106}~~~~~28~~\\lambda^{kj}_{cb} t^{cd}_{kl} \\langle lb||da \\rangle~~^{70}~~~~~$\n", + "$29~~-\\lambda^{ki}_{cb} t^{cd}_{kl} \\langle lj||di \\rangle~~^{64}~~~~~30~~-\\frac{1}{4}\\lambda^{kl}_{ab} t^{cd}_{kl} \\langle ib||cd \\rangle~~^{109}~~~~~31~~\\frac{1}{4} \\lambda^{il}_{cd} t^{cd}_{kj} \\langle kj||al \\rangle ~~^{112}~~~~~32~~-\\lambda^{ij}_{cd} t^d_k t^b_j \\langle ck||ab \\rangle~~^{139}~~~~~33~~\\lambda^{kj}_{ab} t^b_l t^d_j \\langle il||kd \\rangle~~^{136}$\n", + "$34~~\\frac{1}{2} \\lambda^{kl}_{ab} t^c_k t^d_l \\langle ib||cd \\rangle~~^{121}~~~~~35~~-\\frac{1}{2}\\lambda^{ij}_{cd}t^c_k t^d_l \\langle kl||aj \\rangle~~^{151}~~~~~36~~-\\frac{1}{2}\\lambda^{kj}_{ca} t^{cb}_{kj} t^d_l \\langle il||bd \\rangle~~^{124}~~~~~37~~-\\frac{1}{2}\\lambda^{ki}_{cb} t^{cb}_{kj} t^d_l \\langle jl||ad \\rangle~~^{127}$\n", + "$38~~-\\lambda^{jl}_{ad} t^{cd}_{kl} t^b_j \\langle ik||bc \\rangle~~^{133}~~~~~39~~-\\lambda^{il}_{bd} t^{cd}_{kl} t^b_j \\langle jk||ac \\rangle~~^{142}~~~~~40~~\\frac{1}{4}\\lambda^{jk}_{ad} t^{bc}_{jk} t^d_l \\langle il||bc \\rangle~~^{154}~~~~~41~~\\frac{1}{4}\\lambda^{il}_{bc} t^{bc}_{jk} t^d_l \\langle jk||ad \\rangle~~^{157}$\n", + "$42~~-\\frac{1}{2} \\lambda^{kj}_{cb} t^{cd}_{kj} t^b_l \\langle li||da \\rangle~~^{148}~~~~~43~~-\\frac{1}{2}\\lambda^{kj}_{cb} t^{cb}_{kl} t^d_j \\langle li||da \\rangle~~^{145}~~~~~44~~\\frac{1}{2}\\lambda^{kj}_{ab} t^c_k t^d_j t^b_l \\langle il||cd \\rangle~~^{160}~~~~~45~~\\frac{1}{2}\\lambda^{ij}_{cb}t^c_k t^d_j t^b_l \\langle kl||ad \\rangle~~^{163}$" + ] + }, + { + "attachments": { + "fynd.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "38aa4673", + "metadata": {}, + "source": [ + "The doubles $\\lambda$ are (not diagram 33)\n", + "![fynd.png](attachment:fynd.png)\n", + "$1~~\\langle ij||ab \\rangle~~^{295}~~~~~2~~\\boldsymbol{P}(ij)\\boldsymbol{P}(ab)\\{f^a_i \\lambda^j_b\\}~~^{213}~~~~~3~~\\boldsymbol{P}(ij)\\boldsymbol{P}(ab)\\{\\lambda^j_b t^c_k \\langle ik||ac \\rangle \\}~~^{271}~~~~~4~~\\boldsymbol{P}(ij)\\{\\lambda^i_c \\langle cj||ab \\rangle\\}~~^{189}~~~~~5~~\\boldsymbol{P}(ab)\\{-\\lambda^k_a \\langle ij||kb \\rangle \\}~~^{197}$\n", + "$6~~\\boldsymbol{P}(ij)\\{-\\lambda^i_c t^c_k \\langle kj||ab \\rangle \\}~~^{233}~~~~~7~~\\boldsymbol{P}(ab)\\{-\\lambda^k_a t^c_k \\langle ij||cb \\rangle \\}~~^{229}~~~~~8~~\\boldsymbol{P}(ab) \\{\\lambda^{ij}_{ac} f^b_c \\}~~^{193}~~~~~9~~\\boldsymbol{P}(ij)\\{-\\lambda^{ik}_{ab} f^k_j \\}~~^{185}$\n", + "$10~~\\boldsymbol{P}(ij)\\boldsymbol{P}(ab) \\{\\lambda^{ik}_{ac} \\langle cj||kb \\rangle \\}~~^{225}~~~~~11~~\\frac{1}{2}\\lambda^{ij}_{cd} \\langle cd||ab \\rangle~~^{182}~~~~~12~~\\frac{1}{2}\\lambda^{kl}_{ab} \\langle ij||kl \\rangle~~^{179}~~~~~13~~\\boldsymbol{P}(ij)\\{-\\lambda^{ik}_{ab} t^c_k f^c_j \\}~~^{217}~~~~~14~~\\boldsymbol{P}(ab)\\{ -\\lambda^{ij}_{ac} t^c_k f^b_k \\}~~^{221}$\n", + "$15~~\\boldsymbol{P}(ab)\\{\\lambda^{ij}_{ac} t^d_k\\langle ck||bd \\rangle \\}~~^{241}~~~~~16~~\\boldsymbol{P}(ij)\\{-\\lambda^{ik}_{ab} t^c_l \\langle jl||kc \\rangle \\}~~^{237}~~~~~~17~~\\boldsymbol{P}(ij)\\boldsymbol{P}(ab) \\{\\lambda^{ik}_{ac} t^d_k \\langle cj||db \\rangle \\}~~^{267}~~~~~18~~\\boldsymbol{P}(ij)\\boldsymbol{P}(ab)\\{-\\lambda^{ik}_{ac}t^c_l \\langle lj||kb \\rangle \\}~~^{283} $\n", + "$19~~ -\\lambda^{ij}_{cd} t^c_k \\langle kd||ab \\rangle ~~^{204}~~~~~20~~\\lambda^{kl}_{ab} t^c_k \\langle ij||cl \\rangle ~~^{201}~~~~~21~~\\boldsymbol{P}(ij)\\big \\{-\\frac{1}{2}\\lambda^{ik}_{ab} t^{cd}_{kl}\\langle jl||cd \\rangle \\big \\}~~^{256}~~22~~\\boldsymbol{P}(ab)\\big \\{-\\frac{1}{2}\\lambda^{ij}_{ac} t^{cd}_{kl}\\langle kl||bd \\rangle \\big \\}~~^{263}$\n", + "$23~~\\boldsymbol{P}(ab) \\big \\{ -\\frac{1}{2} \\lambda^{kl}_{ca} t^{cd}_{kl} \\langle ij||db \\rangle \\big \\}~~^{245}~~~~~24~~\\boldsymbol{P}(ij) \\big \\{ -\\frac{1}{2} \\lambda^{ki}_{cd} t^{cd}_{kl} \\langle lj||ab \\rangle \\big \\}~~^{252}~~25~~\\boldsymbol{P}(ij)\\boldsymbol{P}(ab)\\big \\{\\lambda^{ik}_{ac} t^{cd}_{kl} \\langle lj||db \\rangle \\big \\}~~^{275}~~~~~26~~\\frac{1}{4}\\lambda^{kl}_{ab}t^{cd}_{kl} \\langle ij||cd \\rangle~~^{207}$\n", + "$27~~\\frac{1}{4}\\lambda^{ij}_{cd}t^{cd}_{kl} \\langle kl||ab \\rangle~~^{210}~~~~~28~~\\boldsymbol{P}(ij)\\big \\{-\\lambda^{ik}_{ab} t^c_k t^d_l \\langle jl||cd \\rangle \\big \\}~~^{279}~~~~~29~~\\boldsymbol{P}(ab)\\big \\{-\\lambda^{ij}_{ac} t^c_k t^d_l \\langle kl||bd \\rangle \\big \\}~~^{287}~~~~~30~~\\boldsymbol{P}(ij)\\boldsymbol{P}(ab)\\big \\{-\\lambda^{ik}_{ad}t^c_k t^d_l \\langle lj||cb \\rangle \\big \\}~~^{291}$\n", + "$31~~\\frac{1}{2}\\lambda^{kl}_{ab} t^c_k t^d_l \\langle ij||cd \\rangle~~^{249}~~~~~32~~\\frac{1}{2}\\lambda^{ij}_{cd} t^c_k t^d_l \\langle kl||ab \\rangle~~^{260}$" + ] + }, + { + "attachments": { + "feynd1.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "d62ff623", + "metadata": {}, + "source": [ + "__the CCSD one-body response density matrix__\n", + "\n", + "An element of the n-body response density matrix is defined as $(\\gamma^{(n)})_{pq} = \\langle0 |(1 + \\Lambda) e^{T} \\{p^\\dagger q \\} e^T|0 \\rangle$. Diagrammatically at CCSD level for $\\gamma_{ab}$ we have\n", + "![feynd1.png](attachment:feynd1.png)\n", + "$20~~\\displaystyle \\sum_k \\lambda^k_a t^b_k~~~~~21~~\\frac{1}{2}\\displaystyle \\sum_{klc} \\lambda^{kl}_{ac} t^{bc}_{kl}$\n", + "\n", + "The diagrams for $\\gamma_{ij}$ are inverted versions of $\\gamma_{ab}$ above giving $\\displaystyle \\sum_c -\\lambda^i_c t^c_j$ and $-\\frac{1}{2}\\displaystyle \\sum_{kcd} \\lambda^{ik}_{ab} t^{ab}_{jk}$\n", + "\n", + "For $\\gamma_{ia}$ the diagrams are" + ] + }, + { + "attachments": { + "fynd2-3.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "dabe066c", + "metadata": {}, + "source": [ + "![fynd2-3.png](attachment:fynd2-3.png)\n", + "$1~~t^a_i~~~~~2~~\\displaystyle \\sum_{kc} \\lambda^k_c t^{ac}_{ik}~~~~~3~~-\\displaystyle \\sum_{kc} \\lambda^k_c t^c_i t^a_k~~~~~4~~-\\frac{1}{2}\\displaystyle \\sum_{kc} \\lambda^{jk}_{bc} t^{bc}_{ik} t^a_j~~~~~5~~-\\frac{1}{2}\\displaystyle \\sum_{kc} \\lambda^{jk}_{bc} t^{ac}_{jk} t^b_i$\n", + "\n", + "and $\\gamma_{ai} = \\lambda^i_a$\n", + "\n", + "The one-electron energy is then $\\epsilon^1 = h^c_{ij} \\gamma_{ij}$ where $h^c$ is the core Hamiltonian (j+k) in the molecular spin basis." + ] + }, + { + "cell_type": "markdown", + "id": "2f40d917", + "metadata": {}, + "source": [ + "__EOM-CCSD__\n", + "\n", + "The equation-of-motion version of CCSD is defined for electron excitation as\n", + "\n", + "Define an excitation operator $~~R_k = \\hat{R}_k = \\frac{1}{(k!)^2} \\displaystyle \\sum_{ij...ab...}R^{ab...}_{ij...}a^\\dagger i b^\\dagger j... $ then $R_k |\\psi_o \\rangle = |\\psi_k \\rangle$ and the principle equation is $[\\hat{H}, \\hat{R}_k] |\\psi_0 \\rangle = \\omega_k \\hat{R}_k |\\psi_0 \\rangle$ with $\\omega_k = E_k - E_0$ and $\\hat{H} = e^{-\\hat{T}}H_N e^{\\hat{T}}$ ($H_N$ is normal-ordered Hamiltonian). The equations for $\\hat{H}$ are given below\n", + "\n", + "+ The singles-singles block $\\hat{H}_{\\scriptsize {SS}}$\n", + "\n", + " $[\\hat{H}_{\\scriptsize {SS}}~C]^a_i = \\displaystyle \\sum_c F_{ac} C^c_i - \\displaystyle \\sum_k F_{ki} C^a_k + \\displaystyle \\sum_{kc} W_{akic} C^c_k = \\displaystyle \\sum_c F_{ac} C^c_k \\delta_{ik} - \\displaystyle \\sum_k F_{ki} C^c_k \\delta_{ac} + \\displaystyle \\sum_{kc} W_{akic} C^c_k$\n", + "\n", + " $~~\\boldsymbol{F_{ac} \\delta_{ik}}$ \n", + " \n", + " $f^a_c \\delta_{ik}~~~~~-t^a_m f^c_m \\delta_{ik}~~~~~+t^e_m \\langle ma||ec \\rangle \\delta_{ik}~~~~~-\\frac{1}{2}t^{ea}_{nm} \\langle mn||ce \\rangle \\delta_{ik}~~~~~-t^e_n t^a_m \\langle mn||ce \\rangle \\delta_{ik}$\n", + "\n", + " $\\boldsymbol{-F_{ki} \\delta_{ac}}$ \n", + " \n", + " $-f^k_i \\delta_{ac}~~~~~-t^e_i f^e_k \\delta_{ac}~~~~~-t^e_m \\langle km||ie \\rangle \\delta_{ac}~~~~~-\\frac{1}{2}t^{ef}_{im} \\langle km||ef \\rangle \\delta_{ac}~~~~~-t^e_i t^f_m \\langle km||ef \\rangle \\delta_{ac}$\n", + " \n", + " $~~~\\boldsymbol{W_{akic}}$ \n", + " \n", + " $+\\langle ak||ic \\rangle~~~~~+t^e_i \\langle ak||ec \\rangle~~~~~-t^a_m \\langle mk||ic \\rangle~~~~~-t^{ea}_{im}\\langle mk||ec \\rangle~~~~~-t^e_i t^a_m \\langle mk||ec \\rangle$\n", + " \n", + "+ The singles-doubles block $\\hat{H}_{\\scriptsize {SD}}$\n", + "\n", + " $[\\hat{H}_{\\scriptsize {SD}}~C]^a_i = \\displaystyle \\sum_{kc} F_{kc} C^{ac}_{ik} + \\frac{1}{2} \\displaystyle \\sum_{kcd} W_{akcd} C^{cd}_{ik} - \\frac{1}{2} \\displaystyle \\sum_{klc} W_{klic} C^{ac}_{kl}= \\displaystyle \\sum_{ld} F_{ld} C^{cd}_{kl} \\delta_{ac}\\delta_{ik} + \\frac{1}{2} \\displaystyle \\sum_{lcd} W_{alcd} C^{cd}_{kl}\\delta_{ik} - \\frac{1}{2} \\displaystyle \\sum_{kld} W_{klid} C^{cd}_{kl} \\delta_{ac}$\n", + " \n", + " $~~~\\boldsymbol{F_{ld} \\delta_{ac} \\delta_{ik}}$ \n", + " \n", + " $+f^d_l \\delta_{ac} \\delta_{ik}~~~~~+t^e_m \\langle lm||de \\rangle \\delta_{ac} \\delta_{ik}$\n", + " \n", + " $~~~\\boldsymbol{\\frac{1}{2}W_{alcd} \\delta_{ik}}$ \n", + " \n", + " $+\\frac{1}{2} \\langle al||cd \\rangle \\delta_{ik}~~~~~-\\frac{1}{2}t^a_m \\langle ml||cd \\rangle \\delta_{ik}$\n", + " \n", + " $\\boldsymbol{-\\frac{1}{2}W_{klid} \\delta_{ac}}$ \n", + " \n", + " $-\\frac{1}{2} \\langle kl||id \\rangle \\delta_{ac}~~~~~-\\frac{1}{2}t^e_i \\langle kl||ed \\rangle \\delta_{ac}$\n", + " \n", + "+ The doubles-singles block $\\hat{H}_{\\scriptsize {DS}}$\n", + "\n", + " $[\\hat{H}_{\\scriptsize {DS}}~C]^{ab}_{ij} = \\boldsymbol{P}(ab)\\big \\{ \\displaystyle \\sum_{k} W_{kaij} C^b_k \\big \\} + \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_c W_{abcj} C^c_i \\big \\} + \\boldsymbol{P}(ab)\\big \\{ \\displaystyle \\sum_{kcd} W_{bkdc}t^{ad}_{ij} C^c_k \\big \\} - \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{klc} W_{lkjc} t^{ab}_{il} C^c_k \\big \\}$\n", + " $=\\boldsymbol{P}(ab)\\big \\{ \\displaystyle \\sum_{k} W_{kaij} C^c_k \\delta_{bc}\\big \\} + \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_c W_{abcj} C^c_k \\delta_{ik}\\big \\} + \\boldsymbol{P}(ab)\\big \\{ \\displaystyle \\sum_{kcd} W_{bkdc}t^{ad}_{ij} C^c_k \\big \\} - \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{klc} W_{lkjc} t^{ab}_{il} C^c_k \\big \\}$\n", + " \n", + " $~~~\\boldsymbol{P(ab)\\big \\{ W_{kaij} \\big \\} \\delta_{bc}}$ \n", + " \n", + " $+P(ab)\\big \\{ \\langle ka||ij \\rangle \\delta_{bc} \\big \\}~~~~~+P(ab)P(ij) \\big \\{\\langle km||ie \\rangle t^{ea}_{mj} \\delta_{bc} \\big \\}~~~~~+P(ab) \\big \\{\\frac{1}{2} \\langle ka||ef \\rangle t^{ef}_{ij} \\delta_{bc} \\big \\}~~~~~+P(ab) \\big \\{ \\langle ka||ef \\rangle t^e_i t^f_j \\delta_{bc} \\big \\}$\n", + " $-P(ab) \\big \\{ \\langle km||ij \\rangle t^a_m \\delta_{bc} \\big \\}~~~~~+P(ab)P(ij) \\big \\{ \\langle km||ei \\rangle t^a_m t^e_j \\delta_{bc} \\big \\}~~~~~-P(ab) \\big \\{ \\frac{1}{2} \\langle km||ef \\rangle t^a_m t^{ef}_{ij} \\delta_{bc} \\big \\}~~~~~-P(ab) \\big \\{ \\langle km||ef \\rangle t^a_m t^e_i t^f_j\\delta_{bc} \\big \\}$\n", + " $+P(ij)P(ab) \\big \\{ \\langle ka||ej \\rangle t^e_i \\delta_{bc} \\big \\}~~~~~-P(ij)P(ab) \\big \\{ \\langle km||ef \\rangle t^e_i t^{af}_{mj} \\delta_{bc} \\big \\}~~~~~-P(ab) \\big \\{ f^e_k t^{ae}_{ij} \\delta_{bc} \\big \\}~~~~~-P(ab) \\big \\{ \\langle km||ef \\rangle t^f_m t^{ae}_{ij} \\delta_{bc} \\big \\}$\n", + " \n", + " $~~~\\boldsymbol{P(ij)\\big \\{ W_{abcj} \\big \\} \\delta_{ik}}$ \n", + " \n", + " $+P(ij) \\big \\{ \\langle ab||cj \\rangle \\delta_{ik} \\big \\}~~~~~-P(ij)P(ab) \\big \\{ \\langle bm||ce \\rangle t^{ea}_{mj} \\delta_{ik} \\big \\}~~~~~+P(ij) \\big \\{ \\frac{1}{2} \\langle mn||cj \\rangle t^{ab}_{mn} \\delta_{ik} \\big \\}~~~~~+P(ij) \\big \\{ \\langle mn||cj \\rangle t^a_m t^b_n \\delta_{ik} \\big \\}$\n", + " $+P(ij) \\big \\{ \\langle ab||ce \\rangle t^e_j \\delta_{ik} \\big \\}~~~~~+P(ij)P(ab) \\big \\{ \\langle ma||ce \\rangle t^e_j t^b_m \\delta_{ik} \\big \\}~~~~~+P(ij) \\big \\{ \\frac{1}{2} \\langle mn||ce \\rangle t^{ab}_{mn} t^e_j \\delta_{ik} \\big \\}~~~~~+P(ij) \\big \\{ \\langle mn||ce \\rangle t^a_m t^b_n t^e_j \\delta_{ik} \\big \\}$\n", + " $-P(ij)P(ab) \\big \\{ \\langle mb||cj \\rangle t^a_m \\delta_{ik} \\big \\}~~~~~-P(ij)P(ab) \\big \\{ \\langle mn||ce \\rangle t^{eb}_{nj} t^a_m \\delta_{ik} \\big \\}~~~~~-P(ij) \\big \\{f^c_m t^{ab}_{mj} \\delta_{ik} \\big \\}~~~~~-P(ij) \\big \\{ \\langle mn||ce \\rangle t^{ab}_{mj} t^e_n \\delta_{ik} \\big \\}$\n", + " \n", + " $~~~\\boldsymbol{P(ab) \\big \\{ W_{bkec} t^{ae}_{ij} \\big \\}}$ \n", + " \n", + " $+P(ab) \\big \\{ \\langle bk||ec \\rangle t^{ae}_{ij} \\big \\}~~~~~-P(ab) \\big \\{\\langle mk||ec \\rangle t^{ae}_{ij} t^b_m \\big \\}$\n", + " \n", + " $~~~\\boldsymbol{-P(ij) \\big \\{ W_{mkjc} t^{ab}_{im} \\big \\}}$ \n", + " \n", + " $-P(ij) \\big \\{ \\langle mk||jc \\rangle t^{ab}_{im} \\big \\}~~~~~-P(ij) \\big \\{\\langle mk||ec \\rangle t^{ab}_{im} t^e_j \\big \\}$\n", + " \n", + "+ The doubles-doubles block $\\hat{H}_{\\scriptsize {DD}}$\n", + "\n", + " $[\\hat{H}_{\\scriptsize {DD}}~C]^{ab}_{ij} = \\boldsymbol{P}(ab)\\big \\{ \\displaystyle \\sum_{c} F_{bc} C^{ac}_{ij} \\big \\} - \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{k} F_{kj} C^{ab}_{ik} \\big \\} + \\frac{1}{2} \\displaystyle \\sum_{cd} W_{abcd} C^{cd}_{ij} + \\frac{1}{2} \\displaystyle \\sum_{kl} W_{klij} C^{ab}_{kl} + \\boldsymbol{P}(ij)\\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{kc}W_{bkjc} C^{ac}_{ik} \\big \\}$\n", + " $~~~~~~~~~~~~~~~~~-\\boldsymbol{P}(ab) \\big \\{ \\frac{1}{2}\\displaystyle \\sum_{klcd} W_{lkdc} t^{db}_{ij} C^{ca}_{kl} \\big \\} +\\boldsymbol{P}(ij) \\big \\{ \\frac{1}{2}\\displaystyle \\sum_{klcd} W_{mkdc} t^{ab}_{jm} C^{dc}_{ik} \\big \\} = \\boldsymbol{P}(ab)\\big \\{ \\displaystyle \\sum_{c} F_{bc} C^{cd}_{kl} \\delta_{ad} \\delta_{il} \\delta_{jk}\\big \\} - \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_{k} F_{kj} C^{cd}_{kl} \\delta_{bc} \\delta_{il} \\delta_{jk} \\big \\}$\n", + " $~~~~~~~~~~~~~~~~~+ \\frac{1}{2} \\displaystyle \\sum_{cd} W_{abcd} C^{cd}_{kl} \\delta_{ik} \\delta_{jl} + \\frac{1}{2} \\displaystyle \\sum_{kl} W_{klij} C^{cd}_{kl} \\delta_{ac} \\delta_{bd} + \\boldsymbol{P}(ij)\\boldsymbol{P}(ab) \\big \\{ \\displaystyle \\sum_{kc}W_{bkjc} C^{cd}_{kl} \\delta_{ad} \\delta_{il} \\big \\}-\\boldsymbol{P}(ab) \\big \\{ \\frac{1}{2}\\displaystyle \\sum_{klce} W_{lkec} t^{eb}_{ij} C^{cd}_{kl} \\delta_{ad}\\big \\}$\n", + " $~~~~~~~~~~~~~~~~~+\\boldsymbol{P}(ij) \\big \\{ \\frac{1}{2}\\displaystyle \\sum_{klcd} W_{mkdc} t^{ab}_{jm} C^{cd}_{kl} \\delta_{il}\\big \\}$\n", + " \n", + " $\\boldsymbol{P(ab)\\big \\{ F_{bc} \\delta_{ad} \\delta_{il} \\delta_{jk} \\big \\}}$ \n", + " \n", + " $+\\boldsymbol{P}(ab) \\big \\{ f^b_c \\delta_{jk} \\delta_{il} \\delta_{ad} \\big \\}~~~~~-\\boldsymbol{P}(ab) \\big \\{ f^c_m t^b_m \\delta_{jk} \\delta_{il} \\delta_{ad} \\big \\}~~~~~+\\boldsymbol{P}(ab) \\big \\{ \\langle mb||ec \\rangle t^e_m \\delta_{jk} \\delta_{il} \\delta_{ad} \\big \\}~~~~~-\\boldsymbol{P}(ab) \\big \\{ \\frac{1}{2} \\langle mn||ec \\rangle t^{eb}_{mn} \\delta_{jk} \\delta_{il} \\delta_{ad} \\big \\} \\big \\}$\n", + " $-\\boldsymbol{P}(ab) \\big \\{ \\langle mn||ec \\rangle t^e_m t^b_n \\delta_{jk} \\delta_{il} \\delta_{ad} \\big \\}$\n", + " \n", + " $-\\boldsymbol{P(ij)\\big \\{ F_{jk} \\delta_{ad} \\delta_{il} \\delta_{bc} \\big \\}}$ \n", + " \n", + " $-\\boldsymbol{P}(ij) \\big \\{f^k_j \\delta_{ad} \\delta_{il} \\delta_{bc} \\big \\}~~~~~-\\boldsymbol{P}(ij) \\big \\{f^e_k t^e_j \\delta_{ad} \\delta_{il} \\delta_{bc} \\big \\}~~~~~-\\boldsymbol{P}(ij)\\big\\{\\langle km||je \\rangle t^e_m \\delta_{ad} \\delta_{il} \\delta_{bc} \\big \\}~~~~~+\\boldsymbol{P}(ij) \\big\\{ \\frac{1}{2} \\langle km||ef \\rangle t^{fe}_{jm}\\delta_{ad} \\delta_{il} \\delta_{bc} \\big \\}$\n", + " $+\\boldsymbol{P}(ij) \\big \\{ \\langle km||ef \\rangle t^f_j t^e_m \\delta_{ad} \\delta_{il} \\delta_{bc} \\big \\}$\n", + " \n", + " $+\\boldsymbol{\\frac{1}{2}W_{abcd} \\delta_{ik} \\delta_{jl}}$ \n", + " \n", + " $\\frac{1}{2}\\langle ab||cd \\rangle \\delta_{ik} \\delta_{jl}~~~~~-\\boldsymbol{P}(ab) \\big \\{\\frac{1}{2} \\langle am||cd \\rangle t^b_m \\delta_{ik} \\delta_{jl} \\big \\}~~~~~+\\frac{1}{4} \\langle mn||cd \\rangle t^{ab}_{mn}\\delta_{ik} \\delta_{jl}~~~~~+\\frac{1}{2}\\langle mn||cd \\rangle t^a_m t^b_n \\delta_{ik} \\delta_{jl}$\n", + " \n", + " $+\\boldsymbol{\\frac{1}{2}W_{klij} \\delta_{ac} \\delta_{bd}}$ \n", + " \n", + " $\\frac{1}{2}\\langle kl||ij \\rangle \\delta_{ac} \\delta_{bd}~~~~~+\\boldsymbol{P}(ij) \\big \\{\\frac{1}{2} \\langle kl||ij \\rangle t^e_j \\delta_{ac} \\delta_{bd} \\big \\}~~~~~+\\frac{1}{4} \\langle kl||ef \\rangle t^{ef}_{ij}\\delta_{ac} \\delta_{bd}~~~~~+\\frac{1}{2}\\langle kl||ef \\rangle t^e_i t_j \\delta_{ac} \\delta_{bd}$\n", + " \n", + " $\\boldsymbol{+P(ij)P(ab)\\big \\{ W_{akic} \\delta_{jl} \\delta_{db} \\big \\}}$ \n", + " \n", + " $+\\boldsymbol{P}(ij)\\boldsymbol{P}(ab)\\big \\{ \\langle ak||ic \\rangle \\delta_{jl} \\delta_{db} \\big \\}~~~~~+\\boldsymbol{P}(ij)\\boldsymbol{P}(ab)\\big \\{ \\langle ak||ec \\rangle t^e_i \\delta_{jl} \\delta_{db} \\big \\}~~~~~-\\boldsymbol{P}(ij)\\boldsymbol{P}(ab)\\big \\{ \\langle mk||ic \\rangle t^a_m \\delta_{jl} \\delta_{db} \\big \\}$\n", + " $-\\boldsymbol{P}(ij)\\boldsymbol{P}(ab)\\big \\{ \\langle mk||ec \\rangle t^{ea}_{im} \\delta_{jl} \\delta_{db} \\big \\}~~~~~-\\boldsymbol{P}(ij)\\boldsymbol{P}(ab)\\big \\{ \\langle mk||ec \\rangle t^e_i t^a_m \\delta_{jl} \\delta_{db} \\big \\}$\n", + " \n", + " $\\boldsymbol{-\\frac{1}{2}P(ab) \\big \\{W_{lkec} t^{eb}_{ij} \\delta_{ad} \\big \\}}$ \n", + " \n", + " $-\\frac{1}{2} \\langle lk||ec \\rangle t^{eb}_{ij} \\delta_{ad}$\n", + " \n", + " $\\boldsymbol{+\\frac{1}{2}P(ij) \\big \\{ W_{mkdc} t^{ab}_{jm} \\delta_{il} \\big \\}}$ \n", + " \n", + " $-\\frac{1}{2} \\langle km||cd \\rangle t^{ab}_{mj} \\delta_{il}$\n", + " " + ] + }, + { + "cell_type": "markdown", + "id": "d34660b5", + "metadata": {}, + "source": [ + "The above expressions are coded with explicit for-loops in _harpy.eom_ module. For $H_2 O$ in STO-3G using the Crawford geometry (O-H=2.079 bohr and $H\\hat{O}H = 104^\\circ$) we get for energies in range 5-15 eV and their multiplicities (values agree with Gaussian)\n", + "\n", + "| | | | | | | | | |\n", + "|----|:----:|:----:|:----:|:-----:|:-----:|:-----:|:-----:|:-----:|\n", + "| m | 3 | 1 | 3 | 3 | 1 | 3 | 1 | 3 |\n", + "| eV |7.4901|8.7859|9.8321|10.0122|10.7445|11.6803|13.5204|14.8390|\n", + "\n", + "and with Hirata geometry\n", + "\n", + "| | | | | | |\n", + "|----|:-----:|:-----:|:-----:|:-----:|:-----:|\n", + "| m | 3 | 1 | 3 | 3 | 1 |\n", + "| eV |10.3978|11.9916|13.0743|13.5682|14.5850|\n", + "\n", + "\n", + "__partitioned EOM-CCSD__\n", + "\n", + "In the partitioned-scheme the $H_{DD}$ block is replaced as $[H^0_{DD} C]^{ab}_{ij}=\\boldsymbol{P}(ab) \\big \\{\\displaystyle \\sum_c f^b_c C^{ac}_{ij} \\big \\} - \\boldsymbol{P}(ij) \\big \\{ \\displaystyle \\sum_k f^k_j C^{ab}_{ik}\\big \\}$\n", + "\n", + "With Crawford geometry EOM-CCSD(P)\n", + "\n", + "| | | | | | | | | \n", + "|----|:----:|:----:|:-----:|:-----:|:-----:|:-----:|:-----:|\n", + "| m | 3 | 1 | 3 | 3 | 1 | 3 | 1 | \n", + "| eV |8.1562|9.7465|10.2026|10.4751|11.6287|11.7939|14.2558|\n", + "\n", + "and Hirata geometry\n", + "\n", + "| | | | | |\n", + "|----|:-----:|:-----:|:-----:|:-----:|\n", + "| m | 3 | 1 | 3 | 3 |\n", + "| eV |10.8686|12.6844|13.3042|13.9999|\n" + ] + }, + { + "cell_type": "markdown", + "id": "40098e11", + "metadata": {}, + "source": [ + "__unitary coupled-cluster__\n", + "\n", + "The difference in unitary theory is that instead of $e^{T_n}$ ansatz we use a $e^{\\sigma}$ ansatz where $\\sigma$ is anti-hermitian or $\\sigma^\\dagger = - \\sigma$. This is usually taken to be $\\sigma= \\hat{S} - \\hat{S}^\\dagger$ where $\\hat{S}$ is given by expressions similar to $\\hat{T}$ eg $S_1 = \\displaystyle \\sum_{ia} \\sigma^a_i a^\\dagger_a a_i$. The major difference with traditional coupled-cluster is that the Baker-Campbell-Hausdorff does not naturally terminate and approximate schemes must be made. Most schemes are based on using\n", + "\n", + "$\\bar{H} = \\bar{H}_0 + \\bar{H}_1 + \\bar{H}_2 + \\bar{H}_3$ with\n", + "\n", + "$\\bar{H}_0 = \\hat{F} + \\hat{V}$\n", + "\n", + "$\\bar{H}_1 = [\\hat{F}, \\hat{\\sigma}] + \\frac{1}{2}[\\hat{V}, \\hat{\\sigma}] + \\frac{1}{2}[\\hat{V}_R, \\hat{\\sigma}]$\n", + "\n", + "$\\bar{H}_2 = \\frac{1}{12}[[\\hat{V_{ND}}, \\hat{\\sigma}], \\hat{\\sigma}] + \\frac{1}{4}[[\\hat{V}, \\hat{\\sigma}]_R, \\hat{\\sigma}] + \\frac{1}{2}[[\\hat{V}_R, \\hat{\\sigma}]_R, \\hat{\\sigma}]$\n", + "\n", + "$\\bar{H}_3 = \\frac{1}{24}[[[\\hat{V_{ND}}, \\hat{\\sigma}]_R, \\hat{\\sigma}], \\hat{\\sigma}] + \\frac{1}{8}[[[\\hat{V}_R, \\hat{\\sigma}]_R, \\hat{\\sigma}]_R, \\hat{\\sigma}] + \\frac{1}{8}[[[\\hat{V}, \\hat{\\sigma}]_R, \\hat{\\sigma}]_R, \\hat{\\sigma}] - \\frac{1}{24}[[[\\hat{V}, \\hat{\\sigma}]_R, \\hat{\\sigma}], \\hat{\\sigma}] - \\frac{1}{24}[[[\\hat{V}_R, \\hat{\\sigma}]_R, \\hat{\\sigma}], \\hat{\\sigma}] $\n", + "\n", + "The **UCC2** method is $$\\bar{H}_{ucc2} = \\hat{H}_0 + [\\hat{F}, \\hat{\\sigma_1} + \\hat{\\sigma_2}] + \\frac{1}{2}[\\hat{V}, \\hat{\\sigma_2}] + \\frac{1}{2}[\\hat{V}_R, \\hat{\\sigma_2}]$$\n", + "\n", + "The **UCC3** method is $$\\bar{H}_{ucc3} = \\bar{H}_{ucc2} + \\hat{H}_0 + \\frac{1}{2}[\\hat{V}, \\hat{\\sigma_1}] + \\frac{1}{2}[\\hat{V}_R, \\hat{\\sigma_1}] + \\frac{1}{12}[[\\hat{V}_{ND}, \\hat{\\sigma}_2], \\hat{\\sigma}_2]+ \\frac{1}{4}[[\\hat{V}, \\hat{\\sigma}_2]_R, \\hat{\\sigma}_2] + \\frac{1}{4}[[\\hat{V}_R, \\hat{\\sigma}_2]_R, \\hat{\\sigma}_2] $$\n", + "\n", + "Here the subscript $_ND$ means non-diagonal elements so Fock elements with excitation levels of +1 and -1 and 2-body Hamiltonians with excitation levels +2 and -2. $_R$ are the 'rest' of the Hamilitonians.\n", + "\n", + "Using Hirata geometry in sto-3g basis the ucc values calculated by harpy are\n", + "\n", + "| | |\n", + "|:--|:--|\n", + "|Harpy ucc2 | -0.05057534 |\n", + "|Harpy ucc3 | -0.04988577 |\n", + "|Harpy ccsd | -0.05012733 |\n", + "|Harpy ccsdt | -0.05023226 |\n" + ] + }, + { + "attachments": { + "fyn1-4.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "3f7dbe77", + "metadata": {}, + "source": [ + "__Appendix A - Interpreting the Diagrams__\n", + "\n", + "As an example consider diagram $D_{5a}$. We start by noting that there are two lines with pre-defined direction arrows - these are internal lines. They are the first internal lines we encounter moving from left to right so we label the upward particle line using the set $\\{c, d\\}$, as it is the first internal particle we assign the line the label __c__. The downward hole line we label from the set $\\{k, l\\}$ and so we assign the label __k__. If the pre-defined arrows constrain other arrow directions we must allow for that - in this case the first external line must be a down arrow and the second external line must be an up arrow (at each vertex there must be an incoming and outgoing line). External particles are labelled from the set $\\{a, b \\}$ and external holes from the set $\\{i, j \\}$ so we label the first external __i__ and the second __a__. That leaves a pair of external lines to be labelled - we choose (arbitrarily) the leftmost external line to be a hole and so label it __j__ and the last external line is thus a particle and labelled __b__. The final labelling is shown below\n", + "![fyn1-4.png](attachment:fyn1-4.png)\n", + "The diagram can be separated into three contributions as shown to the right of the original labelled diagram. The first sub-diagram represents a single amplitude operator which we write $t^{out}_{in} = t^c_i$. The second sub-diagram respresents a doubles amplitude operator which we write tleft out, right outleft in,right in = $t^{ab}_{kj}$. The third sub-diagram is a Fock operator term $f^c_k$. There are three hole lines __i__, __j__ and __k__ 2 loops - the external lines __j__, __b__ and __i__, __a__ are considered to be joined at infinity - thus the sign of the diagram is $(-1)^{3+2}=-1$. There are no equivalent lines and no equivalent vertices so there is no factor. We can see from the sub-diagrams that if we swap __i__ and __j__ we get a different set of diagrams whereas if we swap __a__ and __b__ we get essentially the same diagram, therefore we must make a permutation $\\boldsymbol{P}(ij)$.\n", + "\n", + "As a second example look at $D_{4a}$. Again there are two lines with pre-defined directions and again these will be labelled __c__ and __k__ as the first internal lines encountered working from the left. labelling the rest of the diagram in order we have" + ] + }, + { + "attachments": { + "fyn2.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "id": "48155e24", + "metadata": {}, + "source": [ + "![fyn2.png](attachment:fyn2.png)\n", + "The first sub-diagram is a single amplitude operator $t^c_i$ and the second sub-diagram is a 2-particle operator which we label $\\langle$ left out, right out || left in , right in $\\rangle = \\langle kl||cd \\rangle$. The third sub-diagram is again a doubles amplitude operator $t^{ad}_{kl}$. There are 3 holes and 2 loop, so $(-1)^{3+2}=-1$. The lines __l__ and __k__ are in the same direction and connect the same nodes and so are equivalent giving a factor of $\\frac{1}{2}$. There are no external lines to swap so there are no possible permutations." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5b8f22a1", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/document/adc.md b/document/adc.md new file mode 100644 index 0000000..9dc775b --- /dev/null +++ b/document/adc.md @@ -0,0 +1,269 @@ +### Algebraic Diagrammatic construction (2) + +This is a class illustrating ADC at the second-order level. Included is a Davidson solver which is essentially the one written by Ollie Backhouse used in the ADC folder of psi4Numpy. The EE equations are taken from ['Development and Implementation of Theoretical Methods for the Description of Electronically Core-Excited States' by Jan Wenzel](https://archiv.ub.uni-heidelberg.de/volltextserver/20514/1/Jan_Wenzel_Thesis.pdf) and [Development and Application of Hermitian Methods for Molecular Properties and Excited Electronic States by Manuel Hodecker](https://core.ac.uk/download/pdf/322693292.pdf). The IP and EA are discussed in [Reduced-cost second-order algebraic-diagrammatic construction method for excitation energies and transition moments, D Mester,P R. Nagy and M Kállay](https://core.ac.uk/download/pdf/154885128.pdf). + +This is an example of the code to run an ADC computation for electron excitation and the associated output for water in sto-3g. The solve parameter is [multiply roots by this factor for number of guess vectors, number of sub-space vectors per root]. + + import rhf + molAtom, molBasis, molData = rhf.mol([]) + e_scf = rhf.scf(molAtom, molBasis, molData, []) + + from basis import electronCount + + charge, electrons = [molData['charge'], electronCount(molAtom, molData['charge'])] + + adc = ADC('ee', rhf, electrons, roots=6, solve=[2, 10]) + + adc_a = adc_analyse(adc) + adc_a.summary() + adc_a.detail(0) + adc_a.detail(3) + adc_a.detail(4) + +and the output with the print threshold set at >0.1. This is a spin-treatment and we print, for the summary, only the first of a multiplicity of roots. However the details can ask for all roots so as we have a multiplicity of 3,1,2(of 3) to get the unique details we must ask for roots 0,3,4. + +``` +moller-plesset(2) energy summary +rhf total energy -74.9420799540 +mp2 correlation energy -0.0491496367 +mp2 corrected energy -74.9912295907 + + n m energy 1h-1p:-----------------------> 2h-2p:----> + Hr eV norm i a norm +-------------------------------------------------------------------------- + 1 3 0.285509 7.769103 0.9847 [ 5, 6 ] 0.7017 0.0153 + 2 1 0.343916 9.358436 0.9784 [ 5, 6 ] 0.6994 0.0216 + 3 3 0.363627 9.894796 0.9949 [ 4, 6 ] 0.6683 0.0051 + +-->state (root) 0 + polarization type = EE energy = 0.285509 eV + multiplicity = 3 +block type excitation +-------------------------------------- +1h-1p α->α [ 5, 6 ] 0.7017 + +-->state (root) 3 + polarization type = EE energy = 0.343916 eV + multiplicity = 1 +block type excitation +-------------------------------------- +1h-1p α->α [ 5, 6 ] 0.6994 + +-->state (root) 4 + polarization type = EE energy = 0.363627 eV + multiplicity = 3 +block type excitation +-------------------------------------- +1h-1p α->α [ 4, 6 ] 0.6683 +1h-1p α->α [ 3, 7 ] 0.2170 +``` + +We can compare with [ADCC](https://adc-connect.org/v0.15.13/index.html) output +``` ++--------------------------------------------------------------+ +| adc2 any , converged | ++--------------------------------------------------------------+ +| # excitation energy osc str |v1|^2 |v2|^2 | +| (au) (eV) | +| 0 0.2855092 7.769102 0.0000 0.9847 0.01528 | +| 1 0.3439185 9.3585 0.0021 0.9784 0.02158 | +| 2 0.3636277 9.894815 0.0000 0.9948 0.005164 | ++--------------------------------------------------------------+ ++---------------------------------------------------+ +| State 0 , 0.2855092 au, 7.769102 eV | ++---------------------------------------------------+ +| HOMO -> LUMO b ->b +0.702 | +| HOMO -> LUMO a ->a -0.702 | + ++---------------------------------------------------+ +| State 1 , 0.3439185 au, 9.3585 eV | ++---------------------------------------------------+ +| HOMO -> LUMO a ->a -0.699 | +| HOMO -> LUMO b ->b -0.699 | + ++---------------------------------------------------+ +| State 2 , 0.3636277 au, 9.894815 eV | ++---------------------------------------------------+ +| HOMO-1 -> LUMO a ->a -0.668 | +| HOMO-1 -> LUMO b ->b +0.668 | +| HOMO-2 -> LUMO+1 b ->b -0.217 | +| HOMO-2 -> LUMO+1 a ->a +0.217 | + +``` + +We can compare the IP and EA results with pySCF, for water sto-3g IP we get + +``` +moller-plesset(2) energy summary +rhf total energy -74.9420799540 +mp2 correlation energy -0.0491496367 +mp2 corrected energy -74.9912295907 + + n m energy 1h:-----------------------> 2h-1p:------------------------> + Hr eV norm i norm i j a +------------------------------------------------------------------------------------------- + 1 2 0.272050 7.402858 0.9125 [ 5 ] 0.9552 0.0875 [ 3, 5, 7 ] 0.1541 + 2 2 0.377743 10.278914 0.9415 [ 4 ] 0.9691 0.0585 [ 4, 4, 6 ] 0.1338 + 3 2 0.536346 14.594707 0.9719 [ 3 ] 0.9858 0.0281 + +-->state (root) 0 + polarization type = IP energy = 0.272050 eV + multiplicity = 2 +block type excitation +-------------------------------------- +1h α->α [ 5 ] 0.9552 +2h-1p αα->ββ [ 3, 5, 7 ] 0.1359 +2h-1p αα->ββ [ 4, 5, 6 ] 0.1322 +2h-1p αβ->αβ [ 3, 5, 7 ] 0.1541 +2h-1p αβ->αβ [ 4, 5, 6 ] 0.1369 + +``` +from pySCF +``` +adc(2) root 0 | Energy (Eh) = 0.2720500188 | Energy (eV) = 7.40286188 | Spec factors = 1.82390838 | conv = True +adc(2) root 1 | Energy (Eh) = 0.3777431275 | Energy (eV) = 10.27891934 | Spec factors = 1.86951116 | conv = True +adc(2) root 2 | Energy (Eh) = 0.5363456124 | Energy (eV) = 14.59471500 | Spec factors = 1.92335906 | conv = True + +adc(2) | root 0 | norm(1h) = 0.9125 | norm(2h1p) = 0.0875 + +1h block: + i U(i) +------------------ + 5 0.9552 + +2h1p(alpha|beta|alpha) block: + i j a U(i,j,a) +------------------------------- + 3 5 7 0.1541 + 4 5 6 0.1369 + +2h1p(beta|beta|beta) block: + i j a U(i,j,a) +------------------------------- + 3 5 7 0.1359 + 5 3 7 -0.1359 + 5 4 6 -0.1322 + 4 5 6 0.1322 +``` + +There is a hf_reference class which is just a holder for rhf, molAtom and molBasis objects to have the ground state quantities all in one place. The mp2_property class has functions to calculate the mp2 level density correction, both relaxed and unrelaxed and to calculate the dipole moment in ground state, unrelaxed and relaxed levels. +``` +mp_prop = mp2_properties(hf_reference(rhf, molAtom, molBasis), adc) +dipoles = mp_prop.dipoles() + +print() +caption = ['hf reference dipole', 'mp2 unrelaxed dipole', 'mp2 relaxed dipole'] +for i, mu in enumerate(['hf', 'mpu', 'mpr']): + x , y, z = dipoles[mu] * getConstant('au->debye') + print('{:<20s} x= {:<8.4f} y= {:<8.4f} z= {:<8.4f} D'.format(caption[i], x, y, z)) +``` +will return for H2O in 3-21g basis +``` +hf reference dipole x= 0.0000 y= 2.4137 z= -0.0000 D +mp2 unrelaxed dipole x= 0.0000 y= 2.3782 z= -0.0000 D +mp2 relaxed dipole x= 0.0000 y= 2.2881 z= -0.0000 D +``` +The adc_analyse class has a method transition_density which can be used to compute transition properties (for electron excitation). This is an example of it's use to get oscillator strengths, further examples of calculating transition properties are to be found in the adc(1) code +``` + adc = ADC('ee', rhf, electrons, roots=20, solve=[2, 10]) + adc_a = adc_analyse(adc) + + root = 14 + dm = adc_a.transition_density(root, mp_prop.mp2_density(type='relaxed')) + + from post import dipoleComponent + mu_component = [dipoleComponent(mp_prop.hf.atoms, mp_prop.hf.basis, x, 'origin') for x in ['x','y','z']] + charges = [a.number for a in mp_prop.hf.atoms] + centers = [a.center for a in mp_prop.hf.atoms] + + #ao->mo + mu_mo = np.kron(np.einsum('rp,xrs,sq->xpq', mp_prop.hf.rhf.C, mu_component, mp_prop.hf.rhf.C, optimize=True), np.eye(2)) + + #get transition dipole moment + tdm = np.einsum('ia,xia->x', dm, mu_mo, optimize=True) + + #oscillator strength + os = (2/3) * adc.eig_energy[root] * np.einsum('x,x->', tdm, tdm, optimize=True) + print('electric length gauge oscillator strength = {:<8.6f} for excitation {:<8.6f} eV'. + format(os , adc.eig_energy[root]*getConstant('hartree->eV'))) + +``` +which returns +``` +electric length gauge oscillator strength = 0.062968 for excitation 13.719527 eV + +``` +The ADC code is in a sepaerate directory 'adc', to run use 'python adc/adc.py' from 'harpy/source/' directory. + +### Algebraic Diagrammatic Construction (1) + +The module adc(1) contains the class first_order_adc. This is an implementation of ADC at the first order level which is formally equivalent to CIS. The code includes examples of calculating transition properties in both CIS and ADC formalisms. Transition dipoles are computed for electric in length and velcity gauges and for magnetic in length gauge. Oscillator strengths and cross-sections are also computed. Typical usage would be + ++ do general ADC calculation with 0 roots to initialise the class ie +``` +adc = ADC('ee', rhf, electrons, roots=0, solve=[2, 10]) +adc.roots = 20 +``` ++ create a ground state reference class instance +``` +hf = hf_reference(rhf, molAtom, molBasis) +``` ++ run the ADC(1) class. Note you use either the ADC moludes Davidson solver or a Python direct solver (solver='eigh') +``` +adc_1 = first_order_adc(adc, hf, solver='davidson') +``` +The results are written to a cache property which can either be accessed as \'adc_1.cache[\'kw\']\' or by \'energy, v, converged = adc_1.get()\'. The cache has keywords\ ++ 'e' for energies (au). ++ 'u' for eigenvectors returned as an [nocc\*nvir, roots] array. ++ 'c' is a boolean flag indicating the converged status of the diagonalisation (True = converged OK) + +You can further use +``` +adc_1.get_transition_properties() +``` +This will give the follow cache options ++ 'dipole:electric:length:CIS' ++ 'oscillator:electric:length:CIS' ++ 'dipole:electric:length:ADC' ++ 'oscillator:electric:length:ADC' ++ 'dipole:electric:velocity:CIS' ++ 'oscillator:electric:velocity:CIS' ++ 'dipole:electric:velocity:ADC' ++ 'oscillator:electric:velocity:ADC' ++ 'dipole:magnetic:length:CIS' ++ 'dipole:magnetic:length:ADC' ++ 'cross-section:CIS' ++ 'cross-section:ADC' + +where appropriate all units are atomic. Examples of obtaining output are given in the main section of the module, as an example for water in STO-3G using the above code we get +``` +ADC(1) Excited States +----------------------------------------------------------------------------------------------- +root energy excitation osc. (CIS) (ADC) +----------------------------------------------------------------------------------------------- + 1 [3] 0.287256 7.816620 0.7071 HOMO -> LUMO + 2 [3] 0.344425 9.372282 0.6283 HOMO-1 -> LUMO + 3 [1] 0.356462 9.699819 0.7071 HOMO -> LUMO 0.0023 0.0022 + 4 [3] 0.365989 9.959068 0.7071 HOMO -> LUMO+1 + 5 [3] 0.394514 10.735267 0.4179 HOMO-1 -> LUMO+1 + 6 [1] 0.416072 11.321889 0.7071 HOMO -> LUMO+1 + 7 [1] 0.505628 13.758846 0.6202 HOMO-1 -> LUMO 0.0649 0.0485 + 8 [3] 0.514290 13.994543 0.4093 HOMO-2 -> LUMO + 9 [1] 0.555192 15.107540 0.4911 HOMO-1 -> LUMO+1 0.0155 0.0144 +``` +and for a designated state +``` +Excited state 7 root number 14 energy 0.505628 +------------------------------------ ------------------------------------------------------------------ + type gauge CIS ADC + dipole oscillator dipole oscillator +------------------------------------------------------------------------------------------------------ + electric length [ 0.0000 0.4389 0.0000] 0.0649 [ 0.0000 0.3795 0.0000] 0.0485 + electric velocity [ 0.0000 0.2735 -0.0000] 0.0252 [-0.0000 -0.3015 0.0000] 0.0306 + magnetic length [ 0.0000 0.0000 -0.0000] [-0.0000 -0.0000 0.0000] + +Cross-sections CIS 0.009352 ADC 0.006991 +``` +We can plot the oscillator strengths (or cross-sections or dipole norms) either as bars or with a broadening, an example is given in the module which will produce eg + +![image](https://user-images.githubusercontent.com/73105740/164206868-c4e9af64-6dd5-46a8-b626-3f90490c71c3.png) diff --git a/document/aello.html b/document/aello.html new file mode 100644 index 0000000..6f780e7 --- /dev/null +++ b/document/aello.html @@ -0,0 +1,4209 @@ + + + + + + Cython: aello.pyx + + + +

Generated by Cython 0.29.21

+

+ Yellow lines hint at Python interaction.
+ Click on a line that starts with a "+" to see the C code that Cython generated for it. +

+

Raw output: aello.c

+
+001: #cython: boundscheck=False, wraparound=False, nonecheck=False, initializedcheck=False, cdivision=True
+
  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
 002: from libc.math cimport exp, pow, tgamma, sqrt, abs
+
 003: from scipy.special.cython_special cimport hyp1f1
+
+004: from atom import gaugeCenter
+
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __Pyx_INCREF(__pyx_n_s_gaugeCenter);
+  __Pyx_GIVEREF(__pyx_n_s_gaugeCenter);
+  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_gaugeCenter);
+  __pyx_t_2 = __Pyx_Import(__pyx_n_s_atom, __pyx_t_1, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_gaugeCenter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_gaugeCenter, __pyx_t_1) < 0) __PYX_ERR(0, 4, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
 005: 
+
+006: import numpy as np
+
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_numpy, 0, -1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
 007: cimport numpy as np
+
 008: 
+
+009: cdef double pi = 3.141592653589793238462643383279
+
  __pyx_v_5aello_pi = 3.141592653589793238462643383279;
+
 010: 
+
 011: #from integral - e
+
+012: cdef double cye(int ia,int ja,int type, double r, double ie, double je, int n = 0, double x = 0.0):
+
static double __pyx_f_5aello_cye(int __pyx_v_ia, int __pyx_v_ja, int __pyx_v_type, double __pyx_v_r, double __pyx_v_ie, double __pyx_v_je, struct __pyx_opt_args_5aello_cye *__pyx_optional_args) {
+  int __pyx_v_n = ((int)0);
+  double __pyx_v_x = ((double)0.0);
+  double __pyx_v_p;
+  double __pyx_v_q;
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("cye", 0);
+  if (__pyx_optional_args) {
+    if (__pyx_optional_args->__pyx_n > 0) {
+      __pyx_v_n = __pyx_optional_args->n;
+      if (__pyx_optional_args->__pyx_n > 1) {
+        __pyx_v_x = __pyx_optional_args->x;
+      }
+    }
+  }
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+/* … */
+struct __pyx_opt_args_5aello_cye {
+  int __pyx_n;
+  int n;
+  double x;
+};
+
 013: 
+
 014: 	cdef:
+
+015: 		double p = ie + je
+
  __pyx_v_p = (__pyx_v_ie + __pyx_v_je);
+
+016: 		double q = ie*je / p
+
  __pyx_v_q = ((__pyx_v_ie * __pyx_v_je) / __pyx_v_p);
+
 017: 
+
+018: 	if n == 0:
+
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
+  if (__pyx_t_1) {
+/* … */
+  }
+
+019: 		if (type < 0) or (type > (ia + ja)):
+
    __pyx_t_2 = ((__pyx_v_type < 0) != 0);
+    if (!__pyx_t_2) {
+    } else {
+      __pyx_t_1 = __pyx_t_2;
+      goto __pyx_L5_bool_binop_done;
+    }
+    __pyx_t_2 = ((__pyx_v_type > (__pyx_v_ia + __pyx_v_ja)) != 0);
+    __pyx_t_1 = __pyx_t_2;
+    __pyx_L5_bool_binop_done:;
+    if (__pyx_t_1) {
+/* … */
+    }
+
+020: 			return 0.0
+
      __pyx_r = 0.0;
+      goto __pyx_L0;
+
+021: 		elif (ia + ja + type) == 0:
+
    __pyx_t_1 = ((((__pyx_v_ia + __pyx_v_ja) + __pyx_v_type) == 0) != 0);
+    if (__pyx_t_1) {
+/* … */
+    }
+
+022: 			return exp(-q*r*r)
+
      __pyx_r = exp((((-__pyx_v_q) * __pyx_v_r) * __pyx_v_r));
+      goto __pyx_L0;
+
+023: 		elif ja == 0:
+
    __pyx_t_1 = ((__pyx_v_ja == 0) != 0);
+    if (__pyx_t_1) {
+/* … */
+    }
+
+024: 			return (1/(2 * p)) * cye(ia-1,ja,type-1,r,ie,je) - (q*r/ie) * cye(ia-1,ja,type,r,ie,je) + \
+
      __pyx_r = ((((1.0 / (2.0 * __pyx_v_p)) * __pyx_f_5aello_cye((__pyx_v_ia - 1), __pyx_v_ja, (__pyx_v_type - 1), __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL)) - (((__pyx_v_q * __pyx_v_r) / __pyx_v_ie) * __pyx_f_5aello_cye((__pyx_v_ia - 1), __pyx_v_ja, __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL))) + ((__pyx_v_type + 1) * __pyx_f_5aello_cye((__pyx_v_ia - 1), __pyx_v_ja, (__pyx_v_type + 1), __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL)));
+      goto __pyx_L0;
+
 025:                          (type+1) * cye(ia-1,ja,type+1,r,ie,je)
+
 026: 		else:
+
+027: 			return (1/(2 * p)) * cye(ia,ja-1,type-1,r,ie,je) + (q*r/je) * cye(ia,ja-1,type,r,ie,je) + \
+
    /*else*/ {
+/* … */
+      __pyx_r = ((((1.0 / (2.0 * __pyx_v_p)) * __pyx_f_5aello_cye(__pyx_v_ia, (__pyx_v_ja - 1), (__pyx_v_type - 1), __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL)) + (((__pyx_v_q * __pyx_v_r) / __pyx_v_je) * __pyx_f_5aello_cye(__pyx_v_ia, (__pyx_v_ja - 1), __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL))) + ((__pyx_v_type + 1) * __pyx_f_5aello_cye(__pyx_v_ia, (__pyx_v_ja - 1), (__pyx_v_type + 1), __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL)));
+      goto __pyx_L0;
+    }
+
 028:                          (type+1) * cye(ia,ja-1,type+1,r,ie,je)
+
 029: 	else:
+
+030: 		return cye(ia+1,ja,type,r,ie,je,n-1,x) + x * cye(ia,ja,type,r,ie,je,n-1,x)
+
  /*else*/ {
+    __pyx_t_4.__pyx_n = 2;
+    __pyx_t_4.n = (__pyx_v_n - 1);
+    __pyx_t_4.x = __pyx_v_x;
+    __pyx_t_3 = __pyx_f_5aello_cye((__pyx_v_ia + 1), __pyx_v_ja, __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+    __pyx_t_4.__pyx_n = 2;
+    __pyx_t_4.n = (__pyx_v_n - 1);
+    __pyx_t_4.x = __pyx_v_x;
+    __pyx_t_5 = __pyx_f_5aello_cye(__pyx_v_ia, __pyx_v_ja, __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+    __pyx_r = (__pyx_t_3 + (__pyx_v_x * __pyx_t_5));
+    goto __pyx_L0;
+  }
+
 031: 
+
+032: cdef double ovlp(int ia0, int ia1, int ia2, int ja0, int ja1, int ja2, int type, \
+
static double __pyx_f_5aello_ovlp(int __pyx_v_ia0, int __pyx_v_ia1, int __pyx_v_ia2, int __pyx_v_ja0, int __pyx_v_ja1, int __pyx_v_ja2, int __pyx_v_type, double __pyx_v_r0, double __pyx_v_r1, double __pyx_v_r2, double __pyx_v_ie, double __pyx_v_je) {
+  double __pyx_v_s;
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("ovlp", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 033:                            double r0, double r1, double r2, double ie, double je):
+
 034: 	cdef double s
+
+035: 	s =  cye(ia0, ja0, type, r0, ie, je)
+
  __pyx_v_s = __pyx_f_5aello_cye(__pyx_v_ia0, __pyx_v_ja0, __pyx_v_type, __pyx_v_r0, __pyx_v_ie, __pyx_v_je, NULL);
+
+036: 	s *= cye(ia1, ja1, type, r1, ie, je)
+
  __pyx_v_s = (__pyx_v_s * __pyx_f_5aello_cye(__pyx_v_ia1, __pyx_v_ja1, __pyx_v_type, __pyx_v_r1, __pyx_v_ie, __pyx_v_je, NULL));
+
+037: 	s *= cye(ia2, ja2, type, r2, ie, je)
+
  __pyx_v_s = (__pyx_v_s * __pyx_f_5aello_cye(__pyx_v_ia2, __pyx_v_ja2, __pyx_v_type, __pyx_v_r2, __pyx_v_ie, __pyx_v_je, NULL));
+
 038: 
+
+039: 	return s * pow(pi/(ie+je),1.5)
+
  __pyx_r = (__pyx_v_s * pow((__pyx_v_5aello_pi / (__pyx_v_ie + __pyx_v_je)), 1.5));
+  goto __pyx_L0;
+
 040: 
+
+041: cdef double clmb(int l, int m, int n, int bf, double p, double r0, double r1, double r2):
+
static double __pyx_f_5aello_clmb(int __pyx_v_l, int __pyx_v_m, int __pyx_v_n, int __pyx_v_bf, double __pyx_v_p, double __pyx_v_r0, double __pyx_v_r1, double __pyx_v_r2) {
+  double __pyx_v_t;
+  double __pyx_v_s;
+  double __pyx_v_nm;
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("clmb", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 042: 
+
 043: 	cdef double t, s, nm
+
+044: 	nm = sqrt(r0*r0 + r1*r1 + r2*r2)
+
  __pyx_v_nm = sqrt((((__pyx_v_r0 * __pyx_v_r0) + (__pyx_v_r1 * __pyx_v_r1)) + (__pyx_v_r2 * __pyx_v_r2)));
+
+045: 	t = p * nm * nm
+
  __pyx_v_t = ((__pyx_v_p * __pyx_v_nm) * __pyx_v_nm);
+
 046: 
+
+047: 	s = 0.0
+
  __pyx_v_s = 0.0;
+
+048: 	if (l+m+n)  == 0:
+
  __pyx_t_1 = ((((__pyx_v_l + __pyx_v_m) + __pyx_v_n) == 0) != 0);
+  if (__pyx_t_1) {
+/* … */
+    goto __pyx_L3;
+  }
+
+049: 		s += pow(-2*p, bf) * boys(bf, t)
+
    __pyx_v_s = (__pyx_v_s + (pow((-2.0 * __pyx_v_p), __pyx_v_bf) * __pyx_f_5aello_boys(__pyx_v_bf, __pyx_v_t)));
+
+050: 	elif (l+m) == 0:
+
  __pyx_t_1 = (((__pyx_v_l + __pyx_v_m) == 0) != 0);
+  if (__pyx_t_1) {
+/* … */
+    goto __pyx_L3;
+  }
+
+051: 		if n > 1:
+
    __pyx_t_1 = ((__pyx_v_n > 1) != 0);
+    if (__pyx_t_1) {
+/* … */
+    }
+
+052: 			s +=(n-1) * clmb(l,m,n-2,bf+1,p,r0,r1,r2)
+
      __pyx_v_s = (__pyx_v_s + ((__pyx_v_n - 1) * __pyx_f_5aello_clmb(__pyx_v_l, __pyx_v_m, (__pyx_v_n - 2), (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+
+053: 		s += r2 * clmb(l,m,n-1,bf+1,p,r0,r1,r2)
+
    __pyx_v_s = (__pyx_v_s + (__pyx_v_r2 * __pyx_f_5aello_clmb(__pyx_v_l, __pyx_v_m, (__pyx_v_n - 1), (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+
+054: 	elif l == 0:
+
  __pyx_t_1 = ((__pyx_v_l == 0) != 0);
+  if (__pyx_t_1) {
+/* … */
+    goto __pyx_L3;
+  }
+
+055: 		if m > 1:
+
    __pyx_t_1 = ((__pyx_v_m > 1) != 0);
+    if (__pyx_t_1) {
+/* … */
+    }
+
+056: 			s +=(m-1) * clmb(l,m-2,n,bf+1,p,r0,r1,r2)
+
      __pyx_v_s = (__pyx_v_s + ((__pyx_v_m - 1) * __pyx_f_5aello_clmb(__pyx_v_l, (__pyx_v_m - 2), __pyx_v_n, (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+
+057: 		s += r1 * clmb(l,m-1,n,bf+1,p,r0,r1,r2)
+
    __pyx_v_s = (__pyx_v_s + (__pyx_v_r1 * __pyx_f_5aello_clmb(__pyx_v_l, (__pyx_v_m - 1), __pyx_v_n, (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+
 058: 	else:
+
+059: 		if l > 1:
+
  /*else*/ {
+    __pyx_t_1 = ((__pyx_v_l > 1) != 0);
+    if (__pyx_t_1) {
+/* … */
+    }
+
+060: 			s +=(l-1) * clmb(l-2,m,n,bf+1,p,r0,r1,r2)
+
      __pyx_v_s = (__pyx_v_s + ((__pyx_v_l - 1) * __pyx_f_5aello_clmb((__pyx_v_l - 2), __pyx_v_m, __pyx_v_n, (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+
+061: 		s += r0 * clmb(l-1,m,n,bf+1,p,r0,r1,r2)
+
    __pyx_v_s = (__pyx_v_s + (__pyx_v_r0 * __pyx_f_5aello_clmb((__pyx_v_l - 1), __pyx_v_m, __pyx_v_n, (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+  }
+  __pyx_L3:;
+
 062: 
+
+063: 	return s
+
  __pyx_r = __pyx_v_s;
+  goto __pyx_L0;
+
 064: 
+
 065: 
+
 066: #boys function
+
+067: cdef double boys(double m,double T):
+
static double __pyx_f_5aello_boys(double __pyx_v_m, double __pyx_v_T) {
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("boys", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+068: 	return hyp1f1(m+0.5,m+1.5,-T)/(2.0*m+1.0)
+
  __pyx_r = (__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp1f1((__pyx_v_m + 0.5), (__pyx_v_m + 1.5), (-__pyx_v_T), 0) / ((2.0 * __pyx_v_m) + 1.0));
+  goto __pyx_L0;
+
 069: 
+
+070: cdef double tei(int al0, int al1, int al2, int al3, short[:,:] aa, double[:,:] an, double[:,:] ac, \
+
static double __pyx_f_5aello_tei(int __pyx_v_al0, int __pyx_v_al1, int __pyx_v_al2, int __pyx_v_al3, __Pyx_memviewslice __pyx_v_aa, __Pyx_memviewslice __pyx_v_an, __Pyx_memviewslice __pyx_v_ac, __Pyx_memviewslice __pyx_v_ae, __Pyx_memviewslice __pyx_v_ao, int __pyx_v_i, int __pyx_v_j, int __pyx_v_k, int __pyx_v_l) {
+  double __pyx_v_s;
+  int __pyx_v_mu;
+  int __pyx_v_nu;
+  int __pyx_v_vu;
+  int __pyx_v_su;
+  int __pyx_v_tu;
+  int __pyx_v_psi;
+  int __pyx_v_phi;
+  int __pyx_v_chi;
+  int __pyx_v_alpha;
+  int __pyx_v_beta;
+  int __pyx_v_gamma;
+  double __pyx_v_f;
+  double __pyx_v_p;
+  double __pyx_v_q;
+  double __pyx_v_t1;
+  double __pyx_v_s1;
+  double __pyx_v_s2;
+  double __pyx_v_t2[3];
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("tei", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 071:                 double[:,:] ae, double[:,:] ao, int i, int j, int k, int l):
+
 072: 
+
 073: 	cdef:
+
+074: 		double s = 0.0
+
  __pyx_v_s = 0.0;
+
 075: 		int mu, nu, vu, su, tu, psi, phi, chi, alpha, beta, gamma
+
 076: 		double f, p, q, t1, s1, s2
+
 077: 		double t2[3]
+
 078: 
+
+079: 	for mu in range(0, al0):
+
  __pyx_t_1 = __pyx_v_al0;
+  __pyx_t_2 = __pyx_t_1;
+  for (__pyx_t_3 = 0; __pyx_t_3 < __pyx_t_2; __pyx_t_3+=1) {
+    __pyx_v_mu = __pyx_t_3;
+
+080: 		for nu in range(0, al1):
+
    __pyx_t_4 = __pyx_v_al1;
+    __pyx_t_5 = __pyx_t_4;
+    for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
+      __pyx_v_nu = __pyx_t_6;
+
+081: 			for vu in range(0, al2):
+
      __pyx_t_7 = __pyx_v_al2;
+      __pyx_t_8 = __pyx_t_7;
+      for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
+        __pyx_v_vu = __pyx_t_9;
+
+082: 				for su in range(0, al3):
+
        __pyx_t_10 = __pyx_v_al3;
+        __pyx_t_11 = __pyx_t_10;
+        for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
+          __pyx_v_su = __pyx_t_12;
+
+083: 					f =  an[i,mu] * an[j,nu] * an[k,vu] * an[l,su] * ac[i,mu] * ac[j,nu] * ac[k,vu] * ac[l,su]
+
          __pyx_t_13 = __pyx_v_i;
+          __pyx_t_14 = __pyx_v_mu;
+          __pyx_t_15 = __pyx_v_j;
+          __pyx_t_16 = __pyx_v_nu;
+          __pyx_t_17 = __pyx_v_k;
+          __pyx_t_18 = __pyx_v_vu;
+          __pyx_t_19 = __pyx_v_l;
+          __pyx_t_20 = __pyx_v_su;
+          __pyx_t_21 = __pyx_v_i;
+          __pyx_t_22 = __pyx_v_mu;
+          __pyx_t_23 = __pyx_v_j;
+          __pyx_t_24 = __pyx_v_nu;
+          __pyx_t_25 = __pyx_v_k;
+          __pyx_t_26 = __pyx_v_vu;
+          __pyx_t_27 = __pyx_v_l;
+          __pyx_t_28 = __pyx_v_su;
+          __pyx_v_f = ((((((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_an.data + __pyx_t_13 * __pyx_v_an.strides[0]) ) + __pyx_t_14 * __pyx_v_an.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_an.data + __pyx_t_15 * __pyx_v_an.strides[0]) ) + __pyx_t_16 * __pyx_v_an.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_an.data + __pyx_t_17 * __pyx_v_an.strides[0]) ) + __pyx_t_18 * __pyx_v_an.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_an.data + __pyx_t_19 * __pyx_v_an.strides[0]) ) + __pyx_t_20 * __pyx_v_an.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ac.data + __pyx_t_21 * __pyx_v_ac.strides[0]) ) + __pyx_t_22 * __pyx_v_ac.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ac.data + __pyx_t_23 * __pyx_v_ac.strides[0]) ) + __pyx_t_24 * __pyx_v_ac.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ac.data + __pyx_t_25 * __pyx_v_ac.strides[0]) ) + __pyx_t_26 * __pyx_v_ac.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ac.data + __pyx_t_27 * __pyx_v_ac.strides[0]) ) + __pyx_t_28 * __pyx_v_ac.strides[1]) ))));
+
+084: 					p = ae[i,mu] + ae[j,nu]
+
          __pyx_t_28 = __pyx_v_i;
+          __pyx_t_27 = __pyx_v_mu;
+          __pyx_t_26 = __pyx_v_j;
+          __pyx_t_25 = __pyx_v_nu;
+          __pyx_v_p = ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_28 * __pyx_v_ae.strides[0]) ) + __pyx_t_27 * __pyx_v_ae.strides[1]) ))) + (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_26 * __pyx_v_ae.strides[0]) ) + __pyx_t_25 * __pyx_v_ae.strides[1]) ))));
+
+085: 					q = ae[k,vu] + ae[l,su]
+
          __pyx_t_25 = __pyx_v_k;
+          __pyx_t_26 = __pyx_v_vu;
+          __pyx_t_27 = __pyx_v_l;
+          __pyx_t_28 = __pyx_v_su;
+          __pyx_v_q = ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_25 * __pyx_v_ae.strides[0]) ) + __pyx_t_26 * __pyx_v_ae.strides[1]) ))) + (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_27 * __pyx_v_ae.strides[0]) ) + __pyx_t_28 * __pyx_v_ae.strides[1]) ))));
+
+086: 					t1 = p*q/(p+q)
+
          __pyx_v_t1 = ((__pyx_v_p * __pyx_v_q) / (__pyx_v_p + __pyx_v_q));
+
+087: 					for tu in range(0, 3):
+
          for (__pyx_t_29 = 0; __pyx_t_29 < 3; __pyx_t_29+=1) {
+            __pyx_v_tu = __pyx_t_29;
+
+088: 						t2[tu] = (ae[i,mu]*ao[i,tu] + ae[j,nu]*ao[j,tu])/p - (ae[k,vu]*ao[k,tu] + ae[l,su]*ao[l,tu])/q
+
            __pyx_t_28 = __pyx_v_i;
+            __pyx_t_27 = __pyx_v_mu;
+            __pyx_t_26 = __pyx_v_i;
+            __pyx_t_25 = __pyx_v_tu;
+            __pyx_t_24 = __pyx_v_j;
+            __pyx_t_23 = __pyx_v_nu;
+            __pyx_t_22 = __pyx_v_j;
+            __pyx_t_21 = __pyx_v_tu;
+            __pyx_t_20 = __pyx_v_k;
+            __pyx_t_19 = __pyx_v_vu;
+            __pyx_t_18 = __pyx_v_k;
+            __pyx_t_17 = __pyx_v_tu;
+            __pyx_t_16 = __pyx_v_l;
+            __pyx_t_15 = __pyx_v_su;
+            __pyx_t_14 = __pyx_v_l;
+            __pyx_t_13 = __pyx_v_tu;
+            (__pyx_v_t2[__pyx_v_tu]) = (((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_28 * __pyx_v_ae.strides[0]) ) + __pyx_t_27 * __pyx_v_ae.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_26 * __pyx_v_ao.strides[0]) ) + __pyx_t_25 * __pyx_v_ao.strides[1]) )))) + ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_24 * __pyx_v_ae.strides[0]) ) + __pyx_t_23 * __pyx_v_ae.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_22 * __pyx_v_ao.strides[0]) ) + __pyx_t_21 * __pyx_v_ao.strides[1]) ))))) / __pyx_v_p) - ((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_20 * __pyx_v_ae.strides[0]) ) + __pyx_t_19 * __pyx_v_ae.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_18 * __pyx_v_ao.strides[0]) ) + __pyx_t_17 * __pyx_v_ao.strides[1]) )))) + ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_16 * __pyx_v_ae.strides[0]) ) + __pyx_t_15 * __pyx_v_ae.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_14 * __pyx_v_ao.strides[0]) ) + __pyx_t_13 * __pyx_v_ao.strides[1]) ))))) / __pyx_v_q));
+          }
+
 089: 
+
+090: 					s1 = 0.0
+
          __pyx_v_s1 = 0.0;
+
+091: 					for psi in range(0, aa[i,0]+aa[j,0]+1):
+
          __pyx_t_13 = __pyx_v_i;
+          __pyx_t_14 = 0;
+          __pyx_t_15 = __pyx_v_j;
+          __pyx_t_16 = 0;
+          __pyx_t_30 = (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_13 * __pyx_v_aa.strides[0]) ) + __pyx_t_14 * __pyx_v_aa.strides[1]) ))) + (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_15 * __pyx_v_aa.strides[0]) ) + __pyx_t_16 * __pyx_v_aa.strides[1]) )))) + 1);
+          __pyx_t_31 = __pyx_t_30;
+          for (__pyx_t_29 = 0; __pyx_t_29 < __pyx_t_31; __pyx_t_29+=1) {
+            __pyx_v_psi = __pyx_t_29;
+
+092: 						for phi in range(0, aa[i,1]+aa[j,1]+1):
+
            __pyx_t_16 = __pyx_v_i;
+            __pyx_t_15 = 1;
+            __pyx_t_14 = __pyx_v_j;
+            __pyx_t_13 = 1;
+            __pyx_t_32 = (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_16 * __pyx_v_aa.strides[0]) ) + __pyx_t_15 * __pyx_v_aa.strides[1]) ))) + (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_14 * __pyx_v_aa.strides[0]) ) + __pyx_t_13 * __pyx_v_aa.strides[1]) )))) + 1);
+            __pyx_t_33 = __pyx_t_32;
+            for (__pyx_t_34 = 0; __pyx_t_34 < __pyx_t_33; __pyx_t_34+=1) {
+              __pyx_v_phi = __pyx_t_34;
+
+093: 							for chi in range(0, aa[i,2]+aa[j,2]+1):
+
              __pyx_t_13 = __pyx_v_i;
+              __pyx_t_14 = 2;
+              __pyx_t_15 = __pyx_v_j;
+              __pyx_t_16 = 2;
+              __pyx_t_35 = (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_13 * __pyx_v_aa.strides[0]) ) + __pyx_t_14 * __pyx_v_aa.strides[1]) ))) + (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_15 * __pyx_v_aa.strides[0]) ) + __pyx_t_16 * __pyx_v_aa.strides[1]) )))) + 1);
+              __pyx_t_36 = __pyx_t_35;
+              for (__pyx_t_37 = 0; __pyx_t_37 < __pyx_t_36; __pyx_t_37+=1) {
+                __pyx_v_chi = __pyx_t_37;
+
+094: 								for alpha in range(0, aa[k,0]+aa[l,0]+1):
+
                __pyx_t_16 = __pyx_v_k;
+                __pyx_t_15 = 0;
+                __pyx_t_14 = __pyx_v_l;
+                __pyx_t_13 = 0;
+                __pyx_t_38 = (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_16 * __pyx_v_aa.strides[0]) ) + __pyx_t_15 * __pyx_v_aa.strides[1]) ))) + (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_14 * __pyx_v_aa.strides[0]) ) + __pyx_t_13 * __pyx_v_aa.strides[1]) )))) + 1);
+                __pyx_t_39 = __pyx_t_38;
+                for (__pyx_t_40 = 0; __pyx_t_40 < __pyx_t_39; __pyx_t_40+=1) {
+                  __pyx_v_alpha = __pyx_t_40;
+
+095: 									for beta in range(0, aa[k,1]+aa[l,1]+1):
+
                  __pyx_t_13 = __pyx_v_k;
+                  __pyx_t_14 = 1;
+                  __pyx_t_15 = __pyx_v_l;
+                  __pyx_t_16 = 1;
+                  __pyx_t_41 = (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_13 * __pyx_v_aa.strides[0]) ) + __pyx_t_14 * __pyx_v_aa.strides[1]) ))) + (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_15 * __pyx_v_aa.strides[0]) ) + __pyx_t_16 * __pyx_v_aa.strides[1]) )))) + 1);
+                  __pyx_t_42 = __pyx_t_41;
+                  for (__pyx_t_43 = 0; __pyx_t_43 < __pyx_t_42; __pyx_t_43+=1) {
+                    __pyx_v_beta = __pyx_t_43;
+
+096: 										for gamma in range(0, aa[k,2]+aa[l,2]+1):
+
                    __pyx_t_16 = __pyx_v_k;
+                    __pyx_t_15 = 2;
+                    __pyx_t_14 = __pyx_v_l;
+                    __pyx_t_13 = 2;
+                    __pyx_t_44 = (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_16 * __pyx_v_aa.strides[0]) ) + __pyx_t_15 * __pyx_v_aa.strides[1]) ))) + (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_14 * __pyx_v_aa.strides[0]) ) + __pyx_t_13 * __pyx_v_aa.strides[1]) )))) + 1);
+                    __pyx_t_45 = __pyx_t_44;
+                    for (__pyx_t_46 = 0; __pyx_t_46 < __pyx_t_45; __pyx_t_46+=1) {
+                      __pyx_v_gamma = __pyx_t_46;
+
 097: 
+
+098: 											s2 = cye(aa[i,0],aa[j,0],psi, ao[i,0]-ao[j,0],ae[i,mu],ae[j,nu]) * \
+
                      __pyx_t_13 = __pyx_v_i;
+                      __pyx_t_14 = 0;
+                      __pyx_t_15 = __pyx_v_j;
+                      __pyx_t_16 = 0;
+                      __pyx_t_17 = __pyx_v_i;
+                      __pyx_t_18 = 0;
+                      __pyx_t_19 = __pyx_v_j;
+                      __pyx_t_20 = 0;
+                      __pyx_t_21 = __pyx_v_i;
+                      __pyx_t_22 = __pyx_v_mu;
+                      __pyx_t_23 = __pyx_v_j;
+                      __pyx_t_24 = __pyx_v_nu;
+
+099: 									 			 cye(aa[i,1],aa[j,1],phi, ao[i,1]-ao[j,1],ae[i,mu],ae[j,nu]) * \
+
                      __pyx_t_25 = __pyx_v_i;
+                      __pyx_t_26 = 1;
+                      __pyx_t_27 = __pyx_v_j;
+                      __pyx_t_28 = 1;
+                      __pyx_t_47 = __pyx_v_i;
+                      __pyx_t_48 = 1;
+                      __pyx_t_49 = __pyx_v_j;
+                      __pyx_t_50 = 1;
+                      __pyx_t_51 = __pyx_v_i;
+                      __pyx_t_52 = __pyx_v_mu;
+                      __pyx_t_53 = __pyx_v_j;
+                      __pyx_t_54 = __pyx_v_nu;
+/* … */
+                      __pyx_v_s2 = ((__pyx_f_5aello_cye((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_13 * __pyx_v_aa.strides[0]) ) + __pyx_t_14 * __pyx_v_aa.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_15 * __pyx_v_aa.strides[0]) ) + __pyx_t_16 * __pyx_v_aa.strides[1]) ))), __pyx_v_psi, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_17 * __pyx_v_ao.strides[0]) ) + __pyx_t_18 * __pyx_v_ao.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_19 * __pyx_v_ao.strides[0]) ) + __pyx_t_20 * __pyx_v_ao.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_21 * __pyx_v_ae.strides[0]) ) + __pyx_t_22 * __pyx_v_ae.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_23 * __pyx_v_ae.strides[0]) ) + __pyx_t_24 * __pyx_v_ae.strides[1]) ))), NULL) * __pyx_f_5aello_cye((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_25 * __pyx_v_aa.strides[0]) ) + __pyx_t_26 * __pyx_v_aa.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_27 * __pyx_v_aa.strides[0]) ) + __pyx_t_28 * __pyx_v_aa.strides[1]) ))), __pyx_v_phi, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_47 * __pyx_v_ao.strides[0]) ) + __pyx_t_48 * __pyx_v_ao.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_49 * __pyx_v_ao.strides[0]) ) + __pyx_t_50 * __pyx_v_ao.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_51 * __pyx_v_ae.strides[0]) ) + __pyx_t_52 * __pyx_v_ae.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_53 * __pyx_v_ae.strides[0]) ) + __pyx_t_54 * __pyx_v_ae.strides[1]) ))), NULL)) * __pyx_f_5aello_cye((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_55 * __pyx_v_aa.strides[0]) ) + __pyx_t_56 * __pyx_v_aa.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_57 * __pyx_v_aa.strides[0]) ) + __pyx_t_58 * __pyx_v_aa.strides[1]) ))), __pyx_v_chi, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_59 * __pyx_v_ao.strides[0]) ) + __pyx_t_60 * __pyx_v_ao.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_61 * __pyx_v_ao.strides[0]) ) + __pyx_t_62 * __pyx_v_ao.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_63 * __pyx_v_ae.strides[0]) ) + __pyx_t_64 * __pyx_v_ae.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_65 * __pyx_v_ae.strides[0]) ) + __pyx_t_66 * __pyx_v_ae.strides[1]) ))), NULL));
+
+100: 									 			 cye(aa[i,2],aa[j,2],chi, ao[i,2]-ao[j,2],ae[i,mu],ae[j,nu])
+
                      __pyx_t_55 = __pyx_v_i;
+                      __pyx_t_56 = 2;
+                      __pyx_t_57 = __pyx_v_j;
+                      __pyx_t_58 = 2;
+                      __pyx_t_59 = __pyx_v_i;
+                      __pyx_t_60 = 2;
+                      __pyx_t_61 = __pyx_v_j;
+                      __pyx_t_62 = 2;
+                      __pyx_t_63 = __pyx_v_i;
+                      __pyx_t_64 = __pyx_v_mu;
+                      __pyx_t_65 = __pyx_v_j;
+                      __pyx_t_66 = __pyx_v_nu;
+
+101: 											s2*= cye(aa[k,0],aa[l,0],alpha, ao[k,0]-ao[l,0],ae[k,vu],ae[l,su]) * \
+
                      __pyx_t_66 = __pyx_v_k;
+                      __pyx_t_65 = 0;
+                      __pyx_t_64 = __pyx_v_l;
+                      __pyx_t_63 = 0;
+                      __pyx_t_62 = __pyx_v_k;
+                      __pyx_t_61 = 0;
+                      __pyx_t_60 = __pyx_v_l;
+                      __pyx_t_59 = 0;
+                      __pyx_t_58 = __pyx_v_k;
+                      __pyx_t_57 = __pyx_v_vu;
+                      __pyx_t_56 = __pyx_v_l;
+                      __pyx_t_55 = __pyx_v_su;
+/* … */
+                      __pyx_v_s2 = (__pyx_v_s2 * ((__pyx_f_5aello_cye((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_66 * __pyx_v_aa.strides[0]) ) + __pyx_t_65 * __pyx_v_aa.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_64 * __pyx_v_aa.strides[0]) ) + __pyx_t_63 * __pyx_v_aa.strides[1]) ))), __pyx_v_alpha, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_62 * __pyx_v_ao.strides[0]) ) + __pyx_t_61 * __pyx_v_ao.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_60 * __pyx_v_ao.strides[0]) ) + __pyx_t_59 * __pyx_v_ao.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_58 * __pyx_v_ae.strides[0]) ) + __pyx_t_57 * __pyx_v_ae.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_56 * __pyx_v_ae.strides[0]) ) + __pyx_t_55 * __pyx_v_ae.strides[1]) ))), NULL) * __pyx_f_5aello_cye((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_54 * __pyx_v_aa.strides[0]) ) + __pyx_t_53 * __pyx_v_aa.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_52 * __pyx_v_aa.strides[0]) ) + __pyx_t_51 * __pyx_v_aa.strides[1]) ))), __pyx_v_beta, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_50 * __pyx_v_ao.strides[0]) ) + __pyx_t_49 * __pyx_v_ao.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_48 * __pyx_v_ao.strides[0]) ) + __pyx_t_47 * __pyx_v_ao.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_28 * __pyx_v_ae.strides[0]) ) + __pyx_t_27 * __pyx_v_ae.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_26 * __pyx_v_ae.strides[0]) ) + __pyx_t_25 * __pyx_v_ae.strides[1]) ))), NULL)) * __pyx_f_5aello_cye((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_24 * __pyx_v_aa.strides[0]) ) + __pyx_t_23 * __pyx_v_aa.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_aa.data + __pyx_t_22 * __pyx_v_aa.strides[0]) ) + __pyx_t_21 * __pyx_v_aa.strides[1]) ))), __pyx_v_gamma, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_20 * __pyx_v_ao.strides[0]) ) + __pyx_t_19 * __pyx_v_ao.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ao.data + __pyx_t_18 * __pyx_v_ao.strides[0]) ) + __pyx_t_17 * __pyx_v_ao.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_16 * __pyx_v_ae.strides[0]) ) + __pyx_t_15 * __pyx_v_ae.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ae.data + __pyx_t_14 * __pyx_v_ae.strides[0]) ) + __pyx_t_13 * __pyx_v_ae.strides[1]) ))), NULL)));
+
+102: 									 		     cye(aa[k,1],aa[l,1],beta, ao[k,1]-ao[l,1],ae[k,vu],ae[l,su]) * \
+
                      __pyx_t_54 = __pyx_v_k;
+                      __pyx_t_53 = 1;
+                      __pyx_t_52 = __pyx_v_l;
+                      __pyx_t_51 = 1;
+                      __pyx_t_50 = __pyx_v_k;
+                      __pyx_t_49 = 1;
+                      __pyx_t_48 = __pyx_v_l;
+                      __pyx_t_47 = 1;
+                      __pyx_t_28 = __pyx_v_k;
+                      __pyx_t_27 = __pyx_v_vu;
+                      __pyx_t_26 = __pyx_v_l;
+                      __pyx_t_25 = __pyx_v_su;
+
+103: 									 		     cye(aa[k,2],aa[l,2],gamma, ao[k,2]-ao[l,2],ae[k,vu],ae[l,su])
+
                      __pyx_t_24 = __pyx_v_k;
+                      __pyx_t_23 = 2;
+                      __pyx_t_22 = __pyx_v_l;
+                      __pyx_t_21 = 2;
+                      __pyx_t_20 = __pyx_v_k;
+                      __pyx_t_19 = 2;
+                      __pyx_t_18 = __pyx_v_l;
+                      __pyx_t_17 = 2;
+                      __pyx_t_16 = __pyx_v_k;
+                      __pyx_t_15 = __pyx_v_vu;
+                      __pyx_t_14 = __pyx_v_l;
+                      __pyx_t_13 = __pyx_v_su;
+
+104: 											s2*= pow(-1, alpha+beta+gamma) * clmb(psi+alpha, phi+beta, chi+gamma, 0, t1, \
+
                      __pyx_v_s2 = (__pyx_v_s2 * (pow(-1.0, ((__pyx_v_alpha + __pyx_v_beta) + __pyx_v_gamma)) * __pyx_f_5aello_clmb((__pyx_v_psi + __pyx_v_alpha), (__pyx_v_phi + __pyx_v_beta), (__pyx_v_chi + __pyx_v_gamma), 0, __pyx_v_t1, (__pyx_v_t2[0]), (__pyx_v_t2[1]), (__pyx_v_t2[2]))));
+
 105: 									 		                                      t2[0],t2[1],t2[2])
+
+106: 											s1 += s2
+
                      __pyx_v_s1 = (__pyx_v_s1 + __pyx_v_s2);
+                    }
+                  }
+                }
+              }
+            }
+          }
+
+107: 					s1 *= 2 * pow(pi, 2.5) / ((p*q) * sqrt(p+q))
+
          __pyx_v_s1 = (__pyx_v_s1 * ((2.0 * pow(__pyx_v_5aello_pi, 2.5)) / ((__pyx_v_p * __pyx_v_q) * sqrt((__pyx_v_p + __pyx_v_q)))));
+
+108: 					s += s1 * f
+
          __pyx_v_s = (__pyx_v_s + (__pyx_v_s1 * __pyx_v_f));
+        }
+      }
+    }
+  }
+
+109: 	return s
+
  __pyx_r = __pyx_v_s;
+  goto __pyx_L0;
+
 110: 
+
 111: #|-------------------------------------dipole helper-------------------------------------|
+
 112: 
+
+113: cdef double mu(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, double[3] kr, int direction):
+
static double __pyx_f_5aello_mu(int *__pyx_v_ia, int *__pyx_v_ja, double __pyx_v_ie, double __pyx_v_je, double *__pyx_v_ir, double *__pyx_v_jr, double *__pyx_v_kr, int __pyx_v_direction) {
+  double __pyx_v_p;
+  double __pyx_v_q[3];
+  double __pyx_v_ijr[3];
+  int __pyx_v_i;
+  double __pyx_v_u;
+  double __pyx_v_v;
+  double __pyx_v_t;
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("mu", 0);
+/* … */
+  /* function exit code */
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 114: 	# dipole moment
+
 115: 	cdef:
+
+116: 		double p = ie + je
+
  __pyx_v_p = (__pyx_v_ie + __pyx_v_je);
+
 117: 		double[3] q, ijr
+
 118: 		int i
+
 119: 		double u, v, t
+
 120: 
+
+121: 	for i in range(3):
+
  for (__pyx_t_1 = 0; __pyx_t_1 < 3; __pyx_t_1+=1) {
+    __pyx_v_i = __pyx_t_1;
+
+122: 		q[i] = ((ie*ir[i] + je*jr[i])/p) - kr[i]
+
    (__pyx_v_q[__pyx_v_i]) = ((((__pyx_v_ie * (__pyx_v_ir[__pyx_v_i])) + (__pyx_v_je * (__pyx_v_jr[__pyx_v_i]))) / __pyx_v_p) - (__pyx_v_kr[__pyx_v_i]));
+
+123: 		ijr[i] = ir[i] - jr[i]
+
    (__pyx_v_ijr[__pyx_v_i]) = ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_jr[__pyx_v_i]));
+  }
+
 124: 
+
+125: 	if direction == 1:
+
  __pyx_t_2 = ((__pyx_v_direction == 1) != 0);
+  if (__pyx_t_2) {
+/* … */
+  }
+
+126: 		u = cye(ia[0], ja[0], 1, ijr[0], ie, je) + q[0]* cye(ia[0], ja[0], 0, ijr[0], ie, je)
+
    __pyx_v_u = (__pyx_f_5aello_cye((__pyx_v_ia[0]), (__pyx_v_ja[0]), 1, (__pyx_v_ijr[0]), __pyx_v_ie, __pyx_v_je, NULL) + ((__pyx_v_q[0]) * __pyx_f_5aello_cye((__pyx_v_ia[0]), (__pyx_v_ja[0]), 0, (__pyx_v_ijr[0]), __pyx_v_ie, __pyx_v_je, NULL)));
+
+127: 		v = cye(ia[1], ja[1], 0, ijr[1], ie, je)
+
    __pyx_v_v = __pyx_f_5aello_cye((__pyx_v_ia[1]), (__pyx_v_ja[1]), 0, (__pyx_v_ijr[1]), __pyx_v_ie, __pyx_v_je, NULL);
+
+128: 		t = cye(ia[2], ja[2], 0, ijr[2], ie, je)
+
    __pyx_v_t = __pyx_f_5aello_cye((__pyx_v_ia[2]), (__pyx_v_ja[2]), 0, (__pyx_v_ijr[2]), __pyx_v_ie, __pyx_v_je, NULL);
+
+129: 		return u * v * t * pow(pi/p, 1.5)
+
    __pyx_r = (((__pyx_v_u * __pyx_v_v) * __pyx_v_t) * pow((__pyx_v_5aello_pi / __pyx_v_p), 1.5));
+    goto __pyx_L0;
+
+130: 	if direction == 2:
+
  __pyx_t_2 = ((__pyx_v_direction == 2) != 0);
+  if (__pyx_t_2) {
+/* … */
+  }
+
+131: 		u = cye(ia[0], ja[0], 0, ijr[0], ie, je)
+
    __pyx_v_u = __pyx_f_5aello_cye((__pyx_v_ia[0]), (__pyx_v_ja[0]), 0, (__pyx_v_ijr[0]), __pyx_v_ie, __pyx_v_je, NULL);
+
+132: 		v = cye(ia[1], ja[1], 1, ijr[1], ie, je) + q[1]* cye(ia[1], ja[1], 0, ijr[1], ie, je)
+
    __pyx_v_v = (__pyx_f_5aello_cye((__pyx_v_ia[1]), (__pyx_v_ja[1]), 1, (__pyx_v_ijr[1]), __pyx_v_ie, __pyx_v_je, NULL) + ((__pyx_v_q[1]) * __pyx_f_5aello_cye((__pyx_v_ia[1]), (__pyx_v_ja[1]), 0, (__pyx_v_ijr[1]), __pyx_v_ie, __pyx_v_je, NULL)));
+
+133: 		t = cye(ia[2], ja[2], 0, ijr[2], ie, je)
+
    __pyx_v_t = __pyx_f_5aello_cye((__pyx_v_ia[2]), (__pyx_v_ja[2]), 0, (__pyx_v_ijr[2]), __pyx_v_ie, __pyx_v_je, NULL);
+
+134: 		return u * v * t * pow(pi/p, 1.5)
+
    __pyx_r = (((__pyx_v_u * __pyx_v_v) * __pyx_v_t) * pow((__pyx_v_5aello_pi / __pyx_v_p), 1.5));
+    goto __pyx_L0;
+
+135: 	if direction == 3:
+
  __pyx_t_2 = ((__pyx_v_direction == 3) != 0);
+  if (__pyx_t_2) {
+/* … */
+  }
+
+136: 		u = cye(ia[0], ja[0], 0, ijr[0], ie, je)
+
    __pyx_v_u = __pyx_f_5aello_cye((__pyx_v_ia[0]), (__pyx_v_ja[0]), 0, (__pyx_v_ijr[0]), __pyx_v_ie, __pyx_v_je, NULL);
+
+137: 		v = cye(ia[1], ja[1], 0, ijr[1], ie, je)
+
    __pyx_v_v = __pyx_f_5aello_cye((__pyx_v_ia[1]), (__pyx_v_ja[1]), 0, (__pyx_v_ijr[1]), __pyx_v_ie, __pyx_v_je, NULL);
+
+138: 		t = cye(ia[2], ja[2], 1, ijr[2], ie, je) + q[2]* cye(ia[2], ja[2], 0, ijr[2], ie, je)
+
    __pyx_v_t = (__pyx_f_5aello_cye((__pyx_v_ia[2]), (__pyx_v_ja[2]), 1, (__pyx_v_ijr[2]), __pyx_v_ie, __pyx_v_je, NULL) + ((__pyx_v_q[2]) * __pyx_f_5aello_cye((__pyx_v_ia[2]), (__pyx_v_ja[2]), 0, (__pyx_v_ijr[2]), __pyx_v_ie, __pyx_v_je, NULL)));
+
+139: 		return u * v * t * pow(pi/p, 1.5)
+
    __pyx_r = (((__pyx_v_u * __pyx_v_v) * __pyx_v_t) * pow((__pyx_v_5aello_pi / __pyx_v_p), 1.5));
+    goto __pyx_L0;
+
 140: 
+
 141: #|---------------------------------end dipole helper-------------------------------------|
+
 142: 
+
 143: #|------------------------------------momentum helper------------------------------------|
+
+144: cdef double ang(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, double[3] kr, int direction):
+
static double __pyx_f_5aello_ang(int *__pyx_v_ia, int *__pyx_v_ja, double __pyx_v_ie, double __pyx_v_je, double *__pyx_v_ir, double *__pyx_v_jr, double *__pyx_v_kr, int __pyx_v_direction) {
+  double __pyx_v_p;
+  double __pyx_v_ijr[3];
+  int __pyx_v_i;
+  double __pyx_v_sd[3][3];
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("ang", 0);
+/* … */
+  /* function exit code */
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 145: 	# angular momentum
+
 146: 	cdef:
+
+147: 		double p = ie + je
+
  __pyx_v_p = (__pyx_v_ie + __pyx_v_je);
+
 148: 		double[3] ijr
+
 149: 		int i
+
 150: 		double u, v, t
+
 151: 		double sd[3][3]
+
 152: 
+
+153: 	for i in range(3):
+
  for (__pyx_t_1 = 0; __pyx_t_1 < 3; __pyx_t_1+=1) {
+    __pyx_v_i = __pyx_t_1;
+
+154: 		ijr[i] = ir[i] - jr[i]
+
    (__pyx_v_ijr[__pyx_v_i]) = ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_jr[__pyx_v_i]));
+  }
+
 155: 
+
+156: 	for i in range(3):
+
  for (__pyx_t_1 = 0; __pyx_t_1 < 3; __pyx_t_1+=1) {
+    __pyx_v_i = __pyx_t_1;
+
+157: 		sd[0][i] = cye(ia[i], ja[i], 0, ijr[i], ie, je)
+
    ((__pyx_v_sd[0])[__pyx_v_i]) = __pyx_f_5aello_cye((__pyx_v_ia[__pyx_v_i]), (__pyx_v_ja[__pyx_v_i]), 0, (__pyx_v_ijr[__pyx_v_i]), __pyx_v_ie, __pyx_v_je, NULL);
+
+158: 		sd[1][i] = cye(ia[i], ja[i], 0, ijr[i], ie, je, 1, ir[i]-kr[i])
+
    __pyx_t_3.__pyx_n = 2;
+    __pyx_t_3.n = 1;
+    __pyx_t_3.x = ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_kr[__pyx_v_i]));
+    __pyx_t_2 = __pyx_f_5aello_cye((__pyx_v_ia[__pyx_v_i]), (__pyx_v_ja[__pyx_v_i]), 0, (__pyx_v_ijr[__pyx_v_i]), __pyx_v_ie, __pyx_v_je, &__pyx_t_3); 
+    ((__pyx_v_sd[1])[__pyx_v_i]) = __pyx_t_2;
+
+159: 		sd[2][i] = (ja[i] * cye(ia[i], ja[i]-1, 0, ijr[i], ie, je)) - (2.0 * je * cye(ia[i], ja[i]+1, 0, ijr[i], ie, je))
+
    ((__pyx_v_sd[2])[__pyx_v_i]) = (((__pyx_v_ja[__pyx_v_i]) * __pyx_f_5aello_cye((__pyx_v_ia[__pyx_v_i]), ((__pyx_v_ja[__pyx_v_i]) - 1), 0, (__pyx_v_ijr[__pyx_v_i]), __pyx_v_ie, __pyx_v_je, NULL)) - ((2.0 * __pyx_v_je) * __pyx_f_5aello_cye((__pyx_v_ia[__pyx_v_i]), ((__pyx_v_ja[__pyx_v_i]) + 1), 0, (__pyx_v_ijr[__pyx_v_i]), __pyx_v_ie, __pyx_v_je, NULL)));
+  }
+
 160: 
+
+161: 	if direction == 1:
+
  switch (__pyx_v_direction) {
+    case 1:
+/* … */
+    break;
+    case 2:
+
+162: 		return -sd[0][0] * (sd[1][1] * sd[2][2] - sd[1][2] * sd[2][1]) * pow(pi/p, 1.5)
+
    __pyx_r = (((-((__pyx_v_sd[0])[0])) * ((((__pyx_v_sd[1])[1]) * ((__pyx_v_sd[2])[2])) - (((__pyx_v_sd[1])[2]) * ((__pyx_v_sd[2])[1])))) * pow((__pyx_v_5aello_pi / __pyx_v_p), 1.5));
+    goto __pyx_L0;
+
+163: 	elif direction == 2:
+
    break;
+    case 3:
+
+164: 		return -sd[0][1] * (sd[1][2] * sd[2][0] - sd[1][0] * sd[2][2]) * pow(pi/p, 1.5)
+
    __pyx_r = (((-((__pyx_v_sd[0])[1])) * ((((__pyx_v_sd[1])[2]) * ((__pyx_v_sd[2])[0])) - (((__pyx_v_sd[1])[0]) * ((__pyx_v_sd[2])[2])))) * pow((__pyx_v_5aello_pi / __pyx_v_p), 1.5));
+    goto __pyx_L0;
+
+165: 	elif direction == 3:
+
    break;
+    default: break;
+  }
+
+166: 		return -sd[0][2] * (sd[1][0] * sd[2][1] - sd[1][1] * sd[2][0]) * pow(pi/p, 1.5)
+
    __pyx_r = (((-((__pyx_v_sd[0])[2])) * ((((__pyx_v_sd[1])[0]) * ((__pyx_v_sd[2])[1])) - (((__pyx_v_sd[1])[1]) * ((__pyx_v_sd[2])[0])))) * pow((__pyx_v_5aello_pi / __pyx_v_p), 1.5));
+    goto __pyx_L0;
+
 167: 
+
 168: #|--------------------------------end momentum helper------------------------------------|
+
 169: 
+
 170: #get the atom and basis classes
+
+171: def aello(molAtom, molBasis, mode = 'scf', density = None, gauge = None):
+
/* Python wrapper */
+static PyObject *__pyx_pw_5aello_1aello(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyMethodDef __pyx_mdef_5aello_1aello = {"aello", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_5aello_1aello, METH_VARARGS|METH_KEYWORDS, 0};
+static PyObject *__pyx_pw_5aello_1aello(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  PyObject *__pyx_v_molAtom = 0;
+  PyObject *__pyx_v_molBasis = 0;
+  PyObject *__pyx_v_mode = 0;
+  PyObject *__pyx_v_density = 0;
+  PyObject *__pyx_v_gauge = 0;
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("aello (wrapper)", 0);
+  {
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_molAtom,&__pyx_n_s_molBasis,&__pyx_n_s_mode,&__pyx_n_s_density,&__pyx_n_s_gauge,0};
+    PyObject* values[5] = {0,0,0,0,0};
+    values[2] = ((PyObject *)__pyx_n_s_scf);
+    values[3] = ((PyObject *)Py_None);
+    values[4] = ((PyObject *)Py_None);
+    if (unlikely(__pyx_kwds)) {
+      Py_ssize_t kw_args;
+      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
+      switch (pos_args) {
+        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+        CYTHON_FALLTHROUGH;
+        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+        CYTHON_FALLTHROUGH;
+        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+        CYTHON_FALLTHROUGH;
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        CYTHON_FALLTHROUGH;
+        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        CYTHON_FALLTHROUGH;
+        case  0: break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+      kw_args = PyDict_Size(__pyx_kwds);
+      switch (pos_args) {
+        case  0:
+        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_molAtom)) != 0)) kw_args--;
+        else goto __pyx_L5_argtuple_error;
+        CYTHON_FALLTHROUGH;
+        case  1:
+        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_molBasis)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aello", 0, 2, 5, 1); __PYX_ERR(0, 171, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  2:
+        if (kw_args > 0) {
+          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_mode);
+          if (value) { values[2] = value; kw_args--; }
+        }
+        CYTHON_FALLTHROUGH;
+        case  3:
+        if (kw_args > 0) {
+          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_density);
+          if (value) { values[3] = value; kw_args--; }
+        }
+        CYTHON_FALLTHROUGH;
+        case  4:
+        if (kw_args > 0) {
+          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gauge);
+          if (value) { values[4] = value; kw_args--; }
+        }
+      }
+      if (unlikely(kw_args > 0)) {
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aello") < 0)) __PYX_ERR(0, 171, __pyx_L3_error)
+      }
+    } else {
+      switch (PyTuple_GET_SIZE(__pyx_args)) {
+        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+        CYTHON_FALLTHROUGH;
+        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+        CYTHON_FALLTHROUGH;
+        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+        CYTHON_FALLTHROUGH;
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+    }
+    __pyx_v_molAtom = values[0];
+    __pyx_v_molBasis = values[1];
+    __pyx_v_mode = values[2];
+    __pyx_v_density = values[3];
+    __pyx_v_gauge = values[4];
+  }
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("aello", 0, 2, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 171, __pyx_L3_error)
+  __pyx_L3_error:;
+  __Pyx_AddTraceback("aello.aello", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_RefNannyFinishContext();
+  return NULL;
+  __pyx_L4_argument_unpacking_done:;
+  __pyx_r = __pyx_pf_5aello_aello(__pyx_self, __pyx_v_molAtom, __pyx_v_molBasis, __pyx_v_mode, __pyx_v_density, __pyx_v_gauge);
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_5aello_aello(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_molAtom, PyObject *__pyx_v_molBasis, PyObject *__pyx_v_mode, PyObject *__pyx_v_density, PyObject *__pyx_v_gauge) {
+  int __pyx_v_na;
+  int __pyx_v_nb;
+  int __pyx_v_ng;
+  int __pyx_v_i;
+  int __pyx_v_j;
+  int __pyx_v_k;
+  int __pyx_v_l;
+  int __pyx_v_m;
+  int __pyx_v_n;
+  int __pyx_v_p;
+  int __pyx_v_q;
+  PyObject *__pyx_v_mx = NULL;
+  PyObject *__pyx_v_mz = NULL;
+  __Pyx_memviewslice __pyx_v_alo_x = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_z = { 0, 0, { 0 }, { 0 }, { 0 } };
+  PyObject *__pyx_v_me = NULL;
+  PyObject *__pyx_v_mc = NULL;
+  PyObject *__pyx_v_mn = NULL;
+  PyObject *__pyx_v_ma = NULL;
+  PyObject *__pyx_v_mo = NULL;
+  PyObject *__pyx_v_ml = NULL;
+  __Pyx_memviewslice __pyx_v_alo_e = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_c = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_n = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_a = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_o = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo = { 0, 0, { 0 }, { 0 }, { 0 } };
+  PyObject *__pyx_v_S = NULL;
+  __Pyx_memviewslice __pyx_v_overlap = { 0, 0, { 0 }, { 0 }, { 0 } };
+  double __pyx_v_s;
+  double __pyx_v_f;
+  PyObject *__pyx_v_K = NULL;
+  __Pyx_memviewslice __pyx_v_kinetic = { 0, 0, { 0 }, { 0 }, { 0 } };
+  double __pyx_v_t1;
+  double __pyx_v_t2;
+  double __pyx_v_t3;
+  PyObject *__pyx_v_J = NULL;
+  __Pyx_memviewslice __pyx_v_coulomb = { 0, 0, { 0 }, { 0 }, { 0 } };
+  double __pyx_v_r[3];
+  double __pyx_v_cp;
+  PyObject *__pyx_v_I = NULL;
+  CYTHON_UNUSED __Pyx_memviewslice __pyx_v_eri = { 0, 0, { 0 }, { 0 }, { 0 } };
+  int __pyx_v_idx;
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("aello", 0);
+/* … */
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_8);
+  __Pyx_XDECREF(__pyx_t_9);
+  __Pyx_XDECREF(__pyx_t_10);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_18, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_125, 1);
+  __Pyx_AddTraceback("aello.aello", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __Pyx_XDECREF(__pyx_v_mx);
+  __Pyx_XDECREF(__pyx_v_mz);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_x, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_z, 1);
+  __Pyx_XDECREF(__pyx_v_me);
+  __Pyx_XDECREF(__pyx_v_mc);
+  __Pyx_XDECREF(__pyx_v_mn);
+  __Pyx_XDECREF(__pyx_v_ma);
+  __Pyx_XDECREF(__pyx_v_mo);
+  __Pyx_XDECREF(__pyx_v_ml);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_e, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_c, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_n, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_a, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_o, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo, 1);
+  __Pyx_XDECREF(__pyx_v_S);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_overlap, 1);
+  __Pyx_XDECREF(__pyx_v_K);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_kinetic, 1);
+  __Pyx_XDECREF(__pyx_v_J);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_coulomb, 1);
+  __Pyx_XDECREF(__pyx_v_I);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_eri, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+/* … */
+  __pyx_tuple__21 = PyTuple_Pack(48, __pyx_n_s_molAtom, __pyx_n_s_molBasis, __pyx_n_s_mode, __pyx_n_s_density, __pyx_n_s_gauge, __pyx_n_s_na, __pyx_n_s_nb, __pyx_n_s_ng, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_l, __pyx_n_s_m, __pyx_n_s_n, __pyx_n_s_p, __pyx_n_s_q, __pyx_n_s_mx, __pyx_n_s_mz, __pyx_n_s_alo_x, __pyx_n_s_alo_z, __pyx_n_s_me, __pyx_n_s_mc, __pyx_n_s_mn, __pyx_n_s_ma, __pyx_n_s_mo, __pyx_n_s_ml, __pyx_n_s_alo_e, __pyx_n_s_alo_c, __pyx_n_s_alo_n, __pyx_n_s_alo_a, __pyx_n_s_alo_o, __pyx_n_s_alo, __pyx_n_s_S, __pyx_n_s_overlap, __pyx_n_s_s, __pyx_n_s_f, __pyx_n_s_K, __pyx_n_s_kinetic, __pyx_n_s_t1, __pyx_n_s_t2, __pyx_n_s_t3, __pyx_n_s_J, __pyx_n_s_coulomb, __pyx_n_s_r, __pyx_n_s_cp, __pyx_n_s_I, __pyx_n_s_eri, __pyx_n_s_idx); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 171, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_tuple__21);
+  __Pyx_GIVEREF(__pyx_tuple__21);
+/* … */
+  __pyx_t_2 = PyCFunction_NewEx(&__pyx_mdef_5aello_1aello, NULL, __pyx_n_s_aello); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 171, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_aello, __pyx_t_2) < 0) __PYX_ERR(0, 171, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(5, 0, 48, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_aello_pyx, __pyx_n_s_aello, 171, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 171, __pyx_L1_error)
+
 172: 
+
 173: 	cdef:
+
+174: 		int na = len(molAtom)
+
  __pyx_t_1 = PyObject_Length(__pyx_v_molAtom); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 174, __pyx_L1_error)
+  __pyx_v_na = __pyx_t_1;
+
+175: 		int nb = len(molBasis)
+
  __pyx_t_1 = PyObject_Length(__pyx_v_molBasis); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 175, __pyx_L1_error)
+  __pyx_v_nb = __pyx_t_1;
+
+176: 		int	ng = len(molBasis[0].co)
+
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_molBasis, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 176, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_co); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 176, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_1 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 176, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_v_ng = __pyx_t_1;
+
 177: 		int  i, j, k, l, m, n, p, q
+
 178: 
+
 179: 	#get largest primative length
+
+180: 	for i in range(nb):
+
  __pyx_t_4 = __pyx_v_nb;
+  __pyx_t_5 = __pyx_t_4;
+  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
+    __pyx_v_i = __pyx_t_6;
+
+181: 		j = len(molBasis[i].co)
+
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 181, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_co); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 181, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_2);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_1 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 181, __pyx_L1_error)
+    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_v_j = __pyx_t_1;
+
+182: 		if j > ng:
+
    __pyx_t_7 = ((__pyx_v_j > __pyx_v_ng) != 0);
+    if (__pyx_t_7) {
+/* … */
+    }
+  }
+
+183: 			ng = j
+
      __pyx_v_ng = __pyx_v_j;
+
 184: 
+
 185: 	#convert atom class properties to c views
+
+186: 	mx = np.empty([na,3], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 186, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_na); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 186, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_2);
+  __Pyx_INCREF(__pyx_int_3);
+  __Pyx_GIVEREF(__pyx_int_3);
+  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_int_3);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 186, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_8);
+  __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 186, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 186, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_double); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 186, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 186, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 186, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_v_mx = __pyx_t_10;
+  __pyx_t_10 = 0;
+
+187: 	mz = np.empty([na], dtype = np.short)
+
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 187, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_empty); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 187, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_na); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 187, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_10);
+  __pyx_t_10 = 0;
+  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 187, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_2);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 187, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 187, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_short); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 187, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 187, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 187, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_v_mz = __pyx_t_9;
+  __pyx_t_9 = 0;
+
 188: 	cdef:
+
+189: 		double[:,:] alo_x = mx
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_mx, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 189, __pyx_L1_error)
+  __pyx_v_alo_x = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+190: 		short[:]   alo_z = mz
+
  __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_short(__pyx_v_mz, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 190, __pyx_L1_error)
+  __pyx_v_alo_z = __pyx_t_12;
+  __pyx_t_12.memview = NULL;
+  __pyx_t_12.data = NULL;
+
+191: 	for p in range(0, na):
+
  __pyx_t_4 = __pyx_v_na;
+  __pyx_t_5 = __pyx_t_4;
+  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
+    __pyx_v_p = __pyx_t_6;
+
+192: 		for q in range(0, 3):
+
    for (__pyx_t_13 = 0; __pyx_t_13 < 3; __pyx_t_13+=1) {
+      __pyx_v_q = __pyx_t_13;
+
+193: 			alo_x[p,q] = molAtom[p].center[q]
+
      __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_molAtom, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 193, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_center); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 193, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_2);
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 193, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 193, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_15 = __pyx_v_p;
+      __pyx_t_16 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_15 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_x.strides[1]) )) = __pyx_t_14;
+    }
+
+194: 		alo_z[p] = molAtom[p].number
+
    __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_molAtom, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 194, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_9);
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_number); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 194, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_2);
+    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __pyx_t_17 = __Pyx_PyInt_As_short(__pyx_t_2); if (unlikely((__pyx_t_17 == (short)-1) && PyErr_Occurred())) __PYX_ERR(0, 194, __pyx_L1_error)
+    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_16 = __pyx_v_p;
+    *((short *) ( /* dim=0 */ (__pyx_v_alo_z.data + __pyx_t_16 * __pyx_v_alo_z.strides[0]) )) = __pyx_t_17;
+  }
+
 195: 
+
 196: 	#convert basis class properties to c-variables
+
+197: 	me = np.empty([nb,ng], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 197, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_ng); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 197, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 197, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_10);
+  __pyx_t_2 = 0;
+  __pyx_t_10 = 0;
+  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 197, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8);
+  __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 197, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_double); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 197, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 197, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 197, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_v_me = __pyx_t_3;
+  __pyx_t_3 = 0;
+
+198: 	mc = np.empty([nb,ng], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 198, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 198, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 198, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_ng); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 198, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 198, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_10);
+  __pyx_t_3 = 0;
+  __pyx_t_10 = 0;
+  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 198, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9);
+  __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 198, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 198, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_double); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 198, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 198, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_v_mc = __pyx_t_2;
+  __pyx_t_2 = 0;
+
+199: 	mn = np.empty([nb,ng], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 199, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_ng); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 199, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_10);
+  __pyx_t_2 = 0;
+  __pyx_t_10 = 0;
+  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 199, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8);
+  __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 199, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 199, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_double); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 199, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 199, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_v_mn = __pyx_t_3;
+  __pyx_t_3 = 0;
+
+200: 	ma = np.empty([nb,3],  dtype = np.short)
+
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 200, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 200, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 200, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_10 = PyList_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 200, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_3);
+  __Pyx_INCREF(__pyx_int_3);
+  __Pyx_GIVEREF(__pyx_int_3);
+  PyList_SET_ITEM(__pyx_t_10, 1, __pyx_int_3);
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 200, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10);
+  __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 200, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 200, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_short); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 200, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 200, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 200, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_v_ma = __pyx_t_2;
+  __pyx_t_2 = 0;
+
+201: 	mo = np.empty([nb,3],  dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 201, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 201, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
+  __Pyx_INCREF(__pyx_int_3);
+  __Pyx_GIVEREF(__pyx_int_3);
+  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_int_3);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 201, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
+  __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 201, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 201, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_double); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 201, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 201, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 201, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_v_mo = __pyx_t_9;
+  __pyx_t_9 = 0;
+
+202: 	ml = np.empty([nb],    dtype = np.short)
+
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 202, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 202, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 202, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_9);
+  __pyx_t_9 = 0;
+  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 202, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 202, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 202, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_short); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 202, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 202, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 202, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_v_ml = __pyx_t_8;
+  __pyx_t_8 = 0;
+
 203: 	cdef:
+
+204: 		double[:,:] alo_e = me
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_me, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 204, __pyx_L1_error)
+  __pyx_v_alo_e = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+205: 		double[:,:] alo_c = mc
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_mc, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 205, __pyx_L1_error)
+  __pyx_v_alo_c = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+206: 		double[:,:] alo_n = mn
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_mn, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 206, __pyx_L1_error)
+  __pyx_v_alo_n = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+207: 		short[:,:]  alo_a = ma
+
  __pyx_t_18 = __Pyx_PyObject_to_MemoryviewSlice_dsds_short(__pyx_v_ma, PyBUF_WRITABLE); if (unlikely(!__pyx_t_18.memview)) __PYX_ERR(0, 207, __pyx_L1_error)
+  __pyx_v_alo_a = __pyx_t_18;
+  __pyx_t_18.memview = NULL;
+  __pyx_t_18.data = NULL;
+
+208: 		double[:,:] alo_o = mo
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_mo, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 208, __pyx_L1_error)
+  __pyx_v_alo_o = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+209: 		short[:]    alo   = ml
+
  __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_short(__pyx_v_ml, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 209, __pyx_L1_error)
+  __pyx_v_alo = __pyx_t_12;
+  __pyx_t_12.memview = NULL;
+  __pyx_t_12.data = NULL;
+
 210: 
+
+211: 	for p in range(0, nb):
+
  __pyx_t_4 = __pyx_v_nb;
+  __pyx_t_5 = __pyx_t_4;
+  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
+    __pyx_v_p = __pyx_t_6;
+
+212: 		alo[p] = len(molBasis[p].co)
+
    __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 212, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_8);
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_co); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 212, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_2);
+    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+    __pyx_t_1 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 212, __pyx_L1_error)
+    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_16 = __pyx_v_p;
+    *((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_16 * __pyx_v_alo.strides[0]) )) = __pyx_t_1;
+
+213: 		for q in range(0, len(molBasis[p].co)):
+
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 213, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_co); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 213, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_8);
+    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_1 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 213, __pyx_L1_error)
+    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+    __pyx_t_19 = __pyx_t_1;
+    for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_19; __pyx_t_13+=1) {
+      __pyx_v_q = __pyx_t_13;
+
+214: 			alo_e[p,q] = molBasis[p].ex[q]
+
      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 214, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_8);
+      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_ex); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 214, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_2);
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 214, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_8);
+      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 214, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_16 = __pyx_v_p;
+      __pyx_t_15 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_16 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_e.strides[1]) )) = __pyx_t_14;
+
+215: 			alo_c[p,q] = molBasis[p].co[q]
+
      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 215, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_8);
+      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_co); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 215, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_2);
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 215, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_8);
+      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 215, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_15 = __pyx_v_p;
+      __pyx_t_16 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_15 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_c.strides[1]) )) = __pyx_t_14;
+
+216: 			alo_n[p,q] = molBasis[p].normal[q]
+
      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 216, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_8);
+      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_normal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 216, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_2);
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 216, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_8);
+      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 216, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_16 = __pyx_v_p;
+      __pyx_t_15 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_16 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_n.strides[1]) )) = __pyx_t_14;
+    }
+
+217: 		for q in range(0, 3):
+
    for (__pyx_t_13 = 0; __pyx_t_13 < 3; __pyx_t_13+=1) {
+      __pyx_v_q = __pyx_t_13;
+
+218: 			alo_a[p,q] = molBasis[p].momentum[q]
+
      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 218, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_8);
+      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_momentum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 218, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_2);
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 218, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_8);
+      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_17 = __Pyx_PyInt_As_short(__pyx_t_8); if (unlikely((__pyx_t_17 == (short)-1) && PyErr_Occurred())) __PYX_ERR(0, 218, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_15 = __pyx_v_p;
+      __pyx_t_16 = __pyx_v_q;
+      *((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_15 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_a.strides[1]) )) = __pyx_t_17;
+
+219: 			alo_o[p,q] = molBasis[p].center[q]
+
      __pyx_t_8 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 219, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_8);
+      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_center); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 219, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_2);
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 219, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_8);
+      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 219, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+      __pyx_t_16 = __pyx_v_p;
+      __pyx_t_15 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_16 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_o.strides[1]) )) = __pyx_t_14;
+    }
+  }
+
 220: 
+
+221: 	if mode == 'dipole':
+
  __pyx_t_7 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_dipole, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 221, __pyx_L1_error)
+  if (__pyx_t_7) {
+/* … */
+  }
+
+222: 		return aelloDipole(alo_n, alo_c, alo_e, alo_a, alo_o, alo, alo_z, alo_x, na, nb, molAtom, density, gauge)
+
    __Pyx_XDECREF(__pyx_r);
+    __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_density, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 222, __pyx_L1_error)
+    if (!(likely(PyString_CheckExact(__pyx_v_gauge))||((__pyx_v_gauge) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_gauge)->tp_name), 0))) __PYX_ERR(0, 222, __pyx_L1_error)
+    __pyx_t_8 = __pyx_f_5aello_aelloDipole(__pyx_v_alo_n, __pyx_v_alo_c, __pyx_v_alo_e, __pyx_v_alo_a, __pyx_v_alo_o, __pyx_v_alo, __pyx_v_alo_z, __pyx_v_alo_x, __pyx_v_na, __pyx_v_nb, __pyx_v_molAtom, __pyx_t_11, ((PyObject*)__pyx_v_gauge), 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 222, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_8);
+    __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
+    __pyx_t_11.memview = NULL;
+    __pyx_t_11.data = NULL;
+    __pyx_r = __pyx_t_8;
+    __pyx_t_8 = 0;
+    goto __pyx_L0;
+
 223: 
+
+224: 	if mode == 'angular':
+
  __pyx_t_7 = (__Pyx_PyString_Equals(__pyx_v_mode, __pyx_n_s_angular, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 224, __pyx_L1_error)
+  if (__pyx_t_7) {
+/* … */
+  }
+
+225: 		return aelloAngular(alo_n, alo_c, alo_e, alo_a, alo_o, alo, alo_z, alo_x, na, nb, molAtom, gauge)
+
    __Pyx_XDECREF(__pyx_r);
+    if (!(likely(PyString_CheckExact(__pyx_v_gauge))||((__pyx_v_gauge) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "str", Py_TYPE(__pyx_v_gauge)->tp_name), 0))) __PYX_ERR(0, 225, __pyx_L1_error)
+    __pyx_t_8 = __pyx_f_5aello_aelloAngular(__pyx_v_alo_n, __pyx_v_alo_c, __pyx_v_alo_e, __pyx_v_alo_a, __pyx_v_alo_o, __pyx_v_alo, __pyx_v_alo_z, __pyx_v_alo_x, __pyx_v_na, __pyx_v_nb, __pyx_v_molAtom, ((PyObject*)__pyx_v_gauge), 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 225, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_8);
+    __pyx_r = __pyx_t_8;
+    __pyx_t_8 = 0;
+    goto __pyx_L0;
+
 226: 
+
 227: #-------------------------------------Begin Overlap---------------------------------------|
+
+228: 	S = np.empty([nb,nb], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 228, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 228, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 228, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 228, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 228, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_9);
+  __pyx_t_8 = 0;
+  __pyx_t_9 = 0;
+  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 228, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3);
+  __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 228, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 228, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_double); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 228, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 228, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 228, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_v_S = __pyx_t_10;
+  __pyx_t_10 = 0;
+
 229: 	cdef:
+
+230: 		double [:,:] overlap  = S
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_S, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 230, __pyx_L1_error)
+  __pyx_v_overlap = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
 231: 		double s, f
+
 232: 
+
+233: 	for p in range(0, nb):
+
  __pyx_t_4 = __pyx_v_nb;
+  __pyx_t_5 = __pyx_t_4;
+  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
+    __pyx_v_p = __pyx_t_6;
+
+234: 		for q in range(p, nb):
+
    __pyx_t_13 = __pyx_v_nb;
+    __pyx_t_20 = __pyx_t_13;
+    for (__pyx_t_21 = __pyx_v_p; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
+      __pyx_v_q = __pyx_t_21;
+
 235: 
+
+236: 			s = 0.0
+
      __pyx_v_s = 0.0;
+
+237: 			for i in range(0, alo[p]):
+
      __pyx_t_15 = __pyx_v_p;
+      __pyx_t_17 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_15 * __pyx_v_alo.strides[0]) )));
+      __pyx_t_22 = __pyx_t_17;
+      for (__pyx_t_23 = 0; __pyx_t_23 < __pyx_t_22; __pyx_t_23+=1) {
+        __pyx_v_i = __pyx_t_23;
+
+238: 				for j in range(0, alo[q]):
+
        __pyx_t_15 = __pyx_v_q;
+        __pyx_t_24 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_15 * __pyx_v_alo.strides[0]) )));
+        __pyx_t_25 = __pyx_t_24;
+        for (__pyx_t_26 = 0; __pyx_t_26 < __pyx_t_25; __pyx_t_26+=1) {
+          __pyx_v_j = __pyx_t_26;
+
+239: 					f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j]
+
          __pyx_t_15 = __pyx_v_p;
+          __pyx_t_16 = __pyx_v_i;
+          __pyx_t_27 = __pyx_v_q;
+          __pyx_t_28 = __pyx_v_j;
+          __pyx_t_29 = __pyx_v_p;
+          __pyx_t_30 = __pyx_v_i;
+          __pyx_t_31 = __pyx_v_q;
+          __pyx_t_32 = __pyx_v_j;
+          __pyx_v_f = ((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_15 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_n.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_27 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_28 * __pyx_v_alo_n.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_29 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_30 * __pyx_v_alo_c.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_31 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_32 * __pyx_v_alo_c.strides[1]) ))));
+
+240: 					s += ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2],  \
+
          __pyx_t_32 = __pyx_v_p;
+          __pyx_t_31 = 0;
+          __pyx_t_30 = __pyx_v_p;
+          __pyx_t_29 = 1;
+          __pyx_t_28 = __pyx_v_p;
+          __pyx_t_27 = 2;
+          __pyx_t_16 = __pyx_v_q;
+          __pyx_t_15 = 0;
+          __pyx_t_33 = __pyx_v_q;
+          __pyx_t_34 = 1;
+          __pyx_t_35 = __pyx_v_q;
+          __pyx_t_36 = 2;
+/* … */
+          __pyx_v_s = (__pyx_v_s + (__pyx_f_5aello_ovlp((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_32 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_31 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_30 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_29 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_28 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_27 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_16 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_33 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_34 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_35 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_36 * __pyx_v_alo_a.strides[1]) ))), 0, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_37 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_38 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_39 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_40 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_41 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_42 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_43 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_44 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_45 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_46 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_47 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_48 * __pyx_v_alo_o.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_49 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_50 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_51 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_52 * __pyx_v_alo_e.strides[1]) )))) * __pyx_v_f));
+        }
+      }
+
+241:  						      0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \
+
          __pyx_t_37 = __pyx_v_p;
+          __pyx_t_38 = 0;
+          __pyx_t_39 = __pyx_v_q;
+          __pyx_t_40 = 0;
+          __pyx_t_41 = __pyx_v_p;
+          __pyx_t_42 = 1;
+          __pyx_t_43 = __pyx_v_q;
+          __pyx_t_44 = 1;
+          __pyx_t_45 = __pyx_v_p;
+          __pyx_t_46 = 2;
+          __pyx_t_47 = __pyx_v_q;
+          __pyx_t_48 = 2;
+
+242:  						      alo_e[p,i], alo_e[q,j]) * f
+
          __pyx_t_49 = __pyx_v_p;
+          __pyx_t_50 = __pyx_v_i;
+          __pyx_t_51 = __pyx_v_q;
+          __pyx_t_52 = __pyx_v_j;
+
 243: 
+
+244: 			overlap[p,q] = s
+
      __pyx_t_52 = __pyx_v_p;
+      __pyx_t_51 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_overlap.data + __pyx_t_52 * __pyx_v_overlap.strides[0]) ) + __pyx_t_51 * __pyx_v_overlap.strides[1]) )) = __pyx_v_s;
+
+245: 			if p != q:
+
      __pyx_t_7 = ((__pyx_v_p != __pyx_v_q) != 0);
+      if (__pyx_t_7) {
+/* … */
+      }
+    }
+  }
+
+246: 				overlap[q,p] = overlap[p,q]
+
        __pyx_t_51 = __pyx_v_p;
+        __pyx_t_52 = __pyx_v_q;
+        __pyx_t_50 = __pyx_v_q;
+        __pyx_t_49 = __pyx_v_p;
+        *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_overlap.data + __pyx_t_50 * __pyx_v_overlap.strides[0]) ) + __pyx_t_49 * __pyx_v_overlap.strides[1]) )) = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_overlap.data + __pyx_t_51 * __pyx_v_overlap.strides[0]) ) + __pyx_t_52 * __pyx_v_overlap.strides[1]) )));
+
 247: #----------------------------------------End Overlap----------------------------------------|
+
 248: 
+
 249: #---------------------------------------Begin Kinetic---------------------------------------|
+
+250: 	K = np.empty([nb,nb], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 250, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 250, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 250, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 250, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_9);
+  __pyx_t_10 = 0;
+  __pyx_t_9 = 0;
+  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 250, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 250, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 250, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_double); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 250, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 250, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 250, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_v_K = __pyx_t_8;
+  __pyx_t_8 = 0;
+
 251: 	cdef:
+
+252: 		double[:,:] kinetic = K
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_K, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 252, __pyx_L1_error)
+  __pyx_v_kinetic = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
 253: 		double t1, t2, t3
+
 254: 
+
+255: 	for p in range(0, nb):
+
  __pyx_t_4 = __pyx_v_nb;
+  __pyx_t_5 = __pyx_t_4;
+  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
+    __pyx_v_p = __pyx_t_6;
+
+256: 		for q in range(p, nb):
+
    __pyx_t_13 = __pyx_v_nb;
+    __pyx_t_20 = __pyx_t_13;
+    for (__pyx_t_21 = __pyx_v_p; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
+      __pyx_v_q = __pyx_t_21;
+
 257: 
+
+258: 			s = 0.0
+
      __pyx_v_s = 0.0;
+
+259: 			for i in range(0, alo[p]):
+
      __pyx_t_52 = __pyx_v_p;
+      __pyx_t_17 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_52 * __pyx_v_alo.strides[0]) )));
+      __pyx_t_22 = __pyx_t_17;
+      for (__pyx_t_23 = 0; __pyx_t_23 < __pyx_t_22; __pyx_t_23+=1) {
+        __pyx_v_i = __pyx_t_23;
+
+260: 				for j in range(0, alo[q]):
+
        __pyx_t_52 = __pyx_v_q;
+        __pyx_t_24 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_52 * __pyx_v_alo.strides[0]) )));
+        __pyx_t_25 = __pyx_t_24;
+        for (__pyx_t_26 = 0; __pyx_t_26 < __pyx_t_25; __pyx_t_26+=1) {
+          __pyx_v_j = __pyx_t_26;
+
+261: 					f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j]
+
          __pyx_t_52 = __pyx_v_p;
+          __pyx_t_51 = __pyx_v_i;
+          __pyx_t_49 = __pyx_v_q;
+          __pyx_t_50 = __pyx_v_j;
+          __pyx_t_48 = __pyx_v_p;
+          __pyx_t_47 = __pyx_v_i;
+          __pyx_t_46 = __pyx_v_q;
+          __pyx_t_45 = __pyx_v_j;
+          __pyx_v_f = ((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_52 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_51 * __pyx_v_alo_n.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_49 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_50 * __pyx_v_alo_n.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_48 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_47 * __pyx_v_alo_c.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_46 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_45 * __pyx_v_alo_c.strides[1]) ))));
+
+262: 					t1 = alo_e[q,j] * (2*(alo_a[q,0] + alo_a[q,1] + alo_a[q,2]) + 3) * \
+
          __pyx_t_45 = __pyx_v_q;
+          __pyx_t_46 = __pyx_v_j;
+          __pyx_t_47 = __pyx_v_q;
+          __pyx_t_48 = 0;
+          __pyx_t_50 = __pyx_v_q;
+          __pyx_t_49 = 1;
+          __pyx_t_51 = __pyx_v_q;
+          __pyx_t_52 = 2;
+/* … */
+          __pyx_v_t1 = (((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_45 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_46 * __pyx_v_alo_e.strides[1]) ))) * ((2 * (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_47 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_48 * __pyx_v_alo_a.strides[1]) ))) + (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_50 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_49 * __pyx_v_alo_a.strides[1]) )))) + (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_51 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_52 * __pyx_v_alo_a.strides[1]) ))))) + 3)) * __pyx_f_5aello_ovlp((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_44 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_43 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_42 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_41 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_40 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_39 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_38 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_37 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_36 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_35 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_34 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_33 * __pyx_v_alo_a.strides[1]) ))), 0, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_15 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_27 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_28 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_29 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_30 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_31 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_32 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_53 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_54 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_55 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_56 * __pyx_v_alo_o.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_57 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_58 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_59 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_60 * __pyx_v_alo_e.strides[1]) )))));
+
+263: 						 ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2],  \
+
          __pyx_t_44 = __pyx_v_p;
+          __pyx_t_43 = 0;
+          __pyx_t_42 = __pyx_v_p;
+          __pyx_t_41 = 1;
+          __pyx_t_40 = __pyx_v_p;
+          __pyx_t_39 = 2;
+          __pyx_t_38 = __pyx_v_q;
+          __pyx_t_37 = 0;
+          __pyx_t_36 = __pyx_v_q;
+          __pyx_t_35 = 1;
+          __pyx_t_34 = __pyx_v_q;
+          __pyx_t_33 = 2;
+
+264:  						      0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \
+
          __pyx_t_15 = __pyx_v_p;
+          __pyx_t_16 = 0;
+          __pyx_t_27 = __pyx_v_q;
+          __pyx_t_28 = 0;
+          __pyx_t_29 = __pyx_v_p;
+          __pyx_t_30 = 1;
+          __pyx_t_31 = __pyx_v_q;
+          __pyx_t_32 = 1;
+          __pyx_t_53 = __pyx_v_p;
+          __pyx_t_54 = 2;
+          __pyx_t_55 = __pyx_v_q;
+          __pyx_t_56 = 2;
+
+265:  						      alo_e[p,i], alo_e[q,j])
+
          __pyx_t_57 = __pyx_v_p;
+          __pyx_t_58 = __pyx_v_i;
+          __pyx_t_59 = __pyx_v_q;
+          __pyx_t_60 = __pyx_v_j;
+
 266: 
+
+267: 					t2 = -2 * alo_e[q,j] * alo_e[q,j] * ( \
+
          __pyx_t_60 = __pyx_v_q;
+          __pyx_t_59 = __pyx_v_j;
+          __pyx_t_58 = __pyx_v_q;
+          __pyx_t_57 = __pyx_v_j;
+/* … */
+          __pyx_v_t2 = (((-2.0 * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_60 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_59 * __pyx_v_alo_e.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_58 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_57 * __pyx_v_alo_e.strides[1]) )))) * ((__pyx_f_5aello_ovlp((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_56 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_55 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_54 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_53 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_32 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_31 * __pyx_v_alo_a.strides[1]) ))), ((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_30 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_29 * __pyx_v_alo_a.strides[1]) ))) + 2), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_28 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_27 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_16 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_a.strides[1]) ))), 0, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_33 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_34 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_35 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_36 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_37 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_38 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_39 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_40 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_41 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_42 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_43 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_44 * __pyx_v_alo_o.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_52 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_51 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_49 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_50 * __pyx_v_alo_e.strides[1]) )))) + __pyx_f_5aello_ovlp((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_48 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_47 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_46 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_45 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_61 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_62 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_63 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_64 * __pyx_v_alo_a.strides[1]) ))), ((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_65 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_66 * __pyx_v_alo_a.strides[1]) ))) + 2), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_67 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_68 * __pyx_v_alo_a.strides[1]) ))), 0, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_69 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_70 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_71 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_72 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_73 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_74 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_75 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_76 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_77 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_78 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_79 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_80 * __pyx_v_alo_o.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_81 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_82 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_83 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_84 * __pyx_v_alo_e.strides[1]) ))))) + __pyx_f_5aello_ovlp((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_85 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_86 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_87 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_88 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_89 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_90 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_91 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_92 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_93 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_94 * __pyx_v_alo_a.strides[1]) ))), ((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_95 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_96 * __pyx_v_alo_a.strides[1]) ))) + 2), 0, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_97 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_98 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_99 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_100 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_101 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_102 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_103 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_104 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_105 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_106 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_107 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_108 * __pyx_v_alo_o.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_109 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_110 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_111 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_112 * __pyx_v_alo_e.strides[1]) ))))));
+
+268: 						 ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0]+2, alo_a[q,1], alo_a[q,2],  \
+
          __pyx_t_56 = __pyx_v_p;
+          __pyx_t_55 = 0;
+          __pyx_t_54 = __pyx_v_p;
+          __pyx_t_53 = 1;
+          __pyx_t_32 = __pyx_v_p;
+          __pyx_t_31 = 2;
+          __pyx_t_30 = __pyx_v_q;
+          __pyx_t_29 = 0;
+          __pyx_t_28 = __pyx_v_q;
+          __pyx_t_27 = 1;
+          __pyx_t_16 = __pyx_v_q;
+          __pyx_t_15 = 2;
+
+269:  						      0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \
+
          __pyx_t_33 = __pyx_v_p;
+          __pyx_t_34 = 0;
+          __pyx_t_35 = __pyx_v_q;
+          __pyx_t_36 = 0;
+          __pyx_t_37 = __pyx_v_p;
+          __pyx_t_38 = 1;
+          __pyx_t_39 = __pyx_v_q;
+          __pyx_t_40 = 1;
+          __pyx_t_41 = __pyx_v_p;
+          __pyx_t_42 = 2;
+          __pyx_t_43 = __pyx_v_q;
+          __pyx_t_44 = 2;
+
+270:  						      alo_e[p,i], alo_e[q,j])	+ \
+
          __pyx_t_52 = __pyx_v_p;
+          __pyx_t_51 = __pyx_v_i;
+          __pyx_t_49 = __pyx_v_q;
+          __pyx_t_50 = __pyx_v_j;
+
+271: 						 ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1]+2, alo_a[q,2],  \
+
          __pyx_t_48 = __pyx_v_p;
+          __pyx_t_47 = 0;
+          __pyx_t_46 = __pyx_v_p;
+          __pyx_t_45 = 1;
+          __pyx_t_61 = __pyx_v_p;
+          __pyx_t_62 = 2;
+          __pyx_t_63 = __pyx_v_q;
+          __pyx_t_64 = 0;
+          __pyx_t_65 = __pyx_v_q;
+          __pyx_t_66 = 1;
+          __pyx_t_67 = __pyx_v_q;
+          __pyx_t_68 = 2;
+
+272:  						      0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \
+
          __pyx_t_69 = __pyx_v_p;
+          __pyx_t_70 = 0;
+          __pyx_t_71 = __pyx_v_q;
+          __pyx_t_72 = 0;
+          __pyx_t_73 = __pyx_v_p;
+          __pyx_t_74 = 1;
+          __pyx_t_75 = __pyx_v_q;
+          __pyx_t_76 = 1;
+          __pyx_t_77 = __pyx_v_p;
+          __pyx_t_78 = 2;
+          __pyx_t_79 = __pyx_v_q;
+          __pyx_t_80 = 2;
+
+273:  						      alo_e[p,i], alo_e[q,j])	+ \
+
          __pyx_t_81 = __pyx_v_p;
+          __pyx_t_82 = __pyx_v_i;
+          __pyx_t_83 = __pyx_v_q;
+          __pyx_t_84 = __pyx_v_j;
+
+274: 						 ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2]+2,  \
+
          __pyx_t_85 = __pyx_v_p;
+          __pyx_t_86 = 0;
+          __pyx_t_87 = __pyx_v_p;
+          __pyx_t_88 = 1;
+          __pyx_t_89 = __pyx_v_p;
+          __pyx_t_90 = 2;
+          __pyx_t_91 = __pyx_v_q;
+          __pyx_t_92 = 0;
+          __pyx_t_93 = __pyx_v_q;
+          __pyx_t_94 = 1;
+          __pyx_t_95 = __pyx_v_q;
+          __pyx_t_96 = 2;
+
+275:  						      0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \
+
          __pyx_t_97 = __pyx_v_p;
+          __pyx_t_98 = 0;
+          __pyx_t_99 = __pyx_v_q;
+          __pyx_t_100 = 0;
+          __pyx_t_101 = __pyx_v_p;
+          __pyx_t_102 = 1;
+          __pyx_t_103 = __pyx_v_q;
+          __pyx_t_104 = 1;
+          __pyx_t_105 = __pyx_v_p;
+          __pyx_t_106 = 2;
+          __pyx_t_107 = __pyx_v_q;
+          __pyx_t_108 = 2;
+
+276:  						      alo_e[p,i], alo_e[q,j])  )
+
          __pyx_t_109 = __pyx_v_p;
+          __pyx_t_110 = __pyx_v_i;
+          __pyx_t_111 = __pyx_v_q;
+          __pyx_t_112 = __pyx_v_j;
+
 277: 
+
 278: 
+
+279: 					t3 = alo_a[q,0] * (alo_a[q,0] - 1) * \
+
          __pyx_t_112 = __pyx_v_q;
+          __pyx_t_111 = 0;
+          __pyx_t_110 = __pyx_v_q;
+          __pyx_t_109 = 0;
+/* … */
+          __pyx_v_t3 = (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_112 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_111 * __pyx_v_alo_a.strides[1]) ))) * ((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_110 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_109 * __pyx_v_alo_a.strides[1]) ))) - 1)) * __pyx_f_5aello_ovlp((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_108 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_107 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_106 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_105 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_104 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_103 * __pyx_v_alo_a.strides[1]) ))), ((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_102 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_101 * __pyx_v_alo_a.strides[1]) ))) - 2), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_100 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_99 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_98 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_97 * __pyx_v_alo_a.strides[1]) ))), 0, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_96 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_95 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_94 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_93 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_92 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_91 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_90 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_89 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_88 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_87 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_86 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_85 * __pyx_v_alo_o.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_84 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_83 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_82 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_81 * __pyx_v_alo_e.strides[1]) )))));
+
+280: 						 ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0]-2, alo_a[q,1], alo_a[q,2],  \
+
          __pyx_t_108 = __pyx_v_p;
+          __pyx_t_107 = 0;
+          __pyx_t_106 = __pyx_v_p;
+          __pyx_t_105 = 1;
+          __pyx_t_104 = __pyx_v_p;
+          __pyx_t_103 = 2;
+          __pyx_t_102 = __pyx_v_q;
+          __pyx_t_101 = 0;
+          __pyx_t_100 = __pyx_v_q;
+          __pyx_t_99 = 1;
+          __pyx_t_98 = __pyx_v_q;
+          __pyx_t_97 = 2;
+
+281:  						      0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \
+
          __pyx_t_96 = __pyx_v_p;
+          __pyx_t_95 = 0;
+          __pyx_t_94 = __pyx_v_q;
+          __pyx_t_93 = 0;
+          __pyx_t_92 = __pyx_v_p;
+          __pyx_t_91 = 1;
+          __pyx_t_90 = __pyx_v_q;
+          __pyx_t_89 = 1;
+          __pyx_t_88 = __pyx_v_p;
+          __pyx_t_87 = 2;
+          __pyx_t_86 = __pyx_v_q;
+          __pyx_t_85 = 2;
+
+282:  						      alo_e[p,i], alo_e[q,j])
+
          __pyx_t_84 = __pyx_v_p;
+          __pyx_t_83 = __pyx_v_i;
+          __pyx_t_82 = __pyx_v_q;
+          __pyx_t_81 = __pyx_v_j;
+
+283: 					t3 +=alo_a[q,1] * (alo_a[q,1] - 1) * \
+
          __pyx_t_81 = __pyx_v_q;
+          __pyx_t_82 = 1;
+          __pyx_t_83 = __pyx_v_q;
+          __pyx_t_84 = 1;
+/* … */
+          __pyx_v_t3 = (__pyx_v_t3 + (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_81 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_82 * __pyx_v_alo_a.strides[1]) ))) * ((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_83 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_84 * __pyx_v_alo_a.strides[1]) ))) - 1)) * __pyx_f_5aello_ovlp((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_85 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_86 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_87 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_88 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_89 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_90 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_91 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_92 * __pyx_v_alo_a.strides[1]) ))), ((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_93 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_94 * __pyx_v_alo_a.strides[1]) ))) - 2), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_95 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_96 * __pyx_v_alo_a.strides[1]) ))), 0, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_97 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_98 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_99 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_100 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_101 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_102 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_103 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_104 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_105 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_106 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_107 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_108 * __pyx_v_alo_o.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_109 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_110 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_111 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_112 * __pyx_v_alo_e.strides[1]) ))))));
+
+284: 						 ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1]-2, alo_a[q,2],  \
+
          __pyx_t_85 = __pyx_v_p;
+          __pyx_t_86 = 0;
+          __pyx_t_87 = __pyx_v_p;
+          __pyx_t_88 = 1;
+          __pyx_t_89 = __pyx_v_p;
+          __pyx_t_90 = 2;
+          __pyx_t_91 = __pyx_v_q;
+          __pyx_t_92 = 0;
+          __pyx_t_93 = __pyx_v_q;
+          __pyx_t_94 = 1;
+          __pyx_t_95 = __pyx_v_q;
+          __pyx_t_96 = 2;
+
+285:  						      0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \
+
          __pyx_t_97 = __pyx_v_p;
+          __pyx_t_98 = 0;
+          __pyx_t_99 = __pyx_v_q;
+          __pyx_t_100 = 0;
+          __pyx_t_101 = __pyx_v_p;
+          __pyx_t_102 = 1;
+          __pyx_t_103 = __pyx_v_q;
+          __pyx_t_104 = 1;
+          __pyx_t_105 = __pyx_v_p;
+          __pyx_t_106 = 2;
+          __pyx_t_107 = __pyx_v_q;
+          __pyx_t_108 = 2;
+
+286:  						      alo_e[p,i], alo_e[q,j])
+
          __pyx_t_109 = __pyx_v_p;
+          __pyx_t_110 = __pyx_v_i;
+          __pyx_t_111 = __pyx_v_q;
+          __pyx_t_112 = __pyx_v_j;
+
+287: 					t3 +=alo_a[q,2] * (alo_a[q,2] - 1) * \
+
          __pyx_t_112 = __pyx_v_q;
+          __pyx_t_111 = 2;
+          __pyx_t_110 = __pyx_v_q;
+          __pyx_t_109 = 2;
+/* … */
+          __pyx_v_t3 = (__pyx_v_t3 + (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_112 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_111 * __pyx_v_alo_a.strides[1]) ))) * ((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_110 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_109 * __pyx_v_alo_a.strides[1]) ))) - 1)) * __pyx_f_5aello_ovlp((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_108 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_107 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_106 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_105 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_104 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_103 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_102 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_101 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_100 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_99 * __pyx_v_alo_a.strides[1]) ))), ((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_98 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_97 * __pyx_v_alo_a.strides[1]) ))) - 2), 0, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_96 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_95 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_94 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_93 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_92 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_91 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_90 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_89 * __pyx_v_alo_o.strides[1]) )))), ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_88 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_87 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_86 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_85 * __pyx_v_alo_o.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_84 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_83 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_82 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_81 * __pyx_v_alo_e.strides[1]) ))))));
+
+288: 						 ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2]-2,  \
+
          __pyx_t_108 = __pyx_v_p;
+          __pyx_t_107 = 0;
+          __pyx_t_106 = __pyx_v_p;
+          __pyx_t_105 = 1;
+          __pyx_t_104 = __pyx_v_p;
+          __pyx_t_103 = 2;
+          __pyx_t_102 = __pyx_v_q;
+          __pyx_t_101 = 0;
+          __pyx_t_100 = __pyx_v_q;
+          __pyx_t_99 = 1;
+          __pyx_t_98 = __pyx_v_q;
+          __pyx_t_97 = 2;
+
+289:  						      0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \
+
          __pyx_t_96 = __pyx_v_p;
+          __pyx_t_95 = 0;
+          __pyx_t_94 = __pyx_v_q;
+          __pyx_t_93 = 0;
+          __pyx_t_92 = __pyx_v_p;
+          __pyx_t_91 = 1;
+          __pyx_t_90 = __pyx_v_q;
+          __pyx_t_89 = 1;
+          __pyx_t_88 = __pyx_v_p;
+          __pyx_t_87 = 2;
+          __pyx_t_86 = __pyx_v_q;
+          __pyx_t_85 = 2;
+
+290:  						      alo_e[p,i], alo_e[q,j])
+
          __pyx_t_84 = __pyx_v_p;
+          __pyx_t_83 = __pyx_v_i;
+          __pyx_t_82 = __pyx_v_q;
+          __pyx_t_81 = __pyx_v_j;
+
 291: 
+
+292: 					s += (t1 + t2 - 0.5*t3) * f
+
          __pyx_v_s = (__pyx_v_s + (((__pyx_v_t1 + __pyx_v_t2) - (0.5 * __pyx_v_t3)) * __pyx_v_f));
+        }
+      }
+
 293: 
+
+294: 			kinetic[p,q] = s
+
      __pyx_t_81 = __pyx_v_p;
+      __pyx_t_82 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_kinetic.data + __pyx_t_81 * __pyx_v_kinetic.strides[0]) ) + __pyx_t_82 * __pyx_v_kinetic.strides[1]) )) = __pyx_v_s;
+
+295: 			if p != q:
+
      __pyx_t_7 = ((__pyx_v_p != __pyx_v_q) != 0);
+      if (__pyx_t_7) {
+/* … */
+      }
+    }
+  }
+
+296: 				kinetic[q,p] = kinetic[p,q]
+
        __pyx_t_82 = __pyx_v_p;
+        __pyx_t_81 = __pyx_v_q;
+        __pyx_t_83 = __pyx_v_q;
+        __pyx_t_84 = __pyx_v_p;
+        *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_kinetic.data + __pyx_t_83 * __pyx_v_kinetic.strides[0]) ) + __pyx_t_84 * __pyx_v_kinetic.strides[1]) )) = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_kinetic.data + __pyx_t_82 * __pyx_v_kinetic.strides[0]) ) + __pyx_t_81 * __pyx_v_kinetic.strides[1]) )));
+
 297: #----------------------------------------End Kinetic----------------------------------------|
+
 298: 
+
 299: #---------------------------------------Begin Coulomb---------------------------------------|
+
+300: 	J = np.empty([nb,nb], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_9);
+  __pyx_t_8 = 0;
+  __pyx_t_9 = 0;
+  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3);
+  __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_double); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 300, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 300, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_v_J = __pyx_t_10;
+  __pyx_t_10 = 0;
+
 301: 	cdef:
+
+302: 		double[:,:] coulomb = J
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_J, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 302, __pyx_L1_error)
+  __pyx_v_coulomb = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
 303: 		double r[3]
+
 304: 		double cp
+
 305: 
+
+306: 	for p in range(0, nb):
+
  __pyx_t_4 = __pyx_v_nb;
+  __pyx_t_5 = __pyx_t_4;
+  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
+    __pyx_v_p = __pyx_t_6;
+
+307: 		for q in range(p, nb):
+
    __pyx_t_13 = __pyx_v_nb;
+    __pyx_t_20 = __pyx_t_13;
+    for (__pyx_t_21 = __pyx_v_p; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
+      __pyx_v_q = __pyx_t_21;
+
 308: 
+
+309: 			t1 = 0.0
+
      __pyx_v_t1 = 0.0;
+
+310: 			for k in range(0, na):
+
      __pyx_t_23 = __pyx_v_na;
+      __pyx_t_26 = __pyx_t_23;
+      for (__pyx_t_113 = 0; __pyx_t_113 < __pyx_t_26; __pyx_t_113+=1) {
+        __pyx_v_k = __pyx_t_113;
+
 311: 
+
+312: 				s = 0.0
+
        __pyx_v_s = 0.0;
+
+313: 				for i in range(0, alo[p]):
+
        __pyx_t_81 = __pyx_v_p;
+        __pyx_t_17 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_81 * __pyx_v_alo.strides[0]) )));
+        __pyx_t_22 = __pyx_t_17;
+        for (__pyx_t_114 = 0; __pyx_t_114 < __pyx_t_22; __pyx_t_114+=1) {
+          __pyx_v_i = __pyx_t_114;
+
+314: 					for j in range(0, alo[q]):
+
          __pyx_t_81 = __pyx_v_q;
+          __pyx_t_24 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_81 * __pyx_v_alo.strides[0]) )));
+          __pyx_t_25 = __pyx_t_24;
+          for (__pyx_t_115 = 0; __pyx_t_115 < __pyx_t_25; __pyx_t_115+=1) {
+            __pyx_v_j = __pyx_t_115;
+
+315: 						f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j]
+
            __pyx_t_81 = __pyx_v_p;
+            __pyx_t_82 = __pyx_v_i;
+            __pyx_t_84 = __pyx_v_q;
+            __pyx_t_83 = __pyx_v_j;
+            __pyx_t_85 = __pyx_v_p;
+            __pyx_t_86 = __pyx_v_i;
+            __pyx_t_87 = __pyx_v_q;
+            __pyx_t_88 = __pyx_v_j;
+            __pyx_v_f = ((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_81 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_82 * __pyx_v_alo_n.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_84 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_83 * __pyx_v_alo_n.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_85 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_86 * __pyx_v_alo_c.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_87 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_88 * __pyx_v_alo_c.strides[1]) ))));
+
+316: 						cp = alo_e[p,i] + alo_e[q,j]
+
            __pyx_t_88 = __pyx_v_p;
+            __pyx_t_87 = __pyx_v_i;
+            __pyx_t_86 = __pyx_v_q;
+            __pyx_t_85 = __pyx_v_j;
+            __pyx_v_cp = ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_88 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_87 * __pyx_v_alo_e.strides[1]) ))) + (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_86 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_85 * __pyx_v_alo_e.strides[1]) ))));
+
+317: 						for n in range(0, 3):
+
            for (__pyx_t_116 = 0; __pyx_t_116 < 3; __pyx_t_116+=1) {
+              __pyx_v_n = __pyx_t_116;
+
+318: 							r[n] = ((alo_e[p,i] * alo_o[p,n]) + (alo_e[q,j] * alo_o[q,n]))/cp - alo_x[k,n]
+
              __pyx_t_85 = __pyx_v_p;
+              __pyx_t_86 = __pyx_v_i;
+              __pyx_t_87 = __pyx_v_p;
+              __pyx_t_88 = __pyx_v_n;
+              __pyx_t_83 = __pyx_v_q;
+              __pyx_t_84 = __pyx_v_j;
+              __pyx_t_82 = __pyx_v_q;
+              __pyx_t_81 = __pyx_v_n;
+              __pyx_t_89 = __pyx_v_k;
+              __pyx_t_90 = __pyx_v_n;
+              (__pyx_v_r[__pyx_v_n]) = (((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_85 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_86 * __pyx_v_alo_e.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_87 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_88 * __pyx_v_alo_o.strides[1]) )))) + ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_83 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_84 * __pyx_v_alo_e.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_82 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_81 * __pyx_v_alo_o.strides[1]) ))))) / __pyx_v_cp) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_89 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_90 * __pyx_v_alo_x.strides[1]) ))));
+            }
+
 319: 
+
+320: 						t2 = 0.0
+
            __pyx_v_t2 = 0.0;
+
+321: 						for l in range(0, alo_a[p,0]+alo_a[q,0]+1):
+
            __pyx_t_90 = __pyx_v_p;
+            __pyx_t_89 = 0;
+            __pyx_t_81 = __pyx_v_q;
+            __pyx_t_82 = 0;
+            __pyx_t_117 = (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_90 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_89 * __pyx_v_alo_a.strides[1]) ))) + (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_81 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_82 * __pyx_v_alo_a.strides[1]) )))) + 1);
+            __pyx_t_118 = __pyx_t_117;
+            for (__pyx_t_116 = 0; __pyx_t_116 < __pyx_t_118; __pyx_t_116+=1) {
+              __pyx_v_l = __pyx_t_116;
+
+322: 							for m in range(0, alo_a[p,1]+alo_a[q,1]+1):
+
              __pyx_t_82 = __pyx_v_p;
+              __pyx_t_81 = 1;
+              __pyx_t_89 = __pyx_v_q;
+              __pyx_t_90 = 1;
+              __pyx_t_119 = (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_82 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_81 * __pyx_v_alo_a.strides[1]) ))) + (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_89 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_90 * __pyx_v_alo_a.strides[1]) )))) + 1);
+              __pyx_t_120 = __pyx_t_119;
+              for (__pyx_t_121 = 0; __pyx_t_121 < __pyx_t_120; __pyx_t_121+=1) {
+                __pyx_v_m = __pyx_t_121;
+
+323: 								for n in range(0, alo_a[p,2]+alo_a[q,2]+1):
+
                __pyx_t_90 = __pyx_v_p;
+                __pyx_t_89 = 2;
+                __pyx_t_81 = __pyx_v_q;
+                __pyx_t_82 = 2;
+                __pyx_t_122 = (((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_90 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_89 * __pyx_v_alo_a.strides[1]) ))) + (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_81 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_82 * __pyx_v_alo_a.strides[1]) )))) + 1);
+                __pyx_t_123 = __pyx_t_122;
+                for (__pyx_t_124 = 0; __pyx_t_124 < __pyx_t_123; __pyx_t_124+=1) {
+                  __pyx_v_n = __pyx_t_124;
+
+324: 									t2 += cye(alo_a[p,0], alo_a[q,0], l, alo_o[p,0]- alo_o[q,0], alo_e[p,i], alo_e[q,j]) * \
+
                  __pyx_t_82 = __pyx_v_p;
+                  __pyx_t_81 = 0;
+                  __pyx_t_89 = __pyx_v_q;
+                  __pyx_t_90 = 0;
+                  __pyx_t_84 = __pyx_v_p;
+                  __pyx_t_83 = 0;
+                  __pyx_t_88 = __pyx_v_q;
+                  __pyx_t_87 = 0;
+                  __pyx_t_86 = __pyx_v_p;
+                  __pyx_t_85 = __pyx_v_i;
+                  __pyx_t_91 = __pyx_v_q;
+                  __pyx_t_92 = __pyx_v_j;
+/* … */
+                  __pyx_v_t2 = (__pyx_v_t2 + (((__pyx_f_5aello_cye((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_82 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_81 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_89 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_90 * __pyx_v_alo_a.strides[1]) ))), __pyx_v_l, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_84 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_83 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_88 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_87 * __pyx_v_alo_o.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_86 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_85 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_91 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_92 * __pyx_v_alo_e.strides[1]) ))), NULL) * __pyx_f_5aello_cye((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_93 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_94 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_95 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_96 * __pyx_v_alo_a.strides[1]) ))), __pyx_v_m, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_97 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_98 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_99 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_100 * __pyx_v_alo_o.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_101 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_102 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_103 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_104 * __pyx_v_alo_e.strides[1]) ))), NULL)) * __pyx_f_5aello_cye((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_105 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_106 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_107 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_108 * __pyx_v_alo_a.strides[1]) ))), __pyx_v_n, ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_109 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_110 * __pyx_v_alo_o.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_111 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_112 * __pyx_v_alo_o.strides[1]) )))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_80 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_79 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_78 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_77 * __pyx_v_alo_e.strides[1]) ))), NULL)) * __pyx_f_5aello_clmb(__pyx_v_l, __pyx_v_m, __pyx_v_n, 0, __pyx_v_cp, (__pyx_v_r[0]), (__pyx_v_r[1]), (__pyx_v_r[2]))));
+                }
+              }
+            }
+
+325: 										  cye(alo_a[p,1], alo_a[q,1], m, alo_o[p,1]- alo_o[q,1], alo_e[p,i], alo_e[q,j]) * \
+
                  __pyx_t_93 = __pyx_v_p;
+                  __pyx_t_94 = 1;
+                  __pyx_t_95 = __pyx_v_q;
+                  __pyx_t_96 = 1;
+                  __pyx_t_97 = __pyx_v_p;
+                  __pyx_t_98 = 1;
+                  __pyx_t_99 = __pyx_v_q;
+                  __pyx_t_100 = 1;
+                  __pyx_t_101 = __pyx_v_p;
+                  __pyx_t_102 = __pyx_v_i;
+                  __pyx_t_103 = __pyx_v_q;
+                  __pyx_t_104 = __pyx_v_j;
+
+326: 										  cye(alo_a[p,2], alo_a[q,2], n, alo_o[p,2]- alo_o[q,2], alo_e[p,i], alo_e[q,j]) * \
+
                  __pyx_t_105 = __pyx_v_p;
+                  __pyx_t_106 = 2;
+                  __pyx_t_107 = __pyx_v_q;
+                  __pyx_t_108 = 2;
+                  __pyx_t_109 = __pyx_v_p;
+                  __pyx_t_110 = 2;
+                  __pyx_t_111 = __pyx_v_q;
+                  __pyx_t_112 = 2;
+                  __pyx_t_80 = __pyx_v_p;
+                  __pyx_t_79 = __pyx_v_i;
+                  __pyx_t_78 = __pyx_v_q;
+                  __pyx_t_77 = __pyx_v_j;
+
 327: 										  clmb(l, m, n, 0, cp, r[0], r[1], r[2])
+
 328: 
+
+329: 						t2 = t2 * pi * 2.0 / cp
+
            __pyx_v_t2 = (((__pyx_v_t2 * __pyx_v_5aello_pi) * 2.0) / __pyx_v_cp);
+
+330: 						s += t2 * f
+
            __pyx_v_s = (__pyx_v_s + (__pyx_v_t2 * __pyx_v_f));
+          }
+        }
+
+331: 				t1 -= s * alo_z[k]
+
        __pyx_t_77 = __pyx_v_k;
+        __pyx_v_t1 = (__pyx_v_t1 - (__pyx_v_s * (*((short *) ( /* dim=0 */ (__pyx_v_alo_z.data + __pyx_t_77 * __pyx_v_alo_z.strides[0]) )))));
+      }
+
+332: 			coulomb[p,q] = t1
+
      __pyx_t_77 = __pyx_v_p;
+      __pyx_t_78 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_coulomb.data + __pyx_t_77 * __pyx_v_coulomb.strides[0]) ) + __pyx_t_78 * __pyx_v_coulomb.strides[1]) )) = __pyx_v_t1;
+
+333: 			if p != q:
+
      __pyx_t_7 = ((__pyx_v_p != __pyx_v_q) != 0);
+      if (__pyx_t_7) {
+/* … */
+      }
+    }
+  }
+
+334: 				coulomb[q,p] = coulomb[p,q]
+
        __pyx_t_78 = __pyx_v_p;
+        __pyx_t_77 = __pyx_v_q;
+        __pyx_t_79 = __pyx_v_q;
+        __pyx_t_80 = __pyx_v_p;
+        *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_coulomb.data + __pyx_t_79 * __pyx_v_coulomb.strides[0]) ) + __pyx_t_80 * __pyx_v_coulomb.strides[1]) )) = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_coulomb.data + __pyx_t_78 * __pyx_v_coulomb.strides[0]) ) + __pyx_t_77 * __pyx_v_coulomb.strides[1]) )));
+
 335: 
+
 336: #----------------------------------------End Coulomb----------------------------------------|
+
 337: 
+
 338: #----------------------------------Begin electron repulsion---------------------------------|
+
+339: 	i = int(nb*(nb-1)/2 + nb)
+
  __pyx_v_i = ((int)(((__pyx_v_nb * (__pyx_v_nb - 1)) / 2) + __pyx_v_nb));
+
+340: 	j = (i*(i+1)/2)
+
  __pyx_v_j = ((__pyx_v_i * (__pyx_v_i + 1)) / 2);
+
+341: 	I = np.empty([j], dtype=np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 341, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 341, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_j); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 341, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 341, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_10);
+  __pyx_t_10 = 0;
+  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 341, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9);
+  __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 341, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 341, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_double); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 341, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 341, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 341, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_v_I = __pyx_t_8;
+  __pyx_t_8 = 0;
+
 342: 	cdef:
+
+343: 		double[:] eri = I
+
  __pyx_t_125 = __Pyx_PyObject_to_MemoryviewSlice_ds_double(__pyx_v_I, PyBUF_WRITABLE); if (unlikely(!__pyx_t_125.memview)) __PYX_ERR(0, 343, __pyx_L1_error)
+  __pyx_v_eri = __pyx_t_125;
+  __pyx_t_125.memview = NULL;
+  __pyx_t_125.data = NULL;
+
 344: 		int idx
+
+345: 	for i in range(0, nb):
+
  __pyx_t_4 = __pyx_v_nb;
+  __pyx_t_5 = __pyx_t_4;
+  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
+    __pyx_v_i = __pyx_t_6;
+
+346: 		for j in range(0, i+1):
+
    __pyx_t_117 = (__pyx_v_i + 1);
+    __pyx_t_118 = __pyx_t_117;
+    for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_118; __pyx_t_13+=1) {
+      __pyx_v_j = __pyx_t_13;
+
+347: 			m = i * (i+1)/2 + j
+
      __pyx_v_m = (((__pyx_v_i * (__pyx_v_i + 1)) / 2) + __pyx_v_j);
+
+348: 			for k in range(0, nb):
+
      __pyx_t_20 = __pyx_v_nb;
+      __pyx_t_21 = __pyx_t_20;
+      for (__pyx_t_23 = 0; __pyx_t_23 < __pyx_t_21; __pyx_t_23+=1) {
+        __pyx_v_k = __pyx_t_23;
+
+349: 				for l in range(0, k+1):
+
        __pyx_t_119 = (__pyx_v_k + 1);
+        __pyx_t_120 = __pyx_t_119;
+        for (__pyx_t_26 = 0; __pyx_t_26 < __pyx_t_120; __pyx_t_26+=1) {
+          __pyx_v_l = __pyx_t_26;
+
+350: 					n = k*(k+1)/2 + l
+
          __pyx_v_n = (((__pyx_v_k * (__pyx_v_k + 1)) / 2) + __pyx_v_l);
+
+351: 					if m >= n:
+
          __pyx_t_7 = ((__pyx_v_m >= __pyx_v_n) != 0);
+          if (__pyx_t_7) {
+/* … */
+          }
+        }
+      }
+    }
+  }
+
+352: 						idx = int(m*(m+1)/2 + n)
+
            __pyx_v_idx = ((int)(((__pyx_v_m * (__pyx_v_m + 1)) / 2) + __pyx_v_n));
+
+353: 						I[idx] = tei(alo[i], alo[j], alo[k], alo[l], alo_a, alo_n, alo_c, alo_e, alo_o, i, j, k, l)
+
            __pyx_t_77 = __pyx_v_i;
+            __pyx_t_78 = __pyx_v_j;
+            __pyx_t_80 = __pyx_v_k;
+            __pyx_t_79 = __pyx_v_l;
+            __pyx_t_8 = PyFloat_FromDouble(__pyx_f_5aello_tei((*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_77 * __pyx_v_alo.strides[0]) ))), (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_78 * __pyx_v_alo.strides[0]) ))), (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_80 * __pyx_v_alo.strides[0]) ))), (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_79 * __pyx_v_alo.strides[0]) ))), __pyx_v_alo_a, __pyx_v_alo_n, __pyx_v_alo_c, __pyx_v_alo_e, __pyx_v_alo_o, __pyx_v_i, __pyx_v_j, __pyx_v_k, __pyx_v_l)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 353, __pyx_L1_error)
+            __Pyx_GOTREF(__pyx_t_8);
+            if (unlikely(__Pyx_SetItemInt(__pyx_v_I, __pyx_v_idx, __pyx_t_8, int, 1, __Pyx_PyInt_From_int, 0, 0, 0) < 0)) __PYX_ERR(0, 353, __pyx_L1_error)
+            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+
 354: #|----------------------------------End electron repulsion----------------------------------|
+
 355: 
+
+356: 	return S, K, J, I
+
  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_8 = PyTuple_New(4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_INCREF(__pyx_v_S);
+  __Pyx_GIVEREF(__pyx_v_S);
+  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_v_S);
+  __Pyx_INCREF(__pyx_v_K);
+  __Pyx_GIVEREF(__pyx_v_K);
+  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_v_K);
+  __Pyx_INCREF(__pyx_v_J);
+  __Pyx_GIVEREF(__pyx_v_J);
+  PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_J);
+  __Pyx_INCREF(__pyx_v_I);
+  __Pyx_GIVEREF(__pyx_v_I);
+  PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_v_I);
+  __pyx_r = __pyx_t_8;
+  __pyx_t_8 = 0;
+  goto __pyx_L0;
+
 357: 
+
 358: #---------------------------------------Begin Dipole----------------------------------------|
+
+359: cpdef aelloDipole(double[:,:] alo_n, double[:,:] alo_c, double[:,:] alo_e, short[:,:] alo_a, double[:,:] alo_o, \
+
static PyObject *__pyx_pw_5aello_3aelloDipole(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_f_5aello_aelloDipole(__Pyx_memviewslice __pyx_v_alo_n, __Pyx_memviewslice __pyx_v_alo_c, __Pyx_memviewslice __pyx_v_alo_e, __Pyx_memviewslice __pyx_v_alo_a, __Pyx_memviewslice __pyx_v_alo_o, __Pyx_memviewslice __pyx_v_alo, __Pyx_memviewslice __pyx_v_alo_z, __Pyx_memviewslice __pyx_v_alo_x, int __pyx_v_na, int __pyx_v_nb, PyObject *__pyx_v_molAtom, __Pyx_memviewslice __pyx_v_density, PyObject *__pyx_v_gauge, CYTHON_UNUSED int __pyx_skip_dispatch) {
+  PyObject *__pyx_v_D = NULL;
+  __Pyx_memviewslice __pyx_v_dipole = { 0, 0, { 0 }, { 0 }, { 0 } };
+  double __pyx_v_gaugeOrigin[3];
+  int __pyx_v_direction;
+  int __pyx_v_p;
+  int __pyx_v_q;
+  int __pyx_v_i;
+  int __pyx_v_j;
+  double __pyx_v_s;
+  double __pyx_v_f;
+  double __pyx_v_dipoleComponent[3];
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("aelloDipole", 0);
+/* … */
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
+  __Pyx_AddTraceback("aello.aelloDipole", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_XDECREF(__pyx_v_D);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_dipole, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* Python wrapper */
+static PyObject *__pyx_pw_5aello_3aelloDipole(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_pw_5aello_3aelloDipole(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  __Pyx_memviewslice __pyx_v_alo_n = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_c = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_e = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_a = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_o = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_z = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_x = { 0, 0, { 0 }, { 0 }, { 0 } };
+  int __pyx_v_na;
+  int __pyx_v_nb;
+  PyObject *__pyx_v_molAtom = 0;
+  __Pyx_memviewslice __pyx_v_density = { 0, 0, { 0 }, { 0 }, { 0 } };
+  PyObject *__pyx_v_gauge = 0;
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("aelloDipole (wrapper)", 0);
+  {
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alo_n,&__pyx_n_s_alo_c,&__pyx_n_s_alo_e,&__pyx_n_s_alo_a,&__pyx_n_s_alo_o,&__pyx_n_s_alo,&__pyx_n_s_alo_z,&__pyx_n_s_alo_x,&__pyx_n_s_na,&__pyx_n_s_nb,&__pyx_n_s_molAtom,&__pyx_n_s_density,&__pyx_n_s_gauge,0};
+    PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
+    if (unlikely(__pyx_kwds)) {
+      Py_ssize_t kw_args;
+      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
+      switch (pos_args) {
+        case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
+        CYTHON_FALLTHROUGH;
+        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
+        CYTHON_FALLTHROUGH;
+        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
+        CYTHON_FALLTHROUGH;
+        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
+        CYTHON_FALLTHROUGH;
+        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
+        CYTHON_FALLTHROUGH;
+        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
+        CYTHON_FALLTHROUGH;
+        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
+        CYTHON_FALLTHROUGH;
+        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
+        CYTHON_FALLTHROUGH;
+        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+        CYTHON_FALLTHROUGH;
+        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+        CYTHON_FALLTHROUGH;
+        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+        CYTHON_FALLTHROUGH;
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        CYTHON_FALLTHROUGH;
+        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        CYTHON_FALLTHROUGH;
+        case  0: break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+      kw_args = PyDict_Size(__pyx_kwds);
+      switch (pos_args) {
+        case  0:
+        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_n)) != 0)) kw_args--;
+        else goto __pyx_L5_argtuple_error;
+        CYTHON_FALLTHROUGH;
+        case  1:
+        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_c)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 1); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  2:
+        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_e)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 2); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  3:
+        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_a)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 3); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  4:
+        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_o)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 4); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  5:
+        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 5); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  6:
+        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_z)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 6); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  7:
+        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_x)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 7); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  8:
+        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_na)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 8); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  9:
+        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nb)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 9); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case 10:
+        if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_molAtom)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 10); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case 11:
+        if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_density)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 11); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case 12:
+        if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gauge)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, 12); __PYX_ERR(0, 359, __pyx_L3_error)
+        }
+      }
+      if (unlikely(kw_args > 0)) {
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aelloDipole") < 0)) __PYX_ERR(0, 359, __pyx_L3_error)
+      }
+    } else if (PyTuple_GET_SIZE(__pyx_args) != 13) {
+      goto __pyx_L5_argtuple_error;
+    } else {
+      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
+      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
+      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
+      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
+      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
+      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
+      values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
+      values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
+    }
+    __pyx_v_alo_n = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_n.memview)) __PYX_ERR(0, 359, __pyx_L3_error)
+    __pyx_v_alo_c = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_c.memview)) __PYX_ERR(0, 359, __pyx_L3_error)
+    __pyx_v_alo_e = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_e.memview)) __PYX_ERR(0, 359, __pyx_L3_error)
+    __pyx_v_alo_a = __Pyx_PyObject_to_MemoryviewSlice_dsds_short(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_a.memview)) __PYX_ERR(0, 359, __pyx_L3_error)
+    __pyx_v_alo_o = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_o.memview)) __PYX_ERR(0, 359, __pyx_L3_error)
+    __pyx_v_alo = __Pyx_PyObject_to_MemoryviewSlice_ds_short(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo.memview)) __PYX_ERR(0, 360, __pyx_L3_error)
+    __pyx_v_alo_z = __Pyx_PyObject_to_MemoryviewSlice_ds_short(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_z.memview)) __PYX_ERR(0, 360, __pyx_L3_error)
+    __pyx_v_alo_x = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[7], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_x.memview)) __PYX_ERR(0, 360, __pyx_L3_error)
+    __pyx_v_na = __Pyx_PyInt_As_int(values[8]); if (unlikely((__pyx_v_na == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 360, __pyx_L3_error)
+    __pyx_v_nb = __Pyx_PyInt_As_int(values[9]); if (unlikely((__pyx_v_nb == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 360, __pyx_L3_error)
+    __pyx_v_molAtom = values[10];
+    __pyx_v_density = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[11], PyBUF_WRITABLE); if (unlikely(!__pyx_v_density.memview)) __PYX_ERR(0, 360, __pyx_L3_error)
+    __pyx_v_gauge = ((PyObject*)values[12]);
+  }
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("aelloDipole", 1, 13, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 359, __pyx_L3_error)
+  __pyx_L3_error:;
+  __Pyx_AddTraceback("aello.aelloDipole", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_RefNannyFinishContext();
+  return NULL;
+  __pyx_L4_argument_unpacking_done:;
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gauge), (&PyString_Type), 1, "gauge", 1))) __PYX_ERR(0, 360, __pyx_L1_error)
+  __pyx_r = __pyx_pf_5aello_2aelloDipole(__pyx_self, __pyx_v_alo_n, __pyx_v_alo_c, __pyx_v_alo_e, __pyx_v_alo_a, __pyx_v_alo_o, __pyx_v_alo, __pyx_v_alo_z, __pyx_v_alo_x, __pyx_v_na, __pyx_v_nb, __pyx_v_molAtom, __pyx_v_density, __pyx_v_gauge);
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+
+  /* function exit code */
+  goto __pyx_L0;
+  __pyx_L1_error:;
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_5aello_2aelloDipole(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_alo_n, __Pyx_memviewslice __pyx_v_alo_c, __Pyx_memviewslice __pyx_v_alo_e, __Pyx_memviewslice __pyx_v_alo_a, __Pyx_memviewslice __pyx_v_alo_o, __Pyx_memviewslice __pyx_v_alo, __Pyx_memviewslice __pyx_v_alo_z, __Pyx_memviewslice __pyx_v_alo_x, int __pyx_v_na, int __pyx_v_nb, PyObject *__pyx_v_molAtom, __Pyx_memviewslice __pyx_v_density, PyObject *__pyx_v_gauge) {
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("aelloDipole", 0);
+  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_1 = __pyx_f_5aello_aelloDipole(__pyx_v_alo_n, __pyx_v_alo_c, __pyx_v_alo_e, __pyx_v_alo_a, __pyx_v_alo_o, __pyx_v_alo, __pyx_v_alo_z, __pyx_v_alo_x, __pyx_v_na, __pyx_v_nb, __pyx_v_molAtom, __pyx_v_density, __pyx_v_gauge, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_r = __pyx_t_1;
+  __pyx_t_1 = 0;
+  goto __pyx_L0;
+
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_AddTraceback("aello.aelloDipole", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_n, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_c, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_e, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_a, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_o, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_z, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_x, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_density, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 360: 	                    short[:] alo, short[:] alo_z, double[:,:] alo_x, int na, int nb, object molAtom, double[:,:] density, str gauge):
+
 361: 
+
+362: 	D = np.empty([nb,nb], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 362, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 362, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 362, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GIVEREF(__pyx_t_1);
+  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
+  __pyx_t_1 = 0;
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 362, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
+  __pyx_t_4 = 0;
+  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 362, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 362, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_double); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 362, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 362, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 362, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_v_D = __pyx_t_5;
+  __pyx_t_5 = 0;
+
 363: 	cdef:
+
+364: 		double[:,:] dipole = D
+
  __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_D, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 364, __pyx_L1_error)
+  __pyx_v_dipole = __pyx_t_6;
+  __pyx_t_6.memview = NULL;
+  __pyx_t_6.data = NULL;
+
+365: 		double[3] gaugeOrigin = gaugeCenter(molAtom, gauge)
+
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_gaugeCenter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 365, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_3 = NULL;
+  __pyx_t_7 = 0;
+  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
+    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
+    if (likely(__pyx_t_3)) {
+      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
+      __Pyx_INCREF(__pyx_t_3);
+      __Pyx_INCREF(function);
+      __Pyx_DECREF_SET(__pyx_t_4, function);
+      __pyx_t_7 = 1;
+    }
+  }
+  #if CYTHON_FAST_PYCALL
+  if (PyFunction_Check(__pyx_t_4)) {
+    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_molAtom, __pyx_v_gauge};
+    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 365, __pyx_L1_error)
+    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_GOTREF(__pyx_t_5);
+  } else
+  #endif
+  #if CYTHON_FAST_PYCCALL
+  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
+    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_molAtom, __pyx_v_gauge};
+    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 365, __pyx_L1_error)
+    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_GOTREF(__pyx_t_5);
+  } else
+  #endif
+  {
+    __pyx_t_2 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 365, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_2);
+    if (__pyx_t_3) {
+      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL;
+    }
+    __Pyx_INCREF(__pyx_v_molAtom);
+    __Pyx_GIVEREF(__pyx_v_molAtom);
+    PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_7, __pyx_v_molAtom);
+    __Pyx_INCREF(__pyx_v_gauge);
+    __Pyx_GIVEREF(__pyx_v_gauge);
+    PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_7, __pyx_v_gauge);
+    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 365, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  }
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  if (unlikely(__Pyx_carray_from_py_double(__pyx_t_5, __pyx_t_8, 3) < 0)) __PYX_ERR(0, 365, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  memcpy(&(__pyx_v_gaugeOrigin[0]), __pyx_t_8, sizeof(__pyx_v_gaugeOrigin[0]) * (3));
+
 366: 		int direction, p, q, i, j
+
 367: 		double s, f
+
 368: 		double[3] dipoleComponent
+
 369: 
+
+370: 	for direction in range(1,4):
+
  for (__pyx_t_7 = 1; __pyx_t_7 < 4; __pyx_t_7+=1) {
+    __pyx_v_direction = __pyx_t_7;
+
 371: 		#electronic component
+
+372: 		for p in range(0, nb):
+
    __pyx_t_9 = __pyx_v_nb;
+    __pyx_t_10 = __pyx_t_9;
+    for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
+      __pyx_v_p = __pyx_t_11;
+
+373: 			for q in range(p, -1, -1):
+
      for (__pyx_t_12 = __pyx_v_p; __pyx_t_12 > -1; __pyx_t_12-=1) {
+        __pyx_v_q = __pyx_t_12;
+
 374: 
+
+375: 				s = 0.0
+
        __pyx_v_s = 0.0;
+
+376: 				for i in range(0, alo[p]):
+
        __pyx_t_13 = __pyx_v_p;
+        __pyx_t_14 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_13 * __pyx_v_alo.strides[0]) )));
+        __pyx_t_15 = __pyx_t_14;
+        for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
+          __pyx_v_i = __pyx_t_16;
+
+377: 					for j in range(0, alo[q]):
+
          __pyx_t_13 = __pyx_v_q;
+          __pyx_t_17 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_13 * __pyx_v_alo.strides[0]) )));
+          __pyx_t_18 = __pyx_t_17;
+          for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
+            __pyx_v_j = __pyx_t_19;
+
+378: 						f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j]
+
            __pyx_t_13 = __pyx_v_p;
+            __pyx_t_20 = __pyx_v_i;
+            __pyx_t_21 = __pyx_v_q;
+            __pyx_t_22 = __pyx_v_j;
+            __pyx_t_23 = __pyx_v_p;
+            __pyx_t_24 = __pyx_v_i;
+            __pyx_t_25 = __pyx_v_q;
+            __pyx_t_26 = __pyx_v_j;
+            __pyx_v_f = ((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_13 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_20 * __pyx_v_alo_n.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_21 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_22 * __pyx_v_alo_n.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_23 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_24 * __pyx_v_alo_c.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_25 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_26 * __pyx_v_alo_c.strides[1]) ))));
+
+379: 						s += mu([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]],  \
+
            __pyx_t_26 = __pyx_v_p;
+            __pyx_t_25 = 0;
+            __pyx_t_24 = __pyx_v_p;
+            __pyx_t_23 = 1;
+            __pyx_t_22 = __pyx_v_p;
+            __pyx_t_21 = 2;
+            __pyx_t_27[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_26 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_25 * __pyx_v_alo_a.strides[1]) )));
+            __pyx_t_27[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_24 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_23 * __pyx_v_alo_a.strides[1]) )));
+            __pyx_t_27[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_22 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_21 * __pyx_v_alo_a.strides[1]) )));
+            __pyx_t_21 = __pyx_v_q;
+            __pyx_t_22 = 0;
+            __pyx_t_23 = __pyx_v_q;
+            __pyx_t_24 = 1;
+            __pyx_t_25 = __pyx_v_q;
+            __pyx_t_26 = 2;
+            __pyx_t_28[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_21 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_22 * __pyx_v_alo_a.strides[1]) )));
+            __pyx_t_28[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_23 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_24 * __pyx_v_alo_a.strides[1]) )));
+            __pyx_t_28[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_25 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_26 * __pyx_v_alo_a.strides[1]) )));
+/* … */
+            __pyx_v_s = (__pyx_v_s + (__pyx_f_5aello_mu(__pyx_t_27, __pyx_t_28, (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_26 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_25 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_24 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_23 * __pyx_v_alo_e.strides[1]) ))), __pyx_t_31, __pyx_t_32, __pyx_v_gaugeOrigin, __pyx_v_direction) * __pyx_v_f));
+          }
+        }
+
+380: 							     alo_e[p,i], alo_e[q,j], \
+
            __pyx_t_26 = __pyx_v_p;
+            __pyx_t_25 = __pyx_v_i;
+            __pyx_t_24 = __pyx_v_q;
+            __pyx_t_23 = __pyx_v_j;
+
+381: 	 						      [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \
+
            __pyx_t_22 = __pyx_v_p;
+            __pyx_t_21 = 0;
+            __pyx_t_20 = __pyx_v_p;
+            __pyx_t_13 = 1;
+            __pyx_t_29 = __pyx_v_p;
+            __pyx_t_30 = 2;
+            __pyx_t_31[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_22 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_21 * __pyx_v_alo_o.strides[1]) )));
+            __pyx_t_31[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_20 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_13 * __pyx_v_alo_o.strides[1]) )));
+            __pyx_t_31[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_29 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_30 * __pyx_v_alo_o.strides[1]) )));
+            __pyx_t_30 = __pyx_v_q;
+            __pyx_t_29 = 0;
+            __pyx_t_13 = __pyx_v_q;
+            __pyx_t_20 = 1;
+            __pyx_t_21 = __pyx_v_q;
+            __pyx_t_22 = 2;
+            __pyx_t_32[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_30 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_29 * __pyx_v_alo_o.strides[1]) )));
+            __pyx_t_32[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_13 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_20 * __pyx_v_alo_o.strides[1]) )));
+            __pyx_t_32[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_21 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_22 * __pyx_v_alo_o.strides[1]) )));
+
 382: 	 						      gaugeOrigin, direction) * f
+
 383: 
+
+384: 				dipole[p, q] = s
+
        __pyx_t_23 = __pyx_v_p;
+        __pyx_t_24 = __pyx_v_q;
+        *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_dipole.data + __pyx_t_23 * __pyx_v_dipole.strides[0]) ) + __pyx_t_24 * __pyx_v_dipole.strides[1]) )) = __pyx_v_s;
+
+385: 				if p != q:
+
        __pyx_t_33 = ((__pyx_v_p != __pyx_v_q) != 0);
+        if (__pyx_t_33) {
+/* … */
+        }
+      }
+    }
+
+386: 					dipole[q,p] = dipole[p,q]
+
          __pyx_t_24 = __pyx_v_p;
+          __pyx_t_23 = __pyx_v_q;
+          __pyx_t_25 = __pyx_v_q;
+          __pyx_t_26 = __pyx_v_p;
+          *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_dipole.data + __pyx_t_25 * __pyx_v_dipole.strides[0]) ) + __pyx_t_26 * __pyx_v_dipole.strides[1]) )) = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_dipole.data + __pyx_t_24 * __pyx_v_dipole.strides[0]) ) + __pyx_t_23 * __pyx_v_dipole.strides[1]) )));
+
 387: 
+
+388: 		s =0.0
+
    __pyx_v_s = 0.0;
+
+389: 		for p in range(0, nb):
+
    __pyx_t_9 = __pyx_v_nb;
+    __pyx_t_10 = __pyx_t_9;
+    for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
+      __pyx_v_p = __pyx_t_11;
+
+390: 			for i in range(0, nb):
+
      __pyx_t_12 = __pyx_v_nb;
+      __pyx_t_16 = __pyx_t_12;
+      for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_16; __pyx_t_19+=1) {
+        __pyx_v_i = __pyx_t_19;
+
+391: 				s += -2.0 * density[p,i] * dipole[i,p]
+
        __pyx_t_23 = __pyx_v_p;
+        __pyx_t_24 = __pyx_v_i;
+        __pyx_t_26 = __pyx_v_i;
+        __pyx_t_25 = __pyx_v_p;
+        __pyx_v_s = (__pyx_v_s + ((-2.0 * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_density.data + __pyx_t_23 * __pyx_v_density.strides[0]) ) + __pyx_t_24 * __pyx_v_density.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_dipole.data + __pyx_t_26 * __pyx_v_dipole.strides[0]) ) + __pyx_t_25 * __pyx_v_dipole.strides[1]) )))));
+      }
+    }
+
 392: 
+
 393: 		#nuclear component and charge center adjustment
+
+394: 		for i in range(0, na):
+
    __pyx_t_9 = __pyx_v_na;
+    __pyx_t_10 = __pyx_t_9;
+    for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
+      __pyx_v_i = __pyx_t_11;
+
+395: 				s += alo_z[i] * (alo_x[i, direction-1] - gaugeOrigin[direction-1])
+
      __pyx_t_25 = __pyx_v_i;
+      __pyx_t_26 = __pyx_v_i;
+      __pyx_t_24 = (__pyx_v_direction - 1);
+      __pyx_v_s = (__pyx_v_s + ((*((short *) ( /* dim=0 */ (__pyx_v_alo_z.data + __pyx_t_25 * __pyx_v_alo_z.strides[0]) ))) * ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_26 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_24 * __pyx_v_alo_x.strides[1]) ))) - (__pyx_v_gaugeOrigin[(__pyx_v_direction - 1)]))));
+    }
+
 396: 
+
+397: 		dipoleComponent[direction-1] = s
+
    (__pyx_v_dipoleComponent[(__pyx_v_direction - 1)]) = __pyx_v_s;
+  }
+
 398: 
+
+399: 	return dipoleComponent
+
  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_5 = __Pyx_carray_to_py_double(__pyx_v_dipoleComponent, 3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 399, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_r = __pyx_t_5;
+  __pyx_t_5 = 0;
+  goto __pyx_L0;
+
 400: #|-----------------------------------------End Dipole---------------------------------------|
+
 401: 
+
 402: #----------------------------------------Begin Angular--------------------------------------|
+
 403: 
+
+404: cpdef aelloAngular(double[:,:] alo_n, double[:,:] alo_c, double[:,:] alo_e, short[:,:] alo_a, double[:,:] alo_o, \
+
static PyObject *__pyx_pw_5aello_5aelloAngular(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_f_5aello_aelloAngular(__Pyx_memviewslice __pyx_v_alo_n, __Pyx_memviewslice __pyx_v_alo_c, __Pyx_memviewslice __pyx_v_alo_e, __Pyx_memviewslice __pyx_v_alo_a, __Pyx_memviewslice __pyx_v_alo_o, __Pyx_memviewslice __pyx_v_alo, CYTHON_UNUSED __Pyx_memviewslice __pyx_v_alo_z, CYTHON_UNUSED __Pyx_memviewslice __pyx_v_alo_x, CYTHON_UNUSED int __pyx_v_na, int __pyx_v_nb, PyObject *__pyx_v_molAtom, PyObject *__pyx_v_gauge, CYTHON_UNUSED int __pyx_skip_dispatch) {
+  PyObject *__pyx_v_A = NULL;
+  __Pyx_memviewslice __pyx_v_angular = { 0, 0, { 0 }, { 0 }, { 0 } };
+  double __pyx_v_gaugeOrigin[3];
+  int __pyx_v_direction;
+  int __pyx_v_p;
+  int __pyx_v_q;
+  int __pyx_v_i;
+  int __pyx_v_j;
+  double __pyx_v_s;
+  double __pyx_v_f;
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("aelloAngular", 0);
+/* … */
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
+  __Pyx_AddTraceback("aello.aelloAngular", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_XDECREF(__pyx_v_A);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_angular, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* Python wrapper */
+static PyObject *__pyx_pw_5aello_5aelloAngular(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_pw_5aello_5aelloAngular(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  __Pyx_memviewslice __pyx_v_alo_n = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_c = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_e = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_a = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_o = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_z = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_x = { 0, 0, { 0 }, { 0 }, { 0 } };
+  int __pyx_v_na;
+  int __pyx_v_nb;
+  PyObject *__pyx_v_molAtom = 0;
+  PyObject *__pyx_v_gauge = 0;
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("aelloAngular (wrapper)", 0);
+  {
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_alo_n,&__pyx_n_s_alo_c,&__pyx_n_s_alo_e,&__pyx_n_s_alo_a,&__pyx_n_s_alo_o,&__pyx_n_s_alo,&__pyx_n_s_alo_z,&__pyx_n_s_alo_x,&__pyx_n_s_na,&__pyx_n_s_nb,&__pyx_n_s_molAtom,&__pyx_n_s_gauge,0};
+    PyObject* values[12] = {0,0,0,0,0,0,0,0,0,0,0,0};
+    if (unlikely(__pyx_kwds)) {
+      Py_ssize_t kw_args;
+      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
+      switch (pos_args) {
+        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
+        CYTHON_FALLTHROUGH;
+        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
+        CYTHON_FALLTHROUGH;
+        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
+        CYTHON_FALLTHROUGH;
+        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
+        CYTHON_FALLTHROUGH;
+        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
+        CYTHON_FALLTHROUGH;
+        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
+        CYTHON_FALLTHROUGH;
+        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
+        CYTHON_FALLTHROUGH;
+        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+        CYTHON_FALLTHROUGH;
+        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+        CYTHON_FALLTHROUGH;
+        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+        CYTHON_FALLTHROUGH;
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        CYTHON_FALLTHROUGH;
+        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        CYTHON_FALLTHROUGH;
+        case  0: break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+      kw_args = PyDict_Size(__pyx_kwds);
+      switch (pos_args) {
+        case  0:
+        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_n)) != 0)) kw_args--;
+        else goto __pyx_L5_argtuple_error;
+        CYTHON_FALLTHROUGH;
+        case  1:
+        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_c)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, 1); __PYX_ERR(0, 404, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  2:
+        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_e)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, 2); __PYX_ERR(0, 404, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  3:
+        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_a)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, 3); __PYX_ERR(0, 404, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  4:
+        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_o)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, 4); __PYX_ERR(0, 404, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  5:
+        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, 5); __PYX_ERR(0, 404, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  6:
+        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_z)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, 6); __PYX_ERR(0, 404, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  7:
+        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_alo_x)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, 7); __PYX_ERR(0, 404, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  8:
+        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_na)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, 8); __PYX_ERR(0, 404, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  9:
+        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_nb)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, 9); __PYX_ERR(0, 404, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case 10:
+        if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_molAtom)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, 10); __PYX_ERR(0, 404, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case 11:
+        if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_gauge)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, 11); __PYX_ERR(0, 404, __pyx_L3_error)
+        }
+      }
+      if (unlikely(kw_args > 0)) {
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aelloAngular") < 0)) __PYX_ERR(0, 404, __pyx_L3_error)
+      }
+    } else if (PyTuple_GET_SIZE(__pyx_args) != 12) {
+      goto __pyx_L5_argtuple_error;
+    } else {
+      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
+      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
+      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
+      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
+      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
+      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
+      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
+      values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
+    }
+    __pyx_v_alo_n = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_n.memview)) __PYX_ERR(0, 404, __pyx_L3_error)
+    __pyx_v_alo_c = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_c.memview)) __PYX_ERR(0, 404, __pyx_L3_error)
+    __pyx_v_alo_e = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_e.memview)) __PYX_ERR(0, 404, __pyx_L3_error)
+    __pyx_v_alo_a = __Pyx_PyObject_to_MemoryviewSlice_dsds_short(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_a.memview)) __PYX_ERR(0, 404, __pyx_L3_error)
+    __pyx_v_alo_o = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[4], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_o.memview)) __PYX_ERR(0, 404, __pyx_L3_error)
+    __pyx_v_alo = __Pyx_PyObject_to_MemoryviewSlice_ds_short(values[5], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo.memview)) __PYX_ERR(0, 405, __pyx_L3_error)
+    __pyx_v_alo_z = __Pyx_PyObject_to_MemoryviewSlice_ds_short(values[6], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_z.memview)) __PYX_ERR(0, 405, __pyx_L3_error)
+    __pyx_v_alo_x = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[7], PyBUF_WRITABLE); if (unlikely(!__pyx_v_alo_x.memview)) __PYX_ERR(0, 405, __pyx_L3_error)
+    __pyx_v_na = __Pyx_PyInt_As_int(values[8]); if (unlikely((__pyx_v_na == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 405, __pyx_L3_error)
+    __pyx_v_nb = __Pyx_PyInt_As_int(values[9]); if (unlikely((__pyx_v_nb == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 405, __pyx_L3_error)
+    __pyx_v_molAtom = values[10];
+    __pyx_v_gauge = ((PyObject*)values[11]);
+  }
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("aelloAngular", 1, 12, 12, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 404, __pyx_L3_error)
+  __pyx_L3_error:;
+  __Pyx_AddTraceback("aello.aelloAngular", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_RefNannyFinishContext();
+  return NULL;
+  __pyx_L4_argument_unpacking_done:;
+  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_gauge), (&PyString_Type), 1, "gauge", 1))) __PYX_ERR(0, 405, __pyx_L1_error)
+  __pyx_r = __pyx_pf_5aello_4aelloAngular(__pyx_self, __pyx_v_alo_n, __pyx_v_alo_c, __pyx_v_alo_e, __pyx_v_alo_a, __pyx_v_alo_o, __pyx_v_alo, __pyx_v_alo_z, __pyx_v_alo_x, __pyx_v_na, __pyx_v_nb, __pyx_v_molAtom, __pyx_v_gauge);
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+
+  /* function exit code */
+  goto __pyx_L0;
+  __pyx_L1_error:;
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_5aello_4aelloAngular(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_alo_n, __Pyx_memviewslice __pyx_v_alo_c, __Pyx_memviewslice __pyx_v_alo_e, __Pyx_memviewslice __pyx_v_alo_a, __Pyx_memviewslice __pyx_v_alo_o, __Pyx_memviewslice __pyx_v_alo, __Pyx_memviewslice __pyx_v_alo_z, __Pyx_memviewslice __pyx_v_alo_x, int __pyx_v_na, int __pyx_v_nb, PyObject *__pyx_v_molAtom, PyObject *__pyx_v_gauge) {
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("aelloAngular", 0);
+  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_1 = __pyx_f_5aello_aelloAngular(__pyx_v_alo_n, __pyx_v_alo_c, __pyx_v_alo_e, __pyx_v_alo_a, __pyx_v_alo_o, __pyx_v_alo, __pyx_v_alo_z, __pyx_v_alo_x, __pyx_v_na, __pyx_v_nb, __pyx_v_molAtom, __pyx_v_gauge, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 404, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_r = __pyx_t_1;
+  __pyx_t_1 = 0;
+  goto __pyx_L0;
+
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_AddTraceback("aello.aelloAngular", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_n, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_c, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_e, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_a, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_o, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_z, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_x, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 405: 	                    short[:] alo, short[:] alo_z, double[:,:] alo_x, int na, int nb, object molAtom, str gauge):
+
 406: 
+
+407: 	A = np.empty([3,nb,nb], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 407, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 407, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 407, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_INCREF(__pyx_int_3);
+  __Pyx_GIVEREF(__pyx_int_3);
+  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_int_3);
+  __Pyx_GIVEREF(__pyx_t_1);
+  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyList_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
+  __pyx_t_1 = 0;
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 407, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
+  __pyx_t_4 = 0;
+  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 407, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 407, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_double); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 407, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 407, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 407, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_v_A = __pyx_t_5;
+  __pyx_t_5 = 0;
+
 408: 	cdef:
+
+409: 		double[:,:,:] angular = A
+
  __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsdsds_double(__pyx_v_A, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 409, __pyx_L1_error)
+  __pyx_v_angular = __pyx_t_6;
+  __pyx_t_6.memview = NULL;
+  __pyx_t_6.data = NULL;
+
+410: 		double[3] gaugeOrigin = gaugeCenter(molAtom, gauge)
+
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_gaugeCenter); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 410, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_3 = NULL;
+  __pyx_t_7 = 0;
+  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
+    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
+    if (likely(__pyx_t_3)) {
+      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
+      __Pyx_INCREF(__pyx_t_3);
+      __Pyx_INCREF(function);
+      __Pyx_DECREF_SET(__pyx_t_4, function);
+      __pyx_t_7 = 1;
+    }
+  }
+  #if CYTHON_FAST_PYCALL
+  if (PyFunction_Check(__pyx_t_4)) {
+    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_molAtom, __pyx_v_gauge};
+    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 410, __pyx_L1_error)
+    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_GOTREF(__pyx_t_5);
+  } else
+  #endif
+  #if CYTHON_FAST_PYCCALL
+  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
+    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_molAtom, __pyx_v_gauge};
+    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 410, __pyx_L1_error)
+    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __Pyx_GOTREF(__pyx_t_5);
+  } else
+  #endif
+  {
+    __pyx_t_2 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 410, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_2);
+    if (__pyx_t_3) {
+      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL;
+    }
+    __Pyx_INCREF(__pyx_v_molAtom);
+    __Pyx_GIVEREF(__pyx_v_molAtom);
+    PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_7, __pyx_v_molAtom);
+    __Pyx_INCREF(__pyx_v_gauge);
+    __Pyx_GIVEREF(__pyx_v_gauge);
+    PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_7, __pyx_v_gauge);
+    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 410, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  }
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  if (unlikely(__Pyx_carray_from_py_double(__pyx_t_5, __pyx_t_8, 3) < 0)) __PYX_ERR(0, 410, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  memcpy(&(__pyx_v_gaugeOrigin[0]), __pyx_t_8, sizeof(__pyx_v_gaugeOrigin[0]) * (3));
+
 411: 		int direction, p, q, i, j
+
 412: 		double s, f
+
 413: 
+
+414: 	for direction in range(0, 3):
+
  for (__pyx_t_7 = 0; __pyx_t_7 < 3; __pyx_t_7+=1) {
+    __pyx_v_direction = __pyx_t_7;
+
 415: 		#electronic component
+
+416: 		for p in range(0, nb):
+
    __pyx_t_9 = __pyx_v_nb;
+    __pyx_t_10 = __pyx_t_9;
+    for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
+      __pyx_v_p = __pyx_t_11;
+
+417: 			for q in range(0, p+1):
+
      __pyx_t_12 = (__pyx_v_p + 1);
+      __pyx_t_13 = __pyx_t_12;
+      for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
+        __pyx_v_q = __pyx_t_14;
+
 418: 
+
+419: 				s = 0.0
+
        __pyx_v_s = 0.0;
+
+420: 				for i in range(0, alo[p]):
+
        __pyx_t_15 = __pyx_v_p;
+        __pyx_t_16 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_15 * __pyx_v_alo.strides[0]) )));
+        __pyx_t_17 = __pyx_t_16;
+        for (__pyx_t_18 = 0; __pyx_t_18 < __pyx_t_17; __pyx_t_18+=1) {
+          __pyx_v_i = __pyx_t_18;
+
+421: 					for j in range(0, alo[q]):
+
          __pyx_t_15 = __pyx_v_q;
+          __pyx_t_19 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_15 * __pyx_v_alo.strides[0]) )));
+          __pyx_t_20 = __pyx_t_19;
+          for (__pyx_t_21 = 0; __pyx_t_21 < __pyx_t_20; __pyx_t_21+=1) {
+            __pyx_v_j = __pyx_t_21;
+
+422: 						f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j]
+
            __pyx_t_15 = __pyx_v_p;
+            __pyx_t_22 = __pyx_v_i;
+            __pyx_t_23 = __pyx_v_q;
+            __pyx_t_24 = __pyx_v_j;
+            __pyx_t_25 = __pyx_v_p;
+            __pyx_t_26 = __pyx_v_i;
+            __pyx_t_27 = __pyx_v_q;
+            __pyx_t_28 = __pyx_v_j;
+            __pyx_v_f = ((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_15 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_22 * __pyx_v_alo_n.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_23 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_24 * __pyx_v_alo_n.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_25 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_26 * __pyx_v_alo_c.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_27 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_28 * __pyx_v_alo_c.strides[1]) ))));
+
+423: 						s += ang([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]],  \
+
            __pyx_t_28 = __pyx_v_p;
+            __pyx_t_27 = 0;
+            __pyx_t_26 = __pyx_v_p;
+            __pyx_t_25 = 1;
+            __pyx_t_24 = __pyx_v_p;
+            __pyx_t_23 = 2;
+            __pyx_t_29[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_28 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_27 * __pyx_v_alo_a.strides[1]) )));
+            __pyx_t_29[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_26 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_25 * __pyx_v_alo_a.strides[1]) )));
+            __pyx_t_29[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_24 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_23 * __pyx_v_alo_a.strides[1]) )));
+            __pyx_t_23 = __pyx_v_q;
+            __pyx_t_24 = 0;
+            __pyx_t_25 = __pyx_v_q;
+            __pyx_t_26 = 1;
+            __pyx_t_27 = __pyx_v_q;
+            __pyx_t_28 = 2;
+            __pyx_t_30[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_23 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_24 * __pyx_v_alo_a.strides[1]) )));
+            __pyx_t_30[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_25 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_26 * __pyx_v_alo_a.strides[1]) )));
+            __pyx_t_30[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_27 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_28 * __pyx_v_alo_a.strides[1]) )));
+/* … */
+            __pyx_v_s = (__pyx_v_s + (__pyx_f_5aello_ang(__pyx_t_29, __pyx_t_30, (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_28 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_27 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_26 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_25 * __pyx_v_alo_e.strides[1]) ))), __pyx_t_33, __pyx_t_34, __pyx_v_gaugeOrigin, (__pyx_v_direction + 1)) * __pyx_v_f));
+          }
+        }
+
+424: 							     alo_e[p,i], alo_e[q,j], \
+
            __pyx_t_28 = __pyx_v_p;
+            __pyx_t_27 = __pyx_v_i;
+            __pyx_t_26 = __pyx_v_q;
+            __pyx_t_25 = __pyx_v_j;
+
+425: 	 						      [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \
+
            __pyx_t_24 = __pyx_v_p;
+            __pyx_t_23 = 0;
+            __pyx_t_22 = __pyx_v_p;
+            __pyx_t_15 = 1;
+            __pyx_t_31 = __pyx_v_p;
+            __pyx_t_32 = 2;
+            __pyx_t_33[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_24 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_23 * __pyx_v_alo_o.strides[1]) )));
+            __pyx_t_33[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_22 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_o.strides[1]) )));
+            __pyx_t_33[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_31 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_32 * __pyx_v_alo_o.strides[1]) )));
+            __pyx_t_32 = __pyx_v_q;
+            __pyx_t_31 = 0;
+            __pyx_t_15 = __pyx_v_q;
+            __pyx_t_22 = 1;
+            __pyx_t_23 = __pyx_v_q;
+            __pyx_t_24 = 2;
+            __pyx_t_34[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_32 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_31 * __pyx_v_alo_o.strides[1]) )));
+            __pyx_t_34[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_15 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_22 * __pyx_v_alo_o.strides[1]) )));
+            __pyx_t_34[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_23 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_24 * __pyx_v_alo_o.strides[1]) )));
+
 426: 	 						      gaugeOrigin, direction+1) * f
+
 427: 
+
+428: 				angular[direction, p, q] = s
+
        __pyx_t_25 = __pyx_v_direction;
+        __pyx_t_26 = __pyx_v_p;
+        __pyx_t_27 = __pyx_v_q;
+        *((double *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_angular.data + __pyx_t_25 * __pyx_v_angular.strides[0]) ) + __pyx_t_26 * __pyx_v_angular.strides[1]) ) + __pyx_t_27 * __pyx_v_angular.strides[2]) )) = __pyx_v_s;
+
+429: 				if p != q:
+
        __pyx_t_35 = ((__pyx_v_p != __pyx_v_q) != 0);
+        if (__pyx_t_35) {
+/* … */
+        }
+      }
+    }
+  }
+
+430: 					angular[direction,q,p] = -angular[direction,p,q]
+
          __pyx_t_27 = __pyx_v_direction;
+          __pyx_t_26 = __pyx_v_p;
+          __pyx_t_25 = __pyx_v_q;
+          __pyx_t_28 = __pyx_v_direction;
+          __pyx_t_24 = __pyx_v_q;
+          __pyx_t_23 = __pyx_v_p;
+          *((double *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_angular.data + __pyx_t_28 * __pyx_v_angular.strides[0]) ) + __pyx_t_24 * __pyx_v_angular.strides[1]) ) + __pyx_t_23 * __pyx_v_angular.strides[2]) )) = (-(*((double *) ( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_angular.data + __pyx_t_27 * __pyx_v_angular.strides[0]) ) + __pyx_t_26 * __pyx_v_angular.strides[1]) ) + __pyx_t_25 * __pyx_v_angular.strides[2]) ))));
+
 431: 
+
 432: 
+
 433: 
+
+434: 	return A
+
  __Pyx_XDECREF(__pyx_r);
+  __Pyx_INCREF(__pyx_v_A);
+  __pyx_r = __pyx_v_A;
+  goto __pyx_L0;
+
 435: 
+
 436: #|----------------------------------------End Angular---------------------------------------|
+
 437: 
+
 438: #|---------------------------------------fock build-----------------------------------------|
+
+439: cdef long iEri(long i, long j, long k, long l):
+
static long __pyx_f_5aello_iEri(long __pyx_v_i, long __pyx_v_j, long __pyx_v_k, long __pyx_v_l) {
+  long __pyx_v_p;
+  long __pyx_v_q;
+  long __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("iEri", 0);
+/* … */
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
+  __Pyx_WriteUnraisable("aello.iEri", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0);
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 440: 	#eri indexing
+
 441: 	cdef:
+
+442: 		long p = max(i*(i+1)//2 + j, j*(j+1)//2 + i)
+
  __pyx_t_1 = (((__pyx_v_j * (__pyx_v_j + 1)) / 2) + __pyx_v_i);
+  __pyx_t_2 = (((__pyx_v_i * (__pyx_v_i + 1)) / 2) + __pyx_v_j);
+  if (((__pyx_t_1 > __pyx_t_2) != 0)) {
+    __pyx_t_3 = __pyx_t_1;
+  } else {
+    __pyx_t_3 = __pyx_t_2;
+  }
+  __pyx_v_p = __pyx_t_3;
+
+443: 		long q = max(k*(k+1)//2 + l, l*(l+1)//2 + k)
+
  __pyx_t_3 = (((__pyx_v_l * (__pyx_v_l + 1)) / 2) + __pyx_v_k);
+  __pyx_t_1 = (((__pyx_v_k * (__pyx_v_k + 1)) / 2) + __pyx_v_l);
+  if (((__pyx_t_3 > __pyx_t_1) != 0)) {
+    __pyx_t_2 = __pyx_t_3;
+  } else {
+    __pyx_t_2 = __pyx_t_1;
+  }
+  __pyx_v_q = __pyx_t_2;
+
 444: 
+
+445: 	return  long(max(p*(p+1)//2 + q, q*(q+1)//2 + p))
+
  __pyx_t_2 = (((__pyx_v_q * (__pyx_v_q + 1)) / 2) + __pyx_v_p);
+  __pyx_t_3 = (((__pyx_v_p * (__pyx_v_p + 1)) / 2) + __pyx_v_q);
+  if (((__pyx_t_2 > __pyx_t_3) != 0)) {
+    __pyx_t_1 = __pyx_t_2;
+  } else {
+    __pyx_t_1 = __pyx_t_3;
+  }
+  __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 445, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyLong_Type)), __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 445, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_t_1 = __Pyx_PyInt_As_long(__pyx_t_5); if (unlikely((__pyx_t_1 == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 445, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  __pyx_r = __pyx_t_1;
+  goto __pyx_L0;
+
 446: 
+
 447: 
+
+448: cpdef aelloFock(long n, double[:,:] H, double[:] eri, double[:,:] D):
+
static PyObject *__pyx_pw_5aello_7aelloFock(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_f_5aello_aelloFock(long __pyx_v_n, __Pyx_memviewslice __pyx_v_H, __Pyx_memviewslice __pyx_v_eri, __Pyx_memviewslice __pyx_v_D, CYTHON_UNUSED int __pyx_skip_dispatch) {
+  PyObject *__pyx_v_fock = NULL;
+  PyObject *__pyx_v_g = NULL;
+  long __pyx_v_i;
+  long __pyx_v_m;
+  long __pyx_v_k;
+  long __pyx_v_l;
+  __Pyx_memviewslice __pyx_v_F = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_G = { 0, 0, { 0 }, { 0 }, { 0 } };
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("aelloFock", 0);
+/* … */
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
+  __Pyx_AddTraceback("aello.aelloFock", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_XDECREF(__pyx_v_fock);
+  __Pyx_XDECREF(__pyx_v_g);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_F, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_G, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* Python wrapper */
+static PyObject *__pyx_pw_5aello_7aelloFock(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_pw_5aello_7aelloFock(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  long __pyx_v_n;
+  __Pyx_memviewslice __pyx_v_H = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_eri = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_D = { 0, 0, { 0 }, { 0 }, { 0 } };
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("aelloFock (wrapper)", 0);
+  {
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_H,&__pyx_n_s_eri,&__pyx_n_s_D,0};
+    PyObject* values[4] = {0,0,0,0};
+    if (unlikely(__pyx_kwds)) {
+      Py_ssize_t kw_args;
+      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
+      switch (pos_args) {
+        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+        CYTHON_FALLTHROUGH;
+        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+        CYTHON_FALLTHROUGH;
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        CYTHON_FALLTHROUGH;
+        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        CYTHON_FALLTHROUGH;
+        case  0: break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+      kw_args = PyDict_Size(__pyx_kwds);
+      switch (pos_args) {
+        case  0:
+        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
+        else goto __pyx_L5_argtuple_error;
+        CYTHON_FALLTHROUGH;
+        case  1:
+        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_H)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloFock", 1, 4, 4, 1); __PYX_ERR(0, 448, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  2:
+        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eri)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloFock", 1, 4, 4, 2); __PYX_ERR(0, 448, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  3:
+        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_D)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("aelloFock", 1, 4, 4, 3); __PYX_ERR(0, 448, __pyx_L3_error)
+        }
+      }
+      if (unlikely(kw_args > 0)) {
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "aelloFock") < 0)) __PYX_ERR(0, 448, __pyx_L3_error)
+      }
+    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
+      goto __pyx_L5_argtuple_error;
+    } else {
+      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+    }
+    __pyx_v_n = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_n == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 448, __pyx_L3_error)
+    __pyx_v_H = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_H.memview)) __PYX_ERR(0, 448, __pyx_L3_error)
+    __pyx_v_eri = __Pyx_PyObject_to_MemoryviewSlice_ds_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_eri.memview)) __PYX_ERR(0, 448, __pyx_L3_error)
+    __pyx_v_D = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_D.memview)) __PYX_ERR(0, 448, __pyx_L3_error)
+  }
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("aelloFock", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 448, __pyx_L3_error)
+  __pyx_L3_error:;
+  __Pyx_AddTraceback("aello.aelloFock", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_RefNannyFinishContext();
+  return NULL;
+  __pyx_L4_argument_unpacking_done:;
+  __pyx_r = __pyx_pf_5aello_6aelloFock(__pyx_self, __pyx_v_n, __pyx_v_H, __pyx_v_eri, __pyx_v_D);
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_5aello_6aelloFock(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, __Pyx_memviewslice __pyx_v_H, __Pyx_memviewslice __pyx_v_eri, __Pyx_memviewslice __pyx_v_D) {
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("aelloFock", 0);
+  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_1 = __pyx_f_5aello_aelloFock(__pyx_v_n, __pyx_v_H, __pyx_v_eri, __pyx_v_D, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 448, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_r = __pyx_t_1;
+  __pyx_t_1 = 0;
+  goto __pyx_L0;
+
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_AddTraceback("aello.aelloFock", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __PYX_XDEC_MEMVIEW(&__pyx_v_H, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_eri, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_D, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 449: 	#fast Fock build
+
+450: 	fock = np.empty([n,n], dtype=np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 450, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 450, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 450, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 450, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 450, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GIVEREF(__pyx_t_1);
+  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
+  __pyx_t_1 = 0;
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 450, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
+  __pyx_t_4 = 0;
+  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 450, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 450, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_double); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 450, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 450, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_v_fock = __pyx_t_5;
+  __pyx_t_5 = 0;
+
+451: 	g    = np.empty([n,n], dtype=np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 451, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 451, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_n); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 451, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 451, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 451, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_5);
+  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_5);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
+  __pyx_t_5 = 0;
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 451, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 451, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 451, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_double); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 451, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 451, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 451, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_v_g = __pyx_t_1;
+  __pyx_t_1 = 0;
+
 452: 	cdef:
+
 453: 		long i, m, k, l
+
+454: 		double[:,:] F = fock
+
  __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_fock, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 454, __pyx_L1_error)
+  __pyx_v_F = __pyx_t_6;
+  __pyx_t_6.memview = NULL;
+  __pyx_t_6.data = NULL;
+
+455: 		double[:,:] G = g
+
  __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_g, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 455, __pyx_L1_error)
+  __pyx_v_G = __pyx_t_6;
+  __pyx_t_6.memview = NULL;
+  __pyx_t_6.data = NULL;
+
 456: 
+
+457: 	for i in range(0, n):
+
  __pyx_t_7 = __pyx_v_n;
+  __pyx_t_8 = __pyx_t_7;
+  for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
+    __pyx_v_i = __pyx_t_9;
+
+458: 		for m in range(0, n):
+
    __pyx_t_10 = __pyx_v_n;
+    __pyx_t_11 = __pyx_t_10;
+    for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
+      __pyx_v_m = __pyx_t_12;
+
+459: 			G[i,m] = 0.0
+
      __pyx_t_13 = __pyx_v_i;
+      __pyx_t_14 = __pyx_v_m;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_G.data + __pyx_t_13 * __pyx_v_G.strides[0]) ) + __pyx_t_14 * __pyx_v_G.strides[1]) )) = 0.0;
+
+460: 			for k in range(0, n):
+
      __pyx_t_15 = __pyx_v_n;
+      __pyx_t_16 = __pyx_t_15;
+      for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
+        __pyx_v_k = __pyx_t_17;
+
+461: 				for l in range(0, n):
+
        __pyx_t_18 = __pyx_v_n;
+        __pyx_t_19 = __pyx_t_18;
+        for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
+          __pyx_v_l = __pyx_t_20;
+
+462: 					G[i,m] += D[k,l] * ( 2* eri[iEri(i,m,k,l)] - eri[iEri(i,k,m,l)])
+
          __pyx_t_14 = __pyx_v_k;
+          __pyx_t_13 = __pyx_v_l;
+          __pyx_t_21 = __pyx_f_5aello_iEri(__pyx_v_i, __pyx_v_m, __pyx_v_k, __pyx_v_l);
+          __pyx_t_22 = __pyx_f_5aello_iEri(__pyx_v_i, __pyx_v_k, __pyx_v_m, __pyx_v_l);
+          __pyx_t_23 = __pyx_v_i;
+          __pyx_t_24 = __pyx_v_m;
+          *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_G.data + __pyx_t_23 * __pyx_v_G.strides[0]) ) + __pyx_t_24 * __pyx_v_G.strides[1]) )) += ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_D.data + __pyx_t_14 * __pyx_v_D.strides[0]) ) + __pyx_t_13 * __pyx_v_D.strides[1]) ))) * ((2.0 * (*((double *) ( /* dim=0 */ (__pyx_v_eri.data + __pyx_t_21 * __pyx_v_eri.strides[0]) )))) - (*((double *) ( /* dim=0 */ (__pyx_v_eri.data + __pyx_t_22 * __pyx_v_eri.strides[0]) )))));
+        }
+      }
+
+463: 			F[i,m] = H[i,m] + G[i,m]
+
      __pyx_t_22 = __pyx_v_i;
+      __pyx_t_21 = __pyx_v_m;
+      __pyx_t_13 = __pyx_v_i;
+      __pyx_t_14 = __pyx_v_m;
+      __pyx_t_24 = __pyx_v_i;
+      __pyx_t_23 = __pyx_v_m;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_F.data + __pyx_t_24 * __pyx_v_F.strides[0]) ) + __pyx_t_23 * __pyx_v_F.strides[1]) )) = ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_H.data + __pyx_t_22 * __pyx_v_H.strides[0]) ) + __pyx_t_21 * __pyx_v_H.strides[1]) ))) + (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_G.data + __pyx_t_13 * __pyx_v_G.strides[0]) ) + __pyx_t_14 * __pyx_v_G.strides[1]) ))));
+    }
+  }
+
 464: 
+
+465: 	return fock, G
+
  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_G, 2, (PyObject *(*)(char *)) __pyx_memview_get_double, (int (*)(char *, PyObject *)) __pyx_memview_set_double, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 465, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 465, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_INCREF(__pyx_v_fock);
+  __Pyx_GIVEREF(__pyx_v_fock);
+  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_fock);
+  __Pyx_GIVEREF(__pyx_t_1);
+  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
+  __pyx_t_1 = 0;
+  __pyx_r = __pyx_t_2;
+  __pyx_t_2 = 0;
+  goto __pyx_L0;
+
 466: 
+
 467: #|------------------------------------End Fock Build-------------------------------------|
+
 468: 
+
 469: #|----------------------------------Complex Fock Build-----------------------------------|
+
+470: cpdef tdhfFock(long n, double complex[:,:] D, double complex[:,:] H, double complex[:] eri):
+
static PyObject *__pyx_pw_5aello_9tdhfFock(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_f_5aello_tdhfFock(long __pyx_v_n, __Pyx_memviewslice __pyx_v_D, __Pyx_memviewslice __pyx_v_H, __Pyx_memviewslice __pyx_v_eri, CYTHON_UNUSED int __pyx_skip_dispatch) {
+  PyObject *__pyx_v_fock = NULL;
+  PyObject *__pyx_v_g = NULL;
+  long __pyx_v_i;
+  long __pyx_v_m;
+  long __pyx_v_k;
+  long __pyx_v_l;
+  __Pyx_memviewslice __pyx_v_F = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_G = { 0, 0, { 0 }, { 0 }, { 0 } };
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("tdhfFock", 0);
+/* … */
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_4);
+  __Pyx_XDECREF(__pyx_t_5);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_6, 1);
+  __Pyx_AddTraceback("aello.tdhfFock", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_XDECREF(__pyx_v_fock);
+  __Pyx_XDECREF(__pyx_v_g);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_F, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_G, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* Python wrapper */
+static PyObject *__pyx_pw_5aello_9tdhfFock(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_pw_5aello_9tdhfFock(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  long __pyx_v_n;
+  __Pyx_memviewslice __pyx_v_D = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_H = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_eri = { 0, 0, { 0 }, { 0 }, { 0 } };
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("tdhfFock (wrapper)", 0);
+  {
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_n,&__pyx_n_s_D,&__pyx_n_s_H,&__pyx_n_s_eri,0};
+    PyObject* values[4] = {0,0,0,0};
+    if (unlikely(__pyx_kwds)) {
+      Py_ssize_t kw_args;
+      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
+      switch (pos_args) {
+        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+        CYTHON_FALLTHROUGH;
+        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+        CYTHON_FALLTHROUGH;
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        CYTHON_FALLTHROUGH;
+        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        CYTHON_FALLTHROUGH;
+        case  0: break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+      kw_args = PyDict_Size(__pyx_kwds);
+      switch (pos_args) {
+        case  0:
+        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_n)) != 0)) kw_args--;
+        else goto __pyx_L5_argtuple_error;
+        CYTHON_FALLTHROUGH;
+        case  1:
+        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_D)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("tdhfFock", 1, 4, 4, 1); __PYX_ERR(0, 470, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  2:
+        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_H)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("tdhfFock", 1, 4, 4, 2); __PYX_ERR(0, 470, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  3:
+        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_eri)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("tdhfFock", 1, 4, 4, 3); __PYX_ERR(0, 470, __pyx_L3_error)
+        }
+      }
+      if (unlikely(kw_args > 0)) {
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "tdhfFock") < 0)) __PYX_ERR(0, 470, __pyx_L3_error)
+      }
+    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
+      goto __pyx_L5_argtuple_error;
+    } else {
+      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+    }
+    __pyx_v_n = __Pyx_PyInt_As_long(values[0]); if (unlikely((__pyx_v_n == (long)-1) && PyErr_Occurred())) __PYX_ERR(0, 470, __pyx_L3_error)
+    __pyx_v_D = __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_double_complex(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_D.memview)) __PYX_ERR(0, 470, __pyx_L3_error)
+    __pyx_v_H = __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_double_complex(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_H.memview)) __PYX_ERR(0, 470, __pyx_L3_error)
+    __pyx_v_eri = __Pyx_PyObject_to_MemoryviewSlice_ds___pyx_t_double_complex(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_eri.memview)) __PYX_ERR(0, 470, __pyx_L3_error)
+  }
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("tdhfFock", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 470, __pyx_L3_error)
+  __pyx_L3_error:;
+  __Pyx_AddTraceback("aello.tdhfFock", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_RefNannyFinishContext();
+  return NULL;
+  __pyx_L4_argument_unpacking_done:;
+  __pyx_r = __pyx_pf_5aello_8tdhfFock(__pyx_self, __pyx_v_n, __pyx_v_D, __pyx_v_H, __pyx_v_eri);
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_5aello_8tdhfFock(CYTHON_UNUSED PyObject *__pyx_self, long __pyx_v_n, __Pyx_memviewslice __pyx_v_D, __Pyx_memviewslice __pyx_v_H, __Pyx_memviewslice __pyx_v_eri) {
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("tdhfFock", 0);
+  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_1 = __pyx_f_5aello_tdhfFock(__pyx_v_n, __pyx_v_D, __pyx_v_H, __pyx_v_eri, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 470, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_r = __pyx_t_1;
+  __pyx_t_1 = 0;
+  goto __pyx_L0;
+
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_AddTraceback("aello.tdhfFock", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __PYX_XDEC_MEMVIEW(&__pyx_v_D, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_H, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_eri, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 471: 	#complex fock build for tdhf
+
+472: 	fock = np.empty([n,n], dtype=np.cdouble)
+
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 472, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_v_n); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 472, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 472, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GIVEREF(__pyx_t_1);
+  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
+  __pyx_t_1 = 0;
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 472, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_4);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
+  __pyx_t_4 = 0;
+  __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 472, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 472, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_cdouble); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 472, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 472, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 472, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_v_fock = __pyx_t_5;
+  __pyx_t_5 = 0;
+
+473: 	g    = np.empty([n,n], dtype=np.cdouble)
+
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 473, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 473, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_n); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 473, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_n); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 473, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 473, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_5);
+  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_5);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_3);
+  __pyx_t_5 = 0;
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 473, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 473, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 473, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_5);
+  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_cdouble); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 473, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_1) < 0) __PYX_ERR(0, 473, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 473, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_v_g = __pyx_t_1;
+  __pyx_t_1 = 0;
+
 474: 	cdef:
+
 475: 		long i, m, k, l
+
+476: 		double complex[:,:] F = fock
+
  __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_double_complex(__pyx_v_fock, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 476, __pyx_L1_error)
+  __pyx_v_F = __pyx_t_6;
+  __pyx_t_6.memview = NULL;
+  __pyx_t_6.data = NULL;
+
+477: 		double complex[:,:] G = g
+
  __pyx_t_6 = __Pyx_PyObject_to_MemoryviewSlice_dsds___pyx_t_double_complex(__pyx_v_g, PyBUF_WRITABLE); if (unlikely(!__pyx_t_6.memview)) __PYX_ERR(0, 477, __pyx_L1_error)
+  __pyx_v_G = __pyx_t_6;
+  __pyx_t_6.memview = NULL;
+  __pyx_t_6.data = NULL;
+
 478: 
+
+479: 	for i in range(0, n):
+
  __pyx_t_7 = __pyx_v_n;
+  __pyx_t_8 = __pyx_t_7;
+  for (__pyx_t_9 = 0; __pyx_t_9 < __pyx_t_8; __pyx_t_9+=1) {
+    __pyx_v_i = __pyx_t_9;
+
+480: 		for m in range(0, n):
+
    __pyx_t_10 = __pyx_v_n;
+    __pyx_t_11 = __pyx_t_10;
+    for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_11; __pyx_t_12+=1) {
+      __pyx_v_m = __pyx_t_12;
+
+481: 			G[i,m] = 0.0
+
      __pyx_t_13 = __pyx_v_i;
+      __pyx_t_14 = __pyx_v_m;
+      *((__pyx_t_double_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_G.data + __pyx_t_13 * __pyx_v_G.strides[0]) ) + __pyx_t_14 * __pyx_v_G.strides[1]) )) = __pyx_t_double_complex_from_parts(0.0, 0);
+
+482: 			for k in range(0, n):
+
      __pyx_t_15 = __pyx_v_n;
+      __pyx_t_16 = __pyx_t_15;
+      for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
+        __pyx_v_k = __pyx_t_17;
+
+483: 				for l in range(0, n):
+
        __pyx_t_18 = __pyx_v_n;
+        __pyx_t_19 = __pyx_t_18;
+        for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
+          __pyx_v_l = __pyx_t_20;
+
+484: 					G[i,m] = G[i,m] + D[k,l] * ( 2.0 * eri[iEri(i,m,k,l)] - eri[iEri(i,k,m,l)])
+
          __pyx_t_14 = __pyx_v_i;
+          __pyx_t_13 = __pyx_v_m;
+          __pyx_t_21 = __pyx_v_k;
+          __pyx_t_22 = __pyx_v_l;
+          __pyx_t_23 = __pyx_f_5aello_iEri(__pyx_v_i, __pyx_v_m, __pyx_v_k, __pyx_v_l);
+          __pyx_t_24 = __pyx_f_5aello_iEri(__pyx_v_i, __pyx_v_k, __pyx_v_m, __pyx_v_l);
+          __pyx_t_25 = __pyx_v_i;
+          __pyx_t_26 = __pyx_v_m;
+          *((__pyx_t_double_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_G.data + __pyx_t_25 * __pyx_v_G.strides[0]) ) + __pyx_t_26 * __pyx_v_G.strides[1]) )) = __Pyx_c_sum_double((*((__pyx_t_double_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_G.data + __pyx_t_14 * __pyx_v_G.strides[0]) ) + __pyx_t_13 * __pyx_v_G.strides[1]) ))), __Pyx_c_prod_double((*((__pyx_t_double_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_D.data + __pyx_t_21 * __pyx_v_D.strides[0]) ) + __pyx_t_22 * __pyx_v_D.strides[1]) ))), __Pyx_c_diff_double(__Pyx_c_prod_double(__pyx_t_double_complex_from_parts(2.0, 0), (*((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_eri.data + __pyx_t_23 * __pyx_v_eri.strides[0]) )))), (*((__pyx_t_double_complex *) ( /* dim=0 */ (__pyx_v_eri.data + __pyx_t_24 * __pyx_v_eri.strides[0]) ))))));
+        }
+      }
+
+485: 			F[i,m] = H[i,m] + G[i,m]
+
      __pyx_t_24 = __pyx_v_i;
+      __pyx_t_23 = __pyx_v_m;
+      __pyx_t_22 = __pyx_v_i;
+      __pyx_t_21 = __pyx_v_m;
+      __pyx_t_13 = __pyx_v_i;
+      __pyx_t_14 = __pyx_v_m;
+      *((__pyx_t_double_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_F.data + __pyx_t_13 * __pyx_v_F.strides[0]) ) + __pyx_t_14 * __pyx_v_F.strides[1]) )) = __Pyx_c_sum_double((*((__pyx_t_double_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_H.data + __pyx_t_24 * __pyx_v_H.strides[0]) ) + __pyx_t_23 * __pyx_v_H.strides[1]) ))), (*((__pyx_t_double_complex *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_G.data + __pyx_t_22 * __pyx_v_G.strides[0]) ) + __pyx_t_21 * __pyx_v_G.strides[1]) ))));
+    }
+  }
+
 486: 
+
+487: 	return fock
+
  __Pyx_XDECREF(__pyx_r);
+  __Pyx_INCREF(__pyx_v_fock);
+  __pyx_r = __pyx_v_fock;
+  goto __pyx_L0;
+
 488: 
+
 489: 
+
 490: 
+
 491: 
+
diff --git a/document/aello.md b/document/aello.md new file mode 100644 index 0000000..2fdb5a9 --- /dev/null +++ b/document/aello.md @@ -0,0 +1,79 @@ +# aello Module - cython fast integrals + +This project was not designed to be fast, the emphasis was on clarity rather than conciseness or speed. However this is an exercise on speeding up an implementation. Note it is a *bolt-on* to existing code and not how perhaps one would design a cython project from the beginning. The module is called *aello* who was one of the Harpies in Greek mythology the name means *storm-swift*. The aim of any python-to-cython project is to reduce as much as possible the python interaction with the code leaving c to do the most work possible. The approach I took here was to convert the python basis and atom class arrays (numpy) to c-memory views and use those. This is done by the following method... + + me = np.empty([nb,ng], dtype = np.double) #define a variable, in this case for the exponent array + cdef double[:,:] alo_e = me #equate it to a memory view + +Then populate the view and use it for all calculations. Use np.empty rather than np.zeros, it save a bit of time and helps with debugging. I've also reduced the function calls by expanding some of the integral module functions in-line. (Because the exponent, coefficient and normal array length varies within a basis set there is an extra array which holds the number of primatives for each basis function.) If you compile aello via **cython aello.pyx -a** and get an html file it shows how the code is interacting with the python interpreter you will see that most of the calculation is in white (good) with only the python->c code in yellow (bad). The loops are free of yellow which is key to a successful conversion. The routines are + +1. **cdef double cye(int ia, int ja, int type, double r, double ie, double je)** + + parameters - *ia, ja* are momenta values, *type* determines the calculation mode, *r* is the seperation vector between + atoms i and j, and *ie, je* are the exponents of atom centers i and j. Cython version of e from integral module. + +2. **cdef double ovlp(int ia0, int ia1, int ia2, int ja0, int ja1, int ja2, int type, double r0, double r1, double r2, double ie, double je):** + + parameters - *ia0-ja2* are momenta values of atoms i and j, *type* as before, *r0-r2* are components of vector between + atoms i and j, and *ie, je* are the exponents of atom centers i and j, Cython version of overlap from integral module. + +3. **cdef double clmb(int l, int m, int n, int bf, double p, double r0, double r1, double r2)** + + parameters - *l, m, n* components of sum of momenta on atoms i and j plus 1, *bf* Boys function parameter, *r0-r2* + components of vector from atom i to atom j. Cython version of j from integral module. + +4. **cdef double boys(double m,double T)** + + Direct copy of similar routine from integral module. Use *from scipy.special.cython_special cimport hyp1f1* + +5. **cdef double tei(int al0, int al1, int al2, int al3, short[:,:] aa, double[:,:] an, double[:,:] ac,double[:,:] ae, double[:,:] ao, int i, int j, int k, int l):** + + parameters - *al0-al3* number of primatives on basis on atoms i,j,k and l, *aa* array of primative lengths, *an* array + of normals, *ac* array of coefficients, *ae* array of exponents, *ao* array of basis atom centers and *i,j,k,l* basis + numbers ie . Note by array is meant a memory view. + +6. **cdef double mu(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, double[3] kr, int direction):** + + parameters - *ia, ja* are momenta on atoms i and j, *ie, je* are expononts, *ir, jr* are atom centers, *kr* is charge center and *direction* the cartesian axis being computed. + +7. **cdef double ang(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, double[3] kr, int direction):** + + parameters - *ia, ja* are momenta on atoms i and j, *ie, je* are expononts, *ir, jr* are atom centers, *kr* is charge center and *direction* the cartesian axis being computed. + + +8. **def aello(molAtom, molBasis, mode = 'scf', density = None, gauge = None):** + + parameters - *molAtom* array of atom objects, *molBasis* array of basis objects. *mode* is type of integrals returned, either ['scf'|'dipole']. Returns S, K, J and I (overlap,kinetic, coulomb and eri) in 'scf' mode, dipole component matrices in 'dipole' mode. + +Does it work? Water DZ basis without aello - 1m 42s, with aello - 11s and\ +                         Water 6-31g       without aello - 1m 16s, with aello - 9s\ +so yes it's faster but still quite slow because speed has not been a consideration in writing the code. +The integral routines are quite efficient, eg a aug-cc-pvdz integral comparison with McMurchie-Davidson (Josh Goings)...\ +                        harpy            McMurchie-Davidson\ +1-electron       0.046                             3.164\ +2-electron       30.147                        35.482 + + 9. **cpdef aelloDipole(double[:,:] alo_n, double[:,:] alo_c, double[:,:] alo_e, short[:,:] alo_a, double[:,:] alo_o, short[:] alo, short[:] alo_z, double[:,:] alo_x, int na, int nb, object molAtom, double[:,:] density):** + + parameters - *alo* \_n, \_c, \_e, \_o are basis normal, coefficients, exponents and centers. *alo* is the number of primatives, *alo* \_z and \_x are the atomic numbers and centers. *na* and *nb* the number of atoms and bases, *molAtom* is the molecular atom object and *density* the converged final density matrix. Returns a vector of dipole components. + +10. **cpdef aelloAngular(double[:,:] alo_n, double[:,:] alo_c, double[:,:] alo_e, short[:,:] alo_a, double[:,:] alo_o, short[:] alo, short[:] alo_z, double[:,:] alo_x, int na, int nb, object molAtom, gauge):** + + parameters - *alo* \_n, \_c, \_e, \_o are basis normal, coefficients, exponents and centers. *alo* is the number of primatives, *alo* \_z and \_x are the atomic numbers and centers. *na* and *nb* the number of atoms and bases, *molAtom* is the molecular atom object and *gauge* is the gauge type as string. Returns a vector of angular components. + +The other major bottleneck is the construction of the fock matrix. There are two aello cython routines to accelerate this. + +11. **iEri(long i, long j, long k, long l)** + + parameters - *i,j,k,l* are indexes into the eri tensor. + +12. **aelloFock(long n, double[:,:] H, double[:] eri, double[:,:] D))** + + parameters - *n* is the number of basis functions, *H* the core hamiltonian, *eri* the 2-electron repulsion integrals and *D* the density matrix. + +13. **tdhfFock(long n, double complex[:,:] D, double complex[:,:] H, double complex[:] eri):** + + parameters - *n* is the number of basis functions, *H* the core hamiltonian, *eri* the 2-electron repulsion integrals and *D* the density matrix. This is a complex arithmetic version of **aelloFock** above. Especially written for the TDHF module. It is an example of how to use complex with Cython. + + +It's still not fast but it is a lot faster. The file *aello.html* produced by *cython aello.pyx -a* is included in document directory. diff --git a/document/atom.md b/document/atom.md new file mode 100644 index 0000000..f61b506 --- /dev/null +++ b/document/atom.md @@ -0,0 +1,149 @@ +# Atom Module - basic geometry + +Much of this module follows the properties considered in +[Crawford projects] (https://github.com/CrawfordGroup/ProgrammingProjects/tree/master/Project%2301) + +1. weight - list of atomic weights (H - Xe) +2. covalentRadius - list of covalent radii (H - Xe). Used to infer joins +3. symbol - list of atomic symbols (H - Xe) +4. __init__ - instantiate atom class object.\ +            id - identifier, eg *H1*\ +            number - atomic number, eg *4*\ +            center - atomic center, \[x,y,z]\ +            joins - connected atoms, \[] + +5. **seperation(atoms, i, j, unit=*b*)** + + parameters - *atoms* is array of atom class objects, *i*, *j* are atom objects, *unit = b* for Bohr + *a* for Angstrom. Returns the interatom distance between atoms i and j. + +6. **angle(atoms, i, j, k)** + + parameters - *atoms* is array of atom class objects, *i*, *j*, *k* are atom objects. Returns the + angle between vectors **ji** and **jk** calculated as arccos of the dot product of + the normalised vectors. Angle is in degrees. + +7. **oopAngle(atoms, i, j, k, l)** + + parameters - *atoms* is array of atom class objects, *i*, *j*, *k*, *l* are atom objects. Returns + the angle between **ik** and normal to plane **jkl**, this is the out-of-plane angle. + Calculated as arcsin of dot product of **ik** and the cross-product **jk** X **lk**. + Angle is in degrees. + +8. **dihedral(atoms, i, j, k, l)** + + parameters - *atoms* is array of atom class objects, *i*, *j*, *k*, *l* are atom objects. Returns + the angle planes **ijk** and **jkl**, this is the dihedral or torsional angle. Angle + is in degrees. + +10. **massCenter(atoms)** + + parameters - *atoms* is array of atom class objects. Calculates the coordinates of the center of mass + of the system. Needs weight list. Returns a list [x,y,z]. + +11. **isBond(atoms, i,j)** + + parameters - *atoms* is array of atom class objects, *i*, *j* are atom objects. Using the covalent + radii determines if atom i is within bond range of atom j. Factor 1.6 is to give a bit + of leeway in distance. Returns a boolean. Returns **False** if *i* equals **j**. + +12. **bondMatrix(atoms)** + + parameters - *atoms* is array of atom class objects. Returns a connection matrix. Cell \[i,j] is 0 if no + connection, 1 otherwise. + +13. **inertiaTensor(atoms)** + + parameters - *atoms* is array of atom class objects.. Returns a matrix of the inertia Tensor. Uses + massCenter function. + +14. **principalMoments(atoms)** + + parameters - *atoms* is array of atom class objects. Returns the principal moments of inertia. Uses + inertiaTensor function which is diagonalised by numpy.eig. Returns list of principal + moments sorted by argsort in ascending order. + +15. **rotor(atoms)** + + parameters - *atoms* is array of atom class objects. Returns the rotor type as a string. Uses + principalMoments function. + +16. **rotationalConstants(atoms)** + + parameters - *atoms* is array of atom class objects. Returns the rotational constants, uses principalMoments + function. Returns [A,B,C] + +17. **nuclearRepulsion(atoms, charge)** + + parameters - *atoms* is array of atom class objects, and *charge* is the molecular charge (remember closed shell + only for RHF. Uses *atoms*.number property. Returns the nuclear repulsion energy as a float. + +18. **nuclearChargeCenter(atoms)** + + parameters - *atoms* is array of atom class objects. Returns the center of the molecules nuclear charges as list + [x,y,z], Uses *atoms*.number property. + +19. **getMass(atoms, atom)** + + parameters - *atoms* is array of atom class objects and *atom* is a member of the atom class. Returns the atomic weight of *atom*. + +20. **getNumber(atomicSymbol)** + + parameters - *atomicSymbol* is the recognised symbol for the atom type. Return the atomic number corresponding to the symbol. + +21. **gaugeCenter(atoms, mode = 'origin')** + + parameters - *atoms* is array of atom class objects and *mode* is the type of gauge center +['origin' | 'mass' | 'nuclear charge']. 'origin' is the origin of the Cartesian coordinate system, 'mass' is center of molecular mass and 'nuclear charge' is the center of the positive molecular charges. Default is 'origin'. If *mode* is passed as an array then the routine will pass this point on and evaluation will occur at that point rather than at a named origin. + +22. **getConstant(unit):** + + parameters - *unit* is a string representing the conversions. *unit* can be | 'bohr->angstom' | 'picometre->bohr' | 'radian->degree' | 'planck' | 'bohr->cm' | 'c' | 'dalton->gm' | 'em2->amu' | 'atu->femtosecond' | 'hartree-eV' | 'au->debye' | 'alpha' | 'eV[-1]->nm' | 'Eh' | 'avogardo' | 'electric constant' | 'e' | 'bohr magneton' |. Returns the value of the constant. The constants are + +| mnemonic | value | description | +|-------------|-----------|-----------------| +| *bohr->angstrom* | 0.52917721092 | conversion factor atomic units to Angstrom | +| *picometre->bohr* | 0.018897261339213 | 10-12 metres in atomic units | +| *radian->degree* | 180/π | radian angles to degrees | +| *planck* | 6.62607015e-34 | Plancks constant (*h*) | +| *bohr->cm* | 0.529177249e-10 | atomic units to centimetres | +| *c* | 2.99792458e10 | speed of light in cm | +| *dalton->gm* | 1.6605402e-27 | unified mass units to gm | +| *em2->amu* | 1822.8884850 | electron mass2 to atomic mass units | +| *atu->femtosecond* | 0.02418884254 | atomic time units to 10-15 seconds | +| *hartree->eV* | 27.21138505 | atomic energy units to electron volts | +| *au->debye* | 2.541580253 | atomic electric dipole moment units to Debye | +| *alpha* | 0.00729735256 | fine-structure constant | +| *Ev[-1]->nm* | 1239.841701 | reciprocal electron volts to nanometres (10-9) | +| *Eh* | 4.359744722207e-18 | atomic unit of energy in Joules | +| *avogadro* | 6.022140857e+23 | Avogadros's number mol-1 | +| *electric constant* | 8.854187817e-12 | electric constant (ε0) Fm-1 | +| *e* | 1.6021766208e-19 | elementary charge in Coulombs | +| *bohr megneton* | 9.274009994e-24 | bohr magneton μB JT-1 | +| *rydberg->eV* | 13.6056980659 | 1 Rydberg in electron volts | + +23. **zMatrix(input)** + + parameters - *input* is a list of lines representing the z-matrix input. Dummy atoms represented by **X** are supported and symbolic stretches, bends and dihedrals are allowed. Contains subroutines: + + + rodriguez(axis, theta) - generates rotation matrix for rotation about axis (unit) vector by angle theta (radians). + + + getSymbolValue(s, input) - finds the corresponding numeric value of symbol *s* in input stream *input*. + + + isSymbol(s) - determines if input stream item *s* is a symbol. Returns boolean. + + + getValue(item, type, input) - returns the numeric value of *item* of *type* stretch, bend or dihedral in *input* stream. Angles on input are degrees and are converted to radians by this routine. Calls isSymbol and getSymbolValue for symbolic representations. + + + clean(val, mode) - in mode 1 removes dummy atoms (X) from final coordinate list, in mode 2 strips leading and trailing blank lines from input stream. Internal blank lines are left as delimiters between atoms and symbols. + + + processAtom(atom, input, geo=None) - processes a line of *input* stream representing *atom*. *geo* is the current list of coordinates (needed for number of atoms > 2). + Returns tuple of atomic number of *atom* and coordinate list. + + The *input* stream is processed for each atom, dummy atoms are removed and list [id, Z, x, y, z] is returned. *id* is a sequence number base 1. + +24. **atomList(molAtom):** + + parameters - *molAtom* is an array of atom objects. Returns a list of the atomic numbers of the atoms in the molecule. + + + diff --git a/document/basis.md b/document/basis.md new file mode 100644 index 0000000..a3976d6 --- /dev/null +++ b/document/basis.md @@ -0,0 +1,67 @@ +# Basis Module - set up the molcular basis + + +1. subShell - dictionary of subShell momenta {s:p:d:f} +2. __init__ - instantiate basis class object.\ +          atom            - atomic center of orbital\ +          symbol        - subShell designation of orbitals\ +          center          - atomic center, \[x,y,z]\ +          momentum - subShell item for the orbital\ +          ex                 - list of Gaussian exponents\ +          co                 - list of Gaussian coefficients\ +          normal         - list of normalisation factors for coefficients + +3. **electronCount(atoms, charge)** + + parameters - *atoms* is array of atom class objects, *charge* is molecular charge. Calculated as sum of + atom numbers minus the charge. Returns an integer. + +4. **species(atoms)** + + parameters - *atoms* is array of atom class objects. Constructs a list of unique atom types contained in + the molecule. The returned list is sorted in ascending order so that basis file can be searched + sequentially. Returns list. + +5. **checkBasis(name, atoms)** + + parameters - *name* is the name of the basis eg *6-32g*, *atoms* is array of atom class objects. Firstly the + routine checks for a file *name*.gbf (Gaussian Basis Functions). Then the atom types returned by species are then checked against the range covered by the basis. If all checks are passed returns True else False. + +6. **principalQuantumNumber(basis)** + + parameters - *basis* is a basis object. Determines the principal quantum number (n) of the orbital. This is + the sum of the momentum components of the orbital. Returns an integer. + +7. **basisNormalise(basis)** + + parameters - *basis* is a basis object. Calulates the normalisation factor for *basis* and populates + *basis*.normal. Returns the basis object. Uses principalQuantumNumber function. + [see for details of calculation](https://content.wolfram.com/uploads/sites/19/2012/02/Ho.pdf) + +8. **buildBasis(atoms, name)** + + parameters - *atoms* is array of atom class objects, name is the string containing name of basis. Open basis + file (uses psi4 format) and cycle through unique atom list from species function. Note each atom + is in file seperated with ******, followed by an atom header eg *Br     0*. File is read + sequentially to locate relevant atom header then reads blocks of exponents and coefficients eg + *SP 3 1.0*. Routine constructs an atomic basis set for the atom type then copies to every instance of that + type in molecule. Returns a molecular basis. + +9. **orbitalType(subShell)** + + parameters - *subShell* is an element from subShell list eg \[0,1,0]. Returns a subshell type eg for \[0,1,0] + returns *py*. Returns a string. + +10. **aufbau(atom)** + + parameters - *atom* is an object. Returns the aufbau occupancy of the atom object. So for eg Oxygen returns + *1s2 2s2 2p4* but formatted for HTML output. so 1s22s22p6. + +11. **orbitalShell(molBasis)** + + parameters - *molBasis* is the molecular basis array of basis objects. Prefixes the orbital type with the shell ie px->2px and writes result back to symbol property of the basis object. + + + + + diff --git a/document/bomd.md b/document/bomd.md new file mode 100644 index 0000000..675c4b8 --- /dev/null +++ b/document/bomd.md @@ -0,0 +1,154 @@ +# Born-Oppenheimer Molecular Dynamics + +The module describes the time development of a molecule using Born-Oppenheimer molecular dynamics. + +1. **mdBornOppenheimer(timeIncrement, iterations, integrator = 'velocity-verlet', out=['plot','file']):** + + parameters - *timeIncrement* is the basic step of time in atomic time units, *iterations* are the number of timeIncrement steps to be made, *integrator* is the method used to propogate the dynamics, default is the *velocity-verlet* method, *out* is a list which can be 'plot'|'file'. If 'plot' is specified a diagram of energy against time is displayed, if 'file' is specified the results are written to a file (local directory) for post-processing. Note that the RHF density is passed to the next cycle. Don't push these algorithms too far or the errors will accumulate. The output file has the following format + + h2o sto-3g velocity-verlet + 3 200 10 + 0.00 -74.94207995 0.000 + 0.000000 -0.143226 0.000000 0.000000 0.000000 0.000000 0.000000 0.097441 0.000000 + 1.638037 1.136549 -0.000000 0.000000 0.000000 0.000000 -0.086300 -0.048721 0.000000 + -1.638037 1.136549 -0.000000 0.000000 0.000000 0.000000 0.086300 -0.048721 0.000000 + 10.00 -74.94221751 3.293 + 0.000000 -0.143184 0.000000 0.000000 0.000017 0.000000 0.000000 0.097192 0.000000 + 1.637450 1.136217 0.000000 -0.000235 -0.000132 0.000000 -0.086111 -0.048596 0.000000 + -1.637450 1.136217 0.000000 0.000235 -0.000132 0.000000 0.086111 -0.048596 0.000000 + +That is\ +line 1 {'molecule name'} {'basis name'} {'integrator'}\ +line 2 {number of atoms} {number of steps} {step size}\ +followed by {number of steps} blocks of...\ +    {time elapsed in simulation} {energy at this step} {real time elapsed}\ +and {number of atoms} lines of triples (x,y,z)\ +    {position} {velocity} {force}\ + + +2. **mdVisualise(type)** + + parameters - *type* is either 'bond{*n*:*m*}' or 'angle{*l*:*n*:*m*}', where *l, m, n* are atom designators. Will use the saved file from mdBornOppenheimer to plot the energy against time and either the bond or angle specified. If type = '' then just the energy will be plotted. Internally all units are atomic units, mdVisualise plots time as femtoseconds. + + Details of the velocity-verlet can be found [here](https://en.wikipedia.org/wiki/Verlet_integration). It is the most common of the symplectic integrators. + The Beeman algorithm can be found [here](https://en.wikipedia.org/wiki/Beeman%27s_algorithm). + +Dynamics can be run as (set molecule data in project.hpf) then +```python + from bomd import mdBornOppenheimer, mdVisualise + + mdBornOppenheimer(5, 200, 'velocity-verlet', ['plot', 'file']) + mdVisualise('bond{0:1}') + +``` +**Example 1. Hydrogen Molecule** + +These are the results for the energy variation and bond-length changes in the sto-3g basis. ![](/media/h2-sto-3g.png). + +You can see the dynamics over a period of 20 femtoseconds. The period of the bond vibration is twice that of the energy vibration. The minimum of the energy occurs when the bond length is about 1.35 bohr, and extrema of the bond length occur when the energy is a maximum. The frequency of bond vibration is \~5472 cm-1. The results in different bases are + +| basis | frequency (cm-1) | +|-----------------|-------------------| +| sto-3g | 5472 | +| 3-21g | 4659 | +| 6-31g | 4643 | +| dz | 4643 | +| cc-pvdz | 4597 | +| expt. | 4342 | [](chem,perdue.edu/gchelp/vibs/h2/html) + +**Example 2. Water Molecule** + +These are the results for the water molecule in sto-3g basis. ![](/media/h2o-sto-3g.png). + + +The molecular vibrations are a symmetric stretch with a bend. At minimum energy the bond length is about 1.9 bohr and again maxima of the energy correspond to the extrema of the bond length. The profile of curves for the other OH bond are identical indicating a symmetric stretch. The frequency of the stretch is 4116 cm-1. The bend is depicted below ![](/media/h2o-sto-3g-a.png) + +The frequency of the bend is 2206 cm-1. The frequency of the bend is about half that of the stretch so the energy profile is not a simple oscillation. The results for different bases are + +| basis | stretch | bend | +|-----------------|-------------------|--------------| +| sto-3g | 4116 | 2206 | +| 3-21g | 3727 | 1802 | +| 6-31 | 3778 | 1692 | +| dz | 3830 | 1671 | +| cc-pvdz | 3884 | 1839 | +| expt. | 3657 | 1595 | + + + +Methods currently available are the **velocity-verlet** + +r(t + *dt*) = r(t)*dt* + a(t)*dt*2/2 +v(t + *dt*) = v(t) + [a(t) + a(t+*dt*)] *dt*/2 + +**Beeman** algorithm + +r(t + *dt*) = r(t)*dt* + v(t)*dt* + 2a(t)*dt*2/3 - a(t-*dt*)*dt*2/6 +v(t + *dt*) = v(*dt*) + (2a(t+*dt*) + 5a(t) - a(t-*dt*))*dt*/6 + +and **adams-moulton** algorithm + +r(t + *dt*) = r(t)*dt* + v(t)*dt* + 2a(t)*dt*2/3 - a(t-*dt*)*dt*2/6 +v(t + *dt*) = v(*dt*) + (5a(t+*dt*) + 8a(t) - a(t-*dt*))*dt*/12 + +- - - +## Velocity Autocorrelation Function +An autocorrelation function is the similarity of a function with a time lagged version of itself. Details can be found [here](https://en.wikipedia.org/wiki/Autocorrelation). It's useful to us because of the Wiener–Khinchin theorem which states that the autocorrelation function has a spectral decomposition given by the power spectrum. This means by calculating the autocorrelation function and then doing a discrete FFT on it will give us an intensity spectrum. The routine **velocityAutocorrelation** works as follows ++ A BOMD calculation is performed to produce an output file containing atom displacements. Remember the BOMD uses atomic time and length measurements, as a rough guide to convert atu to femtoseconds divide by 40. The more points you can get the better, I used ammonia with 10000 steps and a step of 10 atu's as a test (overnight run!). ++ Having got the displacements from the BOMD (**BOMDfileRead**) calculate the gradients of the displacements (np.gradient) and divide by the time step (**getTimeDerivatives**). This gives us a rate of change with respect to time ie a velocity, hence this is a 'velocity' autocorrelation. ++ Now compute the autocorrelation of the derivatives (**getAutoCorrelation**). To do this we convolve the autocorrelation with a reversed copy of itself using signal.fftconvolve.. ++ Define a windowing function (**getViewPort**), this can be any defined in scipy.signal.window. ++ Perform a discrete fast Fourier transform (np.fft.fft) after first convolving autocorrelation function with the window and applying zero padding (**getPadding**). ++ Get the ftrequency from np.fft.fftfreq and plot frequency v intensity (square of fft). + +This is performed by + +3. **velocityAutocorrelation(options)** + + parameters - *options* is a dictionary with keys 'mode', 'atoms', 'window', 'file', 'plot'. 'mode' can be one of 's' (stretch), 'b' (bend) or 'd' (dihedral), 'atoms' is a list containing integers representing the atoms defining the stretch, bend, or dihedral. 'window' is a string and can be one of 'boxcar', 'triang', 'blackman', 'hamming', 'hann', 'bartlett', 'flattop', 'parzen', 'bohman', 'blackmanharris', 'nuttall', 'barthann', 'cosine', 'exponential', 'tukey', 'taylor', 'kaiser'\*, 'gaussian'\*, 'chebwin'\*. All except the last 3 (\*) require a string eg 'hann', the last three require an additional parameter so 'gaussian, 500', where the extra parameter is for 'gaussian' the standard deviation, for 'chebwin' it's the attenuation in dB and for kaiser it's the shape parameter β. 'file' is a string specifying where the input data file resides and 'plot' and be any of 'derivative', either 'ACp' or 'ACf' and 'spectrum'. 'ACp' will plot the autocorrelation (pyplot.acorr) whereas 'ACf' plots the actual autocorrelation function. Returns wavenumber (cm-1) and intensity (arbitary units). + + Routines contained within velocityAutocorrelation are + +4. **BOMDfileRead(input)** + + parameters - *input* is a string specifying the location of the BOMD data. Returns array of displacements and list containing time step, number of steps, number of atoms and title of BOMD file. + +5. **getVibrationMode(options, geometry)** + + parameters - *options* are the options defining the run and *geometry* is the array of displacements. Returns array of either displacements (stretch) or angles (bend and dihedral). + +6. **getTimeDerivatives(vibrations, dt)** + + parameters - *vibrations* are the linear or angular displacements and *dt* is the time step. Returns time derivatives. + +7. **getAutoCorrelation(f)** + + parameters - *f* are the velocities ie time derivatives of displacements. Returns autocorrelation function values. + +8. **getViewport(options, dataLength)** + + parameters - *options* are the options defining the run and *dataLength* is the length of the autocorrelation data. Returns pointer to a window function. + +9. **getPadding(dataLength)** + + parameters - *dataLength* is the length of the autocorrelation data. Returns next power of 2 beyond end of autocorrelation data. + +10. **autocorrelationFFT(ACF, window)** + + parameters - *ACF* are the autocorrelation function values and *window* is the windowing function. Returns square of result of FFT. + +This is an example of it's use +```python +mdBornOppenheimer(10, 10000, 'velocity-verlet', ['plot', 'file']) + +velocityAutocorrelation({ 'mode' : 's' , 'atoms' : [0,1], 'window' : 'gaussian,500', \ + 'file' : 'md.hdf', 'plot' : ['derivative', 'ACf', 'spectrum']}) +``` +Running the above for an ammonia molecule in STO-3G gives + +![ammonia N-H bond stretch](/media/nh3-vacf-bond.png) +![ammonia H-N-H bend](/media/nh3-vacf-bend.png) + +We see a stretch at ~3800 cm-1 and a bend at ~1400 cm-1. This compares with theoretical HF/STO-3G values from NIST given [here](https://cccbdb.nist.gov/vibs3x.asp?method=1&basis=20) of 3833 cm-1 and 1412 cm-1. + +Using *getPeaks* from tdhf module gives values of 3838 and 1406 so good agreement with NIST. diff --git a/document/cctn.md b/document/cctn.md new file mode 100644 index 0000000..e1fb750 --- /dev/null +++ b/document/cctn.md @@ -0,0 +1,25 @@ +### Coupled-Cluster Triples and Variations + +The theoretical background to this can be found in *documents/CCSDT-n.ipynb*. This covers CCSDT-1a, CCSDT-1b, CCSDT-n for n=2,3,4. The code can be accessed through a *post* command in the harpy input as eg *post={-1a}*. Valid identifiers are -1a, -1b, -2, -3, -4, -T (full CCSDT) and -t (CCSD(T). The code will output to the console rather than the HTML output file. The source file contains a DIIS class specially modified for triples, the routine *cluster_triples_n_diagrams* which contains the extra cluster diagrams needed for the triples variations and *coupledClusterTriplesVariations* which is the main routine. + +The process is as follows: from harpy take the 2-electron repulsion integrals, Fock matrix, mo coefficients (C) and the molecular orbital energies. We convert the eri and Fock to spin versions and use these to pass to the COGUS ccsd(t) code. From the COGUS code we get back (for each cycle) the $T_1$ and $T_2$ amplitudes. These amplitudes are then on each cycle augmented with the extra diagrams needed for the method being computed. For the straight triples the plain COGUS code is used unmodified. The results have been tested by using CC_ADE to explicitly construct the exponential terms involved in the ansatz for each method and also against results given in 'Coupled-Cluster Studies in Computational Chemistry' a Master of Science thesis by Ole T. B. Norli. The results from this source have themselves been verified against J. Noga & R.J. Bartlett Chemical Physics Letters Vol. 134, issue 2, 20 Feb 1987. The molecule used is $H_2 O$ in a DZ basis the geometry is in Bohr units + +| atom | x | y | z | +|------|-----|------|-----| +| O | 0.000000 | 0.000000 | -0.009000 | +| H | 1.515263 | 0.000000 | -1.058898 | +| H | -1.515263 | 0.000000 | -1.058898 | + +The results for references are calculated to 1-e7 and for harpy 1e-8, units are Hartrees + +| method | reference | harpy | +|---------|----------------|----------| +| CCSDT-1a| -0.147577 | -0.1475768 | +| CCSDT-1b| -0.147580 | -0.1475803 | +| CCSDT-2 | -0.147459 | -0.1474589 | +| CCSDT-3 | -0.147450 | -0.1474501 | +| CCSDT-4 | -0.147613 | -0.1476129 +| CCSDT | 0.147594 | -0.1475938 | +| CCSD | | -0.1462381 | +| (T)| | -0.0012159 | + diff --git a/document/ci.md b/document/ci.md new file mode 100644 index 0000000..9ec443a --- /dev/null +++ b/document/ci.md @@ -0,0 +1,71 @@ +# Configuration Interaction Module + + +There is a Crawford project on the CI [see](https://github.com/CrawfordGroup/ProgrammingProjects/tree/master/Project%2312). See also fci module. + +1. **cis(atoms, charge, bases, eigenVectors, fock, ERI)** + + parameters - *atoms* is an array of atom objects (the molecular atom set), *charge* is the molecular charge, *bases* is an array of basis objects (the molecular basis), *eigenVectors* are the final eigenfunctions of the fock matrix, *fock* is the final Fock matrix and *ERI* the 2-electron repulsion integrals. This routine calls buildFockMOspin to get the Fock matrix in the MO spin basis, then buildEriMO to get 2-electron repulsion integrals in the MO basis and subsequently buildEriDoubleBar to transform to a spin basis integral. A CI Hamiltonian is computed and the eigen solution found. This gives a mixture of + tuples states which a returned as a unique value and a multiplicity by ciDegeneracy function. Returns the arrays of eigenvalues and eigenvectors. A call to blockDavidson returns the (5) lowest eigenvalues from a block Davidson algorithm. A call to excitations produces a list of all contributions to the orbital excitations above 10% and the levels involved in the jump. Returns the eigenvalues and eigenvectors. + +2. **ciDegeneracy(e)** + + parameters - *e* is an array of (possibly degenerate) values pre-sorted in ascending order. Returns an array of 2-pules [energy, degeneracy], + where is is the degeneracy (*s* - singlet, *d* - doublet, *t* - triplet or \[*n*] - n'let). + +3. **spinAdaptedSingles(atoms, charge, bases, eigenVectors, fock, ERI)** + + parameters - *atoms* is an array of atom objects (the molecular atom set), *charge* is the molecular charge, bases is an array of basis objects (the molecular basis), *eigenVectors* are the final eigenfunctions of the fock matrix, *fock* is the final Fock matrix and *ERI* the 2-electron repulsion integrals. This routine constructs the Fock matrix in the MO basis and calls buildEriMO to get the 2-electron repulsion integrals in the mO basis as well. A spin-adapted CI hamiltonian for singlets is then constructed and the eigen solution found. Returns eigenvalues. + +4. **spinAdaptedTriples(atoms, charge, bases, eigenVectors, fock, ERI)** + + parameters - *atoms* is an array of atom objects (the molecular atom set), *charge* is the molecular charge, bases is an array of basis objects (the molecular basis), *eigenVectors* are the final eigenfunctions of the fock matrix, *fock* is the final Fock matrix and *ERI* the 2-electron repulsion integrals. This routine constructs the Fock matrix in the MO basis and calls buildEriMO to get the 2-electron repulsion integrals in the mO basis as well. A spin-adapted CI hamiltonian for triplets is then constructed and the eigen solution found. Returns eigenvalues. + +5. **randomPhaseApproximation(atoms, charge, bases, eigenVectors, fock, ERI)** + + parameters - *atoms* is an array of atom objects (the molecular atom set), *charge* is the molecular charge, bases is an array of basis objects (the molecular basis), *eigenVectors* are the final eigenfunctions of the fock matrix, *fock* is the final Fock matrix, *ERI* the 2-electron repulsion integrals and *type* is the method of constructing Hamiltonian. *type* can be 'block' this is just the CIS method, 'linear' is using (A-B)(A+B) to find square of eigenvalues, 'hermitian' is using (A-B)½(A+B)(A-B)½ to find the square of the eigenvectors and 'raw' which just returns the A and B matrices. There is also a 'tamm-dancoff' option which just uses the A matrix. This option will also solve for eigenvectors and returns sorted eigenvalues and eigenvectors. This routine calls buildFockMOspin to get the Fock matrix in the MO spin basis, then buildEriMO to get 2-electron repulsion integrals in the MO basis and subsequently buildEriDoubleBar to transform to a spin basis integral. A and B matrices are constructed and (A+B)(A-B) solved as an eigenvalue problem to get the CI energies squared. ciDegeneracy is then used to filter out the degeneracies. + +6. **excitations(ecis, ccis, nElectrons, nOccupied, nVirtual)** + + parameters - *ecis* and *ccis* are the eigenvalues and vectors of the CI Hamiltonian, n\_ are the various orbital occupation counts. Returns an array of arrays each containing \[energy level number, energy value, % contribution, jump given as eg *3 -> 5*]. + +7. **blockDavidson(nLowestEigen, h)** + + parameters - *nLowestEigen* is the number of the lowest eigenvalues the routine is to return, *h* is a CI hamiltonian to be diagonalised. Returns the eigenvalues as an array or *None* if algorithm failed. Use with sparse matrices. + + +Also included is a class to handle CIS(D) computations. The class can do calculations using both a direct solver (numpy.linalg.eigh) or the Davidson iterative solver from adc moldule. +To do a CIS(D) computation use code as follows which also shows getting the mp2 energy. The class has a *cache* property which is a dictionary with keys 'mp2', 'cis', 'cisd' and 'u'. These are the respective MP2 and CIS energies, the CIS(D) **correction** and the CIS eigenvectors from the computation. These are simply retrieved as eg ```mp2_energy = cisd.cache['mp2```']. The *method* can be either CIS(D) or CIS_MP2, in the latter case the *cache* key 'cisd' will not exist and is replaced by the keyword 'cis-mp2' +``` +from adc.adc import hf_reference + +#run RHF scf computation +import rhf +molAtom, molBasis, molData = rhf.mol([]) +e_scf = rhf.scf(molAtom, molBasis, molData, []) + +#ground state class +hf = hf_reference(rhf, molAtom, molBasis, molData) + +from ci import cis_d +roots = 10 +cisd = cis_d(hf, roots, solver='davidson', method='cis(d)') +``` +which will produce an output like +``` +***CIS(D)*** + root CIS CIS(D) Δ +--------------------------------------------- + 1 0.378234 0.339494 ( -0.038740 ) + 2 0.378234 0.339494 ( -0.038740 ) + 3 0.378234 0.339494 ( -0.038740 ) + 4 0.450863 0.423928 ( -0.026935 ) + 5 0.450863 0.423928 ( -0.026935 ) + 6 0.450863 0.423928 ( -0.026935 ) + 7 0.454664 0.405082 ( -0.049582 ) + 8 0.497466 0.465175 ( -0.032292 ) + 9 0.497466 0.465175 ( -0.032292 ) + 10 0.497466 0.465175 ( -0.032292 ) +``` +This is for the geometry prescribed in [this reference](https://hirata-lab.chemistry.illinois.edu//cis_data.out). The value given by this reference for CIS(D) is -0.03874026915629841. The output for CIS-MP2 (first root) is ```1 0.378234 0.342717 ( -0.035517 )``` compared to the reference value of -0.03551743011037764. + diff --git a/document/cogus.md b/document/cogus.md new file mode 100644 index 0000000..8b72e15 --- /dev/null +++ b/document/cogus.md @@ -0,0 +1,55 @@ +# Cluster Operator Generation Using Sympy + +This module runs the codes generated by the **cogus** program. The *cogus* program uses the Sympy secondquant module to automatically generate Python code to evaluate various coupled-cluster methods. The codes are stored in the directory harpy/codes and are called *ccd.py*, *ccsd.py*, *ccsdt*, *ccsd_t.py*, *cc2.py*, *cc3.py*, *lccd.py* and *lccsd.py*. More details can be found in the *cogus* documentation [here](https://github.com/pwborthwick/cogus) and [here](https://github.com/pwborthwick/ToDo/blob/harpy/cogus.md). The routines are + +1. **symbolicGeneratedCoupledCluster(name, fock, eri, c, e, scfData)** + + parameters - *name* is the name of the coupled-cluster method to be executed. This can be one of **ccd, ccsd, ccsdt, ccsd_t, cc2, cc3, lccd, lccsd**. *fock* is the converged Fock matrix from a Hartree-Fock calculation, *eri* are the 2-electron repulsion integrals, *c* are the converged eigenvectors, *e* are the orbital energies and *scfData* is a list containing [charge, nuclearRepulsion, number of electrons]. The program reads the *cogus* generated Python code and combines this with the code to run the cluster routines. The combined code is the executed using Pythons *exec* command. The routine returns the name of the method, cluster correction energy and either 0.0 or the perturbative correction if the method includes one. These routines are much faster than the ones in the cc module as they use einsum. + ++ CCD + + <0| e-T2 HN eT2 |0> , HN is the normal-ordered Hamiltonian. + + <0| i+j+ab e-T2 HN eT2 |0> + ++ CCSD + + <0| e-T1-T2 HN eT1+T2 |0> , + + <0| i+a e-T1-T2 HN eT1+T2 |0> + + <0| i+j+ab e-T1-T2 HN eT1+T2 |0> + ++ CCSDT + + <0| e-T1-T2-T3 HN eT1+T2+T3 |0> , + + <0| i+a e-T1-T2-T3 HN eT1+T2+T3 |0> + + <0| i+j+ab e-T1-T2-T3 HN eT1+T2+T3 |0> + + <0| i+j+k+abc e-T1-T2-T3 HN eT1+T2+T3 |0> + ++ CCSD(T) + + <0| e-T1-T2-T3 HN eT1+T2+T3 |0> , + + <0| {l1+l2} \[v,T3] |0> + + <0| i+a e-T1-T2-T3 HN eT1+T2+T3 |0> + + <0| i+j+ab e-T1-T2-T3 HN eT1+T2+T3 |0> + + <0| i+j+k+abc {e-T3 FN eT3+e-T2 vN eT2} |0> + ++LCCD + + T2 is restricted to only linear terms ie T2(1) + ++LCCSD + + T2 is restricted to only linear terms + ++CC2 + + <0| e-T1-T2 HN eT1+T2 |0> , + + <0| i+a e-T1-T2 HN eT1+T2 |0> + + <0| i+j+ab {e-T2 FN eT2 + e-T1 vN eT1 |0> + ++CC3 + + <0| e-T1-T2-T3 HN eT1+T2+T3 |0> , + + <0| i+a e-T1-T2-T3 HN eT1+T2+T3 |0> + + <0| i+j+ab e-T1-T2-T3 HN eT1+T2+T3 |0> + + <0| i+j+k+abc {e-T1-T2-T3 FN eT1+T2+T3 + e-T1 vN eT1} |0> + <0| i+j+k+abc {v + \[v,T2] + \[\[v,T1],T2] + 1/2\[\[\[v,T1],T1],T2] + 1/6\[\[\[\[v,T1],T1],T1],T2]} |0> + +2. **symbolicGeneratedLambda(name, fock, eri, c, e, coreH, scfData)** + + parameters - *name* is the name of the coupled-cluster method to be executed. This must be **ccsd**. *fock* is the converged Fock matrix from a Hartree-Fock calculation, *eri* are the 2-electron repulsion integrals, *c* are the converged eigenvectors, *e* are the orbital energies, *coreH* is the core Hamiltonian and *scfData* is a list containing [charge, nuclearRepulsion, number of electrons]. The program reads the *cogus* generated Python code and combines this with the code to run the lambda routines. The combined code is the executed using Pythons *exec* command. The routine returns the name of the method, thne lambda Lagrange energy, the Λ-pseudo energ and response density energy. + +3. **symbolicAmplitudes(name, fock, eri, c, e, scfData, spinned = False)** + + parameters - *name* is the name of the coupled-cluster method to be executed. This must be **ccsd**. *fock* is the converged Fock matrix from a Hartree-Fock calculation, *eri* are the 2-electron repulsion integrals, *c* are the converged eigenvectors, *e* are the orbital energies and *scfData* is a list containing [charge, nuclearRepulsion, number of electrons]. The parameter *spinned* allows already spin MO versions of fock, eri and e to be supplied to the routine. *c* can be either spin or unspinned if *spinned* is True as it is not used. The program reads the *cogus* generated Python code and combines this with the code to run the cluster routines. The combined code is the executed using Pythons *exec* command. The routine returns the name of the method and the singles, doubles and triples amplitude (where appropriate). The *name* can be ccd, ccsd, ccsdt or ccsd_t. If *spinned* is True then spin MO versions of Fock, eri and orbital energies must be supplied. + \ No newline at end of file diff --git a/document/diis.md b/document/diis.md new file mode 100644 index 0000000..028a56e --- /dev/null +++ b/document/diis.md @@ -0,0 +1,12 @@ +# Direct Inversion of the Iterative Subspace + +A discussion of the algorithm can be found in [Crawford projects] (https://github.com/CrawfordGroup/ProgrammingProjects/tree/master/Project%2308) for Fock convergence and [here](https://github.com/CrawfordGroup/ProgrammingProjects/tree/master/Project%2310) for the coupled cluster iteration. DIIS requires an 'error vector', a quantity that approaches zero as the equations converge. For the Fock iteration that quantity is a two-dimensional matrix while for coupled cluster it is made up of a 2-dimensional array and a 4-dimensional array. In the latter case the arrays are flattened and concatenated to make the diis object. It is possible to flatten the Fock iteration quantities and in practice use a single routine for both cases. Here there are two routines, one for Fock matrix and one for coupled cluster linear arrays as an example of both ways of doing a diis procedure. They are implemented as classes. + +1. **diis_f(diisCapacity)** + + parameters - *diisCapacity* is the (maximum) size of diis buffer. *diisStatus* is either 'on' or 'off'. Returns a new Fock matrix. The class is initiated with the capacity being passed. The other call is *build(fock, density, s, x)* which builds the fock and error buffers and resturns the extrapolated fock. See rhf.py for an example of use. + + +2. **diis_c(diisCapacity, [ts, td, tt, ...])** + + parameters - *ts, td, tt, ...* are arrays of the quantities on which the diis procedure is based, in this case the singles, doubles, triples etc amplitudes. *diisCapacity* is the (maximum) size of diis buffer and *spinOrbitals* are the number of alpha plus beta spin orbitals.The class is initiated with the initial amplitudes and the capacity being passed. *refresh_store([ts, td, ...])* is used to update a buffer of this iteration and the last iteration values for use in convergence determination. *build([ts, td. ...])* builds the amplitude and error buffers and returns the extrapolated amplitudes. See either scc.py or fcc.py for examples of how to use this class. diff --git a/document/eom.md b/document/eom.md new file mode 100644 index 0000000..cba3885 --- /dev/null +++ b/document/eom.md @@ -0,0 +1,364 @@ +# EOM-CCSD +The motivation for this is Josh Goings program *pyqchem* on Github. The following draws from that program and documents Josh kindly supplied. +The paper [Simplified methods for equation-of-motion coupled-cluster excited state calculations - Steven R. Gwaltney, Marcel Nooijen, Rodney J. Bartlett](https://notendur.hi.is/agust/rannsoknir/papers/cpl248-189-96.pdf) gives the following equations for the partitioning of the EOM-CCSD hamiltonian. The Hamiltonian is not Hermitian and these are equations for right hand eigenvectors. + +**HSS**\ +FaeCei - FmiCam + WamieCem , *which re-indexed {e->c,m->k} is*\ +FacCci - FkiCak + WakicCck   , *uniform vectors*\ +FacCckδik - FkiCckδac+ WakicCck ++ HSS**a****i** = \[F**a**c δ**i**k - Fk**i** δ**a**c + W**a**k**i**c] Cck + +**HSD**\ +FmeCaeim + 0.5WamefCefim - 0.5WmnieCaemn , *which re-indexed {m->l,e->d,f->c,n->k} is*\ +FldCadil + 0.5WaldcCdcil - 0.5WlkidCadlk   , uniform vectors\ +FldCcdklδacδik + 0.5WalcdCcdklδik **1**- 0.5WklidCcdklδac **2**\ +**1** *repeated indices c and d interchanged.*\ +**2** *repeated indices k and l interchanged.* ++ HSD**a****i** = \[Fld δ**i**kδ**a**c + 0.5 W**a**lcd δ**i**k - 0.5 Wlk**i**d δ**a**c] Ccdkl + +**HDS**\ + P(ab) WmaijCbm + P(ij) WabejCei + P(ab) Wbmfetaf ijCem - P(ij) WnmjetabinCem , *which re-indexed {m->k,e->c,f->e,n->m}*\ + P(ab) WkaijCbk + P(ij) WabcjCci + P(ab) WbkectaeijCck - P(ij) WmkjctabimCck   , *uniform vectors*\ +P(ab) WkaijCck δbc + P(ij) WabcjCckδik + P(ab) WbkectaeijCck - P(ij) WmkjctabimCck ++ HDS**ab****ij** = \[*P*(ab) Wk**aij** δ**b**c + *P*(ij) W**ab**c**j** δ**i**k + *P*(ab) W**b**kec t**a**e**ij** - *P*(ij) Wmk**j**c t**ab****i**m]] Cck + +**HDD**\ +P(ab) FbeCaeij - P(ij) FmjCabim + 0.5WabefCef ij + 0.5WmnijCabmn + P(ab)P(ij) WbmjetaeimCaeim - 0.5P(ab) WnmfetfbijCeamn - 0.5P(ij) WnmfetabjnCfeim, *which re-indexed {e->c,m->k,n->m/l,f->e/d}*\ +P(ab) FbcCacij - P(ij) FkjCabik + 0.5WabcdCcdij + 0.5WklijCabkl + P(ab)P(ij) WbkjcCacik - 0.5P(ab) WlkectebijCcakl + 0.5P(ij) WmkdctabjmCdcik   , *uniform vectors*\ +P(ab) FbcCcdklδadδilδjk- P(ij) FkjCcdklδbcδadδil + 0.5WabcdCcdklδikδjl+ 0.5WklijCcdklδacδbd + P(ab)P(ij) WbkjcCcdklδadδil - 0.5P(ab) WlkectebijCcdklδad + 0.5P(ij) WmkdctabjlCcdklδil ++ HDD**ab****ij** = \[*P*(ab) F**b**c δ**j**k δ**i**l δ**a**d - Fk**j** δ**a**d δ**i**l δ**b**c + 0.5W**ab**cd δ**i**k δ**j**l + 0.5Wkl**ij** δ**a**c δ**b**d + *P*(ij)*P*(ab) W**a**k**i**c δ**j**l δ**b**d - 0.5Wlkecte**b****ij** δ**a**d + 0.5Wmkdct**ab****j**m δ**i**l] Ccdkl + +*(Einstein summation implied on repeated indices)* +- - - +Note gabcd = = - = - = \ +τabij = tabij + 2 taibj \ +τabij = -τbaij = -τabji \ +P(ij) = f(ij) - f(ji)\ +For EOM-CCSD tai and tabij are the converged single and double amplitudes from a CCSD calculation. +- - - - +#### Intermediates +Fme = F(ov) = *f*me + tfn gmnef \ +Fmi = F(oo) = *f*mi + tei*f*me + ten gmnie + 0.5 τefin gmnef \ +Fae = F(vv) = *f*ae - tam*f*me + tfm gamef - 0.5 τafmn gmnef \ +\ +Wmnij = W(oooo) = gmnij + P(ij) tej gmnie + 0.5τef ij gmnef \ +Wabef = W(vvvv) = gabef - P(ab) tbm gamef + 0.5τabmn gmnef \ +Wamef = W(vovv) = gamef - tan gnmef \ +Wmnie = W(ooov) = gmnie + tf i gmnfe \ +Wmbej = W(ovvo) = gmbej + tfj gmbef - tbn gmnej - (tfbjn + tfjtbn) gnmfe \ +Wmbje = W(ovov) = gmbje + tfj gbmef - tbn gmnje - (tfbjn + tfjtbn) gnmef \ +Wabei = W(vvvo) = gabei - Fmetabmi + tf iWabef + 0.5τabmn gmnei - P(ab) tafmi gmbef - P(ab) tam {gmbei - tbfni gmnef} \ +Wmbij = W(ovoo) = gmbij - Fmetbeij - tbnWmnij + 0.5τef ij gmbef + P(ij) tbejn gmnie + P(ij) tei {gmbej - tbfnj gmnef} +- - - - +#### HSS +\[F**a**c δ**i**k - Fk**i** δ**a**c + W**a**k**i**c] rck \ +\ +Equations for terms taken from [J. Chem. Phys. 98, 7029 (1993); https://doi.org/10.1063/1.46474698, 7029© 1993 American Institute of Physics.The equation of motion coupled-clustermethod. A systematic biorthogonal approach to molecular excitation energies, transition probabilities, and excited state properties](https://www.theochem.ru.nl/files/local/jcp-98-7029-1993.pdf) + ++ +F**a**c = *f***a**c δ**i**k - t**a**m *f*mcδ**i**k + te m gm**a**ec δ**i**k - 0.5 te**a**nm gmnce δ**i**k - ten t**a**m gmnce δ**i**k + + + [1] +*f***a**c δ**i**k   1 + + [2] -tm**a** *f*mc δ**i**k   9 + + [3] +tem gm**a**ec δ**i**k   4 + + [4] -0.5 te**a**nm gmnce δ**i**k   10 + + [5] -ten t**a**m gmnce δ**i**k   15 + ++ -Fk**i** = -(*f*k**i** δ**a**c + te**i** *f*ke δ**a**c + tem gkm**i**e δ**a**c + 0.5 tef**i**m gkmef δ**a**c + te**i** tfm gkmef δ**a**c ) + + + [6] -*f*k**i** δ**a**c   2 + + [7] -te**i** *f*ke δ**a**c   8 + + [8] -tem gkm**i**e δ**a**c   5 + + [9] -0.5 tef**i**m gkmef δ**a**c   11 + + [10] -te**i** tfm gkmef δ**a**c   14 + ++ +W**a**k**i**c = g**a**k**i**c + te**i** g**a**kec - t**a**m gmk**i**c - (te**a****i**m + te**i** t**a**m) gmkec + + + [11] +g**a**k**i**c   3 + + [12] +te**i** g**a**kec   6 + + [13] -t**a**m gmk**i**c   7 + + [14] -te**a****i**mgmkec   12 + + [15] -te**i** t**a**m gmkec   13 + +- - - +#### HSD +\[Fld δ**i**kδ**a**c + 0.5 W**a**lcd δ**i**k - 0.5 Wkl**i**d δ**a**c] rlkcd + ++ +Fld = fld δ**i**kδ**a**c + tem glmde δ**i**kδ**a**c + + + [16] +fld δ**i**kδ**a**c   16 + + [17] +tem glmde δ**i**kδ**a**c   21 + ++ +0.5 W**a**lcd = 0.5 g**a**lcd δ**i**k - 0.5 t**a**mgmlcd δ**i**k + + + [18] +0.5 g**a**lcd δ**i**k   17 + + [19] -0.5 t**a**m gmlcd δ**i**k   20 + ++ -0.5 Wkl**i**d = -0.5 (gkl**i**d δ**a**d + te**i** gkled δ**a**c) + + + [20] -0.5 gkl**i**d δ**a**c   18 + + [21] -0.5 te**i** gkled δ**a**c   19 + +*There is disagreement between reference [2] and [Coupled-cluster calculations of nuclear magnetic resonance chemical shifts](www2.chemia.uj.edu.pl/~migda/Literatura/pdf/JCP03561.pdf) we have taken reference [3] which agrees with coding in psi4numpy/pyscf. Reference [2] has gkild + tekgkied and reference [3] glkid + teiglked* + +- - - +#### HDS + \[*P*(ab) Wk**aij** δ**b**c + *P*(ij) W**ab**c**j** δ**i**k + *P*(ab) W**b**kec t**a**e**ij** - *P*(ij) Wmk**j**c t**ab****i**m] rkc + ++ +*P*(ab) {Wk**aij**} = *P*(ab) {gk**aij** δ**b**c + *P*(ij) t**a**em**j** gkm**i**e δ**b**c + 0.5τef**ij** gk**a**ef δ**b**c - t**a**m Wkm**ij** δ**b**c +*P*(ij) te**i** (gk**a**e**j** - t**a**fm**j** gkmef) δ**b**c -tae**ij** Fke δ**b**c} + + + [22] +*P*(ab) {gk**aij** δ**b**c}   23 + + [23] +*P*(ab)*P*(ij) te**a**m**j** gkm**i**e δ**b**c   31 + + [--] +*P*(ab) 0.5τef**ij** gk**a**ef δ**b**c + + [24] +*P*(ab) 0.5tef**ij** gk**a**ef δ**b**c   32 + + [25] +*P*(ab) te**i** tf**j** gk**a**ef δ**b**c   36 + + [--] -*P*(ab) t**a**mWkm**ij** δ**b**c + + Wkm**ij** = gkm**ij** + *P*(ij) te**j** gkm**i**e + 0.5τef**ij** gkmef + + [26] -*P*(ab) t**a**m gkm**ij** δ**b**c   25 + + [27] +*P*(ab) {t**a**m *P*(ij) te**j** gkme**i** δ**b**c}   38 + + [--] -*P*(ab) 0.5t**a**m τef**ij** gkmef δ**b**c + + [28] -*P*(ab) 0.5t**a**m tef**ij** gkmef δ**b**c   43 + + [29] -*P*(ab) t**a**m te**i** tf**j** gkmef δ**b**c   50 + + [--] +*P*(ab) {*P*(ij) te**i** (gk**a**e**j** - t**a**fm**j** gkmef) δ**b**c} + + [30] +*P*(ab)*P*(ij) te**i** gk**a**ej δ**b**c   27 + + [31] -*P*(ab)*P*(ij) te**i** t**a**fm**j**gkmef δ**b**c   39 + + [--] -*P*(ab) +t**a**e**ij** Fke δ**b**c = -*P*(ab) {t**a**e**ij** *f*ke δ**b**c + t**a**e**ij** tfm gkmef δ**b**c} + + [32] -*P*(ab) t**a**e**ij** *f*ke δ**b**c   29 + + [48] -*P*(ab) t**a**e**ij** tfm gkmef δ**b**c   49 + ++ *P*(ij) {W**ab**c**j**} = *P*(ij) {g**ab**c**j** δ**i**k - *P*(ab) gm**b**cf t**a**fm**j** δ**i**k + 0.5τ**ab**mn gmnc**j** δ**i**k + te**j** W**ab**ce δ**i**k - *P*(ab) t**a**m (gm**b**c**j** δ**i**k - t**b**en**j** gmnce) δ**i**k - Fmc t**ab**m**j** δ**i**k} + + + [33] +*P*(ij) g**ab**c**j** δ**i**k   22 + + [34] -*P*(ij)*P*(ab) g**b**mce te**a**mj δ**i**k   30 + + [--] +*P*(ij) 0.5τ**ab**mn gmnc**j** δ**i**k + + [35] +*P*(ij) 0.5t**ab**mn gmnc**j** δ**i**k   33 + + [36] +*P*(ij) t**a**m t**b**n gmnc**j** δ**i**k   37 + + [--] *P*(ij) W**ab**ce = *P*(ij) {(g**ab**ce - *P*(ab) t**b**m g**a**mce + 0.5τ**ab**mn gmnce) δ**i**k} + + [37] +*P*(ij) te**j** g**ab**ce δ**i**k   24 + + [38] *P*(ij)*P*(ab) te**j** t**b**m gm**a**ce δ**i**k   40* + + [--] *P*(ij) 0.5τ**ab**mn gmnce δ**i**k + + [39] *P*(ij) 0.5te**j** t**ab**mn gmnce δ**i**k   42 + + [40] *P*(ij) te**j** t**a**m t**b**n gmnce δ**i**k   41 + + [41] -*P*(ij)*P*(ab) t**a**m gm**b**c**j** δ**i**k   26 + + [42] -*P*(ij)*P*(ab) t**a**m te**b**n**j** gmnce δ**i**k   44 + + [--] -*P*(ij) Fmc t**ab**m**j** δ**i**k = *P*(ij) {-t**ab**m**j** *f*mc δ**i**k - t**ab**m**j** ten gmnce δ**i**k} + + [47] -*P*(ij) t**ab**m**j** *f*mc δ**i**k   28 + + [49] -*P*(ij) t**ab**m**j** ten gmnce δ**i**k   47 + ++ *P*(ab) W**b**kec t**a**e**ij** = *P*(ab) {t**a**e**ij**(g**b**kec - t**b**m gmkec)} + + + [43] +*P*(ab) t**a**e**ij** g**b**kec   34 + + [44] -*P*(ab) t**a**e**ij** t**b**m gmkec   48 + ++ -*P*(ij) Wmk**j**c t**ab****i**m = -*P*(ij){ t**ab****i**m(gmk**j**c - te**j** gmkec)} + + [45] -*P*(ij) t**ab****i**m gmk**j**c   35 + + [46] -*P*(ij) t**ab****i**m te**j** gmkec   46 + +- - - +#### HDD + \[*P*(ab) F**b**c δ**j**k δ**i**l δ**a**d - Fk**j** δ**a**d δ**i**l δ**b**c + 0.5W**ab**cd δ**i**k δ**j**l + 0.5Wkl**ij** δ**a**c δ**b**d + *P*(ij)*P*(ab) W**a**k**i**c δ**j**l δ**b**d - 0.5Wlkecte**b****ij** δ**a**d + 0.5Wmkdct**ab****j**m δ**i**l] rlkcd + ++ +*P*(ab) F**b**c = *P*(ab) {(*f***b**c - *f*mc t**b**m + tem gm**b**ec - 0.5 τ**b**emngmnce) δ**j**kδ**i**lδ**a**d} + + [50] +*P*(ab) *f***b**c δ**j**kδ**i**lδ**a**d   52 + + [51] -*P*(ab) *f*mc t**b**m δ**j**kδ**i**lδ**a**d   58 + + [52] +*P*(ab) temgm**b**ec δ**j**kδ**i**lδ**a**d   63 + + [53] -*P*(ab) 0.5te**b**mn gmnec δ**j**kδ**i**lδ**a**d   71 + + [54] -*P*(ab) tem t**b**n gmnecδ**j**kδ**i**lδ**a**d   76 + ++ -*P*(ij) Fk**j** = *P*(ij) {(*f*k**j** + *f*ke te**j** + tem gkm**j**e + 0.5τef**j**m gkmef ) δ**a**dδ**i**lδ**b**c} + + [55] -*P*(ij) *f*k**j** δ**a**dδ**i**lδ**b**c   53 + + [56] -*P*(ij) *f*ke te**j** δ**a**dδ**i**lδ**b**c   57 + + [57] -*P*(ij) tem gkm**j**e δ**a**dδ**i**lδ**b**c   64 + + [58] +*P*(ij) 0.5tfe**j**m gkmef δ**a**dδ**i**lδ**b**c   69 + + [59] +*P*(ij) tf**j** tem gkmef δ**a**dδ**i**lδ**b**c   75 + ++ +0.5W**ab**cd = 0.5 (g**ab**cd - *P*(ab) t**b**m g**a**mcd + 0.5τ**ab**mn gmncd) δ**i**kδ**j**l + + [60] +0.5g**ab**cd δ**i**kδ**j**l   54 + + [61] -P(ab) 0.5t**b**m g**a**mcd δ**i**kδ**j**l   61 + + [62] +0.25t**ab**mn gmncd δ**i**kδ**j**l   65 + + [63] +0.5t**a**m t**b**n gmncd δ**i**kδ**j**l   73 + ++ +0.5Wkl**ij** = 0.5 (gkl**ij** + *P*(ij) te**j** gkl**i**e + 0.5τef**ij** gklef) δ**a**cδ**b**d + + [64] +0.5gkl**ij** δ**a**cδ**b**d   55 + + [65] +P(ij) 0.5te**j** gkl**i**e δ**a**cδ**b**d   62 + + [66] +0.25tef**ij** gklef δ**a**cδ**b**d   66 + + [67] +0.5te**i** tf**j** gklef δ**a**cδ**b**d   72 + ++ +*P*(ij)*P*(ab) W**a**k**i**c = *P*(ij)*P*(ab) {(g**a**k**i**c + te**i** g**a**kec - t**a**m gmk**i**c - (te**a****i**m + te**i** t**a**m) gmkec) δ**j**lδd**b<**} + + [68] +*P*(ij)*P*(ab) g**a**k**i**c δ**j**lδd**b**   56 + + [69] +*P*(ij)*P*(ab) te**i** g**a**kec δ**j**lδd**b**   59 + + [70] -*P*(ij)*P*(ab) t**a**mgmk**i**c δ**j**lδd**b**   60 + + [71] -*P*(ij)*P*(ab) te**a**im gmkec δ**j**lδd**b**   67 + + [72] -*P*(ij)*P*(ab) te**i** t**a**m gmkec δ**j**lδd**b**   74 + ++ -0.5Wlkec te**b****ij** = -0.5te**b****ij** glkec δ**a**d + + [73] -0.5te**b****ij**glkec δ**a**d   70 + ++ +0.5Wmkdc t**ab****j**m = +0.5Wmkdct**ab****j**m δ**i**l + + [74] -0.5Wkmcd t**ab**m**j** δ**i**l   68 +- - - +- - - + # EOM-MBPT(2) + This is an approximation to full EOM-CCSD obtained by only retaining terms through second-order. This means\ + tai = **0**\ + tabij = gabij/(*f*ii+*f*jj-*f*aa-*f*bb)\ + *f*ai = **0** + + A good reference is ['Assessment of low-scaling approximations to the equation of motion coupled-cluster singles and doubles equations' - Joshua J Goings, Marco Caricato, Michael J Frisch and Xiaosong Li](http://dx.doi.org/10.1063/1.4898709) + #### HSS +\[F**a**c δ**i**k - Fk**i** δ**a**c + W**a**k**i**c] rck \ ++ +F**a**c = *f***a**c δ**i**k - 0.5 te**a**nm gmnce δ**i**k + + + [1] +*f***a**c δ**i**k   1 + + [4] -0.5 te**a**nm gmnce δ**i**k   10 + ++ -Fk**i** = -\(*f*k**i** δ**a**c + 0.5 tef**i**m gkmef δ**a**c ) + + + [6] -*f*k**i** δ**a**c   2 + + [9] -0.5 tef**i**m gkmef δ**a**c   11 + ++ +W**a**k**i**c = g**a**k**i**c - te**a****i**m gmkec + + + [11] +g**a**k**i**c   3 + + [14] -te**a****i**mgmkec   12 + +- - - +#### HSD +\[Fld δ**i**kδ**a**c + 0.5 W**a**lcd δ**i**k - 0.5 Wkl**i**d δ**a**c] rlkcd + ++ +Fld = 0 + ++ +0.5 W**a**lcd = 0.5 g**a**lcd δ**i**k + + + [18] +0.5 g**a**lcd δ**i**k   17 + ++ -0.5 Wkl**i**d = -0.5 gkl**i**d δ**a**d + + + [20] -0.5 gkl**i**d δ**a**c   18 +- - - +#### HDS + \[*P*(ab) Wk**aij** δ**b**c + *P*(ij) W**ab**c**j** δ**i**k + *P*(ab) W**b**kec t**a**e**ij** - *P*(ij) Wmk**j**c t**ab****i**m]] rkc + ++ +*P*(ab) {Wk**aij**} = *P*(ab) {gk**aij** δ**b**c + *P*(ij) t**a**em**j** gkm**i**e δ**b**c + 0.5τef**ij** gk**a**ef δ**b**c} + + + [22] +*P*(ab) {gk**aij** δ**b**c}   23 + + [23] +*P*(ab)*P*(ij) te**a**m**j** gkm**i**e δ**b**c   31 + + [--] +*P*(ab) 0.5τef**ij** gk**a**ef δ**b**c + + [24] +*P*(ab) 0.5tef**ij** gk**a**ef δ**b**c   32 + ++ *P*(ij) {W**ab**c**j**} = *P*(ij) {g**ab**c**j** δ**i**k - *P*(ab) gm**b**cf t**a**fm**j** δ**i**k + 0.5τ**ab**mn gmnc**j** δ**i**k + + + [33] +*P*(ij) g**ab**c**j** δ**i**k   22 + + [34] -*P*(ij)*P*(ab) g**b**mce te**a**mj δ**i**k   30 + + [--] +*P*(ij) 0.5τ**ab**mn gmnc**j** δ**i**k + + [35] +*P*(ij) 0.5t**ab**mn gmnc**j** δ**i**k   33 + ++ *P*(ab) W**b**kec t**a**e**ij** = *P*(ab) {t**a**e**ij**(g**b**kec - t**b**m gmkec)} + + + [43] +*P*(ab) t**a**e**ij** g**b**kec   34 + ++ -*P*(ij) Wmk**j**c t**ab****i**m = -*P*(ij){ t**ab****i**m(gmk**j**c - te**j** gmkec)} + + [45] -*P*(ij) t**ab****i**m gmk**j**c   35 +- - - +#### HDD + \[*P*(ab) F**b**c δ**j**k δ**i**l δ**a**d - Fk**j** δ**a**d δ**i**l δ**b**c + 0.5W**ab**cd δ**i**k δ**j**l + 0.5Wkl**ij** δ**a**c δ**b**d + *P*(ij)*P*(ab) W**a**k**i**c δ**j**l δ**b**d - 0.5Wlkecte**b****ij** δ**a**d + 0.5Wmkdct**ab****j**m δ**i**l] rlkcd + ++ +*P*(ab) F**b**c = *P*(ab) {(*f***b**c - 0.5 τ**b**emngmnce) δ**j**kδ**i**lδ**a**d} + + [50] +*P*(ab) *f***b**c δ**j**kδ**i**lδ**a**d   52 + + [53] -*P*(ab) 0.5te**b**mn gmnec δ**j**kδ**i**lδ**a**d   71 + ++ -*P*(ij) Fk**j** = *P*(ij) {(*f*k**j** + 0.5τef**j**m gkmef ) δ**a**dδ**i**lδ**b**c} + + [55] -*P*(ij) *f*k**j** δ**a**dδ**i**lδ**b**c   53 + + [58] +*P*(ij) 0.5tfe**j**m gkmef δ**a**dδ**i**lδ**b**c   69 + ++ +0.5W**ab**cd = 0.5 (g**ab**cd + 0.5τ**ab**mn gmncd) δ**i**kδ**j**l + + [60] +0.5g**ab**cd δ**i**kδ**j**l   54 + + [62] +0.25t**ab**mn gmncd δ**i**kδ**j**l   65 + ++ +0.5Wkl**ij** = 0.5 (gkl**ij** + 0.5τef**ij** gklef) δ**a**cδ**b**d + + [64] +0.5gkl**ij** δ**a**cδ**b**d   55 + + [66] +0.25tef**ij** gklef δ**a**cδ**b**d   66 + ++ +*P*(ij)*P*(ab) W**a**k**i**c = *P*(ij)*P*(ab) {(g**a**k**i**c - te**a****i**m gmkec) δ**j**lδd**b**} + + [68] +*P*(ij)*P*(ab) g**a**k**i**c δ**j**lδd**b**   56 + + [71] -*P*(ij)*P*(ab) te**a**im gmkec δ**j**lδd**b**   67 + ++ -0.5Wlkec te**b****ij** = -0.5te**b****ij** glkec δ**a**d + + [73] -0.5te**b****ij**glkec δ**a**d   70 + ++ +0.5Wmkdc t**ab****j**m = +0.5Wmkdct**ab****j**m δ**i**l + + [74] -0.5gkmcd t**ab**m**j** δ**i**l   68 + + - - - + P-EOM + + In the partitioned scheme the HDD(2) block is replaced with HDD(0). That is + #### HDD + \[*P*(ab) F**b**c δ**j**k δ**i**l δ**a**d - Fk**j** δ**a**d δ**i**l δ**b**c]\ + + [50] +*P*(ab) *f***b**c δ**j**kδ**i**lδ**a**d   52 + + [55] -*P*(ij) *f*k**j** δ**a**dδ**i**lδ**b**c   53 + + - - - + + 1. **maximumAmplitudes(t, top = 5, mode = 0)** + + parameters -*t* is an array of the amplitudes and the maximum *top* amplitude are returned. If *mode* is 0 order of amplitudes is diminishing absolute values, if *mode* is +1 order of amplitudes is diminishing positive amplitudes and if *mode* = -1 order is increasing negative amplitudes (ie -3,-2,-1). Returns a list of the 'top' amplitudes in the format eg '-0.356412 (0, 4)'. + + +2. **eomccsd(fockMOspin, eriMOspin, ts, td, nOccupied, nVirtual, spinOrbitals, partitioned = False, dialog = True)** + + parameters - *fockMOspin* is the converged Fock matrix in the molecular spin basis, *eriMOspin* are the electron repulsion integrals in the molecular spin basis, *ts* are the converged singles amplitudes from a ccsd computation, *td* are the converged doubles amplitudes from a ccsd computation, *nOccupied* is the number of occupied spin orbitals, *nVirtual* are the number of virtual spin orbitals, *spinOrbitals* are the number of spin orbitals. *partitioned* is a boolean flag, if true the HDD block will be set to H(0)DD and *dialog* if true will print the timings to the console. Returns the eigenvalues and right eigenvectors. + +3. **eommbpt2(fockMOspin, eriMOspin, nOccupied, nVirtual, spinOrbitals, partitioned = False, dialog = True)** + + parameters - *fockMOspin* is the converged Fock matrix in the molecular spin basis, *eriMOspin* are the electron repulsion integrals in the molecular spin basis, *nOccupied* is the number of occupied spin orbitals, *nVirtual* are the number of virtual spin orbitals, *spinOrbitals* are the number of spin orbitals. *partitioned* is a boolean flag, if true the HDD block will be set to H(0)DD and *dialog* if true will print the timings to the console. Returns the eigenvalues and right eigenvectors. + +4. **main** + This is an example of an eom calculation. A harpy project file is produced, saved and passed to the scf routine. After the scf has run the file is deleted. The Fock and eri integrals from the scf calculation are then converted to a molecular orbital spin basis and used in a CCSD calculation from which the singles and doubles amplitude are retained. The 5 most significant amplitudes (values and indices) are determined from the routine *maximumAmplitudes*. The eom-ccsd/mbpt(2) routines are run. After each routine has run the eigenvalues are sorted and converted to electron volts and passed to *ciDegeneracy* which returns tuples of (energy, degeneracy). Some of the energy values are compared to Gaussian derived values as a check. The SCF and CCSD correction energies, maximum amplitudes, excitation tuples and a range of eV to output are then passed to *postSCF* for printing in the harpy.html file. The output is + +

equation of motion

+

coupled-cluster singles and doubles calculation +
+ +
scf energy   -1.1229402577
ccsd energy-0.0248728759
total energy-1.1478131337
+
+

most significant amplitudes +
+ + + + + + + + + +
tai
-0.005758 (4, 0)
-0.005758 (5, 1)
tabij
0.084054 (2, 3, 1, 0)
0.084054 (3, 2, 0, 1)
-0.084054 (3, 2, 1, 0)
-0.084054 (2, 3, 0, 1)
-0.047829 (5, 4, 1, 0)
+ + + + + + + + + + + + +
eom-ccsd
10.852658 (t)15.898413 (s)26.471214 (t)30.521616 (s)31.881407 (s)
40.401967 (t)41.140804 (s)43.232123 (t)
+ + + + + + + + + + + + +
eom-mbpt(2)
10.657194 (t)15.708727 (s)26.265493 (t)30.222336 (s)31.678520 (s)
40.207311 (t)40.912816 (s)43.016807 (t)
+ +__Fast EOM_CCSD__ +There is a routine which codes an einsum version of EOM-CCSD using intermediates in _cc.fcc_. diff --git a/document/ep.md b/document/ep.md new file mode 100644 index 0000000..f2e493d --- /dev/null +++ b/document/ep.md @@ -0,0 +1,15 @@ +# Electron Propagator + +This module follows the psi4numpy implementation [here](https://github.com/psi4/psi4numpy/tree/master/Electron-Propagator). + +1. **electronPropagator2( molBasis, c, ERI, scfEnergy, eps, nOccupied, startOrbital = 2, nOrbitals = 4)** + + parameters - *molBasis* is an array of basis objects, *c* are the final orbital eigenvectors, *ERI* the (linear) 2-electron repulsion integrals, *scfEnergy* is the final converged total energy, *eps* the final orbital energies, *nOccupied* the number of occupied orbitals, *startOrbital* is orbital from which to start analysis and *nOrbitals* the number of orbitals to analyse. Returns to postSCF a list of the orbital energies (Koopman) and ep2 energies representing the ionising potentials. Returns ep2 energies. + +2. **electronPropagator2spin(molBasis, c, ERI, eigenValues, nOccupied, nOrbitals = 5)** + + parameters - *molBasis* is an array of basis objects, *c* are the final orbital eigenvectors, *ERI* the (linear) 2-electron repulsion integrals, *eigenValues* are the final orbital energies, *nOccupied* the number of occupied orbitals, and *nOrbitals* the number of orbitals to analyse. Returns to postSCF a list of the orbital energies (Koopman) and ep2 energies representing the ionising potentials. Returns ep3 energies. + +3. **koopmanAGFcorrection(molBasis ,c ,ERI, eigenValues, nOccupied, nOrbitals = 5):** + + parameters - *molBasis* is an array of basis objects, *c* are the final orbital eigenvectors, *ERI* the (linear) 2-electron repulsion integrals, *eigenValues* are the final orbital energies, *nOccupied* the number of occupied orbitals, and *nOrbitals* the number of orbitals to analyse (n below HOMO). This computes the approximate Green function correction to the IP. See Szabo and Ostlund pg 403. Returns a list of [[Koopman energy, AGF correction], ...] \ No newline at end of file diff --git a/document/fcc.md b/document/fcc.md new file mode 100644 index 0000000..b2a15d9 --- /dev/null +++ b/document/fcc.md @@ -0,0 +1,167 @@ +### Fast Coupled-Cluster + +The module scc.py has coupled-cluster routines written for clarity as explicit for-loops. This module contains a different (and faster) approach. In order to do coupled-cluster you need to first convert from atomic basis to a molecular spin basis (at least that's the way we'll do it). This is a class to do just that + +1. **class spinMO(object)** + +The initiator takes arguements (e, eri, c, f) where *e* are the orbital energies of a converged HF calculation, *eri* are the two electron repulsion integrals (in our case given as the linear array form), *c* are the orbital coefficients and *f* is the final Fock matrix. All quantities have dimension number of basis functions. To get a instance of the class use + + mo = spinMO(eps, eri, C, fock) + spinFock = mo.fs ; spinEri = np.gs + + The class has instance variables *gs* the MO spin two electron replusion integrals and *fs* the MO spin Fock integrals. These arrays are of length 2\*number of basis functions in all dimensions ie [n,n,n,n] and [n,n] + + There are two routines\ + *gMOspin(self, e, c, eri, nbf)* - for the two electron repulsion integrals and\ + *fMOspin(self, f, c)* - for the Fock matrix. + +The main coupled-cluster class is + +2. **class coupledCluster(object)** + + The initiator takes the arguements (fs, gs, e, data) where *fs* is the MO spin Fock matrix, *gs* are the MO spin two electron repusion integrals, *e* are the AO basis orbital energies and *data* is a dictionary {'method':.., 'electrons':.., 'cycle_limit'.., 'precision':.., 'verbose':..} supplied to the class by the caller. *method* is the coupled-cluster method, *electrons* are the number of electrons, *cycle_limit* is the maximum number of iterations allowed, *precision* is the number of decimal places to converge to and *verbose* is a boolean flag - if True information on each cycle will be printed. \ +The available *method*s are 'ccd', 'ccsd', 'ccsd(t)', 'cc2', 'qcisd' and linear ccd 'lccd' and linear ccsd 'lccsd'. +On exit the class has instance variables *ts* the singles amplitudes, *td* the doubles amplitudes, *converged* a boolean flag (which should be checked on exit) +indicating a successful convergence of the iterations and 'energy'. *ts* is of dimension [o,v], *td* is of dimension [o,o,v,v]. *energy* is a dictionary with keys + + 'cc' - coupled-cluster correction + + 'pt' - perturbative triples correction (optional) + + 'eHF' - Hartree-Fock electronic energy + + 'mp2' - Moller-Plesset 2 energy + + 'nuclear' - nuclear repulsion energy (user added see example code) + + The class has a method *intermediates(slice, tau)* where *slice* can be one of 'oo', 'vv', 'ov', 'oooo', 'vvvv' or 'ovvo' and tau is a boolean (default=True) which for coupled-cluster will be True (False for Lambda calculations). To get the Fae intermediate use + + mo = cc.itermediates('vv') + + There are eight routines \ + *initialise_amplitudes(self)* - sets ts and td initial values and computes d-tensors (inverses). Computes HF energy. \ + *tau(self, tilde=True)* - the τ functions. \ + *intermediates(self, \_slice, tilde=True)* - F and W coupled-cluster intermediates. \ + *update_amplitudes(self)* - generate next guess of the amplitudes for ccd, ccsd, ccsd(t) and cc2. \ + *update_linear_amplitudes(self)* - generate next guess of the amplitudes for lccd, lccsd. \ + *cluster_energy(self)* - compute the cluster correction energy. \ + *perturbative_triples(self)* - perturbative triples correction. \ + *iterator(self, func)* - the main iteration loop, amplitude update function passed as arguement. + + For the intermediates (tilde type) F-type intermediates are 'oo', 'vv' and 'ov', and for W-type 'oooo', 'vvvv' and 'ovvo'. + +There is a DIIS class specifically for the coupled-cluster class + +3. **diis(object)** + +The initiator takes the arguements *ts* initial singles amplitudes, *td* initial doubles amplitudes and *capacity* the size of the diis buffers. See the iterator routine in coupledCluster class for details on it's implementation. + + There are two routines \ + *refresh_store(self, ts, td)* - adds new ts and td to a buffer. \ + *build(self, ts, td)* - builds the B-matrix and weights and generates extrapolated ts and td. \ + + +4. **fastCoupledCluster(type, fock, eps, c, eri, nuclearRepulsion, data)** + +parameters - *type* is the couple-cluster method (see class for options), *fock* is the Fock matrix in the AO basis, *eps* the orbital energies corresponding to *c* the orbital coefficients in the AO basis, *eri* the two electron repulsion integrals in AO basis (linear form), *nuclearRepulsion* is the energy of the nuclear-nuclear interaction and *data* is a dictionary corresponding to that to be passed to the coupledCluster class initiator. Routine calls spinMO class then the coupledCluster class. The output is written to the output file 'harpy.html' and the energy dictionary from coupledCluster class is returned. + The main rhf module calls this routine in response to the **post={}** keys '+s', '+d', 't', '+2', '+q', +l' and '+L' for ccd, ccsd, ccsd(t), cc2, qcisd, lccd and lccsd respectively. The key for lambda is '+^' which returns the lambda pseudo-energy. + +This is an example of the use of the classes. + + if __name__ == '__main__': + + #do an SCF computation + import rhf + molAtom, molBasis, molData = rhf.mol([]) + eSCF = rhf.scf(molAtom, molBasis,molData, []) + + #get data for coupled-cluster + from atom import nuclearRepulsion ; from basis import electronCount + charge, nuclearRepulsion, electrons = [molData['charge'], nuclearRepulsion(molAtom), electronCount(molAtom, molData['charge'])] + f, c, e, eri = [rhf.fock, rhf.C, rhf.e, rhf.ERI] + + #get fock and eri in molecular spin basis from spinMO class + mo = spinMO(e, eri, c, f) + gs = mo.gs + fs = mo.fs + + #call coupled-cluster class + data = {'method':'ccsd(t)','electrons':electrons, 'cycle_limit': 50, 'precision':1e-10, 'verbose':False} + cc = coupledCluster(fs, gs, e, data) + + if cc.converged: + cc.energy['nuclear'] = nuclearRepulsion + + >>>{'cc': -0.07068008870929447, 'mp2': -0.04914963668931829, 'eHF': -82.94444701585344, 'pt': -9.987727029497426e-05, 'nuclear': 8.00236706181077} + +The are the results for the methods \ +ccsd(t) {'cc': -0.07068008870929447, 'mp2': -0.04914963668931829, 'eHF': -82.94444701585344, 'pt': -0.00009987727029497426, 'nuclear': 8.00236706181077} \ +ccsd {'cc': -0.07068008870929447, 'mp2': -0.04914963668931829, 'eHF': -82.94444701585344, 'nuclear': 8.00236706181077} \ +ccd {'cc': -0.07015048756595696, 'mp2': -0.04914963668931829, 'eHF': -82.94444701585344, 'nuclear': 8.00236706181077} \ +cc2 {'cc': -0.049399113048481456, 'mp2': -0.04914963668931829, 'eHF': -82.94444701585344, 'nuclear': 8.00236706181077} \ +qcisd {'cc': -0.07071279699443576, 'mp2': -0.049149636689279796, 'eHF': -82.94444701585147, 'nuclear': 8.00236706181077} \ +lccd {'cc': -0.0719291640366139, 'mp2': -0.04914963668931829, 'eHF': -82.94444701585344, 'nuclear': 8.00236706181077} \ +lccsd {'cc': -0.07257658932696193, 'mp2': -0.04914963668931829, 'eHF': -82.94444701585344, 'nuclear': 8.00236706181077} + +As a note, the ccsd(t) with explicit loop does a computation in about 50s (old Celeron laptop) for H2O in STO-3G basis, these routines do all the above coupled-cluster methods in about 1s. + +5. **class ccsdLambda(object)** + +The initiator takes the arguements (fs, gs, e, data) where *fs* is the MO spin Fock matrix, *gs* are the MO spin two electron repusion integrals, *e* are the AO basis orbital energies and *data* is a dictionary {'method': 'ccsd', 'electrons':.., 'cycle_limit'.., 'precision':.., 'verbose':..} supplied to the class by the caller. *method* is the coupled-cluster method, *electrons* are the number of electrons, *cycle_limit* is the maximum number of iterations allowed, *precision* is the number of decimal places to converge to and *verbose* is a boolean flag - if True information on each cycle will be printed.\The available *method*s are 'ccd', 'ccsd', 'ccsd(t)', 'cc2' and linear ccd 'lccd' and linear ccsd 'lccsd'.\ + On exit the class has instance variables *ts* the singles amplitudes, *td* the doubles amplitudes, *converged* a boolean flag (which should be checked on exit) + indicating a successful convergence of the iterations and 'energy'. *ts* is of dimension [o,v], *td* is of dimension [o,o,v,v]. *energy* is a dictionary with keys + + 'cc' - coupled-cluster correction + + 'eHF' - Hartree-Fock electronic energy + + 'lagrange'- Lagrangian energy + + 'nuclear' - nuclear repulsion energy (user added) + +The class has a method *intermediates(slice, tau)* where *slice* can be one of 'oo', 'vv', 'ov', 'oooo', 'vvvv' or 'ovvo' and tau is a boolean (default=False) which for lambda coupled-cluster will be False (True for coupled-cluster calculations). There are five routines\ + *initialise_amplitudes(self)* - sets ts and td initial values and computes d-tensors (inverses). Computes HF energy. + *intermediates(self, \_slice, tilde=False)* - F, W and G coupled-cluster intermediates. + *update_amplitudes(self)* - generate next guess of the amplitudes for ccd, ccsd, ccsd(t) and cc2. + *lambda_energy(self)* - compute the cluster correction energy. + *lagrangian_energy* - compute the Lagrangian energy. + *iterator(self)* - the main iteration loop, amplitude update function passed as arguement. + +The intermediates (non-tilde) are for F-type 'oo', 'vv' and 'ov' and for W-type 'oooo', 'vvvv', 'ovvo', 'ooov', 'vovv', 'ovoo' and 'vvvo'. In addition there are two G-type 3-body intermediates 'OO' and 'VV'. + +The output is +{'cc': -0.06888821143156079, 'eHF': -82.94444701585394, 'lagrange': -0.07068008870920173, 'nuclear': 8.00236706181077} + +Add the following to the previous code to run lambda + + data['method'] = 'ccsd' + l = ccsdLambda(fs, gs, e, data) + if l.converged: + l.energy['nuclear'] = nuclearRepulsion + + >>>{'cc': -0.06888821143156079, 'eHF': -82.94444701585394, 'lagrange': -0.07068008870920173, 'nuclear': 8.00236706181077} + +The code include here can be run as 'python3 cc/fcc/py' from the harpy/source directory. + +The method 'ccsd(t)' has been added for lambda ie *data[method] = 'ccsd(t)'*. This will do a ΛCCSD(T) computation, that is adding a pertutbative triples to the ΛCCSD calculation. In this case the *energy* dictionary has added keys + + 'pt' - perturbative triples correction at CCSD level + + 'pl' - perturbative triples correction at ΛCCSD level. + +The Λ perturbative triples has not been fully tested against other sources. + +The lambda class has a _oprdm_ method which returns the one-particle response density matrix. + +6. **class eom_ccsd(object)** + +The initiator takes the arguements (cc, roots, partitioned) where *cc* is an instance of the coupled-cluster class (converged), *roots* is a range of enrgy values in eV between which the excitations are to be reported (in *excitations* class variable). The range is given as a list ie [15, 30]. *partitioned* is a boolean flag which if set to True will use an approximate DD-block, that is P-EOM_CCSD. The raw eigenvalues and eigenvectors are given in class variables .e and .v (in atomic units) and the class variable .excitations contains elements of the type [energy, multiplicity] eg [3.56109, 't'] for energies in eV is range *roots*. The class is run as +``` + #EOM-CCSD + eom = eom_ccsd(cc, roots=[4, 19], partitioned=False) + print('root energy (eV) multiplicity\n---------------------------------') + for i, root in enumerate(eom.excitations): + print('{:<2d} {:<10.5f} {:2 (0.74 interbond in angstroms) in 3-21g +``` +--------------------------------- +root energy (eV) multiplicity +--------------------------------- +0 10.85265 t * +1 15.89841 s +2 26.47121 t +3 30.52162 s +4 31.88140 s +5 40.40196 t +``` +* values added in parentheses are from Gaussian (supplied by Josh Goings) \ No newline at end of file diff --git a/document/fci.md b/document/fci.md new file mode 100755 index 0000000..7e54694 --- /dev/null +++ b/document/fci.md @@ -0,0 +1,262 @@ +# full configuration interaction and singles and doubles + +Josh Goings pointed me in the direction of [this paper](https://hal.archives-ouvertes.fr/hal-01539072/document). It uses bit manipulation to implement Slater-Condon rules. The essential results of the Slater-Condon rules are: + +1. The full N! terms that arise in the N-electron Slater determinants do not have to be treated explicitly, nor do the N!(N! + 1)/2 Hamiltonian matrix elements among + the N! terms of one Slater determinant and the N! terms of the same or another Slater determinant +2. All such matrix elements, for any one- and/or two-electron operator can be expressed in terms of one- or two-electron integrals over the spin-orbitals that appear + in the determinants. +3. The integrals over orbitals are three or six dimensional integrals, regardless of how many electrons N there are. +4. These integrals over mo's can, through the LCAO-MO expansion, ultimately be expressed in terms of one- and two-electron integrals over the primitive atomic + orbitals. It is only these ao-based integrals that can be evaluated explicitly (on high speed computers for all but the smallest systems). + +For single excitations:
+ <Δ|Ω1ij> = <ϕi1j> , where Ωn is an n-body operator
+ <Δ|Ω2ij> = Σ <ϕiϕk2jϕk> - <ϕiϕk2kϕj> + +For double excitations:
+ <Δ|Ω1ikjl> = 0
+ <Δ|Ω2ikjl> = Σ <ϕiϕk2jϕl> - <ϕiϕk2lϕj> + +All higher excitations are 0. The paper states to implement the rules you need
+1. to find the number of spin-orbital substitutions between two determinants +2. to find which spin-orbitals are involved in the substitution +3. to compute the phase factor if a reordering of the spin-orbitals has occured. + +The paper uses bit manipulation which is certainly efficient, but does it need to be? Surely the evaluation of the integrals will be the critical stage computationally. We could probably do the 3 steps above using strings. Python strings are limited in length only by the machine RAM so you do not need to worry about stitching variables together when 64 bits are used as in the bit method. Let's see how we go... +Using binary variable a slater determinant will be represented as 0b1101 to represent particles at 0ɑ1ɑ1β, that is the lower states are to the right. We shall write this as '1011' that is lower states to the left as this seems more natural. We are not constrained by the little-endian storage of binary data. We could store both the un-excited and excited determinants on the same string as say '1101:1011' but for now we'll save as two separate strings. + +Let's take two determinants (single excitation example) 0b111 and 0b1000101. In our notation these will be '111' and '1010001'
+Firstly, lets get strings to same shape '111' -> '1110000'. Now we need to find out how many excitations our determinants represent. Let's put our determinants on top of each other
+'1110000'
+'1010001'
+Everywhere a '1' has become a zero represents an excitation (and where a '0' has become a '1'). We have the following routine to count the number of excitations + +1. **excitations(da, db)** \ + parameters - *da* and *db* are string representations of determinants ie strings of '1's and '0's. Returns the number of excitations between the two determinants. + +Now we need to find the excitation jumps. We can see (for single excitation) we need to find where the (first) '1' in determinant 1 has become a '0', then where the (first) '0' has become a '1' in determinant 2. For double excitations we just need to find the second occurrence of the preceding rule too. Once we have found the excitation in the second determinant we must remove it to stop counting it twice, this means we must save a copy of second determinant to restore on exit. This is done in + +2. **levels(da, db)** \ + parameters - *da* and *db* are string representations of determinants. Returns a list of the excitation jumps eg [[0,2], [3,7]] + +Now for the phase. The paper states *The phase is calculated as −1Nperm, where Nperm is the number permutations necessary to bring the spin-orbitals on which the holes are made to the positions of the particles. This number is equal to the number of occupied spin-orbitals between these two positions.*
So let's look at our example,
+'1110000'
+'1010001'
+The number of occupied spin orbitals between where the hole is (1) and where the particle is (6) is 1 (2) so the phase is -11 = -1. Let's look at a second example 0b111 -> 0b101010, which we would write '111000' -> '010101'. This is obvoiusly a double excitation (0->3 and 2->5).
The phase is
+'111000'
+'010101'
+As above the first hole is (0) and the first particle is (3) and there is 1 occupied orbital between them (1), but there is a second hole at (2) and a second particle at (5) with 1 occupied orbital between them (3) - **but this is an excitation**. The paper notes *For a double excitation, if the realization of the first excitation introduces a new orbital between the hole and the particle of the second excitation (crossing of the two excitations), an additional permutation is needed...* +So we have 1+1+1=3 and the phase is -13 = -1.
+Since n+1 has the same parity n-1 (odd or even) instead of adding an extra permutation we could just not count the excited state in the first place. So we would say we have a hole at (0) and an excitation at (3) with one occupied state between, (3) now becomes '0' as we've dealt with it. We have a second hole at (2) and a particle at (5) with no occupied states between, so permutations are 1 and phase is -1. We have a routine to calculate this + +3. **phase(da, db)** \ + parameters - *da* and *db* are string representations of determinants. Returns the phase of the excitation, either 1 or -1. + +We could get the number of permutations of the determinants by using scipy.special.comb to get the total number of combinations. As an example with H2 in 3-21g basis there are 2 electrons in 4 basis functions, so +```python +print('For hydrogen molecule in 3-21g basis with 2 electrons and 8 (spin) basis functions there are.') +print(scipy.special.comb(2,8), ' determinants') +``` +which gives an answer of 28 ie 8 things taken 2 at a time 8C2 = !8/!2 !(8-2) = 8.7/2 = 28 \ +But we will write our own routine + +4. **determinantCount(m, k)** \ + parameters - *m* is the total number of things to be taken *k* at a time. Returns mCk. + +We now have to find what these combinations are. For example for 8C2 (H2 in 3-21g basis will have 8 spin orbitals and 2 electrons) we will get \ +(0,7)(0,6)(0,5)(0,4)(0,3)(0,2)(0,1)
+(1,7)(1,6)(1,5)(1,4)(1,3)(1,2)
+(2,7)(2,6)(2,5)(2,4)(2,3)
+(3,7)(3,6)(3,5)(3,4)
+(4,7)(4,6)(4,5)
+(5,7)(5,6)
+(6,7)
+ +The routine to calculate these combinations is + +5. **combinationList(combs, group, start, stop, level)** \ + parameters - *combs* is an empty list that will contain the combinations, *group* is an empty string, *start* is the beginning of the sequence of items - usually 0, *stop* is the number of items - 1 and *level* is the nmber of selections - 1. For the H2 example we would run +```python +combs = [] +n = 8 +k = 2 +combinations = combinationList(combs, '', 0, n-1, k-1) +``` +Returns a list of combinations. + +These combinations must be converted to binary strings. How do we generate the binary strings? \ +Well (0,1) we say is 20+21 = 3 -> '11', as (1,3) would be 21+23 = 2+8 = 10 = '0101' ie a '1' in positions 1 and 3
+For water ((0, 1, 2, 3, 4, 5, 7, 10, 11, 13) state would be 11111101001101. We do this using + +6. **binaryString(comb, nOrbitals)** \ + parameters - *comb* is an element of the combination list (usually a two element list itself) and *nOrbitals* is the length of the returned string. + +Examples of the conversion are +(0,1) = '11'
+(0,2) = '101'
+(2,6) = '0010001'
+(2,7) = '00100001'
+(5,6) = '0000011'
+(5,7) = '00000101'
+ +These binary strings representing the combinations of excited determinants are then passed to + +7. **buildFCIhamiltonian(binary, eriMOspin, coreMOspin)** \ + parameters - *binary* is the list of binary strings representing the excited determinants, *eriMOspin* are the 2-electron repulsion integrals in the molecular spin basis and *coreMOspin* is the core Hamiltonian also in the molecular spin basis. Returns the excited Hamiltonian. + +Now to define hamiltonianElement. Firstly it must call *excitations* to get the degree of the excitation, then if degree is <= 2 continue to process. It must now call *levels* to get the excitations themselves and finally call *phase* for the phase.
+If it's a double excitation we will have 4 values as say, \[0,3] and \[1,5] this is interpreted as the phase times <01||35>.
+For a single excitation say,\[1,6] this will be phase times Σ <1n||6n>. Where n are common elements between the determinants. We need to calculate the common elements now. + +8. **commonStates(da, db)** \ + parameters - *da* and *db* are string representations of determinants. Returns a list of the states the two determinants have in common. + +For single excitations there is also a one-body contribution which for \[1,6] would be Hsc\[1,6], where Hsc is the molecular spin core Hamltonian. Finally the zero degree exitations. These are m are the common states (namely anywhere there is a '1' in either determinant) so there is a Hsc\[m,m] contribution and if m=n there is a phase times a half times Σ for all combinations. These Hamiltonian elements are computed in + +9. **hamiltonianElement(da, db, eriMOspin, Hp)** \ + parameters - *da* and *db* are string representations of determinants, *eriMOspin* are the 2-electron repulsion integrals in the molecular spin basis and *Hp* is the core Hamiltonian in the molecular spin basis. Returns an element of the excited Hamiltonian. + +10. **fci(molAtom, molBasis, charge, c, ERI, coreH)** \ + parameters - *molAtom* is an array of atom objects (the molecular atoms), *molBasis* is an array of basis objects (the molecular basis), *charge* is the molecular charge, *c* are the converged eigenvectors, *ERI* the 2-electron repulsion integrals in atomic basis and *coreH* is the core Hamiltonian. Sends number of electrons, number of spin orbitals, number of determinants, SCF energy, FCI (electronic) energy and FCI correction to postSCF (view module). Returns electronic FCI energies. + +For CISD we need a different approach. For H2 we have two parts, the first part is the nElectron ground state eg '11'. Aside from the ground state we want all single '0' substitutions ie '01' and '10', then all double substitutions ie '00'. The second part is the nOrbitals - nElectron part. This must be all combinations of the nOrbitals - nElectron taken k at a time, where k is a number to make total electron count nElectrons. Let's look at an example, +For H2, \ +'11' + '000000' \ +'01', '10' + '000001', '000010', '000100', '001000', '010000', '100000' \ +'00' + '000011', '000101', '001001', '010001', '100001', '000110', '001010', '010010', '100010', '001100', '010100', '100100', '011000', '101000' \ +total 28. We have code to do this + +11. **configurations(nElectrons, nOrbitals, type = 'S')** \ + parameters - *nElectrons* are the number of electrons, *nOrbitals* are the number of spin orbitals and *type* can be one or a combination of 'G' - ground state, 'S' - singles, 'D' - doubles, 'T' - triples and 'Q' - quadruples. Returns a list of determinants. Eg 'S' for singles (CIS), 'GSD' for singles and doubles (CISD), 'GD' for doubles (CID) etc. + + +12. **cisd(molAtom, molBasis, charge, c, ERI, coreH)** + parameters - *molAtom* is an array of atom objects (the molecular atoms), *molBasis* is an array of basis objects (the molecular basis), *charge* is the molecular charge, *c* are the converged eigenvectors, *ERI* the 2-electron repulsion integrals in atomic basis and *coreH* is the core Hamiltonian. Sends number of electrons, number of spin orbitals, number of determinants, SCF energy, CISD energy and CISD correction to postSCF (view module).Returns transition energies. + +13. **ciss(molAtom, molBasis, charge, c, ERI, coreH)** \ + parameters - *molAtom* is an array of atom objects (the molecular atoms), *molBasis* is an array of basis objects (the molecular basis), *charge* is the molecular charge, *c* are the converged eigenvectors, *ERI* the 2-electron repulsion integrals in atomic basis and *coreH* is the core Hamiltonian. Sends number of electrons, number of spin orbitals, number of determinants and excitations energy (eV) to postSCF (view module). Returns exitations (Hartree). Returns transition energies and eigenvectors which can be re-shaped for transition dipole and oscillator computations. + +We have the following test results - for water in STO-3G (all values checked against McMurchie-Davidson program), + +| | | +|------------|------------| +|number of electrons |10 | +|number of spin orbitals |14 | +|number of determinants| 1001 | +|SCF energy| -74.942080 | +|FCI energy| -75.012980 | +|FCI correction| -0.070900 | +| | | +|CISD energy| -75.011223 | +|CISD correction| -0.069143 | + +and for CI singles using slater determinants +| | | +|--------|--------| +|number of electrons | 10| +|number of spin orbitals | 14 | +|number of determinants | 40 | + +| in eV | | | | | | +|------|-----|--------|----------|---------|---------| +|7.816620 | 7.816620 | 7.816620 |9.372282 | 9.372282| 9.372282 | +|9.699819 | 9.959068 | 9.959068 |9.959068 | 10.735267 | 10.735267 | + +and for H2, FCI and CISD should be same as only double excitations possible for 2 electrons + +| | | +|------------|------------| +|number of electrons |2 | +|number of spin orbitals |8 | +|number of determinants| 28 | +|SCF energy| -1.122940 | +|FCI energy| -1.147813 | +|FCI correction| -0.024873 | +| | | +|CISD energy| -1.147813 | +|CISD correction| -0.024873 | + +and for CI singles using slater determinants +| | | +|--------|--------| +|number of electrons | 2| +|number of spin orbitals | 8 | +|number of determinants | 12 | + +| in eV | | | | | | +|------|-----|--------|----------|---------|---------| +|10.395356 | 10.395356 | 10.395356 | 15.755380 | 25.908408 | 25.908408 | +|25.908408 | 32.127966 | 39.998167 | 39.998167 | 39.998167 | 46.622756 | + +14. **spinStates(da, nBasis)** + parameters - *da* is a spin-intermngled determinant and *nBasis* are the number of doubly occupied basis functions. Returns two string representations of the alpha and beta spin states. + +15. **occupancy(da, nBasis)** + parameters - *da* is a spin-intermingled determinant and *nBasis* are the number of doubly occupied basis functions. Returns a string representing the occupany of the spatial orbitals. A string entry can be one of 0,1,2 for vacant, singly and doubly occupied orbitals. +- - - +### Bit manipulation versions + +16. **bString(da, spinOrbitals)** + + parameters - *da* is a spin-intermingled determinant and *spinOrbitals* are the number of spin orbitals. Return the integer representation of the bit string representing *da*. 0b101010 -> 42 + +17. **bCombinationList(spinOrbitals, nElectrons)** + + parameters - *spinOrbitals* are the number of spin orbitals and *nElectrons* are the number of electrons. Returns a list of all combinations of putting *nElectrons* into *spinOrbital* orbitals. The list is integers produced by *bstring*. (1,4,5,8) -> 0b010011001 -> 153 + +18. **bRightZeros(n)** + + parameter - *n* is an integer that the number of zeros to it's right of its binary representation is returned. Returns integer. 88 -> 0b1011000 -> 3 + +19. **bSetZero(da, n)** + + parameters - *da* is a spin-intermingled determinant and *n* is the bit that will be cleared (set to 0). Returns integer representing modified determinant. 22 -> 0b10110 -> n=2 -> 0b10010 -> 18 + +20. **bOccupancy(da, db, type = 'h')** + + parameters - *da* and *db* are a pair of determinants and *type* is either 'h' for holes or 'p' for particles. Returns a list of the positions where holes have appeared in the excitation or the position where particles have appeared. 0b111 and 0b101010 -> for 'h' [1], for 'p' [5, 3] + +21. **bExcitations(da, db)** + + parameters - *da* and *db* are a pair of determinants. Returns the number of excitations between two determinants. 0b111 and 0b101010 -> 2 + +22. **bSingleExcitations(da, db)** + + parameters - *da* and *db* are a pair of determinants. Returns the matrix element for a pair of determinants with a single excitation between them. + +23. **bDoubleExcitations(da, db)** + + parameters - *da* and *db* are a pair of determinants. Returns the matrix element for a pair of determinants with a double excitation between them. + +24. **bBuildFCIhamiltonian(determinants, eriMOspin, coreH)** + + parameters - *determinants* are a list a combinations of determinants, *eriMOspin* are the double-bar 2-electron repulsion integrals and *coreH* is the core Hamiltonian. Returns the FCI Hamiltonian matrix. + +25. **bFci(molAtom, molBasis, charge, c, ERI, coreH)** + + parameters - *molAtom* is an array of atom objects, *molBasis* is an array of basis objects, *c* are the converged scf eigenvectors, *ERI* are the 2-electron repulsion integrals and *coreH* is the core Hamiltonian. Returns the FCI eigenvalues, eigenvectors and the number of determinants processed. + +26. **bCommonStates(da, db)** + + parameters - *da* and *db* are a pair of determinants. Returns the states that the determinants have in common. 0b111 and 0b101010 -> [1] + +27. **bHamiltonianElement(da, db, eriMOspin, coreH)** + + parameters - *da* and *db* are a pair of determinants, *eriMOspin* are the double-bar 2-electron repulsion integrals and *coreH* is the core Hamiltonian. Returns the matrix element for determinants *da* and *db*. + +28. **bResidues(da, spinOrbitals)** + + parameters - *da* is a spin-intermingled determinant and *spinOrbitals* are the number of spin orbitals. Returns a list of residues - *The residues are a set of determinants that are generated by removing two electrons in all possible ways from the reference determinant*. + +29. **bSetResidues(residues, spinOrbitals)** + + parameters - *residues* is a list of residues and *spinOrbitals* are the number of spin orbitals. Returns a list of the residues with every combination of 2 orbitals filled. + +30. **bCisd(molAtom, molBasis, charge, c, ERI, coreH)** + + parameters - *molAtom* is an array of atom objects, *molBasis* is an array of basis objects, *c* are the converged scf eigenvectors, *ERI* are the 2-electron repulsion integrals and *coreH* is the core Hamiltonian. Returns the CISD eigenvalues and the number of determinants processed. + + + + diff --git a/document/force.md b/document/force.md new file mode 100644 index 0000000..137decb --- /dev/null +++ b/document/force.md @@ -0,0 +1,143 @@ +# Forces Module - integral derivatives and force + +This module computes the integrals need for calculating the first derivatives of the molecular energy and hence the intra-molecular forces as F = -dE/dx. The integrals routines are written for compactness and are not in any way efficient. It should be easy to expand them to see what is happening. *x* is the direction, either 0=x, 1=y or 2=z and center is an atomic center, either *a*, *b*, *c* or *d*. The main routine is forces which calculates an analytic solution and then a numeric one based on the the central difference formula. Most of the procedures mirror similar ones in integral module without the *fx* postfix. See also the ocypete module which contains Cython versions of these integrals. + +1. **e(ia, ja, type, r, ie, je, n, x)** + +2. **efx(ia, ja, type, r, ie, je, n, x, p, s)** + +3. **overlapfx(ia, ja, ie, je, ir, jr, n, origin, x, center)** + +4. **sfx(iBasis, jBasis, center, x = 0, n = [0,0,0] , origin = [0,0,0])** + +5. **buildOverlapfx(atom, direction, bases)** + +6. **kineticfx(ia, ja, ie, je, ir, jr, n, origin, x, center)** + +7. **kfx(iBasis, jBasis, center, x = 0, n = [0,0,0] , origin = [0,0,0])** + +8. **buildKineticfx(atom, direction, bases)** + +9. **coulombfxs(ia, ja, ie, je, ir, jr, nucleus, n, origin, x, center)** + +10. **jfx(iBasis, jBasis, nucleus, center = 'a', x = 0, n = [0,0,0] , origin = [0,0,0])** + +11. **buildCoulombfx(atom, direction, molAtom, bases)** + +12. **coulombfxh(ia, ja, ie, je, ir, jr, nucleus, n, origin, x)** + +13. **jfh(iBasis, jBasis, nucleus, x = 0, n = [0,0,0] , origin = [0,0,0])** + +14. **buildCoulombfh(atom, direction, molAtom, bases)** + +15. **buildNuclearfx(atom, direction, molAtom)** + +16. **electronRepulsionfx(ia, ja, ka, la, ie, je, ke, le, ir, jr, kr, lr, ra, rb, origin, x = 0, center = 'a')** + +17. **ERIfx(iBasis, jBasis, kBasis, lBasis, center, x = 0, n = [0,0,0], nu = [0,0,0], origin = [0,0,0])** + +18. **buildERIfx(atom, direction, molAtom, bases)** + +19. **buildFockfx(atom, direction, molAtom, molBasis, density)** + +20. **gradient(molAtom, molBasis, molData)** + + parameters - *molAtom* is an array of atom objects, *molBasis* an array of basis objects and *molData* is the array of *charge*, molecule name and basis name which is returned by rhf.mol. This routine calculates the analytic gradient and returns a [number of atoms, 3] array of gradient components. + +21. **efxNumeric(atom, direction, molAtom, molBasis, molData)** + + parameters - *atom* is the atom for which the gradient is being calculated, *direction* is the cartesian axis along which the gradient is to be calculated, *molAtom* is an array of atom objects, *molBasis* an array of basis objects and *molData* is the array of *charge*, molecule name and basis name which is returned by rhf.mol. This routine calculates the approximate gradient by central differences and returns the gradient of *atom* in *direction*. + + +22. **forces(molAtom, molBasis, density, fock, engine = 'aello', type='analytic')** + + parameters - *molAtom* is an array of atom objects, *molBasis* an array of basis objects and *density* is the converged density matrix, *fock* is the converged Fock matrix and *engine* is the integral engine to be used default is 'aello' which uses the **ocypete** cython engine. The final option *type* can be one of 'analytic' or 'both'. This routine calculates the analytic forces (negative of potential derivative with respect to coordinates) and returns a [number of atoms, 3] array of force components and optionally the numeric forces obtained via efxNumeric by a central difference formula. + +It is possible to do some geometry optimisation, the function optimiseGeometry is a suggestion of an approach... + +23. **optimiseGeometry(f, q0, text):** + + parameters - *f* is a function which evaluates the molecular energy with respect to a number of geometry parameters supplied to the function. *q0* is an initial point in the optimisation space and *text* is a list of descriptions of the geometry items being optimised. The routine calls scipy.minimise using Nelder-Mead simplex method [here](https://en.wikipedia.org/wiki/Nelder–Mead_method) . + + This is an example of optimising the H-O-H angle of water in the 6-31G basis. Define a function to calculate the molecular energy depending on the value of the changing parameter (angle)... +```python +def f(q, molAtom, molBasis, molData): + + import numpy as np + import rhf + + geo = np.zeros((len(molAtom), 3)) + geo[1,0] = -2.079 + geo[2,0] = 2.079 * np.cos(q*180/np.pi) + geo[2,1] = 2.079 * np.sin(q*180/np.pi) + molAtom, molBasis = rhf.rebuildCenters(molAtom, molBasis, geo) + + return rhf.scf(molAtom, molBasis, molData, []) +``` +Run as... +```python + +import force + +force.optimiseGeometry(f, [90], ['H-O-H angle']) + +``` +which gives an output of... + +H-O-H angle : 103.5 + +Optimal energy : -75.95250973385882 + +Cycles : 20 + +True + +We can run a full optimisation of both bonds and angle, using +```python +def f(x, molAtom, molBasis, molData): + + import numpy as np + import rhf + import math + + geo = np.zeros((len(molAtom), 3)) + a = x[2]*np.pi/180 + geo[1,0] = -x[0] + geo[2,0] = x[1] * math.cos(a) + geo[2,1] = x[1] * math.sin(a) + molAtom, molBasis = rhf.rebuildCenters(molAtom, molBasis, geo) + + return rhf.scf(molAtom, molBasis, molData, []) + +``` +Run as... +```python + +import force + +force.optimiseGeometry(f, [1.5, 1.5, 90], ['O-H bond', 'O-H bond', 'H-O-H angle']) + +``` + +with an output of... + +H-O-H angle : 68.5 (111.5 is HOH angle) + +H1-O1 bond : 1.79 + +H2-O1 bond : 1.79 + +Optimal energy : -75.98535916927149 + +Cycles : 79 + +True + +--when doing a sequence of similar calculations as in geometry optimisation or molecular dynamics then the eigenvectors of the last computation are likely to be close to those of the next one. It is therefore possible to use the eigenvectors of one calculation as the initial guess for the next one thus reducing the computational cost significantly -- + + + + + + + diff --git a/document/h.md b/document/h.md new file mode 100644 index 0000000..5bcd0d0 --- /dev/null +++ b/document/h.md @@ -0,0 +1,170 @@ +## Hydrogenic Wavefunctions +These routines explore various aspects of the hydrogen solution of the Schrodinger equation. They're designed to give pointers to various ways of solving the hydrogen and visualizing the solutions. + +1. **transform(mode, i, j, k)** + + parameters - *mode* is either 'cartesian->spherical' or 'spherical->cartesian', *i* is either an x-coordinate or an r-coordinate, *j* is either a y-coordinate or a θ-coordinate and *k* is either a z-coordinate or a φ-coordinate depending on the *mode*. The routine performs a coordinate transformation according to the *mode* and returns the transformed coordinates. + +2. **angularSolution(m, l, theta, phi)** + + parameters - *m* is the magnetic quantum number, *l* is the angular quantum number, *theta* is the polar coordinate and *phi* the azimuthal coordinate. Calls routine scipy.special.sph_harm and returns the spherical harmonic Yml(θ,φ). + +3. **angularSolutionPlot(ax, m, l, parameters)** + + parameters - *ax* are the matplotlib axes as defined eg from 'fig.add_subplot', *m* is the magnetic quantum number, *l* is the angular quantum number, and *parameters* is a directory of values defining the plot. The *parameters* directory is defined as follows - parameters = {'points':70,'extent':[-0.5,0.5],'color_map':'coolwarm', 'bar':'on','axes':'off','alpha':0.8} where 'points' are the number of data points in the (θ, φ)- grid, 'extent' is extent of the radial values to display, 'color_map' is the matplotlib color mapping to use, 'bar' determines whether to draw a heat bar, 'axes' controls whether to draw the coordinate axes or not and 'alpha' is the transparancy factor. Uses matplotlib.plot_surface to display the spherical harmonic in the color map requested. Optionally displays a colorbar. Does not 'show' the plot. + +4. **angularSolutionPlotSingle(m, l, parameters = {'points':70,'extent':[-0.5,0.5],'color_map':'coolwarm','bar':'on','axes':'off','alpha':0.8})** + + parameters - *m* is the magnetic quantum number, *l* is the angular quantum number and and *parameters* is a directory of values defining the plot. This routine displays a spherical harmonic defined by *m* and *l* according to the display conditions in *parameters*. An example for Y3,0 is + + ![image](https://user-images.githubusercontent.com/73105740/136229523-1f09d93e-3834-497a-a2e5-5bbbd8db491e.png) + + +5. **angularSolutionPlotFamily(l_maximum, parameters = {'points':70,'extent':[-0.5,0.5],'color_map':'coolwarm','bar':'off','axes':'off','alpha':1.0})** + + parameters - *l_maximum* is the highest value of the angular quantum number to display. *parameters* is a directory of values defining the plot. This routine will display all spherical harmonics for l=0, l=1, ... l=l_maximum where -l ≤ m ≥ l. An example for l_maximum = 3 is + + ![image](https://user-images.githubusercontent.com/73105740/136230126-100046a3-7ee5-4435-ae2f-dc43eb5c22b3.png) + + +6. **angularVerify()** + + parameters - none. This generates random values of l, m, θ and φ, and then calculates the (scipy) value from angularSolution routine comparing it with the (sympy) value from the **Ynm** function. Returns True or False. + +7. **radialSolution(n, l, r)** + + parameters - *n* is the principal quantum number, *l* is the angular quantum number (0 ≥ l ≤ n) and *r* is the radial distance (in units of the Bohr radius). Calls scipy.special.genlaguerre to return the normalised radial wavefunction value at r. + +8. **radialVerify()** + + parameters - none. This generates random values of n, l and r , and then calculates the (scipy) value from radialSolution routine comparing it with the (sympy) value from the **R_nl** function. Returns True or False. + +9. **radialSolutionType(n, l, r, psi_type = 'radial distribution')** + + parameters - *n* is the principal quantum number, *l* is the angular quantum number (0 ≥ l ≤ n), *r* is the radial distance (in units of the Bohr radius) and *psi_type* is the type of wavefunction to be plotted. *psi_type* can be one of 'radial distribution' (ψ), 'probability density' (|ψ|2) and 'probability distribution' (4πr2|ψ|2). Returns the value of the *psi_type*. + +10. **radialSolutionPlot(n, l, psi_type = 'radial distribution', psi_normal = False, parameters = {'points':100, 'size':[7,5], 'extent':[20,0.2], 'equal':False})** + + parameters - *n* is a list of principal quantum numbers to plot, *l* is a list of angular quantum numbers corresponding to the list of principal quantum numbers (0 ≥ l ≤ n) to plot, *r* is the radial distance (in units of the Bohr radius) and *psi_type* is the type of wavefunction to be plotted. *psi_type* can be one of 'radial distribution' (ψ), 'probability density' (|ψ|2) and 'probability distribution' (4πr2|ψ|2). *psi_normal* determines if the wavefunction should be normalised. *parameters* is a dictionary of values defining the plot appearance, these values are 'points' - the number of data points to calculate, 'size' - the width and height of the plot in inches, 'extent' - the horizontal and vertical ranges and 'equal' - forces a square aspect ratio. Plots the radial distribution. This is the plot for\ + radialSolutionPlot([1,2,3,2,3,3], [0,0,0,1,1,2], 'radial distribution', False, {'points':100,'size':[7,5],'extent':[20,[-0.15,0.2]],'equal':False}) + +![image](https://user-images.githubusercontent.com/73105740/136762722-b95f78b7-3f3a-4a40-9898-f2aa2119c2c1.png) + +11. **wavefunction(n, l, m, r, theta, phi, grid)** + + parameters - *n* is a principal quantum number to plot, *l* is an angular quantum number, *m* is the magnetic quantum number, *r*, *theta* and *phi* are the coordinates of a point in spherical polars or cartesian (*grid*='cartesian'). Calculates the product of radial and angular solutions and returns value. + +12. **wavefunctionContour(n, l, m, parameters={'points':100, 'extent':[-20, 20], 'color_map':'coolwarm','plane':'xy', 'elevation':0.0, 'contour': False})** + + parameters - *n* is a principal quantum number to plot, *l* is an angular quantum number, *m* is the magnetic quantum number and *parameters* is a dictionary of values defining the plot appearance, these values are 'points' - the number of data points to calculate, 'extent' - the horizontal and vertical ranges, 'color_map' - is the matplotlib name of the color theme to use, 'plane' - specifies which plane to view the contour in, 'elevation - is the height of the slice in 'plane' and 'contour' - specifies if the contour lines should be plotted. Shows a contour plot of the wavefunction. Examples for\ + wavefunctionContour(3, 2, 0, {'points':80, 'extent':[-30, 30], 'color_map':'gist_yarg', 'plane':'zx', 'elevation':0, 'contour': True})\ + wavefunctionContour(3, 2, 0, {'points':80, 'extent':[-30, 30], 'color_map':'gray', 'plane':'zx', 'elevation':0, 'contour': False}) +![image](https://user-images.githubusercontent.com/73105740/136765639-5d801e98-995e-4d87-8760-6ba1925fe9a2.png) + +13. **wavefunctionVerify()** + + parameters - None. This generates random values of *n*, *l*, *m* and *r*, *theta*, *phi* and uses these to compare wavefunction values generated by the routine wavefuction and the (sympy) routine Psi_nlm. Returns True or False. + +14. **numerov(g, u_zero, du, dh)** + + parameters - *g* are the values (at each r) of the expression in second-order differential equation u(r)'' = g(r)u(r) + u(r), *u_zero* is the initial value of u ie u(0), *du* is the grid step in u and *dh* is the grid step between sucessive r values. This routine returns the value of u at each value of r computed using the [Numerov algorithm](https://en.wikipedia.org/wiki/Numerov%27s_method). + +### Energy Levels +In order to determine the bounded energy levels we must solve a boundary value problem. The technique we use is called the 'shooting method' because of it's use in artillery trajectories. Here we fire at the target and if our shot falls to the left of the target we aim a bit more to the right and similarly if it falls to the right we aim more to the left. For our problem we know that the values of the wavefuction at zero at the origin and at infinity. Our strategy is to (under) guess an energy and calculate the wavefunction at r=0, if the value is not zero we increase our guess and recalculate until the value at r=0 is zero. The algorithm is full is ++ Make an initial guess at the energy (𝐸1) that is less than than the absolute minimum energy (-1.1). ++ Compute the value of the wavefunction for 𝐸𝑛 and values of the quantum numbers for the wavefunction considered. ++ Increment guess 𝐸𝑛 as 𝐸𝑛+1 and re-compute the value of the wavefunction. We do this by using a sequence like −1.2/l2,−1.2/(1+𝛿𝐸)2,..., ++ If 𝑢0∗𝑢𝑛+1 > 0 then go to previous step. ++ Here energy is in \[En, En+1] so apply a root finding method to find where zero occurs. + +15. **shootingMethod(E, r, l)** + + parameters - *E* is an energy, *r* is an array of radial values and *l* is an angular quantum number. Returns value past zero crossing. + +16. **numerovBoundEnergy(r, l, n_range, energy_range)** + + parameters - *r* is an array of radial values to evaluate the bound energy at, *l* is an angular quantum number, *n_range* is a number specifying the maximum principal quantum number to evaluate and *energy_range* is an array of energy values at which to search for solutions. Calls *shootingMethod* routine and from scipy.optimize import brentq which is a root-finding routine. Returns the list of bound energies (*n*, *l*, energy). + +17. **numerovHydrogenicEnergies(parameters = {'points':2000, 'extent':[1e-8, 100], 'n_range': 5})** + + parameters - *parameters* is a dictionary of values defining the problem, these values are 'points' - number of radial sample points, 'extent' - radial range values and 'n_range' - is a number specifying the maximum principal quantum number to evaluate. Calls numerovBoundEnergy to compute the bound energy values. Returns a sorted list of bound energy values sorted by energies. For the parameters\ + numerovHydrogenicEnergies({'points':2000, 'extent':[1e-8, 100], 'n_range': 5})\ + The result is +``` + [(1, 0, -0.9999221089559599), (2, 1, -0.2500000156117056), (2, 0, -0.24999019020652957), + (3, 1, -0.11111111678091953), (3, 2, -0.11111111114690334), (3, 0, -0.11110820082299608), + (4, 1, -0.06250000255860046), (4, 2, -0.0625000000252697), (4, 3, -0.0625000000008716), + (4, 0, -0.062498771694931364), (5, 4, -0.039999998545078866), (5, 3, -0.0399999917769602), + (5, 2, -0.039999976852458416), (5, 1, -0.03999995861210411), (5, 0, -0.039999313973705056)] +``` + +18. **numerovEnergyVerify(boundEnergies)** + + parameters - *boundEnergies* are the energies computed by the above routine. Compares the computed *boundEnergies* with the theoretical values of -1.0/n2. Returns overall validity and a list of individual validity tests.The validity criterion is 1e-4. + +19. **numerovHydrogenicRadialDensity(parameters = {'points':2000, 'extent':[1e-8, 100], 'n_range': 5, 'radius':[0,15],'occupied': [1, True, False]})** + + parameters - *parameters* is a dictionary of values defining the problem, these values are 'points' - number of radial sample points, 'extent' - radial range values, 'n_range' - is a number specifying the maximum principal quantum number to evaluate, 'radius' - is the range of radial values for xlim and 'occupied' - is a list, the first entry is the atomic number of the hydrogenic type atom to plot and the second entry is a boolean which controls whether the orbitals should be considered as occupied. The third entry is a boolean which if True will plot the overall electron density in the radial direction. Plots the hydrogenic radial wavefunctions and returns a list of plotted states - each element of list is a 4-tuple containing (*n*, *l*, *e*, fermi level). As an example\ +numerovHydrogenicRadialDensity({'points':2000, 'extent':[1e-8, 100], 'n_range': 5, 'radius':[0,25],'occupied': [28, True, False]})\ + This plots the occupied hydrogenic wavefunctions for an atom with 28 electrons (Ni). + ![image](https://user-images.githubusercontent.com/73105740/136944573-ea821ba8-52e1-4a71-bb96-d672908124b4.png) + +Changing 'occupied'->[28, True, False] gives the total electron density + +![image](https://user-images.githubusercontent.com/73105740/136949551-e9cf391e-f154-4389-957e-ce24138fcb5d.png) + +The returned list is +``` +[(1, 0, -0.9999221089559599, 1.0), (2, 1, -0.2500000156117056, 1.0), (2, 0, -0.24999019020652957, 1.0), + (3, 1, -0.11111111678091953, 1.0), (3, 2, -0.11111111114690334, 1.0), (3, 0, -0.11110820082299608, 1.0)] +``` + +20. **numerovRadialVerify(n, l)** + + parameters - *n* is a principal quantum number, *l* is an angular quantum number. Routine plots Numerov wavefunction profile and scipy calculated profile for comparison. No return value, displays the plotted profiles for Numerov and Sympy radial wavefunctions for (n,l) = (1,0),(2,0),(2,1),(3,0),(3,1),(3,2). The resulting plot is + +![image](https://user-images.githubusercontent.com/73105740/137095203-360f13eb-9ac5-48c2-a3e8-072a8a0c4bda.png) + +21. **finiteDifferenceRadial(parameters = {'l': 0, 'points': 4000, 'extent':[0, 40], 'levels':25, 'show':5})** + + parameters - *parameters* is a directory of values defining the problem, these values are 'l' - quantum angular number, 'points' - are the number of data sample points, 'extent' - is a list denoting the range of the radial extent in nm, 'levels' - the number of eigenvalues to calculate and 'show' - the number of states to plot. This routine uses a three-point stencil finite difference method. The discrete radial grid is generated as an equidistant mesh between 'extent' in 'points' steps. The 'extent' should be sufficient to include contributing parts of the wavefunction. The default [0, 40] is sufficient for first 5 energy levels to an accuracy of two decimal places. Increasing 'points' can improve the accuracy up to a point. The 'show' levels are plotted and the legend shows the computed energy level in eV, included in [] after the computed value is the theoretical value of 1/(n+l)2 Ry. The plot is r and probability density. The default parameters produce the following plot + +![image](https://user-images.githubusercontent.com/73105740/137509411-06d0765b-327d-4843-884b-82b4d0b940f7.png) + +22. **hydrogenSpectralLines(type)** + + parameter - type is list of line types to be calculated, can be any or all of 'lyman', 'balmer' , 'paschen'. Routine computes the spectral lines for the specified series and returns a dictionary with the line names as keys. Each key entry is a list [energy (eV), wavelength (nm), transition as 'n->m']. The returned list for 'balmer' as an example is +``` + [[10.203347934756827, 121.5132237896726, '2->1'], [12.092934418025163, 102.52612460644374, '3->1'], + [12.754299650697403, 97.20970456674237, '4->1'], [13.060419709416564, 94.93122951524093, '5->1'], + [13.226707972305539, 93.73773909547381, '6->1']] +``` +23. **angularSolutionPlotProjection(m, l, parameters= {'points':70,'extent':[-0.5,0.5], 'alpha':0.3, 'color_map':'coolwarm', 'axes':'off','levels':20})** + + parameters - *m* is the magnetic quantum number, *l* is the angular quantum number and and *parameters* is a directory of values defining the plot. This routine displays a spherical harmonic defined by *m* and *l* according to the display conditions in *parameters* including contour projections on the plane surfaces. An example for Y3,1 is +![Screenshot from 2022-08-28 10-35-26](https://user-images.githubusercontent.com/73105740/187163257-ee8e453c-badc-4239-92b6-6b76edf1ee09.png) + +24. **monteCarloHydrogen(n, l, m, view='xy', plot=True)** + + parameters - *n* is the principal quantum number, *l* is the angular quantum number, *m* is the magnetic quantum number, *view* is the plane to display, *plot* is a boolean controlling the auxilliary plots. This routine uses Monte-Carlo techniques to plot a hydrogen orbital. If *plot* is true auxilliary plots of radial wavefunction and density distribution are plotted. The results for n,l,m = 6,3,1 are + ![image](https://user-images.githubusercontent.com/73105740/187165179-f5c98308-e956-4ac2-b46b-a8f72544e30c.png) +and + ![image](https://user-images.githubusercontent.com/73105740/187165497-a3d635ae-7c39-4270-8946-b4511237a5c4.png) + + +These routines can be run using the default parameters supplied from the command line as 'python h.py -\'. The available keys are\ + 'rp' - radialSolutionPlot (10)\ + 'rv' - radialVerify (8)\ + 'as' - angularSolutionPlotSingle (4)\ + 'af' - angularSolutionPlotFamily (5)\ + 'av' - angularVerify (6)\ + 'wc' - wavefunctionContour (12)\ + 'wv' - wavefunctionVerify (13)\ + 'ne' - numerovHydrogenicEnergies (17)\ + 'Nev'- numerovEnergyVerify (18)\ + 'NRv'- numerovRadialVerify (20)\ + 'Nw' - numerovHydrogenicRadialDensity (19)\ + 'fr' - finiteDifferenceRadial (21)\ + 'se' - hydrogenSpectralLines (22)\ + 'ap' - angularSolutionPlotProjection (23)\ + 'mc' - Monte-Carlo wavefunction diff --git a/document/integral.md b/document/integral.md new file mode 100644 index 0000000..313dbcd --- /dev/null +++ b/document/integral.md @@ -0,0 +1,157 @@ +# Integral Module - integrals and integral matrices + +This module uses code derived from the excellent article by Joshua Goings entitled 'A (hopefully)' +gentle guide to the computer implementation of molecular integrals over Gaussian basis functions' [see] +(https://joshuagoings.com/2017/04/28/integrals/) + +1. **e(ia, ja, type, r, ie, je)** + + parameters - *i* and *j* refer to basis functions, so ia is angular momentum on orbital i ie is exponent on orbital i. Type is an integer depends on integral being evaluated. *r* is tuple of vector between atom centers. Uses exp, returns float. + +2. **overlap(ia, ja, ie, je, ir, jr)** + + parameters - *i* and *j* refer to basis functions, so ir is atom center coordinates of i. Uses pow, returns float. + +3. **s(iBasis, jBasis)** + + parameters - *iBasis* , *jBasis* are basis objects. Returns overlap between iBasis and jBasis. Returns float. + +4. **buildOverlap(bases)** + + parameters - *bases* is an array of basis objects (the molecular basis). Computes the overlap matrix. Returns \[nbf, nbf] array where nbf are the number of basis functions. + +5. **kinetic(ia, ja, ie, je, ir, jr)** + + parameters - *i* and *j* refer to basis functions, so ir is atom center coordinates of i. Calls overlap returns float. Kinetic energy integral between two Gaussians. + +6. **k(iBasis, jBasis)** + + parameters - *iBasis* , *jBasis* are basis objects. Returns kinetic between contracted Gaussians and returns a float. + +7. **buildKinetic(bases)** + + parameters - *bases* is an array of basis objects (the molecular basis). Computes the kinetic matrix. Returns \[nbf, nbf] array. One electron exchange. + +8. **j(v, n, p, r, rnorm)** + + parameters - *v* is vector of order of Coulomb Hermite derivatives in x,y,z. *n* is order of Boys function. *p* is sum of exponents of functions comprising composite center and *r* is vector of distance between composite center *p* and a nuclear center *c*. *rnorm* is distance between *p* and *c*. Returns float, recursive function. Calls Boys. + +9. **coulomb(ia, ja, ie, je, ir, jr, kr)** + + parameters - *i* and *j* refer to basis functions, so kr is atom center coordinates of k. Computes the 1e-coulomb integral between two Gaussians. Calls e and j, returns float. + +10. **v(iBasis, jBasis, r)** + + parameters - *iBasis* , *jBasis* are basis objects, r is center of nucleus. Returns coulomb between contracted Gaussians for nuclear center c. Calls coulomb and returns float. + +11. **buildCoulomb(atoms, bases)** + + parameters - *bases* is an array of basis objects (the molecular basis) and *atoms* is an array of atom objects. Computes the nuclear repulsion integral matrix. Returns \[nbf,nbf] array. + +12. **er(ie, je, ke, le, ia, ja, ka, la, ir, jr, kr, lr)** + + parameters - *i*, *j*, *k*, *l* refer to basis functions, so *kr* is atom center coordinates of *k*. Computes the electron-electron repulsion between Gaussians. Calls e and j and uses math.pow. + +13. **eri(iBasis, jBasis, kBasis, lBasis)** + + parameters - *iBasis* , *jBasis*, *kBasis* and *lBasis* are basis objects. Returns 2-electron repulsion between contracted Gaussians and returns a float. Calls er. + +14. **buildEri(bases)** + + parameters - *bases* is an array of basis objects (the molecular basis). Computes the 2-electron repulsion integrals as a linear array. Symmetry is taken into account so only upper triangle of ij, kl matrix is stored. More information of handling the indexes of 2-electron integrals can be found in the Crawford project #3 [see](https://github.com/CrawfordGroup/ProgrammingProjects/tree/master/Project%2303). Integrals are in Mulliken (chemists) order. + +15. **iEri(i, j, k, l)** + + parameters - *i*, *j*, *k*, *l* are basis indexes. Returns a pointer into array formed in buildEri. + +16. **buildHamiltonian(type, S, K, J)** + + parameters - *type* method of initial guess for fock matrix, currently either 'core' or 'gwh'. *S* is overlap matrix, *K* is 1e-exchange matrix and *J* the 1e-coulomb matrix. If type is 'core' returns (J+K), (J+K). If 'gwh' returns (J+K), 1.75.S\[i,j].(H\[i,i] + H\[j,j])/2 - the generalised Wolfberg-Helmholtz approximation. Return values are core Hamiltonian, initial Fock guess. + +17. **buildDensity(n, occupiedOrbitals, C)** + + parameters - *n* is number of basis functions, *occupiedOrbitals* are the number of occupied orbitals (twice the number of electrons) and *C* are the eigenvectors of the final Fock matrix. This is C\[i,k].C\[j,k] with i,j over n and k over occupiedOrbitals. Returns \[nbf,nbf] array. + +18. **buildFock(H, eri, cycle, D, engine = 'aello')** + + parameters - *H* is the core Hamiltonian matrix, *eri* the linear array of 2-electron repulsion integrals, *cycle* the current SCF iteration (not needed for calculation) and *D* the density matrix. The last parameter is the integral engine selected either 'native' or 'aello'. the default is the cython **aello** engine (doesn't operate on first cycle). If density is a zero matrix then it's first cycle and Fock is equal to core Hamiltonian, otherwise equal to H plus G matrices. The G matrix is G\[i,m] = D\[k,l].(2 - ). Returns \[nbf,nbf] array. + +19. **boys(n, T)** + + parameters - *n* order of Boys function, *T* is point of evaluation. Calls the confluent hypergeometric function 1F1 from scipy.special. Returns float. Used in j. + +20. **mu(iBasis, jBasis, kr, direction)** + + parameters - *iBasis* and *jBasis* are basis objects. *kr* is atom center of atom *k* and *direction* is a cartesian axis \['x'|'y'|'z']. + +21. **dipole(ia, ja, ie, je, ir, jr, kr, direction)** + + parameters - *i*, *j*, *k* refer to basis functions, so *kr* is atom center coordinates of *k* and *direction* is a cartesian axis \['x'|'y'|'z']. Computes the dipole component in the 'direction' specified. Calls e, uses math.pow and returns float. Calls dipole, returns float. Note dipoleComponent and buildDipole are in post module. + +22. **buildEriMO(eigenvectors, ERI)** + + parameters - *eigenvectors* are eigenfunctions of final Fock matrix. *ERI* array of the 2-electron repulsion integrals. Transforms eri to the MO basis, following this scheme [see](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2304/hints/hint2.md). Returns linear array. + +23. **buildFockMOspin(spinOrbitals, eigenvectors, fock)** + + parameters - *spinOrbitals* are the number of spin orbitals (twice the number of basis functions), *eigenvectors* are eigenfunctions of final Fock matrix and *fock* the final Fock matrix. Transform Fock matrix from AO basis -> MO basis -> MO spin basis. Returns \[2nbf,2nbf] array. + +24. **buildEriSingleBar(spinOrbitals, eriMO)** + + parameters - *spinOrbitals* are the number of spin orbitals and *eriMO* are the 2-electron repulsion integrals in the MO basis. Returns as a \[2nbf,2nbf,2nbf,2nbf]) array. + +25. **buildEriSingleBar(spinOrbitals, eriMO)** + + parameters - *spinOrbitals* are the number of spin orbitals and *eriMO* are the 2-electron repulsion integrals in the MO basis. Returns as a \[2nbf,2nbf,2nbf,2nbf] array. - . + +26. **eriTransform(eri)** + + parameters - *eri* is a 2-electron repulsion integrals. ab|cd -> ac|bd. + +27. **expandEri(eriMO, nBasis)** + + parameters - *eriMO* the linear eri in the molecular basis and *nBasis* is the number of basis functions. Using this is a lot quicker than recalculating the tensor from scratch. returns eriMO as a 4-index tensor. + +28. **d(iBasis, jBasis, direction):** + + parameters - *iBasis* and *jBasis* are basis objects. *kr* is atom center of atom *k* and *direction* is a cartesian axis \[*x*|*y*|*z*]. Calls nabla to calculate matrix for vector differential operator. + +29. **nabla(ia, ja, ie, je, ir, jr, direction):** + + parameters - *i*, *j*, *k* refer to basis functions, so *kr* is atom center coordinates of k and direction is a cartesian axis \[*x*|*y*|*z*]. Computes the nabla component in the *direction* specified. Calls e, uses math.pow and returns float. Calls nabla, returns float. + +30. **buildNabla(atoms, bases, direction):** + + parameters - *bases* is an array of basis objects (the molecular basis). *atoms* is an array of atom objects. Computes the matrix for the vector differential operator (del or nabla). + +31. **ang(ia, ja, ie, je, ir, jr, kr, direction):** + + parameters - *i*, *j*, *k* refer to basis functions, so *kr* is atom center coordinates of k and direction is a cartesian axis \[*x*|*y*|*z*]. Computes the angular momentum component in the *direction* specified. Calls e, uses math.pow and returns float. Returns float. + +32. **a(iBasis, jBasis, kr, direction):** + + parameters - *iBasis* and *jBasis* are basis objects. *kr* is atom center of atom *k* and *direction* is a cartesian axis \[*x*|*y*|*z*]. Calls ang to compute the angular momentum operator. + +33. **buildAngular(atoms, bases, direction, gaugeOrigin):** + + parameters - *atoms* is an array of atom objects and *bases* is an array of basis objects (the molecular basis). Computes the angular momentum integral matrix in the *direction* specified using *gaugeOrigin*. + +34. **quadrupole(ia, ja, ie, je, ir, jr, kr, direction):** + + parameters - *i*, *j*, *k* refer to basis functions, so *kr* is atom center coordinates of k and direction is a cartesian axis \[*x*|*y*|*z*]. Computes the quadrupole momentum component in the *direction* specified. Calls e, uses math.pow and returns float. Returns float. + +35. **q(iBasis, jBasis, kr, direction):** + + parameters - *iBasis* and *jBasis* are basis objects. *kr* is atom center of atom *k* and *direction* is a cartesian axis \[*x*|*y*|*z*]. Calls quadrupole to compute the quadrupole moment operator. + +36. **electricField(atoms, bases, direction, gaugeOrigin):** + + parameters - *atoms* is an array of atom objects and *bases* is an array of basis objects (the molecular basis). Computes the electric field integral matrix in the *direction* specified using *gaugeOrigin*. + +37. **ef(iBasis, jBasis, kr, direction):** + + parameters - *iBasis* and *jBasis* are basis objects. *kr* is atom center of atom *k* and *direction* is a cartesian axis \[*x*|*y*|*z*]. Calls quadrupole to compute the electric field operator. + +38. **electric(ia, ja, ie, je, ir, jr, kr, direction):** + + parameters - *i*, *j*, *k* refer to basis functions, so *kr* is atom center coordinates of k and direction is a cartesian axis \[*x*|*y*|*z*]. Computes the electric field component in the *direction* specified. Calls e, uses math.pow and returns float. Returns float. diff --git a/document/mbpt.md b/document/mbpt.md new file mode 100644 index 0000000..0d1f8a5 --- /dev/null +++ b/document/mbpt.md @@ -0,0 +1,133 @@ +# Many-body Perturbation Theory + +This module will generate the Hugenholtz diagrams for a particular order (nodes). It will then generate all 'hole' and particle combinations for the base diagrams ie up and down arrow combinations. An HTML file of the equtions for each diagram can be generated, and an example of how to generate python code to evaluate the equations automatically is given. The algorthms are based on those in [this paper](http://cds.cern.ch/record/609508/files/0303069.pdf). Also see Szabo and Ostlund (pg 256-262). + +The rules for constructing a Hugenholtz diagram are:\ +For an *n*th order diagram, n dots (vertices) are drawn in a column. These vertices are connected by directed lines subject to the conditions +1. Each vertex has two lines pointing in and two pointing out. +2. Each diagram is connected, i.e. one must be able to go from any one vertex to any other by following some number of lines. +3. No line connects a vertex with itself. +4. Each diagram is topologically distinct. + +As an example, this is a 4th diagram \ +![](../media/hugenholtz.png) + +There are the following routines.\ +    0. **diagrams_hh**\ +         Is a global list containing each \[base diagram, up arrow diagram] pair. + +1. **nodalPairCount_hh(order)**\ + parameter - *order* is the order of the diagram set required. Returns the number of pairs of adjacent nodes in the diagram. For the example above **6**. + +2. **nodalLineCount_hh(order)**\ + parameter - *order* is the order of the diagram set required. Returns the number of lines in the diagram. For the example above **8**. + +3. **nodalPairs_hh(order)**\ + parameter - *order* is the order of the diagram set required. Returns a set of sets of nodal pairs. For the example above \[\[0,1],\[0,2],\[0,3],\[1,2],\[1,3],\[2,3]]. + +4. **validDiagrams_hh(diagrams, order)**\ + parameters - *diagrams* is a list of diagram specifications (see below), and *order* is the order of the diagrams. The diagram specifications are checked for 4 lines at each node (construction rule 1) and that the diagram is connected (construction rule 2). Returns a boolean flag True is verified, False otherwise. + +5. **nodalPairConnectionsCombinations_hh(connections, nodePair, pairCount, order)**\ + parameters - *connections* is a list of lists, initially set to \[[0] \* nodalPairCount_hh(order)], on exit will contain specification of each node pair, *nodePair* initially set to 0, *pairCount* the number of nodalPairs and *order* is the order of diagrams. This is a recursive routine which builds all possible combinations of lines between the nodes. The number of combinations to reduced to only those valid according to the construction rules. The routine returns a list of all valid combinations for that order eg order 3 will just return [2,2,2], but order 4 will return 12 diagrams including [2,1,1,1,1,2] which is our example. Each diagram can itself have several combinations of up and down arrows as long as they comply with construction rule 1. + +6. **upArrowCombinations_hh(diagramCombinations,order)**\ + parameters - *diagramCombinations* is a list of valid diagrams as returned by the above routine, *order* is the order of diagrams. This routine loops over the diagrams calling upArrow_hh to generate all possible up arrow combinations for the diagram. Returns a list of all valid possible up arrow combinations. For our example [2,1,1,1,1,2] with produce (among others) [1,1,0,0,1,1]. + +7. **upArrow_hh(up, nodePair, diagram, pairs, pairCount, order)**\ + parameters - *up* is a list of the number of up arrows at each node, initially set to \[\[0] * pairCount]. On exit it will contain the valid combinations of up lines at each node. *nodePair* is initially 0, *diagram* is the diagram specification, *pairs* is the list of nodal pairs for this order, *pairCount* is the number of nodal pairs. Recursively calls itself to generate all possible up arrow combinations which are checked for validity before being returned by the next routine... + +8. **verifyArrow_hh(up, pairs, diagram, order)**\ + parameters - *up* is the specification of up arrow lines at each node of the diagram, *pairs* is the list of nodal pairs, *diagram* is the specification of the diagram being considered and *order* is the order of the diagram. Checks number of up arrows is exactly 2. Returns boolean True if valid, False otherwise. + +9. **downArrow_hh(diagram, arrow, pairs)**\ + parameters - *diagram* is the base diagram, *arrow* is the up arrow specification and *pairs* are the nodal pair combinations. Returns the down arrow configuation matching the given up arrow one. For our example will return \[1,0,1,1,0,1]. + +As an example running +```python +import numpy as np + +order = 3 +diagrams_hh = [] + +pairCount = nodalPairCount_hh(order) +connections = [[0] * pairCount] +nodePair = 0 + +diagramCombinations = nodalPairConnectionsCombinations_hh(connections, nodePair, pairCount, order) +upArrowCombinations_hh(diagramCombinations, order) + +d = [] + +for i, diagram in enumerate(diagrams_hh): + if diagram[0] != d: + print('Base diagram ', diagram[0]) + d = diagram[0] + print(' arrow combination [',i,'] ', diagram[1], downArrow_hh(diagram[0], diagram[1], nodalPairs_hh(order))) +``` +will give +``` +Base diagram [2, 2, 2] + arrow combination [ 0 ] [0, 2, 0] [2, 0, 2] + arrow combination [ 1 ] [1, 1, 1] [1, 1, 1] + arrow combination [ 2 ] [2, 0, 2] [0, 2, 0] +``` +10. **connectionFlow_hh(up, down, order)**\ + parameters - *up* the up arrow specification of a diagram, *down* the down arrow combination of a diagram and *order* is the order of the diagrams. This routine generates a full description of the arrows at each node. Each node will have four entries, one for each line connecting it. The specification is of the form \[node 1, node 2, 'u'|'d', 'i'|'o', 'a'] where node n specifies the nodes defining the pair, 'u' or 'd' specify whether the line is up or down, 'i' or 'o' specifies whether the line in in or out of the node and 'a' can be any literal label. The labelling here is 'a-h' for down lines and 'r-y' for up. + For node 0 for our example the specification would be \[0,1,'d','o','a'],\[0,1,'u','i','r'],\[0,2,'d','o','b'],\[0,3,'u','i','s']. Note Szabo and Ostlund number their nodes from the bottom up - this is equivalent to swapping up and down arrow labels - this routines changes to this numbering. + +11. **rules_hh(flows, order)**\ + parameters - *flows* the specification of lines at nodes as produced by connectionFlow_hh, *order* is the order of the diagrams. This routine evalutes the rules for determining the analytic expressions for the energy corrections. These rules are + 1. Each dot contributes an antisymmetric matrix element 1in2||out1out2> to the numerator. + 2. Each pair of adjacent vertices contributes the denominator factor **Σ** εholes - **Σ** εparticles + where the sums run over the labels of all hole and particle lines ceossing an imaginary line separating the pair of vertices. + 3. The overall sign of the expression is(-1)h+l, where *h* and *l* are the number of hole lines and closed loops respectively. + 4. Sum expression over all hole and particle indices. + 5. Multiply the expression by a weight factor 2-2, where k is the number of equivalent lines. Two lines are equivalent is they share the same nodes and their directions are the same. + + This routine will return for order 3 +``` +[0,2,0] +['abrs,cdab,rscd', ['a+b-r-s', 'c+d-r-s'], [4, 2], ['a->r->c->a', 'b->s->d->b'], 3] + +[2,0,2] +['abrs,rstu,tuab', ['a+b-r-s', 'a+b-t-u'], [2, 2], ['a->r->t->a', 'b->s->u->b'], 3] + +[1,1,1] +['abrs,rcat,stbc', ['a+b-r-s', 'b+c-s-t'], [3, 3], ['a->r->a', 'b->s->b', 'c->t->c'], 0] +``` +These values are \[the einsum type expression for the double bar integral product, the orbital energy sums in the denominator, hole lines and closed loops, closed loop calculation, equivalent lines]. + +These results can be compared with Szabo & Ostlund pg 361. It is not immediately clear that \[1,1,1] is equivalent to the S&O version, however we can see that +'abrs,rcat,stbc' is, since ab are just labels and can be swapped ->\ +'bars,rcbt,stac' which is since rs are also just labels ->\ +'basr,scbt,rtac' which changing order of terms and noting <12||34> = <21||43> -> +'abrs,cstb,rtac' which is the same as Szabo and Ostlund labelling. + +12. **HTMLDiagrams_hh(order, filename)**\ + parameters - *order* is the order of the diagrams and *filename* is a file descriptor. This routine will produce an HTML file specied by filename containing the algebraic representation of the diagrams. For order 3 the result is + ![](../media/order3.png) + +13. **codeDiagrams_hh(order)**\ + parameter - *order* is the order of the diagrams. This routine uses the results of the above routines to generate python code to evaluate MPn energies. The python code required to evaluate the energies is generated from the diagrams and then executed via exec() to return the moller-plesset energy. + +14. **mbptEvaluateMPn(scf, mp = [2, 3, 4])** \ + parameter - *scf* is the scf energy and *mp* is a list of mp-orders to be computed. Uses codeDiagrams to evaluate the requested energies. For default writes values to view module for HTML output and also returns a list of requested values. + +Example for water STO-3G +| level of theory | | +|-----------------|----------------| +| mp2 |-0.049150 | +| mp3 |-0.014188 | +| mp4 |-0.004690 | +| scf |-74.942080 | +| scf + correction | -75.010108 | + + + + + + + + + diff --git a/document/mp.md b/document/mp.md new file mode 100644 index 0000000..e6a81ce --- /dev/null +++ b/document/mp.md @@ -0,0 +1,31 @@ +# Moller-Plesset Module - post SCF calculations + +A discussion of MP2 can be found in [Crawford projects] (https://github.com/CrawfordGroup/ProgrammingProjects/tree/master/Project%2304). + +1. **mollerPlesset(atoms, charge, bases, eigenVectors, eigenValues, ERI, e)** + + parameters - *atoms* is an array of atom objects (the molecular atom set), *charge* is the molecular charge, *bases* is an array of basis objects (the molecular basis), *eigenVectors* are the eigenfunctions of the final Fock matrix and *eigenValues* the corresponding eigenvalues, *ERI* the 2-electron repulsion integrals and *e* the final SCF total energy. Calls mp2 and mp3 and returns mp2 (parallel and anti-parallel components) and mp3 energy corrections to the output module. + +2. **mp2(atoms, charge, bases, eigenVectors, eigenValues, ERI)** + + parameters - *atoms* is an array of atom objects (the molecular atom set), *charge* is the molecular charge, *bases* is an array of basis objects (the molecular basis), *eigenVectors* are the eigenfunctions of the final Fock matrix and *eigenValues* the corresponding eigenvalues and *ERI* are the 2-electron repulsion integrals. *type* can be either 'p-ap' which returns the parallel and anti-parallel spin components of the mp2 correction (default), 'scs' which will return the spin-conponent scaled correction or 'no' which returns the natural orbitals and their occupations (Trunks, Salter, Sosa, Bartlett - Theory and implementation of MBPT density matrix. An application to one-electron properties [here](https://www.sciencedirect.com/science/article/abs/pii/0009261488802495)). Calls buildEriMO to transform ERI to the molecular basis, and returns are dependent on *type*. + +3. **mp3(atoms, charge, bases, eigenVectors, fock, ERI)** + + parameters - *atoms* is an array of atom objects (the molecular atom set), *charge* is the molecular charge, *bases* is an array of basis objects (the molecular basis), *eigenVectors* are the eigenfunctions of the final Fock matrix, *fock* is the final Fock matrix and *ERI* are the 2-electron repulsion integrals. Calls buildEriMO to transform ERI to the molecular basis and returns the mp3 energy correction + +4. **orbitalOptimisedMP2(eigenVectors, h, e, molBasis, eNuclear, ERI, nElectrons)** + + parameters - *eigenVectors* are the final orbital coefficients, *h* is the core hamiltonian, *e* are the final orbital energies, *molBasis* is an array of basis objects( the molecular basis), *eNuclear* is the nuclear repulsion energy, *ERI* are the 2-electron repulsion integrals and *nElectrons* are the number of electrons. Calls integral.iEri. This is a version of the algorithm found in psi4numpy tutorials [here](https://github.com/psi4/psi4numpy/blob/master/Tutorials/10_Orbital_Optimized_Methods/10a_orbital-optimized-mp2.ipynb). Outputs results to view.postSCF (*omp*). Contains functions hSpinBlock(h, spinOrbitals, nBasis), eriSpinBlock(eri, spinOrbitals, nBasis) and eriSpinMO(gao, eigenVectors). Returns omp energy. + +5. **eriMOpartition(eri, co, cv, nBasis, no, nv)** + + parameters - *eri* are the 2-electron repulsion integrals in tensor form, *co* and *cv* are partitioned orbital coefficients (co = c[:,o] cv = c[:,v]),*nBasis* is the number of basis functions, *no* and *nv* are the number of occupied and virtual orbitals. Returns eri as tensor [o,v,o,v]. + +6. **mp2LaplaceTransform(molBasis, c, ERI, eps, nOccupied, E, meshSize=40)** + + parameters - *molBasis* an array of basis objects (the molecular basis), *c* the orbital eigenfunctions, *ERI* the 2-electron repulsion integrals (linear), *eps* the orbital energies, *nOccupied* the number of occupied orbitals, *E* the converged scf energy and *meshSize* the size of the quadrature grid. Uses Laplace transforms based on psi4numpty [here](https://github.com/psi4/psi4numpy/blob/master/Moller-Plesset/LT-MP2.py). Sends results to postSCF (*mplp*) for output. Returns mp2Laplace energy correction. + +7. **mp2UnrelaxedDensity(c, e, eri, nbf, nOccupied)** + + parameters - *c* are the orbital eigenfunctions, *e* the orbital energies, *eri* the 2-electron repulsion integrals (linear), *nbf* are the number of basis functions and *nOccupied* are the number of doubly occupied orbitals. Returns the unrelaxed mp2 level density matrix. diff --git a/document/ocypete.html b/document/ocypete.html new file mode 100644 index 0000000..8391615 --- /dev/null +++ b/document/ocypete.html @@ -0,0 +1,3757 @@ + + + + + + Cython: ocypete.pyx + + + +

Generated by Cython 0.29.21

+

+ Yellow lines hint at Python interaction.
+ Click on a line that starts with a "+" to see the C code that Cython generated for it. +

+

Raw output: ocypete.c

+
+001: #cython: boundscheck=False, wraparound=False, nonecheck=False, initializedcheck=False, cdivision=True
+
  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_2) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
 002: from libc.math cimport exp, pow, tgamma, sqrt, abs
+
 003: from scipy.special.cython_special cimport hyp1f1
+
 004: 
+
+005: import numpy as np
+
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 5, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+
 006: cimport numpy as np
+
 007: 
+
+008: cdef double pi = 3.141592653589793238462643383279
+
  __pyx_v_7ocypete_pi = 3.141592653589793238462643383279;
+
 009: 
+
 010: #---------------------------------------Shared Routines -----------------------------------|
+
 011: 
+
+012: cdef double cye(int ia,int ja,int type, double r, double ie, double je, int n = 0, double x = 0.0):
+
static double __pyx_f_7ocypete_cye(int __pyx_v_ia, int __pyx_v_ja, int __pyx_v_type, double __pyx_v_r, double __pyx_v_ie, double __pyx_v_je, struct __pyx_opt_args_7ocypete_cye *__pyx_optional_args) {
+  int __pyx_v_n = ((int)0);
+  double __pyx_v_x = ((double)0.0);
+  double __pyx_v_p;
+  double __pyx_v_q;
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("cye", 0);
+  if (__pyx_optional_args) {
+    if (__pyx_optional_args->__pyx_n > 0) {
+      __pyx_v_n = __pyx_optional_args->n;
+      if (__pyx_optional_args->__pyx_n > 1) {
+        __pyx_v_x = __pyx_optional_args->x;
+      }
+    }
+  }
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+/* … */
+struct __pyx_opt_args_7ocypete_cye {
+  int __pyx_n;
+  int n;
+  double x;
+};
+
 013: 
+
 014: 	cdef:
+
+015: 		double p = ie + je
+
  __pyx_v_p = (__pyx_v_ie + __pyx_v_je);
+
+016: 		double q = ie*je / p
+
  __pyx_v_q = ((__pyx_v_ie * __pyx_v_je) / __pyx_v_p);
+
 017: 
+
+018: 	if n == 0:
+
  __pyx_t_1 = ((__pyx_v_n == 0) != 0);
+  if (__pyx_t_1) {
+/* … */
+  }
+
+019: 		if (type < 0) or (type > (ia + ja)):
+
    __pyx_t_2 = ((__pyx_v_type < 0) != 0);
+    if (!__pyx_t_2) {
+    } else {
+      __pyx_t_1 = __pyx_t_2;
+      goto __pyx_L5_bool_binop_done;
+    }
+    __pyx_t_2 = ((__pyx_v_type > (__pyx_v_ia + __pyx_v_ja)) != 0);
+    __pyx_t_1 = __pyx_t_2;
+    __pyx_L5_bool_binop_done:;
+    if (__pyx_t_1) {
+/* … */
+    }
+
+020: 			return 0.0
+
      __pyx_r = 0.0;
+      goto __pyx_L0;
+
+021: 		elif (ia + ja + type) == 0:
+
    __pyx_t_1 = ((((__pyx_v_ia + __pyx_v_ja) + __pyx_v_type) == 0) != 0);
+    if (__pyx_t_1) {
+/* … */
+    }
+
+022: 			return exp(-q*r*r)
+
      __pyx_r = exp((((-__pyx_v_q) * __pyx_v_r) * __pyx_v_r));
+      goto __pyx_L0;
+
+023: 		elif ja == 0:
+
    __pyx_t_1 = ((__pyx_v_ja == 0) != 0);
+    if (__pyx_t_1) {
+/* … */
+    }
+
+024: 			return (1/(2 * p)) * cye(ia-1,ja,type-1,r,ie,je) - (q*r/ie) * cye(ia-1,ja,type,r,ie,je) + \
+
      __pyx_r = ((((1.0 / (2.0 * __pyx_v_p)) * __pyx_f_7ocypete_cye((__pyx_v_ia - 1), __pyx_v_ja, (__pyx_v_type - 1), __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL)) - (((__pyx_v_q * __pyx_v_r) / __pyx_v_ie) * __pyx_f_7ocypete_cye((__pyx_v_ia - 1), __pyx_v_ja, __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL))) + ((__pyx_v_type + 1) * __pyx_f_7ocypete_cye((__pyx_v_ia - 1), __pyx_v_ja, (__pyx_v_type + 1), __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL)));
+      goto __pyx_L0;
+
 025:                          (type+1) * cye(ia-1,ja,type+1,r,ie,je)
+
 026: 		else:
+
+027: 			return (1/(2 * p)) * cye(ia,ja-1,type-1,r,ie,je) + (q*r/je) * cye(ia,ja-1,type,r,ie,je) + \
+
    /*else*/ {
+/* … */
+      __pyx_r = ((((1.0 / (2.0 * __pyx_v_p)) * __pyx_f_7ocypete_cye(__pyx_v_ia, (__pyx_v_ja - 1), (__pyx_v_type - 1), __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL)) + (((__pyx_v_q * __pyx_v_r) / __pyx_v_je) * __pyx_f_7ocypete_cye(__pyx_v_ia, (__pyx_v_ja - 1), __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL))) + ((__pyx_v_type + 1) * __pyx_f_7ocypete_cye(__pyx_v_ia, (__pyx_v_ja - 1), (__pyx_v_type + 1), __pyx_v_r, __pyx_v_ie, __pyx_v_je, NULL)));
+      goto __pyx_L0;
+    }
+
 028:                          (type+1) * cye(ia,ja-1,type+1,r,ie,je)
+
 029: 	else:
+
+030: 		return cye(ia+1,ja,type,r,ie,je,n-1,x) + x * cye(ia,ja,type,r,ie,je,n-1,x)
+
  /*else*/ {
+    __pyx_t_4.__pyx_n = 2;
+    __pyx_t_4.n = (__pyx_v_n - 1);
+    __pyx_t_4.x = __pyx_v_x;
+    __pyx_t_3 = __pyx_f_7ocypete_cye((__pyx_v_ia + 1), __pyx_v_ja, __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+    __pyx_t_4.__pyx_n = 2;
+    __pyx_t_4.n = (__pyx_v_n - 1);
+    __pyx_t_4.x = __pyx_v_x;
+    __pyx_t_5 = __pyx_f_7ocypete_cye(__pyx_v_ia, __pyx_v_ja, __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+    __pyx_r = (__pyx_t_3 + (__pyx_v_x * __pyx_t_5));
+    goto __pyx_L0;
+  }
+
 031: 
+
 032: 
+
+033: cdef double efx(int ia,int ja,int type, double r, double ie, double je, int n = 0, double x = 0.0, int p = 0, int s = 0):
+
static double __pyx_f_7ocypete_efx(int __pyx_v_ia, int __pyx_v_ja, int __pyx_v_type, double __pyx_v_r, double __pyx_v_ie, double __pyx_v_je, struct __pyx_opt_args_7ocypete_efx *__pyx_optional_args) {
+  int __pyx_v_n = ((int)0);
+  double __pyx_v_x = ((double)0.0);
+  int __pyx_v_p = ((int)0);
+  int __pyx_v_s = ((int)0);
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("efx", 0);
+  if (__pyx_optional_args) {
+    if (__pyx_optional_args->__pyx_n > 0) {
+      __pyx_v_n = __pyx_optional_args->n;
+      if (__pyx_optional_args->__pyx_n > 1) {
+        __pyx_v_x = __pyx_optional_args->x;
+        if (__pyx_optional_args->__pyx_n > 2) {
+          __pyx_v_p = __pyx_optional_args->p;
+          if (__pyx_optional_args->__pyx_n > 3) {
+            __pyx_v_s = __pyx_optional_args->s;
+          }
+        }
+      }
+    }
+  }
+/* … */
+  /* function exit code */
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+/* … */
+struct __pyx_opt_args_7ocypete_efx {
+  int __pyx_n;
+  int n;
+  double x;
+  int p;
+  int s;
+};
+
+034: 	if p == 1:
+
  __pyx_t_1 = ((__pyx_v_p == 1) != 0);
+  if (__pyx_t_1) {
+/* … */
+  }
+
+035: 		return 2.0 * ie * cye(ia+1, ja, type, r, ie, je, n, x) - ia * cye(ia-1, ja, type, r, ie, je, n, x)
+
    __pyx_t_3.__pyx_n = 2;
+    __pyx_t_3.n = __pyx_v_n;
+    __pyx_t_3.x = __pyx_v_x;
+    __pyx_t_2 = __pyx_f_7ocypete_cye((__pyx_v_ia + 1), __pyx_v_ja, __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, &__pyx_t_3); 
+    __pyx_t_3.__pyx_n = 2;
+    __pyx_t_3.n = __pyx_v_n;
+    __pyx_t_3.x = __pyx_v_x;
+    __pyx_t_4 = __pyx_f_7ocypete_cye((__pyx_v_ia - 1), __pyx_v_ja, __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, &__pyx_t_3); 
+    __pyx_r = (((2.0 * __pyx_v_ie) * __pyx_t_2) - (__pyx_v_ia * __pyx_t_4));
+    goto __pyx_L0;
+
+036: 	elif s == 1:
+
  __pyx_t_1 = ((__pyx_v_s == 1) != 0);
+  if (__pyx_t_1) {
+/* … */
+  }
+
+037: 		return 2.0 * je * cye(ia, ja+1, type, r, ie, je, n, x) - ja * cye(ia, ja-1, type, r, ie, je, n, x)
+
    __pyx_t_3.__pyx_n = 2;
+    __pyx_t_3.n = __pyx_v_n;
+    __pyx_t_3.x = __pyx_v_x;
+    __pyx_t_4 = __pyx_f_7ocypete_cye(__pyx_v_ia, (__pyx_v_ja + 1), __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, &__pyx_t_3); 
+    __pyx_t_3.__pyx_n = 2;
+    __pyx_t_3.n = __pyx_v_n;
+    __pyx_t_3.x = __pyx_v_x;
+    __pyx_t_2 = __pyx_f_7ocypete_cye(__pyx_v_ia, (__pyx_v_ja - 1), __pyx_v_type, __pyx_v_r, __pyx_v_ie, __pyx_v_je, &__pyx_t_3); 
+    __pyx_r = (((2.0 * __pyx_v_je) * __pyx_t_4) - (__pyx_v_ja * __pyx_t_2));
+    goto __pyx_L0;
+
 038: 
+
+039: cdef double ovlpfx(int ia0, int ia1, int ia2, int ja0, int ja1, int ja2, double ie, double je, \
+
static double __pyx_f_7ocypete_ovlpfx(int __pyx_v_ia0, int __pyx_v_ia1, int __pyx_v_ia2, int __pyx_v_ja0, int __pyx_v_ja1, int __pyx_v_ja2, double __pyx_v_ie, double __pyx_v_je, double __pyx_v_ir0, double __pyx_v_ir1, double __pyx_v_ir2, double __pyx_v_jr0, double __pyx_v_jr1, double __pyx_v_jr2, int *__pyx_v_n, double *__pyx_v_origin, int __pyx_v_x, int __pyx_v_center) {
+  int __pyx_v_pa;
+  int __pyx_v_pb;
+  double __pyx_v_t;
+  double __pyx_v_r0;
+  double __pyx_v_r1;
+  double __pyx_v_r2;
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("ovlpfx", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 040:                    double ir0, double ir1, double ir2, double jr0, double jr1, double jr2, int[3] n, double[3] origin, int x, int center):
+
 041: 
+
 042: 	cdef:
+
+043: 		int pa = 0
+
  __pyx_v_pa = 0;
+
 044: 		int pb
+
+045: 		double t = 0.0
+
  __pyx_v_t = 0.0;
+
 046: 		double r0, r1, r2
+
 047: 
+
+048: 	if center == 0:
+
  __pyx_t_1 = ((__pyx_v_center == 0) != 0);
+  if (__pyx_t_1) {
+/* … */
+  }
+
+049: 		pa = 1
+
    __pyx_v_pa = 1;
+
+050: 	pb = (pa+1) % 2
+
  __pyx_v_pb = ((__pyx_v_pa + 1) % 2);
+
 051: 
+
+052: 	r0 = ir0 - jr0
+
  __pyx_v_r0 = (__pyx_v_ir0 - __pyx_v_jr0);
+
+053: 	r1 = ir1 - jr1
+
  __pyx_v_r1 = (__pyx_v_ir1 - __pyx_v_jr1);
+
+054: 	r2 = ir2 - jr2
+
  __pyx_v_r2 = (__pyx_v_ir2 - __pyx_v_jr2);
+
 055: 
+
+056: 	if x == 0:
+
  switch (__pyx_v_x) {
+    case 0:
+/* … */
+    break;
+    case 1:
+
+057: 		t =  efx(ia0, ja0 , 0, r0, ie, je, n[0], ir0 - origin[0],pa ,pb )
+
    __pyx_t_3.__pyx_n = 4;
+    __pyx_t_3.n = (__pyx_v_n[0]);
+    __pyx_t_3.x = (__pyx_v_ir0 - (__pyx_v_origin[0]));
+    __pyx_t_3.p = __pyx_v_pa;
+    __pyx_t_3.s = __pyx_v_pb;
+    __pyx_t_2 = __pyx_f_7ocypete_efx(__pyx_v_ia0, __pyx_v_ja0, 0, __pyx_v_r0, __pyx_v_ie, __pyx_v_je, &__pyx_t_3); 
+    __pyx_v_t = __pyx_t_2;
+
+058: 		t *= cye(ia1, ja1 , 0, r1, ie, je, n[1], ir1 - origin[1])
+
    __pyx_t_4.__pyx_n = 2;
+    __pyx_t_4.n = (__pyx_v_n[1]);
+    __pyx_t_4.x = (__pyx_v_ir1 - (__pyx_v_origin[1]));
+    __pyx_t_2 = __pyx_f_7ocypete_cye(__pyx_v_ia1, __pyx_v_ja1, 0, __pyx_v_r1, __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+    __pyx_v_t = (__pyx_v_t * __pyx_t_2);
+
+059: 		t *= cye(ia2, ja2 , 0, r2, ie, je, n[2], ir2 - origin[2])
+
    __pyx_t_4.__pyx_n = 2;
+    __pyx_t_4.n = (__pyx_v_n[2]);
+    __pyx_t_4.x = (__pyx_v_ir2 - (__pyx_v_origin[2]));
+    __pyx_t_2 = __pyx_f_7ocypete_cye(__pyx_v_ia2, __pyx_v_ja2, 0, __pyx_v_r2, __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+    __pyx_v_t = (__pyx_v_t * __pyx_t_2);
+
+060: 	elif x == 1:
+
    break;
+    case 2:
+
+061: 		t =  cye(ia0, ja0 , 0, r0, ie, je, n[0], ir0 - origin[0])
+
    __pyx_t_4.__pyx_n = 2;
+    __pyx_t_4.n = (__pyx_v_n[0]);
+    __pyx_t_4.x = (__pyx_v_ir0 - (__pyx_v_origin[0]));
+    __pyx_t_2 = __pyx_f_7ocypete_cye(__pyx_v_ia0, __pyx_v_ja0, 0, __pyx_v_r0, __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+    __pyx_v_t = __pyx_t_2;
+
+062: 		t *= efx(ia1, ja1 , 0, r1, ie, je, n[1], ir1 - origin[1],pa ,pb )
+
    __pyx_t_3.__pyx_n = 4;
+    __pyx_t_3.n = (__pyx_v_n[1]);
+    __pyx_t_3.x = (__pyx_v_ir1 - (__pyx_v_origin[1]));
+    __pyx_t_3.p = __pyx_v_pa;
+    __pyx_t_3.s = __pyx_v_pb;
+    __pyx_t_2 = __pyx_f_7ocypete_efx(__pyx_v_ia1, __pyx_v_ja1, 0, __pyx_v_r1, __pyx_v_ie, __pyx_v_je, &__pyx_t_3); 
+    __pyx_v_t = (__pyx_v_t * __pyx_t_2);
+
+063: 		t *= cye(ia2, ja2 , 0, r2, ie, je, n[2], ir2 - origin[2])
+
    __pyx_t_4.__pyx_n = 2;
+    __pyx_t_4.n = (__pyx_v_n[2]);
+    __pyx_t_4.x = (__pyx_v_ir2 - (__pyx_v_origin[2]));
+    __pyx_t_2 = __pyx_f_7ocypete_cye(__pyx_v_ia2, __pyx_v_ja2, 0, __pyx_v_r2, __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+    __pyx_v_t = (__pyx_v_t * __pyx_t_2);
+
+064: 	elif x == 2:
+
    break;
+    default: break;
+  }
+
+065: 		t =  cye(ia0, ja0 , 0, r0, ie, je, n[0], ir0 - origin[0])
+
    __pyx_t_4.__pyx_n = 2;
+    __pyx_t_4.n = (__pyx_v_n[0]);
+    __pyx_t_4.x = (__pyx_v_ir0 - (__pyx_v_origin[0]));
+    __pyx_t_2 = __pyx_f_7ocypete_cye(__pyx_v_ia0, __pyx_v_ja0, 0, __pyx_v_r0, __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+    __pyx_v_t = __pyx_t_2;
+
+066: 		t *= cye(ia1, ja1 , 0, r1, ie, je, n[1], ir1 - origin[1])
+
    __pyx_t_4.__pyx_n = 2;
+    __pyx_t_4.n = (__pyx_v_n[1]);
+    __pyx_t_4.x = (__pyx_v_ir1 - (__pyx_v_origin[1]));
+    __pyx_t_2 = __pyx_f_7ocypete_cye(__pyx_v_ia1, __pyx_v_ja1, 0, __pyx_v_r1, __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+    __pyx_v_t = (__pyx_v_t * __pyx_t_2);
+
+067: 		t *= efx(ia2, ja2 , 0, r2, ie, je, n[2], ir2 - origin[2],pa ,pb )
+
    __pyx_t_3.__pyx_n = 4;
+    __pyx_t_3.n = (__pyx_v_n[2]);
+    __pyx_t_3.x = (__pyx_v_ir2 - (__pyx_v_origin[2]));
+    __pyx_t_3.p = __pyx_v_pa;
+    __pyx_t_3.s = __pyx_v_pb;
+    __pyx_t_2 = __pyx_f_7ocypete_efx(__pyx_v_ia2, __pyx_v_ja2, 0, __pyx_v_r2, __pyx_v_ie, __pyx_v_je, &__pyx_t_3); 
+    __pyx_v_t = (__pyx_v_t * __pyx_t_2);
+
 068: 
+
+069: 	return t * pow(pi/(ie+je), 1.5)
+
  __pyx_r = (__pyx_v_t * pow((__pyx_v_7ocypete_pi / (__pyx_v_ie + __pyx_v_je)), 1.5));
+  goto __pyx_L0;
+
 070: 
+
+071: cdef double kntcfx(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, \
+
static double __pyx_f_7ocypete_kntcfx(int *__pyx_v_ia, int *__pyx_v_ja, double __pyx_v_ie, double __pyx_v_je, double *__pyx_v_ir, double *__pyx_v_jr, int *__pyx_v_n, double *__pyx_v_origin, int __pyx_v_x, int __pyx_v_center) {
+  int __pyx_v_pa;
+  int __pyx_v_pb;
+  int __pyx_v_i;
+  double __pyx_v_t[3];
+  double __pyx_v_mu[3];
+  double __pyx_v_nu[3];
+  double __pyx_v_vu[3];
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("kntcfx", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 072:                int[3] n, double[3] origin, int x, int center):
+
 073: 
+
 074: 	#cases for center 'a' and center 'b'
+
 075: 	cdef:
+
+076: 		int pa = 0
+
  __pyx_v_pa = 0;
+
 077: 		int pb, i
+
 078: 		double[3] t
+
 079: 		double[3] mu, nu, vu
+
 080: 
+
+081: 	if center == 0:
+
  __pyx_t_1 = ((__pyx_v_center == 0) != 0);
+  if (__pyx_t_1) {
+/* … */
+  }
+
+082: 		pa = 1
+
    __pyx_v_pa = 1;
+
+083: 	pb = (pa+1) % 2
+
  __pyx_v_pb = ((__pyx_v_pa + 1) % 2);
+
 084: 
+
+085: 	for i in range(0, 3):
+
  for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
+    __pyx_v_i = __pyx_t_2;
+
+086: 		mu[i] = (2*ja[i] + 1) * je
+
    (__pyx_v_mu[__pyx_v_i]) = (((2 * (__pyx_v_ja[__pyx_v_i])) + 1) * __pyx_v_je);
+
+087: 		nu[i] = -2*pow(je,2)
+
    (__pyx_v_nu[__pyx_v_i]) = (-2.0 * pow(__pyx_v_je, 2.0));
+
+088: 		vu[i] = -0.5 * ja[i]* (ja[i]-1)
+
    (__pyx_v_vu[__pyx_v_i]) = ((-0.5 * (__pyx_v_ja[__pyx_v_i])) * ((__pyx_v_ja[__pyx_v_i]) - 1));
+
+089: 		t[i] = 0.0
+
    (__pyx_v_t[__pyx_v_i]) = 0.0;
+  }
+
 090: 
+
+091: 	for i in range(0, 3):
+
  for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
+    __pyx_v_i = __pyx_t_2;
+
 092: 
+
+093: 		if i == x:
+
    __pyx_t_1 = ((__pyx_v_i == __pyx_v_x) != 0);
+    if (__pyx_t_1) {
+/* … */
+      goto __pyx_L8;
+    }
+
+094: 			t[x] = mu[x] * efx(ia[x], ja[x] , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + \
+
      __pyx_t_4.__pyx_n = 4;
+      __pyx_t_4.n = (__pyx_v_n[__pyx_v_x]);
+      __pyx_t_4.x = ((__pyx_v_ir[__pyx_v_x]) - (__pyx_v_origin[__pyx_v_x]));
+      __pyx_t_4.p = __pyx_v_pa;
+      __pyx_t_4.s = __pyx_v_pb;
+      __pyx_t_3 = __pyx_f_7ocypete_efx((__pyx_v_ia[__pyx_v_x]), (__pyx_v_ja[__pyx_v_x]), 0, ((__pyx_v_ir[__pyx_v_x]) - (__pyx_v_jr[__pyx_v_x])), __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+/* … */
+      (__pyx_v_t[__pyx_v_x]) = ((((__pyx_v_mu[__pyx_v_x]) * __pyx_t_3) + ((__pyx_v_nu[__pyx_v_x]) * __pyx_t_5)) + ((__pyx_v_vu[__pyx_v_x]) * __pyx_t_6));
+
+095: 			       nu[x] * efx(ia[x], ja[x] + 2 , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + \
+
      __pyx_t_4.__pyx_n = 4;
+      __pyx_t_4.n = (__pyx_v_n[__pyx_v_x]);
+      __pyx_t_4.x = ((__pyx_v_ir[__pyx_v_x]) - (__pyx_v_origin[__pyx_v_x]));
+      __pyx_t_4.p = __pyx_v_pa;
+      __pyx_t_4.s = __pyx_v_pb;
+      __pyx_t_5 = __pyx_f_7ocypete_efx((__pyx_v_ia[__pyx_v_x]), ((__pyx_v_ja[__pyx_v_x]) + 2), 0, ((__pyx_v_ir[__pyx_v_x]) - (__pyx_v_jr[__pyx_v_x])), __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+
+096: 				   vu[x] * efx(ia[x], ja[x] - 2, 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb )
+
      __pyx_t_4.__pyx_n = 4;
+      __pyx_t_4.n = (__pyx_v_n[__pyx_v_x]);
+      __pyx_t_4.x = ((__pyx_v_ir[__pyx_v_x]) - (__pyx_v_origin[__pyx_v_x]));
+      __pyx_t_4.p = __pyx_v_pa;
+      __pyx_t_4.s = __pyx_v_pb;
+      __pyx_t_6 = __pyx_f_7ocypete_efx((__pyx_v_ia[__pyx_v_x]), ((__pyx_v_ja[__pyx_v_x]) - 2), 0, ((__pyx_v_ir[__pyx_v_x]) - (__pyx_v_jr[__pyx_v_x])), __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+
 097: 
+
 098: 		else:
+
+099: 			t[i] = mu[i] * cye(ia[i], ja[i] , 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + \
+
      __pyx_t_7.__pyx_n = 2;
+      __pyx_t_7.n = (__pyx_v_n[__pyx_v_i]);
+      __pyx_t_7.x = ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_origin[__pyx_v_i]));
+      __pyx_t_6 = __pyx_f_7ocypete_cye((__pyx_v_ia[__pyx_v_i]), (__pyx_v_ja[__pyx_v_i]), 0, ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_jr[__pyx_v_i])), __pyx_v_ie, __pyx_v_je, &__pyx_t_7); 
+/* … */
+      (__pyx_v_t[__pyx_v_i]) = ((((__pyx_v_mu[__pyx_v_i]) * __pyx_t_6) + ((__pyx_v_nu[__pyx_v_i]) * __pyx_t_5)) + ((__pyx_v_vu[__pyx_v_i]) * __pyx_t_3));
+    }
+    __pyx_L8:;
+  }
+
+100: 				   nu[i] * cye(ia[i], ja[i] + 2, 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + \
+
    /*else*/ {
+/* … */
+      __pyx_t_7.__pyx_n = 2;
+      __pyx_t_7.n = (__pyx_v_n[__pyx_v_i]);
+      __pyx_t_7.x = ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_origin[__pyx_v_i]));
+      __pyx_t_5 = __pyx_f_7ocypete_cye((__pyx_v_ia[__pyx_v_i]), ((__pyx_v_ja[__pyx_v_i]) + 2), 0, ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_jr[__pyx_v_i])), __pyx_v_ie, __pyx_v_je, &__pyx_t_7); 
+
+101: 				   vu[i] * cye(ia[i], ja[i] - 2, 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i])
+
      __pyx_t_7.__pyx_n = 2;
+      __pyx_t_7.n = (__pyx_v_n[__pyx_v_i]);
+      __pyx_t_7.x = ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_origin[__pyx_v_i]));
+      __pyx_t_3 = __pyx_f_7ocypete_cye((__pyx_v_ia[__pyx_v_i]), ((__pyx_v_ja[__pyx_v_i]) - 2), 0, ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_jr[__pyx_v_i])), __pyx_v_ie, __pyx_v_je, &__pyx_t_7); 
+
 102: 
+
+103: 	for i in range(0, 3):
+
  for (__pyx_t_2 = 0; __pyx_t_2 < 3; __pyx_t_2+=1) {
+    __pyx_v_i = __pyx_t_2;
+
 104: 
+
+105: 		if i == x:
+
    __pyx_t_1 = ((__pyx_v_i == __pyx_v_x) != 0);
+    if (__pyx_t_1) {
+/* … */
+      goto __pyx_L11;
+    }
+
+106: 			t[(x+1) % 3] *= efx(ia[x], ja[x] , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb )
+
      __pyx_t_8 = ((__pyx_v_x + 1) % 3);
+      __pyx_t_4.__pyx_n = 4;
+      __pyx_t_4.n = (__pyx_v_n[__pyx_v_x]);
+      __pyx_t_4.x = ((__pyx_v_ir[__pyx_v_x]) - (__pyx_v_origin[__pyx_v_x]));
+      __pyx_t_4.p = __pyx_v_pa;
+      __pyx_t_4.s = __pyx_v_pb;
+      __pyx_t_3 = __pyx_f_7ocypete_efx((__pyx_v_ia[__pyx_v_x]), (__pyx_v_ja[__pyx_v_x]), 0, ((__pyx_v_ir[__pyx_v_x]) - (__pyx_v_jr[__pyx_v_x])), __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+      (__pyx_v_t[__pyx_t_8]) = ((__pyx_v_t[__pyx_t_8]) * __pyx_t_3);
+
+107: 			t[(x+2) % 3] *= efx(ia[x], ja[x] , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb )
+
      __pyx_t_8 = ((__pyx_v_x + 2) % 3);
+      __pyx_t_4.__pyx_n = 4;
+      __pyx_t_4.n = (__pyx_v_n[__pyx_v_x]);
+      __pyx_t_4.x = ((__pyx_v_ir[__pyx_v_x]) - (__pyx_v_origin[__pyx_v_x]));
+      __pyx_t_4.p = __pyx_v_pa;
+      __pyx_t_4.s = __pyx_v_pb;
+      __pyx_t_3 = __pyx_f_7ocypete_efx((__pyx_v_ia[__pyx_v_x]), (__pyx_v_ja[__pyx_v_x]), 0, ((__pyx_v_ir[__pyx_v_x]) - (__pyx_v_jr[__pyx_v_x])), __pyx_v_ie, __pyx_v_je, &__pyx_t_4); 
+      (__pyx_v_t[__pyx_t_8]) = ((__pyx_v_t[__pyx_t_8]) * __pyx_t_3);
+
 108: 		else:
+
+109: 			t[(i+1) % 3] *= cye(ia[i], ja[i], 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i])
+
    /*else*/ {
+      __pyx_t_8 = ((__pyx_v_i + 1) % 3);
+      __pyx_t_7.__pyx_n = 2;
+      __pyx_t_7.n = (__pyx_v_n[__pyx_v_i]);
+      __pyx_t_7.x = ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_origin[__pyx_v_i]));
+      __pyx_t_3 = __pyx_f_7ocypete_cye((__pyx_v_ia[__pyx_v_i]), (__pyx_v_ja[__pyx_v_i]), 0, ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_jr[__pyx_v_i])), __pyx_v_ie, __pyx_v_je, &__pyx_t_7); 
+      (__pyx_v_t[__pyx_t_8]) = ((__pyx_v_t[__pyx_t_8]) * __pyx_t_3);
+
+110: 			t[(i+2) % 3] *= cye(ia[i], ja[i], 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i])
+
      __pyx_t_8 = ((__pyx_v_i + 2) % 3);
+      __pyx_t_7.__pyx_n = 2;
+      __pyx_t_7.n = (__pyx_v_n[__pyx_v_i]);
+      __pyx_t_7.x = ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_origin[__pyx_v_i]));
+      __pyx_t_3 = __pyx_f_7ocypete_cye((__pyx_v_ia[__pyx_v_i]), (__pyx_v_ja[__pyx_v_i]), 0, ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_jr[__pyx_v_i])), __pyx_v_ie, __pyx_v_je, &__pyx_t_7); 
+      (__pyx_v_t[__pyx_t_8]) = ((__pyx_v_t[__pyx_t_8]) * __pyx_t_3);
+    }
+    __pyx_L11:;
+  }
+
 111: 
+
+112: 	return (t[0] + t[1] + t[2]) * pow(pi/(ie+je), 1.5)
+
  __pyx_r = ((((__pyx_v_t[0]) + (__pyx_v_t[1])) + (__pyx_v_t[2])) * pow((__pyx_v_7ocypete_pi / (__pyx_v_ie + __pyx_v_je)), 1.5));
+  goto __pyx_L0;
+
 113: 
+
+114: cdef double boys(double m,double T):
+
static double __pyx_f_7ocypete_boys(double __pyx_v_m, double __pyx_v_T) {
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("boys", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+115: 	return hyp1f1(m+0.5,m+1.5,-T)/(2.0*m+1.0)
+
  __pyx_r = (__pyx_fuse_1__pyx_f_5scipy_7special_14cython_special_hyp1f1((__pyx_v_m + 0.5), (__pyx_v_m + 1.5), (-__pyx_v_T), 0) / ((2.0 * __pyx_v_m) + 1.0));
+  goto __pyx_L0;
+
 116: 
+
+117: cdef double clmb(int l, int m, int n, int bf, double p, double r0, double r1, double r2):
+
static double __pyx_f_7ocypete_clmb(int __pyx_v_l, int __pyx_v_m, int __pyx_v_n, int __pyx_v_bf, double __pyx_v_p, double __pyx_v_r0, double __pyx_v_r1, double __pyx_v_r2) {
+  double __pyx_v_t;
+  double __pyx_v_s;
+  double __pyx_v_nm;
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("clmb", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 118: 
+
 119: 	cdef double t, s, nm
+
+120: 	nm = sqrt(r0*r0 + r1*r1 + r2*r2)
+
  __pyx_v_nm = sqrt((((__pyx_v_r0 * __pyx_v_r0) + (__pyx_v_r1 * __pyx_v_r1)) + (__pyx_v_r2 * __pyx_v_r2)));
+
+121: 	t = p * nm * nm
+
  __pyx_v_t = ((__pyx_v_p * __pyx_v_nm) * __pyx_v_nm);
+
 122: 
+
+123: 	s = 0.0
+
  __pyx_v_s = 0.0;
+
+124: 	if (l+m+n)  == 0:
+
  __pyx_t_1 = ((((__pyx_v_l + __pyx_v_m) + __pyx_v_n) == 0) != 0);
+  if (__pyx_t_1) {
+/* … */
+    goto __pyx_L3;
+  }
+
+125: 		s += pow(-2*p, bf) * boys(bf, t)
+
    __pyx_v_s = (__pyx_v_s + (pow((-2.0 * __pyx_v_p), __pyx_v_bf) * __pyx_f_7ocypete_boys(__pyx_v_bf, __pyx_v_t)));
+
+126: 	elif (l+m) == 0:
+
  __pyx_t_1 = (((__pyx_v_l + __pyx_v_m) == 0) != 0);
+  if (__pyx_t_1) {
+/* … */
+    goto __pyx_L3;
+  }
+
+127: 		if n > 1:
+
    __pyx_t_1 = ((__pyx_v_n > 1) != 0);
+    if (__pyx_t_1) {
+/* … */
+    }
+
+128: 			s +=(n-1) * clmb(l,m,n-2,bf+1,p,r0,r1,r2)
+
      __pyx_v_s = (__pyx_v_s + ((__pyx_v_n - 1) * __pyx_f_7ocypete_clmb(__pyx_v_l, __pyx_v_m, (__pyx_v_n - 2), (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+
+129: 		s += r2 * clmb(l,m,n-1,bf+1,p,r0,r1,r2)
+
    __pyx_v_s = (__pyx_v_s + (__pyx_v_r2 * __pyx_f_7ocypete_clmb(__pyx_v_l, __pyx_v_m, (__pyx_v_n - 1), (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+
+130: 	elif l == 0:
+
  __pyx_t_1 = ((__pyx_v_l == 0) != 0);
+  if (__pyx_t_1) {
+/* … */
+    goto __pyx_L3;
+  }
+
+131: 		if m > 1:
+
    __pyx_t_1 = ((__pyx_v_m > 1) != 0);
+    if (__pyx_t_1) {
+/* … */
+    }
+
+132: 			s +=(m-1) * clmb(l,m-2,n,bf+1,p,r0,r1,r2)
+
      __pyx_v_s = (__pyx_v_s + ((__pyx_v_m - 1) * __pyx_f_7ocypete_clmb(__pyx_v_l, (__pyx_v_m - 2), __pyx_v_n, (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+
+133: 		s += r1 * clmb(l,m-1,n,bf+1,p,r0,r1,r2)
+
    __pyx_v_s = (__pyx_v_s + (__pyx_v_r1 * __pyx_f_7ocypete_clmb(__pyx_v_l, (__pyx_v_m - 1), __pyx_v_n, (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+
 134: 	else:
+
+135: 		if l > 1:
+
  /*else*/ {
+    __pyx_t_1 = ((__pyx_v_l > 1) != 0);
+    if (__pyx_t_1) {
+/* … */
+    }
+
+136: 			s +=(l-1) * clmb(l-2,m,n,bf+1,p,r0,r1,r2)
+
      __pyx_v_s = (__pyx_v_s + ((__pyx_v_l - 1) * __pyx_f_7ocypete_clmb((__pyx_v_l - 2), __pyx_v_m, __pyx_v_n, (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+
+137: 		s += r0 * clmb(l-1,m,n,bf+1,p,r0,r1,r2)
+
    __pyx_v_s = (__pyx_v_s + (__pyx_v_r0 * __pyx_f_7ocypete_clmb((__pyx_v_l - 1), __pyx_v_m, __pyx_v_n, (__pyx_v_bf + 1), __pyx_v_p, __pyx_v_r0, __pyx_v_r1, __pyx_v_r2)));
+  }
+  __pyx_L3:;
+
 138: 
+
+139: 	return s
+
  __pyx_r = __pyx_v_s;
+  goto __pyx_L0;
+
 140: 
+
+141: cdef double clmbsfx(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, \
+
static double __pyx_f_7ocypete_clmbsfx(int *__pyx_v_ia, int *__pyx_v_ja, double __pyx_v_ie, double __pyx_v_je, double *__pyx_v_ir, double *__pyx_v_jr, __Pyx_memviewslice __pyx_v_nucleus, int *__pyx_v_n, CYTHON_UNUSED double *__pyx_v_origin, int __pyx_v_x, int __pyx_v_center) {
+  double __pyx_v_p;
+  double __pyx_v_q[3];
+  double __pyx_v_r[3];
+  int __pyx_v_i;
+  int __pyx_v_mu;
+  int __pyx_v_nu;
+  int __pyx_v_vu;
+  int __pyx_v_pa;
+  int __pyx_v_pb;
+  int __pyx_v_tau[3];
+  double __pyx_v_sum;
+  double __pyx_v_val;
+  int __pyx_v_xi[3];
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("clmbsfx", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 142:                double[:] nucleus, int[3] n, double[3] origin, int x, int center):
+
 143: 	#generalised coulomb derivatives dV(ab^(0,0,0))/dx terms
+
 144: 
+
 145: 	cdef:
+
+146: 		double p = ie + je
+
  __pyx_v_p = (__pyx_v_ie + __pyx_v_je);
+
 147: 		double[3] q, r
+
 148: 		int i, mu, nu, vu, pa, pb
+
 149: 		int tau[3]
+
 150: 		double sum, val
+
 151: 		int[3] xi
+
 152: 
+
+153: 	for i in range(0, 3):
+
  for (__pyx_t_1 = 0; __pyx_t_1 < 3; __pyx_t_1+=1) {
+    __pyx_v_i = __pyx_t_1;
+
+154: 		q[i] = (ie*ir[i] + je*jr[i])/p
+
    (__pyx_v_q[__pyx_v_i]) = (((__pyx_v_ie * (__pyx_v_ir[__pyx_v_i])) + (__pyx_v_je * (__pyx_v_jr[__pyx_v_i]))) / __pyx_v_p);
+
+155: 		tau[i] = ia[i] + ja[i] + n[i] + 1
+
    (__pyx_v_tau[__pyx_v_i]) = ((((__pyx_v_ia[__pyx_v_i]) + (__pyx_v_ja[__pyx_v_i])) + (__pyx_v_n[__pyx_v_i])) + 1);
+
+156: 		r[i] = q[i] - nucleus[i]
+
    __pyx_t_2 = __pyx_v_i;
+    (__pyx_v_r[__pyx_v_i]) = ((__pyx_v_q[__pyx_v_i]) - (*((double *) ( /* dim=0 */ (__pyx_v_nucleus.data + __pyx_t_2 * __pyx_v_nucleus.strides[0]) ))));
+  }
+
 157: 
+
+158: 	tau[x] += 1
+
  __pyx_t_1 = __pyx_v_x;
+  (__pyx_v_tau[__pyx_t_1]) = ((__pyx_v_tau[__pyx_t_1]) + 1);
+
 159: 
+
+160: 	pa = 0
+
  __pyx_v_pa = 0;
+
+161: 	if center == 0:
+
  __pyx_t_3 = ((__pyx_v_center == 0) != 0);
+  if (__pyx_t_3) {
+/* … */
+  }
+
+162: 		pa = 1
+
    __pyx_v_pa = 1;
+
+163: 	pb = (pa+1) % 2
+
  __pyx_v_pb = ((__pyx_v_pa + 1) % 2);
+
 164: 
+
+165: 	sum = 0.0
+
  __pyx_v_sum = 0.0;
+
+166: 	val = 1.0
+
  __pyx_v_val = 1.0;
+
 167: 
+
+168: 	for mu in range(0, tau[0]):
+
  __pyx_t_1 = (__pyx_v_tau[0]);
+  __pyx_t_4 = __pyx_t_1;
+  for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
+    __pyx_v_mu = __pyx_t_5;
+
+169: 		for nu in range(0, tau[1]):
+
    __pyx_t_6 = (__pyx_v_tau[1]);
+    __pyx_t_7 = __pyx_t_6;
+    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
+      __pyx_v_nu = __pyx_t_8;
+
+170: 			for vu in range(0, tau[2]):
+
      __pyx_t_9 = (__pyx_v_tau[2]);
+      __pyx_t_10 = __pyx_t_9;
+      for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
+        __pyx_v_vu = __pyx_t_11;
+
+171: 				val = 1.0
+
        __pyx_v_val = 1.0;
+
+172: 				xi = [mu,nu,vu]
+
        __pyx_t_12[0] = __pyx_v_mu;
+        __pyx_t_12[1] = __pyx_v_nu;
+        __pyx_t_12[2] = __pyx_v_vu;
+        memcpy(&(__pyx_v_xi[0]), __pyx_t_12, sizeof(__pyx_v_xi[0]) * (3));
+
+173: 				for i in range(0, 3):
+
        for (__pyx_t_13 = 0; __pyx_t_13 < 3; __pyx_t_13+=1) {
+          __pyx_v_i = __pyx_t_13;
+
+174: 					if i == x:
+
          __pyx_t_3 = ((__pyx_v_i == __pyx_v_x) != 0);
+          if (__pyx_t_3) {
+/* … */
+            goto __pyx_L14;
+          }
+
+175: 						val *= efx(ia[x], ja[x], xi[x], ir[x]-jr[x], ie, je, n[x], ir[x]-nucleus[x], pa, pb)
+
            __pyx_t_2 = __pyx_v_x;
+            __pyx_t_15.__pyx_n = 4;
+            __pyx_t_15.n = (__pyx_v_n[__pyx_v_x]);
+            __pyx_t_15.x = ((__pyx_v_ir[__pyx_v_x]) - (*((double *) ( /* dim=0 */ (__pyx_v_nucleus.data + __pyx_t_2 * __pyx_v_nucleus.strides[0]) ))));
+            __pyx_t_15.p = __pyx_v_pa;
+            __pyx_t_15.s = __pyx_v_pb;
+            __pyx_t_14 = __pyx_f_7ocypete_efx((__pyx_v_ia[__pyx_v_x]), (__pyx_v_ja[__pyx_v_x]), (__pyx_v_xi[__pyx_v_x]), ((__pyx_v_ir[__pyx_v_x]) - (__pyx_v_jr[__pyx_v_x])), __pyx_v_ie, __pyx_v_je, &__pyx_t_15); 
+            __pyx_v_val = (__pyx_v_val * __pyx_t_14);
+
 176: 					else:
+
+177: 						val *=   cye(ia[i], ja[i], xi[i], ir[i]-jr[i], ie, je, n[i], ir[i]-nucleus[i])
+
          /*else*/ {
+            __pyx_t_2 = __pyx_v_i;
+            __pyx_t_16.__pyx_n = 2;
+            __pyx_t_16.n = (__pyx_v_n[__pyx_v_i]);
+            __pyx_t_16.x = ((__pyx_v_ir[__pyx_v_i]) - (*((double *) ( /* dim=0 */ (__pyx_v_nucleus.data + __pyx_t_2 * __pyx_v_nucleus.strides[0]) ))));
+            __pyx_t_14 = __pyx_f_7ocypete_cye((__pyx_v_ia[__pyx_v_i]), (__pyx_v_ja[__pyx_v_i]), (__pyx_v_xi[__pyx_v_i]), ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_jr[__pyx_v_i])), __pyx_v_ie, __pyx_v_je, &__pyx_t_16); 
+            __pyx_v_val = (__pyx_v_val * __pyx_t_14);
+          }
+          __pyx_L14:;
+        }
+
 178: 
+
+179: 				sum += val * clmb(mu,nu,vu, 0, p, r[0], r[1], r[2] )
+
        __pyx_v_sum = (__pyx_v_sum + (__pyx_v_val * __pyx_f_7ocypete_clmb(__pyx_v_mu, __pyx_v_nu, __pyx_v_vu, 0, __pyx_v_p, (__pyx_v_r[0]), (__pyx_v_r[1]), (__pyx_v_r[2]))));
+      }
+    }
+  }
+
 180: 
+
+181: 	return sum * 2 * pi/p
+
  __pyx_r = (((__pyx_v_sum * 2.0) * __pyx_v_7ocypete_pi) / __pyx_v_p);
+  goto __pyx_L0;
+
 182: 
+
+183: cdef double clmbhfx(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, \
+
static double __pyx_f_7ocypete_clmbhfx(int *__pyx_v_ia, int *__pyx_v_ja, double __pyx_v_ie, double __pyx_v_je, double *__pyx_v_ir, double *__pyx_v_jr, __Pyx_memviewslice __pyx_v_nucleus, int *__pyx_v_n, CYTHON_UNUSED double *__pyx_v_origin, int __pyx_v_x) {
+  double __pyx_v_p;
+  double __pyx_v_q[3];
+  double __pyx_v_r[3];
+  int __pyx_v_i;
+  int __pyx_v_mu;
+  int __pyx_v_nu;
+  int __pyx_v_vu;
+  int __pyx_v_tau[3];
+  double __pyx_v_sum;
+  double __pyx_v_val;
+  int __pyx_v_xi[3];
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("clmbhfx", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 184:                double[:] nucleus, int[3] n, double[3] origin, int x):
+
 185: 	#generalised coulomb derivatives dV(ab^(0,0,0))/dx terms
+
 186: 
+
 187: 	cdef:
+
+188: 		double p = ie + je
+
  __pyx_v_p = (__pyx_v_ie + __pyx_v_je);
+
 189: 		double[3] q, r
+
 190: 		int i, mu, nu, vu, pa, pb
+
 191: 		int[3] tau
+
 192: 		double sum, val
+
 193: 		int[3] xi
+
 194: 
+
+195: 	for i in range(0, 3):
+
  for (__pyx_t_1 = 0; __pyx_t_1 < 3; __pyx_t_1+=1) {
+    __pyx_v_i = __pyx_t_1;
+
+196: 		q[i] = (ie*ir[i] + je*jr[i])/p
+
    (__pyx_v_q[__pyx_v_i]) = (((__pyx_v_ie * (__pyx_v_ir[__pyx_v_i])) + (__pyx_v_je * (__pyx_v_jr[__pyx_v_i]))) / __pyx_v_p);
+
+197: 		tau[i] = ia[i] + ja[i] + n[i] + 1
+
    (__pyx_v_tau[__pyx_v_i]) = ((((__pyx_v_ia[__pyx_v_i]) + (__pyx_v_ja[__pyx_v_i])) + (__pyx_v_n[__pyx_v_i])) + 1);
+
+198: 		r[i] = q[i] - nucleus[i]
+
    __pyx_t_2 = __pyx_v_i;
+    (__pyx_v_r[__pyx_v_i]) = ((__pyx_v_q[__pyx_v_i]) - (*((double *) ( /* dim=0 */ (__pyx_v_nucleus.data + __pyx_t_2 * __pyx_v_nucleus.strides[0]) ))));
+  }
+
 199: 
+
+200: 	sum = 0.0
+
  __pyx_v_sum = 0.0;
+
+201: 	val = 1.0
+
  __pyx_v_val = 1.0;
+
 202: 
+
+203: 	for mu in range(0, tau[0]):
+
  __pyx_t_1 = (__pyx_v_tau[0]);
+  __pyx_t_3 = __pyx_t_1;
+  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
+    __pyx_v_mu = __pyx_t_4;
+
+204: 		for nu in range(0, tau[1]):
+
    __pyx_t_5 = (__pyx_v_tau[1]);
+    __pyx_t_6 = __pyx_t_5;
+    for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
+      __pyx_v_nu = __pyx_t_7;
+
+205: 			for vu in range(0, tau[2]):
+
      __pyx_t_8 = (__pyx_v_tau[2]);
+      __pyx_t_9 = __pyx_t_8;
+      for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
+        __pyx_v_vu = __pyx_t_10;
+
+206: 				val = 1.0
+
        __pyx_v_val = 1.0;
+
+207: 				xi = [mu,nu,vu]
+
        __pyx_t_11[0] = __pyx_v_mu;
+        __pyx_t_11[1] = __pyx_v_nu;
+        __pyx_t_11[2] = __pyx_v_vu;
+        memcpy(&(__pyx_v_xi[0]), __pyx_t_11, sizeof(__pyx_v_xi[0]) * (3));
+
+208: 				for i in range(0, 3):
+
        for (__pyx_t_12 = 0; __pyx_t_12 < 3; __pyx_t_12+=1) {
+          __pyx_v_i = __pyx_t_12;
+
+209: 					val *=   cye(ia[i], ja[i], xi[i], ir[i]-jr[i], ie, je, n[i], ir[i]-nucleus[i])
+
          __pyx_t_2 = __pyx_v_i;
+          __pyx_t_14.__pyx_n = 2;
+          __pyx_t_14.n = (__pyx_v_n[__pyx_v_i]);
+          __pyx_t_14.x = ((__pyx_v_ir[__pyx_v_i]) - (*((double *) ( /* dim=0 */ (__pyx_v_nucleus.data + __pyx_t_2 * __pyx_v_nucleus.strides[0]) ))));
+          __pyx_t_13 = __pyx_f_7ocypete_cye((__pyx_v_ia[__pyx_v_i]), (__pyx_v_ja[__pyx_v_i]), (__pyx_v_xi[__pyx_v_i]), ((__pyx_v_ir[__pyx_v_i]) - (__pyx_v_jr[__pyx_v_i])), __pyx_v_ie, __pyx_v_je, &__pyx_t_14); 
+          __pyx_v_val = (__pyx_v_val * __pyx_t_13);
+        }
+
 210: 
+
+211: 				xi[x] += 1
+
        __pyx_t_12 = __pyx_v_x;
+        (__pyx_v_xi[__pyx_t_12]) = ((__pyx_v_xi[__pyx_t_12]) + 1);
+
 212: 
+
+213: 				sum -= val * clmb(xi[0],xi[1],xi[2], 0, p, r[0], r[1], r[2] )
+
        __pyx_v_sum = (__pyx_v_sum - (__pyx_v_val * __pyx_f_7ocypete_clmb((__pyx_v_xi[0]), (__pyx_v_xi[1]), (__pyx_v_xi[2]), 0, __pyx_v_p, (__pyx_v_r[0]), (__pyx_v_r[1]), (__pyx_v_r[2]))));
+      }
+    }
+  }
+
 214: 
+
+215: 	return sum * 2 * pi/p
+
  __pyx_r = (((__pyx_v_sum * 2.0) * __pyx_v_7ocypete_pi) / __pyx_v_p);
+  goto __pyx_L0;
+
 216: 
+
+217: cdef double teifx(short[:] ia, short[:] ja, short[:] ka, short[:] la, double ie, double je, double ke, double le, \
+
static double __pyx_f_7ocypete_teifx(__Pyx_memviewslice __pyx_v_ia, __Pyx_memviewslice __pyx_v_ja, __Pyx_memviewslice __pyx_v_ka, __Pyx_memviewslice __pyx_v_la, double __pyx_v_ie, double __pyx_v_je, double __pyx_v_ke, double __pyx_v_le, __Pyx_memviewslice __pyx_v_ir, __Pyx_memviewslice __pyx_v_jr, __Pyx_memviewslice __pyx_v_kr, __Pyx_memviewslice __pyx_v_lr, int *__pyx_v_ra, int *__pyx_v_rb, double *__pyx_v_origin, int __pyx_v_x, int __pyx_v_center) {
+  double __pyx_v_p;
+  double __pyx_v_q;
+  double __pyx_v_rho;
+  double __pyx_v_P[3];
+  double __pyx_v_Q[3];
+  double __pyx_v_r[3];
+  int __pyx_v_i;
+  int __pyx_v_pa;
+  int __pyx_v_pb;
+  int __pyx_v_mu;
+  int __pyx_v_nu;
+  int __pyx_v_vu;
+  int __pyx_v_psi;
+  int __pyx_v_phi;
+  int __pyx_v_chi;
+  int __pyx_v_xia[3];
+  int __pyx_v_xib[3];
+  int __pyx_v_tau[3];
+  int __pyx_v_sigma[3];
+  double __pyx_v_val;
+  double __pyx_v_term;
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("teifx", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 218: 	              double[:] ir, double[:] jr, double[:] kr, double[:] lr, int[3] ra, int[3] rb, double[3] origin, int x, int center):
+
 219: 
+
 220: 	cdef:
+
+221: 		double p = ie + je
+
  __pyx_v_p = (__pyx_v_ie + __pyx_v_je);
+
+222: 		double q = ke + le
+
  __pyx_v_q = (__pyx_v_ke + __pyx_v_le);
+
+223: 		double rho = p*q/(p + q)
+
  __pyx_v_rho = ((__pyx_v_p * __pyx_v_q) / (__pyx_v_p + __pyx_v_q));
+
 224: 		double[3] P, Q, r
+
 225: 		int i, pa, pb, mu, nu, vu, psi, phi, chi
+
 226: 		int[3] xia, xib, tau, sigma
+
+227: 		double val = 0.0
+
  __pyx_v_val = 0.0;
+
 228: 		double term
+
 229: 
+
+230: 	for i in range(0, 3):
+
  for (__pyx_t_1 = 0; __pyx_t_1 < 3; __pyx_t_1+=1) {
+    __pyx_v_i = __pyx_t_1;
+
+231: 		P[i] = (ie*ir[i] + je*jr[i])/p
+
    __pyx_t_2 = __pyx_v_i;
+    __pyx_t_3 = __pyx_v_i;
+    (__pyx_v_P[__pyx_v_i]) = (((__pyx_v_ie * (*((double *) ( /* dim=0 */ (__pyx_v_ir.data + __pyx_t_2 * __pyx_v_ir.strides[0]) )))) + (__pyx_v_je * (*((double *) ( /* dim=0 */ (__pyx_v_jr.data + __pyx_t_3 * __pyx_v_jr.strides[0]) ))))) / __pyx_v_p);
+
+232: 		Q[i] = (ke*kr[i] + le*lr[i])/q
+
    __pyx_t_3 = __pyx_v_i;
+    __pyx_t_2 = __pyx_v_i;
+    (__pyx_v_Q[__pyx_v_i]) = (((__pyx_v_ke * (*((double *) ( /* dim=0 */ (__pyx_v_kr.data + __pyx_t_3 * __pyx_v_kr.strides[0]) )))) + (__pyx_v_le * (*((double *) ( /* dim=0 */ (__pyx_v_lr.data + __pyx_t_2 * __pyx_v_lr.strides[0]) ))))) / __pyx_v_q);
+
+233: 		r[i] = P[i] - Q[i]
+
    (__pyx_v_r[__pyx_v_i]) = ((__pyx_v_P[__pyx_v_i]) - (__pyx_v_Q[__pyx_v_i]));
+
 234: 
+
+235: 		tau[i] = ia[i] + ja[i] + 1 + ra[i]
+
    __pyx_t_2 = __pyx_v_i;
+    __pyx_t_3 = __pyx_v_i;
+    (__pyx_v_tau[__pyx_v_i]) = ((((*((short *) ( /* dim=0 */ (__pyx_v_ia.data + __pyx_t_2 * __pyx_v_ia.strides[0]) ))) + (*((short *) ( /* dim=0 */ (__pyx_v_ja.data + __pyx_t_3 * __pyx_v_ja.strides[0]) )))) + 1) + (__pyx_v_ra[__pyx_v_i]));
+
+236: 		sigma[i] = ka[i] + la[i] + 1 + rb[i]
+
    __pyx_t_3 = __pyx_v_i;
+    __pyx_t_2 = __pyx_v_i;
+    (__pyx_v_sigma[__pyx_v_i]) = ((((*((short *) ( /* dim=0 */ (__pyx_v_ka.data + __pyx_t_3 * __pyx_v_ka.strides[0]) ))) + (*((short *) ( /* dim=0 */ (__pyx_v_la.data + __pyx_t_2 * __pyx_v_la.strides[0]) )))) + 1) + (__pyx_v_rb[__pyx_v_i]));
+  }
+
 237: 
+
+238: 	if (center == 0) or (center == 1):
+
  switch (__pyx_v_center) {
+    case 0:
+    case 1:
+/* … */
+    break;
+    default:
+
+239: 		tau[x] += 1
+
    __pyx_t_1 = __pyx_v_x;
+    (__pyx_v_tau[__pyx_t_1]) = ((__pyx_v_tau[__pyx_t_1]) + 1);
+
 240: 	else:
+
+241: 		sigma[x] += 1
+
    __pyx_t_1 = __pyx_v_x;
+    (__pyx_v_sigma[__pyx_t_1]) = ((__pyx_v_sigma[__pyx_t_1]) + 1);
+    break;
+  }
+
 242: 
+
+243: 	pa = 0
+
  __pyx_v_pa = 0;
+
+244: 	if (center == 0) or (center == 2):
+
  switch (__pyx_v_center) {
+    case 0:
+    case 2:
+/* … */
+    break;
+    default: break;
+  }
+
+245: 		pa = 1
+
    __pyx_v_pa = 1;
+
+246: 	pb = (pa+1) % 2
+
  __pyx_v_pb = ((__pyx_v_pa + 1) % 2);
+
 247: 
+
+248: 	for mu in range(tau[0]):
+
  __pyx_t_1 = (__pyx_v_tau[0]);
+  __pyx_t_4 = __pyx_t_1;
+  for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
+    __pyx_v_mu = __pyx_t_5;
+
+249: 		for nu in range(tau[1]):
+
    __pyx_t_6 = (__pyx_v_tau[1]);
+    __pyx_t_7 = __pyx_t_6;
+    for (__pyx_t_8 = 0; __pyx_t_8 < __pyx_t_7; __pyx_t_8+=1) {
+      __pyx_v_nu = __pyx_t_8;
+
+250: 			for vu in range(tau[2]):
+
      __pyx_t_9 = (__pyx_v_tau[2]);
+      __pyx_t_10 = __pyx_t_9;
+      for (__pyx_t_11 = 0; __pyx_t_11 < __pyx_t_10; __pyx_t_11+=1) {
+        __pyx_v_vu = __pyx_t_11;
+
+251: 				for psi in range(sigma[0]):
+
        __pyx_t_12 = (__pyx_v_sigma[0]);
+        __pyx_t_13 = __pyx_t_12;
+        for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
+          __pyx_v_psi = __pyx_t_14;
+
+252: 					for phi in range(sigma[1]):
+
          __pyx_t_15 = (__pyx_v_sigma[1]);
+          __pyx_t_16 = __pyx_t_15;
+          for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
+            __pyx_v_phi = __pyx_t_17;
+
+253: 						for chi in range(sigma[2]):
+
            __pyx_t_18 = (__pyx_v_sigma[2]);
+            __pyx_t_19 = __pyx_t_18;
+            for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_19; __pyx_t_20+=1) {
+              __pyx_v_chi = __pyx_t_20;
+
+254: 							xia = [mu, nu, vu]
+
              __pyx_t_21[0] = __pyx_v_mu;
+              __pyx_t_21[1] = __pyx_v_nu;
+              __pyx_t_21[2] = __pyx_v_vu;
+              memcpy(&(__pyx_v_xia[0]), __pyx_t_21, sizeof(__pyx_v_xia[0]) * (3));
+
+255: 							xib = [psi, phi, chi]
+
              __pyx_t_22[0] = __pyx_v_psi;
+              __pyx_t_22[1] = __pyx_v_phi;
+              __pyx_t_22[2] = __pyx_v_chi;
+              memcpy(&(__pyx_v_xib[0]), __pyx_t_22, sizeof(__pyx_v_xib[0]) * (3));
+
+256: 							term = 1.0
+
              __pyx_v_term = 1.0;
+
+257: 							for i in range(0, 3):
+
              for (__pyx_t_23 = 0; __pyx_t_23 < 3; __pyx_t_23+=1) {
+                __pyx_v_i = __pyx_t_23;
+
+258: 								if (i == x):
+
                __pyx_t_24 = ((__pyx_v_i == __pyx_v_x) != 0);
+                if (__pyx_t_24) {
+/* … */
+                  goto __pyx_L19;
+                }
+
+259: 									if (center == 0 or center == 1):
+
                  switch (__pyx_v_center) {
+                    case 0:
+                    case 1:
+/* … */
+                    break;
+                    case 2:
+
+260: 										term *= efx(ia[x],ja[x],xia[x],ir[x]-jr[x],ie,je,ra[x],ir[x] - origin[x], pa, pb)
+
                    __pyx_t_2 = __pyx_v_x;
+                    __pyx_t_3 = __pyx_v_x;
+                    __pyx_t_25 = __pyx_v_x;
+                    __pyx_t_26 = __pyx_v_x;
+                    __pyx_t_27 = __pyx_v_x;
+                    __pyx_t_29.__pyx_n = 4;
+                    __pyx_t_29.n = (__pyx_v_ra[__pyx_v_x]);
+                    __pyx_t_29.x = ((*((double *) ( /* dim=0 */ (__pyx_v_ir.data + __pyx_t_27 * __pyx_v_ir.strides[0]) ))) - (__pyx_v_origin[__pyx_v_x]));
+                    __pyx_t_29.p = __pyx_v_pa;
+                    __pyx_t_29.s = __pyx_v_pb;
+                    __pyx_t_28 = __pyx_f_7ocypete_efx((*((short *) ( /* dim=0 */ (__pyx_v_ia.data + __pyx_t_2 * __pyx_v_ia.strides[0]) ))), (*((short *) ( /* dim=0 */ (__pyx_v_ja.data + __pyx_t_3 * __pyx_v_ja.strides[0]) ))), (__pyx_v_xia[__pyx_v_x]), ((*((double *) ( /* dim=0 */ (__pyx_v_ir.data + __pyx_t_25 * __pyx_v_ir.strides[0]) ))) - (*((double *) ( /* dim=0 */ (__pyx_v_jr.data + __pyx_t_26 * __pyx_v_jr.strides[0]) )))), __pyx_v_ie, __pyx_v_je, &__pyx_t_29); 
+                    __pyx_v_term = (__pyx_v_term * __pyx_t_28);
+
+261: 										term *= cye(ka[x],la[x],xib[x],kr[x]-lr[x],ke,le,rb[x],kr[x] - origin[x])
+
                    __pyx_t_27 = __pyx_v_x;
+                    __pyx_t_26 = __pyx_v_x;
+                    __pyx_t_25 = __pyx_v_x;
+                    __pyx_t_3 = __pyx_v_x;
+                    __pyx_t_2 = __pyx_v_x;
+                    __pyx_t_30.__pyx_n = 2;
+                    __pyx_t_30.n = (__pyx_v_rb[__pyx_v_x]);
+                    __pyx_t_30.x = ((*((double *) ( /* dim=0 */ (__pyx_v_kr.data + __pyx_t_2 * __pyx_v_kr.strides[0]) ))) - (__pyx_v_origin[__pyx_v_x]));
+                    __pyx_t_28 = __pyx_f_7ocypete_cye((*((short *) ( /* dim=0 */ (__pyx_v_ka.data + __pyx_t_27 * __pyx_v_ka.strides[0]) ))), (*((short *) ( /* dim=0 */ (__pyx_v_la.data + __pyx_t_26 * __pyx_v_la.strides[0]) ))), (__pyx_v_xib[__pyx_v_x]), ((*((double *) ( /* dim=0 */ (__pyx_v_kr.data + __pyx_t_25 * __pyx_v_kr.strides[0]) ))) - (*((double *) ( /* dim=0 */ (__pyx_v_lr.data + __pyx_t_3 * __pyx_v_lr.strides[0]) )))), __pyx_v_ke, __pyx_v_le, &__pyx_t_30); 
+                    __pyx_v_term = (__pyx_v_term * __pyx_t_28);
+
+262: 									elif (center == 2 or center == 3):
+
                    case 3:
+/* … */
+                    break;
+                    default: break;
+                  }
+
+263: 										term *= cye(ia[x],ja[x],xia[x],ir[x]-jr[x],ie,je,ra[x],ir[x] - origin[x])
+
                    __pyx_t_2 = __pyx_v_x;
+                    __pyx_t_3 = __pyx_v_x;
+                    __pyx_t_25 = __pyx_v_x;
+                    __pyx_t_26 = __pyx_v_x;
+                    __pyx_t_27 = __pyx_v_x;
+                    __pyx_t_30.__pyx_n = 2;
+                    __pyx_t_30.n = (__pyx_v_ra[__pyx_v_x]);
+                    __pyx_t_30.x = ((*((double *) ( /* dim=0 */ (__pyx_v_ir.data + __pyx_t_27 * __pyx_v_ir.strides[0]) ))) - (__pyx_v_origin[__pyx_v_x]));
+                    __pyx_t_28 = __pyx_f_7ocypete_cye((*((short *) ( /* dim=0 */ (__pyx_v_ia.data + __pyx_t_2 * __pyx_v_ia.strides[0]) ))), (*((short *) ( /* dim=0 */ (__pyx_v_ja.data + __pyx_t_3 * __pyx_v_ja.strides[0]) ))), (__pyx_v_xia[__pyx_v_x]), ((*((double *) ( /* dim=0 */ (__pyx_v_ir.data + __pyx_t_25 * __pyx_v_ir.strides[0]) ))) - (*((double *) ( /* dim=0 */ (__pyx_v_jr.data + __pyx_t_26 * __pyx_v_jr.strides[0]) )))), __pyx_v_ie, __pyx_v_je, &__pyx_t_30); 
+                    __pyx_v_term = (__pyx_v_term * __pyx_t_28);
+
+264: 										term *= efx(ka[x],la[x],xib[x],kr[x]-lr[x],ke,le,rb[x],kr[x] - origin[x], pa, pb)
+
                    __pyx_t_27 = __pyx_v_x;
+                    __pyx_t_26 = __pyx_v_x;
+                    __pyx_t_25 = __pyx_v_x;
+                    __pyx_t_3 = __pyx_v_x;
+                    __pyx_t_2 = __pyx_v_x;
+                    __pyx_t_29.__pyx_n = 4;
+                    __pyx_t_29.n = (__pyx_v_rb[__pyx_v_x]);
+                    __pyx_t_29.x = ((*((double *) ( /* dim=0 */ (__pyx_v_kr.data + __pyx_t_2 * __pyx_v_kr.strides[0]) ))) - (__pyx_v_origin[__pyx_v_x]));
+                    __pyx_t_29.p = __pyx_v_pa;
+                    __pyx_t_29.s = __pyx_v_pb;
+                    __pyx_t_28 = __pyx_f_7ocypete_efx((*((short *) ( /* dim=0 */ (__pyx_v_ka.data + __pyx_t_27 * __pyx_v_ka.strides[0]) ))), (*((short *) ( /* dim=0 */ (__pyx_v_la.data + __pyx_t_26 * __pyx_v_la.strides[0]) ))), (__pyx_v_xib[__pyx_v_x]), ((*((double *) ( /* dim=0 */ (__pyx_v_kr.data + __pyx_t_25 * __pyx_v_kr.strides[0]) ))) - (*((double *) ( /* dim=0 */ (__pyx_v_lr.data + __pyx_t_3 * __pyx_v_lr.strides[0]) )))), __pyx_v_ke, __pyx_v_le, &__pyx_t_29); 
+                    __pyx_v_term = (__pyx_v_term * __pyx_t_28);
+
 265: 
+
 266: 								else:
+
+267: 									term *= cye(ia[i],ja[i],xia[i],ir[i]-jr[i],ie,je,ra[i],ir[i] - origin[i])
+
                /*else*/ {
+                  __pyx_t_2 = __pyx_v_i;
+                  __pyx_t_3 = __pyx_v_i;
+                  __pyx_t_25 = __pyx_v_i;
+                  __pyx_t_26 = __pyx_v_i;
+                  __pyx_t_27 = __pyx_v_i;
+                  __pyx_t_30.__pyx_n = 2;
+                  __pyx_t_30.n = (__pyx_v_ra[__pyx_v_i]);
+                  __pyx_t_30.x = ((*((double *) ( /* dim=0 */ (__pyx_v_ir.data + __pyx_t_27 * __pyx_v_ir.strides[0]) ))) - (__pyx_v_origin[__pyx_v_i]));
+                  __pyx_t_28 = __pyx_f_7ocypete_cye((*((short *) ( /* dim=0 */ (__pyx_v_ia.data + __pyx_t_2 * __pyx_v_ia.strides[0]) ))), (*((short *) ( /* dim=0 */ (__pyx_v_ja.data + __pyx_t_3 * __pyx_v_ja.strides[0]) ))), (__pyx_v_xia[__pyx_v_i]), ((*((double *) ( /* dim=0 */ (__pyx_v_ir.data + __pyx_t_25 * __pyx_v_ir.strides[0]) ))) - (*((double *) ( /* dim=0 */ (__pyx_v_jr.data + __pyx_t_26 * __pyx_v_jr.strides[0]) )))), __pyx_v_ie, __pyx_v_je, &__pyx_t_30); 
+                  __pyx_v_term = (__pyx_v_term * __pyx_t_28);
+
+268: 									term *= cye(ka[i],la[i],xib[i],kr[i]-lr[i],ke,le,rb[i],kr[i] - origin[i])
+
                  __pyx_t_27 = __pyx_v_i;
+                  __pyx_t_26 = __pyx_v_i;
+                  __pyx_t_25 = __pyx_v_i;
+                  __pyx_t_3 = __pyx_v_i;
+                  __pyx_t_2 = __pyx_v_i;
+                  __pyx_t_30.__pyx_n = 2;
+                  __pyx_t_30.n = (__pyx_v_rb[__pyx_v_i]);
+                  __pyx_t_30.x = ((*((double *) ( /* dim=0 */ (__pyx_v_kr.data + __pyx_t_2 * __pyx_v_kr.strides[0]) ))) - (__pyx_v_origin[__pyx_v_i]));
+                  __pyx_t_28 = __pyx_f_7ocypete_cye((*((short *) ( /* dim=0 */ (__pyx_v_ka.data + __pyx_t_27 * __pyx_v_ka.strides[0]) ))), (*((short *) ( /* dim=0 */ (__pyx_v_la.data + __pyx_t_26 * __pyx_v_la.strides[0]) ))), (__pyx_v_xib[__pyx_v_i]), ((*((double *) ( /* dim=0 */ (__pyx_v_kr.data + __pyx_t_25 * __pyx_v_kr.strides[0]) ))) - (*((double *) ( /* dim=0 */ (__pyx_v_lr.data + __pyx_t_3 * __pyx_v_lr.strides[0]) )))), __pyx_v_ke, __pyx_v_le, &__pyx_t_30); 
+                  __pyx_v_term = (__pyx_v_term * __pyx_t_28);
+                }
+                __pyx_L19:;
+              }
+
 269: 
+
+270: 							term *= pow(-1, (psi+phi+chi)) * clmb(mu+psi,nu+phi,vu+chi,0, rho,r[0], r[1], r[2])
+
              __pyx_v_term = (__pyx_v_term * (pow(-1.0, ((__pyx_v_psi + __pyx_v_phi) + __pyx_v_chi)) * __pyx_f_7ocypete_clmb((__pyx_v_mu + __pyx_v_psi), (__pyx_v_nu + __pyx_v_phi), (__pyx_v_vu + __pyx_v_chi), 0, __pyx_v_rho, (__pyx_v_r[0]), (__pyx_v_r[1]), (__pyx_v_r[2]))));
+
+271: 							val += term
+
              __pyx_v_val = (__pyx_v_val + __pyx_v_term);
+            }
+          }
+        }
+      }
+    }
+  }
+
 272: 
+
+273: 	return val*2*pow(pi,2.5)/(p*q*sqrt(p+q))
+
  __pyx_r = (((__pyx_v_val * 2.0) * pow(__pyx_v_7ocypete_pi, 2.5)) / ((__pyx_v_p * __pyx_v_q) * sqrt((__pyx_v_p + __pyx_v_q))));
+  goto __pyx_L0;
+
 274: 
+
 275: 
+
+276: cdef double erifx(short[:] ng, int p, int q, int r, int s, double[:,:] im, double[:,:] ic, double[:,:] ie, short[:,:] ia, double[:,:] io, \
+
static double __pyx_f_7ocypete_erifx(__Pyx_memviewslice __pyx_v_ng, int __pyx_v_p, int __pyx_v_q, int __pyx_v_r, int __pyx_v_s, __Pyx_memviewslice __pyx_v_im, __Pyx_memviewslice __pyx_v_ic, __Pyx_memviewslice __pyx_v_ie, __Pyx_memviewslice __pyx_v_ia, __Pyx_memviewslice __pyx_v_io, int __pyx_v_x, int __pyx_v_center) {
+  double __pyx_v_sum;
+  int __pyx_v_i;
+  int __pyx_v_j;
+  int __pyx_v_k;
+  int __pyx_v_l;
+  double __pyx_r;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("erifx", 0);
+/* … */
+  /* function exit code */
+  __pyx_L0:;
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 277: 	              int x, int center):
+
 278: 
+
 279: 	cdef:
+
+280: 		double sum = 0.0
+
  __pyx_v_sum = 0.0;
+
 281: 		int i, j, k, l
+
 282: 
+
+283: 	for i in range(0, ng[p]):
+
  __pyx_t_1 = __pyx_v_p;
+  __pyx_t_2 = (*((short *) ( /* dim=0 */ (__pyx_v_ng.data + __pyx_t_1 * __pyx_v_ng.strides[0]) )));
+  __pyx_t_3 = __pyx_t_2;
+  for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) {
+    __pyx_v_i = __pyx_t_4;
+
+284: 		for j in range(0, ng[q]):
+
    __pyx_t_1 = __pyx_v_q;
+    __pyx_t_5 = (*((short *) ( /* dim=0 */ (__pyx_v_ng.data + __pyx_t_1 * __pyx_v_ng.strides[0]) )));
+    __pyx_t_6 = __pyx_t_5;
+    for (__pyx_t_7 = 0; __pyx_t_7 < __pyx_t_6; __pyx_t_7+=1) {
+      __pyx_v_j = __pyx_t_7;
+
+285: 			for k in range(0, ng[r]):
+
      __pyx_t_1 = __pyx_v_r;
+      __pyx_t_8 = (*((short *) ( /* dim=0 */ (__pyx_v_ng.data + __pyx_t_1 * __pyx_v_ng.strides[0]) )));
+      __pyx_t_9 = __pyx_t_8;
+      for (__pyx_t_10 = 0; __pyx_t_10 < __pyx_t_9; __pyx_t_10+=1) {
+        __pyx_v_k = __pyx_t_10;
+
+286: 				for l in range(0, ng[s]):
+
        __pyx_t_1 = __pyx_v_s;
+        __pyx_t_11 = (*((short *) ( /* dim=0 */ (__pyx_v_ng.data + __pyx_t_1 * __pyx_v_ng.strides[0]) )));
+        __pyx_t_12 = __pyx_t_11;
+        for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
+          __pyx_v_l = __pyx_t_13;
+
+287: 					sum += im[p,i]*im[q,j]*im[r,k]*im[s,l] * ic[p,i]*ic[q,j]*ic[r,k]*ic[s,l] *   \
+
          __pyx_t_1 = __pyx_v_p;
+          __pyx_t_14 = __pyx_v_i;
+          __pyx_t_15 = __pyx_v_q;
+          __pyx_t_16 = __pyx_v_j;
+          __pyx_t_17 = __pyx_v_r;
+          __pyx_t_18 = __pyx_v_k;
+          __pyx_t_19 = __pyx_v_s;
+          __pyx_t_20 = __pyx_v_l;
+          __pyx_t_21 = __pyx_v_p;
+          __pyx_t_22 = __pyx_v_i;
+          __pyx_t_23 = __pyx_v_q;
+          __pyx_t_24 = __pyx_v_j;
+          __pyx_t_25 = __pyx_v_r;
+          __pyx_t_26 = __pyx_v_k;
+          __pyx_t_27 = __pyx_v_s;
+          __pyx_t_28 = __pyx_v_l;
+/* … */
+          __pyx_v_sum = (__pyx_v_sum + (((((((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_im.data + __pyx_t_1 * __pyx_v_im.strides[0]) ) + __pyx_t_14 * __pyx_v_im.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_im.data + __pyx_t_15 * __pyx_v_im.strides[0]) ) + __pyx_t_16 * __pyx_v_im.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_im.data + __pyx_t_17 * __pyx_v_im.strides[0]) ) + __pyx_t_18 * __pyx_v_im.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_im.data + __pyx_t_19 * __pyx_v_im.strides[0]) ) + __pyx_t_20 * __pyx_v_im.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ic.data + __pyx_t_21 * __pyx_v_ic.strides[0]) ) + __pyx_t_22 * __pyx_v_ic.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ic.data + __pyx_t_23 * __pyx_v_ic.strides[0]) ) + __pyx_t_24 * __pyx_v_ic.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ic.data + __pyx_t_25 * __pyx_v_ic.strides[0]) ) + __pyx_t_26 * __pyx_v_ic.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ic.data + __pyx_t_27 * __pyx_v_ic.strides[0]) ) + __pyx_t_28 * __pyx_v_ic.strides[1]) )))) * __pyx_f_7ocypete_teifx(__pyx_t_29, __pyx_t_30, __pyx_t_31, __pyx_t_32, (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ie.data + __pyx_t_33 * __pyx_v_ie.strides[0]) ) + __pyx_t_34 * __pyx_v_ie.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ie.data + __pyx_t_35 * __pyx_v_ie.strides[0]) ) + __pyx_t_36 * __pyx_v_ie.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ie.data + __pyx_t_37 * __pyx_v_ie.strides[0]) ) + __pyx_t_38 * __pyx_v_ie.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_ie.data + __pyx_t_39 * __pyx_v_ie.strides[0]) ) + __pyx_t_40 * __pyx_v_ie.strides[1]) ))), __pyx_t_41, __pyx_t_42, __pyx_t_43, __pyx_t_44, __pyx_t_45, __pyx_t_46, __pyx_t_47, __pyx_v_x, __pyx_v_center)));
+          __PYX_XDEC_MEMVIEW(&__pyx_t_29, 1);
+          __pyx_t_29.memview = NULL;
+          __pyx_t_29.data = NULL;
+          __PYX_XDEC_MEMVIEW(&__pyx_t_30, 1);
+          __pyx_t_30.memview = NULL;
+          __pyx_t_30.data = NULL;
+          __PYX_XDEC_MEMVIEW(&__pyx_t_31, 1);
+          __pyx_t_31.memview = NULL;
+          __pyx_t_31.data = NULL;
+          __PYX_XDEC_MEMVIEW(&__pyx_t_32, 1);
+          __pyx_t_32.memview = NULL;
+          __pyx_t_32.data = NULL;
+          __PYX_XDEC_MEMVIEW(&__pyx_t_41, 1);
+          __pyx_t_41.memview = NULL;
+          __pyx_t_41.data = NULL;
+          __PYX_XDEC_MEMVIEW(&__pyx_t_42, 1);
+          __pyx_t_42.memview = NULL;
+          __pyx_t_42.data = NULL;
+          __PYX_XDEC_MEMVIEW(&__pyx_t_43, 1);
+          __pyx_t_43.memview = NULL;
+          __pyx_t_43.data = NULL;
+          __PYX_XDEC_MEMVIEW(&__pyx_t_44, 1);
+          __pyx_t_44.memview = NULL;
+          __pyx_t_44.data = NULL;
+        }
+      }
+    }
+  }
+
+288: 					       teifx(ia[p], ia[q], ia[r], ia[s], ie[p,i], ie[q,j], ie[r,k], ie[s,l], \
+
          __pyx_t_29.data = __pyx_v_ia.data;
+          __pyx_t_29.memview = __pyx_v_ia.memview;
+          __PYX_INC_MEMVIEW(&__pyx_t_29, 0);
+          {
+    Py_ssize_t __pyx_tmp_idx = __pyx_v_p;
+    Py_ssize_t __pyx_tmp_stride = __pyx_v_ia.strides[0];
+        __pyx_t_29.data += __pyx_tmp_idx * __pyx_tmp_stride;
+}
+
+__pyx_t_29.shape[0] = __pyx_v_ia.shape[1];
+__pyx_t_29.strides[0] = __pyx_v_ia.strides[1];
+    __pyx_t_29.suboffsets[0] = -1;
+
+__pyx_t_30.data = __pyx_v_ia.data;
+          __pyx_t_30.memview = __pyx_v_ia.memview;
+          __PYX_INC_MEMVIEW(&__pyx_t_30, 0);
+          {
+    Py_ssize_t __pyx_tmp_idx = __pyx_v_q;
+    Py_ssize_t __pyx_tmp_stride = __pyx_v_ia.strides[0];
+        __pyx_t_30.data += __pyx_tmp_idx * __pyx_tmp_stride;
+}
+
+__pyx_t_30.shape[0] = __pyx_v_ia.shape[1];
+__pyx_t_30.strides[0] = __pyx_v_ia.strides[1];
+    __pyx_t_30.suboffsets[0] = -1;
+
+__pyx_t_31.data = __pyx_v_ia.data;
+          __pyx_t_31.memview = __pyx_v_ia.memview;
+          __PYX_INC_MEMVIEW(&__pyx_t_31, 0);
+          {
+    Py_ssize_t __pyx_tmp_idx = __pyx_v_r;
+    Py_ssize_t __pyx_tmp_stride = __pyx_v_ia.strides[0];
+        __pyx_t_31.data += __pyx_tmp_idx * __pyx_tmp_stride;
+}
+
+__pyx_t_31.shape[0] = __pyx_v_ia.shape[1];
+__pyx_t_31.strides[0] = __pyx_v_ia.strides[1];
+    __pyx_t_31.suboffsets[0] = -1;
+
+__pyx_t_32.data = __pyx_v_ia.data;
+          __pyx_t_32.memview = __pyx_v_ia.memview;
+          __PYX_INC_MEMVIEW(&__pyx_t_32, 0);
+          {
+    Py_ssize_t __pyx_tmp_idx = __pyx_v_s;
+    Py_ssize_t __pyx_tmp_stride = __pyx_v_ia.strides[0];
+        __pyx_t_32.data += __pyx_tmp_idx * __pyx_tmp_stride;
+}
+
+__pyx_t_32.shape[0] = __pyx_v_ia.shape[1];
+__pyx_t_32.strides[0] = __pyx_v_ia.strides[1];
+    __pyx_t_32.suboffsets[0] = -1;
+
+__pyx_t_33 = __pyx_v_p;
+          __pyx_t_34 = __pyx_v_i;
+          __pyx_t_35 = __pyx_v_q;
+          __pyx_t_36 = __pyx_v_j;
+          __pyx_t_37 = __pyx_v_r;
+          __pyx_t_38 = __pyx_v_k;
+          __pyx_t_39 = __pyx_v_s;
+          __pyx_t_40 = __pyx_v_l;
+
+289: 					             io[p], io[q], io[r], io[s], [0,0,0], [0,0,0], [0,0,0], x, center)
+
          __pyx_t_41.data = __pyx_v_io.data;
+          __pyx_t_41.memview = __pyx_v_io.memview;
+          __PYX_INC_MEMVIEW(&__pyx_t_41, 0);
+          {
+    Py_ssize_t __pyx_tmp_idx = __pyx_v_p;
+    Py_ssize_t __pyx_tmp_stride = __pyx_v_io.strides[0];
+        __pyx_t_41.data += __pyx_tmp_idx * __pyx_tmp_stride;
+}
+
+__pyx_t_41.shape[0] = __pyx_v_io.shape[1];
+__pyx_t_41.strides[0] = __pyx_v_io.strides[1];
+    __pyx_t_41.suboffsets[0] = -1;
+
+__pyx_t_42.data = __pyx_v_io.data;
+          __pyx_t_42.memview = __pyx_v_io.memview;
+          __PYX_INC_MEMVIEW(&__pyx_t_42, 0);
+          {
+    Py_ssize_t __pyx_tmp_idx = __pyx_v_q;
+    Py_ssize_t __pyx_tmp_stride = __pyx_v_io.strides[0];
+        __pyx_t_42.data += __pyx_tmp_idx * __pyx_tmp_stride;
+}
+
+__pyx_t_42.shape[0] = __pyx_v_io.shape[1];
+__pyx_t_42.strides[0] = __pyx_v_io.strides[1];
+    __pyx_t_42.suboffsets[0] = -1;
+
+__pyx_t_43.data = __pyx_v_io.data;
+          __pyx_t_43.memview = __pyx_v_io.memview;
+          __PYX_INC_MEMVIEW(&__pyx_t_43, 0);
+          {
+    Py_ssize_t __pyx_tmp_idx = __pyx_v_r;
+    Py_ssize_t __pyx_tmp_stride = __pyx_v_io.strides[0];
+        __pyx_t_43.data += __pyx_tmp_idx * __pyx_tmp_stride;
+}
+
+__pyx_t_43.shape[0] = __pyx_v_io.shape[1];
+__pyx_t_43.strides[0] = __pyx_v_io.strides[1];
+    __pyx_t_43.suboffsets[0] = -1;
+
+__pyx_t_44.data = __pyx_v_io.data;
+          __pyx_t_44.memview = __pyx_v_io.memview;
+          __PYX_INC_MEMVIEW(&__pyx_t_44, 0);
+          {
+    Py_ssize_t __pyx_tmp_idx = __pyx_v_s;
+    Py_ssize_t __pyx_tmp_stride = __pyx_v_io.strides[0];
+        __pyx_t_44.data += __pyx_tmp_idx * __pyx_tmp_stride;
+}
+
+__pyx_t_44.shape[0] = __pyx_v_io.shape[1];
+__pyx_t_44.strides[0] = __pyx_v_io.strides[1];
+    __pyx_t_44.suboffsets[0] = -1;
+
+__pyx_t_45[0] = 0;
+          __pyx_t_45[1] = 0;
+          __pyx_t_45[2] = 0;
+          __pyx_t_46[0] = 0;
+          __pyx_t_46[1] = 0;
+          __pyx_t_46[2] = 0;
+          __pyx_t_47[0] = 0.0;
+          __pyx_t_47[1] = 0.0;
+          __pyx_t_47[2] = 0.0;
+
 290: 
+
+291: 	return sum
+
  __pyx_r = __pyx_v_sum;
+  goto __pyx_L0;
+
 292: 
+
 293: #-----------------------------------End Shared Routines -----------------------------------|
+
 294: 
+
 295: 
+
+296: cpdef ocypete(object molAtom,object molBasis, double[:,:] density, double[:,:] fock):
+
static PyObject *__pyx_pw_7ocypete_1ocypete(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_f_7ocypete_ocypete(PyObject *__pyx_v_molAtom, PyObject *__pyx_v_molBasis, __Pyx_memviewslice __pyx_v_density, __Pyx_memviewslice __pyx_v_fock, CYTHON_UNUSED int __pyx_skip_dispatch) {
+  int __pyx_v_na;
+  int __pyx_v_nb;
+  int __pyx_v_ng;
+  int __pyx_v_i;
+  int __pyx_v_j;
+  int __pyx_v_p;
+  int __pyx_v_q;
+  int __pyx_v_r;
+  int __pyx_v_s;
+  PyObject *__pyx_v_mx = NULL;
+  PyObject *__pyx_v_mz = NULL;
+  __Pyx_memviewslice __pyx_v_alo_x = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_z = { 0, 0, { 0 }, { 0 }, { 0 } };
+  PyObject *__pyx_v_me = NULL;
+  PyObject *__pyx_v_mc = NULL;
+  PyObject *__pyx_v_mn = NULL;
+  PyObject *__pyx_v_ma = NULL;
+  PyObject *__pyx_v_mo = NULL;
+  PyObject *__pyx_v_ml = NULL;
+  PyObject *__pyx_v_mp = NULL;
+  __Pyx_memviewslice __pyx_v_alo_e = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_c = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_n = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_a = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo_o = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_alo = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_ala = { 0, 0, { 0 }, { 0 }, { 0 } };
+  double __pyx_v_ss;
+  double __pyx_v_sk;
+  double __pyx_v_sj;
+  double __pyx_v_sh;
+  double __pyx_v_si;
+  double __pyx_v_sf;
+  double __pyx_v_f;
+  double __pyx_v_ra;
+  double __pyx_v_rb;
+  double __pyx_v_force;
+  int __pyx_v_cart;
+  PyObject *__pyx_v_Sx = NULL;
+  PyObject *__pyx_v_Ix = NULL;
+  PyObject *__pyx_v_Hx = NULL;
+  PyObject *__pyx_v_Fx = NULL;
+  PyObject *__pyx_v_Wx = NULL;
+  PyObject *__pyx_v_Ex = NULL;
+  PyObject *__pyx_v_Vx = NULL;
+  __Pyx_memviewslice __pyx_v_overlapfx = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_teifx = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_oeifx = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_fockfx = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_weightedEnergy = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_energy = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_vires = { 0, 0, { 0 }, { 0 }, { 0 } };
+  long __pyx_v_atom;
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("ocypete", 0);
+/* … */
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_2);
+  __Pyx_XDECREF(__pyx_t_3);
+  __Pyx_XDECREF(__pyx_t_8);
+  __Pyx_XDECREF(__pyx_t_9);
+  __Pyx_XDECREF(__pyx_t_10);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_11, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_12, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_18, 1);
+  __Pyx_XDECREF(__pyx_t_20);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_21, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_t_79, 1);
+  __Pyx_AddTraceback("ocypete.ocypete", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = 0;
+  __pyx_L0:;
+  __Pyx_XDECREF(__pyx_v_mx);
+  __Pyx_XDECREF(__pyx_v_mz);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_x, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_z, 1);
+  __Pyx_XDECREF(__pyx_v_me);
+  __Pyx_XDECREF(__pyx_v_mc);
+  __Pyx_XDECREF(__pyx_v_mn);
+  __Pyx_XDECREF(__pyx_v_ma);
+  __Pyx_XDECREF(__pyx_v_mo);
+  __Pyx_XDECREF(__pyx_v_ml);
+  __Pyx_XDECREF(__pyx_v_mp);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_e, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_c, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_n, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_a, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo_o, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_alo, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_ala, 1);
+  __Pyx_XDECREF(__pyx_v_Sx);
+  __Pyx_XDECREF(__pyx_v_Ix);
+  __Pyx_XDECREF(__pyx_v_Hx);
+  __Pyx_XDECREF(__pyx_v_Fx);
+  __Pyx_XDECREF(__pyx_v_Wx);
+  __Pyx_XDECREF(__pyx_v_Ex);
+  __Pyx_XDECREF(__pyx_v_Vx);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_overlapfx, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_teifx, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_oeifx, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_fockfx, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_weightedEnergy, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_energy, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_vires, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+/* Python wrapper */
+static PyObject *__pyx_pw_7ocypete_1ocypete(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
+static PyObject *__pyx_pw_7ocypete_1ocypete(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
+  PyObject *__pyx_v_molAtom = 0;
+  PyObject *__pyx_v_molBasis = 0;
+  __Pyx_memviewslice __pyx_v_density = { 0, 0, { 0 }, { 0 }, { 0 } };
+  __Pyx_memviewslice __pyx_v_fock = { 0, 0, { 0 }, { 0 }, { 0 } };
+  PyObject *__pyx_r = 0;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("ocypete (wrapper)", 0);
+  {
+    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_molAtom,&__pyx_n_s_molBasis,&__pyx_n_s_density,&__pyx_n_s_fock,0};
+    PyObject* values[4] = {0,0,0,0};
+    if (unlikely(__pyx_kwds)) {
+      Py_ssize_t kw_args;
+      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
+      switch (pos_args) {
+        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+        CYTHON_FALLTHROUGH;
+        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+        CYTHON_FALLTHROUGH;
+        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+        CYTHON_FALLTHROUGH;
+        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+        CYTHON_FALLTHROUGH;
+        case  0: break;
+        default: goto __pyx_L5_argtuple_error;
+      }
+      kw_args = PyDict_Size(__pyx_kwds);
+      switch (pos_args) {
+        case  0:
+        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_molAtom)) != 0)) kw_args--;
+        else goto __pyx_L5_argtuple_error;
+        CYTHON_FALLTHROUGH;
+        case  1:
+        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_molBasis)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("ocypete", 1, 4, 4, 1); __PYX_ERR(0, 296, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  2:
+        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_density)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("ocypete", 1, 4, 4, 2); __PYX_ERR(0, 296, __pyx_L3_error)
+        }
+        CYTHON_FALLTHROUGH;
+        case  3:
+        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_fock)) != 0)) kw_args--;
+        else {
+          __Pyx_RaiseArgtupleInvalid("ocypete", 1, 4, 4, 3); __PYX_ERR(0, 296, __pyx_L3_error)
+        }
+      }
+      if (unlikely(kw_args > 0)) {
+        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "ocypete") < 0)) __PYX_ERR(0, 296, __pyx_L3_error)
+      }
+    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
+      goto __pyx_L5_argtuple_error;
+    } else {
+      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
+      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
+      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
+      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
+    }
+    __pyx_v_molAtom = values[0];
+    __pyx_v_molBasis = values[1];
+    __pyx_v_density = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_density.memview)) __PYX_ERR(0, 296, __pyx_L3_error)
+    __pyx_v_fock = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_fock.memview)) __PYX_ERR(0, 296, __pyx_L3_error)
+  }
+  goto __pyx_L4_argument_unpacking_done;
+  __pyx_L5_argtuple_error:;
+  __Pyx_RaiseArgtupleInvalid("ocypete", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 296, __pyx_L3_error)
+  __pyx_L3_error:;
+  __Pyx_AddTraceback("ocypete.ocypete", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __Pyx_RefNannyFinishContext();
+  return NULL;
+  __pyx_L4_argument_unpacking_done:;
+  __pyx_r = __pyx_pf_7ocypete_ocypete(__pyx_self, __pyx_v_molAtom, __pyx_v_molBasis, __pyx_v_density, __pyx_v_fock);
+  int __pyx_lineno = 0;
+  const char *__pyx_filename = NULL;
+  int __pyx_clineno = 0;
+
+  /* function exit code */
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
+static PyObject *__pyx_pf_7ocypete_ocypete(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_molAtom, PyObject *__pyx_v_molBasis, __Pyx_memviewslice __pyx_v_density, __Pyx_memviewslice __pyx_v_fock) {
+  PyObject *__pyx_r = NULL;
+  __Pyx_RefNannyDeclarations
+  __Pyx_RefNannySetupContext("ocypete", 0);
+  __Pyx_XDECREF(__pyx_r);
+  __pyx_t_1 = __pyx_f_7ocypete_ocypete(__pyx_v_molAtom, __pyx_v_molBasis, __pyx_v_density, __pyx_v_fock, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 296, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_r = __pyx_t_1;
+  __pyx_t_1 = 0;
+  goto __pyx_L0;
+
+  /* function exit code */
+  __pyx_L1_error:;
+  __Pyx_XDECREF(__pyx_t_1);
+  __Pyx_AddTraceback("ocypete.ocypete", __pyx_clineno, __pyx_lineno, __pyx_filename);
+  __pyx_r = NULL;
+  __pyx_L0:;
+  __PYX_XDEC_MEMVIEW(&__pyx_v_density, 1);
+  __PYX_XDEC_MEMVIEW(&__pyx_v_fock, 1);
+  __Pyx_XGIVEREF(__pyx_r);
+  __Pyx_RefNannyFinishContext();
+  return __pyx_r;
+}
+
 297: 
+
 298: 	cdef:
+
+299: 		int na = len(molAtom)
+
  __pyx_t_1 = PyObject_Length(__pyx_v_molAtom); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 299, __pyx_L1_error)
+  __pyx_v_na = __pyx_t_1;
+
+300: 		int nb = len(molBasis)
+
  __pyx_t_1 = PyObject_Length(__pyx_v_molBasis); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 300, __pyx_L1_error)
+  __pyx_v_nb = __pyx_t_1;
+
+301: 		int	ng = len(molBasis[0].co)
+
  __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_molBasis, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 301, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_co); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 301, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_1 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 301, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_v_ng = __pyx_t_1;
+
 302: 		int  i, j, k, l, m, n, p, q, r, s
+
 303: 
+
 304: #get largest primative length
+
+305: 	for i in range(nb):
+
  __pyx_t_4 = __pyx_v_nb;
+  __pyx_t_5 = __pyx_t_4;
+  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
+    __pyx_v_i = __pyx_t_6;
+
+306: 		j = len(molBasis[i].co)
+
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_i, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 306, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_3);
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_co); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 306, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_2);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_1 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 306, __pyx_L1_error)
+    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_v_j = __pyx_t_1;
+
+307: 		if j > ng:
+
    __pyx_t_7 = ((__pyx_v_j > __pyx_v_ng) != 0);
+    if (__pyx_t_7) {
+/* … */
+    }
+  }
+
+308: 			ng = j
+
      __pyx_v_ng = __pyx_v_j;
+
 309: 
+
 310: 	#convert atom class properties to c views
+
+311: 	mx = np.empty([na,3], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 311, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 311, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_na); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 311, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 311, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_2);
+  __Pyx_INCREF(__pyx_int_3);
+  __Pyx_GIVEREF(__pyx_int_3);
+  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_int_3);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 311, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_8);
+  __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 311, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 311, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_double); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 311, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 311, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 311, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_v_mx = __pyx_t_10;
+  __pyx_t_10 = 0;
+
+312: 	mz = np.empty([na], dtype = np.short)
+
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 312, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_empty); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 312, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_na); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 312, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 312, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_10);
+  __pyx_t_10 = 0;
+  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 312, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_2);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 312, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 312, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_short); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 312, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 312, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 312, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_v_mz = __pyx_t_9;
+  __pyx_t_9 = 0;
+
 313: 	cdef:
+
+314: 		double[:,:] alo_x = mx
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_mx, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 314, __pyx_L1_error)
+  __pyx_v_alo_x = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+315: 		short[:]   alo_z = mz
+
  __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_short(__pyx_v_mz, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 315, __pyx_L1_error)
+  __pyx_v_alo_z = __pyx_t_12;
+  __pyx_t_12.memview = NULL;
+  __pyx_t_12.data = NULL;
+
+316: 	for p in range(0, na):
+
  __pyx_t_4 = __pyx_v_na;
+  __pyx_t_5 = __pyx_t_4;
+  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
+    __pyx_v_p = __pyx_t_6;
+
+317: 		for q in range(0, 3):
+
    for (__pyx_t_13 = 0; __pyx_t_13 < 3; __pyx_t_13+=1) {
+      __pyx_v_q = __pyx_t_13;
+
+318: 			alo_x[p,q] = molAtom[p].center[q]
+
      __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_molAtom, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 318, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_center); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 318, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_2);
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 318, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 318, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_15 = __pyx_v_p;
+      __pyx_t_16 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_15 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_x.strides[1]) )) = __pyx_t_14;
+    }
+
+319: 		alo_z[p] = molAtom[p].number
+
    __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_molAtom, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 319, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_9);
+    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_number); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 319, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_2);
+    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __pyx_t_17 = __Pyx_PyInt_As_short(__pyx_t_2); if (unlikely((__pyx_t_17 == (short)-1) && PyErr_Occurred())) __PYX_ERR(0, 319, __pyx_L1_error)
+    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+    __pyx_t_16 = __pyx_v_p;
+    *((short *) ( /* dim=0 */ (__pyx_v_alo_z.data + __pyx_t_16 * __pyx_v_alo_z.strides[0]) )) = __pyx_t_17;
+  }
+
 320: 
+
 321: 	#convert basis class properties to c-variables
+
+322: 	me = np.empty([nb,ng], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 322, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 322, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 322, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_ng); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 322, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 322, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_10);
+  __pyx_t_2 = 0;
+  __pyx_t_10 = 0;
+  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 322, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8);
+  __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 322, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 322, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_double); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 322, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 322, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 322, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_v_me = __pyx_t_3;
+  __pyx_t_3 = 0;
+
+323: 	mc = np.empty([nb,ng], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 323, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 323, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 323, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_ng); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 323, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 323, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_10);
+  __pyx_t_3 = 0;
+  __pyx_t_10 = 0;
+  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 323, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_9);
+  __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 323, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 323, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_double); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 323, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 323, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 323, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_v_mc = __pyx_t_2;
+  __pyx_t_2 = 0;
+
+324: 	mn = np.empty([nb,ng], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 324, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_ng); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 324, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = PyList_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 324, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_10);
+  __pyx_t_2 = 0;
+  __pyx_t_10 = 0;
+  __pyx_t_10 = PyTuple_New(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 324, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8);
+  __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 324, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 324, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_double); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 324, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 324, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_10, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 324, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_v_mn = __pyx_t_3;
+  __pyx_t_3 = 0;
+
+325: 	ma = np.empty([nb,3],  dtype = np.short)
+
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 325, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_empty); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 325, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 325, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_10 = PyList_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 325, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_3);
+  __Pyx_INCREF(__pyx_int_3);
+  __Pyx_GIVEREF(__pyx_int_3);
+  PyList_SET_ITEM(__pyx_t_10, 1, __pyx_int_3);
+  __pyx_t_3 = 0;
+  __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 325, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_10);
+  __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 325, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 325, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_short); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 325, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  if (PyDict_SetItem(__pyx_t_10, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 325, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_3, __pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 325, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_v_ma = __pyx_t_2;
+  __pyx_t_2 = 0;
+
+326: 	mo = np.empty([nb,3],  dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 326, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 326, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 326, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 326, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
+  __Pyx_INCREF(__pyx_int_3);
+  __Pyx_GIVEREF(__pyx_int_3);
+  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_int_3);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 326, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3);
+  __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 326, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 326, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_double); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 326, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 326, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 326, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_v_mo = __pyx_t_9;
+  __pyx_t_9 = 0;
+
+327: 	ml = np.empty([nb],    dtype = np.short)
+
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 327, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 327, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 327, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 327, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_9);
+  __pyx_t_9 = 0;
+  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 327, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 327, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 327, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_short); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 327, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 327, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 327, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_v_ml = __pyx_t_8;
+  __pyx_t_8 = 0;
+
+328: 	mp = np.empty([nb],    dtype = np.short)
+
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 328, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 328, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 328, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_9 = PyList_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 328, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
+  __pyx_t_8 = 0;
+  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 328, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9);
+  __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 328, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 328, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_short); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 328, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 328, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 328, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_v_mp = __pyx_t_10;
+  __pyx_t_10 = 0;
+
 329: 
+
 330: 	cdef:
+
+331: 		double[:,:] alo_e = me
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_me, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 331, __pyx_L1_error)
+  __pyx_v_alo_e = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+332: 		double[:,:] alo_c = mc
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_mc, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 332, __pyx_L1_error)
+  __pyx_v_alo_c = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+333: 		double[:,:] alo_n = mn
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_mn, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 333, __pyx_L1_error)
+  __pyx_v_alo_n = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+334: 		short[:,:]  alo_a = ma
+
  __pyx_t_18 = __Pyx_PyObject_to_MemoryviewSlice_dsds_short(__pyx_v_ma, PyBUF_WRITABLE); if (unlikely(!__pyx_t_18.memview)) __PYX_ERR(0, 334, __pyx_L1_error)
+  __pyx_v_alo_a = __pyx_t_18;
+  __pyx_t_18.memview = NULL;
+  __pyx_t_18.data = NULL;
+
+335: 		double[:,:] alo_o = mo
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_mo, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 335, __pyx_L1_error)
+  __pyx_v_alo_o = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+336: 		short[:]    alo   = ml
+
  __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_short(__pyx_v_ml, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 336, __pyx_L1_error)
+  __pyx_v_alo = __pyx_t_12;
+  __pyx_t_12.memview = NULL;
+  __pyx_t_12.data = NULL;
+
+337: 		short[:]    ala   = mp
+
  __pyx_t_12 = __Pyx_PyObject_to_MemoryviewSlice_ds_short(__pyx_v_mp, PyBUF_WRITABLE); if (unlikely(!__pyx_t_12.memview)) __PYX_ERR(0, 337, __pyx_L1_error)
+  __pyx_v_ala = __pyx_t_12;
+  __pyx_t_12.memview = NULL;
+  __pyx_t_12.data = NULL;
+
 338: 
+
+339: 	for p in range(0, nb):
+
  __pyx_t_4 = __pyx_v_nb;
+  __pyx_t_5 = __pyx_t_4;
+  for (__pyx_t_6 = 0; __pyx_t_6 < __pyx_t_5; __pyx_t_6+=1) {
+    __pyx_v_p = __pyx_t_6;
+
+340: 		alo[p] = len(molBasis[p].co)
+
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 340, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_10);
+    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_co); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 340, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_9);
+    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+    __pyx_t_1 = PyObject_Length(__pyx_t_9); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 340, __pyx_L1_error)
+    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __pyx_t_16 = __pyx_v_p;
+    *((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_16 * __pyx_v_alo.strides[0]) )) = __pyx_t_1;
+
+341: 		ala[p] = molBasis[p].atom
+
    __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 341, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_9);
+    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_atom); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 341, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_10);
+    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __pyx_t_17 = __Pyx_PyInt_As_short(__pyx_t_10); if (unlikely((__pyx_t_17 == (short)-1) && PyErr_Occurred())) __PYX_ERR(0, 341, __pyx_L1_error)
+    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+    __pyx_t_16 = __pyx_v_p;
+    *((short *) ( /* dim=0 */ (__pyx_v_ala.data + __pyx_t_16 * __pyx_v_ala.strides[0]) )) = __pyx_t_17;
+
+342: 		for q in range(0, len(molBasis[p].co)):
+
    __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 342, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_10);
+    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_co); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 342, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_9);
+    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+    __pyx_t_1 = PyObject_Length(__pyx_t_9); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 342, __pyx_L1_error)
+    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+    __pyx_t_19 = __pyx_t_1;
+    for (__pyx_t_13 = 0; __pyx_t_13 < __pyx_t_19; __pyx_t_13+=1) {
+      __pyx_v_q = __pyx_t_13;
+
+343: 			alo_e[p,q] = molBasis[p].ex[q]
+
      __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 343, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_ex); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 343, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_10);
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 343, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 343, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_16 = __pyx_v_p;
+      __pyx_t_15 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_16 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_e.strides[1]) )) = __pyx_t_14;
+
+344: 			alo_c[p,q] = molBasis[p].co[q]
+
      __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 344, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_co); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 344, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_10);
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 344, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 344, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_15 = __pyx_v_p;
+      __pyx_t_16 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_15 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_c.strides[1]) )) = __pyx_t_14;
+
+345: 			alo_n[p,q] = molBasis[p].normal[q]
+
      __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 345, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_normal); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 345, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_10);
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 345, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 345, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_16 = __pyx_v_p;
+      __pyx_t_15 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_16 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_n.strides[1]) )) = __pyx_t_14;
+    }
+
+346: 		for q in range(0, 3):
+
    for (__pyx_t_13 = 0; __pyx_t_13 < 3; __pyx_t_13+=1) {
+      __pyx_v_q = __pyx_t_13;
+
+347: 			alo_a[p,q] = molBasis[p].momentum[q]
+
      __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 347, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_momentum); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 347, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_10);
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 347, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+      __pyx_t_17 = __Pyx_PyInt_As_short(__pyx_t_9); if (unlikely((__pyx_t_17 == (short)-1) && PyErr_Occurred())) __PYX_ERR(0, 347, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_15 = __pyx_v_p;
+      __pyx_t_16 = __pyx_v_q;
+      *((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_15 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_a.strides[1]) )) = __pyx_t_17;
+
+348: 			alo_o[p,q] = molBasis[p].center[q]
+
      __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_molBasis, __pyx_v_p, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 348, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_center); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 348, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_10);
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_10, __pyx_v_q, int, 1, __Pyx_PyInt_From_int, 0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 348, __pyx_L1_error)
+      __Pyx_GOTREF(__pyx_t_9);
+      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 348, __pyx_L1_error)
+      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+      __pyx_t_16 = __pyx_v_p;
+      __pyx_t_15 = __pyx_v_q;
+      *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_16 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_o.strides[1]) )) = __pyx_t_14;
+    }
+  }
+
 349: 
+
 350: 	#matrix definitions
+
 351: 	cdef:
+
 352: 		double ss, sk, sj, sh, si, sf, f, ra, rb, force
+
 353: 		int cart
+
+354: 	Sx = np.zeros([nb,nb], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 354, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 354, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 354, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 354, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 354, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_8);
+  __pyx_t_9 = 0;
+  __pyx_t_8 = 0;
+  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 354, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 354, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 354, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_double); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 354, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_3) < 0) __PYX_ERR(0, 354, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_8, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 354, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_v_Sx = __pyx_t_3;
+  __pyx_t_3 = 0;
+
+355: 	Ix = np.zeros([nb,nb,nb,nb], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_20 = PyList_New(4); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_20);
+  __Pyx_GIVEREF(__pyx_t_3);
+  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_3);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyList_SET_ITEM(__pyx_t_20, 1, __pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_20, 2, __pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyList_SET_ITEM(__pyx_t_20, 3, __pyx_t_9);
+  __pyx_t_3 = 0;
+  __pyx_t_8 = 0;
+  __pyx_t_10 = 0;
+  __pyx_t_9 = 0;
+  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_20);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_20);
+  __pyx_t_20 = 0;
+  __pyx_t_20 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_20);
+  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_double); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  if (PyDict_SetItem(__pyx_t_20, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, __pyx_t_20); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 355, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+  __pyx_v_Ix = __pyx_t_8;
+  __pyx_t_8 = 0;
+
+356: 	Hx = np.zeros([nb,nb], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_20);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_9);
+  __pyx_t_8 = 0;
+  __pyx_t_9 = 0;
+  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_double); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 356, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_v_Hx = __pyx_t_10;
+  __pyx_t_10 = 0;
+
+357: 	Fx = np.zeros([nb,nb], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 357, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 357, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 357, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 357, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_20 = PyList_New(2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 357, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_20);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyList_SET_ITEM(__pyx_t_20, 1, __pyx_t_9);
+  __pyx_t_10 = 0;
+  __pyx_t_9 = 0;
+  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 357, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_20);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_20);
+  __pyx_t_20 = 0;
+  __pyx_t_20 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 357, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_20);
+  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 357, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_double); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 357, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  if (PyDict_SetItem(__pyx_t_20, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 357, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, __pyx_t_20); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 357, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+  __pyx_v_Fx = __pyx_t_8;
+  __pyx_t_8 = 0;
+
+358: 	Wx = np.zeros([nb,nb], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 358, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 358, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_20);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 358, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 358, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 358, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_9);
+  __pyx_t_8 = 0;
+  __pyx_t_9 = 0;
+  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 358, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_2);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_2);
+  __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 358, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 358, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_double); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 358, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 358, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 358, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_v_Wx = __pyx_t_10;
+  __pyx_t_10 = 0;
+
+359: 	Ex = np.zeros([nb,nb], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_nb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __pyx_t_20 = PyList_New(2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_20);
+  __Pyx_GIVEREF(__pyx_t_10);
+  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_10);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyList_SET_ITEM(__pyx_t_20, 1, __pyx_t_9);
+  __pyx_t_10 = 0;
+  __pyx_t_9 = 0;
+  __pyx_t_9 = PyTuple_New(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_20);
+  PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_20);
+  __pyx_t_20 = 0;
+  __pyx_t_20 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_20);
+  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_double); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  if (PyDict_SetItem(__pyx_t_20, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, __pyx_t_20); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 359, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+  __pyx_v_Ex = __pyx_t_8;
+  __pyx_t_8 = 0;
+
 360: 
+
+361: 	Vx = np.zeros([na,3], dtype = np.double)
+
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 361, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 361, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_20);
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_na); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 361, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 361, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GIVEREF(__pyx_t_8);
+  PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
+  __Pyx_INCREF(__pyx_int_3);
+  __Pyx_GIVEREF(__pyx_int_3);
+  PyList_SET_ITEM(__pyx_t_9, 1, __pyx_int_3);
+  __pyx_t_8 = 0;
+  __pyx_t_8 = PyTuple_New(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 361, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_8);
+  __Pyx_GIVEREF(__pyx_t_9);
+  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9);
+  __pyx_t_9 = 0;
+  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 361, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_9);
+  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 361, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_double); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 361, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_10) < 0) __PYX_ERR(0, 361, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+  __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_20, __pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 361, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_10);
+  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+  __pyx_v_Vx = __pyx_t_10;
+  __pyx_t_10 = 0;
+
 362: 	cdef:
+
+363: 		double[:,:]  overlapfx = Sx
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_Sx, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 363, __pyx_L1_error)
+  __pyx_v_overlapfx = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+364: 		double[:,:,:,:]  teifx = Ix
+
  __pyx_t_21 = __Pyx_PyObject_to_MemoryviewSlice_dsdsdsds_double(__pyx_v_Ix, PyBUF_WRITABLE); if (unlikely(!__pyx_t_21.memview)) __PYX_ERR(0, 364, __pyx_L1_error)
+  __pyx_v_teifx = __pyx_t_21;
+  __pyx_t_21.memview = NULL;
+  __pyx_t_21.data = NULL;
+
+365: 		double[:,:]      oeifx = Hx
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_Hx, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 365, __pyx_L1_error)
+  __pyx_v_oeifx = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+366: 		double[:,:]      fockfx= Fx
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_Fx, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 366, __pyx_L1_error)
+  __pyx_v_fockfx = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+367: 		double[:,:]      weightedEnergy = Wx
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_Wx, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 367, __pyx_L1_error)
+  __pyx_v_weightedEnergy = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
+368: 		double[:,:]      energy = Ex
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_Ex, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 368, __pyx_L1_error)
+  __pyx_v_energy = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
 369: 
+
+370: 		double[:,:]      vires = Vx
+
  __pyx_t_11 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_v_Vx, PyBUF_WRITABLE); if (unlikely(!__pyx_t_11.memview)) __PYX_ERR(0, 370, __pyx_L1_error)
+  __pyx_v_vires = __pyx_t_11;
+  __pyx_t_11.memview = NULL;
+  __pyx_t_11.data = NULL;
+
 371: 
+
 372: 	#----------------------------------------Begin derivatives ------------------------------------|
+
 373: 
+
 374: 	#---------------------------------------Begin one electron-------------------------------------|
+
 375: 	#don't need overlapfx for fock but included anyway for completeness
+
+376: 	for atom in range(0, na):
+
  __pyx_t_4 = __pyx_v_na;
+  __pyx_t_5 = __pyx_t_4;
+  for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_5; __pyx_t_22+=1) {
+    __pyx_v_atom = __pyx_t_22;
+
+377: 		for cart in range(0, 3):
+
    for (__pyx_t_6 = 0; __pyx_t_6 < 3; __pyx_t_6+=1) {
+      __pyx_v_cart = __pyx_t_6;
+
 378: 
+
+379: 			for p in range(0, nb):
+
      __pyx_t_13 = __pyx_v_nb;
+      __pyx_t_23 = __pyx_t_13;
+      for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
+        __pyx_v_p = __pyx_t_24;
+
+380: 				for q in range(0, p+1):
+
        __pyx_t_25 = (__pyx_v_p + 1);
+        __pyx_t_26 = __pyx_t_25;
+        for (__pyx_t_27 = 0; __pyx_t_27 < __pyx_t_26; __pyx_t_27+=1) {
+          __pyx_v_q = __pyx_t_27;
+
 381: 
+
+382: 					ss = 0.0
+
          __pyx_v_ss = 0.0;
+
+383: 					sk = 0.0
+
          __pyx_v_sk = 0.0;
+
+384: 					sj = 0.0
+
          __pyx_v_sj = 0.0;
+
+385: 					sh = 0.0
+
          __pyx_v_sh = 0.0;
+
+386: 					for i in range(0, alo[p]):
+
          __pyx_t_15 = __pyx_v_p;
+          __pyx_t_17 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_15 * __pyx_v_alo.strides[0]) )));
+          __pyx_t_28 = __pyx_t_17;
+          for (__pyx_t_29 = 0; __pyx_t_29 < __pyx_t_28; __pyx_t_29+=1) {
+            __pyx_v_i = __pyx_t_29;
+
+387: 						for j in range(0, alo[q]):
+
            __pyx_t_15 = __pyx_v_q;
+            __pyx_t_30 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_15 * __pyx_v_alo.strides[0]) )));
+            __pyx_t_31 = __pyx_t_30;
+            for (__pyx_t_32 = 0; __pyx_t_32 < __pyx_t_31; __pyx_t_32+=1) {
+              __pyx_v_j = __pyx_t_32;
+
 388: 
+
+389: 							f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j]
+
              __pyx_t_15 = __pyx_v_p;
+              __pyx_t_16 = __pyx_v_i;
+              __pyx_t_33 = __pyx_v_q;
+              __pyx_t_34 = __pyx_v_j;
+              __pyx_t_35 = __pyx_v_p;
+              __pyx_t_36 = __pyx_v_i;
+              __pyx_t_37 = __pyx_v_q;
+              __pyx_t_38 = __pyx_v_j;
+              __pyx_v_f = ((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_15 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_n.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_33 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_34 * __pyx_v_alo_n.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_35 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_36 * __pyx_v_alo_c.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_37 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_38 * __pyx_v_alo_c.strides[1]) ))));
+
+390: 							if ala[p] == atom:
+
              __pyx_t_38 = __pyx_v_p;
+              __pyx_t_7 = (((*((short *) ( /* dim=0 */ (__pyx_v_ala.data + __pyx_t_38 * __pyx_v_ala.strides[0]) ))) == __pyx_v_atom) != 0);
+              if (__pyx_t_7) {
+/* … */
+              }
+
+391: 								ss += ovlpfx(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2],  \
+
                __pyx_t_38 = __pyx_v_p;
+                __pyx_t_37 = 0;
+                __pyx_t_36 = __pyx_v_p;
+                __pyx_t_35 = 1;
+                __pyx_t_34 = __pyx_v_p;
+                __pyx_t_33 = 2;
+                __pyx_t_16 = __pyx_v_q;
+                __pyx_t_15 = 0;
+                __pyx_t_39 = __pyx_v_q;
+                __pyx_t_40 = 1;
+                __pyx_t_41 = __pyx_v_q;
+                __pyx_t_42 = 2;
+/* … */
+                __pyx_v_ss = (__pyx_v_ss + (__pyx_f_7ocypete_ovlpfx((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_38 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_37 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_36 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_35 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_34 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_33 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_16 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_39 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_40 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_41 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_42 * __pyx_v_alo_a.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_43 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_44 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_45 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_46 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_47 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_48 * __pyx_v_alo_o.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_49 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_50 * __pyx_v_alo_o.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_51 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_52 * __pyx_v_alo_o.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_53 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_54 * __pyx_v_alo_o.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_55 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_56 * __pyx_v_alo_o.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_57 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_58 * __pyx_v_alo_o.strides[1]) ))), __pyx_t_59, __pyx_t_60, __pyx_v_cart, 0) * __pyx_v_f));
+
+392:  						                    alo_e[p,i], alo_e[q,j], alo_o[p,0], alo_o[p,1], alo_o[p,2], alo_o[q,0], alo_o[q,1], alo_o[q,2], \
+
                __pyx_t_43 = __pyx_v_p;
+                __pyx_t_44 = __pyx_v_i;
+                __pyx_t_45 = __pyx_v_q;
+                __pyx_t_46 = __pyx_v_j;
+                __pyx_t_47 = __pyx_v_p;
+                __pyx_t_48 = 0;
+                __pyx_t_49 = __pyx_v_p;
+                __pyx_t_50 = 1;
+                __pyx_t_51 = __pyx_v_p;
+                __pyx_t_52 = 2;
+                __pyx_t_53 = __pyx_v_q;
+                __pyx_t_54 = 0;
+                __pyx_t_55 = __pyx_v_q;
+                __pyx_t_56 = 1;
+                __pyx_t_57 = __pyx_v_q;
+                __pyx_t_58 = 2;
+
+393:  						                   [0,0,0], [0,0,0], cart, 0   ) * f
+
                __pyx_t_59[0] = 0;
+                __pyx_t_59[1] = 0;
+                __pyx_t_59[2] = 0;
+                __pyx_t_60[0] = 0.0;
+                __pyx_t_60[1] = 0.0;
+                __pyx_t_60[2] = 0.0;
+
 394: 
+
+395: 								sk += kntcfx([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]],  \
+
                __pyx_t_58 = __pyx_v_p;
+                __pyx_t_57 = 0;
+                __pyx_t_56 = __pyx_v_p;
+                __pyx_t_55 = 1;
+                __pyx_t_54 = __pyx_v_p;
+                __pyx_t_53 = 2;
+                __pyx_t_61[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_58 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_57 * __pyx_v_alo_a.strides[1]) )));
+                __pyx_t_61[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_56 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_55 * __pyx_v_alo_a.strides[1]) )));
+                __pyx_t_61[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_54 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_53 * __pyx_v_alo_a.strides[1]) )));
+                __pyx_t_53 = __pyx_v_q;
+                __pyx_t_54 = 0;
+                __pyx_t_55 = __pyx_v_q;
+                __pyx_t_56 = 1;
+                __pyx_t_57 = __pyx_v_q;
+                __pyx_t_58 = 2;
+                __pyx_t_62[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_53 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_54 * __pyx_v_alo_a.strides[1]) )));
+                __pyx_t_62[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_55 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_56 * __pyx_v_alo_a.strides[1]) )));
+                __pyx_t_62[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_57 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_58 * __pyx_v_alo_a.strides[1]) )));
+/* … */
+                __pyx_v_sk = (__pyx_v_sk + (__pyx_f_7ocypete_kntcfx(__pyx_t_61, __pyx_t_62, (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_58 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_57 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_56 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_55 * __pyx_v_alo_e.strides[1]) ))), __pyx_t_63, __pyx_t_64, __pyx_t_65, __pyx_t_66, __pyx_v_cart, 0) * __pyx_v_f));
+
+396:  						                    alo_e[p,i], alo_e[q,j], [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \
+
                __pyx_t_58 = __pyx_v_p;
+                __pyx_t_57 = __pyx_v_i;
+                __pyx_t_56 = __pyx_v_q;
+                __pyx_t_55 = __pyx_v_j;
+                __pyx_t_54 = __pyx_v_p;
+                __pyx_t_53 = 0;
+                __pyx_t_52 = __pyx_v_p;
+                __pyx_t_51 = 1;
+                __pyx_t_50 = __pyx_v_p;
+                __pyx_t_49 = 2;
+                __pyx_t_63[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_54 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_53 * __pyx_v_alo_o.strides[1]) )));
+                __pyx_t_63[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_52 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_51 * __pyx_v_alo_o.strides[1]) )));
+                __pyx_t_63[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_50 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_49 * __pyx_v_alo_o.strides[1]) )));
+                __pyx_t_49 = __pyx_v_q;
+                __pyx_t_50 = 0;
+                __pyx_t_51 = __pyx_v_q;
+                __pyx_t_52 = 1;
+                __pyx_t_53 = __pyx_v_q;
+                __pyx_t_54 = 2;
+                __pyx_t_64[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_49 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_50 * __pyx_v_alo_o.strides[1]) )));
+                __pyx_t_64[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_51 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_52 * __pyx_v_alo_o.strides[1]) )));
+                __pyx_t_64[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_53 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_54 * __pyx_v_alo_o.strides[1]) )));
+
+397:  						                   [0,0,0], [0,0,0], cart, 0   ) * f
+
                __pyx_t_65[0] = 0;
+                __pyx_t_65[1] = 0;
+                __pyx_t_65[2] = 0;
+                __pyx_t_66[0] = 0.0;
+                __pyx_t_66[1] = 0.0;
+                __pyx_t_66[2] = 0.0;
+
 398: 
+
+399: 							if ala[q] == atom:
+
              __pyx_t_55 = __pyx_v_q;
+              __pyx_t_7 = (((*((short *) ( /* dim=0 */ (__pyx_v_ala.data + __pyx_t_55 * __pyx_v_ala.strides[0]) ))) == __pyx_v_atom) != 0);
+              if (__pyx_t_7) {
+/* … */
+              }
+
+400: 								ss += ovlpfx(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2],  \
+
                __pyx_t_55 = __pyx_v_p;
+                __pyx_t_56 = 0;
+                __pyx_t_57 = __pyx_v_p;
+                __pyx_t_58 = 1;
+                __pyx_t_54 = __pyx_v_p;
+                __pyx_t_53 = 2;
+                __pyx_t_52 = __pyx_v_q;
+                __pyx_t_51 = 0;
+                __pyx_t_50 = __pyx_v_q;
+                __pyx_t_49 = 1;
+                __pyx_t_48 = __pyx_v_q;
+                __pyx_t_47 = 2;
+/* … */
+                __pyx_v_ss = (__pyx_v_ss + (__pyx_f_7ocypete_ovlpfx((*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_55 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_56 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_57 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_58 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_54 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_53 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_52 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_51 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_50 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_49 * __pyx_v_alo_a.strides[1]) ))), (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_48 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_47 * __pyx_v_alo_a.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_46 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_45 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_44 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_43 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_42 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_41 * __pyx_v_alo_o.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_40 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_39 * __pyx_v_alo_o.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_15 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_o.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_33 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_34 * __pyx_v_alo_o.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_35 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_36 * __pyx_v_alo_o.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_37 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_38 * __pyx_v_alo_o.strides[1]) ))), __pyx_t_67, __pyx_t_68, __pyx_v_cart, 1) * __pyx_v_f));
+
+401:  						                    alo_e[p,i], alo_e[q,j], alo_o[p,0], alo_o[p,1], alo_o[p,2], alo_o[q,0], alo_o[q,1], alo_o[q,2], \
+
                __pyx_t_46 = __pyx_v_p;
+                __pyx_t_45 = __pyx_v_i;
+                __pyx_t_44 = __pyx_v_q;
+                __pyx_t_43 = __pyx_v_j;
+                __pyx_t_42 = __pyx_v_p;
+                __pyx_t_41 = 0;
+                __pyx_t_40 = __pyx_v_p;
+                __pyx_t_39 = 1;
+                __pyx_t_15 = __pyx_v_p;
+                __pyx_t_16 = 2;
+                __pyx_t_33 = __pyx_v_q;
+                __pyx_t_34 = 0;
+                __pyx_t_35 = __pyx_v_q;
+                __pyx_t_36 = 1;
+                __pyx_t_37 = __pyx_v_q;
+                __pyx_t_38 = 2;
+
+402:  						                    [0,0,0], [0,0,0], cart, 1  ) * f
+
                __pyx_t_67[0] = 0;
+                __pyx_t_67[1] = 0;
+                __pyx_t_67[2] = 0;
+                __pyx_t_68[0] = 0.0;
+                __pyx_t_68[1] = 0.0;
+                __pyx_t_68[2] = 0.0;
+
 403: 
+
+404: 								sk += kntcfx([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]],  \
+
                __pyx_t_38 = __pyx_v_p;
+                __pyx_t_37 = 0;
+                __pyx_t_36 = __pyx_v_p;
+                __pyx_t_35 = 1;
+                __pyx_t_34 = __pyx_v_p;
+                __pyx_t_33 = 2;
+                __pyx_t_69[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_38 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_37 * __pyx_v_alo_a.strides[1]) )));
+                __pyx_t_69[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_36 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_35 * __pyx_v_alo_a.strides[1]) )));
+                __pyx_t_69[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_34 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_33 * __pyx_v_alo_a.strides[1]) )));
+                __pyx_t_33 = __pyx_v_q;
+                __pyx_t_34 = 0;
+                __pyx_t_35 = __pyx_v_q;
+                __pyx_t_36 = 1;
+                __pyx_t_37 = __pyx_v_q;
+                __pyx_t_38 = 2;
+                __pyx_t_70[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_33 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_34 * __pyx_v_alo_a.strides[1]) )));
+                __pyx_t_70[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_35 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_36 * __pyx_v_alo_a.strides[1]) )));
+                __pyx_t_70[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_37 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_38 * __pyx_v_alo_a.strides[1]) )));
+/* … */
+                __pyx_v_sk = (__pyx_v_sk + (__pyx_f_7ocypete_kntcfx(__pyx_t_69, __pyx_t_70, (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_38 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_37 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_36 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_35 * __pyx_v_alo_e.strides[1]) ))), __pyx_t_71, __pyx_t_72, __pyx_t_73, __pyx_t_74, __pyx_v_cart, 1) * __pyx_v_f));
+
+405:  						                    alo_e[p,i], alo_e[q,j], [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \
+
                __pyx_t_38 = __pyx_v_p;
+                __pyx_t_37 = __pyx_v_i;
+                __pyx_t_36 = __pyx_v_q;
+                __pyx_t_35 = __pyx_v_j;
+                __pyx_t_34 = __pyx_v_p;
+                __pyx_t_33 = 0;
+                __pyx_t_16 = __pyx_v_p;
+                __pyx_t_15 = 1;
+                __pyx_t_39 = __pyx_v_p;
+                __pyx_t_40 = 2;
+                __pyx_t_71[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_34 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_33 * __pyx_v_alo_o.strides[1]) )));
+                __pyx_t_71[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_16 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_o.strides[1]) )));
+                __pyx_t_71[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_39 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_40 * __pyx_v_alo_o.strides[1]) )));
+                __pyx_t_40 = __pyx_v_q;
+                __pyx_t_39 = 0;
+                __pyx_t_15 = __pyx_v_q;
+                __pyx_t_16 = 1;
+                __pyx_t_33 = __pyx_v_q;
+                __pyx_t_34 = 2;
+                __pyx_t_72[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_40 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_39 * __pyx_v_alo_o.strides[1]) )));
+                __pyx_t_72[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_15 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_o.strides[1]) )));
+                __pyx_t_72[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_33 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_34 * __pyx_v_alo_o.strides[1]) )));
+
+406:  						                    [0,0,0], [0,0,0], cart, 1  ) * f
+
                __pyx_t_73[0] = 0;
+                __pyx_t_73[1] = 0;
+                __pyx_t_73[2] = 0;
+                __pyx_t_74[0] = 0.0;
+                __pyx_t_74[1] = 0.0;
+                __pyx_t_74[2] = 0.0;
+
 407: 
+
+408: 							sh -= clmbhfx([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]],  \
+
              __pyx_t_35 = __pyx_v_p;
+              __pyx_t_36 = 0;
+              __pyx_t_37 = __pyx_v_p;
+              __pyx_t_38 = 1;
+              __pyx_t_34 = __pyx_v_p;
+              __pyx_t_33 = 2;
+              __pyx_t_75[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_35 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_36 * __pyx_v_alo_a.strides[1]) )));
+              __pyx_t_75[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_37 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_38 * __pyx_v_alo_a.strides[1]) )));
+              __pyx_t_75[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_34 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_33 * __pyx_v_alo_a.strides[1]) )));
+              __pyx_t_33 = __pyx_v_q;
+              __pyx_t_34 = 0;
+              __pyx_t_38 = __pyx_v_q;
+              __pyx_t_37 = 1;
+              __pyx_t_36 = __pyx_v_q;
+              __pyx_t_35 = 2;
+              __pyx_t_76[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_33 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_34 * __pyx_v_alo_a.strides[1]) )));
+              __pyx_t_76[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_38 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_37 * __pyx_v_alo_a.strides[1]) )));
+              __pyx_t_76[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_36 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_35 * __pyx_v_alo_a.strides[1]) )));
+/* … */
+              __pyx_v_sh = (__pyx_v_sh - ((__pyx_f_7ocypete_clmbhfx(__pyx_t_75, __pyx_t_76, (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_35 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_36 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_37 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_38 * __pyx_v_alo_e.strides[1]) ))), __pyx_t_77, __pyx_t_78, __pyx_t_79, __pyx_t_80, __pyx_t_81, __pyx_v_cart) * __pyx_v_f) * (*((short *) ( /* dim=0 */ (__pyx_v_alo_z.data + __pyx_t_34 * __pyx_v_alo_z.strides[0]) )))));
+              __PYX_XDEC_MEMVIEW(&__pyx_t_79, 1);
+              __pyx_t_79.memview = NULL;
+              __pyx_t_79.data = NULL;
+            }
+          }
+
+409:  						                   alo_e[p,i], alo_e[q,j], [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \
+
              __pyx_t_35 = __pyx_v_p;
+              __pyx_t_36 = __pyx_v_i;
+              __pyx_t_37 = __pyx_v_q;
+              __pyx_t_38 = __pyx_v_j;
+              __pyx_t_34 = __pyx_v_p;
+              __pyx_t_33 = 0;
+              __pyx_t_16 = __pyx_v_p;
+              __pyx_t_15 = 1;
+              __pyx_t_39 = __pyx_v_p;
+              __pyx_t_40 = 2;
+              __pyx_t_77[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_34 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_33 * __pyx_v_alo_o.strides[1]) )));
+              __pyx_t_77[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_16 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_o.strides[1]) )));
+              __pyx_t_77[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_39 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_40 * __pyx_v_alo_o.strides[1]) )));
+              __pyx_t_40 = __pyx_v_q;
+              __pyx_t_39 = 0;
+              __pyx_t_15 = __pyx_v_q;
+              __pyx_t_16 = 1;
+              __pyx_t_33 = __pyx_v_q;
+              __pyx_t_34 = 2;
+              __pyx_t_78[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_40 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_39 * __pyx_v_alo_o.strides[1]) )));
+              __pyx_t_78[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_15 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_o.strides[1]) )));
+              __pyx_t_78[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_33 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_34 * __pyx_v_alo_o.strides[1]) )));
+
+410:  						                   alo_x[atom], [0,0,0], [0,0,0], cart  ) * f * alo_z[atom]
+
              __pyx_t_79.data = __pyx_v_alo_x.data;
+              __pyx_t_79.memview = __pyx_v_alo_x.memview;
+              __PYX_INC_MEMVIEW(&__pyx_t_79, 0);
+              {
+    Py_ssize_t __pyx_tmp_idx = __pyx_v_atom;
+    Py_ssize_t __pyx_tmp_stride = __pyx_v_alo_x.strides[0];
+        __pyx_t_79.data += __pyx_tmp_idx * __pyx_tmp_stride;
+}
+
+__pyx_t_79.shape[0] = __pyx_v_alo_x.shape[1];
+__pyx_t_79.strides[0] = __pyx_v_alo_x.strides[1];
+    __pyx_t_79.suboffsets[0] = -1;
+
+__pyx_t_80[0] = 0;
+              __pyx_t_80[1] = 0;
+              __pyx_t_80[2] = 0;
+              __pyx_t_81[0] = 0.0;
+              __pyx_t_81[1] = 0.0;
+              __pyx_t_81[2] = 0.0;
+/* … */
+              __pyx_t_34 = __pyx_v_atom;
+
 411: 
+
+412: 					for r in range(0, na):
+
          __pyx_t_29 = __pyx_v_na;
+          __pyx_t_32 = __pyx_t_29;
+          for (__pyx_t_82 = 0; __pyx_t_82 < __pyx_t_32; __pyx_t_82+=1) {
+            __pyx_v_r = __pyx_t_82;
+
+413: 						for i in range(0, alo[p]):
+
            __pyx_t_34 = __pyx_v_p;
+            __pyx_t_17 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_34 * __pyx_v_alo.strides[0]) )));
+            __pyx_t_28 = __pyx_t_17;
+            for (__pyx_t_83 = 0; __pyx_t_83 < __pyx_t_28; __pyx_t_83+=1) {
+              __pyx_v_i = __pyx_t_83;
+
+414: 							for j in range(0, alo[q]):
+
              __pyx_t_34 = __pyx_v_q;
+              __pyx_t_30 = (*((short *) ( /* dim=0 */ (__pyx_v_alo.data + __pyx_t_34 * __pyx_v_alo.strides[0]) )));
+              __pyx_t_31 = __pyx_t_30;
+              for (__pyx_t_84 = 0; __pyx_t_84 < __pyx_t_31; __pyx_t_84+=1) {
+                __pyx_v_j = __pyx_t_84;
+
+415: 								f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j]
+
                __pyx_t_34 = __pyx_v_p;
+                __pyx_t_38 = __pyx_v_i;
+                __pyx_t_37 = __pyx_v_q;
+                __pyx_t_36 = __pyx_v_j;
+                __pyx_t_35 = __pyx_v_p;
+                __pyx_t_33 = __pyx_v_i;
+                __pyx_t_16 = __pyx_v_q;
+                __pyx_t_15 = __pyx_v_j;
+                __pyx_v_f = ((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_34 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_38 * __pyx_v_alo_n.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_n.data + __pyx_t_37 * __pyx_v_alo_n.strides[0]) ) + __pyx_t_36 * __pyx_v_alo_n.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_35 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_33 * __pyx_v_alo_c.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_c.data + __pyx_t_16 * __pyx_v_alo_c.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_c.strides[1]) ))));
+
+416: 								if ala[p] == atom:
+
                __pyx_t_15 = __pyx_v_p;
+                __pyx_t_7 = (((*((short *) ( /* dim=0 */ (__pyx_v_ala.data + __pyx_t_15 * __pyx_v_ala.strides[0]) ))) == __pyx_v_atom) != 0);
+                if (__pyx_t_7) {
+/* … */
+                }
+
+417: 									sj -= clmbsfx([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]],  \
+
                  __pyx_t_15 = __pyx_v_p;
+                  __pyx_t_16 = 0;
+                  __pyx_t_33 = __pyx_v_p;
+                  __pyx_t_35 = 1;
+                  __pyx_t_36 = __pyx_v_p;
+                  __pyx_t_37 = 2;
+                  __pyx_t_85[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_15 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_a.strides[1]) )));
+                  __pyx_t_85[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_33 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_35 * __pyx_v_alo_a.strides[1]) )));
+                  __pyx_t_85[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_36 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_37 * __pyx_v_alo_a.strides[1]) )));
+                  __pyx_t_37 = __pyx_v_q;
+                  __pyx_t_36 = 0;
+                  __pyx_t_35 = __pyx_v_q;
+                  __pyx_t_33 = 1;
+                  __pyx_t_16 = __pyx_v_q;
+                  __pyx_t_15 = 2;
+                  __pyx_t_86[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_37 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_36 * __pyx_v_alo_a.strides[1]) )));
+                  __pyx_t_86[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_35 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_33 * __pyx_v_alo_a.strides[1]) )));
+                  __pyx_t_86[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_16 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_a.strides[1]) )));
+/* … */
+                  __pyx_v_sj = (__pyx_v_sj - ((__pyx_f_7ocypete_clmbsfx(__pyx_t_85, __pyx_t_86, (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_15 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_33 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_35 * __pyx_v_alo_e.strides[1]) ))), __pyx_t_87, __pyx_t_88, __pyx_t_79, __pyx_t_89, __pyx_t_90, __pyx_v_cart, 0) * __pyx_v_f) * (*((short *) ( /* dim=0 */ (__pyx_v_alo_z.data + __pyx_t_36 * __pyx_v_alo_z.strides[0]) )))));
+                  __PYX_XDEC_MEMVIEW(&__pyx_t_79, 1);
+                  __pyx_t_79.memview = NULL;
+                  __pyx_t_79.data = NULL;
+
+418:  						                    alo_e[p,i], alo_e[q,j], [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \
+
                  __pyx_t_15 = __pyx_v_p;
+                  __pyx_t_16 = __pyx_v_i;
+                  __pyx_t_33 = __pyx_v_q;
+                  __pyx_t_35 = __pyx_v_j;
+                  __pyx_t_36 = __pyx_v_p;
+                  __pyx_t_37 = 0;
+                  __pyx_t_38 = __pyx_v_p;
+                  __pyx_t_34 = 1;
+                  __pyx_t_39 = __pyx_v_p;
+                  __pyx_t_40 = 2;
+                  __pyx_t_87[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_36 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_37 * __pyx_v_alo_o.strides[1]) )));
+                  __pyx_t_87[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_38 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_34 * __pyx_v_alo_o.strides[1]) )));
+                  __pyx_t_87[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_39 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_40 * __pyx_v_alo_o.strides[1]) )));
+                  __pyx_t_40 = __pyx_v_q;
+                  __pyx_t_39 = 0;
+                  __pyx_t_34 = __pyx_v_q;
+                  __pyx_t_38 = 1;
+                  __pyx_t_37 = __pyx_v_q;
+                  __pyx_t_36 = 2;
+                  __pyx_t_88[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_40 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_39 * __pyx_v_alo_o.strides[1]) )));
+                  __pyx_t_88[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_34 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_38 * __pyx_v_alo_o.strides[1]) )));
+                  __pyx_t_88[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_37 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_36 * __pyx_v_alo_o.strides[1]) )));
+
+419:  						                    alo_x[r], [0,0,0], [0,0,0], cart, 0  ) * f * alo_z[r]
+
                  __pyx_t_79.data = __pyx_v_alo_x.data;
+                  __pyx_t_79.memview = __pyx_v_alo_x.memview;
+                  __PYX_INC_MEMVIEW(&__pyx_t_79, 0);
+                  {
+    Py_ssize_t __pyx_tmp_idx = __pyx_v_r;
+    Py_ssize_t __pyx_tmp_stride = __pyx_v_alo_x.strides[0];
+        __pyx_t_79.data += __pyx_tmp_idx * __pyx_tmp_stride;
+}
+
+__pyx_t_79.shape[0] = __pyx_v_alo_x.shape[1];
+__pyx_t_79.strides[0] = __pyx_v_alo_x.strides[1];
+    __pyx_t_79.suboffsets[0] = -1;
+
+__pyx_t_89[0] = 0;
+                  __pyx_t_89[1] = 0;
+                  __pyx_t_89[2] = 0;
+                  __pyx_t_90[0] = 0.0;
+                  __pyx_t_90[1] = 0.0;
+                  __pyx_t_90[2] = 0.0;
+/* … */
+                  __pyx_t_36 = __pyx_v_r;
+
 420: 
+
+421: 								if ala[q] == atom:
+
                __pyx_t_36 = __pyx_v_q;
+                __pyx_t_7 = (((*((short *) ( /* dim=0 */ (__pyx_v_ala.data + __pyx_t_36 * __pyx_v_ala.strides[0]) ))) == __pyx_v_atom) != 0);
+                if (__pyx_t_7) {
+/* … */
+                }
+              }
+            }
+          }
+
+422: 									sj -= clmbsfx([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]],  \
+
                  __pyx_t_36 = __pyx_v_p;
+                  __pyx_t_35 = 0;
+                  __pyx_t_33 = __pyx_v_p;
+                  __pyx_t_16 = 1;
+                  __pyx_t_15 = __pyx_v_p;
+                  __pyx_t_37 = 2;
+                  __pyx_t_91[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_36 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_35 * __pyx_v_alo_a.strides[1]) )));
+                  __pyx_t_91[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_33 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_a.strides[1]) )));
+                  __pyx_t_91[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_15 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_37 * __pyx_v_alo_a.strides[1]) )));
+                  __pyx_t_37 = __pyx_v_q;
+                  __pyx_t_15 = 0;
+                  __pyx_t_16 = __pyx_v_q;
+                  __pyx_t_33 = 1;
+                  __pyx_t_35 = __pyx_v_q;
+                  __pyx_t_36 = 2;
+                  __pyx_t_92[0] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_37 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_a.strides[1]) )));
+                  __pyx_t_92[1] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_16 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_33 * __pyx_v_alo_a.strides[1]) )));
+                  __pyx_t_92[2] = (*((short *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_a.data + __pyx_t_35 * __pyx_v_alo_a.strides[0]) ) + __pyx_t_36 * __pyx_v_alo_a.strides[1]) )));
+/* … */
+                  __pyx_v_sj = (__pyx_v_sj - ((__pyx_f_7ocypete_clmbsfx(__pyx_t_91, __pyx_t_92, (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_36 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_35 * __pyx_v_alo_e.strides[1]) ))), (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_e.data + __pyx_t_33 * __pyx_v_alo_e.strides[0]) ) + __pyx_t_16 * __pyx_v_alo_e.strides[1]) ))), __pyx_t_93, __pyx_t_94, __pyx_t_79, __pyx_t_95, __pyx_t_96, __pyx_v_cart, 1) * __pyx_v_f) * (*((short *) ( /* dim=0 */ (__pyx_v_alo_z.data + __pyx_t_15 * __pyx_v_alo_z.strides[0]) )))));
+                  __PYX_XDEC_MEMVIEW(&__pyx_t_79, 1);
+                  __pyx_t_79.memview = NULL;
+                  __pyx_t_79.data = NULL;
+
+423:  						                    alo_e[p,i], alo_e[q,j], [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \
+
                  __pyx_t_36 = __pyx_v_p;
+                  __pyx_t_35 = __pyx_v_i;
+                  __pyx_t_33 = __pyx_v_q;
+                  __pyx_t_16 = __pyx_v_j;
+                  __pyx_t_15 = __pyx_v_p;
+                  __pyx_t_37 = 0;
+                  __pyx_t_38 = __pyx_v_p;
+                  __pyx_t_34 = 1;
+                  __pyx_t_39 = __pyx_v_p;
+                  __pyx_t_40 = 2;
+                  __pyx_t_93[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_15 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_37 * __pyx_v_alo_o.strides[1]) )));
+                  __pyx_t_93[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_38 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_34 * __pyx_v_alo_o.strides[1]) )));
+                  __pyx_t_93[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_39 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_40 * __pyx_v_alo_o.strides[1]) )));
+                  __pyx_t_40 = __pyx_v_q;
+                  __pyx_t_39 = 0;
+                  __pyx_t_34 = __pyx_v_q;
+                  __pyx_t_38 = 1;
+                  __pyx_t_37 = __pyx_v_q;
+                  __pyx_t_15 = 2;
+                  __pyx_t_94[0] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_40 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_39 * __pyx_v_alo_o.strides[1]) )));
+                  __pyx_t_94[1] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_34 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_38 * __pyx_v_alo_o.strides[1]) )));
+                  __pyx_t_94[2] = (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_o.data + __pyx_t_37 * __pyx_v_alo_o.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_o.strides[1]) )));
+
+424:  						                    alo_x[r], [0,0,0], [0,0,0], cart, 1  ) * f * alo_z[r]
+
                  __pyx_t_79.data = __pyx_v_alo_x.data;
+                  __pyx_t_79.memview = __pyx_v_alo_x.memview;
+                  __PYX_INC_MEMVIEW(&__pyx_t_79, 0);
+                  {
+    Py_ssize_t __pyx_tmp_idx = __pyx_v_r;
+    Py_ssize_t __pyx_tmp_stride = __pyx_v_alo_x.strides[0];
+        __pyx_t_79.data += __pyx_tmp_idx * __pyx_tmp_stride;
+}
+
+__pyx_t_79.shape[0] = __pyx_v_alo_x.shape[1];
+__pyx_t_79.strides[0] = __pyx_v_alo_x.strides[1];
+    __pyx_t_79.suboffsets[0] = -1;
+
+__pyx_t_95[0] = 0;
+                  __pyx_t_95[1] = 0;
+                  __pyx_t_95[2] = 0;
+                  __pyx_t_96[0] = 0.0;
+                  __pyx_t_96[1] = 0.0;
+                  __pyx_t_96[2] = 0.0;
+/* … */
+                  __pyx_t_15 = __pyx_v_r;
+
 425: 
+
 426: 
+
+427: 					oeifx[p,q] = oeifx[q,p] = sk + sj + sh
+
          __pyx_t_14 = ((__pyx_v_sk + __pyx_v_sj) + __pyx_v_sh);
+          __pyx_t_15 = __pyx_v_p;
+          __pyx_t_16 = __pyx_v_q;
+          *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_oeifx.data + __pyx_t_15 * __pyx_v_oeifx.strides[0]) ) + __pyx_t_16 * __pyx_v_oeifx.strides[1]) )) = __pyx_t_14;
+          __pyx_t_16 = __pyx_v_q;
+          __pyx_t_15 = __pyx_v_p;
+          *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_oeifx.data + __pyx_t_16 * __pyx_v_oeifx.strides[0]) ) + __pyx_t_15 * __pyx_v_oeifx.strides[1]) )) = __pyx_t_14;
+
+428: 					overlapfx[p,q] = overlapfx[q,p] = ss
+
          __pyx_t_15 = __pyx_v_p;
+          __pyx_t_16 = __pyx_v_q;
+          *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_overlapfx.data + __pyx_t_15 * __pyx_v_overlapfx.strides[0]) ) + __pyx_t_16 * __pyx_v_overlapfx.strides[1]) )) = __pyx_v_ss;
+          __pyx_t_16 = __pyx_v_q;
+          __pyx_t_15 = __pyx_v_p;
+          *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_overlapfx.data + __pyx_t_16 * __pyx_v_overlapfx.strides[0]) ) + __pyx_t_15 * __pyx_v_overlapfx.strides[1]) )) = __pyx_v_ss;
+        }
+      }
+
 429: 
+
 430: 	#----------------------------------------End one electron--------------------------------------|
+
 431: 
+
 432: 	#---------------------------------------Begin two electron-------------------------------------|
+
 433: 
+
+434: 			for p in range(0, nb):
+
      __pyx_t_13 = __pyx_v_nb;
+      __pyx_t_23 = __pyx_t_13;
+      for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
+        __pyx_v_p = __pyx_t_24;
+
+435: 				for q in range(0, p+1):
+
        __pyx_t_25 = (__pyx_v_p + 1);
+        __pyx_t_26 = __pyx_t_25;
+        for (__pyx_t_27 = 0; __pyx_t_27 < __pyx_t_26; __pyx_t_27+=1) {
+          __pyx_v_q = __pyx_t_27;
+
 436: 
+
+437: 					si = 0.0
+
          __pyx_v_si = 0.0;
+
 438: 
+
+439: 					i = p*(p+1)//2 + q
+
          __pyx_v_i = (((__pyx_v_p * (__pyx_v_p + 1)) / 2) + __pyx_v_q);
+
+440: 					for r in range(0, nb):
+
          __pyx_t_29 = __pyx_v_nb;
+          __pyx_t_32 = __pyx_t_29;
+          for (__pyx_t_82 = 0; __pyx_t_82 < __pyx_t_32; __pyx_t_82+=1) {
+            __pyx_v_r = __pyx_t_82;
+
+441: 						for s in range(0, r+1):
+
            __pyx_t_97 = (__pyx_v_r + 1);
+            __pyx_t_98 = __pyx_t_97;
+            for (__pyx_t_83 = 0; __pyx_t_83 < __pyx_t_98; __pyx_t_83+=1) {
+              __pyx_v_s = __pyx_t_83;
+
 442: 
+
+443: 							j = r*(r+1)//2 + s
+
              __pyx_v_j = (((__pyx_v_r * (__pyx_v_r + 1)) / 2) + __pyx_v_s);
+
 444: 
+
+445: 							if i >= j:
+
              __pyx_t_7 = ((__pyx_v_i >= __pyx_v_j) != 0);
+              if (__pyx_t_7) {
+/* … */
+              }
+
+446: 								si = 0.0
+
                __pyx_v_si = 0.0;
+
+447: 								if ala[p] == atom:
+
                __pyx_t_15 = __pyx_v_p;
+                __pyx_t_7 = (((*((short *) ( /* dim=0 */ (__pyx_v_ala.data + __pyx_t_15 * __pyx_v_ala.strides[0]) ))) == __pyx_v_atom) != 0);
+                if (__pyx_t_7) {
+/* … */
+                }
+
+448: 									si += erifx(alo , p ,q ,r ,s ,alo_n ,alo_c ,alo_e ,alo_a , alo_o, cart, 0)
+
                  __pyx_v_si = (__pyx_v_si + __pyx_f_7ocypete_erifx(__pyx_v_alo, __pyx_v_p, __pyx_v_q, __pyx_v_r, __pyx_v_s, __pyx_v_alo_n, __pyx_v_alo_c, __pyx_v_alo_e, __pyx_v_alo_a, __pyx_v_alo_o, __pyx_v_cart, 0));
+
+449: 								if ala[q] == atom:
+
                __pyx_t_15 = __pyx_v_q;
+                __pyx_t_7 = (((*((short *) ( /* dim=0 */ (__pyx_v_ala.data + __pyx_t_15 * __pyx_v_ala.strides[0]) ))) == __pyx_v_atom) != 0);
+                if (__pyx_t_7) {
+/* … */
+                }
+
+450: 									si += erifx(alo , p ,q ,r ,s ,alo_n ,alo_c ,alo_e ,alo_a , alo_o, cart, 1)
+
                  __pyx_v_si = (__pyx_v_si + __pyx_f_7ocypete_erifx(__pyx_v_alo, __pyx_v_p, __pyx_v_q, __pyx_v_r, __pyx_v_s, __pyx_v_alo_n, __pyx_v_alo_c, __pyx_v_alo_e, __pyx_v_alo_a, __pyx_v_alo_o, __pyx_v_cart, 1));
+
+451: 								if ala[r] == atom:
+
                __pyx_t_15 = __pyx_v_r;
+                __pyx_t_7 = (((*((short *) ( /* dim=0 */ (__pyx_v_ala.data + __pyx_t_15 * __pyx_v_ala.strides[0]) ))) == __pyx_v_atom) != 0);
+                if (__pyx_t_7) {
+/* … */
+                }
+
+452: 									si += erifx(alo , p ,q ,r ,s ,alo_n ,alo_c ,alo_e ,alo_a , alo_o, cart, 2)
+
                  __pyx_v_si = (__pyx_v_si + __pyx_f_7ocypete_erifx(__pyx_v_alo, __pyx_v_p, __pyx_v_q, __pyx_v_r, __pyx_v_s, __pyx_v_alo_n, __pyx_v_alo_c, __pyx_v_alo_e, __pyx_v_alo_a, __pyx_v_alo_o, __pyx_v_cart, 2));
+
+453: 								if ala[s] == atom:
+
                __pyx_t_15 = __pyx_v_s;
+                __pyx_t_7 = (((*((short *) ( /* dim=0 */ (__pyx_v_ala.data + __pyx_t_15 * __pyx_v_ala.strides[0]) ))) == __pyx_v_atom) != 0);
+                if (__pyx_t_7) {
+/* … */
+                }
+
+454: 									si += erifx(alo , p ,q ,r ,s ,alo_n ,alo_c ,alo_e ,alo_a , alo_o, cart, 3)
+
                  __pyx_v_si = (__pyx_v_si + __pyx_f_7ocypete_erifx(__pyx_v_alo, __pyx_v_p, __pyx_v_q, __pyx_v_r, __pyx_v_s, __pyx_v_alo_n, __pyx_v_alo_c, __pyx_v_alo_e, __pyx_v_alo_a, __pyx_v_alo_o, __pyx_v_cart, 3));
+
 455: 
+
+456: 							teifx[p,q,r,s] = teifx[p,q,s,r] = teifx[q,p,s,r] = teifx[q,p,r,s] = \
+
              __pyx_t_15 = __pyx_v_p;
+              __pyx_t_16 = __pyx_v_q;
+              __pyx_t_33 = __pyx_v_r;
+              __pyx_t_35 = __pyx_v_s;
+              *((double *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_teifx.data + __pyx_t_15 * __pyx_v_teifx.strides[0]) ) + __pyx_t_16 * __pyx_v_teifx.strides[1]) ) + __pyx_t_33 * __pyx_v_teifx.strides[2]) ) + __pyx_t_35 * __pyx_v_teifx.strides[3]) )) = __pyx_v_si;
+              __pyx_t_35 = __pyx_v_p;
+              __pyx_t_33 = __pyx_v_q;
+              __pyx_t_16 = __pyx_v_s;
+              __pyx_t_15 = __pyx_v_r;
+              *((double *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_teifx.data + __pyx_t_35 * __pyx_v_teifx.strides[0]) ) + __pyx_t_33 * __pyx_v_teifx.strides[1]) ) + __pyx_t_16 * __pyx_v_teifx.strides[2]) ) + __pyx_t_15 * __pyx_v_teifx.strides[3]) )) = __pyx_v_si;
+              __pyx_t_15 = __pyx_v_q;
+              __pyx_t_16 = __pyx_v_p;
+              __pyx_t_33 = __pyx_v_s;
+              __pyx_t_35 = __pyx_v_r;
+              *((double *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_teifx.data + __pyx_t_15 * __pyx_v_teifx.strides[0]) ) + __pyx_t_16 * __pyx_v_teifx.strides[1]) ) + __pyx_t_33 * __pyx_v_teifx.strides[2]) ) + __pyx_t_35 * __pyx_v_teifx.strides[3]) )) = __pyx_v_si;
+              __pyx_t_35 = __pyx_v_q;
+              __pyx_t_33 = __pyx_v_p;
+              __pyx_t_16 = __pyx_v_r;
+              __pyx_t_15 = __pyx_v_s;
+              *((double *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_teifx.data + __pyx_t_35 * __pyx_v_teifx.strides[0]) ) + __pyx_t_33 * __pyx_v_teifx.strides[1]) ) + __pyx_t_16 * __pyx_v_teifx.strides[2]) ) + __pyx_t_15 * __pyx_v_teifx.strides[3]) )) = __pyx_v_si;
+
+457: 							teifx[r,s,p,q] = teifx[r,s,q,p] = teifx[s,r,q,p] = teifx[s,r,p,q] = si
+
              __pyx_t_15 = __pyx_v_r;
+              __pyx_t_16 = __pyx_v_s;
+              __pyx_t_33 = __pyx_v_p;
+              __pyx_t_35 = __pyx_v_q;
+              *((double *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_teifx.data + __pyx_t_15 * __pyx_v_teifx.strides[0]) ) + __pyx_t_16 * __pyx_v_teifx.strides[1]) ) + __pyx_t_33 * __pyx_v_teifx.strides[2]) ) + __pyx_t_35 * __pyx_v_teifx.strides[3]) )) = __pyx_v_si;
+              __pyx_t_35 = __pyx_v_r;
+              __pyx_t_33 = __pyx_v_s;
+              __pyx_t_16 = __pyx_v_q;
+              __pyx_t_15 = __pyx_v_p;
+              *((double *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_teifx.data + __pyx_t_35 * __pyx_v_teifx.strides[0]) ) + __pyx_t_33 * __pyx_v_teifx.strides[1]) ) + __pyx_t_16 * __pyx_v_teifx.strides[2]) ) + __pyx_t_15 * __pyx_v_teifx.strides[3]) )) = __pyx_v_si;
+              __pyx_t_15 = __pyx_v_s;
+              __pyx_t_16 = __pyx_v_r;
+              __pyx_t_33 = __pyx_v_q;
+              __pyx_t_35 = __pyx_v_p;
+              *((double *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_teifx.data + __pyx_t_15 * __pyx_v_teifx.strides[0]) ) + __pyx_t_16 * __pyx_v_teifx.strides[1]) ) + __pyx_t_33 * __pyx_v_teifx.strides[2]) ) + __pyx_t_35 * __pyx_v_teifx.strides[3]) )) = __pyx_v_si;
+              __pyx_t_35 = __pyx_v_s;
+              __pyx_t_33 = __pyx_v_r;
+              __pyx_t_16 = __pyx_v_p;
+              __pyx_t_15 = __pyx_v_q;
+              *((double *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_teifx.data + __pyx_t_35 * __pyx_v_teifx.strides[0]) ) + __pyx_t_33 * __pyx_v_teifx.strides[1]) ) + __pyx_t_16 * __pyx_v_teifx.strides[2]) ) + __pyx_t_15 * __pyx_v_teifx.strides[3]) )) = __pyx_v_si;
+            }
+          }
+        }
+      }
+
 458: 
+
 459: 	#----------------------------------------End two electron--------------------------------------|
+
 460: 
+
 461: 	#-------------------------------------------build Fock-----------------------------------------|
+
 462: 
+
+463: 			for p in range(0, nb):
+
      __pyx_t_13 = __pyx_v_nb;
+      __pyx_t_23 = __pyx_t_13;
+      for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
+        __pyx_v_p = __pyx_t_24;
+
+464: 				for q in range(0, nb):
+
        __pyx_t_27 = __pyx_v_nb;
+        __pyx_t_29 = __pyx_t_27;
+        for (__pyx_t_32 = 0; __pyx_t_32 < __pyx_t_29; __pyx_t_32+=1) {
+          __pyx_v_q = __pyx_t_32;
+
+465: 					sf = 0.0
+
          __pyx_v_sf = 0.0;
+
+466: 					for r in range(0, nb):
+
          __pyx_t_82 = __pyx_v_nb;
+          __pyx_t_83 = __pyx_t_82;
+          for (__pyx_t_84 = 0; __pyx_t_84 < __pyx_t_83; __pyx_t_84+=1) {
+            __pyx_v_r = __pyx_t_84;
+
+467: 						for s in range(0, nb):
+
            __pyx_t_99 = __pyx_v_nb;
+            __pyx_t_100 = __pyx_t_99;
+            for (__pyx_t_101 = 0; __pyx_t_101 < __pyx_t_100; __pyx_t_101+=1) {
+              __pyx_v_s = __pyx_t_101;
+
+468: 							sf += (2.0 * teifx[p,q,r,s] - teifx[p,s,q,r]) * density[s,r]
+
              __pyx_t_15 = __pyx_v_p;
+              __pyx_t_16 = __pyx_v_q;
+              __pyx_t_33 = __pyx_v_r;
+              __pyx_t_35 = __pyx_v_s;
+              __pyx_t_36 = __pyx_v_p;
+              __pyx_t_37 = __pyx_v_s;
+              __pyx_t_38 = __pyx_v_q;
+              __pyx_t_34 = __pyx_v_r;
+              __pyx_t_39 = __pyx_v_s;
+              __pyx_t_40 = __pyx_v_r;
+              __pyx_v_sf = (__pyx_v_sf + (((2.0 * (*((double *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_teifx.data + __pyx_t_15 * __pyx_v_teifx.strides[0]) ) + __pyx_t_16 * __pyx_v_teifx.strides[1]) ) + __pyx_t_33 * __pyx_v_teifx.strides[2]) ) + __pyx_t_35 * __pyx_v_teifx.strides[3]) )))) - (*((double *) ( /* dim=3 */ (( /* dim=2 */ (( /* dim=1 */ (( /* dim=0 */ (__pyx_v_teifx.data + __pyx_t_36 * __pyx_v_teifx.strides[0]) ) + __pyx_t_37 * __pyx_v_teifx.strides[1]) ) + __pyx_t_38 * __pyx_v_teifx.strides[2]) ) + __pyx_t_34 * __pyx_v_teifx.strides[3]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_density.data + __pyx_t_39 * __pyx_v_density.strides[0]) ) + __pyx_t_40 * __pyx_v_density.strides[1]) )))));
+            }
+          }
+
 469: 
+
+470: 					fockfx[p,q] = oeifx[p,q] + sf
+
          __pyx_t_40 = __pyx_v_p;
+          __pyx_t_39 = __pyx_v_q;
+          __pyx_t_34 = __pyx_v_p;
+          __pyx_t_38 = __pyx_v_q;
+          *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_fockfx.data + __pyx_t_34 * __pyx_v_fockfx.strides[0]) ) + __pyx_t_38 * __pyx_v_fockfx.strides[1]) )) = ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_oeifx.data + __pyx_t_40 * __pyx_v_oeifx.strides[0]) ) + __pyx_t_39 * __pyx_v_oeifx.strides[1]) ))) + __pyx_v_sf);
+        }
+      }
+
 471: 
+
 472: 	#|----------------------------------------build energy-----------------------------------------|
+
 473: 
+
+474: 			force = 0.0
+
      __pyx_v_force = 0.0;
+
+475: 			for p in range(0, nb):
+
      __pyx_t_13 = __pyx_v_nb;
+      __pyx_t_23 = __pyx_t_13;
+      for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
+        __pyx_v_p = __pyx_t_24;
+
+476: 				for q in range(0, nb):
+
        __pyx_t_27 = __pyx_v_nb;
+        __pyx_t_29 = __pyx_t_27;
+        for (__pyx_t_32 = 0; __pyx_t_32 < __pyx_t_29; __pyx_t_32+=1) {
+          __pyx_v_q = __pyx_t_32;
+
+477: 					force -= density[p,q] * (fockfx[q,p] + oeifx[q,p])
+
          __pyx_t_39 = __pyx_v_p;
+          __pyx_t_40 = __pyx_v_q;
+          __pyx_t_38 = __pyx_v_q;
+          __pyx_t_34 = __pyx_v_p;
+          __pyx_t_37 = __pyx_v_q;
+          __pyx_t_36 = __pyx_v_p;
+          __pyx_v_force = (__pyx_v_force - ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_density.data + __pyx_t_39 * __pyx_v_density.strides[0]) ) + __pyx_t_40 * __pyx_v_density.strides[1]) ))) * ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_fockfx.data + __pyx_t_38 * __pyx_v_fockfx.strides[0]) ) + __pyx_t_34 * __pyx_v_fockfx.strides[1]) ))) + (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_oeifx.data + __pyx_t_37 * __pyx_v_oeifx.strides[0]) ) + __pyx_t_36 * __pyx_v_oeifx.strides[1]) ))))));
+        }
+      }
+
 478: 
+
 479: 	#|-----------------------------------density weighted energy-----------------------------------|
+
+480: 			for p in range(0, nb):
+
      __pyx_t_13 = __pyx_v_nb;
+      __pyx_t_23 = __pyx_t_13;
+      for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
+        __pyx_v_p = __pyx_t_24;
+
+481: 				for q in range(0, nb):
+
        __pyx_t_27 = __pyx_v_nb;
+        __pyx_t_29 = __pyx_t_27;
+        for (__pyx_t_32 = 0; __pyx_t_32 < __pyx_t_29; __pyx_t_32+=1) {
+          __pyx_v_q = __pyx_t_32;
+
+482: 					energy[p,q] = 0.0
+
          __pyx_t_36 = __pyx_v_p;
+          __pyx_t_37 = __pyx_v_q;
+          *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_energy.data + __pyx_t_36 * __pyx_v_energy.strides[0]) ) + __pyx_t_37 * __pyx_v_energy.strides[1]) )) = 0.0;
+
+483: 					for r in range(0, nb):
+
          __pyx_t_82 = __pyx_v_nb;
+          __pyx_t_83 = __pyx_t_82;
+          for (__pyx_t_84 = 0; __pyx_t_84 < __pyx_t_83; __pyx_t_84+=1) {
+            __pyx_v_r = __pyx_t_84;
+
+484: 						energy[p,q] += fock[p,r] * density[r,q]
+
            __pyx_t_37 = __pyx_v_p;
+            __pyx_t_36 = __pyx_v_r;
+            __pyx_t_34 = __pyx_v_r;
+            __pyx_t_38 = __pyx_v_q;
+            __pyx_t_40 = __pyx_v_p;
+            __pyx_t_39 = __pyx_v_q;
+            *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_energy.data + __pyx_t_40 * __pyx_v_energy.strides[0]) ) + __pyx_t_39 * __pyx_v_energy.strides[1]) )) += ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_fock.data + __pyx_t_37 * __pyx_v_fock.strides[0]) ) + __pyx_t_36 * __pyx_v_fock.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_density.data + __pyx_t_34 * __pyx_v_density.strides[0]) ) + __pyx_t_38 * __pyx_v_density.strides[1]) ))));
+          }
+        }
+      }
+
+485: 			for p in range(0, nb):
+
      __pyx_t_13 = __pyx_v_nb;
+      __pyx_t_23 = __pyx_t_13;
+      for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
+        __pyx_v_p = __pyx_t_24;
+
+486: 				for q in range(0, nb):
+
        __pyx_t_27 = __pyx_v_nb;
+        __pyx_t_29 = __pyx_t_27;
+        for (__pyx_t_32 = 0; __pyx_t_32 < __pyx_t_29; __pyx_t_32+=1) {
+          __pyx_v_q = __pyx_t_32;
+
+487: 					weightedEnergy[p,q] = 0.0
+
          __pyx_t_38 = __pyx_v_p;
+          __pyx_t_34 = __pyx_v_q;
+          *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_weightedEnergy.data + __pyx_t_38 * __pyx_v_weightedEnergy.strides[0]) ) + __pyx_t_34 * __pyx_v_weightedEnergy.strides[1]) )) = 0.0;
+
+488: 					for r in range(0, nb):
+
          __pyx_t_82 = __pyx_v_nb;
+          __pyx_t_83 = __pyx_t_82;
+          for (__pyx_t_84 = 0; __pyx_t_84 < __pyx_t_83; __pyx_t_84+=1) {
+            __pyx_v_r = __pyx_t_84;
+
+489: 						weightedEnergy[p,q] += density[p,r] * energy[r,q]
+
            __pyx_t_34 = __pyx_v_p;
+            __pyx_t_38 = __pyx_v_r;
+            __pyx_t_36 = __pyx_v_r;
+            __pyx_t_37 = __pyx_v_q;
+            __pyx_t_39 = __pyx_v_p;
+            __pyx_t_40 = __pyx_v_q;
+            *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_weightedEnergy.data + __pyx_t_39 * __pyx_v_weightedEnergy.strides[0]) ) + __pyx_t_40 * __pyx_v_weightedEnergy.strides[1]) )) += ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_density.data + __pyx_t_34 * __pyx_v_density.strides[0]) ) + __pyx_t_38 * __pyx_v_density.strides[1]) ))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_energy.data + __pyx_t_36 * __pyx_v_energy.strides[0]) ) + __pyx_t_37 * __pyx_v_energy.strides[1]) ))));
+          }
+        }
+      }
+
 490: 
+
 491: 	#|-------------------------------------overlap contribution------------------------------------|
+
 492: 
+
+493: 			for p in range(0, nb):
+
      __pyx_t_13 = __pyx_v_nb;
+      __pyx_t_23 = __pyx_t_13;
+      for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
+        __pyx_v_p = __pyx_t_24;
+
+494: 				for q in range(0, nb):
+
        __pyx_t_27 = __pyx_v_nb;
+        __pyx_t_29 = __pyx_t_27;
+        for (__pyx_t_32 = 0; __pyx_t_32 < __pyx_t_29; __pyx_t_32+=1) {
+          __pyx_v_q = __pyx_t_32;
+
+495: 					force += 2.0 * overlapfx[p,q] * weightedEnergy[q,p]
+
          __pyx_t_37 = __pyx_v_p;
+          __pyx_t_36 = __pyx_v_q;
+          __pyx_t_38 = __pyx_v_q;
+          __pyx_t_34 = __pyx_v_p;
+          __pyx_v_force = (__pyx_v_force + ((2.0 * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_overlapfx.data + __pyx_t_37 * __pyx_v_overlapfx.strides[0]) ) + __pyx_t_36 * __pyx_v_overlapfx.strides[1]) )))) * (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_weightedEnergy.data + __pyx_t_38 * __pyx_v_weightedEnergy.strides[0]) ) + __pyx_t_34 * __pyx_v_weightedEnergy.strides[1]) )))));
+        }
+      }
+
 496: 
+
 497: 	#|---------------------------------------nuclear repulsion-------------------------------------|
+
 498: 
+
+499: 			for i in range(0, na):
+
      __pyx_t_13 = __pyx_v_na;
+      __pyx_t_23 = __pyx_t_13;
+      for (__pyx_t_24 = 0; __pyx_t_24 < __pyx_t_23; __pyx_t_24+=1) {
+        __pyx_v_i = __pyx_t_24;
+
+500: 				ra = sqrt((alo_x[atom,0] - alo_x[i,0])*(alo_x[atom,0] - alo_x[i,0]) + (alo_x[atom,1] - alo_x[i,1])*(alo_x[atom,1] - alo_x[i,1]) + \
+
        __pyx_t_34 = __pyx_v_atom;
+        __pyx_t_38 = 0;
+        __pyx_t_36 = __pyx_v_i;
+        __pyx_t_37 = 0;
+        __pyx_t_40 = __pyx_v_atom;
+        __pyx_t_39 = 0;
+        __pyx_t_35 = __pyx_v_i;
+        __pyx_t_33 = 0;
+        __pyx_t_16 = __pyx_v_atom;
+        __pyx_t_15 = 1;
+        __pyx_t_41 = __pyx_v_i;
+        __pyx_t_42 = 1;
+        __pyx_t_43 = __pyx_v_atom;
+        __pyx_t_44 = 1;
+        __pyx_t_45 = __pyx_v_i;
+        __pyx_t_46 = 1;
+/* … */
+        __pyx_v_ra = sqrt((((((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_34 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_38 * __pyx_v_alo_x.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_36 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_37 * __pyx_v_alo_x.strides[1]) )))) * ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_40 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_39 * __pyx_v_alo_x.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_35 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_33 * __pyx_v_alo_x.strides[1]) ))))) + (((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_16 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_15 * __pyx_v_alo_x.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_41 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_42 * __pyx_v_alo_x.strides[1]) )))) * ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_43 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_44 * __pyx_v_alo_x.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_45 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_46 * __pyx_v_alo_x.strides[1]) )))))) + (((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_47 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_48 * __pyx_v_alo_x.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_49 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_50 * __pyx_v_alo_x.strides[1]) )))) * ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_51 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_52 * __pyx_v_alo_x.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_53 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_54 * __pyx_v_alo_x.strides[1]) )))))));
+
+501: 					     (alo_x[atom,2] - alo_x[i,2])*(alo_x[atom,2] - alo_x[i,2]))
+
        __pyx_t_47 = __pyx_v_atom;
+        __pyx_t_48 = 2;
+        __pyx_t_49 = __pyx_v_i;
+        __pyx_t_50 = 2;
+        __pyx_t_51 = __pyx_v_atom;
+        __pyx_t_52 = 2;
+        __pyx_t_53 = __pyx_v_i;
+        __pyx_t_54 = 2;
+
+502: 				rb = alo_x[atom,cart] - alo_x[i,cart]
+
        __pyx_t_54 = __pyx_v_atom;
+        __pyx_t_53 = __pyx_v_cart;
+        __pyx_t_52 = __pyx_v_i;
+        __pyx_t_51 = __pyx_v_cart;
+        __pyx_v_rb = ((*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_54 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_53 * __pyx_v_alo_x.strides[1]) ))) - (*((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_alo_x.data + __pyx_t_52 * __pyx_v_alo_x.strides[0]) ) + __pyx_t_51 * __pyx_v_alo_x.strides[1]) ))));
+
+503: 				if ra != 0:
+
        __pyx_t_7 = ((__pyx_v_ra != 0.0) != 0);
+        if (__pyx_t_7) {
+/* … */
+        }
+      }
+
+504: 					force += rb * alo_z[i] * alo_z[atom]/(ra*ra*ra)
+
          __pyx_t_51 = __pyx_v_i;
+          __pyx_t_52 = __pyx_v_atom;
+          __pyx_v_force = (__pyx_v_force + (((__pyx_v_rb * (*((short *) ( /* dim=0 */ (__pyx_v_alo_z.data + __pyx_t_51 * __pyx_v_alo_z.strides[0]) )))) * (*((short *) ( /* dim=0 */ (__pyx_v_alo_z.data + __pyx_t_52 * __pyx_v_alo_z.strides[0]) )))) / ((__pyx_v_ra * __pyx_v_ra) * __pyx_v_ra)));
+
 505: 	#|------------------------------------------final forces---------------------------------------|
+
+506: 			if abs(force) > 1e-12:
+
      __pyx_t_7 = ((fabs(__pyx_v_force) > 1e-12) != 0);
+      if (__pyx_t_7) {
+/* … */
+      }
+    }
+  }
+
+507: 				vires[atom,cart] = force
+
        __pyx_t_52 = __pyx_v_atom;
+        __pyx_t_51 = __pyx_v_cart;
+        *((double *) ( /* dim=1 */ (( /* dim=0 */ (__pyx_v_vires.data + __pyx_t_52 * __pyx_v_vires.strides[0]) ) + __pyx_t_51 * __pyx_v_vires.strides[1]) )) = __pyx_v_force;
+
 508: 
+
+509: 	return Vx
+
  __Pyx_XDECREF(__pyx_r);
+  __Pyx_INCREF(__pyx_v_Vx);
+  __pyx_r = __pyx_v_Vx;
+  goto __pyx_L0;
+
+510: import time
+
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_time, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 510, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_time, __pyx_t_1) < 0) __PYX_ERR(0, 510, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+
+511: import rhf
+
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_rhf, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 511, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_rhf, __pyx_t_1) < 0) __PYX_ERR(0, 511, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+
+512: a , b, d = rhf.mol([])
+
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_rhf); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 512, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_mol); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 512, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 512, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_1);
+  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 512, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  if ((likely(PyTuple_CheckExact(__pyx_t_3))) || (PyList_CheckExact(__pyx_t_3))) {
+    PyObject* sequence = __pyx_t_3;
+    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
+    if (unlikely(size != 3)) {
+      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
+      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
+      __PYX_ERR(0, 512, __pyx_L1_error)
+    }
+    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
+    if (likely(PyTuple_CheckExact(sequence))) {
+      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
+      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
+      __pyx_t_4 = PyTuple_GET_ITEM(sequence, 2); 
+    } else {
+      __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
+      __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
+      __pyx_t_4 = PyList_GET_ITEM(sequence, 2); 
+    }
+    __Pyx_INCREF(__pyx_t_1);
+    __Pyx_INCREF(__pyx_t_2);
+    __Pyx_INCREF(__pyx_t_4);
+    #else
+    __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 512, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_1);
+    __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 512, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_2);
+    __pyx_t_4 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 512, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_4);
+    #endif
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  } else {
+    Py_ssize_t index = -1;
+    __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 512, __pyx_L1_error)
+    __Pyx_GOTREF(__pyx_t_5);
+    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+    __pyx_t_6 = Py_TYPE(__pyx_t_5)->tp_iternext;
+    index = 0; __pyx_t_1 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L2_unpacking_failed;
+    __Pyx_GOTREF(__pyx_t_1);
+    index = 1; __pyx_t_2 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L2_unpacking_failed;
+    __Pyx_GOTREF(__pyx_t_2);
+    index = 2; __pyx_t_4 = __pyx_t_6(__pyx_t_5); if (unlikely(!__pyx_t_4)) goto __pyx_L2_unpacking_failed;
+    __Pyx_GOTREF(__pyx_t_4);
+    if (__Pyx_IternextUnpackEndCheck(__pyx_t_6(__pyx_t_5), 3) < 0) __PYX_ERR(0, 512, __pyx_L1_error)
+    __pyx_t_6 = NULL;
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    goto __pyx_L3_unpacking_done;
+    __pyx_L2_unpacking_failed:;
+    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+    __pyx_t_6 = NULL;
+    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
+    __PYX_ERR(0, 512, __pyx_L1_error)
+    __pyx_L3_unpacking_done:;
+  }
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_a, __pyx_t_1) < 0) __PYX_ERR(0, 512, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_b, __pyx_t_2) < 0) __PYX_ERR(0, 512, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_d, __pyx_t_4) < 0) __PYX_ERR(0, 512, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+
+513: from numpy import load
+
  __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 513, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_INCREF(__pyx_n_s_load);
+  __Pyx_GIVEREF(__pyx_n_s_load);
+  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_load);
+  __pyx_t_4 = __Pyx_Import(__pyx_n_s_numpy, __pyx_t_3, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 513, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_load); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 513, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_load, __pyx_t_3) < 0) __PYX_ERR(0, 513, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+
+514: data = load('../mints/h2o-sto-3g-mints.npz')
+
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_load); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 514, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 514, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_data, __pyx_t_3) < 0) __PYX_ERR(0, 514, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+/* … */
+  __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_u_mints_h2o_sto_3g_mints_npz); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 514, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_tuple__21);
+  __Pyx_GIVEREF(__pyx_tuple__21);
+
+515: d = data['d']
+
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_data); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 515, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_d); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 515, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_d, __pyx_t_4) < 0) __PYX_ERR(0, 515, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+
+516: f = data['f']
+
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_data); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 516, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_f); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 516, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_f, __pyx_t_3) < 0) __PYX_ERR(0, 516, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+
+517: tt = time.time()
+
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 517, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 517, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 517, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_tt, __pyx_t_3) < 0) __PYX_ERR(0, 517, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+
 518: 
+
+519: v= ocypete(a,b,d,f)
+
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_a); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 519, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_b); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 519, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_d); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 519, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_7 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_7.memview)) __PYX_ERR(0, 519, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_f); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 519, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_dsds_double(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_8.memview)) __PYX_ERR(0, 519, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __pyx_f_7ocypete_ocypete(__pyx_t_3, __pyx_t_4, __pyx_t_7, __pyx_t_8, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 519, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __PYX_XDEC_MEMVIEW(&__pyx_t_7, 1);
+  __pyx_t_7.memview = NULL;
+  __pyx_t_7.data = NULL;
+  __PYX_XDEC_MEMVIEW(&__pyx_t_8, 1);
+  __pyx_t_8.memview = NULL;
+  __pyx_t_8.data = NULL;
+  if (PyDict_SetItem(__pyx_d, __pyx_n_s_v, __pyx_t_2) < 0) __PYX_ERR(0, 519, __pyx_L1_error)
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
+520: print(v)
+
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_v); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 520, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 520, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+
+521: print(time.time()-tt)
+
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_time); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 521, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_time); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 521, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 521, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_4);
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_tt); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 521, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __pyx_t_3 = PyNumber_Subtract(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 521, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_3);
+  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_print, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 521, __pyx_L1_error)
+  __Pyx_GOTREF(__pyx_t_2);
+  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+
diff --git a/document/ocypete.md b/document/ocypete.md new file mode 100644 index 0000000..5d86905 --- /dev/null +++ b/document/ocypete.md @@ -0,0 +1,46 @@ +# ocypete Module - cython fast integrals derivatives + +As I mentioned before this project was not designed to be fast, the emphasis was on clarity rather than conciseness or speed. However the **aello** module was an example of how to speed up an implementation with Cython. **Aello** is a cython version of the integral module whereas **ocypete** is a cython version of (essentially) the force module, and so concentrates on integral derivatives and forces. The module is called **ocypete** who was one of the Harpies in Greek mythology the name means *swift-wing*. The approach again taken was to convert the python basis and atom class arrays (numpy) to c-memory views and use those. If you compile **ocypete** via 'cython ocypete.pyx -a' and get an html file which shows how the code is interacting with the python interpreter you will see that most of the calculation is in white (good) with only the python->c code in yellow (bad). The loop are free of yellow which is key to a successful conversion. A copy of ocypete.html is to be found in the document folder. The routines are + +1. **cdef double cye(int ia, int ja, int type, double r, double ie, double je, int n, double x)**\ + Cython version of e from integral module. + +2. **cdef double efx(int ia,int ja,int type, double r, double ie, double je, int n = 0, double x = 0.0, int p = 0, int s = 0):**\ + Cython version of force.efx. + +3. **cdef double ovlpfx(int ia0, int ia1, int ia2, int ja0, int ja1, int ja2, double ie, double je, \ + double ir0, double ir1, double ir2, double jr0, double jr1, double jr2, int[3] n, double[3] origin, int x, int center):**\ + Cython version of force.overlapfx + +4. **cdef double kntcfx(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, \ + int[3] n, double[3] origin, int x, int center):**\ + Cython version of kineticfx + +5. **cdef double boys(double m,double T):**\ + Cython version of force.boys + +6. **cdef double clmb(int l, int m, int n, int bf, double p, double r0, double r1, double r2):**\ + Cython version of integral.j + +7. **cdef double clmbsfx(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, \ + double[:] nucleus, int[3] n, double[3] origin, int x, int center):**\ + Cython version of force.coulombfxs + +8. **cdef double clmbhfx(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, \ + double[:] nucleus, int[3] n, double[3] origin, int x):**\ + Cython version of force.coulombfxh + +9. **cdef double teifx(short[:] ia, short[:] ja, short[:] ka, short[:] la, double ie, double je, double ke, double le, \ + double[:] ir, double[:] jr, double[:] kr, double[:] lr, int[3] ra, int[3] rb, double[3] origin, int x, int center):**\ + Cython version of force.electronRepulsionfx + +10. **cdef double erifx(short[:] ng, int p, int q, int r, int s, double[:,:] im, double[:,:] ic, double[:,:] ie, short[:,:] ia, double[:,:] io, \ + int x, int center):**\ + Cython version of force.ERIfx + +11. **cpdef ocypete(object molAtom,object molBasis, double[:,:] density, double[:,:] fock):**\ + Main routine. Main loops are over all atoms and cartesian directions. Routines from force called *build* are combined with *kfx*, *jfx* and *jfh* within the main loops to form the one-electron contribution to the fock derivative. two electron derivatives are then calculated and a fock derivative matrix formed. Overlap are then incorporated along with the nuclear contribution. A cut-off of 1e-12 is applied to the final force tensor (any element < cut-off set to 0). Returns the force tensor \[atoms, directions]. + + Timings against McMurchie-Davidson program (also using Cython)(JJGoings) on water... + dz basis Harpy 20s McMurchie-Davidson 2m 55s + sto-3g Harpy 3s McMurchie-Davidson 20s diff --git a/document/post.md b/document/post.md new file mode 100644 index 0000000..271e57b --- /dev/null +++ b/document/post.md @@ -0,0 +1,71 @@ +# Post Module - post SCF calculations + +Dipole and Mulliken are covered in [Crawford projects] (https://github.com/CrawfordGroup/ProgrammingProjects/tree/master/Project%2303). A useful discussion of charges can be found [here](https://mattermodeling.stackexchange.com/questions/1439/what-are-the-types-of-charge-analysis) + +1. **charges(D, S, atoms, bases)** + + parameters - *D* is the final density matrix, *S* the overlap matrix, *atoms* an array of atom objects (the molecular atom + set) and *bases* an array of basis objects (the molecular basis). The routine calls the different methods of charge and population analysis. Calls Mulliken and Lowdin. No return value. + +2. **mulliken(D, S, atoms, bases))** + + parameters - *D* is the final density matrix, *S* the overlap matrix, *atoms* is an array of atom objects (the molecular atom + set) and *bases* an array of basis objects (the molecular basis). Performs a Mulliken population analysis, passing + gross atomic populations and orbital populations to the output module and returning gross atomic populations. + +3. **lowdin(D, S, atoms, bases))** + + parameters - *D* is the final density matrix, *S* the overlap matrix, *atoms* an array of atom objects (the molecular atom + set) and *bases* an array of basis objects (the molecular basis). Performs a Lowdin population analysis, passing + gross atomic populations to the output module and returning gross atomic populations. + +4. **energyPartition(E, N, D, K, V, G, e, en)** + + parameters - *E* is final electronic energy, *N* the nuclear repulsion energy, *D* the final density matrix, *T* the exchange (kinetic) energy matrix, *V* the Coulomb (potential) energy matrix, *G* the matrix in Fock = CoreHamiltonian + G, *e* are eigenvalues of final fock (orbital energies) and *en* is the number of electrons. Performs a analysis of the components of the energies. Returns the energy partitioning to the output module. + +5. **dipoleComponent(atoms, bases, type, gauge)** + + parameters - *atoms* is an array of atom objects (the molecular atom set) and *bases* an array of basis objects (the molecular basis), *type* is a cartesian axis *x*|*y*|*z* and *gauge* is the type of gauge origin. Calls gaugeCenter (atom module) and mu (integral module) returns float. + +6. **buildDipole(atoms, bases, density, gaugeOrigin, engine = 'aello'):** + + parameters - *atoms* is an array of atom objects (the molecular atom set) and *bases* an array of basis objects (the molecular basis), *density* is the final density matrix. *gaugeOrigin* is the gauge type string and *engine* is the integral engine to use. Calls dipoleComponent returns an array cells \[0,1,2] are electron dipole components, \[3] is square of resultant. Array is returned and written to output module. + +7. **buildMp2Dipole(atoms, bases, gauge, c, e, eri, nOccupied)** + parameters - *atoms* is an array of atom objects (the molecular atom set) and *bases* an array of basis objects (the molecular basis), *gauge* is the gauge type string, *c* are the converged eigenvectors, *e* the final orbital energies, *eri* are the 2-electron repulsion integrals (as linear list) and *nOccupied* is the number of doubly occupied orbitals. Returns the mp2 level unrelaxed dipole moment. List is returned and output written. + +8. **quadrupoleComponent(atoms, bases, type, gauge)** + + parameters - *atoms* is an array of atom objects (the molecular atom set) and *bases* an array of basis objects (the molecular basis), *type* is a cartesian axis *xx*|*yy*|*zz*|*xy*|*yz*|*zx*| and *gauge* is the type of gauge origin. Calls gaugeCenter (atom module) and q (integral module) returns float. + +9. **buildQuadrupole(atoms, bases, density, gaugeOrigin)** + + parameters - *atoms* is an array of atom objects (the molecular atom set) and *bases* an array of basis objects (the molecular basis), *density* is the final density matrix. *gaugeOrigin* is the gauge type string. Calls quadrupoleComponent returns an array of electron quadrupole components, [xx,yy,zz,xy,yz,zx]. Array is returned writes to output module. + +10. **polarizabilities(atoms, bases, c, f, ERI, nOccupied, gauge)** + + parameters - *atoms* is an array of atom objects (the molecular atom set) and *bases* an array of basis objects (the molecular basis), + *c* are the final eigenvectors, *f* the final fock matrix, *ERI* the 2-electron repulsion integrals, *nOccupied* the number of occupied orbitals and *gauge* is the type of gauge origin. Returns the principal polarizations, the isotropic polarization, the responses and the dipole tensors. Based on the psi4numpy tutorial [here](https://github.com/psi4/psi4numpy/blob/master/Tutorials/06_Molecular_Properties/6a_CP-SCF.ipynb) + +11. **electricFieldNuclear(atoms, gauge)** + + parameters - *atoms* is an array of atom objects (the molecular atom set) and *gauge* is the type of gauge origin. Calls gaugeCenter (atom) and returns the nuclear components of the electric field and potential. Returned array [Ex, Ey, Ez, V]. + +12. **buildElectricField(atoms, bases, density, gauge):** + + parameters - *atoms* is an array of atom objects (the molecular atom set) and *bases* an array of basis objects (the molecular basis), *density* is the final density matrix. *gaugeOrigin* is the gauge type string. Calls electricField and returns an array of electric field components (field first potential second, [Ex, Ey, Ez, V, Enx, Eny, Enz, Vn]. + +13. **hyperPolarizabilities(atoms, bases, c, eri, e, f, nOccupied, gauge)** + + parameters - *atoms* is an array of atom objects (the molecular atom set) and *bases* an array of basis objects (the molecular basis), + *c* are the final eigenvectors, *eri* are the 2-electron replusion integrals, *e* are the orbital energies, *f* the final fock matrix, *nOccupied* the number of occupied orbitals and *gauge* is the type of gauge origin. Returns the (static) hyperpolarizations in the axial directions, the total amplitude, the parallel and perpendicular components with respect to z-axis and the hyperpolarizability tensor. Based on the psi4numpy tutorial [here](https://github.com/psi4/psi4numpy/blob/master/Tutorials/06_Molecular_Properties/6b_first_hyperpolarizability.ipynb). Defined parameters calculated as per [3.200.7](http://web.mit.edu/multiwfn_v3.3.8/Manual_3.3.8.pdf). For the static case these parameters are + + + **β**i = Σj βijjjjijij i in {x,y,z}. j = {x,y,z} - {i} + + **β**tot = (**β**x2+**β**y2+**β**z2)0.5 + + **β**⊥z = 0.2 **β**z + + **β** = 0.6 **β**z + +14. **bondOrder(D, S, atoms, basis)** + + parameters - *D* is the final density matrix, *S* the overlap matrix, *atoms* is an array of atom objects (the molecular atom + set) and *bases* an array of basis objects (the molecular basis). Computes the Mayer bond orders as BAB = Σ Σ (DS)μν(DS)νμ where μ are orbitals centered on atom A and ν are orbitals centered on atom B. The valency VA is calculated simply as Σ BAX. Returns bond orders and atom valencies. diff --git a/document/rESP.md b/document/rESP.md new file mode 100644 index 0000000..8dcb2d0 --- /dev/null +++ b/document/rESP.md @@ -0,0 +1,216 @@ +# Restrained Electrostatic Potentials + +This follows the reference C. I. Bayly et. al. J. Phys. Chem. 97, 10269 (1993). Firstly a surface or set of surfaces are generated based on the Van der Vaals radii of the atoms in the molecule. These surfaces contain the points on which the electrostatic potential is to be sampled. Below is an example one set of surfaces (shell) of the water molecule. A worthwhile reference is also the multiwfn manual pg 85-89 [](http://sobereva.com/multiwfn/Multiwfn_manual.html). + +![](../media/h2o-shell.png) + +A density of points is specified and an algorithm distributes the points at that density over the shell. Algorithms used can be eg Connolly surfaces (https://en.wikipedia.org/wiki/Accessible_surface_area), Fibonacci based (https://code-examples.net/en/q/927f21) or Saff and Kuijlaars algorithm (https://perswww.kuleuven.be/~u0017946/publications/Papers97/art97a-Saff-Kuijlaars-MI/Saff-Kuijlaars-MathIntel97.pdf). The shells are a continuous hollow surface, meaning points centered on one atom that lie inside the radius of another atom are removed. The electrostatic potential is then calculated at all points on the spherical grid. Constraints can then be imposed and the system is solved using Lagrange multipliers for the charges on the atoms. + +1. **equiDistribution(points=45, variant='con')** + + parameters - *points* is the number of points to be plotted on the atomic surface, usually the result of a previous density calculation. *variants* is one of 'con' for a Connolly surface or 'fib' for a fibonacci golden spiral coverage. Computes a regular spaced point distribution on a unit sphere and returns the array of points. + +2. **surfaceView(distribution)** + + parameters - *distribution* is the array of distributed points. Plots a 3-d scatter plot of the surface distribution of points (as in figure above). + +3. **respData(molAtom, molBasis, molData, options)** + + parameters - *molAtom* is an array of atom objects (the molecular geometry), *molBasis* is an array of basis objects (the molecular basis), *molData* are the parameters of the scf calculation and *options* are the parameters for the resp calculation. Routine processes options, calls equiDistribution to generate a surface or shells of surfaces, removes internal points for each shell, calculates the electrostatic potential at all points on all shells and saves points and esp values in a .npz file. For computational convenience an array of inverse distances from all distribution points to each atomic center is also stored. + +4. **buildmatrix(invRadii, constraintLength, nAtoms))** + + parameters - *invRadii* is an array of inverse distances from all points to all atom centers ([points, atoms]), *constaintLength* is the number of contraints imposed on the system and *nAtoms* is the number of atomic centers in the system. Computes the matrix **A** in the Lagrange multiplier problem **A**q=**b**. **A** is essentially the product of inverse distances. + +5. **buildvector(invRadii, esp, constraintLength, nAtoms, charge)** + + parameters - *invRadii* is an array of inverse distances from all points to all atom centers ([points, atoms]), *esp* is an array of electrostatic potentials evaluated at points in the distribution, *constaintLength* is the number of contraints imposed on the system, *nAtoms* is the number of atomic centers in the system and *charge* is the overall molecular charge. Computes the vector **b** in the Lagrange multiplier problem **A**q=**b**. **b** is essentially the product of inverse distance and the electrostatic potential. + +6. **restrainedESP(molAtom, molBasis, molData, options)** + + parameter - *molAtom* is an array of atom objects, *molBasis* is an array of basis objects, *molData* are the molecular run parameters and *options* are the parameters for the resp calculation. Routine calls rhf.mol to get molecular parameters, calls resp to get data if not reading a previous file, loads data and constructs **A** and **b** matrix and vector. Adds constraints into **A** and **b** and removes any zero rows or columns (or solve will have singular matrix) and calls numpy.linalg solver. + + options can be any of (n,i,j integer and u,v,x float) + + sphere 'con' | 'fib' + points ['density' | 'points', n] + shell [n, u, v] + + file [ 'r' | 'w' , file, 'keep' | 'clear'] + view [ False | True] + constrain [[n , [i,j,...]], ...] + radii [ ['Sy', n], ...] + restrain {'a' : u, 'b' : v, 'h' : False | True, 'tol' : x, 'cycles' : n} + + + *sphere* is the spherical distribution algorithm to use either **con**nolly or **fib**onacci. Default is 'con'. + + + *points* is either an explicit number of points to plot or a density of points, Default is ['density' , 1]. Density is points per square Angstrom. + + + *shell* can be eg [1, 0.0, 1.4] which will generate one shell at a radial distance of the Van der Waals radius scaled by 1.4. [4, 0.2, 1.4] will generate four shell at the Van der Waals radius scaled by 1.4, 1.6, 1.8, 2.0 respectively. Default is single shell at the Van der Waals radius (ie [1, 0.0, 1.0]). + + + *file* ['w', 'esp.npz', 'keep'] eg will write the data to a compressed numpy file and retain the file (you may omit the .npz), ['r', 'esp.npz', 'clear'] will make to program skip generating the data and directly read it in then delete it after processing. Default is ['w', 'esp.npz']. + + + *view* True will display a visualisation of the esp surface. Default is False + + + *constrain* can be one of two type 1) [1, [2,3]] - this will constrain atoms 2 and 3 charges to sum to 1, or 2) [0, [-2,3]] will cause atoms 2 and 3 to have equal charges. Default is []. **Note atoms are numbered from base 1 not 0** + + + *radii* ['H', 1.15] will redefine the default Van der Vaals radius on Hydrogen. + + + *restrain* A dictionary {}. Keys 'a' the restraint factor for **A** matrix, 'b' the restraint factor for **b** vector, 'h' boolean determines whether hydrogens are include in the restrain (True) or not (False), 'tol' is tolerance for the convergence in the iteration and 'cycles' is the maximum number of cycles permitted in the iteration. + + Default values are equivalent to + + restrainedESP({ 'sphere' : 'con', 'points' : ['density', 1], 'shell' : [1, 0.0, 1.0], radii : [] , + 'file' : ['w', 'esp.npz', 'clear'], 'view' : False, 'constrain' : [], + 'restrain' : { 'a' : 0.0005, 'b' : 0.1, 'h' : True,'tol' : 1e-6, 'cycles' : 30]} ) + +7. **doRestraintIteration(q, a, b, parameters, z)** + + parameters - *q* charges, *a* and *b* are respectively the **A** matrix and **b** vector, *parameters* are the restraint options and *z* is an array of atomic numbers of the molecules atoms. Restraints are applied, the system solved and repeated until the difference in charges in two sucessive cycles is less than the prescibed tolerance. Returns converged restrained charges. + +8. **doRestraint(q, a, parameters, z)** + + parameters - parameters - *q* charges, *a* is the **A** matrix, *parameters* are the restraint options and *z* is an array of atomic numbers of the molecules atoms. Applies the (hyperbolic) restraints to **A** matrix and returns it. + +9. **writerESP(mData, rData, qc, qr, metrics, stage)** + + parameters - *mData* is the molecular data, *rData* are the program options, *qc* the constrained charges, *qr* the restrained charges and *metrics* the number of points on VdW surface and number of iterations. *stage* flags whether results are from a stage one or stage two calculation. Calls view module to output results in HTML format. + +10. **deltaRMS(esp, qr , invRadii)** + + parameters - *esp* are the electrostatic potentials at the surface points, *qr* are the restrained atomic charges (or constrained if restrained not available) and *invRadii* are in inverse radial distances from surface points to all atomic centers. Returns root mean square difference between the quantum electrostatic potentials at each point and a classically obtained potential using the restrained/constrained point charges. + +11. **carbonGroups(molAtom)** + + parameter - *molAtom* is the molecular atom set. Returns groups of atoms suitable for stage two restraints, that is carbons with atoms attached as [Cn, [H1, H2,...], ...] + +12. **stageTwoConstraints(options, groups, nAtoms, q)** + + parameters - *options* are the parameters for the resp calculation, *groups* are the stage two atoms as determined by carbonGroups routine, *nAtoms* are the number of atoms in the molecule and *q* are the restained charges from stage one. Returns lthe options with the 'constrain' option updated with the stage two *groups*. + +13. **processConstraints(options)** + + parameters - *options* are the parameters from the 'constrain' option which are converted to two lists, one of the charges and one of the atoms involved with that charge constraint. + +Here are the harpy results for the oxygen in water, single shell and then shell sequence 1.4,1.6,1.8,2.0 repeated with default restraints. +Comparisons with psi4 made using following settings + + restrainedESP({ 'sphere' : 'con', 'points' : ['density', 1], 'shell' : [1, 0.0, 1.0], + 'file' : ['w', 'esp.npz', 'clear'], 'view' : False, 'constrain' : [[0,[-2,3]]] } ) + + restrainedESP({ 'sphere' : 'con', 'points' : ['density', 1], 'shell' : [4, 0.2, 1.4], + 'file' : ['w', 'esp.npz', 'clear'], 'view' : False, 'constrain' : [[0,[-2,3]]] } ) + + restrainedESP({ 'sphere' : 'con', 'points' : ['density', 1], 'shell' : [1, 0.0, 1.0], + 'file' : ['w', 'esp.npz', 'clear'], 'view' : False, 'constrain' : [[0,[-2,3]]], 'restrain' : {} } ) + + restrainedESP({ 'sphere' : 'con', 'points' : ['density', 1], 'shell' : [4, 0.2, 1.4], + 'file' : ['w', 'esp.npz', 'clear'], 'view' : False, 'constrain' : [[0,[-2,3]]], 'restrain' : {} } ) + +The above harpy parameters were run for sto-3g, 6-31g, dz, aug-cc-pvdz, cc-pvdz and compared with the resp plug-in (see psi4numpy). All values agreed with psi4 to better than 0.0001. + +| basis | shells = 1 | shells = 4 | with restraints (1)| with restraints (4) | +|----------|--------------|--------------|-----------------|---------------------| +| sto-3g | -0.4836 | -0.4770 | -0.4809 | -0.4755 | +| 6-31g | -0.7827 | -0.8298 | -0.7800 | -0.8283 | +| dz | -0.7861 | -0.8486 | -0.7834 | -0.8470 | +| cc-pvdz | -0.6524 | -0.6868 | -0.6498 | -0.6853 | +| aug-cc-pvdz | -0.6153 | -0.6701 | -0.6127 | -0.6686 | + +It is possible to add stage 2 restraints by including the keyword **stage2** in the options list the possible values are True or False. If stage2 is enabled then a search is made through the atoms for carbons with hydrogens attached. These groups are refitted with the hydrogen charges constrained to be equal, all other atoms have their charges constrained to the values of the restrained stage 1 calculation. For example, methylamine the carbon(1) has 3 hydrogens attached (3,4,5) and is connected to a nitrogen(2) which has two hydrogens (6,7). A stage two calculation will find the CH3 group and will assign constraints + + [[0, [-3,4,5]] , [q2, [2]] , [q6, [6]] , [q7, [7]] ] + +That is the hydrogens on the carbon are constrained to have equal charges and all other atoms (except the carbon) are constrained to the restrained charges from the first stage. If 'a' is not specified a value of 0.001 will be used following Kollman et al. in J. Phys. Chem., 97, 10269 (1993) (the defaults for first stage also taken from this work). Running... + + restrainedESP({ 'sphere' : 'con', 'points' : ['density', 1], 'shell' : [4, 0.2, 1.4], + 'file' : ['w', 'esp.npz', 'clear'], 'view' : False, 'constrain' : [], + 'restrain' : {}, 'stage two' : {'a' : 0.001}}) + +The results are + +| atom | constrained | restrained | stage 2 constrained | stage 2 restrained | +|-------|---------------|-------------|---------------------|--------------------| +| C | 0.1694 | 0.0872 | 0.0927 | 0.0825 | +| N | -0.8270 | -0.8015 | -0.8015 | -0.8015 | +| H(C) | 0.0011 | 0.0236 | 0.0291 | 0.0325 | +| H(C) | 0.0137 | 0.0346 | 0.0291 | 0.0325 | +| H(C) | 0.0137 | 0.0346 | 0.0291 | 0.0325 | +| H(N) | 0.3145 | 0.3107 | 0.3107 | 0.3107 | +| H(N) | 0.3145 | 0.3107 | 0.3107 | 0.3107 | + +These agree with psi4Numpty. Note the first stage restrained charges on amine group are retained in second stage, only the carbon-hydrogens are re-fitted. The results are appended to the stage one output above as + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
molecular basissto-3gmolecular charge0
spherical distribution modelConnollysurface density1
number of shells4shell increment0.2base shell1.4
effective evaluation points72restrained iterations8Δrms (resp - classical)0.0027
A scaling0.0005b scaling0.1convergence tolerance1e-06iteration limit30
hydrogens are restrained
constrained electrostatic potential charges
0.1694-0.8270.00110.01370.01370.31450.3145
restrained electrostatic potential charges
0.0872-0.80150.02360.03460.03460.31070.3107
stage two constraints
restrained iterations4Δrms (resp - classical)0.0028
constrained charges on atoms 3 4 5 are equal
constrained charges on atoms 2 sum to -0.8015
constrained charges on atoms 6 sum to 0.3107
constrained charges on atoms 7 sum to 0.3107
constrained electrostatic potential charges
0.0927-0.80150.02910.02910.02910.31070.3107
restrained electrostatic potential charges
0.0825-0.80150.03250.03250.03250.31070.3107
+ +The Δrms is the root mean square difference between the classically calculated (q/r) value calculated at all points using the restrained (or constrained) point charges on the atoms and the qm calculated electrostatic potential value at that point. + +There is no aello version of electric field integrals so these rESP calculation are a bit slow. + +To run the rESP just edit the restrainedESP line at the end of the rESP.py file and run as python3 rESP.py from the source directory. +The npz file contains the points making up the surface, the inverse radii, the electrostatic potential at the surface points and the number of points in the surface. This allows several constraint and restraint options to be explored without recalculating the surface by using the file 'r' option. + diff --git a/document/rhf.md b/document/rhf.md new file mode 100644 index 0000000..d7f0c38 --- /dev/null +++ b/document/rhf.md @@ -0,0 +1,155 @@ +# Restricted Hartree-Fock Module - SCF calculations + +A discussion of the algorithm can be found in [Crawford projects](https://github.com/CrawfordGroup/ProgrammingProjects/tree/master/Project%2303). You will need from numpy - sqrt, zeros, dot, from numpy.linalg - fractional_matrix_power, eigh, from math - pow. All functions are imported from their modules explicitly so you can see where they come from. + +1. **rms(Da, Db)** + + parameters - *Da*, *Db* two consecutive cycles of the density matrix. Returns square root of the square of the difference of the two matrices. + +2. **mol(show, file = 'project.hpf', molecule='')** + + parameters - *show* is a list of information to be output to HTML file, \['geometry',| 'orbitals'], \[ ] will surpress output. *File* is by default 'project.hpf' but can be any file following the format given in a) below. The routine... + ++ a) reads the file containing the job to be processed. Name of file is 'project.hpf'. The file has the following type of format... + + name=h2o + matrix=c + post={ch,di} + + O1 8 0.000000000000 -0.143225816552 0.000000000000 + H1 1 1.638036840407 1.136548822547 -0.000000000000 + H2 1 -1.638036840407 1.136548822547 -0.000000000000 + + end + #============================================= + name=h2o-z + matrix=z + units=bohr + + O + H 1 OH + H 1 OH 2 HOH + + OH 2.078698587436746 + HOH 104 + + end + #---------------------------------------------- + + Each molecule definition is terminated by an **end** statement. **#** lines and blank lines are ignored (except in a z-matrix block). The following keywords, options and defaults are recognised, listed as keyword \[default\](options) + + name [] name of molecule + basis [sto-3g] name of basis + diis [on](off) use diis or not + engine [aello](native) use cython or python integral engine. + gauge [origin](nuclear | mass) gauge center + guess [core](gwh) hamiltonian guess + charge [0](integer) molecular charge + multiplicity [1](integer) multiplicity + cycles [100](integer) maximum iterations + capacity [8](integer) diis holding capacity + tolerance [1e-8](float) convergence tolerance + uhfmix [0.0] uhf orbital mixing parameter + matrix [](c | z) use cartesian or z-matrix atom definition + post [] list of post-SCF routines to run + units [bohr](angstrom) units used in atom definitions + cogus [] symbolic cluster codes + no_mint_density don't use initial guess density if available + end marks end of molecule definition +These keywords are dictionary keys in molData. + +**Note that only *matrix* and *end* are mandatory** +The file may contain multiple sections as above seperated by a blank or *#* line, the program will execute the **first** such section. It is the first section that is your effective project molecule, other entries in this file are just for storage until they are required when they will have to be moved into position one. All uses of rhf.mol during execution refer to the molecule in position one. Having read the geometry and options an array of atom objects is made. The key *post* has the form + + post={ch,di,...,po} + +where the two letter code represents a post-SCF procedure to execute. The codes are **ch**arges (ch), **bo**nd order (bo), **en**ergy analysis (en), **di**pole (di), **qu**adrupole (qu), **m**oller-**p**lesset (mp), **o**rbital-optimised **m**p2 (om), **m**p2 by **l**aplace transform (ml), **m**any-**b**ody perturbation theory (mb), **c**onfiguation **i**nteraction singles (ci), **f**ull **c**onfiguration interaction (fc), configuration interaction **s**ingles and **d**oubles (sd), **c**onfiguration interaction **s**ingles (slater determinants) (cs), ci **s**pin-adapted **s**ingles(ss), ci **s**pin-adapted **t**riples(st), **r**adom **p**hase approximation (rp), **c**oupled-cluster sd(**t**) (ct), **c**c**2** approximation (c2), **l**inear coupled-cluster singles and **d**oubles (ld). +**l**inear **c**oupled-cluster doubles (lc), **c**oupled-cluster **d**oubles (cd), **fo**rces (fo), **e**lectron **p**ropagator 2 (ep), +**e**lectron propagator **2** spin-adapted (e2), **e**lectron propagator **3** spin-adapted (e3), **ko**opman associated Greens function correction (ko), +**po**larizabilities (po), **hy**perpolarizabilities (hy). There are also 'fast' (einsum) coupled-cluster options '+s' - cc**s**d, '+d' - cc**d**, '+t' - ccsd(**t**), '+2' - cc**2**, '+l' - **l**ccd, '+L' - **L**ccsd and '+^ - **lambda**. Coupled-cluster triples variants are available as '-T' - ccsd**T**, '-t' - ccsd(**t**), '-1a' - ccsdt-**1a**, '-1b' - ccsd-**1b**, '-2' - ccsdt-**2**, '-3' - ccsdt-**3**, '-4' - ccsdt-**4**. + +The *post* keyword will only have effect if the *postSCF* option appears in the **show** list of the scf function call eg + + rhf.scf(molAtom, molBasis, molData , [ 'preSCF', 'SCF', 'postSCF', 'mints'], density) +Running the code from harpy.py includes the postSCF option. + +The *cogus* keyword has a similar form to *post* + + cogus={d,cd(t)} + +where the codes represent a coupled-cluster code produced by the Cluster Operator Generator Using Sympy program. The codes are **d** - CCD, **sd** - CCSD, **sd(t)** - CCSD(T), **sdt** - CCSDT, **2** - CC2, **3** - CC3, **ld** - LCCD, **lsd** - LCCSD. + +The *molecule* parameter is any molecule identifier from an .hpf file, that is something on the right of a 'name=' specifier. + ++ b) Builds the molecular basis. Uses buildBasis. Returns the atom and basis objects and the parameters defining the run as a list. + +3. **rebuildCenters(molAtom, molBasis, geo)** + + parameters - *molAtom* is an array of atom objects, *molBasis* is an array of basis objects and *geo* is an array of cartesian coordinates. This routine is used to copy a new coordinate set represented by *geo* into *molAtom* and *molBasis*.center attributes. Returns the rebuilt object arrays which can then be used as arguements for scf to calculate an energy for a changed geometry. + +4. **scf(molAtom, molBasis, run, show, cptDensity = None)** + parameters - *molAtom* is an array of atom objects, *molBasis* is an array of basis objects, *run* is the list of option parameters returned by *mol* and *show* is a list of information to be output to HTML file ['preSCF',| 'SCF',| 'postSCF',| 'mints'], and *cptDensity* is a density matrix used to start an SCF calculation instead of a matrix of zeros. If a mints file for the molecule and basis exists it will be used to start the computation (unless no_mint_density is stated in input file). This is useful in geometry optimisation and molecular dynamics where the density from the nth calculation can be used to start the (n+1)th. The following objects are declared global - C, density, fock, ERI, totalEnergy, S, e and coreH. The algorithm is briefly... + + a) Build overlap, exchange, coulomb, core Hamiltonian and 2-electron repulsion integrals. + Uses buildOverlap, buildKinetic, buildCoulomb, buildHamiltonian, buildEri. There are two integral engines 1) the normal python which is invoked with 'native' and a cython engine invoked with 'aello'. + + b) Define convergence parameters - maximum iterations allowed, convergence threashold, diis switch. Initialise density matrix or use check-point one. + + c) Define storage for, and size of diis mechanism. + + d) Get the inverse of the square root of the overlap matrix. + + e) Start the iteration cycle + + f) Initial Fock is Hamiltonian guess, subsequently H core + G. + + g) If diis and not 1st cycle use diis to compute the next Fock matrix. Uses diisFock. + + h) Orthogonalise the Fock matrix. + + i) Diagonalise the orthogonal Fock matrix. + + j) Transform the eigenvectors of l) back to non-orthogonal atomic basis. + + k) Build density matrix (over occupied orbitals). Uses buildDensity. + + l) Compute the SCF electronic energy. + + m) Check for converged solution. Delta energy and rms density must be satisfied and maximum iterations not exceeded. + if not converged go to step i). + + n) If converged solution do post-SCF (if selected) \ + charges \ + energyPartition \ + dipoles (ground state and mp2)\ + quadrupoles \ + moller-plesset \ + cis \ + full configuration interaction \ + configuration interaction singles and doubles \ + cis spin-adapted \ + random phase approximation \ + coupled-cluster singles and doubles and perturbative triples. \ + coupled-cluster doubles \ + linear coupled-cluster \ + cc2 \ + linear couple-cluster singles and doubles \ + forces \ + electron propogator \ + orbital optimised mp \ + laplace transform mp \ + polarizabilities \ + hyperpolarizabilities \ + or + Symbolic generated cluster code + + o) if 'mints' is in show string a compressed .npz file is saved of the molecular integrals. The file is named + '--mints.npz'. The files are read as + + data = load() + = data[] + +,where is + +**s** - overlap, **k** - kinetic, **j** - coulomb, **i** - 2-electron repulsion, **f** - fock,\ +**d** - density, **c** - eigenvectors, **e** - eigenvalues(orbital energies) and **E** - total energy, **m** -[charge, molecule name, basis name, nuclearRepulsion],**a** - list of atomic numbers of atoms in molecule. diff --git a/document/rohf.md b/document/rohf.md new file mode 100644 index 0000000..9f887b3 --- /dev/null +++ b/document/rohf.md @@ -0,0 +1,45 @@ +## Restricted Open-Shell Hartree-Fock + +For a discussion of ROHF see [this](http://vergil.chemistry.gatech.edu/notes/cis/node5.html). Another useful article is [ROHF theory made simple](https://aip.scitation.org/doi/10.1063/1.3503173). The treatment here follows the pyscf approach. + +1. **rmsDensity(density, preDensity)** + + parameters - *density* is the density matrix in the current cycle and *preDensity* is the density matrix from the previous cycle. Return the root-mean square difference of the matrices. + +2. **get_occupations(eps_list, atoms, charge, multiplicity)** + + parameters - *eps_list* orbital energies either \[e] or \[e, eα, eβ], *atoms* the array of atom objects, *charge* the net charge off the molecule and *multiplicity* is the multiplicity (unpaired electrons -1). This routine returns the occupancy of the atomic orbitals eg water in sto-3g (7 orbitals) with charge +1 (9 electrons) and multiplicity 2 (1 unpaired electron) we have [2, 2, 2, 2, 1, 0, 0] returned. To do this the routine first determines the number of α and β electrons - the number of electrons we can assign to doubly occupied orbitals (nc) is the total electrons - the number which are to be assigned to single orbitals alone ie ne-(multiplicity - 1) for our example 9-1=8. So 8 electrons are assigned to 4 doubly occupied orbitals 4 for α and 4 for β with the remaining unpaired electrons being assigned to α. This gives an occupancy of \[2, 2, 2, 2, 1, 0, 0] = \[1, 1, 1, 1, 1, 0, 0]α + \[1, 1, 1, 1, 0, 0, 0]β. In practice we sort the combined orbital energies by assigning an occupation of 2 to the lowest (core) nc orbitals, then we take the indices of the sorted highest orbitals not already assigned and take the corresponding energies from the α orbitals. These (non-core) orbital energies are then sorted and the lowest used to take (multiplicity -1) orbitals to assign an occupancy of 1 to - all remaining orbitals are assigned an occupancy of 0. + +3. **get_densities(c, occupations)** + + parameters - *c* orbital coefficients (see above)and *occupations* are atomic orbital occupancies calculated from *get_occupations*. Returns the alpha and beta densitys as a (2, nbf, nbf) array. + +4. **get_coulomb_exchange(density, eri)** + + parameters - *density* are the alpha and beta densities as returned by *get_densities* and *eri* are the two-electron repulsion integrals. Returns the alpha and beta j and k integrals. + +5. **make_fock(h, v, dm, s, roothaan=False)** + + parameters - *h* is the one-electron hamiltonian, *v* are alpha and beta effective potential (j+k), *dm* are the alpha and beta densities, *s* is the overlap matrix and *roothaan* is a boolean flag determining if the Roothaan effective Fock matrix is returned. The routine returns the α and β Fock matrices and if *roothaan* is True also the Roothaan effective Fock matrix constructed according to + ![image](https://user-images.githubusercontent.com/73105740/144617311-e3909a47-a4a7-41a0-86be-0c58cd7f6544.png) + +6. **eigensolution(fock, x)** + + parameters - *fock* is tuple of α and β Focks and *x* is the inverse square root of the overlap matrix. Solves for orbital energies for (Fα + Fβ), Fα and Fβ and returns them. + +7. **get_rohf_energy(density, h1e, v)** + + parameters - *density* are the α and β densities, *h1e* is the one-electron hamiltonian and *v* are the exchange and coulomb integrals. Returns the one-electron energy and the two-electron component of the energy separately. + +8. **spin_analysis(c, occupancy, s)** + + parameters - *c* the orbital coefficients (2, nbf, nbf), *occupancy* an array of occupation numbers and *s* the overlpa matrix. Computes the actual total spin (2
>) and multiplicity and returns them with the number of occupied α and β electrons. + +9. **scf(molAtom, molBasis, run, show)** + + parameters - *molAtom* an array of atom objects, *molBasis* an array of orbital objects (the molecular basis), *run* is a distionary of the parameters determining the characteristics of the computation and *show* is a list of properties to be output. This routine gets the molecular integrals needed and performs the scf iteration. If a converged solution is obtained an analysis of the spin properties is carried out and if requested the Mulliken population analysis and dipole computation are performed. + +Note that unlike uhf the spin contamination is zero and the multiplicity is exact. We can run our (modified) H2 dissociation program from harpy/test to see if ROHF handles that problem and we get + +![image](https://user-images.githubusercontent.com/73105740/145675142-efc2e4dd-7646-4787-b26e-0655242b1580.png) + diff --git a/document/scc.md b/document/scc.md new file mode 100644 index 0000000..d736314 --- /dev/null +++ b/document/scc.md @@ -0,0 +1,215 @@ +# Coupled Cluster Module - Single, Doubles and Perturbative Triples + +This module uses code based on the paper **J.F. Stanton, J. Gauss, J.D. Watts, and R.J. Bartlett, J. Chem. Phys. +volume 94, pp. 4334-4345 (1991)**. There is a Crawford project on the Singles and Doubles [see](https://github.com/CrawfordGroup/ProgrammingProjects/tree/master/Project%2305) and on the Perturbative Triples [see](https://github.com/CrawfordGroup/ProgrammingProjects/tree/master/Project%2306). Joshua Goings has another good discussion with code [here](https://joshuagoings.com/2013/07/17/coupled-cluster-with-singles-and-doubles-ccsd-in-python/). These routines use full spin-spin arrays, a more efficient storage regime would use occupied-virtual slicing. The routines here are coded with explicit loops rather than einsum so it's slow - but explicit. For faster versions see either cogus.py or fcc.py. + +1. **tauSpin(i, j, a, b, ts, td)** + + parameters - *i* and *j* refer to occupied spin basis functions, *a*, *b* are virtual spin basis functions. + *ts* are the singles amplitudes an array \[spinOrbitals, spinOrbitals]. Spin orbital count being twice the number + of basis functions. *td* are doubles amplitudes an array or order \[spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals]. + Returns float. Equation (9) of Stanton et al. + +2. **tautauSpin(i, j, a, b, ts, td)** + + parameters - *i* and *j* refer to occupied spin basis functions, *a*, *b* are virtual spin basis functions. + *ts* are the singles amplitudes and *td* the doubles amplitude. Returns float. Equation (10). + +3. **updateIntermediates(fs, ts, td, eriMOspin, nElectrons)** + + parameters - *fs* is the Fock matrix in the MO spin basis, *ts* and *td* are the singles and doubles amplitudes, *eriMOspin* are the 2-electron + repulsion integrals in the MO spin basis as a \[spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals] array. *nElectrons* + is the electron count. Evaluates equations (3) - (8) and returns the updated ts and td arrays. Calls functions tau, tauSpin, + amplitudesT1 and amplitudesT2. Builds the f and w occupied (\_o), unoccupied (\_u) and mixed (\_m) arrays used by amplitudesT1 and + amplitudeT2. The f and w arrays are global variables to this and the amplitude T1 and T2 routines. + +4. **amplitudesT1()** + + parameters - none. Returns updated ts. Equation (1). + +5. **amplitudesT2()** + + parameters - none. Returns updated td. Equation (2). + +6. **amplitudesT3(fs, ts, td, eriMOspin, nElectrons)** + + parameters - *fs* is the Fock matrix in the MO spin basis, *ts* and *td* are the singles and doubles amplitudes, *eriMOspin* are the 2-electron + repulsion integrals in the MO spin basis as a \[spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals] array. *nElectrons* + is the electron count. Returns the perturbative triples correction as a float. + +7. **ccsd(atoms, eigenVectors, charge, fock, ERI, iterations, convergence, totalEnergy, diisStatus)** + + parameters - *atoms* is an array of atom objects (the molecular atoms), *eigenVectors* are the eigenfunctions for the final Fock matrix, + *charge* the molecular charge, *fock* the final fock matrix, *ERI* the 2-electron repulsion integrals, *iterations* the maximum number + of iterations allowed, *convergence* is the convergence tolerence, *totalEnergy* the final converged SCF energy + (not needed for calculation) and *diisStatus* indicates whether DIIS is to be used (='on') or not (='off').\ +     This routine calls buildFockMOspin to get the Fock matrix in the MO spin basis, then buildEriMO to get 2-electron + repulsion integrals in the MO basis and subsequently buildEriDoubleBar to transform to a double-bar spin basis integral in physicist notation. The mp2 + energy is found using the doubles amplitudes. The calculation of the amplitudes is then calculated in a loop until the + amplitude difference (of both amplitudes) is below the convergence threshold. *diis* can be employed which works on the + concatenation of the two (linear) amplitude arrays into a single object and using the difference of two successive cycles + (which should tend to 0 at convergence) as the *diis* error object. Returns CCSD correction and single and double amplitudes. + +8. **ccsdEnergy(fs, ts, td, eriMOspin, nElectrons)** + + parameters - *fs* is the Fock matrix in the MO spin basis, *ts* and *td* are the singles and doubles amplitudes, *eriMOspin* are the 2-electron + repulsion integrals in the MO spin basis as a (spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals) array. *nElectrons* + is the electron count. Returns the total ccsd energy as float. + +- - - +## LCCD +The linear coupled-cluster doubles are a subset of the CCD equations. Hence there are no T1 amplitudes and the T2 amplitudes are (diagram labelling from Shavitt & Bartlett - Many-Body Methods in Chemistry and Physics Figure 9.2) ++ gabij **\[D1]** ++ P(ab){*f*bc taeij} **\[D2a]** ++ -P(ij){*f*mjtabim} **\[D2b]** ++ 0.5 gabef tefij **\[D2c]** ++ 0.5 gmnijtabmn **\[D2d]** ++ P(ab)P(ij){gmbej taeim} **\[D2e]** ++ 0.25 gmnef tefij tabmn **\[D3a]** ++ P(ij){gmnef taeim tbfjn} **\[D3b]** ++ -0.5P(ij){gmnef tfeim tabnj} **\[D3c]** ++ -0.5P(ab){gmnef taenm tfbij} **\[D3d]** + +For the Linear CCD we use **\[D1], \[D2a], \[D2b], \[D2c], \[D2d] and \[D2e]** + +9. **lccd(atoms, eigenVectors, charge, fock, ERI, iterations, convergence):** + + parameters - *atoms* is an array of atom objects (the molecular atoms), *eigenVectors* are the eigenfunctions for the final Fock matrix, + *charge* the molecular charge, *fock* the final fock matrix, *ERI* the 2-electron repulsion integrals, *iterations* the number + of iterations and *convergence* are for control of the iteration process. Returns the linear coupled cluster doubles energy + (LCCD) also known as coupled electron pair approximation zero (CEPA0). Formula used is [here](https://github.com/bge6/psi4numpy/blob/master/Tutorials/08_CEPA0_and_CCD/8b_CEPA0_and_CCD.ipynb). + +10. **lccdAmplitudes(td, eriMOspin, fockMOspin, nElectrons, spinOrbitals)** + + parameters - *td* the doubles amplitudes, *eriMOspin* are the 2-electron repulsion integrals in the MO spin basis, *fockMOspin* is the fock matrix in the MO spin basis, *nElectrons* is the electron count and *spinOrbitals* the total orbitals in the spin basis. + +11. **ccdEnergy( td, eriMOspin, nElectrons, spinOrbitals)** + + parameters - *td* the doubles amplitudes, *eriMOspin* are the 2-electron repulsion integrals in the MO spin basis, *nElectrons* is the electron count and *spinOrbitals* the total orbitals in the spin basis. +- - - +## CCD +The equations are given above in the LCCD section. + +12. **ccd(atoms, eigenVectors, charge, fock, ERI, iterations, convergence):** + + parameters - *atoms* is an array of atom objects (the molecular atoms), *eigenVectors* are the eigenfunctions for the final Fock matrix, + *charge* the molecular charge, *fock* the final fock matrix, *ERI* the 2-electron repulsion integrals, *iterations* the number of + iterations and *convergence* are for control of the iteration process. Returns the coupled cluster doubles energy (CCD). + Formula used is [here](https://github.com/bge6/psi4numpy/blob/master/Tutorials/08_CEPA0_and_CCD/8b_CEPA0_and_CCD.ipynb). + +13. **ccdAmplitudes(td, eriMOspin, fockMOspin, nElectrons, spinOrbitals)** + + parameters - *td* the doubles amplitudes, *eriMOspin* are the 2-electron repulsion integrals in the MO spin basis, *fockMOspin* is the fock matrix in the MO spin basis, *nElectrons* is the electron count and *spinOrbitals* the total orbitals in the spin basis. + +- - - +## Λ-CCSD +These equations are taken from [Gauss and Stanton J. Chem. Phys., Vol. 103, No. 9, 1 September 1995](http://www2.chemia.uj.edu.pl/~migda/Literatura/pdf/JCP03561.pdf)\ +**Lambda intermediates** ++ Fλae = Fae - 0.5tamFme ++ Fλmi = Fmi + 0.5teiFme ++ Fλme = Fmi + ++ + Fae = *f*ae - tam*f*me + tfm gamef - 0.5 τafmn gmnef ++ + Fmi = *f*mi + tei*f*me + ten gmnie + 0.5 τefin gmnef ++ + Fme = *f*me + tfn gmnef + ++ Wλmnij = Wmnij + 0.25τefijgmnef ++ Wλabef = Wabef + 0.25τabmngmnef ++ Wλmbej = Wmbej - 0.5τfbjngmnef + ++ + Wmnij = gmnij + P(ij){tej gmnie} + 0.5τefij gmnef ++ + Wabef = gabef - P(ab){tbm gamef} + 0.5τabmn gmnef ++ + Wmbej = W(ovvo) = gmbej + tfj gmbef - tbn gmnej - (tfbjn + tfjtbn) gnmfe + ++ Wλmnie = Wmnie ++ Wλamef = Wamef ++ Wλmbij = Wmbij ++ Wλabei = Wabei + ++ + Wmnie = gmnie + tfi gmnfe ++ + Wamef = gamef - tan gnmef ++ + Wmbij = gmbij - Fmetbeij - tbnWmnij + 0.5τefij gmbef + P(ij){tbejn gmnie} + P(ij){tei (gmbej - tbfnj gmnef)} ++ + Wabei = gabei - Fmetabmi + tfiWabef + 0.5τabmn gmnei - P(ab){tafmi gmbef} - P(ab{tam (gmbei - tbfni gmnef)} + +**Three-body Terms** ++ Gae = -0.5tefmnλmnaf ++ Gmi = 0.5tefmnλinef + +**Lambda Equations**\ +**Λ1** (λia) = Fλia + λieFλea - λmaFλim + λmeWλieam + 0.5λimefWλefam - 0.5λmnaeWλiemn - GefWλeifa - GmnWmina\ +**Λ2** (λijab) = gijab - P(ij){λimabF%lambda;jm} + 0.5λmnabWλijmn + 0.5λijefWλefab + P(ij){λieWλejab} - P(ab){λmaWλijmb} + P(ij)P(ab){λimaeWλjebm} + P(ij)P(ab){λiaFλjb} + P(ab){gijaeGbe} - P(ij){gimabGmj } + +**Λ-CCSD Pseudoenergy**\ +Eλ = λiafai + 0.25λijabgabij + +14. **ccsd_lambda(fs, eriMOspin, ts, td, nElectrons, iterations, tolerance)** + + parameters - *fs* is the converged Fock matrix in the molecular spin basis, *eriMOspin* are the electron repulsion integrals in the molecular spin basis, *ts* are the converged single amplitudes from a CCSD computation, *td* are the converged doubles amplitudes from a CCSD computation, *nElectrons* are the number of electrons, *iterations* are the maximum number of cycles and *tolerance* is the criterion for convergence. Returns the Λ-CCSD pseudo-energy, the single and doubles Λ-amplitudes and the intermediates. + +- - - +## CC2 +CC2 is an approximate scheme to CCSD. The T1 amplitudes are the same as CCSD, however the T2 amplitudes are given by <ψabij| **HN** eT1 + **FN** T2|0> = 0\ +where **HN** and **FN** are the normal-ordered Hamiltonian and Fock matrices. **\[ ]** are the coupled-cluster diagram designations. Equations for T-amplitudes taken from reference above (Gauss and Stanton) Table I(a) & (b) and (tilde) intermediates taken from Table III. + +T1 = fai + *F*aetei - *F*mitam + *F*metaeim + +temgamie - 0.5taemngmnie + 0.5tefimgamef ++ fai **\[S1]** ++ *F*aetei ++ + teifae **\[S3a]** ++ + -0.5teitamfme **\[S5a]** ++ + teitfmgamef **\[S5b]** ++ + -tei τafmngmnef ++ + + -0.5tei tafmngmnef **\[S4a]** ++ + + -0.5tei tamtfngmnef **\[S6]** ++ *F*mitam ++ + -tamfmi **\[S3b]** ++ + -0.5tamteifme **\[S5a]** ++ + -tamtengmnie **\[S5c]** ++ + -tam τefingmnef ++ + + -0.5tam tefingmnef **\[S4b]** ++ + + -0.5tam teitfngmnef **\[S6]** ++ *F*metaeim ++ + taeimfme **\[S2a]** ++ + taeimtfngmnef **\[S4c]** ++ temgamie **\[S3c]** ++ -0.5taemngmnie **\[S2c]** ++ 0.5tefimgamef **\[S2b]** + +T2 = gabij + P(ij){taeij(*F*be - 0.5tbn*F*me)} - P(ab){tabim(*F*mj + 0.5tej*F*me)} + 0.5τabmn*W*mnij + 0.5τefij*W*abef + P(ab)P(ij){taeim*W*mbej - teitamgmbej} + P(ij){teigabej} - P(ab){tamgmbij} + +Since only T1 operates on **HN** we can reduce the above equation to\ +T2 = gabij + 0.5τabmn*W*mnij + 0.5τefij*W*abef - P(ab)P(ij)teitamgmbej + P(ij)teigabej - P(ab)tamgmbij ++ gabij **\[D1]** ++ 0.5τabmn*W*mnij = tamtbn*W*mnij ++ + tamtbngmnij **\[D6b]** ++ + tamtbnP(ij){tejgmnie} **\[D8b]** ++ + 0.5tamtbnteitfjgmnef **\[D9]** ++ 0.5τefij*W*abef ++ + teitfjgabef **\[D6a]** ++ + -teitfjP(ab){tbmgamef} **\[D8a]** ++ + 0.5teitfjtamtbngmnef **\[D9]** ++ P(ab)P(ij)teitamgmbej **\[D6c]** ++ P(ij)teigabej **\[D4a]** ++ -P(ab)tamgmbij **\[D4b]** + +Need to add in the T2 operating on **FN** ++ taeijfbe **\[D2a]** ++ -tabimfmj **\[D2b]** + +15. **cc2(atoms, eigenVectors, charge, fock, ERI, iterations, convergence, totalEnergy, diisStatus)** + + parameters - *atoms* is an array of atom objects (the molecular atoms), *eigenVectors* are the eigenfunctions for the final Fock matrix, + charge the molecular charge, *fock* the final fock matrix, *ERI* the 2-electron repulsion integrals, *iterations* the number + of iterations allowed from iteration, *convergence* is the convergence tolerence, *totalEnergy* the final converged energy + (not needed for calculation) and *diisStatus* indicates whether DIIS is to be used (='on') or not (='off'). Returns the CC2 level energy correction and the T1 and T2 amplitudes. + +- - - +## LCCSD +For LCCSD we add in **\[S1], \[S2a], \[S2b], \[S2c], \[S3a], \[S3b] and \[S3c]** single and **\[D4a]** and **\[D4b]** from the LCCD equations. + +16. **lccsd(atoms, eigenVectors, charge, fock, ERI, iterations, convergence, diisStatus, SCFenergy)** + + parameters - *atoms* is an array of atom objects (the molecular atoms), *eigenVectors* are the eigenfunctions for the final Fock matrix, + charge the molecular charge, *fock* the final fock matrix, *ERI* the 2-electron repulsion integrals, *iterations* the number + of iterations allowed from iteration, *convergence* is the convergence tolerence, *totalEnergy* the final converged energy + (not needed for calculation) and *diisStatus* indicates whether DIIS is to be used (='on') or not (='off'). Returns the LCCSD level energy correction and the T1 and T2 amplitudes. diff --git a/document/tdhf.md b/document/tdhf.md new file mode 100644 index 0000000..f9bdeb8 --- /dev/null +++ b/document/tdhf.md @@ -0,0 +1,437 @@ +# Time-Dependent Hartree-Fock +This module is based on [Josh Going's blog](https://joshuagoings.com/2017/06/15/magnus/) and [this paper](https://www.researchgate.net/publication/338149703_Numerical_integrators_based_on_the_Magnus_expansion_for_nonlinear_dynamical_systems). The Magnus expansion uses a complex Hamiltonian to propagate forward in time. This implementation calculates the dipole moment at every time step (although other properties could be used) and the resulting dipole variation is plotted. The dipole oscillations can then be transformed to form an absorption spectrum. The routines are + +1. **tdhf(do, run, shape, units ):** + + parameters - *do* is a list of parameters defining the problem as \[ '2' | ,'4' |, 'file\[n]', \['noplot']]. at least '2' or '4' must be specied denoting the magnus order(s) to be computed. If 'file[n]' (n is 2 **or** 4) is specified then the dipole and time values are output to an **npz** file for post-processing. To suppress plotting of results include 'noplot'. This file will be called '--tdhf.npz' with keys p - \[order of Magnus, x units, y units, pulse type, field strength, time step, maximum iterations, polarization], t - the time values, e - the SCF energy, d - the dipole values and f - the field values. *run* is a list of \[time step, maximum iterations, polarization] eg \[0.2, 1000, 'z']. *shape* is a list defining the applied field \[type, strength, rho] eg \['kick', 0.0001] will deliver an impulse of 0.0001 at time t=0 and 0.0000 for t>0, See **pulse** routine for more details. *units* are a list of the units to be used for x and y axes. for x they can be 'fs' or 'atu' and for dipole 'debye' or 'au'. The following subroutines are contained in tdhf. Returns time,SCF energy, dipole and frequency as numpy arrays, if '2' and '4' are specified will return for '4'. + +2. **initialise()** + + parameters - None. Routine does a ground state scf calculation to reset integrals needed for the tdhf process. + +3. **pulse(t, type = 'gaussian')** + + parameters = *t* is the time and *type* is the shape of the initial pulse \['kick' | 'gaussian']. The Gaussian shape is define as exp[-τ2/2ρ2).The default rho (standard deviation of Gaussian) is 0.1, so 1/2ρ2 is 50. A more general Gaussian pulse could be defined by + + fieldStrength * exp(-(t-pulseCenter)*(t-pulseCenter)/(2*pulseWidth*pulseWidth)) * sin(fieldFrequency*t + fieldPhase) + +4. **commutator(a, b)** + + parameters - *a* and *b* are matrices. Returns the commutator bracket of *a* and *b*, that is ab - ba. + +5. **orthoField(t)** + + parameter - *t* is the time. Calculates the field contribution to the Hamiltonian by applying the pulse to the relevant dipole component. Returns the Hamiltonian component due to the dipole field in the orthogonal basis. + +6. **updateFock(density, engine = 'aello')** + + parameters - *density* is the complex density matrix and *engine* is the integral engine to use. The default is to use **tdhfFock** from the aello module, this has been written as this step is time consuming in native mode. Two-electron repulsion integrals are used with the core Hamiltonian to produce a complex Fock matrix. Returns a complex Fock matrix. + +7. **updateState(u, cycleDensity)** + + parameters - *u* is the propagated Hamiltionian and *cycleDensity* is the density used for dipole calculation in this present cycle. Returns orthogonal density and Fock matrices. Calls updateFock. + +8. **updateEnergy(molAtom, molBasis, fock, density)** + + parameters - *molAtom* is am array of atom objects, *molBasis* is an array of basis objects, *fock* is the Fock matrix and *density* the density matrix. Computes the energy for the cycle, calls nuclearRepulsion and returns total scf energy. + +9. **magnus2(h, orthoFock, orthoDensity, density)** + + parameters - *h* is the time step size time -i, *orthoFock* is the initial Fock matrix, *orthoDensity* the initial (ground state) density and *density* is the initial density matrix in the non-orthogonal basis. Routine preforms the Magnus at order 2. The time is propagated using a Hamiltonian based unitary operator e-iHt. The dipole is calculated at each step and the array of those values is returned after the required number of steps has been carried out, along with the field, energy and time arrays. + +10. **magnus4(h, orthoFock, orthoDensity, density)** + + parameters - *h* is the time step size time -i, *orthoFock* is the initial Fock matrix, *orthoDensity* the initial (ground state) density and *density* is the initial density matrix in the non-orthogonal basis. Routine preforms the Magnus at order 4. + +11. **tdhfFile(ft, fe, fd, ff, fs)** + + parameters - *ft* the array of time values, *fe* is an array of SCF energy values, *fd* is an array of dipole vales, *ff* is an array of field values and *fs* is a string which is either '2' or '4' denoting the level of Magnus array values relate to. + + +Plots of the dipole v time are output (see examples later). This is how to run a Magnus 2 writing results to file, with a time step of 0.2 (atu) with 1000 steps in the 'z' direction, with a 'gaussian' pulse of maximum strength 0.0001 giving the results in atomic units. + + tdhf(['2', 'file[2]'], [0.2, 1000, 'z'], ['gaussian', 0.0001, 0.1], ['atu', 'au']) + +The next routines are devoted to a spectral analysis of the dipole results of the Magnus expansions above. Following Josh Goings in McMurchie-Davidson program it uses Pade approximants, details of which can be found [here](https://www.researchgate.net/publication/304667651_Accelerated_Broadband_Spectra_Using_Transition_Dipole_Decomposition_and_Pade_Approximants) and a more general article [here](https://en.wikipedia.org/wiki/Pad%C3%A9_approximant). + +12. **pade(p, q, w)** + + parameters - *p* are coefficients of numerator power series, *q* are coeffiecints of denominator power series and *w* value at which series are to be evaluated at. Routine calculates the Pade table entries via the extended Euclidean algorithm for polynomial greatest common divisor. Returns *p(w)*/*q(w)*. + +13. **toeplitz(type, col, row = 0)** + + parameters - *type* can be 'make', which creates a Toeplitz matrix or 'Ltri' which creates a strictlt lower diagonal Toeplitz matrix. *col* is a list of elements defining the first column of the Toeplitz matrix and *row* (optional) is the first row of the Toeplitz matrix. If *row* is zero then row will equal *col*. A Toeplitz matrix such that Ai,j = Ai+1,j+1 = ai-j [wikipedia](https://en.wikipedia.org/wiki/Toeplitz_matrix). Although Toeplitz matrices may seem esoteric they are closely related to Fourier series. Returns a Toeplitz matrix defined by *col* and *row*. + +14. **solveSpectrum(x, y, options)** + + parameters - *x* and *y* are arrays of horizontal and vertical axes values. *options* are the damping factor, maximum number of points allowed to be processed, limit of horizontal (time) axis, the number of sample points on horizonatal axis, the component of spectrum to be returned from getSpectrum ['r' | 'i' | 'a'] ie either real, imaginary or absolute value and the maximum field strength. This routine makes the data zero based, damps the data, solves the Toeplitz system and calculates the Pade approximant. Remember polynomials become differential operators and vice versa when switching between spatial and Fourier coordinates, and products become convolutions and vice versa. Returns spectrum (x and y). + +15. **getSpectrum(time, dipole, options)** + + parameters - *time*, and *dipole* are arrays and *options* are the options discussed in solveSpectrum above. Routine calls solveSpectrum for dipole and the field seperately. Can return real, imaginary or absolute components as spectrum. For imaginary the absorption spectrum (y) and frequency (x) as arrays are returned. The absorption spectrum is calculated as equation 33 in 'Real-time Time-dependent electronic Structure Theory' - J Goings et al. + +The following runs a spectrum using data saved from a previous Magnus computation... + + data = np.load('h2o-3-21g-tdhf.npz') + + d = data['d'] + t = data['t'] + p = data['p'] + + spec, freq = getSpectrum(t, d, [50.0, 5000, 2.0, 0.0001, 'i', 0.0001]) + +This can be used to plot the spectrum which has been damped by 50.0 (1/(2ρ2)), the energy range is 2.0 * au->eV (27.2114), in 0.0001 intervals. + +We can look at an example using Harpy with McMurchie-Davidson program examples/real-time.py. + +running... + + tdhf(['2', '4'], [0.05, 1000, 'z'], ['gaussian', 0.0001, 0.1], ['atu', 'au']) + +we get ![](../media/h2-tdhf.png) + +then running (with data from saved npz-file)... + + spec, freq = getSpectrum(t, d, [50.0, 5000, 2.0, 0.0001, 'i', 0.0001]) + +we get +![](../media/h2-spectrum.png) + + +Using... + +16. **getPeaks(spectrum, frequency, tolerance)** + + parameters - *spectrum* and *frequency* are the values returned by getSpectrum and *tolerance* is the level below which peaks will be ignored. Returns and array \[nPeaks]. + +Running getPeaks from the data returned by getSpectrum as... + + maxima = getPeaks( spec, freq, 0.1) + + print('There are ', len(maxima), ' peaks') + for i in range(len(maxima)): + print('Peak ',i, 'at energy ', "%0.4f" % maxima[i] + ' eV ' + \ + "%0.4f" % (getConstant('eV[-1]->nm') /maxima[i])) + + +gives... + + There are 2 peaks + Peak 0 at energy 15.5078 eV 79.9497 nm + Peak 1 at energy 46.3927 eV 26.7249 nm + +compared to Gaussian16 LR-TDHF (calculation by Josh Goings see Issue #8 Real Time Magnus - McMurchie-Davidson program)... + + Excitation energies and oscillator strengths: + Excited State 1: Singlet-SGU 15.4997 eV 79.99 nm f=0.6685 =0.000 + 1 -> 2 0.70960 + + Excited State 3: Singlet-SGU 46.4065 eV 26.72 nm f=0.0381 =0.000 + 1 -> 4 0.70804 + +We can run a RPA calculation and we get... +0.361476 (t) 0.569602 (s) 0.945233 (t) 1.175137 (s) 1.462167 (t) 1.705407 (s) +The first singlet is 0.569602 (15.4994 eV) and the third 1.705407 (46.4058 eV). The second singlet has 0 oscillator strength and so no peak. +If you use 4th order Magnus the values are 15.5103 and 46.4084 eV - so results probably good to first decimal place. + +Another example is water in 6-31g basis, this is a NWChem example found [here](https://nwchemgit.github.io/RT-TDDFT.html#Hints_and_Tricks). +The code used was + + import matplotlib.pyplot as plt + plt.grid() + plt.title('Magnus 2 water dipoles') + + eV = getConstant('hartree->eV') + field = 0.0001 + + t, _, dx, f = tdhf(['2', 'noplot'], [0.2, 1000, 'x'], ['kick', field], ['atu', 'au']) + specX, freqX = getSpectrum(t, dx, [50.0, 5000, 1.0, 0.0001, 'i', field]) + + t, _, dy, f = tdhf(['2', 'noplot'], [0.2, 1000, 'y'], ['kick', field], ['atu', 'au']) + specY, freqY = getSpectrum(t, dy, [50.0, 5000, 1.0, 0.0001, 'i', field]) + + t, _, dz, f = tdhf(['2', 'noplot'], [0.2, 1000, 'z'], ['kick', field], ['atu', 'au']) + specZ, freqZ = getSpectrum(t, dz, [50.0, 5000, 1.0, 0.0001, 'i', field]) + + scaling = max(np.max(specX), np.max(specY), np.max(specZ)) + + plt.plot(freqX*eV,specX/scaling,label='x',color='red') + plt.plot(freqY*eV,specY/scaling,label='y',color='blue') + plt.plot(freqZ*eV,specZ/scaling,label='z',color='orange') + + plt.legend(loc=1) + plt.xlabel('Energy (eV)') + plt.ylabel('scaled $\sigma(\omega)$ [arb. units]') + plt.show() + +This uses a 'kick' 0f field 0.0001 at time t=0 and results in the following plot...![](../media/h2o-spectrum.png) + +Here the peaks occur at about 9.3742(x), 11.7742 (z), 13.9484(y), 15.5130(y) and 19.1375(z) eV as calculated by getPeaks, compared to RPA +0.305998 (t) 0.343664 (s) 0.365701 (t) 0.388721 (t) 0.414205 (s) 0.429453 (t) +0.431863 (s) 0.504256 (t) 0.508056 (s) 0.555931 (t) 0.569053 (s) 0.702016 (s) +First singlet at 9.3524, second at 11.2708 (zero strength), third at 11.7524, fourth at 13.8259, fifth at 15.4858 and sixth at 19.1021 eV. + + +17. **TDHFproperties(molAtom, molBasis, charge, c, fock, ERI, method, TDHFdata)** + + parameters - *molAtom* is an array of atom objects, *molBasis* is an array of basis objects (the molecular basis), *charge* is the molecular charge, *c* are the orbital eigenvectors, *fock* the final Fock matrix, *ERI* the 2-electron repulsion integrals, *method* is the excitation calculation method currently only 'tamm-dancoff' is supported and *TDHFdata* is the [number of doubley occupied orbitals, number of spatial virtual orbitals, number of roots to be calculated]. Routine has a subroutine **integral(type, molAtom, molBasis, co, cv)** where *type* is one of \['dipole','nabla','angular'], *molAtom* and *molBasis* as defined for main routine, *co* and *cv* are occupied and virtual slices of the eigenvectors. *integral* returns the 3 components of the molecular property requested. 'dipole' and 'nabla' are returned in the *nuclear charge* gauge whilst 'angular' is returned in the *origin* gauge (compatible with psi4). The main routine calls a TDHF-RPA mode to determine the excited state eigenvalues and vectors then for each root requested returns an array of dictionaries, + + 1. The excitation energy + + 2. The electric transition dipole in the length gauge (<ψ0|**μ**|ψi>) is calculated as \ + (2)1/2Σ **μ.**|**X**n> + + 3. The electric oscillator strength in the length gauge calculated as + (2/3) **e**nΣ **μ**ti2, where **μ**ti are the components of the length transition dipole. + + 4. The electric transition dipole in the velocity gauge (<ψ0|**∇**|ψi>) is calculated as \ + (2)1/2Σ **ψ.**|**X**n> + + 5. The electric oscillator strength in the velocity gauge calculated as + (2/3**e**n)Σ **ψ**ti2, where **ψ**ti are the components of the velocity transition dipole. + + 6. The magnetic transition dipole (length gauge) (<ψ0|**ω**|ψi>) is calculated as + (1/2)1/2**ω.**|**X**n> \ + If not in Tamm-Dancoff the eigenvector should be the left-eigenvector). + + 7. The rotatory strength in the length gauge is calculated as + Σ **μ**ti**ω**ti where **ω**ti are the components of the magnetic transition dipole + + 8. The rotatory strength in the velocity gauge is calculated as + -Σ **∇**ti**ω**ti where **ω**ti/ **e**n + + The results are returned as a list of dictionaries, one dictionary for each root. Note wavefunction is determined only up to factor of phase so sign may be undetermined. We (and psi4) defines length-gauge dipole integral to include the electron charge (-1.0). + +Here are the comparisons with psi4 for water sto-3g in the Tamm-Dancoff approximation + +1st singlet state **0.356462** (psi4)    **0.356462** (harpy) +| | x | y | z | | x | y | z | +|--------------------------------|-----------------|---------------|------------|-|--------------|----------|----------| +| electric transition dipole (L) | 0.000000 | 0.000000 | 0.099258 | | 0.000000 | 0.000000 |0.099258 | +| electric transition dipole (V) | 0.000000 | 0.000000 | 0.130522 | | 0.000000 | 0.000000 | 0.130522 | +| magnetic transition dipole (L) | -0.302303 | 0.000000 | 0.000000 | | -0.302303 | 0.000000 | 0.000000 | + +| | | | | +|------------------------|--------------|-|----------| +| oscillator strength (L)| 0.002341 | | 0.002341 | +| oscillator strength (V)| 0.031861 | | 0.031861 | + +3rd singlet state **0.505628** (psi4)    **0.505628** (harpy) +| | x | y | z | | x | y | z | +|--------------------------------|-----------------|---------------|------------|-|------------|-----------|----------| +| electric transition dipole (L) | 0.000000 | 0.438875 | 0.000000 | | 0.000000 | 0.438874 |0.000000 | +| electric transition dipole (V) | 0.000000 | 0.273548 | 0.000000 | | 0.000000 | -0.273549 | 0.000000 | +| magnetic transition dipole (L) | 0.000000 | 0.000000 | 0.000000 | | 0.000000 | 0.000000 | 0.000000 | + +| | | | | +|------------------------|--------------|-|----------| +| oscillator strength (L)| 0.064926 | | 0.064926 | +| oscillator strength (V)| 0.098661 | | 0.098661 | + +To test the rotatory strengths used psi4 (S)-methyloxirane in sto-3g from [this reference](https://tinyurl.com/tddft-psicon2020) +1st singlet **0.381675** (psi4)    **0.381675** (harpy) +| | | | | +|-----------------------|-------------|-|-----------| +| rotatary strength (L) | 0.004605 | | 0.004605 | +| rotatory strength (V) | 0.001749 | | 0.001748 | + +This is an example of how to run a TDHF calculation. Put this in a file and run from harpy/source... +```python +from basis import electronCount +from tdhf import TDHFproperties +import rhf + +#run harpy and get run parameters and integrals +molAtom, molBasis, molData = rhf.mol([]) +rhf.scf(molAtom, molBasis, molData,[]) + +charge = molData['charge'] + +#metrics for TDHF +nOccupied = electronCount(molAtom, charge)//2 +nVirtual = len(molBasis) - nOccupied +roots = 3 +data = [nOccupied, nVirtual, roots] + +#get residues in Tamm-Dancoff Approximation +residues = TDHFproperties(molAtom, molBasis, charge, rhf.C, rhf.fock, rhf.ERI, 'tamm-dancoff', data) + +print('TDHF residues for ', molData['name'], ' in the basis ', molData['basis']) +print('excitation oscillator strengths (L,V)') +print('----------------------------------------') +for r in residues: + print(" {:f} {:f} {:f}".format(r['excitation energy'], \ + r['oscillator strength (length gauge)'], \ + r['oscillator strength (velocity gauge)'])) +``` +18. **TDHFspectrum(spectrum)** + + parameters - *spectrum* is a dictionary with the following keys: *data* - an array of dictionaries of residue results as returned by **TDHFproperties**, *units* - units to used in output either '**nm**' or 'ev', *type* the kind of spectrum to draw either '**opa**' for one-photon absorption or 'ecd' for electronic circular dichroism, *points* are the number of x-axis points to plot (**5000**), *shape* is the type of broadening to be used, either '**gaussian**' for inhomegenous broadening or 'lorentzian' for homegenous broadening and *gamma* is the broadening factor (**0.02**). Defaults are in bold. + There are 2 contained subroutines + + **profile(p, d = None, mode = 'wave')** + parameters - *p* is the on which the lineshape is centered, poles, *d* is the domain of the profile and *mode* is either 'wave' where routine returns the lineshape or 'max' which returns the maximum of the band. + + **prefactor()** + parameters - None. This routine computes the numerical factor of the expressions for opa and edc. The prefactor is computed in SI units and then adjusted for the fact that atomic units are used to express microscopic observables: excitation energies and transition dipole moments. The refractive index *n* is, in general, frequency-dependent. We assume it to be constant and equal to 1. *NA* is Avagadro constant, *c* the speed of light, *ħ* is reduced Planck constant, *e0* is the electric constant. + + for absorption need conversion au->Ccm (Coulomb centimeters) \ + *elementary charge x bohr radius x 1000*. (1000 is m->cm) + + prefactor calculated as \ + (4.π.2*NA*/(3.1000.ln(10).(4.π.*e0*).*ħ*,*c*)).(C->cm)2 \ + + + for circular dichroism also need conversion au-> JT-1 (Joules inverse Tesla) \ + 2.μB.1000*, where μB is the Bohr magnetron. + + **the results are given in litres per molecule per centimetre** + + The main routine returns a dictionary with keys *x* - the x-axis convolution, *y* - the y-axis convolution, *poles* the x-axis bar values and *bars* the heights of the residues. + + For water in STO-3G and TDA regime (units = 'nm', gamma = '0.02') the comparison results from psi4 via the jupyter notebook referenced earlier are, giving values for just the first singlet harpy(psi4)... + + | OPA | gaussian | lorentzian | + |--------------|------------------|-------------| + | x convolution | 57.8701 (57.8701) | | + | y convolution | 5.366e-03 (5.366e-03) 1 | 824.5057 (824.5071) | + | poles | 127.8212 (127.8211) | | + | bars | 9.7079e-01 (9.7078e-01) | 7.7458e-01 (7.7457e-01) | + + 1 this is the 5th singlet (1st was 0). eV results also checked and found to be in same sort of agreement. + + To check ECD I've used the (S)-methyloxirane example in the jupyter notebook with STO-3G. + + | ECD | gaussian | lorentzian | + |--------------|------------------|-------------| + | x convolution | 73.0109 (73.0110) | | + | y convolution | -8.2248e-06 (-8.2322e-06) | -0.5623 (-0.5627) | + | poles | 119.3774 (119.3773) | | + | bars | 1.4393 (1.4391) | 1.1484 (1.1483) | + +Run the following code (from source directory for eg (S)-methyloxirane) +```python +from basis import electronCount +from tdhf import TDHFproperties +import rhf + +#run harpy and get run parameters and integrals +molAtom, molBasis, molData = rhf.mol([]) +rhf.scf(molAtom, molBasis, molData,[]) + +charge = molData['charge'] + +#metrics for TDHF +nOccupied = electronCount(molAtom, charge)//2 +nVirtual = len(molBasis) - nOccupied +roots = 5 +data = [nOccupied, nVirtual, roots] + +#get residues in Tamm-Dancoff Approximation +residues = TDHFproperties(molAtom, molBasis, charge, rhf.C, rhf.fock, rhf.ERI, 'tamm-dancoff', data) + +#get spectrum data +from tdhf import TDHFspectrum + +dict = {'data' : residues, 'units' : 'nm', 'type' : 'opa', 'points' : 5000, 'shape' : 'gaussian', 'gamma' : 0.02} +spectrum = TDHFspectrum(dict) + +import matplotlib.pyplot as plt +fig, ax = plt.subplots() + +ax.set_xlabel('\u03BB [nm]') +if dict['type'] == 'opa': ax.set_ylabel('\u03B5 [L $mol^{-1}$ $cm^{-1}$') +elif dict['type'] == 'ecd': ax.set_ylabel('\u0394\u03B5 [L $mol^{-1}$ $cm^{-1}$') +plt.grid() +plt.title('(S)-methyloxirane - Gaussian') + +ax.bar(spectrum['poles'], spectrum['bars'], width=0.5, color='k') +ax.plot(spectrum['x'], spectrum['y'], color='orange') + +plt.show() +``` +this will produce either of the following plots... + +![](../media/opa-ecd.png) + +- - - +### TD-CCSD +This follows [Linear Absorption Spectra from Explicitly Time-Dependent Equation-of-Motion Coupled-Cluster Theory- Nascimento & DePrince](https://pubs.acs.org/doi/full/10.1021/acs.jctc.6b00796). The dipole is propogated in time using a 4th-order Runge-Kutta algorithm. We have propagated the right-hand amplitudes of the dipole (autocorrelation) function which are given by\ +*m*0 = μii\ +*m*ai = μia\ +*m*abij = 0.0 + +The left-hand amplitudes are\ +**m**0 = μii + μiaλia\ +**m**ai = μii + μabλib - (μijλja - μjjλia) + μjbλijab\ +**m**abij = μjbλia + μkkλijab + P(ab){ μacλijcb} - P(ij){ μikλkjab} + +The time derivatives of the *m*-amplitudes are\ +d/dt[*m*0] = *m*aiFaisub> + 0.25*m*abijgijab [24]\ +d/dt[*m*ai] = *m*biFab - *m*bjFij + *m*bjWjabi + *m*abijFjb - 0.5*m*abjkWjkib + 0.5*m*bcsup>ijWajbc [25]\ +d/dt[*m*abij] = P(ab){*m*bmWmaij} + P(ij){(*m*enWmnie)tabjm} - P(ij){*m*ejWabei} - P(ab){(*m*fmWamef)tbeij} + P(ij){*m*abmjFmi} + P(ij){(0.5*m*efingmnef)tabjm} + P(ab){*m*aeijFbe} + P(ij){(0.5*m*afmngmnef)tbeij} + P(ij)P(ab){*m*aemjWmbei} + 0.5*m*abmnWmnij + 0.5*m*efijWabef + +The intermediates F and W are given in cc.md. *t* are the ccsd-singles and doubles amplitudes and *λ* are the Λ-ccsd singles and doubles amplitudes. μ are the dipoles in the MO spin basis. The auto-correlation function is evaluated at each step as\ +fac = **m**0*m*0 + **m**ai*m*ai + 0.25**m**abij*m*abij + +19. **td_ccsd(molAtom, molBasis, ts, td, ls, ld, ims, fockMOspin, eriMOspin, run, metrics)** + + parameters - *molAtom* is an array of atom objects, *molBasis* is an array of basis objects (the molecular basis), *charge* is the molecular charge, *ts* and *td* are the converged CCSD singles and doubles amplitudes, *ls* and *ld* are the converged Λ-CCSD singles and doubles amplitudes, *fockMOspin* the final Fock matrix in the molecular spin basis, *eriMOspin* the 2-electron repulsion integrals in the molecular spin basis and *run* are the parameters for the calculation ie [time_step, step count, polarization]. The *metrics* are [number of spin orbitals, number of electrons]. Returns [time] , [dipole] lists. + +The following code is an example of using Λ-CCSD with harpy (it was used to generate a dipole plot for H2 in 3-21g basis as a test against psi4). +```python +import rhf +from integral import buildFockMOspin, buildEriMO, buildEriDoubleBar +from cc.scc import ccsd_lambda +from basis import electronCount +import numpy as np + +from tdhf import td_ccsd +if __name__ == '__main__': + + #do a reference scf calculation + atoms, basis, data = rhf.mol([]) + eSCF = rhf.scf(atoms, basis, data,[]) + + charge, iterations, tolerance, diis, gauge = data['charge'], data['cycles'], 1e-10, data['diis'], data['gauge'] + + #get t amplitudes from ccsd calculation + from cc.scc import ccsd + eCCSD, ts, td = ccsd(atoms, rhf.C, charge, rhf.fock, rhf.ERI, iterations, tolerance, eSCF, diis) + + #metrics + spinOrbitals = rhf.C.shape[0] * 2 + nElectrons = electronCount(atoms, charge) + + #get fock in MO spin basis + fockMOspin = buildFockMOspin(spinOrbitals, rhf.C, rhf.fock) + + #get two-electron repulsion integrals in MO basis + eriMO = buildEriMO(rhf.C, rhf.ERI) + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + #calculate lambda amlplitudes and pseudoenergy + eLCCSD, ls, ld, ims = ccsd_lambda(fockMOspin, eriMOspin, ts, td, nElectrons, iterations, tolerance) + + print("SCF energy {:>12f} Hartree".format(eSCF)) + print("CCSD energy {:>12f} Hartree".format(eCCSD)) + print('\u039B-CCSD energy' "{:>12f} Hartree".format(eLCCSD)) + + #Time-dependent CCSD + polarization = 'z' + time, dipoles = td_ccsd(atoms, basis, ts, td, ls, ld, ims, fockMOspin, eriMOspin, [0.05, 1000, polarization], [spinOrbitals, nElectrons]) + + import matplotlib.pyplot as plt + from atom import getConstant + plt.grid() + plt.title('TD-EOM-CCSD harpy comparision') + plt.plot(np.array(time) * getConstant('atu->femtosecond'),np.array(dipoles).real * getConstant('au->debye') ,label=u"\u211D",color='red', lw=0.7) + plt.plot(np.array(time) * getConstant('atu->femtosecond'),np.array(dipoles).imag * getConstant('au->debye') ,label=u"\U0001D540",color='blue',lw=0.7) + plt.legend(loc=1) + plt.xlabel('time (fs)') + plt.ylabel('dipole (Debye)') + plt.show() +``` +The comparison plots for harpy and psi4 are shown below. + +![td-eom-ccsd](https://user-images.githubusercontent.com/73105740/120072199-7cfe6a00-c08a-11eb-8068-e071041ce90c.png) diff --git a/document/ucc.md b/document/ucc.md new file mode 100644 index 0000000..8fe5490 --- /dev/null +++ b/document/ucc.md @@ -0,0 +1,60 @@ +### Unitary Coupled-Cluster + +This module implements ucc2, ucc3 and excited state ucc2. These are unitary coupled-cluster methods. + +1. **class unitaryCoupledCluster(object)** + + The initiator takes the arguments (fs, gs, e, data) where *fs* is the MO spin Fock matrix, *gs* are the MO spin two electron repusion integrals, *e* are the AO basis orbital energies and *data* is a dictionary {'method':.., 'electrons':.., 'cycle_limit'.., 'precision':.., 'verbose':.., 'roots:...'} supplied to the class by the caller. *method* is the unitary coupled-cluster method, *electrons* are the number of electrons, *cycle_limit* is the maximum number of iterations allowed, *precision* is the number of decimal places to converge to, *verbose* is a boolean flag - if True information on each cycle will be printed and *roots* are the number of roots to be returned if excited-state is selected. \ +The available *method*s are 'ucc2', 'ucc3', 'ucc2-s-ee', 'ucc2-ee' and 'ucc(4). +On exit the class has instance variables *ss* the singles amplitudes, *sd* the doubles amplitudes, *converged* a boolean flag (which should be checked on exit) +indicating a successful convergence of the iterations and 'energy'. *ss* is of dimension [o,v], *sd* is of dimension [o,o,v,v]. *energy* is a dictionary with keys + + 'cc' - unitary coupled-cluster correction + + 'eHF' - Hartree-Fock electronic energy + + 'mp2' - Moller-Plesset 2 energy + + 'nuclear' - nuclear repulsion energy (user added see example code) + + In the ucc2 method the singles and doubles de-coupled with the doubles being formally equivalent to linear ccd. ucc2-ee is the excited state version of ucc2 using converged ss and sd amplitudes. ucc2-s-ee is the 'strict' version of ucc2-ee using td amplitudes and is equivalent to adc(2). + + + There are eight routines \ + *initialise_amplitudes(self)* - sets td,ss and sd initial values and computes d-tensors (inverses). Computes HF energy. \ + *update_amplitudes(self, iterative=True)* - generate next guess of the amplitudes. \ + *cluster_energy(self)* - compute the cluster correction energy. \ + *iterator(self, func)* - the main iteration loop, amplitude update function passed as arguement. + *excitations(self)* - secular equations for ucc2 + + This is an example of the use of the classes. +if __name__ == '__main__': + + #do an SCF computation + import rhf + molAtom, molBasis, molData = rhf.mol([]) + eSCF = rhf.scf(molAtom, molBasis,molData, []) + + #get data for coupled-cluster + from atom import nuclearRepulsion ; from basis import electronCount + charge, nuclearRepulsion, electrons = [molData['charge'], nuclearRepulsion(molAtom), electronCount(molAtom, molData['charge'])] + f, c, e, eri = [rhf.fock, rhf.C, rhf.e, rhf.ERI] + + #get fock and eri in molecular spin basis from spinMO class + mo = spinMO(e, eri, c, f) + gs = mo.gs + fs = mo.fs + + data = {'method':'ucc2-s-ee', 'electrons':electrons, 'cycle_limit': 50, 'precision':1e-10, 'verbose':True, 'roots':5} + cc = unitaryCoupledCluster(fs, gs, e, data) + if cc.converged: + cc.energy['nuclear'] = nuclearRepulsion + + print(cc.energy) + +The results for the methods are (Crawford geometry STO-3G) +{'ucc2': -0.07192916403651912, 'mp2': -0.049149636689279796, 'eHF': -82.94444701585147, 'nuclear': 8.00236706181077} +{'ucc3': -0.07011956942398256, 'mp2': -0.049149636689279796, 'eHF': -82.94444701585147, 'nuclear': 8.00236706181077} + +[0.28550929 0.28550929 0.28550929 0.34391619 0.37229159] +{'ucc2-s-ee': -0.07192916403651912, 'mp2': -0.049149636689279796, 'eHF': -82.94444701585147, 'nuclear': 8.00236706181077} +{'ucc(4)': -0.07054260489227335, 'mp2': -0.049149636689279796, 'eHF': -82.94444701585147, 'nuclear': 8.00236706181077} + +The ucc2 and ucc3 methods are taken from [Hodecker](https://core.ac.uk/download/pdf/322693292.pdf) and ucc(4) from [Rodney J.Bartlett, Stanislaw A.Kucharski & Jozef Noga](https://www.sciencedirect.com/science/article/abs/pii/S0009261489873725). +] \ No newline at end of file diff --git a/document/uhf.md b/document/uhf.md new file mode 100644 index 0000000..407fb75 --- /dev/null +++ b/document/uhf.md @@ -0,0 +1,54 @@ +# Unrestricted Hartree-Fock Module - SCF calculations + +A discussion of the algorithm can be found in eg [here](https://www2.chemistry.msu.edu/faculty/harrison/web_docs_Hartree_Fock/HF3.pdf). You will need from numpy - sqrt, zeros, dot and vdot from numpy.linalg - fractional_matrix_power, eigh, from math - pow. All functions are imported from their modules explicitly so you can see where they come from. This uses **mol** from rhf to read input file and process defaults. + +1. **buildUnrestrictedFock(H, eri, cycle, density)** + + parameters - *H* the core Hamiltonian, *eri* the 2-electron repulsion integrals, *cycle* the current SCF iteration, *density* are the alpha and beta spin density matrices in format (2, nBasis, nBasis). Returns an alpha and beta spin Fock matrices in same format as density. If cycle is 0 then both matrices are returned as the core Hamiltonian. + +2. **buildUnrestrictedDensity(c, orbitals)** + + parameters - *c* are the alpha and beta spin Fock eigenvectors in format (2, nBasis, nBasis), *orbitals* are the α and β occupancy numbers. Returns the spin density matrices. + +3. **rmsDensity(density, preDensity)** + + parameters - *density*, *preDensity* two consecutive cycles of a density matrix. Returns square root of the square of the difference of the two matrices. + + +4. **rebuildCenters(molAtom, molBasis, geo)** + + parameters - *molAtom* is an array of atom objects, *molBasis* is an array of basis objects and *geo* is an array of cartesian coordinates. This routine is used to copy a new coordinate set represented by geo into molAtom and molBasis .center attributes. Returns the rebuilt object arrays which can then be used as arguements for scf to calculate an energy for a changed geometry. + +5. **scf(molAtom, molBasis, run, show)** + + parameters - *molAtom* is an array of atom objects, *molBasis* is an array of basis objects, *run* are the parameters that define the scf, *show* are the output sections to be displayed. If show selects *postSCF* the following are displayed + spin matrix, spin contamination, total density Pa + Pb, spin density Pa - Pb, and if post={ch,di} is in the project file then a Mulliken population analysis and dipole calculation are performed. There is a 'uhfmix' parameter that can be included in the .hpf molecule definition, by default this is set to 0.0 so closed shell uhf computations default to rhf. In, for example, the H2 dissociation example the mixing parameter is set to 0.02 which results in a mixing of the humo and lumo on the alpha orbitals. + + Returns total energy and total density is global. + +6. **getOccupancy(e, orbitals, nBasis)** + + parameters - *e* are the orbital energies, *orbitals* are the number of α and β orbitals and *nBasis* is the number of basis functions. Returns occupancy vectors. + +7. **spinSquare(c, occupancy, S)** + + parameters - *c* are the molecular eigenvectors shape is (2, nBasis, nBasis), *occupancy* are the alpha and beta occupancies and *S* is the overlap integrals. Returns 2> and the multiplicity 2\*S + 1. + +H2O in 6-31G basis - charge -1, multiplicity 2. Comparison with pyscf. + +| energy | source | +|---------|-------| +|-75.801683 | harpy | +| -75.801683 | pyscf | + +mulliken population + +| O1 | H1 | H2 | description | +|-----------|----| ------|---------------| +|-0.714275 | -0.142862 | -0.142862 | harpy charge | +| -0.12926 | 0.56463 | 0.56463 | harpy spin | +| -0.71428 | -0.14286 | -0.14286 | pyscf charge | +| -0.12926 | 0.56463 | 0.56463 | pyscf spin | + +total spin is 0.771032 +multiplicity is 2.021 \ No newline at end of file diff --git a/document/view.md b/document/view.md new file mode 100644 index 0000000..860ccb6 --- /dev/null +++ b/document/view.md @@ -0,0 +1,179 @@ +# View Module - output results to HTML file + +Theres nothing really interesting here. Results are passed from the computational algorithms to this module for formatting into an HTML file suitable for viewing in a browser. Each run is written to a harpy.html which unless saved elsewhere will be overwritten on each run, the file will be created if doesn't exist. + +1. **pre(name, atoms, type)** + + parameters - *name* is the molecule name as read for the project file and *type* is the level of the calculation 'rhf' or 'uhf'. This function must be called as it writes essential HTML to the output file. + +2. **geometry(atoms)** + + parameters - *atoms* is an array of atom objects (the molecular atom set). Outputs + + the number ao atoms, + the atomic input data, + the bond lengths, + the bond angles, + the out-of-plane angles, + the dihedral angles, + the center of mass, + the connection matrix, + the inertia tensor, + the principal moments of inertia, + the rotor type, + the rotational constants, + the nuclear repulsion energy. + +3. **orbitals(atoms, charge, name, bases)** + + parameters - *atoms* is an array of atom objects (the molecular atom set), *charge* the molecular charge, *name* is name of the basis and *bases* is an array of basis objects (the molecular basis). Outputs + + the number of electrons, + the name of basis, + the information from the basis exchange file about the basis, + the orbital information - number of orbitals, occupied orbitals, virtual orbitals, + the list of orbitals with their atom centers and momenta, + the aufbau occupancy of the atoms in the molecule, + +4. **uhfOrbitals(alpha, beta, multiplicity)** + + parameters - *alpha* and *beta* are the number of alpha spin and beta spin electrons. *multiplicity* is the multiplicity of the molecule. Outputs + + the number of alpha spin electrons/orbitals, + the number of beta spin electrons/orbitals, + the multiplicity. + +5. **preSCF(S,K,J,ERI,U, FO, D, IE, guess)** + + parameters - *S* is the overlap matrix, *K* is the exchange matrix, *J* is the coulomb matrix, *ERI* are the 2-electron repulsion integrals, *U* is the orthogonal transform matrix, *F0* is the initial Fock guess, *D* is the initial density matrix, *IE* is the initial electronic energy and guess is either 'core' or 'gwh' for the type of initial Fock used. Outputs + + the initial guess type, + the overlap matrix, + the exchange matrix, + the coulomb matrix, + the 2-electron repulsion integrals, + the orthogonal transform matrix, + the initial orthogonal Fock matrix, + the initial density matrix, + the initial electronic energy. + +6. **SCF(e, de, dd, cycle, diis, iterations, convergence)** + + parameters - *e* the current electronic energy, *de* delta energy during the SCF cycle, *dd* rms delta density during the SCF cycle, *cycle* the current iteration, *diis* whether diis is being employed, *iterations* is the maximum number of iterations allowed and *convergence* is the convergence threshold. Outputs + the maximum allowed iterations, convergence threshold and diis status, for each cycle delta energy, rms delta density, electronic energy and iteration number. + +7. **postSCF(data, type)** + + parameters - *data* a list of values, *type* an identifier for the 'data' list. Outputs... + + 'eigen' - number of cycles convergence took, final total energy and the orbital + energies, the final eigenvectors and the final density matrix, + 'uhf-post' - spin statistics for UHF + 'uhf-mull' - Mulliken population and spin analysis, + 'mulliken' - the Mulliken charge analysis, + 'lowdin' - the Lowdin charge analysis, + 'bonds' - Mayer bond orders and valency, + 'energy' - analysis of the energy partitioning, + 'dipole' - components and resultant of the dipole, + 'mp2-dipole' - components of the mp2 level dipole momemnt. + 'quad' - components, amplitude and asymmetry of quadrupole. + 'mp' - moller-plesset 2nd and 3rd order corrections, + 'omp' - orbital optimised moller-plesset 2, + 'mplp' - Laplace transform mp2, + 'mbpt' - many-body perturbation theory, + 'ci' and 'rpa' - configuation interaction and random phase approximation, + 'fci' - full configuration interaction, + 'cisd' - configuration interaction singles and doubles, + 'cis' - configuration interaction singles + 'cisas' and 'cisat' - spin-adapted configuration interaction, + 'ju' - CI energy level contributions and significant jumps, + 'bd' - block Davidson - 1st five eigenvalues, + 'ccsd' - coupled-cluster singles and doubles, + 'ccsd(t)' - coupled-cluster singles and doubles perturbative triples, + 'lccd' - linear coupled-cluster doubles, + 'ccd' - coupled-cluster doubles, + 'cc2' - coupled-cluster 2 approximation, + '+c' - fast coupled-cluster + 'fa' - intra-molecular forces on atom - analytic, + 'fn' - intra-molecular forces on atom - numeric, + 'ep' - electron propagator (2)(spatial), + 'eps' - electron propagator (2)(spin), + 'ep3' - electron propagator (3)(spin), + 'gfa' - approximate Green's function correction + 'po' - polarizabilities + 'hyper' - hyperpolarizabilities + 'resp' - restrained electrostatic potential charges + 'eom' - equation of motion ccsd and mbpt + 'cogus' - Cluster Operator Genrator Using Sympy + +8. **post(exit = True)** + + parameters - *exit* if not true will write error messages else complete HTML script and close output file. Must be called as last output function. + +9. **showMatrix(title, matrix, f, precision = '%.4f')** + + parameters - *title* is caption for HTML table, *matrix* the values to be displayed in table form, *f* is the output file and *precision* is the format of the displayed numbers. + +10. **matrixHeatPlot(a, title = '')** + + parameter - *a* is a 2-dimensional matrix and *title* is a title for the plot. Displays a heatplot of the matrix. + +We can run this as eg +```python + #do ccsd computation + _, ts, _ = cc.ccsd(molAtom, rhf.C, 0, rhf.fock, rhf.ERI, 50, 1e-8, eSCF, 'on') + + maxAmplitudes = eom.maximumAmplitudes(ts, 5, 0) + print(maxAmplitude) + + import view + view.matrixHeatPlot(eomEVec, 'eom-mbpt2') + +``` +to give +``` +['0.021778 (7, 11)', '0.021778 (6, 10)', '0.00329 (2, 10)', '0.00329 (3, 11)', '-0.002501 (5, 13)'] +``` +10. **matrixHeatPlot(a, title = '')** + + parameter - *a* is a 2-dimensional matrix and *title* is a title for the plot. Displays a heatplot of the matrix with values normalised to inteval \[0,1]. + +We can run this as eg +```python + #do ccsd computation + _, ts, _ = cc.ccsd(molAtom, rhf.C, 0, rhf.fock, rhf.ERI, 50, 1e-8, eSCF, 'on') + + maxAmplitudes = eom.maximumAmplitudes(ts, 5, 0) + print(maxAmplitude) + + import view + view.matrixHeatPlot(eomEVec, 'eom-mbpt2') + +``` +to give +``` +['0.021778 (7, 11)', '0.021778 (6, 10)', '0.00329 (2, 10)', '0.00329 (3, 11)', '-0.002501 (5, 13)'] +``` +![image](https://user-images.githubusercontent.com/73105740/120977873-bf4f3780-c76b-11eb-979e-37652bd60b80.png) + +11. **evaluateGaussian(iBasis, x ,y , plane, z, normal)** + + parameters - *iBasis* is a basis object, *x* and *y* are coordinates in the plane in which the Gaussian is to be evaluated, *plane* is 'xy'|'yz'|'zx' which defines the plane, *z* is the distance from the plane at which to evaluate Gaussian, *normal* is a boolean flag - if True Gaussian will be normalised. Returns the Gaussian density at point (x,y,z) (or y,z,x or z,x,y depending on *plane*). + +12. **plotGaussianOverlap(iBasis, jBasis, plane, z, extent, grid, atoms, options = \[False, 20])** + + parameters - *iBasis* and *jBasis* are basis objects, *plane* is 'xy'|'yz'|'zx' - the plane in which to display contour, *z* distance (bohr) above (+) or below (-) plane in which to draw contour, *extent* is a list of maximum and minimum extents of the area to be contoured, *grid* is the mesh size of the grid, *atoms* are the molecular atom objects, *options* are a list \[normalise, number of contours]. Plots a contour of the overlap between orbitals iBasis and jBasis. If jBasis is *None* singlem orbital is plotted. + +13. **plotMO(C, orbital, plane, z, extent, grid, atoms, bases, options = \[True, 60, 1e-8])** + + parameters - *C* are the eigenvectors from a converged SCF calculation, *orbital* is the number of the orbital to plot (0,1,...), *plane* is 'xy'|'yz'|'zx' - the plane in which to display contour, *z* distance (bohr) above (+) or below (-) plane in which to draw contour, *extent* is a list of maximum and minimum extents of the area to be contoured, *grid* is the mesh size of the grid, *atoms* are the molecular atom objects, *bases* is the molecular basis and *options* is a list \[normalise, number of contour lines, reject absolute values below this]. Plots a contour of the molecular orbital. + +For water in STO-3g (in xy-plane) we can run +```python + graphic.plotGaussianOverlap(molBasis[3], None,'xy', 0, [-4, 4,-4, 4], 100, molAtom, [False, 20]) + graphic.plotGaussianOverlap(molBasis[2], molBasis[6],'xy', 0, [-4, 4,-4, 4], 100, molAtom, [False, 20]) + graphic.plotMO(rhf.C, 5, 'xy', 0, [-5,5,-5,5],100, molAtom, molBasis, [False, 60, 1e-6]) +``` +![image](https://user-images.githubusercontent.com/73105740/120989336-58378000-c777-11eb-9143-dca37f19a3da.png) ![image](https://user-images.githubusercontent.com/73105740/120988845-d8111a80-c776-11eb-9dd3-7e7ba9a37b03.png) ![image](https://user-images.githubusercontent.com/73105740/120989996-07745700-c778-11eb-8e76-04690c0e4c25.png) + + diff --git a/media/aello.jpeg b/media/aello.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..44d60135c667eb64876c81f3c828d722ec9cf4b6 GIT binary patch literal 5641 zcmb7IcTf|~vkxS61QGk1P+nBfWoJ%k;?&%w>l&CbImB*e-uCnL)tEQJsg zl3-W5&ioGu85K44Un>?mIu=oGc5c!CH(h=JfT;oX0DmAEAAlT81_YB`b^*Blag*X7 zcmIbd$$%gVDst+-QWYiuIT;X04g!IIAi95)$jE^J5SRjTol=sSPu=*TPZaj5l!giH z)dEY$$PN`NTw2q?H@b+pd+)C~2N{4I_Km zU=ZZGq&l-P1)tPk=vTxJmIcPb7pnEnZYk4dSwXx z7DSv^@kls?NvEcHUa{qomP&;V-fh=bchWpbtby%YvGXtujL-qj+}u&U^T$irBssa0 zUmnQ_k#yf4-B4hV9iXqZCh0tXx|}kfathrDQ|Gx;o-`bOYp6`H*P|WJT|TI)n;n(P z!y}nqg{-JeBZc)@+77B-L7NKKm$A^|&9VS^AvIc)|1dVito&HkOF%;H?d*93{EaFl zMolT3&6h2ZM>Kfiow&tV1Lm#1izHu}wAu-zyFdY2{6iJ*?)KcDC3PsCkbFvsLA5-} zxskBgnRW3PTF8YW_TsG{+`q89Q7)1?H@1Fq3D9=3oRWEa^rr;qIyk_!tSvkAyd)1= z!gv-g)36@?>SENWWA@FpFQul5JX_!ziuW7P_Yt8MV~5tZgt3}i74NWiPYnSJXp!hT zZIzCmh4bD7N-uX$xgIN#0iiysLpV{AyM6xj-0l9u4b8D!=Z7}74W4=D#%oXgTiI&d zojS;^&C+4Vn%5P0z|Hq-ZjV#GF14`1(WkTN?Op=5c(50%*!{8`BEjO2A;v8bI?-Ow z_XDHQe`CQ*!XzXTDfcO6)9er3J@9}(9{E8u_A{l?nJJqikA(Ckz(d2>_w{y?lXXF! zqaX9D(X2`bBGM%CDqfHbX_jd?t_rU9S9uyX^6e7fgu(n|FLulb>)oryLh5Zu4AhvBP7}ch=Qv8@=F|s9YQq6H1emhk3jbV$( zJHM%;Vb5@uyvlW=>*O`rl602PFLLZ@j+|LM1>WJ5Ev`moE`g$-_GWBm>aO!X%u1WD zpbza}scjZ9Glyte38xh)q%+$Q(m1w9{qrfEy~G^F*|{fg%k#z@!Pc#>Xz%r!54|RT zDz2O2$~v4{eX8bC^+~xpLP9z1ELxWs66isw&&4opfPS?-!6c!2oSFpY+6W4V>^!;m z>9nN7zfpPJ$)C=#$~CxhKTrly^8VKjCQT>K@~X6;N8d6WEvt;|gS+@mh3K79;jEg#fXI@w1j%Q@!X2Le9RCTbP>>b}Q-lNs!%qhb|t=cfe zp;zDqxTtGIqI*P2d0tRpV2-%;pyJ+`!82BK{TGPP3+Oi2Eh(V`IGU1&Uy3P?em#W^5B8(hq|>vlaFEWfXpKs3(@3hqgspv+Ch<=TPQy-5^0KGD+Z(5! zCPpj_^ezj$@rtjqyzT6i6%A21sw5Urr6|AZI5|>95}F?&Sh`%(r`zqZbW>2Qr>`y;v|u@#);Y`9{T7=~}Z_wRjAnh>}KG|2Qx zLSr*n#cD0SMz9~V507n92`;0e)z5VMc1k?;WA{A}C6|EX(N;UH^*34${!}(!nFpk_ zKli2a1}yk(82W}6D*kdY+jE?hFSlL31e7#pgTDS*+&PwO^-R5*D`)25)uTrrE)X+6 zFHhEAt-i<(FEpGf0{h==38t8yo0XJ$dqber8J?QmxP`u}hG>6|!eQ7pUq@sGO%6?T zV{p2!()1ktb&IrdI=rZ|1NFPK5Oo;$OpdCAiin*P;`QtLI%~NoIJS>@(25_6Lgi2oVuk>pR!?{HT{Kyw zWLHc&0^;qd;J@n*R{xld6j>(+IYHPaM$L7Rl~3-+O>sv7%^*h6$Ewt=I;O+4!uzMAF1Er&M5fW9Duu{>?bbIFtXypnXVAVw^}) zx6CpTyH)CZoLXC|u1B?nR@q?2`z(9V>85;U2X&Bs^Uo$;`wikmaR$P%ho`ZAkrKv1z)> zYx+a9uZo(gyV*s&3Uu1C`0QwGp-mZpWbDY@kAT@~Qo_38bP^Unb2+k0C@Gte^$u)p zTJq`Vs2O{Zm}By|C6CN50TWi4p-8qB<#0T<5x65taYfZvOm3;YT$1ht_miHfPP;1- zLzb0F@`;JDxmMz@kFE<5TB05q`pMpG{GKXv4WYWUci5KcLcjmHZPE`>*%;Z5(e^CXXQxlZ>2nnw-QGZwaXmdPI4 ztEL5(+Y1fWPIj!UzQi|$N}&kJX66swu3lo*V_HcYdvp<7bcFA2g`MI%KlVMrH39{v zX+a7{`yrPAYca9AO7ThwHeY&tr$AfcQI~-CuiK}EiYDDx-2yEkA@^~xX!RU*zGA;& zPJpWL-XFQO&8%wtYjN=cb7k5F)1hV$-_5Bs7deh4xeV7}M4rl8tyE&a2Su?GYEZkvZrts=g>2;Qynx>;R{85q=LAyI4ntY~Y>0w4-j-dRm*SUs_N z@cvuS6}p@=&9o~t88{XTvbcG|0CdqWp!Z|Vw7!>zaGy%+EFWuNnu`tW5imwtun%|? zEuG>m!ZO9Ya?mqJVL1@>t0`&P1^mI&-YmvAXZgjIB$rWj?vCf&AHY(|m_x+9lwgPY z0Y(^&!o$_f8fTR0GsC9l@e&aqUuFMjkOivYN#xFgDZ4T~GtSUZMac3<&xgCJ_JJNe zGhw`c^sO&qPf8tAoNB0q{+pz{MECcCf~16HCW3(*M|~BKqDMdZi|bRjjZ=RscKdbVs(}d6qFIGsuIFS$xs3`ZVHoQW3RgBE3ZJg9vaZf)qN0nD`mB9<#%fWnSRd`!qe`Q-dfvQ)^L}cz3&2 zDZq)29!VwOD!BT)FxATCgS$39n~{r0I(!A%`GsM1I+3eRHxW`daGknM+vXCmZ1nIV zT;^@<`bYJU)hViH9~0xqYv8(bB*w|y&G75mNlMkZ^KajulBxsTZwD(;y*F=ZYqPdd zBxN7}64($!iCOaPYp6-X4^LV=^0b&b=Y*=GecDSICOBAZxs zd#ClYUad5OH^&^QBqj#i%MT9PI~!Y z`;}Q^kBT{-g@lQtF98APXBZYs8XMNH=r+@a2?OS5Jdj|D$ zSlev@>@isAu~NV6{TzB#eFA6H@1*Gmhx~p1xKBp(I7zt?WS>k)7d?#zfK68NIoJO4 ziQbm@2mT3`+2aX3Pg)o%M}?!FR_orSJ)Z7uV(&3<9~f*!hfh`veq(LeZg*$?OF0vCLF@#W>| zB3lKAxcaw`#No<9=#t+F2JP6GzH(oLc)ZG^_)NG+xCl`GQn+lM0tg^8Xu1MP?v*a9gThSlQ4Zn&Fi*tSh$7wwtbG-9CIG@eyXe9deZL|#J$X$(2>4cAUxLJ7 ztC=Hze!K84!kAmf+8*B2aOb)h=kRy658Iq-pL)H*4~q(oA7p2k=*ZpC;l%IVu6H2vDUR~RTazJV2(+v83WJ_31QFuV$Az&^V0`Igp zj2%)x%BKtRsP#E%Gi?Ji{$3E3GM_c{`2@}SMN1c}t?#hF&Y_)H;f6a24r@EPO@8c4 zsqY*waK6o$XJk(%FMqID@%R#;?~+feRPFRGPu9qXFH-h7GncMBt#02T;`I!wWVScR z1%%b2)o{?Hvr_DHf}_1Bw_kDvGa2h19V*dwI*t}XDdb!QoCZd(;)P=b|E(y?jxAX^ zD7L9-9qS?JzEg8CNDF}qL0)u*(_yj1o7A*C&Crim=7ZJ^*H=%ceHNbQ(nxt%nG#eWp)eg`b*`f<_b^SjG)=+5A5)@*lha_gVM9w{ zd#-r1FFL|6%|Rp*nY2)1sanjFn5;b~CqS^vz3){7Q;?8vlg05DlK0jsa9xn^e)n2eGj&nN3 z6qhnCw%B&$(Hk0*;Or1aw&>uK2@^v9m0rZy+ifX+^RYd1#%=` z%ndai{jtq-hOthvVlkL0RGdU7w2j!NYBh-0FhknZ5@sC>?@5Y3o|Q9BeD$s&4l@N# zyf!G^W7@;UgROQPKWCTC!r86&SRNd%U}iq6lwX{8;$r5S4~Kmwg=5L7d6~4SRT2p1 z?iHbs^55epn^VaLkJ|lTD0le&9v3CoQb4WbOG$FgJ$Tp-Q!U5KkWJJRM_U`xjn}R-74Gc06yi6m_*_%8H7VY}xALV5f4E zY|Fdo%4n`LU50V?B!QK42jOdy=%b^aqFV>@NouZl_9gZf>UyZ(CFP;msCj{QfTN z8KAxocQuX=%F^weuW=-=wU)4MJr;#K*N97vrmFkR|1i_q%GKm{D}Uv~m)3=}`oFFeIi`ILMepR9 zbnVe@fvOCWi)yd)O2-K^R+F4~g5MA-m7#?DAg;w_)0gvqZwYE+JTWq1$&FNOrmw7& z&;<4{R-vY>o{3mg0k_lU9tZp$G9xiB6f>V{UsI*+#{-0rcgeHx01>QFus`F$D+g=U z*xK>b6vtZF?m~TN%F%4I&p~zDUD>s^Z!%XL=56Z5FNo9r&}V*pm0#Mn1~dA|73FzT zAZ%!G`d#@E`M2l-6T)Y+Ry8yFMy!oZua7`t@&i#dNm@Ilr(36C?OdxSkwAcbz`t+t Ye={=Ve>eL6?f3mJBeOEeBD?(dU)q6Y`Tzg` literal 0 HcmV?d00001 diff --git a/media/ch3coh.png b/media/ch3coh.png new file mode 100644 index 0000000000000000000000000000000000000000..4c5e186c2a392500947a54ddd609ba5ad8610f23 GIT binary patch literal 28686 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 A9RL6T literal 0 HcmV?d00001 diff --git a/media/h2-dissociation.png b/media/h2-dissociation.png new file mode 100644 index 0000000000000000000000000000000000000000..278fd6b865bc27c3ae1afe27c5fa8823abd00f4c GIT binary patch literal 22629 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 literal 0 HcmV?d00001 diff --git a/media/h2-spectrum.png b/media/h2-spectrum.png new file mode 100644 index 0000000000000000000000000000000000000000..4d7115a57e48d7bc229edbb71a9014f91259caf3 GIT binary patch literal 18782 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 PPEnjcXQ=&3(>mlI`hRh~ literal 0 HcmV?d00001 diff --git a/media/h2o-shell.png b/media/h2o-shell.png new file mode 100644 index 0000000000000000000000000000000000000000..15c2fc3888b7a4249fa37718df99d86ab1d2d87a GIT binary patch literal 163196 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 literal 0 HcmV?d00001 diff --git a/media/h2o-spectrum.png b/media/h2o-spectrum.png new file mode 100644 index 0000000000000000000000000000000000000000..08b9b3fdc51c132d271bb149b30299c448f16d28 GIT binary patch literal 23436 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 J4>j!r{||Iw)j9wG literal 0 HcmV?d00001 diff --git a/media/h2o-sto-3g-a.png b/media/h2o-sto-3g-a.png new file mode 100644 index 0000000000000000000000000000000000000000..d015e261492e784fa83ef8bdbf282a0b48e51c28 GIT binary patch literal 16940 zcmb`vbySsYw>`WiWYY);NOwvoDV@^YNJy7-N=l2Aba#t%w{&+&cb7=_@8WsKdEax! zIph25+rz$@dRiIGl{Hpv4`16&cn1-XWjfta+zP&NT)Y`_%n9;$|-q_gM!OX_-7`Bxk0wIM+ ziVCT?rW`K12x4tNBK+CLj4EqS)0dwWQNjMHC1&SQT#1%4#ch`{&21N9@gXEj)v~x6 zZ2@^-xGOB<(Hgei5HHD)+hkU0%nG*m5&aj|0LICd&K~ujAbnsq4X!Z!+ zzV!S2|Nkd@1#B-|&q;s36m@j4KHjY6(~TkoF+`P>u|m4C6eO-_OBN1WD=NnO`@bDv zgHM0a&@(VpR#hF`d8^mY3q<#cLStiNcXxJrA1uftcZO4WL;_JV$IL2Pllpz%_M=(Q z@)Trh3%)YGOvAUY*JfZ~FsIn}=wE!u-M({jbljMFU}t9szpMzx!^bE(D~QYrp>D$T z(>6Z-B-6w#)!!ijH_fomxQ7Mr^y2mM58xLCSvVoKD(I}X7pvYNmZZNyid^n!0XF0F zDT!qL0@;}y5kGg50yOXqDpKtA!p$(|Zv+)Tk}8Vos8D$`@w`V)QLA@q-fN+CYo*~d z5aTphza|RAubvpE=l^G}v1j&iR#RmzhESY6^hJs!#*Y*!tOCOWlb(l3sb@>r3e$Ec zU#&Hm_y~s1)I#?^_y<#!jx@g(hrXGl<@nk7lfRJ{Fis(M3>GgsYqeBj+V zV|)Jfx%}yVYip`uX8xPsLyj@%13gmm#>)u*y1Jmh!JUV}EOP{s^xo%j#*!^=3f>{# z1({UY1nhoq7fX~5$4PT=FYs@i5l#qulB4J4q(Fa>dy4vpvEMhhm21oCFX!hr1y>NFX8pvl|0Q<5o=d;)v?f_4-yR{1f&p*6&~EUwz<7>g9fe7N{RiEhCP# zRmET95xHTfyLevJ&r|vX3`3xM1uVcFS1ER0lWyR+Sk|WKF&m*+i5r=Rw?P50r1ai+xc(DN0h>R`ItW?JbY;Hy_bKG zDY7829aW9|v+F%mqJw}=%Bu(3w&{9PHJ4~gw2e+KaSZsToLBFprnGg*Y~M0B$D=wwoZBg?2%Eo$=R9+aDykoD zSS|5P4ds3(lTVg;FW`RhX|h0(;(e$fbarm;y_gskC1n+#mZD<0>&e=Dt&Ma#c&-fT zwGhhWY*sKsFNBBl=9VKaFKWgq-k?j%8+J(4cEJ)w^t>eTREkmUN_As3^FPmIrzbWP7a_K#DxkuY1l1~tsuhQ_NZchzt^jwb3 zxWY?8WV}3DRH0WTkNmXU;yIMWJ|5(JwD5|6!2R~Z3Z>(dl~qUk(`)Xq#e5=fD4Dah ze)DX1A}J{;HHH|3txpvM<;xCq#h5Z5!Vo%X;5kB*M$=;-wI^rrNQ5gG?l_*RpLnAt9m7520f`uHwtT!=0n(EBWsD2h4Pe zHbeo-=4PyBnU}YLw~5eZTCe7NlZ&GMyi>7B-twckNb8a<58`0!o3p{l{q;^U}UT&gRXa1cCxZz)z#H!=9s}oUEf~5c=4jEtIOtS_#+Em zsCSAFh`RQ?Y@4?h^vL~BQTHGt(4MUH?HX74`upip`EMA)>kS`{@b)vYqyHdqC2Bjc z@V`*M>quRQc{`k5`lI&G zm6a7R`<~}h>Z$1%j*{evOV&OZ^zh30bZvShkOoLOoSrA$y|BSM;hp)+MVvDig)H~| zLhMf_8H+6Pr}vkq@o4tsJmDVSM<2w)3F|#?oh>ab!G_z|*x+-&7))YECNna7di}m& z!w)ktF#%`0c32)7Gq;bUkCXgCV_r#RM(Ly>c4%|P_BusPF{JF?fDB58ia#Y7VqGB1 zIhsXa@#Y|ujYzhNNH&2ZFo}&GvC;rCN`=@N)s-K8Y^0`4_q)VS7sRnXxidN$r^(vz z3sRnd1u!BC3W|=74qPT}4Q1sHgYvDR&)!z2O(GsHVjpDKNG`(DQli^ELCkU zYbRx;zJ33!z>SLT29r!jsXu>;N%YU5lqFc*vQ3k=8^`vr4J$gCU4GF$-bfRo@;;Jbb zQCNaB4op1eH~b^h8OqoeIXX)jI?KBwlbVoM4o&Hsbw_cj0^)R#ZxN(l&(+6mOv-ju z`XhJw_#NI-^Sro1FnbgndjWS+v2h+L9`HtUYFzS%j1!)r2V?6Wllml9p4BK`k+8Xm z>5Tkhp`Gn;cI}7M!M*v?-*)ilvj=%r-X@1Fu~-NC9QE<4B<>=3BoM)5lA{e#su)F< zDw_&ByJzMk~bWwgt--hsqUKu}|L7k6IhZGt?zwe8IBoLNGwa5T5UGMLTDq;X!kK8orRR zimmg~pj(n&1V)xJ-TK{YlgnxcHpQ3#PDgfgpyIor<-l)6@f;5SP@03_nDBh)s@&rx|h=Q)Q@2B9q- zlsd|qkmT~A1`(cZH1dFJMNjA!0ZG&st0(>CqbrR#x7dgo$uwu%;_LI+k9;(;4RcjX z9MSGtV)?4X9tz(-EPDJAY74H5f`=tEfuA!UUA2cOAUX~C&i3e4L8&|sP;0|3{Kr_n z0hFwOofx}d!<=WLV*5gvU(F5V^=qyDXrjIK0!2Eoq~f1HEDZe!Z%R+sZM%MO9tKyn z@ofw{sm|!P%VmLJM`-vmbEm3wtBzS@~Yn%-W{8Y92TQxZ`!+p+elm%$vKV~ z8u_snc!w`AJ!7y4RTsg-fHb7+o5!~D(u+dx|K!$27iOW1!5=@PF@+=oWP)FQY$v5j zp{#S5AG{Qlf9({uwERBxed^5e>T3T;{$+U^iz8h{NMe+yR)6nQ%o*YNDRIZ#&U`@<4?;sGpZ3N zCsdaFOn(qpT9F)ULXn1hdub56P-Oz=N+;ZZ;_nG7Cknh`qc?7Y1n~^qz;ojxb-G@~ zhQ9NrtYOrLd>Ow!G(SllwBU}lxBWpfXrHOAvN^(}fN@#zgN88N(BT?H7j+!?=Y<>n z%N&7PG$z+Uk0W7nxnQFZJrUnLaxk8>EAV4n^5?-KW^_C=88KL{;|ur_ZxN~ zFL50vVg4*EsVANdrUeA&J~>f*B>3dTnIn6%FWJG)ve6&+#;%AsE9Rz|p9`Lx_^(kZ z_6Z{rZ&+|w*P_na{SpV|95<{GhP#1%M`=qtB3pUTRC%ded(0J-%q7nHEUQKNuK0y8 zSoIW-jnAm@^3Jpn{@&?*P55fYJnqoN_2!1XjKvbvIe{HpF1b&2Hx|pyy#5Lr-zQww zc~!R!9=*pil)+Ku$dSgBbi&;hX()4yDnDoWvs$CeX|ib5?DrVFr54^ zt?e0xlC}n$0aaKd(kv)eM4QAo8z>~$OE?GC&Q^+g;#h|kB_GFEx3{qd`sCn#wfBtMQijy2%+81;Jm9UL~>IF3Fpn2sTRqH3M@J%9*SayOdpX2nE*_W z!`Q*o0Bk%Y2=;e4nz&Ti)v9kzubtx2ovC@yt{f?=yn{tCiHWUEP4hD|S65cboc7gr zi$};K&8B{+rlqB6X=wo@c5}81>daIU^j_p}EKBD6botl$A88G;MrcWp!40{s0_QRd zy~YI!<$ussK1gg-ed`6!EpYd@K!LmbaY?eJtRO;(VpYKAUvPe*)!SQ5ZMp=Y&f_Jb zSFeIG)=pd{B_&r^SHaJCCY}DizU#FRW^MuE@5qES(>i@zr&*!Cnd#Iwp=TzMsS@uL zXn#iu$pz)#ye$y*7~4k-TKmCOY!n2u!aV!wNd8SdG*gyh5oGY*a9AVZ_9%goG(G}$ zi^;DqC@_R;YHAb}6%i2;p=6+v00^=s|8TjrRlQU_u_6Bw;=QpDHtIEeq3@BlbrXdjs?Js_YYi&{M)A^Y_kdxzAdM?Z?!* zLy?XietY_k=Gk{a(j10vYHP6)UN+~d)(^c;vz38iHM9mUuilL z`igZfjTAGuJB&bGSNCD1&98R;F;6y`!)EDjD{dlR-qOOt`Mu*GJ>6*on!kn6%rTCr z5zVrMFhVHRjwnA>v5zmAK?UrQ4U8&$s;qxD$#}tm+F%dHWB)5_iAVzC2wY6e_Ep=Z zBgfP){uegJ#?@};d!wTYyS4K*Ry<%LoSkdVK152e>9_lX3g-6mm;fKYrP;kv{!vX$ z&B@8hzA#mS@>_85D_&QYu;*Cgp5OA}&mH6_gDE?=x2}BN`DKKr|6I(ZZ3`Znsm#)i zq42NqTIDFD(RRMK`Lq8Tcl>Rh{)KpYEWX8<&1tLqH4D^s~i7< z^TZB0PxC8{Z!%Gnu1}u0e-2&6GS)hQpLybQ!DhyYTO%YQpBu9MH zKJi+jh!F5GHTdHgb8n_Ygp_aZHSMmdWnen;I#7^Eo`;LfzGTldECt0VPmf#DUYpsY z{MoQbsX6^q6G{dq!|U!UCnslrrc{~|lOs6{ z<1GtI#>DDSUKWGp$`J2GmL}1Ym_%yuK=hAY&QZLX9eJoiF@Sw4Crad(VhX8upBOc5hfvKHzTv2*)aHHlMC(iYW!6 za|3lIp5A9NRbQ-@K-cd@h_iNI?f?KuKeD&KUJVL>W*+yryKC%35s3%9#^2#8ZRHa- z8`?bEQPIGM?Oo0cf(I46r|g_7Pu)bRrSAngzoLa^w&U2y=m^nAsYkg${oi|;Odvra z!Z7kA+Y2-%9f)Q~_Z3@zYf2Bo&=Ob>BN)DMQ5=0}%P&~{yPf7rhrKRTLe22pg@PxX zzMbXMK5c{||LZq$uelQ8Dq&zhN3L|%;*N`A8hj7wlVHX>Ts8)yB?)7W8sv-A7<$Q- zX!gi979{L5+uA3T`BA`QmuSO+9%H@I+dEQiNy3?Y^d+IYR*ceguTg;&39Q4di!r#j z_`E$IYwk})b-#=KP+}P;E>;O@{MZVCPR?I#Wn#36=eHph&xvP)zt}UBSYEHnp$VHE zLe=pG=c}J?zOAHmy?dpEB63T8JBQbf{c%G%U(q{psbfexzeJPkR0Admfm7F4-haJw zPukq$1@X#9uEPA6vvz_#QPub9Tz2FvEZ@5fVq;=R{mIG6OLUv*BR&egFs`fz`HI3n z4#jcr_>&BP6u2N+fy|$@{{wfjX7JsK5^3D`R48pOD|3GuE{EA@!E)HS@5F;nn#|!N zh*f}dBH{ONH8ji?B^QG3?(R18rK9iQCtYR1(?nm9-?7qUQ~9NUJoC_|B7Xl{oi7ok z8Wd!)+Y`2gCZjMU`QIiQ*5Bg@?55=_4r-s8S}d3|%!QXkOvv8t-77YC6xYdH;PS;BOp;I|LmqJEcrz{?%8 zvqdgu|Irb2B)Ogr|1T>dIxQGd7MKGa&*H#GEv zE2VTs1*URVUSE zIASKo-D$RXd^R(qO&_6wl9Q2<(bHQ1N~QJTrl_g?nb@z@;5gCTuXbzRx?8L(KQrEH zaQ7CL)of~6Y_=;)s*AuDqpWZt(F(A@Q+Tc6;#(z3BAg0iAN*#^xqFCuimC!Qa1sLFgQy!coA; z$C3i&t+~o;`wHg4KiQ&_=97APx3A1uD`sUGhI8A)AS8O+T(j2YRNi8dcc{R61`oo;jgmb)yhvk@d*MU@s5(;*mFFIJ#Zzs$z$p!X3u4|54ME5`hjKACJ!TeFfiDvry@8>1#3J-UGn9h$-g<915(8 zQ^cvoNXzREmMTlalnZs8x7FUBo}PZ*Z`s(Y%F1?@TOZ2}dmgNq{}+^=53ADLU*9S9SR8N24|D6bK%pY3yN9Z8ruhH`9C8T?<=f>leb@luS8ohD0YwEe8?Qkp6e$1`AAj%Qpy^|q zFNJt`lfx6EO2q4G`}lCLsj1oMd^p$a?qXz=bCwDA=<$5*@o1*V$;kRz`0pFJ%7)B!6j)0@VG!cpaHPARgpsEl7FLNQX+2XThdcdydcGw_4RI z6}?Np5=|ptV>Qp={cu;q7=%vJ0?5>^5Zvabri;UQPSfF(+Do^KgV_Sb?DwH~J{T3% z)nVVhNl8cuLSMjvgjw!&e*-=u^MANnM^{#!U{Ejl#Vee;rRlW@Vgv?26`$Kx>~u!X z_&Gp11IP^~?o>xlNjH~}6WsXv(Ogh7{OgDSUk3#Rz}wKd^f zB`VB5Fv5J9L|+Vp%2_BGn1C8nKx#{Iwn+Xj3jVdg*O)W0jlW7#2tC1@+e#KmZ~&=W z25}E4!KpH3H#usfn&Zt0^tlgaZX=4J3M>ul^4AT>UBL9L&O0v;GFh!8?*H({+PLzG z^?BQW#K%rqTL$9TpFe-#k#Rb^yD#>pkjc*0x}!bBPB9gfPeoscz?rfnNAG zt=ho)tqZ?}9&Ppk;G>BnX09dYKE7RoKLhmq{q5!U#s;ZB$Xqo*6anjbd2H~1A#P`V z{Y*bU5qtZJh=_=@%!m8i+pDXC#m38_#d*)0+KP%FMMV>1W09Nr-+{dG=FJ;F1oXTy z6-)bDP+|B}oRA}y?|MH$9%B#oSjKEZCt*}h?SW7?Me72wR-CyW|5^Ba=P&DjWQSl* zdSUGVFV^Ey`}(97V<_P}dvI<*`3V$|zP>*9i-SaV zOB`WnM;Ulo&DXqp_ilD}HXtadQsZ^P$GU8*x+q2M5yRad$N1au``16voba8zB`%pS z1U{=Nc$0FFsCn$R8&q0mVfM42+;g=NOdrBo8Cg66!3-S{5oj!*Pmy2(^)Z71^Dp-P zePB=!vvyrsUS1&BS0Ji&1fq@ywcKCK$Hm3fJ8W}saDa1i3FLsiJzEeK_S4CQx8W;O(e<#*Z^or?>)&d-|BwD8h0am?WCwG|{Dqy1EWF>| z+|;SFZ5ta?)HN5(Uk#xIQRBovivJ=oNQ=Lpz8?JkC@z zN(`m>s)}^K(-4V;9zXY>xk=dhwSxrcq`XSIoZGp9-R0%sU46?HQ`n+b2EJWU-4wOR z`~d5nZCf|=CO?@&?}a)$DA{h^J;&p_GxYC8IW5LRPx-3-8QOhHSYJ3ScKe2|8c4(? z`KpY;QZ3~htU9uIBqa;syi6WRdZj|y?`8h_R5$+O>6?5A`Sx*Bfr{_Py${f~l@fZU=M2NanN z_$BeY5pU^urs~SdqQb(l$;rXqUe~i7MX)7_d0k2KKMAJw>z%5l$%{cf7iXAyht34j z(N!i6TAX1UULki~trZxhDLmB?c3@7^+%=hqrjTK|e%*qnUte1T`_%wc{h0~{Di%OT z1rfR4s1NgV0PJ7#s1@m~sCtj`+SsL95gm}uuyF%?p9p5e=t#YZCMxb|K-*KOu+@~* z$An`b5v}Z?W8L{Yk}KcFOHj&CW04sd8L4P$24hr|mq(U7AYk_cEFhU1CgW6nAMLqo zVcSR21OOO?K^A&oCMagIlo`MV;Qy)+3h4I9PTX6KT}D*jmxRB(qYJTIU0rkX^2q(c zzIHiYx(AURoVDNc^8<7Q-y?P=`}NYX$^2VLj*X2o0Hc)w2SXSpjKD?iKdmdpTukF2 zY5&LPX;ro7dR5ftIs0&r&R|J|^RkTq7#|OK0JET^qH;ECn!Z?PX9(uOzW@0KX>Eh~ zR2Q57Xw$=m2;U$WTg-cn@6qXDUeSV0S27g}p^uknUwAnuioD#l{4wTO+j{0Ome%~x z$tQXrS5`jm;)aKZgAj;{iVCnW%e0D}?RC~Q4JM$4zxb{8la;L?TtNYPT$1GPxa5~( zw7ff!8%|m+F`|JvR#Tbzdl>L^Z?6kKeHG@bkAHc^jXr*aH0#-|aGea*PqsJU#Fe;F zE^MOnr{%V69i8YxGdm)XNVcXy9n%D>N2zK1wp^0*$h_zg_2(`E|MMz;ru~%;U!KG% zNBYg}La(y#3|DO6xq!&@9$L&5uQbsKiX=0e^(po7>PB)JmmukfmF!=u;VmG7s6(#U}#xuoap9 zrxhAstUs2SF#14W^T%m@Q{O(P%bI#rl`loH+K9=9F*@Eu0O)9W#Jq zGdwcxUDyfJ%q~viwOfAAXxR+VqT_`K=X{1c=9*nino$zA;`w)^a+OY?UHp~R|wP{Z*158>y)aAsuGUdqxPOGtaU#ZEMDIyinZqg3YAeR)CZfFYpj=-`qGu zaqM@)mQs>qF!Sg&)K|lsilV;i9}?jVkO&FCNj%6g=UR)48875BGc%!N9LaoEb8M`v ztc;AsM~jUhq?Vsn(p9gIe3S2rH^7_Y>BF72fVI!hmJ3N)&Vv(Bo*p^@dyCdk4IcAEI*7J;LLa-3>e9gzP@_rLoGMAo8RSzG%^X_ zQ&JYLPhuuJ7UmddSYHSi1vUJdB+2l*(%3CVISRx8F^0bAo3t}w>?v)nb5Gc7|IvmQ z*6HtFMH3;=a)RNPmzU2zHhSGR089i*f)~Pokp9r*YFDb;d~kR;Q>s^*pC6x)@EhDj z@jbja_vE9rz(D=|$07JppDhoQ<>gro(r(-onT@~t7=qh6^3)+7ipe&#yB9y$5VP zRwyXv2t*;mZC*(`9pkFZCEK3v#Lu5OMgd83s~lImrLM7h$@z*M;V4rhfLtFR&Iick}QNaFst6tPyf99>{Az4&{&=*y-+ zl3Y#FwCnkhZ{2DiM27sxQg1AmV*4fHE+@Y)v>Q;id`3q@%bVC88yg$9!DZG>`To7k zum_ETA{$gPcV`pw5hMZ^XJ?;kXZ|PU{9}z=z1RTz`kPi;2g)nagdou%IcL%gDdNg< zWHA*aa^Xd)aF+3^4hh>cX%4Dnk+HlN1H6>)S?cw0+t*Kog@w5Y!^6=KTZMC~AETl$ z-Q90NQVGLnM

EP*~a7Nr;SGJvw6Y6jo69o}Im(DH1ey`1@$0H8xgNM<-R=f(A3# zz`)=+IiXD%lfZ`Y^Wuj8I7^S5#JqIx3a08-~9lGHrk6N!?5*hhI^DwJ*bVNV1R4~Jnl3VU_yl6M^_@wmB%lR25m$TBlBR(eRhLjnEH z=f*~Nf}H~NVV-z5RzKN%C9lMzZT(E!W|9IZkgVGZy|f%HJQO>IlV<@FYw_@vVabIV zovg~LYFiMuE*ZD?)w{z-5EB6W0H?rWUO0QqdZAAL(SVnm2%Uy1 zjT}q*Pgy11SYa$1ea#a|`7G`RVr0)U{je%+<3Bn^Bet#At}STqa3nSxSX7E3EdBgl zz|{wEq8)`cQtn9J8uiW_qNSvye9UXT1lP(nRR;2KmSTB&{#DxyH(ggMn4%i^KQYEk@zrN7jYV7&k zCe@N5B6O?n$S!*q+}g?4Up$qeh%SHW_w1LTzUC`4;*@a^es$!F=3JQ554fbZtWD0< zTU#-{o{*|fd=2JDa>b?EF<5~ro55EP8G3ugDYmgsW{D3S-hbxA0?gGP{)dae5AQ#d z`g=7byC1uU{Py;w6>~AMz)_DkdSK}F%e&GlRiEC1?&GB6RXkPC>#fT7O7~p~F z1)`}p@=2{O%dcl-Ra^Eq_Xidg>$EA$ z^$>*<5?vTtwCBSjW2;TSuNfm|nMQY{HhcUQ(1GQ7-!pJuehtkmy`3XU+sc=uaZogY z@S}!Fz2nMljL$u?Of$Q&L1dTp00JydCf?(ghgRnzum5NT={Ar}R)_^g`!enszHf}r zbX@Yar0W37k*Lg>=A!^77Zx-o9!KP`Hj&Q?g?&J;cKGU0j6xpp`eJRX!Fi83-fs$1 zq}po2E;R5r;F?Js`FEI*p7jJ%L?E^DVyln+wlFLJ^yx1%J>&|JXQT`iR^23(Zm-NI zDu2{XcuTMR6*HnC*OT-dNbr+S2b4PNq*wB+gM|$NSk#yBhv^=G!BX}LTlS)m4#fg) z*;3{sLrjBlf{mGf;b9Qs{&6LDeDmLU!a3N&_$&Q5d^q12$WsXzKuXiSvXA=%Y z1)YR$X|RMawsm7r!(6e|HA*G(kMP#(1v=vk(e^F;m~xX}oo>uLG~id|jCb#fudALC zLWD4A(&A+vs9G|`cFZ%~sn|xlWP%P91arZ)WWji2^wwLO6Q%)H*4kgx_^bJ~m0cSK zPA7^-`m*ytciaV{9NyV#typXa;mvfNosId!@Jbkwe{vD! z_oiON%kAuEhHmP6P0oe$yC!~HQ-Phirq}0LTW1`jS^4U=)FhvEhg4(TpCMT!i<7vz zQRPNSwN0bC@Nrf1EDXb9KO+oCMd}F_m?#2JTW9R|H;lb~vntQfpfEBvuMEru4Q|uz zi?qL%9vqG42O}d735x?ym6!t2{z%mi;5Vs(Qc=rvKYTxWqAtN<&;uwC)0Y&$u;YeU zP>=~hHFwN^60C9$cAyMjz{ai_^*7a#egvBe$Per2{I^c;2kULS09-1cg*0TuVAK33WmNW&AUsg^e_J0%QaQ9FG^NJIhtnAYqEMN1!l>K zw*-#N$SUJ{9qu@-#%Y*T3BCavJER6qm?l8>p0TW$scV)aIWQZ`7 z45Sw3i96@z;df_cD}tYd-osz!2lGGIa;$LZqb$krI@~knc z6l~4pMtN&^WH9LkNM!zYpl?8j|^*pQ~4>nSbTS7=>;YE`4F7V!pAGkLO z7=36Qvk=cdCCO|w~o}RAB$=MiUM8;*}wOxS-(=stx zFE%&+x`s;6fgP%!xT_^IiCvN7Nkl|~xVb+D3^vD6iqyAgLUTEgFBxoM#~ab_2_ zu?s*RrhXsA0XI5`S-{XP!$nxTeJnX@eqQy&EvpJQu<b)Z8g1X8!wD@6{Ft?)C@L#~C)+U1ZoNi!Nhl|vMSjA~C(GNNEw@KJ2na!d zLj*b=s8fylqNa+}rAhVx9Yupc0TmV|^})l%!b~Bhgd@XT*KSFep#Ncmqhf!h8dePU zGDt7rCpqF+O*TIKzPTk!@03wSNU*1RYs9NB;lEV!#pEtf?b#7qqaxLYU$q>cGx~fqnA)l`kn^bsii!Ig3;LFy4-v{3JSh+dTtwv<@%j|8L9;!IH9}CO73pJ=m7*PB`vM_dir#G zGe!$gW44#<}>ngp#mCApa!gqGQmpx!59tv=ACCKHAi;GkE zr}4St;NjJo3?&iqI7^V6|NV;()ECh0GJiPr-ypSm&t_LQKOWm3hv%v9+gOm`m9sxi zGTAZPoBlV7dF6PG#uuO5KM8&fkQ^kQT7$T&&`kb|=g7D7xAVK+D~XVI(`6Oq?0aI@ z^__nMab5_2&3vD@FkydW>fAk8;?09j_^rbIe?n})$O9Us*>N}O?1O`Yga7yBu{&-cK4ICct*uosys?B=86h1>}IM_H(&+1oc3cO*P>(4BixcPn9 z9Pj>M{8?LHL|fl4xqcX^F4-Qh`EAE#G%b2@C4u`^Tk1z$x(;J=W{-?GU+1!$5;KEp za*KKwx>&udDQaIaz4_rIC|aqhsX-&dcQ4@Y9xy1kx3`~51B2oLa!b_sGYGbCV#&>L zxh~k{L|z)U7h;+wFI~=a&kns!;N26#F3NYTY)CKr9P2&CI#T8uHK#5sERx{8b%u`( zZMd2vhCXsCCp6+ZzS^kr{_n^h<|7{HVCV3B+_AFvoE>`02cV(gtvIW9`;L_STX1 zl>71LO^$&T8E0ZjP^EiG=#>7SgOfdK(0*LTJPaqMhtuI}zV zot<1raCFz(wgqI=0XUZi^}3V{E3{Y7XZijA}mjdEUea7}JY zUL=kxtnhi2(%r2sa2%aVCL}y50u<$E6->HH1<=w zqOGv)AH`mu)kEY|vz4H}-&aIK6v*3_`F_v#3uZS~du8}3k|2mAR3aC^B%G2!GGZnR zumuQU1ql3N+rBbK0Y7%d>;kZs-X)oE1nG6HB6rro(bU~t)UHoV(E|Gb&`_P9x~%5p z^5)WT8p`Mq6xc@}oAmzZaZJfA4Ns&*=lV&V zHk0=2nE%;Qb~&jq*VL=^S-gJU8#K5H_dYeXk%G(o$~UvH7@wLtyz`D9eEDb;wC-wb zOcmW1GhoF#ehxd(-!Gx*Q8@6Q29JOBvthyk^0w2UoE96CsgvO{-y12wz}%c}d1i8K z%m-G-`QLpq$Uw+?C=Sf=IEwepd}@OFPcz>h-~@VyGXx7%_P#uWor@!Tp8ovb-5bx0 zV^R&K73zb)oPh>HtY3XkUl!c_r|%1*g7!~C)qnf*v6YC+_Sf{Z8gLaZFAI>7`GBIw zWFk-YH-WaccCTCx8!@PGK_!Y45}^M(mO*{41`DoSzvDTG7^tXWKr(G=;>8r9uk$Wi z1r*CN@9Q8mA}Iq2_*$Uof)MyNQ3eYu8dybu0$0V?xqT`kA_B-z(38>woOL=nvIcTu z7isutcq}VJB6bgV*OXf^z88=2z=Fr5*W$6>9R|#mOG`^Ya0Xp}MnOt%fz+h>c-$9F zW7MOF&&bFKK14txG^_Oly+A;W;&I$j@bGAgi&L|;WdZ&Ts?4?9S`az|(TL`pH9&uq zlNX2a$)DAZ(b3WEk#un6zKUjna{$aI5+qtRpEQ923!1`!eMUo5^PTg7hJ7~u&&x>+ zGB&_S)ri=EyHIZ3AwPrql77`~b_)m$lxmHWpagzX;1Jn(ufzm&(6fsRYMual5vWd! zhvp4?_&R7xS@wQxKAZ3Ee*fI>#mkpsy4;(8Oh67ycw^WNRBnmE?3^4DFJgWV2@Fv~ zLyEBXJl+pYXPG~LzV=tp)+Q``7W*riof4Ym{rCVV8!ApEonAThr%8$H(^=lmn6uh{Q@-T2F_43CPVnd z5#qX4t+dmWqDF;9MbQ$Jd3kwOA7o@@D=RA{LvtJfPw)MBe+kf_s;a6LPA> zKfVPBN=fY#2LajSQ9_J09EtVLXr^ILI8ZkjXlXTo@1RV-V{L5>h@G?b*!bb=ptH)y z$A_4h_=!lB&7U|wJDW>`1g&{nsEhb3NJxAQ3j>BdfDArVTd2y(4d+V7_o5;mlJxd~ z3+3p!e*S!YdprO8cM72YfU9654~E_vSZ>CddHMK&nng%R2vignvr$reWx6`BFMtsc zuZ1F{){@KRNP8C-IEuHnw)~!>($mt~+S-!RkqWb%$@lm6ewE5?d6!b%&@eYR7}_Zz zB`YsKGCTWDKp_2qR7%F}s_hM(_{GHqkaTS|T9&iKLQ3>ni3teiYvLM!-lRbL3B26V z2)`X)I-|~?TwaPpBfV&aZ^fZx+^I*~+aNph?bdRIFE_fB%BS;hzF_GaL3#G*ndZWTH2jP=<$lF>!GkUfu-|;o3g>2Li&w>Zd92^`3r(b#DI3t`uNASskc``>;s#O5MbC;=$$~3z|GBVP|o${jU8B(xw$z&bx}l7cS?6gtJT_iw7X%?(Odbt1u7)^M3sJHktEnf7wDq zOKYxFPXHDc_PO8c&Q2X5sL_H%oHbx@?%+YNRzcH#Y61Q~g7yD*DF4r=cOr6f;faZw z%F5Aa^MFwXyroj%B#`7?_yt&5C&tGs0NIGe3Ij2MKO})nz5V#>i?`*55`ZL{O|EZ1 z67%8#E#@cdJ@K)zR*MbisUt294*S3d0Rs9)`b)^D{!?@HgPN9>8_>=YSxu!{t*os} z3JVd@&`ioTtZbl57gOqbz)Ga>8plOR3i4$Td?7>FWH{v-MBZliO9Q+>eGNN1yG9yt zCWq(e=iA$1$j(;UV9f_exNJ!S^+EeAEgjvfclJ3gEiFLK2aU7H(z|hH!Ux_hH%}K$?QwCDDooh4%LK?M@fZ1BVeT z3=9eiN_RLBgHE}Mv@`>-QCNw60>^EA{SQ21jlk;IA1R zJV=!X12VUKbmU&_>;wh-$B(3*UgqYzb$06@jJyc90Zc69S^m@i7eE*sdYhwOgK{Y; zDQ*rvh@jWXh5%&6rntCxZ*TAMVke498n~aH$^*OgZjgC6NybMhAiKS*M}Opz9kjcU4)9^!ENaKaVw4fC!2Mx9%5YTX>Fd`ApllZt69dT?s6ZtpCF6%64*(~$kdP1&0TF~$;Awssmpx8V zW2KxN99TIxm>3zYE_Xn{ot&IJT57%>_5>~0W@ZINMf<=u1{$xuAFfSzFA53@K(_t; z`?upKN644Ek8ncYQ^8{hq7ic09?n&R;?sNOG(b2rI(lMvA|IR)9yUCPVE9V60OXgz zU@~VZ7*Ap0F5kpmb757LBlybb?K1@?kPX3+QFvzyHuTf`(;Pw|v9SO5pN|M!$jC3V UgQ}dse*}>flM^iw{^_ukO2UABOxxL2msKn007mC2n~Mor|`oJ_yXe~ETN2u zh`6#Tw*h{{cNA53RI)L4bTP312AEjeSbbx1_-g;{o3(?fjpHdyH$MQ70umxZ%B~ql znQoq1JBhcGoxiB0F33mgI(VE7d1{GSG$ho8aS?eE3>dJBdKzZCq$P@#_8X>Va6cVS zDSnd9O(7r4_uI9&U} z8J*>k<>0+Xy>8t~RYKJ7r#`Qbx$=meYbz@}$75fj-*xWCc)wg` z|2v>mnVN=X=oRk$KTD*tEUDf>{w`LNr1d@DuItIm%WG+Qn#?UTeVMYxoE=< z4-TMw2L}i7CvX0Qvm_-X3>(#b8%^T7U3HjU``zkLtXdv<%V6;D9H23y#hF<-foISpUU!?p zgdZ(i&IbvEyhae}Y?=mJlDC@ie^JO8<0D!Vq%$EDrJ_1Bjm zYf&vNts~a@W$C!>6`O9pEr~Us*XO)E^5WUhmq5Drh+%nI-VbJxVib_j1j!vGIX*bR zrsI6@o~HHjq#azPphCjv4m1!XoSP;>9e;5BP>QgH2MZt2tKT9#mZs2$)%E!Mbj{-R}yxnU$<>(TKRFW@p*w2>@R|KR<@* zj*CP!U5!rn#$NptYO}HNaVAz_}6}9{4mv|aES!wB`rCJz3nmT^o zoFi3w)3&9w6bT3m3yX`3OX+^|pM?YZS_Wde?gxd}e;1Pz5~RJrJ?HG`=*pWF?){V> z&Hr#e>2q@X$iTp`4&K`G>aI^W3vxaWv!J)us%tAMUhJmZc<(Ui30435yJX>oTKB{J zZPzVdqNIwh?n~yWCqn1-(%0w#d-9mf^Mm4Sa0xq(o(lhruFs4nq=3En^}k_G&vt_H z-?ywO%RNod|JOTp#$SWtlx$pFC937cjqd+r)mM4!9mh|ggGt!ejOZ~o^=)kE%gUlH z=KtrM#+xbQyC_cY^b-aQ8A|5O0oL?!f=KF@dbohzPLEsb-)+~z18J-dQ0s$ty|*#A zXI2p;p6F%}h`Q zea2T16uu@_)wi#{67v6u(lr>2XxTi&*QEd1JqAGod1^VyCO0mfze&B@j`i)t6l3{I z)vK8I*-sLAbwcmE7vA$EEe*!1j%%9FkgKhciYDi~twVg&$f(M?OMh@9T0KH(aV z0D$!bEy6`B+F5Hl{4etC%Uz>pBI^3gz;J9;?dj`r!}4Kd=S6b9*Q<@vbhmbs2>sw% zyJ*<*;j)wY*>jO!)_WH#-9sFzgGE)m$PwhKp`hL|!Y6$##8;2KpDwRm?IjO!S$2AR zC4VypoC+)|syv>u1c=w&*6AaOMt$GD?Ot0sKk}0WSj~6zN=I zD*LPXYH;O3MTZH8WM1!e9k?J?6Kacmx{G`-?a!GkzuV27gy@^U_UrGWG~wWeNW<=E z{5td`eyAU@Y~L&VdhLbf@_N2xfnG7N7BtXbr4%qM-(n$iLZOyivI7BfXw4T(dr3~s z&EDC1-c}du-kHA%-BJnauAa(U3zul{LC}7rT%O{Oyd*^@p@g}uB92ddZl? z%lY*v)JC_!3D+w3-~+(@b?#vOB7IU-pw;Joi$w3See$-MDR0m4Z_ZZjtroEH@&-F(E7akrXqw`$*^w)L3*C)9mm7Q$Ume$-$00W5gDEkWWWB2T|?Yuamz zIX>`o+FM2ALi0jyYImp0KZ63uttnSY#p&#``jdLwKiliX%^6*Hxb=;#-EsNnm5_9; zXs>hTCWQ;UOcXwLdn_ONE8DO>k@)c7Xuv)WFGi)OjWtoG-VH6Xbj!yTNHacEYtbV@ zzbs6>-nS|weHliIED9y*@Sw(svSb?Nx(Q(LaqqWp)Lu1eI_6#Nzn)@sfLlTS5MPz_ ztnWbwJl(`Q$m;pOwS4Gqqm`#T8GlY{CjRA-ArU!r z-?aI9{;QXEbd-izMwi}+8G^6RdfSK36xln&X&njGm7@s0U)H(f&y=8ntj7i{psM;q zm#vFTn56q{+f(-M7HB}1YtHJH@{T-}RbR```=#__v3U0ORqz^D*6^cvI?dV9ivw_W zs+CMvINcG=v$$=|xFAZq@WNUr^J^Z0 zkIf2OzUrF5=JVeX5nU=E$7=XoVg*s6$K~VOA#cV-6};qcC7E4QB>Z|J$TUI$R&Wnw z5`X+6;efN^em*3kyqDj8vcW9MhVtu*mxacMw>FHhzMOI?M4^9G-FD+0auFMA)tj4G zt(b>Kf8+%>Gs5|<`z$2(H1C);H=2x9#)X~eWD8thw=eF_?-sg3Z!SisauE=0MR0kZ zen16!zAh$>7kZaVQoro(fa^dHZo_g-^pz;?ySW(ayYfkRPbFbEv``4tT-vh8hGW1k zsp&kHnB?-{B=yK@qKYc_yc<1EhYK#bUIf+g;G&d!EQ#Q8X^E-R>4%0z_ z23C+GNU_3C+9^qZ7uymZvUup5CRBueWsM^0UGpd*j30}f*g($&XxLQLi$ObwK!2&Q z8G47fy%#!6{7$B75>A@!gcMtZn-AzPJ;deqlRhpEX5Tfb-_^LuU1@5N5Nx$P<#rPt z!}uaFGi5v$Z^!M^pFf%CAaPRx8$pw8bjTl*52e^SX4l9O|L|xfLHDd&?*?8~IHK}k z(LE!qAWNUmbGS*CmUu0>?Q26*FPvJxgZH(dX9H34U|Ge7M8~O-D zGPC@0_i_0zeWV1N-DFC8l|_bMuHD!=!2`_Za2TVEThq;x%MN6Eeg__Ktv2($&V4_T zPBVt4S0Z2hOYu{;d4x;#xSE9MasNaBF;WT!Ch8YwPIRaq7($bexy($ma!L}!T~oCu zunnZy4<*MldR`Bjc|U&FRQ6zN7H(&oI{>8Th7BL(HpKVv0PW5`)-5Re(EXcvZlLB- zI*(iJwmC9_>$#2cAgRu6abIQR2d64N)W&>ZIs{uZ7x+P3ZemMMYF+UY+813G{oWs` z@Cp4ph0jAC0&udf&b2PN23}=?qZK#{{`@-vHA+eLN6RB|T)4a_offGYv-d~2ux1Wrygfxp(Pp*Ra ztw;qFw) z0ea?9roM%C#MdTw`SXkwwH?MI)Nf+rKQp%F1KrE{a|5$M+ydS6O=@=j?MaD5+>bX5 z^}t5vU?B46j@c=60L)uSQX(jKE$=n#Mj*t%Q)O=UZmb=$s6uvw2B3dg@vh}sYG#h@ zykvIWR5l}s951TFEsq32}m-N6oRiD z55xp3^ahzQ+{w)hWt|~sXDjlDB3B-rUDuQo0jJ70sGi=a*g!f#qf1z{hG?Ki2E`t{ z$E73CzAgmt5HraPLc7#T-O`j*^@{Wz)>QR|Qe|{N94{U3$f7Z#_36NT8Jaw?157Jp z_WhC+5`tdqA~tzf`m5{4NZ(7zy%g=fyWdbK2=&8+{;@5hJ?tD50$RMNGhbI*tNKdf z!lYH@;<<$gBDlSJ;p5)`AF;=8lmXvDd7Eo(ug zKSp|gjw){(H39w4vCOI^$HLl;s{r7k`5kLeS(r-FrhGg$1hR*e&b1zxz0YwW73LTt zSQXUCgxgY6W=BsLJ}XK&&HYC*Lh$Io`_Xs2JSK!$bI#2fTXDK*234GN(?n;{l}i|B zUzxk~=W;Y9qM=tT8W2S(Nj=>D<{7AAEfhvARQ7aoqXzF3zg-{3H1LB6@|jsHi5V;2 zxV+hExc8|Auh?YFtHmLM6gX(df(JcZmJu};P<5abCjN_$;5(YE^W;{lB5r=6NUG3> zLHlT-RH{p+Bd+dFznDM>=-;NoE{l6jbHfAm?P*_0HC%Pn$SEPW5v_#MALD%gs_Dv4 zbAOqlKR3vu42|IO8n$x&b};Z3xllPGPc4+pU37N~^tO5>X2VY?DB#5>7IyF@ONWiF zGY*>__>x=?h@50x{q2!7vN%4YJ>Tarxk58SVT+P+_HgXf(|y_-{w8&e9BK;g8(%so zAUpeWQ=jM$;hvdhKv^s``;*;lb^)s zkm>6h>u;yR{PNU>++j&l^JotP*gpfdTR&U0Wq4u1z@DEF#-f*m20UuQv8)LR>>jQr za2uoQ)=HxTU)lzPs=isgvrVbg4H9u2AR?lFD@qo5*vb#_#_O}ZzKUoSrL1kTm2HfC zqv>YQMlal3Yi$rrMjPhdZ3g^76C@RnYcVLqgoyqLzM@UmmhOgp1 zIA^88frD(CtU5ssj`R>RBeyGfxV3}*Hm=g6ShVKw1knY4weeZECG>s}wo(~AU{3Ab=)gGmVZ7b{uP z==fQhDp`Gdg0iX0hYr!iMYqE$+?3ynt4NHpagZ7<_SO7$Xp@>ui> z*J#omf=r64HM?kKX_JDue{1K1CH{`r;5M#W9YR@lx!bJcJHi?$NQIJ}O;|`v`@ZDO zFIR{C$-Rrh1HiWCYr+kCJe-{{DLM&S3CpDk@U234jH*!}f{nmU*FP%>yasavi<`wgYu;+prUvJ7ST{ z61!-DK})UePQ#d}N@nzC&ObX`Vqk?x7yU8%G4@Mqg77QbHJOFhJQ5=4xejGMrht*5 zmW@V(oLns9v!r5+hWeDF6)+q#uBjXObR)R)kp6F1%mV!kvG`%`<}H!@(uB6j3&&f$`n&v?Rve zE16|Uj^RLYCz=S73ZI3_sj^_ifT-8luOc|xh|^O`vA)5p z;8qrJz~jN7M2W%%$wi}XQ-=aUE*qGyp)=`;asyQcucf<*fu9iscAip#qd7W)WmM@j zwr%V1Kr-8|6+BR>=+8zI?TBn931S%I@?_E+auYHGI$(;PGU$LF;}`YC)RTqgrLM<-e=FMOrgUe5koK_JO=ihS$ zQ>9_2COtWESB$T+)R*>3Y&g*eO6oeQVzy-|32}6IN>y4(xtSl+6ei!AdMHu4^zpu3 z>1gssr!Ao9v#HY+fO~4p+V>7OtPtP4G{x~j*sIShGXNTcFwD{6sEa`!a^HTAh5h|b zSe^%d8zR!>7es~=FZD(Om|`TFSJYVq&Bu_TcU%frV_kQe=X;}AjBv!NL2b~hj4ZR} z+A&0cD9YA&LC*KQ9H%726E+LuTyFcbLlJxalpN3(C2A6u{%fnrg#u^)sy!iHhV28Q z%#{kQIBN1xFrF;aqxN$X<)$IT)YxrG0YC+-Ih3H_{Z)w>+pjBjNhj+tW$7rcXPtb1 ziBcO9dq8kmn933{0okr>of@0Mtgf`k+Mtxgf#x%XUQ%umE!Qetip+rT_#P4#1XCdc zGnq^!wlHXf(&}aF3NE&mr~1ZB7z7NK`AJe`_Hja7y~8I8$((qqlA>^JElIvR8sc@N z5ieKyvI1pN-AQiU{@Uba<5Ez*ZPvZwxW9rk0r|Mns69%mRP)l11~-3UJFfh7#(cvd zykuq^^%}@?L-@6XT^WDuz6vdU(iY!>ZQxHCmE8hr%O*12~(_7Ruh!b=yW6LvH{5%Xm^}Xc@nXML4gV4W* z^b1kfjRB2NO+$c)8fMIW$P4Bc=0|dQHmgft9gH_L=q^$HE*ovxpT$Q4@$cdmjMy6RTB|grwlqI-j zpj2AvAeaVrcW|5TqHY0pVK{&w84j7KdN>9pib5^4mXx5VbDbi6+8J!DP4*sG_(B1R zOW{~ore-+)dQdyu^*K(Wlp{ZAb2m~jKDj7i&-3mBzB}hZg@7OCFz~ zbWvW=ZF*S$-XO36X(CTt^|ykv7UcQ$W)Y~!m>)kwNggJaeGHv6=B{iL)uTlca?Cnu9fcPthvxV@k5B8EDy7qqCTsO(!iIyyXWPkz@f z(uKJn)ef<-v*RES?2e~TX7UUzlpN%KV$qO>1UQpS{>5vWeVh7SqPx#`oTv8`nVrVH z5~xWVAf^NojLYJU42xOjdTmDh2R55M0?6ZX%HJs{*Y()AQP@LOG3n2HO2>t&iBO?< zx-gLrNZ`se3CHqFNJC`xOs7urcLJsL32v|CTn8v?KjljC3~h|5x?YZRx*RQ?-)%*6 ze)yoQs%pK`WMyRJuC+$-C2G}fh*b+bnn`C>v-0wvb z^AstTf;8mr<++P$X0#%`nCM^EciCc-OqzxQ?vT(?-imqpU*rJ0bjIm7@*FS{yiy9{4hk+ zTgKb}ML~6!vfRk9YN!uBV;Q;o<+_^0b;A$j6{{;Mj_&ue)#wvJo+`VD_;O|asD}S#Xk!4{JQ1f zC{;<3^t-vI3OZsJmHKwj!73dXR-VCS6MT&S_-+!pfI>s5g*F2j=!q1;jLoz-=8en%1W82W%W;tf75A0J-Zdi^p0S2-Jn z|L&bwb-uu)j|IIP-}RiF_eFeZ_0jKkwbFu0$X=J%An z)Vm;E&PM9v>1L<{InZZzvefDEfbMJ{k6rSE+y(LF>13#NtjVYi@oihAjY}+G^yynV zeX3z3W6lXt;4%@%GoW9H13A{4A{@g7i4bAb( z+4EN8VNzhr>dLjHVkmytFX;=3*N5FCTP`AQZf>n+>v>aCab$G(fXAETmAY@?B9P?t zhn<(UBq0-fh3gyp&rkVznazao8`4su*1tFw=VqKH!jMi$c=$=qUbj z%Gs8jC;_f#MKYh5?ThpXKP{Lx(cmasSN}{KJ$IBD;D(@nd3nC`1`ew%SSIsq(jOP6 zHGbFl3eX(Ir6rjvp=b+NjQ$nwnbMtXiebeZ0k%Doy=3W6u&RZmO-g zC9qQV)BqYmse5bikf=>elp-_#9Y8xWH|08eF*_i^Ry#^^*o=UzxFdKgAeoUtPy;QP zE1Q_wH;(4wWT2V9yryrz+VsiiB-`-#opUr#fPo|v*51L~hZ{}p*hJ5Q(O>WX>^f7A zxe|i>m$Id+jKL?Gel4Atrb}_X{N>*4?2!+jzWfH{4d?n;t(2xy$YoU|Do+HX=hb3~ z)&4qAbD7n_^!ySg{`^YIz9wc(191Kl11WkXrFx%N?<*5Z$a1&OYn#*GBH|{HZ(e#2 z)Yz=^J4y=)`St3Dbne)4fjiv!W$0ecNf#OTkV4(^Zg^}e9oCN&(GWjcMT!=|uhBko zFJL>eLncU20z>MJBLQ;HsdC6e7ZLzs2E*d;rTZMuj3|TP*`e8CK26%BnS{^bq=Zx9gH1z9Ye_R4_BhlCTh7(-z2O@!lWX_z(h!{&y2DU6=LQ&z6f-IwlhtV2<;M5Zj96TpONu z(O@;jF~xUug(j;SVuOhfb0Nt4s3bIqAV5fxLj?QL;!-C6BMT1DHnf`Gaa1!u;d_r5 zUy5)QZye$)EpkD&U- zWb$3BC%+-9cT8f%@Z8Vfqb?<5p2yOadiIkGkhX<|l49T2g=XXE867jTA@wX;M~hGQ zke#BZ0$WL7c{ZZ^cYY^T`^}ax>!vxhFLb6PIl1AL=rcnd4_waS9yO zGiV;ET}>HCQK|!@suYxBLx#ya+pLDC-ydx!R$?HEg2Xwn#5~3knf5eyn+AW6Us2Er zD}}0jfbW*RAL%xLL?6~~ucJ1Rx*7XA^%-47RrTiT>gmWtz{1L^apf3HHLk9%ARGb} zNUk6nqNk^q&EV>NQOAl)Tg6U^2)#fic!ZJpS}ODg`0SiL-d}xZ(O=MNKy;Y5En3~CH7LdG)u&Xg}%czALmEA=?@QLTE>=2wH+Y>^BogSyM&^B6O}EK@08 zA}}HkxM2WQ39*QxGt=3j%y<_cVSL4yM`RU13^g4UC;;{@0f4??jBHrd6yNslvq9S- z?JRT}L}LV*TDw|dfMK#jW;mpJLS}QpQ`=ZR|0p-gfM&+|EEvsLSq30Y4ncM*bD*ed zA`2E8O~$DIjU|Gzm zJwu&Ql%xRZvZM)3*Q-RjFkvk>>&|f?Cb>vjMFM71oPE;$Ld+!wH6^-74QF&jS63Pd zQ-Tz$sViC!i7gf}$a^4S0$F#2aGG8rN6AjnC+M@SoOu*@uYX!LAfFBI5rxW|956o$ z;A~fIBM8v?C_%7iN58w~TQwmC|002FdP=~N=-9|8N*5|W#od>z zVbJ9MCDS`Jgm&`Jl4szE${)&XRiu;*i0FZYAtpt4nqtDo5gHpTdyaW#el3HKp^xD1 zw_r>4zRD;0W^8;R`8`cPM+c=^6{-Oi`){fyH1$`E2}DjRFB5<-rTo4YR%9pAi}zZ@pTL!Uo-Tk?o6cFfkX8W#NX0Hh3c+6QjAt-W} zz2S^Rqjre_VzP@8LM3ci*-pOhBVQI7C=Lu>3xd8@*GL|R=X?imrJLpW_9*+T?THLr zygnmE4yBULBHvmsAy^4qpBo{RCP^jXf3W%-_0Sc1+#yl)joAQVFf|;X2uY_|;{Nj| z0B)IW{|t^|L{cI*YL?kVn{}n?Jq=B8@V7ZgGuxQcJ@gPm+#22zq&|XN4pR@ z%ae+%p7KgW#%l&h6etuV2^b(=A+pSrQ;oHx`TD@|#a7Dq>kJH<&0Vml<5!-HEeQ)@ zz*ZX%jOa1|bK6B{^d^zS#*fPamt*YFycgm&HY{2J8XY;vbx%m2S(Sgg(VHS|gjP-& zH7Q_k7tmjsce%RU<9-)RL{DKSF<@gGh=-s!+st`xM~6k)#KHN{uCnjKs~W?}fmQLP z-8meo{ve)+7MOcyR;vu#6|_=iwadRTNu@vuDE8@pAaz|Y1tIADE&e=}4&EELzKWUR$X zWH2$r^99t#U?RsQLipm#DXX85ub)aPSQAY}i-fv(@$h8)1!)WNo<6969Q4!Qo z`E18%kL*NGxoJl1sJv@S#1?%_ivRqLT+3h;!P^VdObGExImY{3m+kSp_8w0Rh?1qPix_SlERjfGdbNA5J{SJ%I$jlTj7NtZ^ z+^Hv`n6n7Q>=-}JOq|hygd%c?gZAF6OH^A%SBx;Z;ao4j9-@EApGc!zhaWgm@}Pr$ z|Gs?uQefowl}wA4Na#(D+m4#AgadA4*EZ2^8IPPO8P3jM<(`0tb(;Hxe?MXc*=5x( zcpO(J_vg=_h8JSRv-kV?(RJ)~10Xf@;jBkhzjq}<9k+6AxVF;w#O+&DQm!Ec<-34P z!6$0M(D%o%x`WYZiXcppBdv%H55InrjQq@pcqoJAIV{gJ+7Sq+@H6^hefnhE)1ISt zWGsAZE_66pq7^R%n_G*!dsF(YT1YJ;1)VcDn%RaP0IiTo2wv(wK@i>Mdl{P>ipG@E zFIzK(RLceSyJ6VK`u3IRe*{2AgB_Q z3jzUIoMls5R)eqmnhPoq_bTTKFDO4L|Fa$-M23@F$-9RRj|-v3q?90~NL-OIf{C8p zcbnn=&T&csBoJ@_Q`~=$1Gz3gGW|+Yc+Y&tdk1zG8a0^!5%O424bI8Q2_q=|!`HyS zY&AjY`9>`M_!}`}4Ngr#vA=_)jVbr#Qhqqc2YL^p%FtkpHr(tH5s4q3( zL}<2ZGCMyA>*O=zLL0ExnQDm*wB%H>ayVS*z3k{2zDB2uzyG3QeUTk)t9^h!u)Q>b z7!xYdN%XyQivMWir>dX@GkPX+$YDo9^52J+YX;Irxddacer=4nR()Bqr#YnV1SB;5+TQ)l`$?hP*z~Q|6rIc&*hJ+ zoz)QWiDaS}_QwNSePi}#hiad`zh`jEt$#kq8>LP143}k?`lG7B)Nnna>4}R#L@jp` z@^ZrAYKp)KDxRDY``(H?U@YC^T@POCpDe%&$+YT3LR#Yya^Mt{ThAD>$<23Y0Lr{5l8_+ z2DnOLqA2-HZDn_{bf+~C8P&>A(kS&AUAqPtv<8kzeI1#H&9EkyyU?oe1?j#W$jkwX zQ?#8@IxJm|1{MP#7$=>PUIxo-JV0)PkMk8?ONcy{_iE}hF)^`|lM_1cSx*=aLtR}R zbNAE5TU}QJTiY{G_s_z@V&an%9tgHlQz*qUUqH(AxxBf)3l>Af(WOs<5@NOBmW7~_ zg_8++#v+nNO8DIV;q!RW-@=6UjRsOnxZ044VX;^`>pl!iYU#m{Bs=17lX3iALWje{E>WL9Z%~%fq8c*+wv%%cKDd8;!Y{l44 zX$>Y>a!3*(NAbfkxPdd2n~FsU+a)j%x77qi+m@tfqC`r>$d-@+`OI|tj-g-rX?Mjc z+>Cmku%mLkZ5VGg8Qz!NHfb*D(aK)Q0zG9mMi0+_pU@sbn}v)0?jrhv=jb7$^%pbnmd`{B{@72RQk0HPzx+^{7X!9eA~6V!85$!5vLMCC z1+AZTcA@u|AfUXDF#h@@*ZyeFi?H7h(RNLuPxx;3SQMVBG;3c^)-1KzszYEq9!&vONRGjz@Y$Eu6TeW(-H1-`Lf>Ttg?4VG<@QWiXyx3otNlI06 ziE(Cri_&-9inK@}4g}xg!7OupgSt;It0D1uq%u@8Y7Q9PEbQh`If+c&eW_3$q(opi zx7V0d*(C!3i_#*6Y}o*lz5IP9CN2Y8Bf97#8cppC7)wp}+!y{J2T?F;N9EBf>xp6* z!u<$itP~N6Xk98F#{Nq+Eb&%(Zg)0@*bXY315^7AWCcUnB?fphi}-f0j( z6Mh-vKI1V4Jl2+ZYo6@!y^umN*F5MP7G2*;7GxkfLt0A z)>K#FD#|kqof%d>(=_ert~x_KiOSW74Z3BW(%lN%q34oZkYHOMTNEzxzxKN?&WJFj z@cfr}(m*4AwxKaJld!xKaN;ag8Xn-!J|$eg`z~1s?VAz;)&F7MjgDpUx^`DhPzq3M zg8naJh%(r7N{rAe=hxH_(w7o+vi>;%mIl9&hv$DRCkQ${sI!rP*rQ}Z26v$gao&oD z=a1uqzxggzDz>OympmhaLXRg^c zSi)IQu5Ll7odwU>{p(xQFERcV3H=B#;TK|1DwY|@1hy+Nvsj39g%P8YT+;r6jN{_u zhRw7>p5x%3zE*BEALbMJG|zU&z>^9BD_Sf?80Z zen|;bJ-sPH!nK6kR;Jx%W`qMq*+JOHw`=^%aL_QwOg}udxJDzk)Jkz_*xv896m&x0 z@li*w$Jys5`9L<)Z84^DE0#aO<6+XhwgnCe^>IA!mr6TlIS!lL0w8hpquU;%C6@+D z12aFJ0BGQfpp{udOd*11_(vQmUT2suNPYVV@tYW}u_5oh7Y79bRQsFbj!=sw&D?VO zv1TG~v_#w5#B}`RMaE0Zk(TIZg0hg^BuFuHn%(NG2?=ph@AMgf9{b&$$j{C;uYt*w zfy(|tW`VaW>b#`!V29*9OxkL?N`c6xET%pEfT$JT08HHRjl4BQaP09ds2YWO*ueiM5`b8UQw)P!?4 z3T|GIif@PELtXr~6`%)Y*ycjb8H+7CP{zaVg0rh0TNoQQZ0FKrbj|8c)_{@!hA3Fs z$O393V_?LzaPKQ0$UV&=&Zx$O3@37r^mM??5F*}2wffBlO8n!Xgxn}36Cv^j%((w- z6dNjj;<3aQ%RW&k$@@;)N0);%hN=#UaI#nzRSUOZG93)@YzDxx1yOl~NDsQ8Uwu#}} zwS4jty82eDXFxBk^ZqST^X1JRQg#hHNziSp3p)}{~$>_(wH-l3PGNUiy zc3O$)-$8%xh=lE{ZZ7`kvo4U9TEfAKMQV_rqqOzG9tq;Nz}{NA5n6-kM@djT7O{jp zeX_fo{CQ$Qr95gmSCy0^|0i-9ym}nkF!Q~JZ(|?mV=H?i z^m3~#h=2uVgO1hI8qhh`OGl*O1_Py>j%^Pl~bNRNwcQH_J-4e9V91-8Cy#F+?=(LT$LB&o)7`ID;Cm1a@j0-gj>V5xpfzF&#&9`myvW*__-#u8|7< z4N0FOpg;H1=^wbs>wNzsRM&z_7!f7?qwqArT7 zM^r=0^_zXS$z#9zD&ifg1v1>LzTjk&Sp7Ijo{wZi`xB@$5E2>HIrFn0q(m96jsbSR zs@9P!F`$cEcuX2CN??ii~lZ$-s1#9iTqs*^SfN>sP7YsCnA^REQtj?IUq=n9RB`+frDNU`_YEPw=zZ(G- z-rvP=QI#T%A3*T|(ndfHW^7s9ZV|nopLoG=K?GS9hk`* z8$GHm;83fkrY6We-hzYz(I>}!@FnBCCYZ$g?%$~PKOzC-`QM`gLx~}Z&6HY>y#4-ItzK0jN#0ynFkJ14uedzP6MANL`uzke=Q0*vz zE6Yl%A!tCC6@r6-PoUAJDc0VB$!$z+{l8j(V^S801mf+sK4rj^Rc7j4>LI=h&ofzS z3gg11@KT6i>};1^^gMCS-;5!T3QW)pWvDXbDbZJbP3g5&Rm|MntxZk1&#i8k#&MLO zX2N+^hEs;G0vxEtL$zM(z<<_IRE$ec*HTk!c0T^qsyBKHvis9@uxPm@Tk9Y{1F&64p9s0>8dWy#h}=m9^=3v*aL`Z$3_s?b zqM-z3s*>VuBzfkS2>`BT&do~%--Xg8qcp(xLYkx6dJZ}NVHVBD>(n(UwrObo?VcEv zzLU4TrN+j*S{6&|NF6vYvr25bPh8yGfUQaUlWks^k|;uZ3d7+39X*wNOwkek?T4!< zou&_&NeeAX{WN~T-qr~(Ho%SthrOFv0+|djZ+W^ zQAAoi`P~ju*23Sb{B^k% z)iXMNJC4C^Z@((@vOe_XOWi?5+{^7dh_5mN&2F81jT`zbVjaS8vjE@0Nx|OZ2@e%C z>2_1s?{*I}?#;e0Y_lNgpK^@H$#b=W40gMReV!M6#_v?Mvr1mtp=^- zPL#b@B(3xyz&V`~yeXOla*sd5hoCGMbrfs83hk2mm%4+uzR1uBSl-gJHQ7`bZCWzF z>i;$Y&LYz}3#sfDNGy_8LOQmzg}N)xexG`S0-Mv!^M89XpqG`64dOxde>i)qs4Taz zZS(=@ZbYOM=|;Lix*I8JX^?J^P`ad3Kw4Vjr4i}wE-7j0hCN;1_aE%B|D*k$JdClH zPt1AGdDnGalK|~)nO2bT%}Ze92=H*}LqyKZU~fFdPA3D1fG@r~+4?WyMtNg)gckPo z)xIyddi{B`f)J%`OYQ>S-oL0}KhtySV5(^^cltHYbJWw+6^l8UciQwxfUCSqpdX%s z=>gu-cIG;*;)TtRABtU^K}sNBQCwSyDj8P(65gw-Z8S^Lub9`t>_j0;wkI#Tyq_Y4nhn%o14OU&^Ns3>lx2PZNEE6AhY^3jg(j!w~&MCI%4# zS*j zS2aGHSTkn!B%nl}yl)BDDa=wb3CXfVOICGqO)247vWn9s;Q6GQ@Z;u-j*^e!|Bivw9e3U2kp{7i-d54-M^QchmJqH(tbncQRb>UjM# zHU)r%wE5m1)RRU@K~JAPrK6_@*fw6svUa}0|9%gE3$B24#NOWCQPWYY>)v!%a8zby zrlO)ESnGxr^RYV(5c2ZAF)%9dkn3~XNKi)9wFpbJ^C#6r|_Oxgx|CT3m zpE3}0cA8A^DxpjzE?;xtmz#rSKtXr&8cIkOJLC0x#&$DA23@q2w6bNmbZrGZRF$d^ z3DOuaj|CCaKA+U~IG@s% zmy;`RKIsSQAr7;Z|8N0MyoCOfKlrsl+IBtUP~LJeuV)Y29G7S1dWr!Q7nJrfE?4~h zH8rQuS(_a%_UB6e`<>RX;9~?*s?f7HYQarfSZKmgEbI~PYFNW&DZ*Vw$KLEZ0zzMc zg|*9K7iB5{Ud|8{z=?j&%#v(&{naegNm|Hjs6b~F9_jxeC`kBd8YSP)r8Mf>&)u7A4Xa60dgNy$+l3bduDcbjCxQYTRJ&W2hM6j zrHi*ua!{D#5ed+kwiT^rtiB$3fA4t~t#UlL0C+}lMy6FtgE60o1rb(=J1TQ@kRe5j z^dWqQ_O1hLE^L0IY8EDJv1#AC4y*9o)<4gm1Ym{{28e!TojRbrb8%UaP!1{47j8_0 zD4AuoQp({2csm^*RG#i=b0<=Nt%vDkf0K{D3B=V6OjLST$eY_l7j{vD&#g%+tkuU6#c%*w4Q{oj zChs`AtkvO#I8_yaGBKJiHTpV>2wJVaoVsFRFu+EO!za>8crAH|-nuRy5<*}3c_bNV zq%$7M#~Kp6i?~-x?g(JPbzaGL0QI9WcPX=Y-e&MH`ZfX|D!H;{+$e+>^>xs%`}y$# z7n;?`-Oka8A!0Eoc@iMuGK&`YXO67RZ0*$9lmHQsAWdA5j8SYEQNjk2cm8{`xT}*5 z8au=X7Ce5aBU7+RBtgfu&q&&qfD^EcO>=7!}^z7W&P^nD6NkdO# zgihQ9skZPQKg6$jrb!|M<$KRQBM<^Kbw~i`6SpRwa@}KKfkqr>oq8t|32*ztMd<p-6T^EERoSDaZJ&x%raP8iX2%1$( z61yD511u#J)Ks0|EX?Czs`*dPvqW`X60>faTkB(-Deg7)5bwX?8|OO23g&!WT|I~p zsqm7c)~O{UTxD!>6w$c>eTwGyIer2da)$REr~dv6DA0F<_#_X2xrhDWC4*Et0uU!a z{PYvIMK?)WI!9p(Ck~<7BG$~c)yK^Z6i`TOorI-Vt^hI|0ZEr}9hW8NshOQ0!^nCq z;aneDSnn=Y2H9JqM8It9gevoyg0@#)DP~R^p79=!>2A4d415&_$c<)nn0DE@QY=vD>|A4;L)^dp+mNMO3F_dmaAWI z!9&RWQsU^$&Ys`B1;xd3l)Cg_-jU~$R%*CbbzV(9Tg+aWj>sxB#_$n@IG|((V0Kev zmgM>#fsvGeJyB*(f&dpqvry^lhllx&?M^lw5h^cEDPtx=sw|`Ab(%;B;n(C9_pPG* zoGwBjHM|=o9(zlbeD(9q15iL<*A`_auApDNHRMx5n~eP)J1f|MSU8y{(42Ltgb1m~ zbrnS(7aqJM7V>xo7=38cMdJ#JN(>d5yT>na<75tNR&7I#cy)6=Zkr$m8{$V%?xz>p ztQqx$(&7xuX=zxT{+Rtoi3t2F+LRlUM*Q1RVEN^@jT1}nZ->W-bQz#^0Il}p2^nBs zdPIZ*s^=~Q9mEnr92Bf;^*U5YPL-^b7?*w%5VWXKOXn8*hsAfC+aUsN44@3(pm{CqW7*3nLE@wPlb+4)85YLVR;9ozV*DXn~HUztXX&Wxe%Tcj938Yw{%5pZlxXFbv zn~l;Fkf7&rN}ylyj^Cij%*G`bFt8VO;#xmu7|>I2VS5Ixfz;li$>8t5wTc}`8B2Ay zmU`_vv;WLB{X2PaD1nM|aH;lFXf-=fvaMEE%k%2*p?<$;V=R!LR= ze}W$M75!asp)k;u5OXpJ!G!>adT;>K`|A=sWP_%Tc!tp8V&xUDAZT{Ub-u856(Mqj+#&G~zd< z6b;kHi6aMXD8iB;<5$T8uU`Cs&G~wjmrr&Ym|B!-GZVjSF~OZf(;MKBfq$k@w|q^F zpS7P3P(PC=MS9|N-}{y6CyNC?{zWd_+R*i`_y9q52^N+cc%MFZzr@hx+pRkv6O`~M z(&`}+;{$%@wYq_c%B@7)Omr%X7n>8qV#9b!61Az187h!>K|mG5naO4Qm683`&Ec=v zYnZ-KzCwNSd-!(gp-yLl!UE#1vY<1cU;%LD+Tlal5&qt@j32p=B1#UY>s zLW`4DHr-pf^x5qBJH70Y;aNNgj1S?)C!tw({=<`z%`32juA$UY8zc@Kg_mtR&yBkz zYP>c&&Dw4AFivGprbu*X^3`NHl~^aPpSF0?zVhs5JH_M~nzUOs34FjFL&$aj492gg zfCu87+b*xXyOlBFLe?MD2Cpdd$qn=k?4bZ4UPRQRA3@;z!G4e;9CXQ&%u!zIIWYje z8{j=~3;k!lV-*4^3UtY$Da7J|D4i)@ZLr2P7TEPyW=rrUs+o~mhnW9HeXrK*~p}?r0-hkSdwIY_Bap^rM3B=~iXVAFy zHpYLSeK!kPBK29TIV8bG34YNq$RUy)VcUJU0n&1P+_eQ*~| zrq+8EJU+~st0^<8wHDS^pRw}#z4GZ_VDKjKS3tYxO~l9u0d~aM<(H?R!aKgzd?q=< z)F{%#b7ctJgO95nxs7QaaaHKu3}g5|H5V@yjWQ0La3F((2>~IPZ0d|}Dqe5n^6A-& zp5*i{U=knm`TN;V9%2@hn*TgVrg{-}^v(bt8u6W<<5TAxe-xVKGrQcGs;-zsVLg)~ z=BWAuq)BpZz@Fr4w z*UP&{sF9kant_NGL2R*w1sn47uXIlGz?4)S@t;P7z%oE=X=*%ttZ`p~Q_M7Y(mpa2 zEILd26VI%dJok5rUa6MdlIzSok&T|f@_cKV?!n$nj)ATKndVsIg03EICtNN@A{FV+ zWgL`P&o+^AwbD=&S^Mtm`&WIN%bn|rPA8G42z9qP67>i}MvM8&BGs zzW7GXHvZ_B*d&sIRRL7r2U9n5d$l`(b-u>-kIOW8~llBy7 zka~OX>we`YEI{O&J8^aTcH$?-LX<5`i~z0B5`_4ps4o7(Q4=kqmHsx-nM<8O0+|H%y?=IAlYt;L)EOw187D-Xh{q>%{H)WA~1-l-3 zu3ES_GG^-*tfaK8LB;*0%I!`Rx}vHoQe7Mp=BJjm7fMHlB0e?jbZnupBsKHUUP0{z z>T~k$h5D>ki+=3>%h)8%{mwU zG|~efVTF2Yg<|D~^i5t7fz-gekt)5Vq?M~mjeka@cOqUQoB8lQ)TjJ8 zpSZg$dwSQkh~u0!+=e-h=#1#g#yo4~Rry6+w)NOX%Bph-ukG9}zCL;pAs|GxoL{^2 zSd|8m*XP6*2ik8{I~jkNWcJ?_d_1lFLXyaYRAr}BX-~+YMS&FL@jf0K+HcYII$xnQspI`5Ydbpgx}r2y^b5~ zP|=Z^g}(y_6G8VzAN%o%>--YR@zv7gH`#tb(`dl26@H>t~h8>6LTr8_?a&etiW&s&#JeE z3aiuS&EbYED3rQjWPjq$4%C0eVpek9n_sUoBA$yFFmS9@XHonn+BD9uaL9bwY*(dT z^-;2=em*>~6k9D4DW^^!d8yiLl1>sXG zDiyfz($xICwY^g3gCT-}Z1^YoM1ZiB13I?x{GVRL$xz}XBqpY&8e6Tkc3SL<*h(a} z|Ig)54vB2Mt(~2#lamRXWs0B?-8~uxQfF6}WbO8APR>qk$wy<(3yQiNIivr%2$qmo z?WlfTU6cyO5l1;k`1h^g8Vob;L~1l0l~tf|KKnDql$3+H8)3sk8f&cXJ>7FvtKhZJvll0w2*r*2NQ@O z`#zRkfokK}Q(8pl5Za5qiZ&o->~?>1Ze?ZF(b0iVtMt9BEMI_biPLiQYl%0@yH*8v z-bOJdB4lLbquHwUk3AxQx>eEka05!PO>PHiVPSp0!tezI1gyeTXu(jz8I6CFHK^b0 z2twwfNH3R>kqHe8lT}g@c0bHeph;&l4%A^P$npZLt_OhB1;k%!YHC0Q9!}$mSXQak z!nQ+!7`4my8wtU4)Ss<4N4!zC{JYx0&dxsBMu-;j<;z48v)&&}*=<0#66WPiIiz!W z3T5zq2)wCRD|T^oyaHcbM3J7J4)m14JM2U#yfw!GdQ zmFH*1_7q$}WjB|H!5|?!`v?FvcXnWoYvMU7GVZ+m-y0el8XFt;vR?D>#Ds_c^saXJ zy}o|1zwhJY^G}=h(0;IaDt1Asn zO*>#Nzd~^V-_b`n`>?@9&DE6)5_D8n!_KAUup0mNw#LHK!-If`=pP07pNg-XoC!y& zOHck3;4lDtAO~nq92^Lmnwol!)${Xb?jF=kO0oBm8zBG@ou~l@18mYIz&8|myjHfi zKRjOV*}=qfMtl?0_k~vd5d{q`JUraV*;&Bn>MuZx{)s{(Y4AMVQhh|hz`#I5d&XuY z3e>7+t4w#I3XO=TK~fBrN93e7-8+66hcv}ghQNOtPv?CeKXRmVd0`%>)+ zVb@&^eSQ5ImR2k*EVbevFc@s_X)~$!g(ImjB?AK*WZ6c@uI<6`9E(;^@a|^_`eY2y z7Y0{}&sh0944Ko@(^@(@fByWDai?tT2R(+4j-0(Lg0MG$p4jPKo!vh$K>F<2-#Qb80-A(Jsr#@l#_Vz;1yo2PTz-}0r zAK$+n$nYNn1~&b`A3)PtAwcB%3W#QJA04rRPSE$a6U)mFLp&>%3(K7I zc?%Y19H~cbkFDUj`Yg(diUw6CA;rZzz`UwRnh5dnoxxB7#5F%3U+sTC_EZJ#bimHn zc>5Lx+HtY5u|Skuvs4QeArL4zPmon`dufmo5fL4Nt!;8rgCUWIhNkswTprBdKW+1& zwec1l30hx3`3G9rO-Y+?^LwgxbOdP9(a){S&AT?8TAG`e z0kJ(PiKsE?)rV}^|JnGr87aXZMIe~`|9`!q`G!I1k+77Ck#6$P}|8L~$T{q)UNqG$gP7NFL83Upbt zwY2I0Y0y6A^74{`!>ku*AZSo9ipylOX^Wzqhp5mAy6#Sn=gSvUEC8QrV?(Qy@n>UW zGEqp-cCOkSKox)r`m=C6s&8ojzOAv!WoJA%I2b%IoDyK7@3OLNPJ7*m6`;Y%diF9jg>p9lvo^?K6UKejs;HtFC z+t(cT_xGXp{{C=&L!fVeyI%uL4_e*X@qA8pcG?lp`qloR#sJ6SzCKe*047J6<1Xq z%ax3tcJ}ITD3Z8LI*6QbcF8|?s?rg}cyYge{TjI8&+mv)5dP`q zgPrl8$~}euUDe+4;NalssEQ_1IF1_UAR&(UlC!&eo7;h|tgNiBZ;M*7&*~gF(17OE zD#hme>d^oE2~dYC}?YI z1H=IpI&c%P3D@X+KiwX2zimPbc|k+dJu>0|Jn|D{th8N2*{A^cjU0!8evuC7MG+L*QXT z1lG;j;ECYe1vXVtnQf!C{|NZRUpO#+`}Qq>$$W2W z0;Og^56}M;^e=3}2zQGT0};TlU%x;c)4zEFe3AoL;d66yz}m2%gUAsu9{9X3_IZ{) z@{-?cF(iT?aBP$)n$l4qOe-dqjR&uzq@;v_ME34P)=pDT4;?~9MHPC!zO{7$sOV=~ zw&v#MuV1r(=;$9?Ofkps4FBlbn z*4FKD#GvUIGWji!VlJ^T%s#6^29*4SBh^xQL31W-Eiplo}89 z{0O)Xhz*P%H}|2x2VkA{tdo$Eu9xPD{D1ED4@2yNnP+2Fj)RZ?B{kLa`egGV!)zdl znUu%A`7y5M{m6+&^Fzo*jPv$z@vg=vjP$C%#RQotDx`45Wc%L*xMVw$EnV7Da|@e{Ndz5h5g>p%O6;eRh<5}e_0Ug(PF zT56Yz#%}--elOt5uC6?=v19zQq6RjdV2igD#x-*c%`uwZ+(9A#?|*H_IlfRipU4O% z@mF{E128im;kL%cXAn4UpqK;+_(V51x8-VcbVw#&%{oW`s28ZJ#>K@MTU+mLZb~}* z?TxK<>*rv6^EQz=7mEb7-3({h?GAd+sm(~vG9ihw!++3E=yte>3W447(8~<4xj__+ z2<52E))xH$d=wkyg%RL90nL?y%UZ+7r`aM%5{25SYbA9GIX+}Yp0uefz`AF9INC9l zbZytVtU8PX*n%;5<=7Y&USEHP)x*Q(&NvjS0C8FJ2CbXT>pQ8c1g~FnKY2&z7KbC{ zA(vhP_Y%D$jr!?2Ik#VghoOu<{JqEb^nOZ23_72JaKxV#7{CI{8}vtGH6+>(tU2+^ z>65$G*@hx#hl#o|kS@4MgI$a#{FOoPJ{)TA7_?kA>exs5cq-u;pi$l&tB#-kqFG<% zal5P}g0Hr;$D@UJ{L9c}`TVX-8G&4NnfmZL$MGZC4$C0n&F>k~O@Cr`Y{I3+M=?_M zLy*p|-yihc%yF_?jjB`29yY3-v`z4#z3SsJX%QNG-(jRZ{ZjY|FH`r1XiwkA=()t) z^S1YftX4Ps3ijfLOVNnNbw2j>ZGmSJ@}Kwh-G;9B)9&V{tGls^#Ze(C+fPlkeK^W{ zR9RYizWb503XPp_tP?b5D{tkFFA$BNCkbzarZApK27F1a%Gu|wSsq^9h(BP5g*ZfCz9l+{UST}@^rrl3)og2xbQ5BG`OB*7 z?*q%j3|C&x>l`IZW4H6b8_dkp>owkb zSzCQc#ocR?TOSU-j za7N8-_j~Kj$b9#E-hsI3RvqgNx~DYA{C>Qeo;0OfpMU*K-(;r99=^V}*aU^NYrc}N z3eR(s-;{fp`_G36)MCI-D_(dT2Y+5>O6?wDBjntyHY68Xy_;A4g2dOGxH0YQ$#}7B z`K5O!8vWcL{Y|Txwj6j-82fEIy2MQeor(hN`w_9E!r%Jj{>0LY{O+Y>t)n^>VTffP4K@PbQ zFIQ=OmYzgo%gtj!;X%bPDv1~*_ngSI=VxW%6S90Xa|K&n3rYFMkub|KD$V8}tgbVO zCXf#Q;JulGOM{+6efKLA6Z>y_*F4fu&n*|I)SG=M4@yt38=mP)_YwAMUlbZNs}Gp7 zyD>-k^h>YYptEbM5L^4)j7CVYSg`caCHSHkbB;y;S4|kiEU_pj&MTdwObS@(8 zf#MMKw<{wS=VOSq@~{Pm8xzK99cLM?tkynkjHT-%gTag4grP_FYpMV2tQ}nyADQp$ zT7!vZJ*fCW&jJw-;duki;$Lr~0`x}nqp5h`zI+6@cSGn?18?9!RUFc`S?(bI+@O0L z9Ca}A=u%cXNHOkY^|K)6p%*CtR3;U$Tr_%K4Mxp1B}u6XDew6YsP(*x<#*{PV7y%J zEytTnaf)ev&GfUSejQ6FMP&B8W;+lS{(>gao<8Vd$vo50~EQ=L*S;eT6~K-;r~P`V!;m9M`d; znBq86*WSJHg59tLYe?o$zY|FCD{F`wF+VUM-&t?ho=VL|cfW3X`w^<#lRG|Sd{x5F ztd?Dp6wTu|q!Q0Y`_p_%M!B(5_2nSp>o-PS0^rf9xQqs~cWbiyrjypxvaR0xTAu2k zO9>qYzKgmlTaf>@x}Tr@2>pEs8_aFwt~EqIUrCzadtYr0_G|1Iy`xcN=a&X6*}st? zU>nf`U0fWxivPXW*dzj0sZAl6>N(|_>}f1C`<>l>(c zKlFdMU=MZJ`kY2$WioOF_Tf)ny7lse732!Z^a;-zUhJle*lRtwz@9>_8KfL80k!-r z$3IbGV7TzFP%F9%wx@oStmDbNYK5g_t1VjoH1^{Zi5wU|4PQ!Ow4Ai0XabW5-`>4a zqb5(fgN5vxR}EWV7jXsx=d!{bC0Qd^bYL5uYQ{k)7bsOb^A*prUXRKgk-G95Kzac-gfSEK%NmCpQMsh2VB0%rn(X~5#(UoC} zYx}`kYf$p^(EM}@fuhzhqSIvGM|iPgu&BtedCfiJti%=6tKFlQHR9PACq1Q#IG5He z;kVGzq;P&Ez5U3N)V--lws&kGI`CY%6d2oj<zQD9Xm~5@&ikkQh8wl^VyCuh8SLh1*a4KGG4GL1qI7r$^okm> zWaRam)t%WSQ6S*D^e*k4#~w(3TeWya@<7f0FYp;*RxyL&Nk@3$kkJGu+?Jr?;QMi; z6vok)KbNe})eZld+(K=c&R1DRpPS3fB&^i7yt#<8GGEX|@^T2LfP6fKDI74E$LNw; zozJ+T?@tfMMwUdgCezpraqW}9EH$pze>hIyR-x;2k6BTp>jS&xc|+RIPVg~9rKT-U zGKVBHok~`*bG4=3a@I!egXy)^y+q6;r9yFIclgr#cvK2S=gV~v;>eIhlNyO~ysb3^*8mJYV3zq;SUL#rOTh%8At2Kx2~#d?|w|9T}d6o8H) z;!gU7hZX}NV90;VD9*!+D=c4cWDCAM9pA_H`q{Jaao~MN>D%Wr<~g_8XgNQa6GTN9 zB(5;oaBo&GXYR|pGeHm)d;}jZ3+Ns>yhVF;AvjSWQF8USUIEhK9yEBR7kM!R1UZd} zPp6fxk!d-1!r|cBx8FObFPMXN1nBCx^yFHBXY8MUSO&I5I7Id?Ya~yA=*bjIqQ4sr zF=R-(XV=4%E0EE&oVqcm>B!}?y^A0_UeG@FF0i&NDF@eWI3*E8f4!*q2a1jFS2KCyq4f z_>CU_typRWOsD6+i<7)E|LwImLYt~aWq^%WLuS)-~;MuZX9*y&z*q7 zTmn7BT-bW@H@rqu_BZKDo4o`Zydq5x`#fdh7177lo6Zq?T}>>>qht{svc0A94A!e` zB#)`z2s;zf3Jn~hk@niu@84ql{+T)dtC=6%gK1$M4Mduv?@x=Z8Rr(>OWD#)owvL! zugoWt_W_xJy`8urS-R}qrIml9DJ;U_m!Eq)E9B$M-qwgn%V!;}CaV?^PlWA?uXFqd z>oYmn&qCnp3L-u?KKa+FY;cY3PT;CLQf5I6aHqZHcx{+p#gm2Ud|b6%@6y|mmn@@tXV9BW-;2An1aTqR%T1j`)%7 zg}J$*6!w=qJeR7{!Ei7Ta^e15a&uZFKHU=HGM9&lXL1>D)TaVJki_%xT`$6%IZ|ywT5nQywbof~*uwAsa7W0f^{udQ zB!wLmnn+Sp`P)uB{1QrQLO$4)nmMSUE>-<$b6_E&OZeBWq)MCjXmmgc^zhB#f%fHD zx=Kc#Rqi>-=IQKOnR577CY9&-dk11ii2d50Hemi^hR~wZ`vp zaxgG=;Cx4rI+DG%Q~}xrKz=J&{9h8<`PmnMwZG6PdI9YD{oNh6-8`s|*8ytykaVdo z=+hls0S|4b4>xSCUJ81iVP{T|hwt;uy)AF6Nm0ELo3-2E7mcQ4&Y+zilMMFTgW!*6 zNjHZdL8md0P8+&vYdfT?(n#h9`GFSmt_vGy8Yw+6p0u%M%ZB&=+X*-aIBQv1kg*@! zd;r-uXao7IJ`DphCW~ah!9ju$<(ED)4niL!bz0TFV)DN(0ZZRAK+vJ2VzjXo)*OTJy^R<;tp<5Q6Wzrz=( zo!%iocu`d@-VJAqWZxWvvl^EgKA0*h4&C?sEA@ef z$)yM$De1tv)opn4Lewv1m;zRiK1BiBRO6VMugVH)`a~)saElo~mhwc7Iw3&c!1qvPWy78V89r8W+2;tC21pu$rhCeB)>S6^OwBnB!q2!W{h zG)3PM%{k^^&fDEF6eAX;51l?7vNZng%r$Bn*8Ard2xNb#jyP+%O|gaVgwlgga1Ezf zM^I-rTyMj+H7|cZoY|c3DQ%zd#jV5b?_sFw?F# zEZL3aT>434)3Md-<;Ezt+0Xn=A3nBOc+CICXb4mEY&25ih}Qtrlyq9W&WqIx@$m5t z^z|Es+B-Vd9t?v4iv#&H@;hdImgIr^87(7QZoQDpD(exqwwZ2B{p*3K`4}(_B^~_bmrv(+(TA8&!Lky6I zO(6E?yeF*uq}<-ujxiOi8xAq7Y0vg^Um=R0ZD|R9sQIo-UA6AKEe)%Bo0c^-`(MpR zceLunfm#+U=o`=jBxW@{`|GjsEHOvovtff{&K@|6bQqJ2U*jd5^-q9|@RzOu8{_r> zZ?a;S+dKNW{zT()B31IG!Jsh<1hHm8FX$h*A+Xe1^U&m#1cNq!PGFIJ<(zr|jp|j> zsuSz^hh_swcP1|om$%8&Ap{Uhc{p-q(OJ@#4G@}`m|PsKPyiF#J}v$4C&15NR7k{X z*lfSVzq?Wam=@pw$rivG0p)ODlWX8SPtYSOV6`TEiDELO;{eTi*ZzPR$hq_0NKDc% zWNV;7tT7kk4@z5~6)~M$s$SdU$YZax2O5-2j?%!?B%pQ>uob8w&} z3}>EvZ-3PT@LurOvH9}JYRX+bJx6mjg?qhoHSf2#w&bYeLA9D*y;{BUyX+uV zlvk5&(oh0pBg&wC*s6vBl}cfb#&;|Ur;t%qa<6H;cE8KiR0NZg3p4Oq)g^(NIp)t8y|HvP8PITMXQPuN{47=qlo*Q2TK6SXJO zVzs4lDoq+_m#Qp@m;5Fsy+=Zt06dH_P2j)4ovD!-R>WSaW;STS5;;Ep;<4quX@4f+ zE(QdUAO!+MneMM^o5h%1>)6n$rq`6xh^4(aNPgwt-RNx&fv9l7&42|dAnXCFe0tun zRvCoTqt;TkTh*5C&=pG#&NkmAa_!9-%#j#93yUe!|NCaA5VWe`=4xds06w2BB>tP5 zzYh7q@MNEGNE3oq^ZUR|XjNK);x?yT(@C%e9H{rycvMf$4IN?>ihv#ejO%0{19qi0GWd?^U6 zo*k5wBw>Lu)4cs6pYLQI+Wum3DE?6A2NoFi;l&gofuD#_5#L=A_Qk7Y_;z5s%6epT z4>`m|&D$Pc`3M6X=cuyr0G0;d{yXPTFnX9Zigd$F_}7G74)vuWb3PcXN#Mx;MPOjH z|M@dWSo>3744H{!R|y9vTTfeOM#`P3vCx1)Buy6!ia57HoRo3UbGI=}f0Lyfb7bQi zM`PRgcKN3nm3 zZN-|wv6-JNgJwM2;z0L|7-IUQP0SoFd@F8gk>T@fZIID42H!{>yTs-#yKod|=sF?h ztC0{BU;aCzTBpk7;qDrc2|9>cDxC`bU$W=0gz#?Jc-OlcZ55I~4T{a7J;hgZiq- zgxhEUc>vVMiBJ&K3ly#a6d^4=JypR%OswPPd{0PFus|U-J|pA%Jma(I)SO`=K{roz zWP7{`dDpV|iTYB}iWPVyzEoIxJO`pD9U`&v#dOt=lW8SbVN~CrkNmI@oe{A4y~lCP z|GK7B8ww_>bB)wo4aU(v$E0BdV%B;2F4)iZk53%HslDKo>hL$Y-@bhVK!k&pwnq>z zi|15URyqP?#p%}2?QsuoOv#Qg+jMWvDfHGE4|MPrW0ub^KA zC?B@_mj9&vtTsz&dQdcmgNWsqHz4T-?LeG!1z_T@68|&&290WDhGD{C5RqQ}T?1Qh ze!5&yvy_L7#OH66jps6NX0h-c0ve@Qz{dkOnzZN#C`bixlYc-D%# zC$pN&nHnwhlQkQ;-GTGm# z$x}OMXI7ogCeTkK;7@tQ(vB` zZl`{?hQ7+F|6vTIOpOaL#C^>7=WCTfE$yw2`YLzgDGwP|G@&> zb20Z?O%(4}cSp-3o&yx+I9c>`TrXkIct4zxaROWmBF1Gkt`12ums>`w!MSY%I;ddf zoz8J_y$Fk%a5|C&=&u9)qnsGbNae|2vCpil9#<=Eitcyg-Z>pm6@ z8UwIwVbU$Y;;QU~3B0edPFpaK-jaHWNgrpz778kZ(A7CVk&{zb-D=Z@lej^6j~|^X&RI5lt!(_3dT7q>KD-kzk4Tx4mBb;`qSQG1l}x%kjqCk)xB$Q zTmujtfKid#6v6-CelVZk%J>Y+!TZ6;y)+@d`&~tHi?BT<`0}{wZZ~VKb=%Ip&-FZ< z&(>|+g$plc_I_SwUla;FKM)@>A>Dp|WNWP8&XmUK^tCJ^|AVJ`57?24chEzf=<+e3 z?(4aQlMhcq4OO+OINmKqkXx(`Ddjq%_np4P0Z%j)a~qi`Ujgg@uzdO z%E&vOxFyR1sj6cPao)2jZ?G$K1c(&V@u{wU>n{(TBrR+*e`LAQ-*3Kr82(P=+MmfB zDZTo=+fZG*El`7jjN3LPO(_}*7%)*=+DCR&oD>SXcAd%vt9+Q(UuY4(h(~9ziE*>? zP70iagiVe9&(5fZO={RT)$--5E~JR9clMumrjJij?Di8HdaQ-a&gyVwK3Cnsc0&vZ zZf*oq0D=QF;2pq@t)KKTW9>u0pxu!0F2)^k(@j#|EitsyMDV?bx(?kWM$d}97AVaB zi4O4tamY+KDG9=0*z3{T90!dI#_uiCFXC*$(wHn#1u&D{`CGvYjIgjUpvK|sNzVt4Yc}fVDf!R>v6wj=`b1ke?%1~Q;x@o28&ijKeTYZ8uY5oLe z>VxSbr=DG0)e0XnpE}KOM`In3y}DqE0yua>OZ4V8EAdWKlTZ^ z0=U@n0+NUUGF;MR3aFE9~_`4N<}8H+r4+)s?6rjNT`l~n`iTSp)wC>B{*yxxy50hDeFu&kC@L=}=P*N&jla0KkWXT|2KosU z!{YxyrCjN1|F`- zfWeYC$?$rb`W?4=&&Aarf6lB{RjN2fU$U#U!)XNLQ1pT(yG~eKIgea=OulwGxxgrt zp08eTbzngV4aPX_ZDJM(RakPp<^6SVkDuCBpw-OVFRxf1JYAQgpCg#0g$kW|`HGAd z0r(A%t*dYOYi@4f7nUDGD=HjJP4m!LJ1lBI^(IAO3zS0&lrraU$1v|Xr$?5%6Vz8| za)>aWJ+oF_T$K3;=l9~mNbYMM>gTuPqgiU-`)4xCdB12bEwVV*v2~MuZW6@*J-E&m zvHNQV<0wg{x3rYV6@+^D$RuaBE5hnC+cuz-31pRy{LR40E&#$8bKeC3l97=Z)~@Cs zK75dp`lJGiC7|%ZY}lN_Ps7UU@c3{K0Oj=b^dOWS7#zFa1a4n7ckJEprD=@ij}!J&+}bPcXxL#5J&~;GN#08YmeFLG-;^s zjC~XPq-Rx#45A6h@y1Qlrci4{NgEdL^#N1@#1`$~Ce1sH0B2I5rt!ZBbEp{CwR>|K zzTIb$sia~ukumZa7l11|Yz?LYP#gFGIAZ_M5E;A4FH`>y0Q0}mb}(0i3;`Jqd;p0g zTi@PJ&dOQ_zwvRWlMPu43JR`!LjGT!-DaVMgt9-4B}%4es5I}Alr-l%>I3Y9VY(i3 zscyXl{)^vp1&E?@Kjlkd{@^MiEAoCh+9fzTr(dF?M(Xe^G_UyoDeFC;ss8`?@hjqn zGD0?GM0WNrvRBC7WM}UcQ6wv}_ul&=Bb)59m5hYUME3qaeZJ@aJHK;&_vqm0-uJz) z_iH}Za~Yd~Y{6p9+;SC~Pcg#m360RsbjzzzZ%<>*jikA7EurfewWO+%wpvnr(`0lDl=nY@@>Z<>{x zpHH*?jwiD4@bX?2)EX!4f`--*t|Ab9@rxDL+Q zQWiTaX0+;Ls@9mi2P?Vr-GaInB~!D0s*RA^<3=vguD;iuti^Zk-y!SraaL26)G-6- zDVcEfkq4`gqCta%scCjo)9I9v|LpkHV-M7@KAxWRjEu!=&PW6(ifmqHyn4Z)@oXwy zZM2v6XM-bUfM;&Gb6qgEfRtaTFZ+zt$|Rm`FmnR0Xcrm6^yXqjAo+W5#_`Y|Ri89d z(fsl$HATfiU>U-~!lG!zU!EQ9WM^lC>Kydtuupp{vCnQ;udc_ko-0gJo0ESSMQ*iW zTpq;xjpyw&Bj6Bk?!MsE9GQuJuZ2}F_%y0ebmhx)P5v4=U}l@iyGOZ`CIZma&hyLl zvobS(f&>(V=;g{L50hXS;rR1A^~oAha%T_0;k(DpUG04-D%s3tGl1TVRVJuU#%cl z<<_9;OK~%$_qTCc8L1e~No?_8up@{cc!}C1vR|7RLK^Qw<=i(sY=F9n4 zcI`^zt(k`6=6l{?W=y93<@z&u+xQ*l^g!^I<9POgp*b;Sz$$}^-dOvVCNo0>oNvt1 z|78nPx*hYvt{i-S6jfDx^Ja;TI$vK4^%&m%YX2hs{K&^*Xw)IRY~Kj>YKA4ISnH0D82-t*PB@OY77b%n zB%rm4%)Hc;g3UCmZjBXeazGDH5Y~++5|@^C4ry68NjYhGc{OV9Na6V~cJ(C=v6kMR zXR?E-i#W%ESNWzh&$6j`+(cCSp`evVb2w*RA}(oS*^A zSg8>=rAzS>fU0zGO*Ip700z1N01wD|RlwKde|c(zgA?{R2r~jkD~QWGL-0OURo%eB zVPR(%^Er4iH90ElcO<=8^f)rpgO^fI*u20&3+>jUJ-NcRjvrrY)br04Ef@f1A=M~x z@_viDVeww2enjv^%T#^Zuyo?JZ&*Om(T zJM`Hwr&E4U)SSnwR(Tc*&n^^xUhqMYJKCR@<@BxMO;ewQ(5;#ePIpP-jh^PvSYq8lzpf=d!WJ>-~+Noyff&*^lkGXaLl z3{~@+aIZf0>%n|?z3^iISBra{FJ;iCaIx9J>y{S`ZaFnYnRP>nL%xg{Q{8(buoDnV z(3l>6S^IRwQXro1Z3PJ*e%EZ$Cs_@EBP~fpzQiK1>iKsS3gnjMDTAJcM$dVCjA?wI zgQq9gZFu`y+n(`#Zo1N;DH)Mlw!tkgELGeRBlhY54+n6(Ij|uxJ;y@eB3+d^9%O@g zMqgIOdEVu@`)(D!f{(=kf-^xI7Uo%+U@QBC3$G?@#BUiBoi{JDECkZ~ipy;$7RVz1 zcUndyhRicPQ(|ifRAi(8&%w)=EkeqX>9VmQaRm{f+Qq~B=Fa1YE|&#%Rz}A9b1Ap4 zjK3!|YF&q^6k4C6$j_;U0u3BB&03Fylina%m*oEyvO8GPBW)9KPTA$5KO) z&7tW9-zhAk>jK=~Y8a27rX66pHRu|dyU3Wnq(Tg~bIEFKS8|bUn&ijd?Z-rj+G~o88=1nX_Ziih z@bZvo#tZl}Ns8v_x17&bpSerHM>3pMZ*g}G8M|YEB0m-=Q6&at$sp&7QH(rZKGLn~ zVSBr+1j7wU(K4)W$)i+Z)M{F-5t9(0ZSaPEsjBQZxsfjZ&pz_5A}l z0fZX#76I(0o#M!N(-{_>bCWI$HEv2geU?0+e^!$x>JiXjUz*7yc|m9E+Vk&uuCw_I zc`^hm`MY_haS4NSY}n}92yw3mEg16sPpJhHhA2h3*_-fN`q1N2WzixZ7f%Kfhye1=yaVfncd(0w5qe`;>67w=FDGi7uG#Vy<4x2$t~N#vInE^L zV^|mrVff_R^@FO>EzIPb*PE5Vk5frYi}DFU`7sP@3mv+CQx<(5Lh zY|Qm`d^CR$+n{(smN4!ZAe&%f1} z{N~i~$kIY!u81U$i2orO#x2>RsL5q)(<%W00Z-URic-3OVX8aqPK9>WJrG_9|Cd24=S(`pS7rGcDf!P99T%hO7*dZT`Lg)38*&P}B zbn9mu?!-S?`D(M?8K)0SMvz68rB&ayCPr+Flz&jWVt>8OR)@2|z)_%*!6;XqpZ|Mx zBnLQzEMX=p{4EQ?-af^9TI=#oM(gM=E{wHiIF$VWpkhD*4rMe=n=c%1DCnrfq!kl1 zTZSnJ{h@Z-jT6VE_B~4zu~O$KN6tzCfFC;hrn9 zS7Ng><$9}=71{W0JbC0&Z{*ci>NWEZ?~Pi;i&h#oX)%39XW*j$XE*@}kNRt7L9ZNf<=qJ8 z_}eVLM2|IfPmELq^}FiTI+0as?7Jg*)*g+k?sPlq>|?K`0IV4P=TqRXuY zv1hMt&rQhWzrI;C$R}9knt5+r*JqvyTlZ(m3zCrku#L$+hZdF0{|nQwNN#OZ{*4U? z==$a+B)Nm1QjBt6E>uofQ}4<08UlcQjqWuVOhl80Pw& zXV%EZBe;~ln4aGj{LqIH5b}W<^cl;}fBjz%S(I#xY5w`n zW3j^-mBF5%&t}7Fy}4JnGDf9*ICNxblLy_ZhKr1AnEKAJxTd&+6dwij%hO-JbL|_; zsE%5X37y8uHO)7Gk+M?$DvwM^k8H`Fc;3euMZ->9fSuxE(*=Hn<})^>Iul6Cc;U{5 zU?uyVWqIi|%SYGjpEJ4t3vhDt=g*%`WWv!1aLU&bcM+xFdfWNcJztSmv9Ajg2oq0j#Z$`XAH zLAqWq4GX?iNp0mY&8|T?(a)>e#13&HVA>(moF2&pQwU<)N7~#k<@J_!BY}?+lluDw z`}kM&Xs`1z8njGTujk{mpyR$y_kNw`rO-gCMb@0<+Rzcz{pqy^C-RsgJ;HD&8Q zCI))?_Ee95PRS_2taHVk5%+8VDH))TV<|GFP}nXXE`?oLSt}APl>{dwG&%BJ5ayauZ3JKaM|0j2n9+K`QRa z`Q0kuOD{%7*@drY_JNQlAhPZz16|g$GFdARGdIXI{NFFlazq2E-D!Zq8{S7-SpLQ! zA*|Lis49b<7`^R`NlU$4nSFUo>ZpTTUm<5!P*K{(dMqMF8kCu~M$U2}iVGWUJ;~TL zKPyR}-M>5xm6}%fVkjzHu<*i3=x#H>u;yYJ{0`{Z$jr_PTUjsd*c&A|shg~ruh7+! zfxTa-UZfbpcEJqzOIVX_o28zg$+*x8q9XRV+<^`zE$WaYb%w^+3N}4L^~04^^Ik=xH(3N5g>2{NC6R0+8+;sR7@w27^>{<>@0gmN(<${Q;cMB(k1L=yerM%GV-h8mPXL{^KK+$aMY^}J2s_WG%A8N z0B60tG2hp~Kz~T^AC-3BZbd>*M73?<%gmSJH z2v^5QKWBU_=_eO1RTOY>H07R6WeYFB5`IPE$_9T`-%r?9p#KBH7)}drhq#Xb{*Mp` zRc4(Zroi+{O*ysU-8OP+4S+z^nc>*Z7tMf+DQ@WtwAGcGH?cF91$TV8J39S8 z_|2&~@iS*j1jjR`KKTD=U$p&0Ehh74KwJaCQaCkkY@o*kkAzJo+ZmI zviZm8-AMA~xyF2vJ;eLK$jD(p>>OOtY$MJOqz3rcs z2M)E&E?TC&D%nzB_&dVnMiQ{{^~XK0N!T~WW6{0#2(NP4<&Ja%S{uaXB>&Yt`sbT2 zAs4w*i{pVB-_9d2E)QTD$Ld_zSdJT_B5&E7*Wqp8E%T+De77JlVi1Ob!}|GXnmKlf z-_@1P)$PG2KKIPu6_M1-aRr!(j)`!-f`Kx* zMH0u|4I)a0T5=szPHzyPFA5RF^LRJP&g0HzToCA9&9z)kxpo7Qk=BsY_b~Fum*p6G z#T%||N!YIK`e?KJ8FDQMN7gctkBu5;ca%!*V{dd>NS7|xSCt;Dt?M4GOSCXn=;?EO zR=!@g-+@%2P*;|dZ2Ii}7W5)QA2d2?E7e~qC$eNVNf@x*#}Z(YJ6ifHoZMhqpy(vu ziwMxj!TfnJHodm*Hg_(9q9U_bc@))JdWjCF>qm;bgCQF!A?#+hG1mQr?p z$#cybKya_M;d)#Tvh{B)M<8ye$vt`e?3JFpP1A&mR|*9R41s3quh*O2Y2TZ7eL#VL z5najO$q_wm4cxDXbbKK@kVUG-5cHvU_mm}x%#bEymoRQSQUKn~NDJ3HiSdUAXW>i?G5peWrs#1pRoF40Qa)n{ z7dA^3Zion4=&a86uVRXkD==s|TpBOydCu!op>wbtg@-R8tR^u-`BS}v^-&oD_s2t) z-hn>p(X45&tvl7zJ zEc8c5Q-}F3Js*zYD_WJFn>WnxC7N3Ah%=bI^3;j4nD`h+PDMboBqkgqBM}yW`;-OI zNm)jAdPmxrR7mG|^>T~v!|3lj34iBbtX5j;n199TSH5w;tuAz-4`y z3fDP2rW#_sDo8jxy~IJ+iZAT^Z z<4^Mn)6e_}-6VY_cXch!GONqoLo1cK{mz2^a0ix&>8wrG!)J3%Jbx`h)TlaKW`uA^ zwrV|T6n8WDlE-q|=Laso1E+KPvflq9GFG|MnM9`A&R7zEfaG_#A>muP*Dc3ICWjsz z&G$Ta{>WscmrEm?`6nEl!v9vjMk*S+*LF;lXsN5Id5Ta6n^=BL=k-+b_7*yjxqFwB z-lpDDKzAiism5${fV$2>#B0TzKRa&UYBX}L)Ir@_@cR<{&7#d!AWSC5da=HZ) z-xT(cY5b-AM*ch-#iX|^YAxgNF4>&YXL9H8x;|gHzK>GQ0ERd?VpU_KDvT#b~;CtI9} z%9YaNw#xfeP$biz(sbeLKAx8UrIq?U}j;4=eKfe5GyDg-H|K~%B&?|GPCc_``N8J;F&Y|roFgEl_ zM3X+8s;hR>kq1wHrTieufvf4uuc!G8%eeT{r%w>UAeM1?R&>QV&dqC5$Mro&-i?sX z8F|mip+ApgR?>OTf0h=NCsT2BpsAs5dG>N4_-LevOUzZW^+&&<-OHpUmIcXL5(&&&6CpAQo&O^Ju>EDEfMrG6@^|Lv|m75}U0^dZV2hy1c#|?kZ(-djG)YAeZJEZYR()D}za9 zOXNk*pk@UG0ab#$YUL|L3YkGv#d#DF5z)8l=@`mYq z0Hbjt^1R^HWL`VxlR>gKJ>JP{_wi_Plxa=4-KFF|*y7H!8IOcoQ+MG~+vB0@83oAa z$tx-SSzmW{%{8W>8Ym~OMxhS>{J0+{pQMP+?SwU>wY{@rZEH)%FhCyh8xnZ9Ex$bH zls2X5amwCa$!|`eX7cerC26b97Sz^rD{+(GcaS+^ud|)Q_7o1cUCRH3RH0)Yq!0N= zJ#^r5$UbBD82O#k$^pZ94(WRHm(VIw;(N(?QTgJ(=E;1^S>#5oh4ejJ%j)HIe-!%`uf`o(HK&yZiBRPnDdRAD3U-_&h(8=9Hh)MK(wSAP zS^3k!7vnLds5e9a_gnGL}E+LL$dR+L^ph!t0g+X?T!Ac08}xkMp$Ey4>B-=1GM^ z%q=pL&P;z&ippO~{-`t@NiT9E^sg)L+aL8U7{b@dM_nrWebWqFx}^4US-X{*pSq8k zh#+wb66aFaA4xM=3jZcV^A8QESe+14FJ2ba6}pMz`jKBC5G@=-)pv!vB!9+h-0jcB zm@VFPuE8v>P{iXNiRN!N+NsB+o4!}E9-(8szlMDs$K1WO5&KPcU7hA-V@pd*adCfl zclXqk2S^`)Di(9!)Si#?^76X&ik64Soi#5}bfBO50uup2P^7_9Cj#*0M}&17qKW+y zXJve)q`Je&xc4fiDvYA=p?t{zr0dw*$IH_DB|vyvnwXyu)U{7$LPH<|2s$@yuHHu#;wi4$D@g(1Jmc^FMS)&cfC1s6>olzYQs*1RJznqvh*RQ^l zO3qiAVNGyp(+j0hQ&8BN^Quw*!oB^!rv&`(`MZjXvSd*E0NNz$l_ez0{a;T$ws5t;MgYpr9ZkLJ6|vg0S$Ia7WK>#$T1ixtM*(%pBT5JERX$YJh`MQBuy# z&cduiM-q0byuY^x`E!ug2X3*i8RD0ao<#K7`b+o{MEBJBYYq1HW^yWv77`my1A;nP zVU!UU2RfQESlJ-z1|oingQ`V<+a79ddU-B1v7n6!l6e9G2s{%0c?4SSma~5YKy4-@ zB!Cf1er+w%IC`;;kGJ`cKV4&O7BIeiE+3q&=0Zru?2_mp(S0l6Im{-=lB-1`-7LR3*b z5D%BnM<4bfE{>Rh;ISJK3GQ78!YlQUSQJPYm~HZ?xUjRdydT#6fR#0uT_|is9C|`- zUfxi;XiA4CYwX29%u^Kf?ikkQao_$%a$K-}R#e}7>FltA#@4(M4tK0W2osRk$GQ>w`8C7_S8 zwqD!#0QNOn{6`s-$)lrc9v+9FbSc-ZEpBd3TX$rY)Y7^m(c9g9{Vv4M6^&S(crVsF zE&BTTW$|AWT?mc?Y$*`ZdE@5I*-u_5`MhlQn)$@3{-?hy%F2`q#vtBsj|%99BM_P} zWaq3 z6VR{`hjjx1lEo)mNQ}4+3XXk_j?PXfm6q|9pIPA$C(0ME@ETEyG z<>lo8k2NlB{u}P4t&NRwZ!~lI*99yZ-%Ni35|ZC*YhcLGg0{iOf210KZ2$H-p?kq` z)z$klx>+S%WWl+CDERqWYHBJtYSs1h6x?Xz<>${cRbmF_=QBDN9)0Ao-(R1&!>$j7 zm39seCTZXqHnoi?6zVVeYQ$&Jj7~JDizV^)Upcb2V*oy&s;a71x&BCNx6>K$=0I8H z^F0X5f6BDJz77i0qFY^Rpd)i?m}wDX{?G?;h*>Jh0Ite_NMV=_OA^0peWC<#XV5Xp zh>N$jEW*p-V&+uvzw0&)eR8dNB(vRF;E{#~@qbr5Rczq_77PI3*I4BzXW=)$@skfBeqA;}F^3K&^1tW>EI8q}GH?nM{ok-ZONV`FiT&Xp7t=#bZXcAz1kM?;I$*9%l>E4t-c3>lMa zJkXGk0Qm_;P&?=#L1AZQZJi~gw!43p5d&IQY5!u7Ty^4!ySlsA)z(6VUV9f8?!4&a zigstFXjv$+s02}jBw@s)q(>kUc6D=8rD8?%QA3AGxQ&#w;%YKRn89HN9syi%HiSnT zDRgCc7~_s(Uw!{SYry|IiNnHhuS$Dx*%^|v>mL9sZtcuE1s|FJh1i^tK9EMBg)0V&<%{) zmoMz}^h>9ITc<9^2a~wLSo&IGq2zoXfl$2mqwE?2x3{ma0jjH6S*=2tF1`c^P0-ov zA>7Z^wdP_!mRY^abO*MyDj8y;=KVwv&IZb~HIMOH6zX>96Tg%??j%@fdV!pWok?^5 zB@`bax@vJ;W7Ky=#<9uCcnEL&lv!0(RiSD8FbUXH7LRTyYtaq2p6ciM3^1Nqg*ATK- z_s^I~fbt7O&0z|kf(}~T_s9|UhaP|DA|fNj9DhEVFM?3kl?*EcVvy|W?sr1!pmG7l z<|a^ZQum^xX%2UG`k=<5%kM#;5hE!DM?F5}=Uadf?>Qzmg4E)_&qD#>Y_Qb=+6M{~ zMlPa%0X{rFF7BqLVyQvX!LRPH{r!CiWPHHPd;=SMl*Ylz%Jb~V30Cy&;9Ce<;{UG8 zXFnrbFa{lDc4mg2urB}wp`s8Z30gM3Ba~1YJ2y8s6BA5t)?k@3^4pKQ@Pzh}khqrd zm1b@j4UyY{49pb5Lw!Le0MZNb{0|NtL$ltOxMj)KqQ=z6iei@Kr zD3m&T0)b%7 literal 0 HcmV?d00001 diff --git a/media/hugenholtz.png b/media/hugenholtz.png new file mode 100644 index 0000000000000000000000000000000000000000..1f557a356c8d7a29e25b976c2eddfeb377eca9bc GIT binary patch literal 12408 zcmch;WmMJA_s4rE2|>CWl-QC^YB^}ZN(%l^*b;s|2{T|&X z_tE{Vi5}7@E4rD zxU32i64LK=#WnCFp@Y;Hhfmf}2WNddV~B~BwWTq$y`i14v6a24wZkb~rw9Z>0g;t_ ztKyP&obDmD>JAIGtE_jW+Ses&o@r{Z=jp>A$&Mn-uFvxliiM@Ju0 zd2BN~A8$0hy}cP3O9Rn}0|Nq#O-xD+^f!J4cXV_V6cm(*9+s7rz4d!x>%Cp_{Gn2} zQ-qFgaB;Cknc%(a)5BfS$6O&{;qb69m1o4fHU7N9!j}Q!`=exJWK_{b7eQWz3b0?= z-ReU_Lz9!$#l*Vyrwdi-V-gd8wK`kd+h2lrDrAaiGvP5Z+a1kUcX;0OSS@{_!1ysR zP`dZKC*Y-^!=9d%l}@9T_P&FOiAl5!m*as7?lGO1z47A0LUL-V`6-M~O$|r-e6d1r zAR1%l@?@^`KqPr)LW0xQVD!bs#l*yf$vC4w-4o;E)A?)-E_cRKc`Q>nO(Ld3GKAfCj*r{juFYmW z;gr_5%Y0fdMsjbt)q%7D?hEp`k(OtiUbQD-x!eU^Io!Cq1bXymc|$gbvm50T<-~(%D1z#^A}$S z^UuM_2_xiwV*!@UWIRn)UY?7Mjet$hN0O>|l!TO2*!|`RbWTJ_h(^qF6w2E1rNhJ3 z%*;$dA%fwVsPt@W2pgih81x);cF7+XA8%}Aq|#6gMgqKqRxv|G>tJgrHX|eB=H_O} z`1WKuQ^YeRK0aSp_c}1z*S)W=uk+zz1k8x9pC63HO54KFkStVTUq2h+C0-b*pwn0i zH$<&MYXMmBb-Dn?bTX$e7@PJL37?XBNm-f2NCLBylhe|6)>}UY>qjsX;HN}ZU8~s= z+(Zt`#k!N_R=6atuTvA*64=<-f=)+BYq5$V#U8OLn8A`9t`}Poq=ITh&(Fx#nZ169 z=nUZDe$lnE@^mm;8X|{_gQG&<^X6bk)-$(gtj%`wow_>Mrx53_=H`bxJ2ado;^N{q zHdVQ~x$*I{XY0M>A|79qm0>9a1zRnDH^eXGiNcvK)_u)qg3;>q^4y!quBfP(o10@{ zVS#|n$8hTA>S{~gM0>KoukKoWg_ei1IS|}9UiC*{H6V-yHR%gY18;#s|;UzfhSl3&59Ut>XomX53 z=I4{Jk$t2i$+TOY%H0~m!cc=HYmA0soQ@akO(&^DMLRDNQd2d7U~cDM?J@{?{9zLm z1b(v6-QCTs+2C=t7rm$}MHp87Q{>*_bfsNZRu(Mebn{~h>~p4HaBy&CrL}G%_??&s&CYAe}V^*EEFALuU?6$tw*VnhUwt9Ka5{ImCGBY!a-fhJKb^HY+R=+o} z7COek7L~mPbR;n`u~MtK#(K5G`}y&<#qp5A`a=?1w*Bt7=+hs=)eg_tn3z|j0zc|q zW{W>p>OB6v27R2atwkj!-fk!An%(u4aC$xbIsV;v`n&Px@NkIxV^wu^@u$Lw4P}0Q ze&C;AN9O0}FUiCMgMj6}RK~`}z{Pe%mfGEUIXS1NrfOU-cS0B$=>9!}Lqjk&=NnSs z$e{U~UuYyhdMN|Kmr@-Ha*M&tnT`ZV4mdSB4fBd`KOBc*{>76B}EK|M83@sYX4PcjvXC#rAOghZHVg>et^5 zmKquw#x1_&jJ&*!;4lIH{dFR%8#wvM$Vj}}4^Q2%44qOA4i3`=AB@$wfY37J=Y<~{ z%}EAxIF0}@7IZwgf*vTFkCy{)0Ge;M(CKR7=79&s-0$u08{!&2XC?_G1bQO{Am( zH1fd&;9+Cus$upg0k=v{POjrXLq%m`Vp6Nr8N;UKzOUvglA($Q%JrI+Rk2(d?DK}I zDmEUTIh|zKg5C6KOiWCAdU|li0Y$;4ktYyzD$^+~&8w@s0+I(|VrDi!fh-g6+#LVj z-rk02X={V-QC|LgVCKPDHb38Hd1?kRsOID4#rG*LF0QSu4B^w(EOU^9aCHDxFp<{+WGlYSkx7hE#a^BzCs`I$J z_y&jAp$TqBzX4K!-qP%Ea64lI>_8C;i#$xksQHP6BRMk83@Zh0ej(CyHq{9px-a2+I&y^>u zR6%oS-dfUh>Z3+S^V!0BKL!-h0g>JwN!*-uVM4rh?F}>@8VU@us{39g@WWtJASG?6 z{?c0AuE5hhjLiKMe3NyXED-i1$=zmno3$oc_GHbUb9tb}t&+dV`DWaw^<* zOXl^g%?Z~VxIWLm)P{_WomGbFdA~7Am?oHL+bP@WRaMVk-o)dH-@t%_6B7sC+L}Z}{xnS}U{U_b_7HDs3WKmX zKY38b$e5DxaMtnu=Ff>BlTMi7fQN_88O3*4O|1F=QIcz@G9Dt}+Wg!n5vJkneEI@MawxDV|C z1%AE?291b<3YJx8FHb?7H;Tjcod(gvL*41HT~bn(r+Z$0dxn{1_(E;9BV&aQf=)-M zPTTkWX-8$+Y+{*YA!=b#6kh$3&`!~*>5qdCJdX}N;phG@srV6yCu zVPzC6oeZx`=jZi?uug`%Am(!vw1phsTt=ce?j+p=4rY4=PxmH_a^Kn5#pKJsd?}yy zJ=44Y@m|Zfkd{WV|KVNNLD!`yi9t_VzVw7P_(B7@LXCi&=p>NXOj^UMszUSLyfSMJV*Kyh83TAZls? zyraz5o1-IH8bNqIjl6%advm0&8t&%68oXf9h>AX;P9Y+G23^#EE}&!LPCS+v?&e_O z;b=*P{TDWWRP5z{R10db)O0uuB=?$V7W97)zV)lXCs64LA10#vQ*7*L3L~H7bLC)U zv^T^mj+rOFl9e}I%%3JZ-ew{HVX~3+=Cm?qsT4mgz1pdKT$n0O0t{2D@DsYbaFbVA z4E}tVm{yZd4AwrEgoNZfgL@|-uQK~Wq&MI_5|4i&SD5vO-G0xbBYmsnxVVF(Widi- zT*D*P#-ZcsRB`{N%*lz3Evhp@!JaSnJRwS18;8r0a_-95g^x^hj$;%hn=DUWWc@gNB=Mt0iA1ac`*>zhV*$oMH47KVzdNaFt8KW|c0OiCJ@ z3GB}+l%Nnx~>&(TA;3QCHZuG9AXrK{t_MuUD~5f1n&lm19(PQ7KK)8ATh6lf&A;9g<2#OfV(@80dL>TbiPacqwkH(0)8WPJU4?+3Ry zGH9l66(Qp3a4pj4&fDTB(e8FIV`WHPImX2y{;MKylo!mnw|~&)692Ja-Q69Zm)0Xe zv)#||7d}xK508xx)B#A#K(ffSg47N#bqoz>kB05&v|4|c6AzC>reDl4!ZdO+~m!4p~UN+xpE@n@1eb8sY&b- zk1;5}<-b8FDf#Rq4Lgxk!L-KQuJo>TCyA2(%rsZhVCr9L-kX%z&KI4su`GB9pX%;z zvVjQ*Ao?R!1WHqtqnVMd&ed-9FQmL5aTgZ8)XC(!5%a$LN}nMT?<`6Ial!RVoFLDW z@7UN0wB2NL=V8%NDP6igOcKDQmdO-%C8gAxMK)yVI<(38xRKa0x}I(jdg?w!#S)6NS=v4&LcV4+>?X@ClX_ z&sI8fOGEf3MuCB}v>edif0U?OS8>>n_M+;CB!c?I1wq%wW_?9y6#6yP92TsN;XqX4 zXOP$DVN%Z@3TyTg7&f^%UPM#ll6#jqYHP(I1hlKu($4?>6r|P(B0Hp~Cq8$cdfiUJ z8vJq)eUSG%RGTRT+=A8e@~R`1|JUYKI8m_Mt(uK4mov-MRGsjLbjAugI|4{k>*j%K z`2i)4#BiA`ADs~I9K$BVV&lO5>E?y;*r5`0S4AqZ)#}_az4s5Gbmmy!zI_8T;A*=~Fiveuk{6t_HrtaLP4?R!nQZ1fSy63$75`fvvan#5N~_`@r`}7zXQQX3m6kh` zeF$D@YikSgb`lYikp%sH4bJTQUmz|-KuAfu%}?PV<`Qdn%aa$T(!=p8f1&*GV{}Ri z16D8z2?;D592y#0vqL}7ou>!v-SO_(HVE7c3Qp`G^jtZ7)ek06;9F@T9v$00@WHcYd2?XT5{&QEXB0`Vc-3{U|JR;I}?i}D|t0vf`f<;Sz3xp|A1+IjX+&I@6_Zq8f3JVcE$JX%bIFwc~4uAY-P&nG?SUl8X4mFZIw@3!@74|H!M`347 zLJjW~89ZcukxGONolNh_blWmbCQpMztFQ1K_M-T3S-Qi~_Xtu8O7+cHaLOjTfxzB; ze;To%;CpE7`;g$b(*@r{lxGT6o5$+v{Nr)2q5rI(GcXR&Y1fI2GJpoEmPW<+9{)B@ z)R({J!G1q(Pg@82NJT~m!l_KE0m;t({=I9an8VL#WB*fJT+uuf*2X4_=aVk*Cr;15 zU8AV(H*FbzHzQqcT7`>DI#y|QqwJQNwb%1f9` z#Dn>9l(6kKgW;tQUs;)oC`zIdI_N3rH#-&ee78TcUYVIg;FUwZrhHy?jkqkbPP(() z9u{aZ(1&n+IC3ztxS)S!TK45!H*FE0)#j^xQ;uCD8_!y~iG1^I8phG)?8Mi(P5!i!{U#e!68GATkwHzYgxOP&JV9e6*E18q-?a%b@g(q!}CnV~GHl&M&0~i=t zS4j&DQ5@HZ;ElOLEuePfasjX1T4J93i3T_Y4E^Qv%UR!SneO_+lm^e?jX=y4G4y)S zl&t3)9Eb*ykq>g0!K5U-TXMS)CIaF7f4L{slgArKOVz%8l;fpP9-&v}sv!}_#1 zZZAbdN=qTU3+uYv1yMTl$PzIP{U`DXiSkD}{vrw9Y{^?P^6 z#v4>$U*@j$nTHB?XXorp>2vZD3%1o8jBHIXsLTfs5VM$ABpeREB7%oJJ*CjcYW`B# z!&8PHOTUg;jbCmjP8VozJ3ft+OH@+MX)(6a#su&EH;v9GgZ%b~i`)-)w1Mc}uKTBv zAt*-B6084BKy5-V0fOUp;1J^f|mQQ=|b(>1u; zzkU)6PfCg;YhQYh-6K(kTJD@10wGgK2Yt9=m#VE_{`}bKH4AI@u2hvaha7}mql=?Y zk94d9UEh>t!}NRL=NI(BG7Q{`wy1uEx=6-2K`YktCWvavT&nEiO0`)z@ z0O-kzQs>b6Tk&E zwSQ$L_B(!}aycZ>dS;(VwQV zSV8^#S?Z0d73XZ2;)f#Oj!rR2-@{NJu78ytmN7|6t#3xM8~De>gcE~ENwq|YQ-nL4 zY$mllfGv>Ue(f+c3IpOJn{3xAf-R{?LK{gy5_wsba z%+@6MIE{f40FKJ|&aBwjSS7kRnfV&y(Jr5{)W7~8QhuPK&flNbBBIYUcwIBV%~ubc*T{=r4c2M$i~FH-p{0P|m@;_DYsK)1YLnERvqTXJgcX{U*?af*t~<_owl z200sA^z^8D>gp*oVnwjP>VL&0P?9pJ42s-g;lz>_;o@!Jdq9FiG}u?>`kJFpT5=7o zt<~4_abB6M!V;(Ff>nu?0i{&?-H1`m$d73&g~Sy)0ZK*9Oxb}PsoZ|W#XHv+AwX71 ztX6QCzhtd-&@suIGQ`P|jsCM;=bmkq3I$gvPr zkPt|?2^>F9vF44Ybfs|bt$#dUqGwki5Pj&y^O(h0)}|>B7wc^7>K*1Y^5_ z!)T7{k>6w_G&puAB%IvFh6C>lRg-`IufViFog9rRXe%B{R9i!kHUHykzf2aJxr9PR ztgG($5yNeB|I?ql?jBfL#V2PSPRO0P&+y1({>zi4x6qvtV<$8FCm~QE`CI49Q*Hiv zeo>rmW>6%Xh%0l*kmiH}-7{C8cYu{{H!9>~c-RQGy@+W-9x!v_3iC zk+6_CIL>B26A{v?1g>!24c}ePw-K_lgDkCnnER{m_6R0^5H>AW$>)WS2n!2z3^|GN z?I7c1tc7N~+Iw6CzmN(-^J{D@7)z0XfB6!@5~@K25Buk@nNgY&$h%niy~z;K4aQ0O zE<-NZ*t*(W`P@`;p`4=RuU?@r48}CEA>l zwKz`Cvx=*NJZ7^Crp@KscO>R9R5DbE`)!GO*x}ePB_#|Lx;OukaR5mbyfbqC3p~7O zy)HaN&m^cqdp1+><2;m%-&Y~ML~#S71(ZxUGer8bB^G&;NH8&F-YXYM+#eBwjN}(I zA%1=DR`7afI5j=>^4O0rYU%lhCAR!?r&&=Ml zW|M%_m(QEbpn5zWnSxrPe(6H7Q0l`u{XI5cSSeV7SVy~c<8f!A}5~Zf6cZMqArx_U$3CyLZ&oMGp=J<}r zt6U(3&$byW=`SK$)gC|lnd!Z8W9e}fJ^o0A0}@p<1NNuK&x)2%TlSC;9H`s5_=^A7 zV*T0qTQQ&iHF}_iOZZ#? zGi|6xJRrFVnb`W2VThQgs|U6>aDR#ZUuM0cr1OdnSu=|;P4*4De*~#tq+&dB>V@6I z1LwOipZxs)RYw>|A}R=n*C#r%$X?IwZhp;rFm3IVg^}aSlq$Z9@+*4!Fc8JegC#bT7*19= zb?t>ZE)ss<<<_q?TjiiAZoQ`VTvQjKAdEvsN!7|IX!1%(h|MNz+>=rT)LU2dpf5Bv zXXhr1rM*Pt<+tSH?6eouYxAZf$oitGF;LDKdI-+(vUou8g>O$HnJW6h1!=aWCTzX5 za-sn31?ogIwLg(k>JY7pwtEFx$Ofg#;V_5~v1y~C#H^F73C%d~{8!@W-4R1&{M+5x z9ZZdTa;1}a&?JJW_`dAwU>tyj#kR5<99C|k5wj%d?F$8kY4zI#)}Uf~Dr!b-=vdF? z?w1lH3uZsPNt>soax~Tfr!y)W4?a*pNM!1vwLc?VNrY~8M%sKvx zpq>Pe&#D%FsUP1<7@IxnczE`}Poua~!N35jQf=*+xcR-q|6=irV7Kduw&wBpg`$u3 zm{~DcOxhus)C|_3;2efprY$EOa)$7Kg`H$hfjZ|M)Q87Xw7Lq7fS#UVm-FIcPzl%d z3~)Mj_`;cu`>%GB4F^PYD_9{cK4D`^w$A$5?Vva4&y#x?SvYhIveX%wEdko>j7`g? z`&<1h301Mh#qXPi4y^amu~ak+o{X@5{P=Cp6oQ2e!r4&#`D(wv)epWvd(zS-vi<&^ zn;K&izhq@?YL?qToIvuZg-E=giamoG>TvFF zJ3E3TnfjY-&n|nD*dZGmZ02|!e^HiO&DC+U-9cl+Gre>NQ*`qFT9Zmf`zH@jsOL7< zGySuhNx*|D5vcd%!F))0rG>+31R{D~j?WvK98KQQ)S${v z5ib%D2|arrEtf`8cOz+cA(36&pQ7p&7ZVW=4(dUES8vYN%ltSxR+mA-4*i*7JU3S+ zhp(obgRP6)E@nx?8ZEPSjOOnC`n4%kuL}aomq!)^gfMU3Affez6AzBccUXwJuxV*W zC(&{GFn8nc3CAW95CHpL)0h>E#?oSvN4j3>8NtWJ>rYS^K@Cnr0i_dv5X3BaDr<#DtLEb z2?WLsSvOdlKr}l$-q(C#0)f^_ho`%p9r$;J{PQvIiz+l?f{`KplM^iB)beLR3$x)A zF8!e)>ls^dIZ%W)86^OhN&Y><@YzaxfWcWfw6(LtLJ0_~7Jbsg!#ncsWq5t)6*E)% zd8x^jcbBoh-(p8zP3z(2ftCw6i~D;ybxC-*`G-4sDom6B-(SuV|KVJ0c6k$BKAtP* zGof=ZsPmfED#Ah@&z?@(!@qAbCyN|4zC?=CS(wI^!}N0K?6PgW}vB=o+um{@47 zy2secPMEdnS^8BeL`Nf`<@+_5F@UJ4H$#{{me%=km)!LhpOWI2SHZ}imE3p4lfjhS zq$xkk_)$sd{+aW9<97%8R_;zv|g-}6?h{mD$2&D^tC%HD+@Z7;(0m7 zt2)K1-Lkc@k;8cVUQW)_!vkE%Zf8X?Tf6LSxIDMq!@+E z!=LIlA+BoGSQ{k*#+BvAV@72rJmO+e&BZ3$O>q0KY6q^*Rl0TC6pH?jN>WmadSU?A zx}&3`ICLJruq>d7YTlRe7uB9&`q2ILsDA${{H@F8h>q3(cZM8C_q!n z6B9oh85yao6Z({Xu5{X)=WlTfM%%UT(HGG2Q@Is(=mvkK65u=k19$gjB$R&vpaehqdER&-tu~%ID9&z_$QS zQY+U0SJkfW?(QxwX&=|q@Td_^C&^9&AM-J z@DKnJ@51KAq@HUKPVIbZJ$QZ)mV*a(2onty`2nvJuw_r+GQB-PznFFJVp zFhQ%!c}{!#W4fR-f#FL$CcqCM8Xg^1cJ6pwUSES5vs6=4Q&1RhJ?$7FkW*0L;o_2) zlQRq}*KTd7G23s+V~kJMh2|6US{vD_Zf1K4gfW0_5 zIio(iHVPG)(RiWLFa$ER@hUT55^iQ(7xUv^xKPz zn8aF8c>?62)pS8P7ztn@nty=Z#H`cS1n?|KT6#LK#e7$OkiS3RT^)|*KT=@SS^nk` z6#T8`#P{(-)Mt8W@KSmCQ6Ct%9|pF7L;^V0nFG zi{Hx2k4KX^ODnl1n3vxBrSe+aRmS}-iqrh6XKih*NAcOGP9Smu1|U@A{B~QwlPoMO zcq|vU*4MM!#{i$FuAu=$;T4-G~_S&HI3_i<6>vib`v8TR8o_c27ZI5F@yrNV7LbRl>gbFU#LBz|5EFQF z;y4CCY%nn=!K@@OYXT%KUQ?U`FSPJO>dyMV=X}8=v)$#~mpvgflbncX5x`YzYipDe zfj|d2`-g{zp`%Ibr>CdK$E0LrI^ep`5{Q%#7uU?MU%!@@|518?`U+#`su-1sse)K?8sR6c!Q!$e;bm62Gvh zP;(RqvL(O$j{LvP!20<32q?sSPGAVH<>D1MK*FklT}&Ev-`N|$(E$Wr$ouJ^q5|Ps z^}HoDv^ZPq2IwO+3@C0P0FBc)@L9C}jPb786m;C}q!ty?eci+g_OE4%mg$cm1t94v zM?Zk7+S}VpTQ!=wg4mr-SA;b+f4{_MVe1E!GmV4T4M z((QW~2V+>)zGT8~GhlU<emi(E1A`5qj4*rx0yl@hA{mLv z$vc6!k^g%#0j;^z;wZPsVQ2xQ77(;I7Z(D6%mJuc2ur$vQr92^|Fq))SqT$!?_p@2k^dA;G3%+?PO$rP@y%5NfD+)n@Pxqo>l+$$stu%+m1ER&3sTTSoc;IE%{Y-Qzs^_b15F3Rec>aRTLkF5_i_RL z{uT>0`DJDDOnA=^mp{|a0J`b*c>Nhd6>a)lI>-V5Js?8N^z<-Fpu_n1HHZoXPtK1!+$((GRWpVI~j@>ISY#OY*de{XNF+;ePfZ2NB=xV8aaIwj50 zF8iOOD~djH0W?}F6i;1K(|W1tV?0%KbTqHklIe5-nhyvVhGJ>q08sl66<=Cj29C{$ zKQWfXz6q27$gb8UH`pNi>dAmYI|6(nc**!U3me-R;JP6HyjDm^quy-$;Gjj9!ReEY z%^AAr!`k-tEMS^}=sn*2wx)g;h7sC#eJ~pu9=?49j$aGloPgn`p`igZtc#{4&6o++ z4{snI@)<(v*NLi+Z`;*<*QjTp0RPJ7`5$8cA7}sn;bZU_hAL!xl;2M%AN=0|h^&-? KWQDk%@Baf40T$~3 literal 0 HcmV?d00001 diff --git a/media/nh3-vacf-bend.png b/media/nh3-vacf-bend.png new file mode 100644 index 0000000000000000000000000000000000000000..46e48659b28f44e52487e6adc2e0348820752fdf GIT binary patch literal 9574 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 literal 0 HcmV?d00001 diff --git a/media/nh3-vacf-bond.png b/media/nh3-vacf-bond.png new file mode 100644 index 0000000000000000000000000000000000000000..0208726976916f16fd944e56734c4a9fd11f6fcb GIT binary patch literal 30374 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ʶX<7y5Y!f8$`8A8 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 Fe*iY0iL?L! literal 0 HcmV?d00001 diff --git a/media/opa-ecd.png b/media/opa-ecd.png new file mode 100644 index 0000000000000000000000000000000000000000..fd2839d1627b8a9d83d93af14b10142dfdd9cdf4 GIT binary patch literal 26243 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 literal 0 HcmV?d00001 diff --git a/media/order3.png b/media/order3.png new file mode 100644 index 0000000000000000000000000000000000000000..f8b1ac63eecda2d32b1896a30513c2845b6ab146 GIT binary patch literal 18195 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%0Ah~pO#hQ6(r6*1Cra0S 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

PH(8Azfdo8C#cnQ*^%S)hh&`& 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 F{twLW8QlN? literal 0 HcmV?d00001 diff --git a/mints/h2o-6-31g-mints.npz b/mints/h2o-6-31g-mints.npz new file mode 100644 index 0000000000000000000000000000000000000000..54931c7f6b50a58a5bb604fa4ba86fa4f8c955cc GIT binary patch literal 18292 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

Wueoz)bxHOGN*SG1# z^kPuLo67(CFPST>ced@dCeR_Qjr(>A*X`Mo|M=ppKRBQXId zJ$;R~DHhCDzxc*_-*@H=<^KzaV3$yK-wUm!Y16+BUOBNB`Q5f{IHZjBiPwAJ%&fcn zxO;&+;rhh@Q9i(iQ`mZ{jyG-Kt_#0`GAXO#{rfl61+XtpuJzdw*5{JACbX%*H@iI!a>zYj1EXe%dN*U2-b$|sY zt*jrWBkdQgMI6Vx|Dij<$H3+|Q{-wL*~KcIRAmmX5C|0>83S!ANT15UogXBKv_2fJ zGNqsL90nb4hxiyh>5q=Sw@!+++{4<!@4c zVwfY$`x|hGt=7T7HfBlfLdvVC4fW=P7PVd8pe+U63DpGS68C>8*U0Zyi|#-163`7R z5et_HG&6!HkIm|%V6f*VQozBLVapJ&Sd27HY7~flQ003?dV_Uxq|}DWrHZ4-@5r% zhdws^zjOBO*n9!cO^2;<*o9N+ttt#4-pi+YvIg6uSBhQ?7p$*mME9Q}>rwuZ-s`eTb$HWuoyk1b;zFwSrglK91I4 zQ+2vgFSm%mseK+99*QI1)pMg(S2&vNvi%)OoFnt&_E zhCc|-?gw+n7y#CoBKP?!)okD~ZdjaL|A(?X9;-g0Ea~<%zWj14C*@y2X)&wKO0DwS z9{%Zo=FaQm>R)dr;Wx1_tagtnZP_6UpeozZwpcgkFZNeD$!w!={ZHN@BgjDlOruB> zt+PVj{W11u8&}c}DR1rTV-{Pt$xf?3r7qHJQxaY}zE~;!w<<)q+YG2ZwwryiO_(we zn6km`o*F%)YTNSXyB!hXloIiB;a>d^JNads+6PEuN9EZe$0Ek%GUStMM^&w=3tKxM zR|)STqu?(du#@otWmCG|P=`rOZ5j`?)2`Q{Gn5YMQUyFwvgaB7HZvnPkclh16!l%i z+UiZY-Noa%2f#b5>az6V_DR`_tpWriyKE z&Ke#udNn6~L<})QDO6CExF%;&U62pJFaGk3{=obmFPafqCHWnEED-@Q4-b>=BSaoU zg9d`V{yI%n=BkD~Ovac!_R->kq@|z7rP6CIN?jVC2U8Oye=BJF*n#*=xG=1I2od$O zT$R~z&HcsZwW5yk+j8XWCZ&+}Ew7f14!5Ia5aD^1;PyqagT%okHapCqsWpv;4Q0Eg zG5TW8{?DyQlq!2;=>Q%%zBMK}!4U?b?f`>mtdd_^_{{9re6sW|?B1c_mf*Hen^qzQ zB5D;GM(*AzF%C<{*r{VNw<29(`c@`sY@b-~6=BCYd*^Nj>phxo&G?yUROF5Op>ifH zkHFxxcf0Xj%+{@a4)5la@3X%4kY_h_sTgbyjfSrbw5s|x?aGw0!FNpHdt&y_QlAXRp*y~D1pW~rJ)8YYf)s_$67G2nudNIbvhW$0;t9dr~vN^C228{GK& zo9-tdXQdXz>9^)t)UE9f)2L>?q5d69`lIqg>{GvJP)}H!wttIXxgwjs64~hS&)Z*r zE`wEkO6;3ZuV{wS8VU0cYl-W@TWxQ+P{$9+hl(7P!ZXbgzEMEaq4!+_$%n6X*i+ZT zPsc9JCAe;~CU}a^x!R4@1-@vto3-5g7xGOb>_2Cb5qwQ$UO?wlyNptbPhF`L&KSQA{wB}EPrSS8inP?qA`ZP7y zlk|V`g4pNKE|%%YdOHld2EL&?LlW#q5$k{HYO(kdA{Tk*%xheACkp1Ko=>anGGD#o z8TvOJeVk3aB^+8RRu(V$A^EK^wI;zfNr#r57`jBa4C~kZhO!s{!U>+YQh6mtQwJ|Q zL>lOUxqWGeQS=pef$fAjtMi|Wd?3^JTs*u8mA27RC;MiRFX)w{GC0W%&IL>a9Djq- zq5t190dr4}$+tXN+$QXI$Kjr(@AS&}4bq6$roBA8^$#k#8oFu>YrnvZhm@z29klPu zESE3WxKex^EvS~A6De~Uiy*sZ&5;2?UVH(ZUqKu47Mjaio_XqW|Lvp3__V!UTkj3c zdxE99BX3@nF%mu$mh5h)>d7pNk7nk-M zMxPb@9VuTUGwu4}2Y?_-$Wti>G&x>^j3YT9dT4`j`ffZro@Is zEN#aq3?|X^8L!ZL*+>8jm=$+mUykHI>rbxidwO&q>wdW1MqJ>YZzb^k3OuD9K>s3hFai>f#TV{jsdfk>(f1On05*a4*Tw*d-R! z{8AFBrUP~k##u9exN`4ne(@gh-MPyjBLLYUe|UBytla6EM|7;&p|go|CAOt!{NZHz zlOc9O@eBD=R-p{t`OP4eZD~$bxH-G=rKsLpU?as?{#3+3@KqxT)Q-!r@TS# zcmI+}B~aD+^LsRSY>9|QEp{BKbfTykQ5%;|V{VkLE(@Ut8YbQ%IfT(FRI{3lW=RjW zYY_4Z63Ve=ZQzsXs5+0A-^gzFYd;}cZ`{6FKwt@mudY<}1V5B%KiTz{{dv~V4RfCK z7%lRo^!-2GRlPOhf4Zx(!~a)zr4Ri7bXN}hp$W6RLLpPtx_xPFDh!jdlPUCSi>F)W zbrM@n3|0)|8rP0eg8Qx^m5jvwH!4ZHJrNR{yO$77)n;s-EV&0^`RKxv_kNoq;s1t8 zaS##dawxy9OXXisdzJGSTrO?hDi+Y(I3+n=Ef*%nvctz;RB;izsP?4$u@5q7EVm3y zGS>Pk+_0j}qzs`D(YOH~5n4>+sU&QNJjf{1gxZ{4{;UaV@)Dlk6si&Yx|%79y|fjW zfsVw*R+DggwU1q~d3K<)fk?YyQBCa=kdm*0op*3E(j|>qa&2L>RX55)MCC$qQx6GQI^H-s|&atiHW=;w7T-$(di!f z5E=ZK6mgEX;&pfJ_pE}>0e;`Q9t8U~2EH|v%5{SLn!%ofjBX56m+4!c9MwMqW9=$` zZGS*DbUERxP zPq;{-f2!zz2CUs5P5%>LA%;?aPG5GQd7u5DyX?A_=xoO56(4}cHW zwK+EP#NzGh#EPb@3|&Q@=}VPVD|n@iDb%D+o$_41^2pqhWubcM`eG80vUY3azcqPs zwmNr?n;wmjemB+$G6{9WXF&^7#&z1Q@>&3%E+>Mu8f@I@knV{~u0GBilSA3D=(L;A z?`@+Ltek^}E$aB~S3w`mG#8x=1Xhxxc<;XYZCvFh z-0{MkV8F-FO7)|PUeuQ^;J^>90x|WVL0JbQS&vDnN7mqJ>DGH=9H+z=i6;Svo*64t zFSp#+cn*Xk)Ecqn2~GK4t~9Uk&}H`>#Mo^bxP4yYscZ@Ur7iJBi|~uTsp>+^#HIrz z&K6h-qvhc>f&>r5_bC+I*AA;5h3200t(a)J4<@&}LEi*1?UHRi_X+C7kjxn}Y~KYs z-I%Cta~qS7;MwfD^_G?R{nB-!$|E+pOLgu0g*@Mx080SlDBQXn>HjAzTmh(U+do$N z?dSjLMu!$9-+X0e&Dn2e0Adr%Kjf2F$2+5xDxUVqG}tlo_QyNZ?)AE8u1z|QA?M^@ z5`eN?rMKRzp>hOX<_(KRTRry$V-qwKI8A;+@mU+P%J}*C@B1019^2)8EZOb%$QpXj z?uy%8U@L4Z8!>JBtG|*K@-DK{=w0q@R|Rzk;Q1r0SQ*>vgj2NE^k2;IYV?0zv8`R{ z_D&$&cNQ)=&YU+nc1nQywoLN_+2RgHrbcq^+jJoL>B@L6EwlLH(F}7}%odS#=;-Ft zsJ;snTGryLY5Cw+(U_QcEk1Q7)q#ZH;>>3D(xz{i`96HUenB(OO!JNXvoyP$+Q!X8 z&f*nl33dZn60}EpL7}@oQO+6gCWBqzZc7>LvO2w=TNeRec&zbeV%}c1dL1a<^i0XP zctCS-^5oNW-_0L4zBxNenE7^j{VR)gfs3iN|AryUT`=V+yt@ULBCxpzX{R|JZsC}`x)&)c9<)_9 zh=X%GT`5&>iuZXV__i!~!Fr^JiX)$YgSRSzT*~QL9!~qWuMN2ryc-q)>#Ahhkf_^iL>m~uzWrqiO?NcoU9@#-G^gW<6x(Mj6!Ur~-T zRfb+LdA`)M8-1|%c3Y$QK9ialva&kI=mN3n76XrM_1{CwM^(aSf2l3zZ|`>WU;=M! z*Zynsxh4>RZLDb5dpR4x{V@zcSf#Gv%HSu=^$@znAVrgyKn)IoQ{7 z?lIs(5^VjsV?5P?j_x3f<~Lcc|IQ^bgAIawy|Cv|UoIP?Bh9%4dlZ#6>oZ7neQ0PK zj-ngim)Z5vHW?pETnHmg3y}w~b5`O7D}$@m+1y?*F;DNdJO=ue)h_c z=#1|Y#QL)8+>%zS*SuKAY>`CoqK`i0P38}s4cOu`+4Q+pDUjJPd{pr+8AjmNw_YTl zfk>RT^@R}O%IP0WE5ekZwcCc}$~lA6+A6%KRed__ji$BRl{39o14RuLlNT)9{}Q}d z>uSNN)jK6~5XEMGy6L?Z3mzKv|;YHP8J? z@l%m#J^$2YwkWBu5@I&O#27Y>jzt%*x!+t1{Z>&@$+>;w0rq~t)xAUbCUO+~xcF++ zCv5y_Ph1f+HZ9Lit8bre+7hQ@H?`1n4X3&6#-HC4>dIT03K%q*v)B=LZ2I&Rz`(1` z4zg)H6PaAkZ^5GLyR+};)2wo4eIswPxa1j)_i;~1_w%;X(N)i{5q*8#LQEQ1@?llt zo_ftHnM9*k<8A$gJ#f0Qev{`M7GqF+huYAeJT-ajeeALMF03Ux6!?-M!%JpQjFW(1 zv$~iB{Q328+4taQWr&mbuHqo zJ_FkygX%e#w#S5{e!(lHwDS}FMh^)a2mDb~sc=Bu;zCfLHz|{BpYlU}jJsfX5DV6g zJIbj;4t&VyEwTV9q^*5yG5Dmi(vYno9@MC)z$Q@lE`6W z5PCDYiJBOUlk^^kp3UZNB4RTFb}id6fsnh~OAG26;zBJ@o7@e*z+il>)Z+Dr@}_iC zoZwa`)`f7`x;pRZE|9}pp;iGSAz|+ZvAVHZhMLa;0xAVgDD-Y5vVjM3b$|F&3I4P* zDC?+hk`A7-zCxYjQ?^>u+l7EGX>9v|To98pO&PSvqFoKcP!NW2QP(+v!{I}^y|ipe zW;~t(7$T!Zudyd_tp_FTReV9I+j#ov9${DV?r&}CBJ&G$Tp=k;8R;+ zWKR&F$6$IKo~E(H{@|PLvC=~@pm!nFuGU-h_YC~>19ur3R{1%=U0lRa_4Eke(ai95 zOQ=f~nEO)UDEt5wS@ZGO3=4}UQqfG5az7dD8h{|x!}2to{09;mk8bNrl#^X$5K+7H z+u?o*ev;S2mZg3LYNtu1FyRYGEtt7r+I|W<9|AW%OfkGXaNHFyq1YBX)QAvWCFK4} zp}yqFTjL3GMk*C_2ciExk4~hiTCO}f+w!-4^}&_-v_Ov}^x40C^_Vh*;=G3@FB zljC0ZKNjLDsJFp;eX9*O>;mcUVhyQ{ZWF?4+ko1Kdh%;XLWbfzF5$pybSK1MSmG@c z*E{~UE!>}@Q~7TIf7Y(H5o->3Uq<6vJ6->Q_8+RRIJ(~h4YVN+6ON^KdM;5e z=HC;=Ue$~JU37jUilh=L`=l>#WxJxd^k93Ry=XBvIYrwN?ZMXh{*AKUC>bM0*kGoIb{8*ojIq5Zh zb4rt+5qym2yieYpA!rOXkAV_BoVwvB46)(kY*Pg(k3DR`rV+8|qCI7UX9`feR}iGG zHu60wHtR$M=(4r-Jh(@YN%srS@ZH%b`_8EM4R_2Tr6R8ych&IR==iB+E{5L}h1(@k z^`xza1_mDf)&vlQaci)EsF0>LkY^aW&E$AD=yk8Yz^mOf5l@;4xX~|8(sqhI$;dpO9s@&sLT$V^x*<%fuah9dIYg0q`X@Yf zKEGS#>dra%#=a1QmwcwvCE{8(rjJL4I-nP~Pl)hwmf3Evv9U7HM`Q{TdZmCq@* z!C`QKy@Ad5!zxO);o-y?yO@R7lD!%aHTjmgUumGr<3(q4Nm3h=n;yLHjfbojg{Snd zPwpu6{38mCga7=s(G?{TMmT&08_x50ZpJ%Y5iJ~;d;#sA&IntppdQ3LZN~mUZ$_Qz zvhWe!y%8rYF z6T?cY43gyjto}*Uj8NZYl}tM_7=TV!c^foDaMvh z$QBT2L&QTJH<HFrEl2n;2=*((2qO5r+t)kl(KGnB zJcIZjOt9^RJF_RhrZ>X@Ljyw6@;MzEX)hVt<;3RbJAKzis3 z0GnfwKXwUpZdAEm)YBDyhuHa-qlVHOMyCLch@a0~(w^QlROtQfA{O5!Cv2)%^yY&t zhf@n;r6s0NM%8FhE|!mp8QLG+nK{z;nax5kyJMn#ReTCLWu3x|EUwA;=72SaTRnIKl`w~lrlj3t6RR}<0EdoBE@TJG1>DZ>OOa; zYm4FC^oG*R`JJ@jbTDWo6|i@`a>q+^_biTtJ(RWL#HkAtxFAs-_g_#lW7ORYNh-+a z4rc^}_-v7826IaF=?!J*BK%+x9Qe-72gpA3}qy5p7p%UlnV7lrey-|D`BU%B=op5cly129m#v9?CpNZw5Bto7G@r3_~9;Hzhu} zVu67SWn$|otlHImm`s#jP|=gf*o_rxOwQ+g>UTKhBRycdi4zn{&IU=^8pd%75BrH$Hvqu#`6;n^Fx=u zH(LWKGX=^2;P$(=hk4;s+IZlq}6-X9_Px}9&TXt z8U&9?jCK>#_P_cR>3KqEbwhaZyjv-(wT;?nal~=HuYQ!(`~@N71qHV#yF|0F0Fa-I zS$z_aecd-&5R7^Kek01h^Op+hQaIb?!k>%wEGoECd9ylJZoQv*H;SU%cSxcYh}xHX z-5qTwRfJ;#lFRq)=QKROfTTDx-0wc8x*9-hGSq)xn=DDgVcUl_UF0cvr;TG^-SAdc z8b;v1TM!*Qzqe~dHn2SkGs^^oZqg)7OI<7mT)4D+DBiXAl+8o}Rw=mGrr4As49rdz z+C$yFfXLSE0~(*x<(JuPjL@T9-79(#u3pSH{gAJ~C@i28G8!I1@cF9JMts{$Sa8DCy3$v96{IpW zpwv@E&mXn5`;;Kz=@&?snR4H(|Hh;{$HJ_wF{kV$q~S7fXvSZ6z5h@qidpFyEp;mp z{Yqi{rC9LpE|=)s?ggi_xyw&N?8|37uKtIJ#KsEna$ds_-f^Z=tOBDM!-+`9woDD; zUz2zR+q~O-kf!drYCIu^G21uCa6&;`x@+c*xqBS%QLKTL9nN)cA(Uu=*S=U$P#N|t z&2eqpv9{>jXmYb}?hta$U;j)b!%hdI3;~_DUOBmsMlrUyQE}^cem`f%T^rI@cb(ar zV7Rr4-6rurReuXqtU6(F(I`(>j4G%1RJ{s#URUWc@!VYG9-?581{%?7>#?1PiLx@jf zeQz15(vC<8blpz(=tfdy9AYlov?3-jt5~DD3W}H=GOn*4Dm&(CJ)>TUDh|Fq{J6g5 z92nT!8=G&@=25tXHjULPxntk! z2CW_hg|ag_vIk81(-r*cKpLnoSHpfc6`0Kkcf5qVY>*Ni#NwNSC>MDziRI9t<||77 zBrU}0M^Z{q%Bfv|QJk@bPa5l2d!E^1+DMTN05XO6!>Qssk*{cycYy2g#&0rO1P(ACeJWV)>_AA_s^S9* zRL~YcJi6->?ym&Y&UkR@h+_~Z!a{oN-PJ!D@oI0Jdj@ABYp#VkO=lOQ+?QkV$b9y` zF?q^m&|oj>aeLf|JplvOblvH}0+S{w{bCK5mABUz0;FSg1x^y5cay7BvqeSeO!y0^`@d~-Q3o&@6g;~KYLX7 zxNAOB|@2$g`|K33spM3Utv}ZK9N9m2F!N7?; zS=UK$G!ONeRby^S-$q*j%ZY|aQe5`xVtGQPoyGpq?)vqLEAw=b)!uD+Ck5B`fv*0JheuxQND&&>NmSXI2^jjCm zI03oHi;dKfwm|{pp+`h|tvA*IRu~pw#!@04% zbEkA+OO)-~l#lcAL*vikp$`bWJ`&K?x?Yg2TMvT@{EH^JS5t9cm5}n-+OpK$YYPxX zvwmg&z73(>B3%TMzwK_ob0Iq(Di4d#SUjoY$zQszl_jvR-vNjZ*nS!fyQE3 z2H=O#9*|ozTnT?#TCq#nTc@$<{F`0fv)1p*S~km-Fe;3r`%imKt4R_I|H#7X49f*F zDl2up1hZSruJtEgd~bW)*m}ic>(%%uM~nb;F2o46-K>GfdayKOxO=(3%!ezQwv@av z_(SSIg?`NMTZo=iW|nMkhECYDZO2_ew`sNTkL+~`tHG1))nDaK1Y-{7C|uXc{_KJ zeMt+(iSFtSoN~`~EeFVyH)|rN+^ve_qh*V#z~fhO&r4xtr0MEbwYm_oT_0La|83tE zRST3s9g2ixEOZ-I)Q#<^vfiKWC>d$!QouM~Z?%2L1A&g{c?k95j|~YlyNESDQTko+ zSB+$VZ75xO0h-^6d6n*37cyTo{n}Nc9zeMIv5uBbYe&8%&v@_mjxnlE>Oj$u^YTa6 zUn0`eyYodbP8tI(>BbaHQ1AXUoC>UGacL3RFcUTvSaL$#CT2h;Uz0Nnf!sS_dCgJt2E_ z#g03IA#dSz5XaW%H~r)ROikNx&=$2ZP~I}_3Zr(W^ZvPh2Ho-2wOcxs^R+@tKeq5# zlLMaT^zrcJtsBS!Q5008(`jw`i6>Ye&8ZTk%gbEbYAh^8cZzGYv(|8N~@eY7Qy@lKIiBDLmNJ_7ZEE3187B?XgWu%&8 z06^*39DZ>q{x2@Idf{T(%A|J70H|#VqM*{0U#Z45=d4_W%e<3N-NuJ$0}jLydKdHp zN0&(_2li6CGe#TZ9CU{5$Mw}f#EXm;MCZrD-0!F6eJ+SqIU((9QqdH$y71>wkhTXq)EMn!+j((Xj4rW+v3-hJd z6#K%bNiU3_;CV{MvHGLywEb)VpLEHQVosYKVb|!8DdF{cV|Z|;uQ#*Fl0li~N}P8) zqo*(R+XMm!Hy-|<)xy8>cEv%YdkkRxQDDT;iGGGCBNYm~(*vb+1N-BpiG5mD)VBA_ zib6T#xpj=St_tDm1>=w3yg_io3bTzwIj{Rn-cOm`sjhx-z+~&>_+`{#GKmxBtgWUh z^VByLw1ndP1(q>16U;Qh@Y{Q{e1BQ#F2p8Fp&^3oKvZV4?hR&Q1s5 zQO8Dm_E;!3TqSPPeSYngxqUKlxaZ-=qgwN2j65)8c;qb_U%3Eu5^5n6dY zB>+o=#d0RfKF)rdhmOsJWFA&6^WkgS{v3NKKjs9^p)G$>asalxN(ikc|elW%M!O5D|Ed{P1(x-osVU)bsU*7 zvmuD3wA*$67JvL|TS)l?>i+k+55x=TVv|ybB;EqAH>>VUeh4UxyINq>s z4sA9gve@yURS0fRX&g(HcbsBcb~-HjV?*r#&$(KcF4%$87;0bsHTmKntmAMJ&dN2) zl!hUHv&u+bn?Re-d3V@eU0~SyrJIU+-(5-AhWqK$!E8v|$)6t3Sb*@G*g+qu3BcAz zr^;Qb4g12yMzkIb`%;)AhI7v4bGidGJi+V&4+DSo-}yg#fbXF^slmIyngQ4KJ^xMO zNIbo6o+bipvi7K}myl1oJv*DD-ZR1n#iG>y!DJ6-PM-IC3`mzgkV_Mus^@Yc(mlC! zPj6{7AsvAI+J_AoCnDC~pNM^gAB>jMh)=lshyA4ybd4lQXP{?TIXXghgPU+x_Kw8j zTGSQKKu)byu9|w}QRTBvxX7KW1bdaueS99C zWRH6T(TT#dN2k0nkzKx`_-Wfg9h1FVi2o6^s`>xV)Q`E79N8MM%sCP&u5yK&bHExaGOM63rN zCm_-j125yvXDc?R*;d*T9t~xmp5xD%dFlBtXZ_kW?fZ@K2i>LN;@bwNTVUAvJ#jo+ z{^n~s51xoY7MrDfJvyw1&&yjkhVS$Fm&qd6AtC>$)}3PIAbf z`d#9~cJ?ocvf0W%4&L88vUFolCzuO&)tC;*anl|h0lfVyI}&I7AOvXYbkPgdnc!O{ z|A(USMzxs+dEde4c=HLfONy=Y*xv2Fqw~X{St$btNIyI(bGC>lI-=I+m}c6;m}CBq zWuWA=08zg)=KqA1Hz$4wj`YFQ(rQR={~2zTNToOT3;h(%bN}30$kapPb#$t^EiV|ME08>pC#VyJT1EF^o1yTfqD_RF8dEyirZ08$2r7G}+D{y_MxmzYw%1 z(v9Yd5E~NJbZ8@S1vuM0RQb*mmKM}caxmM*ixR90pOQbH&M~she!Hm6ke$ft(xU$T z+l|K4(lG}+%Vbx7(~51UCSh9M_1QSRO6W(wF>Bz54h_Wk{#|q9N~H(%lVEUtyp~M zOzBn}2~i$_v#UOHn5}IptGKc$SN_}k8f|DZ84LDW^)9I#TbtwAywpt*^;wkCboQle znYUK}bzbkc> zN47S^8q)C=4HOFXwT<%GBTkb5RtD7*6SK@6Um=V(sK+&YZT$JT(`S(oypWg}k*HR4 zbX}K)Vb154Gka{mXo!1^uHV;XM=_SQSk1W-abC3RR7}6nk82!NYpyw)&+k@somOMUcd7K0# z4APySsN(&O+k0nqcFMRy*R$(n;J2IpJ#73gB_Y|Tp=R=YNC=N&)w&^-)S50^58s^c zZ_S4l7yp8!8XmJV&Q$pBIqsQi#;aen9Nq6aObiDV;xOtRw4*}ylj&iuaonU`C$ewT zB2UenpnqFC<_#YeFK2h7n$u{L8I!A&(W?$tv)L?KT}880s6tCG=5@}Atk+{Iqtx-9 zqaZwa&ugN3t0qSB2HR*WvLj_P|0YwN-7TfDmTZN=`Xlv(gif8v<4^yIP7uPLSCX!9kX@S;yar!+SPo7?{30%#(qYQ?umjlc|9 ziF6A6Tn2|d<@0lFS|^IU5k96pWQwmcKjs1LIV`VBOpAGcBD1^`_x;(7XrNCP9=)n~ z3H6rb0c?0B^TyT{?W=3p*lN##_3D~?H0PJpY3MR!8`eNH)gzgC`^mcyDg7)}zwdfm zN14v_K(}Z6Ei+;gs*Wc#!I^nT9^n#gW(AUCL}b(}MMLj`W@%08ty_-^byO^Vak-eY zME_hb8)H_w>CJG((f3)HWOfcH&vfj$p2vt%+MsD9^f)cK%6fP0H}{fGZ9}oRU;^R% zz$YGX?eoFiORC$lhMpg-7+3QQbKN!Y%vb!N1Y!xq$w6$*flW)q?86vsrU??{FxF{ePfjaP@A@53YP z@xLI2xamYj=(4Azmf>+Z-4a6dmLga5eY=>uMqor59k!Zkwx!8=Fr9V^Xy7uvmd26v z^&z{1zyju}M+lf6=&5sbjX70wXf1Bw-_VPpzOh5PM|36Tp|NSlq6a!k|JeG`ft;+$ zX^-GpN~y2=)c~`v@=~VcgaGBF_}`rcw~Sy~Zlcu-_txZ*S9?^2!#LA)0W@T6jn;kYxI60k>pQb)VnyRuh{HBp zuv_Q4cw)0VP>Aq^oBnWLF|Nbla~jjO>HAmw4YB)PL1vCizZn-Q@0L`?^#B&N@yTSP z>ZlPME5R)d~LMi_q$U?2qcE#w!sEJAtna-FgE^vY{^G~CGiV4gmMx%n3Cv^v(u z8dcaau7$uFu*~YYUJ1?Won1aR`l-PK84AU(VdJs{RKO)|syo7`-BFSX1+e~)+aKqk z3ptLJmrEO`e5?jRt<-UTN$2^b`HqO5YmYz6<$K={?YYWd*7&g3J$e5m?O=~g@2cDf zC-seWzwggkz%H+%$W!a{$26IZ5}>jE%B+k^entK?UH2ayD0h90eW;?~{n_*Gse<=$ zx_jIY4~y_+Qgzpjb|o>}95+RpN-5{JkYuNupxB;aH%CxQ_~W?xttp=O#1F3$N9s5- zY&9gW+{;g=X+1s3ZS5n;TwK^UfHtelR@VQj1n3X+8;pmEbi1A|IL^Nq!XcixPJD+T z#v;ne_}*qGM%X<|IsXBZFJxIUlk@)pRY0o0KcYhndcA_OgvtaL+q;ym9t$w_1|}=X z_(w7Hi|scQrLQyTAo@%}hT)ovlW|b9)$95P9S0ygN%7<5v=2hOTz)`G zcLGLt9Tpn-jLbU_`88bMR|fQViyxbLdStPkRB~#{!rB{}Mg|5O{I)E%)2!Kh*<2Ty zSJsNnr9s9Ujx=)G=*ZoKsD+#6L`KBW)V;6Pnq)VGgz)q3O63P`Rbf9LCQG2UttDg9 z_#uJ$y|@>x=9^A;*uUtupzX7Yq9;vi<^gt-PjiYR!w+( z^o}PhWY#PsPY4Kr-&Bk3<4RB96ttX>;;%hLk`#>q-by*Ae>`eE+ut4>{aO}~#1CQKM?WH=-_Me~aMBWdjb%jl_ zoOtK!yLCH2D9;o8bIH6v3`@hF`{Nt}H?D#Hn0>|uCx1{9|I*gAO&%Wh75zR$zGrbf z3irv<50pyq@?5N++cV_(9eK>J=ky1FZqO5sPY;+E+pnGb72Ww7$(JS-!*ttZS({6ZwKc2=vBSJ^xPBFHx8waO27^THrN&oJZ>Q zPd^XdkQ9F*sH*ePiI)~%{2iT0>hJdLhk@_#HH};BpzUR-cauH zW`tgkIqvK?G(;d&6p%+DM+Z62&Mk;o?g9bsCnDoSb|&!nVw^xuXJ${qANC ziC*2~0Gvjq`%+UF7Tfp5DmFbnOE{nX(#Pf;bp=uV*DO#Sj<-egADgcn;}cOYQt`)) z%+7{g@#5Ht>ZiSn%9nk7-D3OJ{qws56hok@>!b(KBWd87Y(B|#>Kf<{y^a}C@`r)P zU$3l>JOD|&x_dWgBj?QB-@98g$Kt`=5+$Vbl)eiJyu;s6!y#z%hD%`KkKt|7m#Q_>*u!8uw7 z`P-yI;I%*3?TUhn;PQoX)0R(l(4!sH&)0shGP5rEVH$fKkg6%&J>YZ?H1Bm-uyd8e zS4Dxd_kUKwh4cIzJ)DjZ#sBWxY)K?AB8Y?x%(Zv!m%9*}sS z3Weh$v)}HrhCsf;d)GbBZQvA}Oh5N2!u`dLN~KwA_1A*B3J3KsaV6k8y)~R&-yc+- ze-NvFbqg$C8R;v3&4ps}Ihy9*7Z=C^pOPzv!zH$We4nQWr0Qk9@ZE#rg4YGb+v|y#a}TJ>qtwc98rwymgLJn@~sM zMh{%w!p&Y%1Fg3kwFmM=U{7;J%c~Pt;DiUAx2=p5Jfgh`=F-7%FfZz}z$ZlBjSHV@ zzmT4cGjkEWJV`+qeX3%^t<5)fB@4R;?;65?@Hzoi(SMcW3eUY{sdfkEdPX zLJmLq{$%9*prR<6N+VB)A$>vpa(g5XDWk*o%e)5&e-6({(&ST9X!}7lleF;qD)ha7 zY`fF%Dh|Y6*u6#i^k8i@m@Q0}lCt}Q^i!!b47tT%n|&{#l&lzd*z6yyH}D3#hRyEk zg-AZoyMf(zf_a^R&0Tt%U>g$OYPr8|Oi42hYGWDK-iy~?Y`5q+%uHu3#z{b6xDB!Cm0~#K|)8hXea5?K*4(B{>`Ij7u$)$ zJ114a5iIL=Z&YGM@=@3G+eqg1A>R)qU*o7nvb14_`rH1jTxWPQaw=0$!Qiu)GuXo=egCA#Mes6=xD}D!Y4hUCHQl+PSF`#b{PMBUCJXUGN*(RD5h$(~@bRrB2|9mB53Fw^YC;5dJRo0^Oj)L`jTVu@!5PG|C-|n-Nz{`w+j14 zKzgJd{f>w%sPy1{BrjwN$@j(&uyZ5%@gHuuHYKSa4~>@(#C>IY;<^+KDaiD_7~x&EomwV)LU$K*?RKe zgW@81T6Xet~p|&UEn*J7)uZzd~2eci=1~(;!#FD6<48y zwO;<*1AEkaRQ+eaV%jl$UVProN4GQhrgU~CH+Lv?&&>`9t$ZtPb0`D6DMs0+&p&||dZlO2*0un@&O7d7A+DfE zxAus+Z~_cXsb28$zXxk&iW*7lIzX7`YhP2EBUBfOG`c#*z^*lEulbFlVaJ9af$#O4 zA>Agy_)-Aj_L_(|XPpS14ww<>ZhGOM24c+SBpZ^$p}*gLcwRIKYG&@7@=>mYv;2l0 zeqRti4>QfnW#~16SK6^n-F3?FF6)p6=Z9dRbs>6mBPMRKKU>Z9E~k5lKfbROpH&Ev zADp~*W?)Z31Hp6}>xO+7zWE5%fBlbqDfY|tpv~*?Bs}|VHhi_8I+yb79HSdmzBrX1a7a2wH6V@Ooc2GMib_&rS9vUy;4-hT@%fYqs z8gs~fA?s@WWQ33K=Q!y#+wvqm0@a`KtJe2$TC`ludu=q>MHacYPDc5aaay(kU2pD} zslA~vEy14h`bG`Zm`lAbO{{?lVg08pRl)ErWYadseF&Xu3Lj6NDGGpHb~0^OUL$oA zqVBg;P2J81hxyq0ssA{i1`Km{GAbbc?YY^R#Jh@H!CSLH_|ESzsEQPxV_RPcH!@mV z>V8#&>{;Wr#f-OLuAXe2fea!S>t%nR4(7iHQX0C?hTb6iV8_1C&u*V8g!iTsEv2Q% z^O3l9zD#aF>>UcU70L8d`Oqvs?R4Tz4RF@c9IcMy18z3W+_k$d!{L1MoQkp_C^y`> zb!Sx^SU20`WJ)6X=#jfICL8jLp_53(-Z%-7m)}z;Jv46fg**NlE@vH)yfe8ygLZOF z2p>qglH22b&EXRJ0udWk1n^PH3e?j+g7slu&nEr%f`p5E#T6xMaD8#R>>G*S;`}{Z z-yMmYNAl8Q=1*O}zvaRL;#Y1jFL%aD(hP$5C9n0+A$-t<)>Z)~L(VVUr^Hoz9R;7#LPPVoM-qvLEaY)8LGq5gLa)Q8c2=!(rJox5%!^4pfr zK}C~4@#poT%60lV6o)%l!l{(UH z-r)~E#9Srculs`4Hm!ZG?8tr=s$hg;vaz5~*_*4q1Ibe#@Q1E9#N=v6?jq;=*u4*- zoOB4i>}vG(C+jYNEzcT$L3ck`t6E}E6&?s9SBTy+t0D4ynK#2m{p28^?LU6=)sK3D z*VmwD?sm>BT0ZO)Wv7={L$5nsoR^HNC324_ZE8^#-iEGofsKJV+b>U((SGwo-YRSS z`X44?rZ91+Yq`<_)VVQmQDnsDE6vv5|3amp<>i~jTf8{KM}H#4~g5V zYon^X_B|VlNt_-lzC_k_s@+t-j*oCYfBEoS_Jk+;JKttPxpjC9eZFJ!b*o}r?b}iO z@2$t_0`aH2(SD^*RF#U(F(LBs?efgaPI^xu$=kvzg~$Y4*@de<&}PCr3zDO|JRSl6 z$AgqDJ=cJIU0WrMA94;Jm6BDz_Bj}iUQE<=zZ`&ik1+cc)4s^(KOp(Kk*uG(9HjQU zq)WUigAXDfXy&%K!%fz%=G~S5p?}hLK)ZtH8;3b3D5D7+_G1MFix)chafD+4@td>yoT4BR5R z)?3fVg2PB!!U@tM&>1A7AFwEg6eHpL>7D_w_R{-7$%15vl=|__L^TnHjhKYxr061oq_Jm&?&mNgvXJQ3x3x%Pp*Pb63z7| z_;lcf`u=73jyXUB*ma?hMRpUT8yUJT@)-X)737XvGY z2R}m_9KkN^qY^!X*J6Lc=bs}lwjum#Zj3n@s_p=GV@bL(^tj`Qu0%%K$mQ_C?Q85Ag7c6}GzN34BFaz6q1Quu-wO z<7WpVZ!tXXW8qfz04qX_S>qw9wRZpu^N zONEZ>y#7A1Ly@ftzCYzZZm8)6QfIHpXl>4i-7Flr^R0OhbAep{`#*B!*K0)%1>DFv zc%hp}OhYIDtSiZHO1dI?vTiEYEN$Wx2=`3Y$vBR*GZl>P_(+U9J{KFGHA-tLE}-iJ zRjIPZGyX*9^Q6317vbWHw5t|sv8ey^-4JfdT)dXo3pVsUtXs&;g90fRu@S92m=duy zOjWrB#vKRcx;`R$D~BtIDF;sZfo-*R$o*{7#db;|Z&RA9$-n{Kz{H8PziA8IJerT3 z6L-4{{pz;=b1p|_9ylHC1MhjV{K+q;fIZK`nmVprICw7nv0CLV$mh9cT~=YY_`3)x z_OFe3x8Zo^9hM^$NM5Y@5$|<(JyYR;_Eh2g24uhaoldW9e~;WB*GBy4)Xb8A&%+&Z zzCDD9-ljDRk-`vb&iQ#eojvTUvoKDz@CK)>Z%Ln0f+5&YL|(8K@h_N=4;E6%NP(HS zTMX655xr_IX=Ci+4lj`BX#3<^g`AI%&wK4G4@LN(rgcZ4!{ri0aHdDSko55eq-W(M%qB{|EIb`ExOcUhCnnl8@&DD^vYav`#>F!N_prI~~eBG31rg#KVf z+Zk~9@@4G(AhOP8wLMc({%0Yp@D1M_6XA79 z*gvzeU)g}Z_p|l5%qeV>Q0@H;+xztCko)GqCZF(4W$Jk6lh$U^iET>-3XjOcQt?{w zgY{?z%e^=_;W^J%z>^Jer89hcJ;LE#J_$EzA)*fqd2Py5_&fn>*_=p1)*|z=rChoF zLn{XopS=52Y=^W9J@Wyr|EOm)(ljroogE5#KT7vHZpnn>Gh7=?-UY+Fs+Pgy5@ekX zZ`0J?nk)o))|l}R7de3DBN(DhVY;q~w}RekyzO)jf5PabwZ_x!WGjuO~G- zL~jk_`}Uczx*_t2(c@aviVi1Ovyjp!kxqEL?0rXiIoEL?RR3$=_0(j3qy3=H^3JPM z`XcwphTCF96$cIR&gc2_z;z7P51Hthkf!};6e?xKgg=735kySpw`zIi;wTq&ZUY)Ao}*Bhs_zX z{`vl%p}FuOE&reQ^Jlu(1+U9+LrkZ@PX{?))~WhC%n!xDuFU7mf;`A~qe#4ZOB)^G z@!*OfjbBdt6Xa~ZiakcCevW~&@m)I*d%%xO zX1H4O&%M^tGs*JhJP2EvQCXNp14~tw_Ya*6NKo5V#qZz*+BMmMB_mqMxjxf=W{l1k zc7INa3)MGAy+<>D_A90x!)MIjhX<`6&Sa&-Mn-8?YOXX8avj|DV8{-v+)5bKd^C`A zec~GHM)nxE5ym9#a}d$LDuy_u&8j1M1=&~8y}?)VAp4_%1{9s$t=}bW>J+Ae91nYQe`kJlck(F5djK^{9;0WJ%sF% zqiR|`s@pZh834iy-$EPiq!hS%6RCmG)ZFT zbA$Lk4i~x>!oSlUn>rI3NJ??agRh?n^?i&=1w-rE|>6K z_(?o>_&y8rJHJHteW{1TU~Gi`+6y=2`~R}t*He2(e8HOZpSO9Wgy83$Sfc#Z;t*6} zq*w&pwj4}+MD8&6xyeSr=%4jTzWCzY{)ceHsnYoV11De*A6U~!jI4*y$gnttkR8mA zSpUxVK;+_M=h8ktlDY@y!~(5gG%UCRg>$ka4VzVJEI~CK3(vOp_a;8lppW181rd-y1Do} zyFc=yC`+km%qv6>xpDf@{nwl0;KxXF^Q))GIU+6-=P;IpJU@w_hW31IA?QB5Qx}-# z4mKfOH!j_{2f~ME0))?HF3OK)7t1;1b|dMTf337krH?KeP+wMQ|n+n*mJ-y)z#Nq?j z(#a8j(id6vHaC3Zf%@3obv6=2j!@Yv8~8E72oe&A1j`O1_so!G-u{=&E{l~_l6=Qb~3u@BGgM1?riw#_0K-skw(FH4&H7!rt>9` z@VL(Mv*MOEIcPa!jz-}e$2atM8n)c{py+b!q1QHe=ZoC8#V_Gb0x;IT+O^SM4K%LZ za$=T_fG)ocq}HdvKV~-SNv8(Vvn= z@%Fr1lLIWGM`ugSxqwE5lq+^z;{EvRbzuw^asa+qY5qfn<`RjO#G=Q^nx{-|PGW1_mKE*cX z2C8pqb4q0qy@U(R?if2sCm11iC1YH`Z|B57d5Q9k<#!e$D?=pi)@rw@Yb+7|`r^3c zn=?KejlA||gXJ!t8&~Jfz+O^?EH(W|h|hdI%}sV68kGZ-xr;BtC|AmQ`5(yr6Jcn; zq&Z;+KQ5m59o%>qwZ4W}eC!%N@gisqa&CWlJ$_`sF$ivOUn{m=XhR>M4JNWb3KR-`` zie6&bxWvRo`B6Xa#N8uyh7`Nvc!+tvafR3br@arX#k(H(-Ip3+ zXXL0h#KP5g8?R1Wx&w1sr}kcW;0ULtni;d@2(QC}fsRTGb+Rq`{l$myowIsjLl;oL ztF`?}<7|Hh8W>LKhTggk1uwe%D+NLUGY|IfT6jqE#n)Rw!cDQVl1)peqjWEcsF^R? zkGFP|B5{x$?N5&n22({(&qu1E_kXFGDC?Xusy%%hgOizu-7#IOfMgPy9_qYh?Q43R-yeWuh%Gf z8JVEv*skdYUsg`!e4rvFjSW$dfUjgkN9TtfKtiu&@@|a7BK<-(Hjbc(=w~tXQ<}PP z)>|O<6&4=S$+j04Kt99x{l!t_JN%~H#Vf~)2(NE~!TAuGgpmIsKa==@7e)OC(Eb4X zS|!*MB9Z5PH#_~bX=3U12K;-^KKphEZC|qj$J!A8>!^0))7$J*n~->ushS4L*dF}% z8ZHP=uxo}Z97Fxyqw}cI>_K!KmazhVY49B+uEb@+k>udMga7)x>OB3e+_hQ?HI6}8 z$2p4k=r}6uc?)-zWQ9B6ubZH(?{WK#KOandN|a>KHG#RAHJ*;&9Rb4!Y&tM}z^21f z?9OBJaLv5uoqWsrl#0YPl zf*BF(HO$~>w+Wl_=w-mBPnUl0rpPZ=Ffx3;pY)*KlKI+F!)yL?41Hcdq>$Cn+2)LD ze~(3H+OB%-ud`^m790Jv>p$`YqVLDcq=y5is}Voxd$O$IBSwsn@U1cK(xfiXuvj|R zP?#_Bm+4&%+u%CHzJlRzOz5SG0Ab|**z;#UVy}A&7QMTNH|#OtFar96kgK=TaFM@b z^z8**?1Li~TbiN#1xExxWOySWA6THN-C&a#Zl4W@0=EZDcvXU{yT&<9 zV`Se)SwmG1a|>9yD(!!4EeoMr43&mr0)WEzxB6@Un8p6`AKX1n-XVHZb3yOkU)s08 zcFn2eCz}b+>!JPfl6MjtTL0R$zJ~exp99-1ZjOr{M&yC5pY$?PRXQNgRZ3`^hcpPV_sZP) z6#(B3X}lPv34zS27Y`YjBjA?Bk;o@O$oH2;v0?m!5f+sN!E8($4y zc;5dO6RH84G8TWo;Yg_S$#<3Ag7^{bJFo2g%Q+nQuVqf@Bq85HbOY>)IZ65ObbnX< zx^2k!^^=lVS&jFE=j-sG_@sRG4Ej6vhGjp8?0~PJ|^YfqXKm5vkY>o32|^D7gN-B+yT-P!)&V8Gg>ccBxS355 z(VM!mRjqMrMC?uq=N8locjN=Tke0oHK^@!|(H)u%Jp>xG?6VXH+~B;-7p};;NMH)! zQ;d;~hf%+`&&4y4I2qzm39Id*<#4ykMsU&u;m6#L`=_r7+ybqbxcEsU#P0RdGB|ud z1Nqy9+wN;zhCQgCeE+>yHW6m{7WT1{K8DYwTslp|oKUMUzwraD8H`O7x78o_U7X*T zJ4I_-02!FlUNN0IiTY!A7)IIYJH&i|jJ3U_P1TV?9 z%MNOXf(09G?X6@VII(g3(H%zQo^3UZvy5s+5WmCuiut;z-T3S1TAA?bX5K*O_cMOc zt1mIu@XtM8WVf~dAGxFB-R>VP8L+L#i1y;1N{|#GbvecF3pa$h7v!^%?@QaVY?lVU zI8gSz@!+*?B5HkqV)5~ZRl;$VtH}Ll8WVW8*FOP*t`$X_nO1=D5h~Sf&cSfx%y|p* z@5uV)SIfEE1Uv+O2LVT?pNM`e`NFeHYWalwOV0YJS)Vz^5XW)l=k6!-Sub6fWpD}-*+g-#k z%~u95u4_y9(L93U*$$Jjb2p%zw<0u62YIifLqu=yj>&<~qI1QkuOsbsql1@s#v%S8 z#MVANp-NAnm?`D;$Q2J@HE_CAAe93*n9YeFJ3fXJv_P@~f}y$WE#(4O9H`=t(_js-6%Xe3$^5HB%|a!>gbumG=22{wHAh zM}8E-k{@5y?h+SIs)rMIt$l7NyTP?hUQIgPi7?>FZvEIT5qka~Z(kmb)ffF;8dRc; zsVFKMP#H333z?NDQRd7cbIO=`9y4a1Mdo>)GLI=TL=nkQB1(m~Kj^fc`};0>-`{%A zKhJvZy7!)a_c>?p&-v_q&MBaND4gv8;q$!=dd{0)=Mr|~)yf;f1~6K~i9u^Paqk*V ztTJewVfax1ou~5jk9#Bg?`3vxW$0)f5D~Djn%2sJUyxu^k$ET#O-97;lu!9{|Du0# z(M}#@$4Ng9d#`Q@fD1K#)LD9)UvK_mnw%kS5u0bz>h78^T2TYvR)dJgS3ID7k6qJ* zeK}Zj%~ZbftN;riAGY-0eoxX|&_gm4jXRx{plbzE;m|5R{yFh0!cT!_k33ioHGnId z+ovs;FN3|*htk*Po^WL@>_yyf+$K$Fx982rSjb)8mA0D&jjJMF?-wx#qv6xX!EM2> zk)OB|+p5>N>JNI)vi)pDHs3Ce|A@b7ApIdk(?cCxboVQxaJx?6vrTFbu(nx!P}?2~UYh4Py$b z{@}X$HC#8fhU+qogqqu)gaGfCvVr}n2w%n!GaD{QTxXs-ACf>)4Cn6+E8`EbfQ(%v_nguL_^Nu2E`=%ZPyO^e zBxtIZkpEq;zZOz|waH)S{?VW>jmn(XsS$yv3WS9H zTjp%DO?H+QLczS&LD^Py2<77Tpg*1jG>tM_G**j1Em4+IMav70;g_f|sG30Ypof>&kUr8UoAhC4DbZRO8S*`|?*={8;?WIRv_Aytf)iV z^n*d#78P?Hglnwk11&^DlYrQhW;QPkjboxUxy)~-ImX;Y_MLO=srH3sB(F$?RZa}v zT^OHBA7I%M_rM@f* z%$*6?<>!haX=KC;KgAKYg)h$wt)RS<{9SKFonzC0Wa9PN2XrWIqe=fQp`U#7{+Iot z!LX7M*6(y?v{}gRz{ZJi^?LRzF$58AeBR40+NX5g{n+`!9+6$j6D3F=1#gOLe2>?{ z`<+bI|Vd6w!-|ZcE^G4wxT=^?%NM7bH;uqF&WtduX0A9yq%s3KT>#ytA z*Y&*qf3zg|yD;R#uP0g8Dhdkz;7aOjT4(p?Xxu2oeqv@)Oo9HCGB-*<_%iCGR7Rx} z%4e_(qYP0otcE?Die_y?)=>YlOZ$LcDyUshKD8=Y`Uh7Qj)pGad!al6$|CQ3MsF*@ zux8Fg=kDh79{;xstIL!oM}!&pbTq43=7qp{^|rA6?ZL30$CQjI*8=kJcW|CB`}er2 z&@EQa+P53e>v0Rq*tmkd3N}uoDV{^xy(|IBGl{WrG+tn)z3U{IMmVh3gZms4r_ub^ zatG+KIdF+yY-9V6TcT72g>HIaI_!F z+)Ez5l{AA&yU)L8MNZ6zP%6J&XrSCERWSIwS zoPMKH*QsR8Xoux_#k*Rn>$R}Bw!fi`KW_znFL7?=wwrwaeh&S;z1JihU9kELC_V78 zB@l~qESo4fJ`Nz9CC$VVux;?)$K!fA^?rzCPdYYU8eJ?OG4~7mUJZ(${`@acevGUc zg=4etn9t*87>h+m<D)SY(h1h}fGfwk9&qKTspcBHII0D>a$GoWbU51=?T;2vHhS5e%LdM#nd~T* z^M=cZC5?j!?!oMx4Bi`;{yokW7T@>o8=(c}xzDz=iTsbT`4m0F>^*rQXngn$@mLvt z-guvzCH8Xn!_3zIET1`7u%MGOHoxcHYnd4Hfbbob))_zcVeRh%<@%rof?elUwo_QYGHQ%-Vh}-Ua zapbk1ymLfe!vthAx{Z4;*#6P4Ryc{AW&*;IUT>R7j;ztPA&PF4T! zd2F54ZDOPLSe*P|n-l!hK3YIbwHthan21JKNYS|DD&2uUt z(ewXz|E4ylcDjfVi+l8F*vy%ac!9F+p)=9_%^=sIwI`oHxpMgJ{r*+CCYUHYZGSi| z0UD>wd~$YH18a>P!IZdZ5*El@pYQWb-ujR6k0G!UaUufI= z2!@p=0=7Q${&W8dent?_4m6Lh^)^KkXw57xmU#HH3>{~5gmM(p4JA`(X>`nE61mmkYgsGcvm!GelSeEx-$H6_L{YKJJ*u26Z zJR$ZXiblA~M_)*>)f*i9lJfk`%c14dF8?=DV!99Y9IB=_FL z8}J;iw+oCR{!f3Atu@yu3knPkpH0P}abj;?9rW#R{ieS|dR#QNcqbNzNld)ZIV_B| z8;5sYmgFr%<6QR0%NynG&w^Aw2cyy3oqU=6IolJ`O-nkbBWhO4q zL2j$Z<+OLc@c7Mwv3h0}B-3O(=GQ8Pv+mifT|$q6@mQu4M+8A=np7C5r4I94e~WOY4xRa(!MJSL`CRzQryP_&L_rzm zM7F~Nh)tG$b}FMh%yxSwU(!P4AN;(mi5dkBK!Id*+~uVoT%dHn9UGVnBT2(P#m}kX zgpa%3^gA`EBx#-+8Zi4)|DX!%D|sU1f7a^{Xif9%tU}+%xU21Dvzr=(9=hTudmruF zKx5T;XIn0s$Fhj)tVX%q0FIr*KMvD8gj|x=q#hd;5KNm_lri7@x5_yCp@Yv*RVhvU)tT-XO1?z;lxtt<#%c zlk1bD>|8tn;;VKX`Ov)@fpGK?-xm&PX+=1{=asC*Q7edgaa?;(V4zu^D}5WaGG zFYAb}>j1*riD@XFZQd`)b`$A_SYmM+m%Z6y+YC0&O<}oGA+Lq}QTA634ld`7=L<9V zwR;cqW9^t%0SEpVZxy_F-1G2W*d54;ON<#ANPy@`7WWDxWO!%`xNX?OK0bzrL>L z_5U&9#^lM<7az zv97{blqWGP-^@?vQVvfN&fWacYzMV(jDMO8rNFYBJpBXZ0@!!|i(}l8r*NchhuJE99F~sW5=Rh-aX;S{@GEjfb0q9%S24=^Z4ZauV;UrU@`1oUIpqr7HMn(E zsO*t}A8e1zyIVLP{^x$tLnRf2D^LGC*X(j7?`nq+d`k9QnP=YoJ`^PsK{=V`*nLTc zSWVgekL5x|g6U4P2llY5tf7PxF9+_?nKfPz%>iF(7MW?MIG`HU+WxK(%|D!i?C-YA zM1VB4sTJN|>+phWFQ?zWT?S8#80aP3<$=6mW#BbMC|t44>$R5;1Nw(5CMsD`pn7tj zFuNDB!{R0m@ASJvVBDG4>)J!)=e|AXI~Sx836>{FJ$hKN`*Z$Rk?GEm{yB@?U*q&C zay{uO?0zfLTKO^M=Ssk1Qu^N59edavv(3x3DI2Q$PiiD@&jCttTOH;OUwCVl<87jg z`aN5pm-NS0HxM#;#1_GZ^6kFY>{Wb!KOXE>CKl%;P+pa34WzHuZGK%jFIDP?t@p5g ze|X!abEf^inCn_Iywx(y2>)7rIk4*UwHS)47>l+T*ugWs{@K@@Szu(AOm8Wi1?#w0 z>1$s>UnSzNCD(B6$gI}Yr8~$jMhLZ&pEi$$72f2xE{4d@OE2zwnkR+EwPjy0b%<~g z5RI7?3QIkLVu4+&?%U!)BD5gcl{5?V_EAM=Ww?Wosi;Y>9O^&O#MCup`yaz`{HYYK zafI(DxKGdN`NzYU?X{U5dgy-IF9t#yf9;?4RCscjN-h?tZ?ygz)y{&CniCJ6G@b^h zin5z5ONKB+F|8IeHWwO+s1$yQ-AdX!%{W3$W7rrZEp8$TES5J31ln&10U ztUdCVXP%CV-)X)Bd5Nd%MIY82?ao4u1fjCdGAg2ijMPNcz`CjRb^J?Q$b$i45C z3sJl=OG3T?y!_ymOf(VI*;KgCFWe`!;01OeGbc}cK<>AO7?jQYXIZmAzRWk$e2EwNwc_q_aUa!f>-p$pV;GgZiDA|8N|!n5R& zs6R}f>Umk*viW^;I==Z_={}0(iw@~EupAV{<|DZoJNc`;Kz^i7{n*}X%Nz5+_q6Hd zUKC>E_ACR$s-?L(@O)J)kv>iidcw~Iy&VdJ_mRS4b=^;a+nJ};E9@bB7CTR{-yGRH z4|yl%1Pu=mzN+dAKua>v>DT*~bG6Sf1eWg6(}X5-hKW ztJjpAuz6pzWa^h~Y|o?mSxk;tN;v+We;yxZh*G`*apx3QqXk0X z$c~s}swYz5*cwh|n91T8??$}Cwl$o5Hh3S2e}N-r9KB!buj|*>^}PPy`DM~ef>%kP zrzb8J_c#e!*Ko3s)wxhITZGGJ+Yi_$d=3S@T+IspK2-l_fo}1AnP@)Led+iXLA7j9 z6|q01b;AUT$SMNU2xtayXva;`~%*4WPTRa{E5G@CFB5o#aR2E zeQ5q{A4xhu&YlW}^PeMIGd6E0|F?_$%js9#4@_WuKfz3gC`si(|*(MupjFZy0wUHZHUbhxG^pM1i4U-=!OhE&!4ur!FM; z!+Jfq&uwK?BI!|Z0*VxlAD5>#UKfU2$Qj0dJ00vic_cSMsjv_`f7__sB942W=!@0k z&UA@w-`KI|c^E}zm$~xE!p`8ORr=p}m?Q38U?W)olyUdbHY5cB?)$c0V%XJvbXEWWS#u^PVDY8I|7MvY6|*^=d!#pW519) zABVm?g$BH1TJYk?OV%J(OIX(ft{m%nz?I`GYmwXlo(AB`aj_sM$2kJ=ACp<4zfjwWy5JygHmeuweKCJ$6%abXqQ|)}% z_1Zl2A$Mh2%?KGArUraX`4vFrLx0)pmK z{m71ATkDUw?fwu)Uc+;}sg3&Tz?XD#HhEI>kA54P45+^jA|CRczLu2N&D+4w*JaC_ zkLFR6WJftGCH@_^r~r0AiN7>vIVs%0=Ft%bXmYvAV|gCtwf?aF-)K$ljp`|HYW&pL zhsEh#c7%GZzmUEER3+eMd-mV^kL$UfB%X)Z`4V1qlBif0Hb3r!TI=xDSr=eTO#LdF zRS$Gpv|k>i$5(!+OnpNo_8iF1xun||$HGT~sB{|pGPo()k|b7E4UBtRTy=#EfZY5* z`mcUJFq?L;54h?JtuzrfXY=YHL{o5&+(By)Ctb+67#|HiG!bUs4@ZKCu0zD*U`q(H zC;V0PWb^USGbLKK(ZY4`TGH+9jaEUpyGyqB;CBZQJSf0*_^25_p<=WO&3+xf#GtFf)2BoTk^KSHuVZeNY&wTU;V&fop~ z0A#&aZyCSaJpaEXY3Ag%eb~4g9le*D@!?W&42JhdNmv(T(fm*`IBS+5*ALt;W;E{KiSkU$7SEe_zNmqKu<|S~Ej~CI8g^;) zx81AXi~sbcfFpRZ=IkNY3Ik53vXVq1glkS5?Sg!gKqv~pFWyCpc#HQu$9;$Cod7>V z`o8D0&F9N28}Ltf2g4iXZy1_b%8&Rjk&P z{VSwME9E2?HeY~u_{Q;{t5}|bduMZvTNtuOWn+;yy?@q1pN@BhpMV=EGDQllTq*(z z8JSq6ZABp6$?k#o*cuw!M&gD$5#IZ7lc8CX*Bo5fbEtS@(fE9IXio-@X9_rkc0T_) zi|ko~>kG581jIAkmbVZY#IFG>&cTmX;~rr7#yDJOEDa9X6>ZaeUI2O;CqMi7+d-Li zdEXW$)UW1-r|(VBx`7DGuShc&#Q)y^#Xo#T>?xc-XUGsKioTD7`hB>D28#PcF+Fvd**I9JtP?ibW*{z~>*g4)cCNd2gn~ zWS^A6f7kQmC|S`c!nIZ5g_j;}GlBC}8m9d22>Li@Vptwx?c-7g3BVtcAT z;r;fDHs4H+ePJU=_bVcuGdd{^}}74 zQpA%fXOl8`7ihztI2sXrd6Wmh%;@*>m<;OIyJl{^OHF@u*O1DrU{ z9=;T+3cCZNe9t7ug0=SzU$L%i&^pL#?X~;}dL4*V^z#w_JK(j8&2QNs`09?NZn=cU z8U2NFuYw2J@OVaOXCNNxFOF<|imy^oe$Ow`2A9!?DC| z@d1kHxteG{LH?v-koUQdKgmD^ZAMC?UM>1iAei}vRmKL&8r9{6-JIY_8w~@;U+1X= zH&O?h9)Apb-%+>KsiA)Ezb2RZhqxUve27mA<(KWBG(os!QvCFl>j4TdHt)Q8d;UJ$ zRSp!HwsQb++ub+bN}&1f>8bJgB@-*CAZZ-tNZNdy*KI0W?CMK3=gAJkIM@=;X-^@7;tWq;_G=3Y|Hs#ytA*Y&*qpPiDbR3JVJrhmmc+{(&?)|6{Mjc;i}t1~PVryBZ7#E?BC{4u(kelitSf{*bj*P{5-QY>Yy&eP4GZ}Gof zDhT(o)V$G$h*lD-6U)AE?pVNRC671gt?{9x$27N`+JeP98x@xS;5Roar5sd7%qCdA zEsqJmPnJaxZ1z%h%2_@FsqtU;#{4{Cy&l}>DA)MVwwpmatd;*g54m;0>{00rZ2m6e zcZbx<%zt0UGx1Q7e0wN1AOA*c{f}80tep#6;}Z$i_(btFJ~8^HlU0L}cHU*B!e}TSf$+^Y z#oaoLir3%`aZ%+sr!Nc=JC)b@`~HzX%W0rr*8|zbb@>;L6F^fO>UUA))?a6*A3%Le z(;KZm#M3PpOa{ygVsXSqrBnIoWBMD|{nk=ueO|knVDlM z@BhBfByRC~rgDh80U)^{=Nz2yM&{5$~{^ zcxL?Xe7nwwP=E8Yo0#X838WUU6=2_&pvLL(c>7=HVV&n5U%9_Ak8~r{C)QUMyUr

zf=ex$(0>*H|?VP}i-jGH0mISJMxuPd}zyE}vg>q(y9 zNHIqKcU`~lWDBYs6_Fk9S?iCu?QVl3ul;Mr{m+H%phz^9LAl%ZkABnbwvL{8gxcq0 zOr2WmfF4XQ%XAr=Aioz}sJmv;Hd_e)MA?Eh=O z0SWWld%U7lMU(S z%;v?Xv%#H$j6r?a2S~^8mMcCZp7+i#EwfY3E?_~`Vf17Vifbso(tN{3T>@W{UkAK2 zrG;;K5L;|>2c~uQeb>9J2`y{5wi+kieR>Voj^M<*4+NH)>E64WE>L&w}#`Rv=2>;895Z(Oh9qTu-!F*#ZyJr%By~?I6sGz+TB$g|y?ahP^eZ_aRb>+X zIX4HsHD-z1b6LU1>fvUF%gCHdUL6Mty2HsIE~0oR z)m_$z3Llg|NXAUo~%hG~) zc&C}&IC5>19>j{S(EXDa%IA<&f$?&KeF|zy2wSAhOd5`Q1jU0ZpB|H(*dd?aRQd(Qki# zpM=LF0hWhLNtr$pgRVkrcjz}+=wfN^P)Xu~q zZ&yoXvLOclWUYJKDxZ(yu5Oy7tFU+RW30HM3J9;^I+cc=EHfE0T^ykL-@6DM502tr8V^w%r3^vrAk( zuODIBHxEaTZdXU>KLsN_muS$~HZS?XTcU?GjDv|#SoonUoL&iD`w%E-<(U@PxCCx7 zRCBERl#89OWqL%voXkS~`TM=w$4s{80JI$-n;(@2`AD5GD)(?OK0!y8J(mjo)<0O~ zgEZlcgqYOuAeuLRsKCz*Jom@#g85acai7#8f8%J`?SdX%Een9=m}NUP)z_L_ z>F6x#7-!ZDHl}YfU!6(>y05zZYyvf)5&dQ7$*Yaf<8EjaPi6tzw}n5TeewjFG6e~D zhCP9Z{D)aL+nOOAiZ9CY8^f5B6LnI`aa+$t_5b`^Sh=8p5)_`@kHZk0v5ICz}4H1cYp7^JyZgKpEI@m2D?Bc!CW z9-`ip8+sdyg5o=#_*Gd?h)UlfFESDF=YDmWUz0?d2+!~e(OhF2a)UY@-hpd-HXjcT z7ZjD`a=`8veO5~(-K@I~M(&RF)aUpB6PxKcZ$=edwB_wAg=$b_Q*7~YO#sCR2Wb;k zgv-wQTfct#B^HdbpMCTAYoBKGquUHl{??zItlJ2M7$+<}JgZ9w_K?S6Qu}bh3Ch!4 z8#4GFLs~z@kZLsQXB6*v97C@MfQ-SxBLsseetR@9*z?697a-w0u;={Q&9_U9c6Zjn zaO{3R>3L})Hx;n?FJU4C?JY)4&|O24(fiN`OzwvXYTc=V0nJ*u^TSn;?YWfYXy^qi z?+#z!wL|&yp&S|1)fe62#2)ce4|cxl^fUW*`!U2vgdaIBXiwGzyC}D$u^sn;x~kz!vB64+CA;oB zEm8$54?hI5AM^mX!S4Z|?;w8i$V(~en42zeq2lbNR5N7%_dDaWy;;Zt%9Bw*T!{Fy zQr!a%H;Pa^WM?SB7^!I(>*MXcLR!_r$Tfn@x{Pp!e&#%m` z^vu&2g7RI4m;(vOZ;UpY-LAgx1Q)k196U{naQuapv^m)sgh%|?y_iL0bfK+t?6!hQ z80^)jcoW=R2B&65kF@;Zu=;&){P#5a-Km zcm1~cI4>jJtgYWFc0KiHTf!pc9oY4hHdB{GyJnDnltXiJS79#1h(WQ zgS(t2(8k@$faMf8sh3u$Dp>{@)7l32H3A`YOJgeCJH&g)zu?}s^f(P94b@9O{l(Wy zr|h14b+ZHl>aWtZNgzI6zCEZ#P#)oZ*F&v7-%?^=ikHW9rM(meWOR=<>P3ODgXx=& zohU9s_h@ndcjbDx=qjt5VtEM8?5B^;but10@qlgWRqi0GzrbYF=?Iacr^&CyAUnz5 z!PHJ183|uLPo`I&MfI-B<(jXWt+^fT*J^04t1$8b;aL7+^+(NUC?f?a=ktEt5Dd{-UR$684EAJl~Kj(ritnkm3BF&}hH zr4;H&c0{g-Si#it%ebx1C~l+uV}=@f17Y5oQR8M+0;YY9aP&A{@zdg_H1eY-n)3=4 z6k=enLP1b-R|#+tO^BC&cZSuoj5~c_A-`c68pxA$_ZcXYQ_J57K=S*Y9Ubsv+5G;X z`ze-xbl<@8wZ%f|H+-G2ehOEwoagoh%(`IxH*Pu2SVz4p6C2OvSEGu}x`pc3rZD)K zccl*WE=2AiDA9mCE&KX7i)3gfSJyO{Du!dK^s%ldEJ3_j`g+YE!Y%n^N#t+h{Xkdg zHQmiE9++{o-e1?Ruj_gJ|BmHn(gJOT;5E%KOM1B&c&?2<3%}?9``Sp~1luFtyHoAT zVo-G&G~dZ`Q5iw?do+$OJt0NsILwDfd>3-4g`O{4IjxrLfNv*he)Z2(_+EF?N7u3x z;^?20<2_AvPxWrsACZ`k% z50Ybw+~@LvT<2w~^uY?~zaFMjVRjD~MQonMB|L`H7v&f~9}NPRsQeKk;wlh}tlLw4 zK@sxke-!a?JA#P3r5x3&Bed=N)J4><4@L4y*ZtpbK94iN?k>@ibp@!$A8KNFCk&bP zWuXVodcyoPm3Pl%6ii<_s(OVp3(ntWb`bmP+|7e67v*L9D!}Y^a^#6QHed_sqn22C z0Q=b9oN(^&`E&oSp`wTna_C$D{634=hDJyDtP{fZxpDLUrsI~8@sp5enEN@Xc#kc3 zmO$eSU0KGDNANaPRl7zb4@9rH`l`6+gGD>Tep%mWz*}i+tyV+$r?~%s&hzmI$Zl|Z z`C1HJC%ON|@x5Oa+^?uS$X;X)9xTozd+2N+s>>3X|Q3*K=roBr+kDx^Hcuk6IF6@v_X`?%l2X~rl7vssC;R-Rm^`3($AGWv1j$20A z5eBw@ReCUjc(CagMX85)5@Epb{54YzH2yRj4V)M*Z@z!&Qn_kcBxB ztlQr-%y|A?Ig{uJ^iJL) z?!w3(_z)79od13Qiz(i-#IcB1=*iw8L|B^uRqE6og7e58$!8u|dOL*HziVu#Y0XzI z2fI?2NWMM?NJ%(A)wPfarlu+nvi9Xe^ylM&C-Yt4y4~1)(*lHRMh(v;{NRa#7>QBG z+&m{*Vq-MD%j z4t)72@o_>QSOPC74yJg(B{!C-uu(q{Vi2SY9Y_0Uc3JbuS#V{6=ywUn!lwuiiS6?o zSE;s#*jvoQzkVQ|!n%o^$J83d&zc|TN^ak;0fLeye5MyeVRm81^A^H<5Ip_m%}5t9 z#8aJ<78$z@CZuE0xpY>4>Stutwn)B-{NQ^1Q&*?tc=6G=tru1k$J6_Ia z>1QYgreUsMGEZ)pQbFxQe{pw#Z`#K3`x@g*`3HyR)dT1TPMPx_)js|o0M5Vy{oO4oo=4ifihw==C7IijEo;3H4u0s85 zHq?-IS0S1Q^CpryJoxz-#`9;D9$n0Zx)9P{GS>)bjL!ei@D|NeUPW3wpfae0V{_Gf zti{A&x^O<@++}S@Zm3isBXI)b1>pww0drs<84-y-`PY7ul?GMEO@Gf59D^5T8xiiC zSd%M%j^v>5U-@o&i>WNrZm3<)_6m1g=aPq><~@f~+FgKfUzq$SVOK~$J=;lIi0ow1 z!-QnPgx_|FXhkf;WAk~CZOfD2_!Y7EiEG-2o%k_!e$s!RT9Ew#TBj^xlb7c3W8?e> z&9Wh@9tQ0GlxOO-?1#omq5bf!h}y^UAhDMzAzCyNs_jJ*t0}YL(9l$D#G)B&ar#oe zvK`sG=H^G8=23odz1Jag&>|SqzWO+NWQ#OSc&v*2==l)S#H@}$$Rx1$q2SF1Q(<#I zLMcahAZeJssDbcTnsTa3Q+7OfI9Qgj_8|P1bfJSiqj>Y@L5Mbe%b;bzuAh{gcw}_V z28%0k_1dV;^xdrx>%Vc!oHlbwaRSyau)0i!a?PT7?ZKP5w^DkFp-n4I*iKv?2n{`7 z{;-LFuAQC!@v2#{JyD>Q>AeXwal|cFtspzEbMOtRnVJ{eJ~^v+PQ)5Bj+oc_>-zO| zJ+J@AV+}kfLG=u1Kk7>KYG%P5tAeN1g7#pk_+`JhJMuGBPC{ECEDpw*O4BUo5neBQ z-|GLI3(fbgIM|W56BNVSD=dkAfhMq<`PQ+oS7Tt?4NkMz%pCB;_bcTgjs?Hqx%ys5 z)Svqg7L4}T6+v~GfW6u)#D~XdA8<)}k_wZ)_#Qn0C{FbD2pkSl_hGOLcK^mU+c%cys4jxUrjs+WZx_k)DI zvu@+5`jBCy-YoWE<_As@m`PfwmmTS0^YYlgjuHjB0%89*xq$#jJ;#79>7nI*} zc(tlZLbd?X_t{fiOt}O@A2j@ybDW?gP4a<+j#(?LEH55d@j_ zPHwf{_#B4yA|N2)R&WHn?*RuNscles9^@*g?XwHB0KY6qWrg<`|-KNgMyFmqmtM=w# zNfstW8DR~T;yZeeT=a$}R;Z%1MZ86D+Km+X2i8SJMNbV}ee^TCj+~1#7 zuUp|5cAa{Hxxkl6Vr*W6!874wL!$_{(CSTfvr+%no8ke(o8neLaOzEBbiy;pnj0D5 z$;*IKYdE#b^(x^lCX|oUy@peHv#nSC;*sBu_hTCAl#2$<)4l`|uaF%hj}Y;;Bt`RQ z+FO$00&@j${k%wjlc^2d86Jw~I~5CO6O9N=&9Xpl4W~ZoRQoI}fq2`vHJmzhX@}mR z2l7Mi9KgL3L;aH*?C(iqe{vS#)jO{bwcgTB27!L*WQ9g->>S@b4#Cg1Y5&q{H^juaBB&Q+KRv#`d!_@nOxXf1Qi9UQXiR)AK)0Y-_!@aenNz z&XCfefOL>=-|_OHf-D%f-LEGU4uR)ejhiA3)1dIYY)M_ZHJEy9Zh5(Y{Mw|}+p#@D zA;8;wXGVh;BXHVJUKdie zfx&B!IOmGc`Z)>u>jIa9LqOH*T}JgjG(V?WlS`d6(CL*gisw2gJ={ITj-F575MT zD~5=jkspzdE2WD}*%+_>7mg|<v`SGdrhT1o^hlA&Ogz4f^ei7dC%Bi{52UuX z(lv5F1HGko>HI!RI50@5pd*Lkz0D2{L=?NCAvOCbw@w)vpUqs4h|L`~uje5`N+ycG z*6XjAv#u*l zV@=QN|K((+^OP%+fVrFdyMA=)ADnt1h)Ksl6zNCe(02hd<0rrz>1;T;jOw3P3OO_B zhUR@@xhz(u{<$!EcjULLHUN6}H?dqcVIU}`=UU7131jP zxZ=vHkLQTZhx-3j^6pUH+TVT)tm|H+kUz5rQSR-DdCB%ra`Z!BseuacTE3m$<|F^l z@^y9cFEuSG{PT0diw#EV64x=$jk&WvrJ82}9_sNb(gWu3-C|mWO3MY->%o2QNSQ`_ z!g&+$5IKHcP9M8Z$3_Leli&?|DK@^>u)xu=V|e3pM{tWLhw}OQ9zo1=+}eiu3=PW5uvVI(x4_OqZi_;PX>()=(0B3klW^aZwn`#y^Xzv`*qcpUeA{Vg`yS4Ho^ zZ86;s>?JDyEVr4^F(KpaSUpIaTI)Taz~*I5ufB?L{`A+ngQ!`DXpO^=Q=oW4j7c5p ziP~f{?`r>%|I908jmHlV-d&d;9(lfWCqg)qOxU|$@tO>{10_uk*z%WiCg)bw*?LdGmpk zx8hH1y?4U)?$`Q@=e3lYmWbcGabDzq71s>&qjT>rV!yAbu)b&xyC03+*?iCm z9t|CBzJ|GPxy>l|9R4;K=JGH1i@ga|b83hCi%md<+4}}zp8?>?_v=?>#NG!kfGgkJ zn%;2bqrPA=^WYJh@16VY`TI$F9qw!IAU9QJu!?5*yq5j4hwqXUeeit%I5=>hKBm zySYz$?*x`E^HnUD@f%slzzD4zZ=pIg9!QM)VN@aVvc{` z|8L)j;O?cP*!4&H#B)M5eb_h*^ICsc|F69!_eS+_ef4_BNr26h?o?TBxa5j>go79G zQ{Hs_`@U~;A_N8ejiec0D$4_?C;f7qczW-}9e}7vF|&y#8|0=H#a*L^ysLg!6rmHu#zk2?Z(FZt7+kjwzl$`3qzZ!4jK zs@1-T3C%0AVv-l__qKs<+2m61f*`#8w!?#o!VOYbJuaLz3;%OJ-$g@8op!YTi#Yy$ z-R@XFs55+-SkAHeyvVLkItwAku^mQQq>S>-7 z>vJ%RtuAZq&jK!|5zAu+2-irdN*eoEWWZQs!eOe{C_cw8D?DlC+zD5P=?#~%F9MDI zH-E!}&fxc~u19&q6Q<|5>e9p>gN>M9mYx%upUm(tJ&tG$goDHKiBVf|?dlGWCAM$NtpoeP5oG2T^;! zOszgZys69~`j(G{t(*Q1@!R^jTiLMd?@3am#Vk{>`_v}9%qZoXL;S{fMfZ?e$yQj{ zyV}J!=Lg}BKRfMau7SLpzrl1)4Qz2ay^m$rV`$jQFCaXKcy%jZ(l$1Ie_%E~6crhR zaP)^gJ{7u*c~En1I_OFPvL9ChZQ@o%PYO_(;zN =HQ#dQL2sYXXJ6vES2uR{~N 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%0AMS8y>5d~Gu=(q0N;D0Tz_zk`} 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

    8oy)C_bu> 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�nO>{=kWTPW`Y?*bvoxCVxYADUKZhg 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

    YOQo?E3HCiKTU)L3wPt7^RmpPo{%aU}73b5f2Uv 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%0A9OV;#j9tK>EYw*HxYv5VR+u&B7Pq z8orS0laP&-fD#)nuD!{~zh!;x-2?YSXn!xNv5wN-4FkEs3Z-K&a{+FC@iGxd7PyJi z*L2eF4z$AYmKBZ0)@S^$w*OsN@y{%5JnVYfIUd3(to;G9b%)^zpgK&0RqK~zXt4R? zwzs9gn|sbTW1p+@{2YA$U-es9Xn5JIX8s)iOvihM)#X$*q-hy_roPt!&N1Wpl1|3M zCkGr&4_D^FfovQ3M+ac?la5nB{Ygeq?z zxt^Uv{u^1c142ZR=sYMBTR7~boB&_e1XbqmD}$P@EO`p)(Qv{qJC;lwt;c~eoTFFC zbK&k2b=^FU$Pa3pCtOW1iR#ltUh>e@cFTs(pYPM^{)hgcISn8BQw0!@HPnvPQw|g_ zSGO3=p?gEU?BY*4{9<^hn~gMjH4s4CF-g1dT+sgWR(W(`3D`wlIwQqn1Qo1L1r6|` z{D{?|a$j@T;$fsGNB=in6i=EOnl!fGHxm$Bi8xUHMED(Z13clkjoDkz4gI!v1bTJ% z6KAD@)rft9@l6@9@63vB2oC$!|AsNHU-0PlN5+ser5!ZMyWdpRIzQ|?`nD26KU zhgfF6_=8qkwPWUo|2a>;2{m*2`9YeyH*2r_bB^m-JI-X26hW`3%ig`QCNNoy@N0+O zeOUACn5~E3eYo%8{o@$LordV!_IMKDc;=QvT`C0KQ4wde5-U#R?El)E=J7Mg|7(0qQD0y_!y!n#_J zURqF<`I7fnG3;()I4do23TS`2_GH4&5*Vg`-nB&R2R5J2B5dN5y@1YxtTPN+UrIax zQTVrP<1TDG{eQKGOPrAbgxL5wQ{i|CdDncH+05^rVqpn`Q zGf>?u!fhvJ3o3s(xAWX`0NMTS!rAwbJfa^RBzwWf0eBa=YBxrp{8!}bNmD5sHsFGC zgb)vB@gINh-17q5@)d0S%4O&`l>5t z!b?*jZ6W!dP}U*y0+j;tvvO42{&eVB47|zjabXGv#nm60^h!wOiGgZvuD=Lu5&mc{ zSBTP04(aEqiZ5|OzC=P!nUfN=Fb9&RT*Y0mXMlY6XQEmH4PdVcUrsBo54>F@7tE04 z4tKpd^yXj$ikGRASLE!ANrf3f4(Av5A%ASVz@(cLmlOQ8Aj8da5BWh2H224c(jh-T zwFfb4a;6p>fkM*MU&7(Zq(iK_BUy0Q8Q%3+Q$mpGQ*+Cj@Fw6MFCig|u>+gqzxUQ6 zYyOGy7jBO4LuO68!j105;-5r?!+T^w`3?SWpFW_xG@+99a=9@G_wWeMR`jibB>4D1 z$gI&J2q@FY&C}(219B!`+N7A2KVEey@gt>a zq98R6o1b%gTllt+#3Gdr<+XaIeOj-=!TBBop7{{SKywGz@k2T!wN2^E^Ye%Q++7ol z&(MAQBFKe%?MVi_C15E21P|pG7@017+fJGWpDyVf_DV!}=g;+_M-5ew{WFz?cjCzp zZ%E7RNw^r80iRR!neuVRz;>GvM*l0w&SGXwGNvV73Ta|b1TK0I1Gci+$Q%wWAgi1I zERM?qgeNq-QF+7mlWy)f!*;vzv7h9{&@16uBAAoGl_mkFH*So z`FwT=q8I;q$@^d9H^H|o{{z1we1RUzx>HZO7Ay$6WtW(aLQ z=l}8ij+T^AlC(Kvo*%eN&5-;S>u+0r@NA&c5v`vKE$k|b0@(cb+Z(rIrKFn*Hm~J! z;C;`?sX`d$N^s}4(iN!wyz}iRwm``JLR;%WLo&2@X~8&}Zw8qr5^lclMEd)lNS|^! zP9ON}gsNpvb2w&x6}R!R)hw9ei4$6{bk?bUQcpbLjW5R;o`GaIyJiY1U)aGV=FI&@ z3@Dzjj8dH7>(~3ROSB?6Ne9_!b>1eP2!5XZ=liJMWSAxbi^rgyFBc0u=7Z_q&ewuM zi|ec0i93$hxBKAnRw``Xknx0%k_SE^y-r1WB}4vbE>t#P&`M9}{cKu$joBf-7-g=I& zl||%ZBJAEMS8uaQh3CS%aw5fDU{R}PhB+UyH%qElL@}T;=8p`x6Ef{QgRdyjX5WaXfb9S6N9)2QJq*tj4f%&sXX5B+j{;&|e z3F~-@G-MB)48Y(kocB^TYosM8STkYgY;Y0bBjhT z{%J5`jK_i94drcNmUdfJVTytEs(A(Dvj~66Mero*l@;RSNj2MjdLH*7$@h_v#kmZq z)*Wu&aXtz1;qaGrHz9e#ZWb^rSY|=hLAB!##n68A{{RW_52EwJndtKxzx+S^@8uC0 z`kV?oFS%2S*JQ(-0{5z;aYjIdKB3mnCj=xVJ-LTp9SFYu@G9RB2n42YmgD5~k-k6i z)?dNTSsW^v-g@2fuXxv&6g54W^`Su3&1TUw7}Y1D%7~qcJBjqomQ%QAIy=2Vx&Fe) z*q|1W8huJ7pY95!&UqMpFG2pBCojwD->|vE{CfNtfnK!l?D7j6$!C$>^GnakbIKYv z;AuWT8IU)HlHZ#mzV{hHIwnfFJ0`g>nI)6jMN$v&JQLk5k`@N2r<*DB7vlky~* zmuN7YSP{}ZjN}&}v(`n+kpaR(37_7HMB_e_o>D0bN(JSdIK>-`|Ej}6{yC4s1=&xu zB=-2HyzvHxb|J-#y^%mw=l%;Doclo4IaNRS2EwQQ;Kw2P_A3);bI<5<7|x4x6O`YY#!^M$;r<=-<;M^wk=;UUzwrZ1?B)OEqpS^X_&m z&Oi8vSo=8~EKb9Dnz5vT3d!w~vTvO}n(mypdl#P74^ta#9)Rv5f(Q9~(YYVYQY311 z40{j#S9{a5NSmIX3s;R#;yY_-!hxhFMXSeN@DX=Qz(h(E9hND405FyEwXr{E6>^2_$C>Wj*8N5;9oCHq{4SU5$DZwdH&AIBcNZxK+uF?ANIR$!I=k6c+W(jiZ z3|uA(!oZ!J8y%m*A^}cl>VBL;V-WI2MEH6q`i|3|5;_ufy`h`GLQ$VG(hD1#FY!h` z4FLKC_|Y27*SF|$XYOiv&5isTRHDgUo^xT~#zd9R^*Tq8MRBLdswM`~wnO)y4##36)`X=0^4lDILAQlt_fzI+^$El*d>okf(exi8rbR8-^GUT+O$K9>T}I z+U|~q)Xrk*a31MBA56s+@*J(<=dZ6-R_Zh0pud4HOW_^xtH((9K-YcHJu*K}E|Ug0 zDa~=lT?0VmT6R&JB3j=cHRh|RNismMZbhO)4#LZ2QG~Lkk4FO%+ylo17EnBbbF*8h z)h?8uM}ZgI{umnuZnFGJ(;dkGGg7k(7l%@T{vN;i!mxHgzwdI=`pA(2W5xvrQV zWWljk{j97BcfFoDRZk`k$=Ywp?OAN!QLfu;j7@aiAH>_ilWq14z2Ei>%G0Y!1a#HF z{o1z=vyEWu`xOVj$I9(*14mwFBr7x0L;YK78G`lFaIx!nlkE%jt>>-a%RTG@HAqjC zn>Cz#atZF5JjG7J)bYo3N_=I>!^5k_JU^2tbU0+F6|DE$FYv4QgR$h1hru`vfSpd= zE%|06xIxADTz|w9v@Y`+Ngh_*qMyJ^CxMFE6LcEr(yczdy4C-dHNG|nuN^4fobrf0 zOagITWyUPt$w2OheC%=Ea&Y0;rwkfq9rz)H>AXrRIv<1^9i=mzO~FC|z9k9iJ=RdM?P(>2}3f2~fP; zE|s^p72s{NKXCoFKWK}WB;Hzz293ps4|(r8w)MU)&T~iP7OMdTtE|kv0}Na5UDT&J zeAHAAXzD4kJ{&%~_59pp>BI9nDDQjgHv5A|tgm8ddlS$ST2^xS`1#?5PxXsgL@e+w zyM))kZtbn{pOPk#+KC~5*5>$L?;p~bRX*72$GsDL)v}ElvYKY9e>sBe0kfajX^aIA zZT-Gv#O~xm!w9_=*bb0M_<@ghmIXZ%ntL+loFS4a8xnh_A@1t`vfVJfA~mMgXp_+`_}Q0-+@BwsT>s( z!b?-}g-ll`CV|zcnw9FdIuJxfdn7pT9!Mv_JE|0b?0nUV4^xkLw*oW6!GO1gGY|P- zu+i&;bMT1i>gxmv38*XMTJ<$n9NuVndQ|@;iWfW1R$9d%tqDYr7qVZ?K{)29-*i3c zJR~Bcg3kA^X?MXB1{6=#w#S5WnwSd;ADEgM3_T8CaqgvUA2I;!L^3ntv`8M>-6&C- zqb&<5FETSWas2r?8U2^~d04J7hd(cx_t&>axJbRQ`9`+4XaAv}%d#YE$=_-PjOqFm zF}&Jf{`vev{=jU|Xs%GbYgYpx)s$GER@Vf$!XB1PiL6`W#0kmI><)AX>ePN2*&Rqf z+MM5S+xU1qP%e)~rxvXbj$<0;Uz34%Zhpq}<3`{gv$9u|*B(UhUBAo%P<*3#5!b8y zh$8UG;bi+O6}qi{GLRm5y!+43@j<&~k%1?dFnr>0bdiw4#pbQq&ey{6Sl^pMH9L-H zVrZKopKXYpx3(iB_$Sc#hYDl$NoU)D6CcYkZi5!c$TH;sm$E?iWnamcRu4egZ~I3( zwYomzD9YorY5%xHdxl88OCGb2+JCRt&Hhb3Z~h*#aCuQnUkz#x(ZAv}sRM<-?H^op z{M`X|2q#O+&FX2vPyl{C=r8o7N8>Yxb>Gt!EJAwzy`dLer&~e#QfZ_<{Xg=an7*pu zjdVaF+VbwLX9dtyIY>{ap9L21}`0pmjBv)?#&E_AN(xX-bLL)7QD+ zk@!s61PeMRX6HV%D^sC-c~AZ78KX?%0bO+lS^R1RczQziyTi>w;7)EGB8!jm^f^-< z{9f{^8r;o^PHU^L-0D9X8S0U-j>Zj9qN{#tp9PWUrn;@)u_B@?&El0{{d8vK_2DKk-u<%S_>XqrQdcBEZRrV# zC25A#TC<^MH*l5nD}Xq^fV{MDDs0epKfVxv@F@Y^3-<-0onYLk=Q)Od;Y?3HI$xhY zl>v2|za*4j&e-ZdlIL@r^BeM)DZ0F_xm27CW$abR_cBDntL>`KM|>i|tLJI`;|U0_ z^Gd>YX13Q4;Q!DNT#ZEfqx;Dty_YT`zi6#Ml*RLw2*_~m=UmGnTUb{&$G*U44Y}>B z{ZE*8g52kZG9@$4P*w4x;;n=$Ap*>=m+L8%0F+b!KG0ZdgovlFgY7 zMaHxyq=HdC*P(>E+sB=Xp*+9!m|+F73y}PBbX6lj^riNTgtEPlfdrC#PkZ?9!WLJf z(677iz?EH`i8aIsM|*Qt=<(r|JczfNDt}@mVXJ>&CMog`Ir5vUcoA1IR|i5)vVsql zr|tvrk5A;7> zMEmtZQ*d{0a{+V^Eb9O0Q3PdHe^Aq1ssO_KL00HdWY5a!tfp9Gh=yM>#9b%V5iTmn z%=`9Q7>X0U`@CGg)1nk!Bl4`dkU--q!zDYfVSg}d~* z+&AL7kqIL&9{7H|t75C)=qIaHi*qjQDWG|!$%*6@1Cl0dp>BlN`EX;8gc?~kbig0@ zH1;L!pZ(8UGca}^R=*rSIBrw_$Lse0b$hV?*%#O225=!pIGDFM2%3?TMkHkf!IzQg zSxT8oP<*Ls?mqR-{;=)s!^ECGavh|1{%PwRah@OCjjeMne=$&8Uf}{H8GB>ic+?Xb zP5z>

    X)ePa#!c{0DX{X%vw%-6GhKqQEsXPGsXC0`i7UFUJD9sDmJ*!J&>|HFmB*Z;GJ!KPeA z9z)w`Skis+q5Tc?zCDx%KW~O+Lb)r4NvGmb{nAyU#@bqd##L|S!ShoJhjuhyUcaud zf|l<~&7>mS;n-&)US-w{81F`smzq=tlbM6z%C4I*kitjc@(;xC1e#hZkMsG#q9dce z+8zieMH%CeZDx}JxxUk%k~KzkG43%aPgu;O@e52oTc6fUhZc^_EE~=huuSESI;T?v zl&=tL2%|*vzS2))twB-&M7bDLdLDU$|fN(_;;9Y9gJX@a*3gTXFm>&rPZ-rU1sl$<7#5mSdH4)DN zbU3VM(vu>4qeyH!ZGJ-x$iK9YitiSZBQ;<4cVW6EW z#lo4;0p22V>MP+y{=UNYhB~7QJg|p#lJ{{S;@>g)q?K(~(YRs9sjc(X1HhMNO5w$) zcfg)skC_`>0zq$v$hc!wHSBe6Nz8m{4P+%sccEq{tX)-X%aeCFEf%vo1t<~eL(P)0X8k|nj zZb2X;o^D^sx&y#3+M^sfYzlbX8Kszc(Egyg9V0|F5(~;b>RTTUBR>&!kON7yDUw^A z_oR+is<;BJI*sFnZG2!4-masc-d+OYdTST&zh{7ET+y+tGJh{W1pIQ3=_kV0)e^i? zzE4>x3Dd4##Zt#sh0bZL*_pD^{*XV8HyT4{R-+M&>F0HlndACCw13~?hBQ0%V#oa* z<=bBgo|CSE71uAY-=wpI%TY<5F>_H6_rQ0SE7x=2-j&G*9n2O$yNy3ZV+8p}Pw8ff zi|P6TY24)j>3DRXc$X-~T=I^AeuW@JZ4%*=%$e_q`h_5zNZ{l8m$IEvaM{DkSGZt&!sCa34z7MSR0w&M0iarG<0++%m+o3(#u+{hJ zi^}74=)0|wu+V*r1?rc@)gHIi!b6kmBi6WXfK$Rnh@2q_yw*vc!YRxI9Y03I(nO8G zLdxWg0$${AQph=zcj2BdI73Hkp~HmuYjmP`LiN35(5X+$IQ=g?Ug%`}8uJ*!^>Q6; z$w=Op1m5!8un+Et2AZWqcOU+81oqTk*9R?-p0n?B!jM*08n|$8{A_PF%Ig|zS=z?y zgYesxyKht12PT2Cyx|p+Wlj)QcjN`l{57!k-X()s;X+?cO75Xbv09#MZjxSU0;QK;M`(Y>6njv|#9*PULPR2A?eRn5m3wqmD zb`)Ux5xJ~ZTh5~McEGw6w{+n5bsl#TjvT*G^+?8V`{QLaw`nF-z}K=IIpI;(aNl{= zQ(v#8L)@FZwi#uWFq|N~iH|q~gvT!RJn=#D!tpuJhxQ|B>S&vc_B{<%p7 z@NF1D&{!nGS-(EPJIim8x!rGyx7(A@JqEHVa1j1ltc1gOxjbLblmKHUioyV|deHUc zb*8_R#N(0$E4A$4XCE0KfS2QiQ&BKzh^uRl8~blH9a^JBZwl*n+T2Oq*lR_Z>GMJdt4_~kJ z1&u`tXN39Vw);Q5JNR*O1^Mj;I)e|=?ec*l=S>)QyZ(J%OJQNDz}gd7e+iEuse4RI zHK@`oI^>by0t|nxgsp{?g2+qCs*2yrz|UfxuBpIac-xm!`p&=dnowt(pXYWBf`t8@ z9mf|ETHnL1Hwwi zCTy!N;7VwN+8ggO&^C{+&=Xw_N_!OfiM{P%cK`5GffnSS;=B`cR*S+O;ytxw!Zkqt zF>Y4w8mWwQknu!#BI!DkM@UT7vp#74eH>*3r^$%QsUS@MY&+r4Z;7$>SLRXS04sTSN|7kl1s;|BCzO=Jl& zWdODu%L6vH6VRnF026zOM+0`_vQ6SbItvpbDw)= z&Y3f>b51RDWf<~5vNpV%-^YUTke00brHa@6Qa+ObiV4lxplgOR^IiF2&`i{|qVru3 z_zp1bKJ?LXbNn5jnR8`kQ5@yQ_*#_Lni6Bt`gdy^{SuUu#-#7JKOGWo!?BhGo(DoKNBc-?CySeLmoV6w`?F14*~VtA2dhZ%K*hE<;&_a zA3;+uy=~q9!QoHb`Y^gzGz1E^=zP%?ME8+7#P{ioZ>IvfQz4a|i|8J0icnkGdoS{v zn_f$Mbx_R*>@n%`9<2RskHrlAd~(|Zx@V`k^u?onjVUS7)S$Hx$dThSRC=*xgz3?Z$jnp6fHX+MZ1EkJKk0{5NvqYtCod@Gjew$))fl~*A3V?pf&47kV zc_8Y38}ATrD3G|+DHZZ66C9E6X^r`!4-0l5sU~1S^RPI;>;qAs6YPzokF#R*C1U2WZuz4SG-?&XCqo^A z@UZbjmsgHR`5i(yQ*)PZG0$!lf`=mFtVT<6V0rlXqio?|AYM2_bTuRmG_Cu^t`;*e zaJ)cyUo_VJV)$>h!krbIG3zLMeZFqK$GV(1ek;mN6=+l?1MXJ>3q~<%n|`r_L7cbm zUPkhfq*)L)dk_J*qnz(ete|t}oO%fRgd6fRU&%jZW9pX=JhJ)cW>4J#O;$c3u|58P zzWcpk`Dh%_t57|xE$ji#=*KF?Tt(+Nhci!|fBx3bd%PLAEj`ivX^sAz^MNWD;47{@ zY??>@T--eQhu7mJH*jL>elgI>@c!9u7nIM}@2P5r+L<_@a;vz*{4K(pvx+#-7+a!o zO+`poeV=&&qX%z7BSiDT;uNSiKVk&}#uaa*a7O~)5h0(kvUH$ZmC`}7a0l2&;~VRC zA$_6PNI@od)B{8pQahH6qW_g8-*Kv`AOe_2>sU@6Il3vwq+sG-{62`Esd3e>ln&v5 z(TyX;?_xGMo=)I>A>9uMaeM4l+lKVI+HoGwQ`eF}b+Gd^fd<;wc>)EV)eNEab^OJ5 zt@{)Sp#J8$*J2dufN-wu4Cjwr@MV=bck;R!OnKq^jO}3<3<@)yOg<0`1Fq)zo4RwcTV?lt4qkU6|>siPG6{ob+>n?I`vfRwpMUFG}HzS_?u!}`7)ohy_G z9MVV%d?9{e4{)6Ifnm7;VM7;8!5*=j=@~!KIbD=ctSnRW7<5q?{}_G{?W-J>?oo{7 z=)A<=5N+o2-WmG-AX&Y}?hW4%d+cYC^?+^J3YIr(7V5m1D5;%vJr z!u~#g3)`CS{XSc4zFs=D`Rn>|VVL%bf)1rI4uqc@pVz_{p4l2l(vg$pCsm2Hlc&pN z$DMZ~oK3r zNDMfwi}Gd7}OA_G@Zy>SMlO_{v*TEkjffZ_1N7;+q_@ zOW5=GbhRD#0b*DCS&mz#15?<&9n^4x9=pAGmZZoou6i7?W_l(D6bZe}`#F#F9h0`r z>RS!854e<_xwj@41wax2R6wi0b2i&jFgS3Ip5L`R1-vA`Eif`_1-}=Vb)IBU*z6yu z%g&emI2{~ny(z3h`WWuC)c!hZ6ARB9k9C;`X24YUWXH^WM{t+2ljFk}!ZC_m*>;eP zBo?Io(A}wThVp|8AG=8qv@HtW_q{(%$brt0FW%=5Wf3Aj9yxbAuj^7Ybkk{a6Fth zySd&0Hd#@2P7{X0c5;d*=>`el2T7W3$ZnL+ZGwE|Pz84Y6xb;{C;TfPoMQ}fj)}B@ z1`Js>X+?oBHCJ=4rz9L2DqO@%6ny}H4O$8-n;=~E2q#pTn{kGnOyp{lCP+_hZ#-R@ zI}rqPD#hZ=DiN;0%CYg^v`Y%P%dzR3LUyScXG|)u}>1UC@ zQIBGNDEe9m%y{fSbnV7}>S*zPi}o=``r2PZZ^iLKAbcv*t30Hv0qVcTJ}`M~y7}H^ z!$Q|q2GRa*>&`EkD|{c2dV8Oi={1CB=I|dX@I3qb^#VjnlXz&b-+!?MO+jAGNK7Aj@ZyN?gt{A%3p2`CL8-B6U`M#wwciAd zZ{>gHudDOIV)G)(+xxd9KHq4pEvbMRZ}jQublSO7;N0O))#L}w!Ggt>j-T&;RGar*X33HMY*Ifd0M0 zpcCRJk`-(9b$A3fxIF$ z<|~}qpn3W zyNSkIY~Goz=!8t?DY~~)>2+-%h+*s!U*@@nnQj%E2$~T1j4QJTK$P!v(4#ehlDWmt*E59p=4GE)Ba?l zKdP?@&6^#TMFf6pT>reTaj8F|^Gk~|ALc#C1PIK5j{J+S%zx((F-*Y!H&+$hN`4Y}y^H6_R7cr>F zLw*O38!H+6S+8t4?sdFLv+%3fJW*RwPRqIH&prrX=EI@m+iGQ))G_V9hEk8ZHX@vd zT1Q5ho!8cS!cK@jbfiTV({H8SIR6CRPB_T#SLqw41gmFn9(q@50yVk4t`ohz3vl`S z^$SK4TDt&T{$|(ZhRfe!9+NND_Q=0{;2P5-=(XP z+6m@X(6Q&NL7xgXKk-)7PyTA}tO$0#9L;0fE%XkX$DaX*Piy+yO$w4*@Aui;raQh= zVEwz)da2rA8tpr?(}X$!A)4w5ckxNeT}eu|%cM0C(V57Q5q{AAbY_7Gz0rA?|Kdzbh8mRIVr1|84)>+E7Ra?Un`OV+N_LI31 zy*EG*dHfT)Zf#Ib@G>BlMjpK0$5x-0i}ccnM58#LmIl~vdFa(ye`Ftcs+2mV%c6X& zPxG6z)4tsV+@G$R><_*NA{mFyJj%WUw8MjzsR`8JNhK4ZX>Y23{@xL7M|M=4!>%Wu z{feAK%h>(%tEq|R%^LI_z8x%;4zZWs@;m60H8HMLWA)ub^}2XZJ+wX&tG(U#tLpvr zcO~N1=~Lmy?vGnhq)pJO`$=p*e9yHB87UiV-cnkXVMVe|G!Mdg`z_)0*7d91pZ8Mt z;+tXm)!%bn(Tqp&0?U(bzeH9o|N8sY-kEdQ=Dc;@)IZVv)iD@x4ZA-qN`B3#C&1Q~ z6X|M>Ci=|1$?q(i{MW%-Tj$BoSzV4W6T{kjMk=Sq$PB8_Z~Sik3W8OD5?sReW>2=UuF2 z493jxXM#a&UMSK})Z{TzPd~_klHG-Z`P-S1-mo^lZltET*-t!F^w7l=L%@8ZGN={* zA^80CZcj$nwqtgK_8dhNAyW_t9ypjyNqN6EDAPVdosJ;B3;0*nD!)Z_0J|k!&wCfs zVPuOvt)hGfh@1PRyRR+62C#4%mJ?+lJWfs2K|GdyWs@ol?UI1yr$2x*IUs!jqJE@ZI z@AF!9P2c_z!i23mV60)n$1B>Wo z#;^yRn&q#{xDp6#ulVK|I-&c&FBcXABbx#M^`P?n#SnCV=vz?5+IGPQ+AxUp(k^xU z_4_{QJk`Q-1B;*Zx2tKA;*7?$tL^WJiWcqwtj8?0%SrrzXrG5KpUZP_w&?kq5_2sm zJ9uDM?ad%qChsS7eFoi!(Oh}&evK^v-n>Pea(F+wcV0H^{aBe?0HO)MO|DrZ9H<-( zYwLJ%+h4zjgsM^g_A^*NJz1*E6|2;znD)f(?DF%o2*0tQ_B5pSY8&`LxYl)k))#~a z&NvZpKL-U$)7L@XbFj_j7|AL8K-jqbg0Of$^5@(5khh;P@`KzDXriNHk>Bp~UhgUc zjso!f#8i-U5sH(M4p1%YeUI)NJLrF$aT{v|c*1=4i(3BRQEDoG9!DY23UkomN~i@P z2cC2J*o44C+XSZA3DLQca#U=!_hSZ(PaAd^%|vlu0V-NC(Z`EHde58Cq%L&N`iMPS zm!qO!vmZg9mSGNe0bneWS8yJw2h~eEC~pv+ffeHocoj{y&{t2nD;S1CA|ne@Uzb=w zu!oyu?H8&GwWOY?=Br-`W?j8_n)#8Q?~A^};%e&$-=z_Soj!x?6r%(C`lElMb6k05 z%R+3MDdhh2UCO9C0m>((gx0pzfPt!HFVlVo(BkwhZ04x}5G*onlpk>39DfJFi-SS_ z=>BtKe5accs|LOZho~0Mc>8FpAy8H?t3I^{;V{rX9i{YE2Z+48|MtF|*hr;EvzE%UD!}r}O_<2VH0-D?nn z<8loRZagT+xjuE7(Q80*C zvDo)DxOQ(zU zwQQXi#IVVxj7|xQD>Hq?@aU&9$~#A-pP_#GXd?)x-u=MOSRbTnQcel%%m8#@L6240 zs=)M#@;l-$9H3Q^W(MyXx(D-?3JTdf83r9DhzD!ETrlg%WPQGFv~S3H1TH zL_9cR6Vw1yEEFs9MgFmL-=Bg#^ln|U$Oz~!dy|zX$agZxpuvH76bf0T#Mv*hwx&p z6}?9qca{KCm5Y6=&gk4yK{>Hw;t|pZdkxj5GBOH)RqxuB^q3Mbd?IRan_&%*N!RV1 zV{?O#zY)vn-b{zhgpc=?>OF&>f5_V>7eql7?fx05eJDQ1MEZ!j5vePDIae?)XoljB z2gn`XOMgs+Lpu`dc0WOO-biA7L|HeAYiVrnefXh14myS}r0g<_f+oLIQ`z1)f(i{L zr8Eu{-!~CmJ#$q346LR$W@)WP`?uZr7rAftXk6{3o#&!lg5VAsrCq!#VQ_XVuhqvS z1iJTiI@r!V2hGgc3E?*!;GXZMdy~oHVf=pH;GWrdNO?@aN$|Mm>=E%Ew2zkDqMQ#5K=X*01QZ;eaEH57 znO%>Zy$`Kk+;lp7-Uw3CaXcq9Q~_-MdQrj=HGjSDDI_uNCr`!Z2~+iF82qsZTW{n` z74aFx&uE<<8-L{iUu=y71D6l@(*$5~YH2}N3925T_3-LQRtr1R)^$!cDDRueAqu}5 zP)E%>n`{0ANS7^s3uj3HZ9Rb$4*B`uT7>VYQo|D{=*S*fT7>K`;uh7Mu^axd^Yz%| z=_VxKLaKHq2fQRO{pp9#^bk51J2!ZrAJ;^eCk zjWb>JT@0~+$j)2#msQl}bA#{fj@+&-0PF(zl=EXKpTsu(sF@5KqwaUj2J z@5m?fvBdecDuXc#Z`o>`!4&|{#Irh z%ztc5c49ses?I%S5hZtlX&I71f^_J7#XO2*P#v2k|sB%A`aR6iVyo9obxFKkCSx0 zb9bP;eBJb)$AXQ~`fYLeI!ES_2*_^^oKNVh29MdEw8zPmLcy-DFA}Cuzk(7PoyF^o zfUbGoSXR3UdJAS2Gmj*K{dLre@e)n2(?~Z$_qRT}r?;3xeXs_ao%Pady3_~>qaSX6 z>ShVl?(@r5M8yE+E}`&j&RB5h^c{QGvL?uq-1p<^Q%g8?+j2nZK@1$G`(8tW7Ym28 zE*=1t?w}wuf@sFIY0GoK1{sg(dGGgXgg!FHj2ExS0=9`yWTgFpASPs+=FnI&FbeiM zOIBS1AF`)f{p>{ctnU2BiMv$|aG%o{AImveXg2NrygfP)aA%+Baxi(M7C!B0bg69efN_#UG?`Z* zWbAqo+4P_qvUBvv5Zy`v@7C^EhtZ;Q!<^X!c`SPp2y5*!uQ-A9xQQo4XcbvAv>4S% zPN|mylTinw`MLtYWZ#=@*%D!ZV}i-&|KvAib~cjp8bR>@RSgMc3r}L;DdNGey^JUi zV0DPTH4R<_C?Zl#kWz2{>-Wvvp`~LWfz_j9-2uE7XR&#cCHW3oUe0NRzm$r(qtZQ~ zk~pK$mKvXp z27c>}6Z_9Hdi=-FHmD+GyD#|f=hwZTlGclC*m&zmt{DlZZP+>mv9$Fowt6TotxED2 zt%*7vmbN*Z?^@vbj2=aBmTo+YW&450# z^R&OyeJ>1p2KyZ=a%}z+uePKs(^Vyd@)&V)@hikzHNZuO{Pp|`Dj8Scxe|iuuTVAmSY4_B(|(73OwLIe;k+&r z%+93$r{2Jy==pHH{Ehu(u)tM|jVDwG<_J(W?p;lRk58*qWge)27JFY^m3kix#@;je zK8!>5p-+-cc2G$UkUYXZsXKz~H&PMV&};sskUkin)iD&=X-C+6_ZaG-bC#zRp3#GV z7QE4xt>XSza33dJiv=;`q9VK z_}Aa}b(8BhgEcI!bohkiXSoS1E}iY+ZqlG^lqZ*GPw5Ok3l4bWYn~;|`PM zznhJU*Fmu>_EJ)2IxsV&pXyO$3N-mFL;J+E941t|GM;O40EDdLLy})mo;jz4J9V_K zkzi!%$5A{jwC`+u-y$4262DrqO&LOZl&!f^cA7T^x_{lbpmDYwN_^z`u0Z4io{Na( z)KH-LQOH_!iREoJefLTXB*5~U+`-Yr1et)G%Q=DW}Cc?J&~bl8OH1;dvv@gtnR$j_XqA0hgIA_F?NMdYRu zBfrSPTzsXlc>)~Zxms=0i{_g(tdQE)kMt44|J133b^nu}e={H1dfeq^zc>HmFN01x zWCR0kC_jB#=^G`lQIxm$M9Hwp!1pki>_a*DRSv@90O!x2Ke|GbL+=ghl``Py>5N-+ zw54!h2hp3`$Ccpawetc1QfPETljXbDYAX5%y_(k5$8HGc&2WF!9T}a-`8os`YGx>1e?7rIj zOUQ2~nMP8Qwu$p4}Aj`~F3qd1_mGpe!X z4Z7E9eBn;9P&SP zF{6Dz+eym8?`#|xm@1OJ#)IPQ3rz1g7`35!eq@lPz~i1Xm^iBS@r9~9+;ds-(p-QX zto)_LG)8&>bVk*!@|gU6zFo?XqC3-Q12O&0s87>))FolsD-IHQJa0ksn(cF9LedZH zeG4v`XgnvMF~r)#yY{E~&vK%5w=KH6dLRXRAM_{UGH?qUwXTAJ!wmV?nXF-g_^s3F z95FC~g;Z7IZVpVnD@5<(X$ivT$ZEOhkzJy)P3sqLh$r~|CYX5G7uhA#lcDqh*0Io) zg8!o2F?5e2J1aOdRE_k&==<9bv~Na3j|IFHJLMAi*rtA^PUrzha55|(qDFWFSN#K` zpF^_YG)v@<2s&gJ^EDc!4CJGI;L)Jwud7xWkea$UMSw2>a^|;u{?=IlE#eQX$+$X$ zhlW7`1_~E9`+Gm0aiX>@hS4WKm8mUxfr{%9ZR~+L;C-dLOqgvs=t-;W&v_FDuem;R z(CS2XLi$9+v5MSWxP6F26=t!!5)C^2#1M%yp8duGcJ(>2tSF0@v`Gf5Ca{j`1 z%LdNWx1}j`i@>IsJ4kQ4E<1chF z%%8*Xcj5=<^j*L+Rz^3f^NHa7Yg>&5?R0R@D&3AS)(kYyIOM@>bU$~u-eH=?+z)hn z)H!>tqIuWC9Zu7rlmwW^L(-h~TA=S7{(ws>ANfJO6@tc(oJa)KH#%dD8^XY_3c*ng zZ%4pIyj(1F9{C~T1C*B|&nAOHE?1grWWBq+wp@ z>(_t3-cLvH*_hE~{;_|@*F(L!2g>0vbDzg`Z(AsRGNM)bTLwI(wD^Rasv1u8)_juL zmIWd#K3=)G9ew}R$Wb$O<2vvGisuX0R&Ta5r*$-6Gb@D2ukOp6WTJIoLcX2$figPR zc7|Tes0fIIyGHhL?M#JG_O+4F1&(5H^S0Ni^3TZMRxRz~GUHtb5AIUm9%A$Nb*BDr z)7QFN;DoUuTufX_@09X`R)-$ueb@1W?M@MWl00^x?cF#Bjp^1na9p}lRMzZ(kBuYR zib$-EYx|L5@#(Q8_O_f1B5=I!+eN_b0^d&7n93gwfg9uCKKDp7V6x_x7x3Bj1}63Y zJ&tvQrkL|b91WZ?&rLb%9awtn_|N}`FEng#pQeqGhcfxSgsi7nd~t(Zsr9!aVeoBv zh`2q?70|2=9;-O%1v(F|BrtmTL)`yU{S>f9$L$Ak|F4%IO6?=5FZfXVlC%5N*0>2= z+RtJ`(=uU)dCq0Y3Qk&{`0uA7dcHGO&u`L5uWEO7n#S7tGw+! zn==_YU!I!}^rgi!_~&sqD2cUCykRFc&NF~ZkN?OEY`lwoOb%P?OZ1*gd}&ht6cYcR z_bcTn9f`mSZ2X1icAsA*I=3*%Rf8 z7wZ5w+=!!yQ|^w zd()RPv|#8qR3d)Q*PCp;Dc^GXBF-Jj$p3VVBQ%m78pAHWj$*|abY7pMi%9F3xA|we zcMs)}7K>u#dtIHCSNU}mrv2RdeAxJ{v(EQc~m@}nVI}DfB<1sP)$~+F~ z7B8YW8+Fchi#OU^%jHkBBw%u{Z!cC3k4I7&`-ZT2);sLa2G+@-dw!0cJCEi(HQI9g zQT3ZSRpi)xP><}LhJnw{Q$c_#_-&u!49(F^{$oY;1D~d`7btGZsBBE2Tm0YS%Kt>G>Wb3N2eI}> zCo2^-#6m!a>OlluxoIvjuL)rm z$NP#gr0+9beYN9v%D^G*mQr6gWN+vi9hQ#qM(c;C(27~X?k1$|=)m81Ll0_}WLE}E z$iXPhp=)_v$qSQW>0M<1{JnL*y*=Qbfz?lP(+1gh@UZ*mpvKz-dU}M* z4-dPjw0BNr%kNMut$RAy6I;Jp;cce5U@x*)Rp!JSJL|Cg{E1ZPQlAsksr~c%&6PWm zs(iu$Bd^#DX>+6J*t%M50N^YU#+<`}ziv_B>A8Q_1kh_g|8FDa<8! z1SVg8HJsmb8>ZzDi4~OF!OH;$TRtYpflJ4$%HrnHdjC!<)kmqV2U>;pPD;(AbCLnc zA@zf=b>K=B*D?PVwEw(W;%%qukcJscKG zuN>#m%zHpc4bMLi1-zK=n`N$WCyb7&*jV1uGbTSifHq8`kSZC^6vyaUB|UsRVk>JN7{Rp)fr`@`EE zon9jc8v$uQZObcn3m~CTLd)M81>V6+6%#DcKy_qo|Msg^@UqolW#@^ezm``9)#~Wy zs0N_U8*$ZZR0Q5Iq1j>l!WBCI_%RGVguz$IU+=TuF9OE{#$O8cA-~24eyG(|Pzw$c z2_BNZB?ICK5;R|23jhNQ4tsRG5;yywGOKFMp+>kziyc$kR4Sfu&E3g%PxRmW84Km^ z-6;#h)^in9?C?}@e-8HC1%!um-NAn4XXCHiDuA71Sz<_6CFoppiCba~hbKorhz%H{ zdyZ_A$HZI`A<*jWx8O6r2=}CX?gQx!>jvOYMAbI^g&($D4~hSJ%>f3%e(hJ}Zt&Tt z)vcFm;XuNv)r?N%Kj(;Wt=sPgLI6oJy@kFRxz~9Hqe8Rz1 zZBRE3u4;pnj>UbyK3xy;M9*t;GyHy^oies82~|Kg{DI{y{AzIOs5Om?vJ0#zXjPr> zL3q&Dhn(ZZt~tXl+Qa*K4NzPdjk;jtfmhD}qwWE^NnsSfDO|^fXV(As^NZ)Ff9t|K zEdCwer>2HJGZ52GmU(V9ju+v6n3kzMmYmg+=GJ{>=!Ld z-;^P|avH;ewTf{)xIWF(t0U_PNWLE>;=h;!uIsgZGgzwxiJ)rmXs09WTUeVW*^kag z-|t^fR9X#z5g)?Uh`LeS&wUMrc0KkSaPmzEII@K7^orc~qK4K8zxp*N?3>6+Hjr8i z%Nb9s2F)D;A9EWSARTk~1(TBo@TGO-O-*rUSk&T@ahNy+d~`mll}>@|HIiADt72dC z!4BGfP8MObfBooT^R7>S2$#po0>@2|UVNkPaG&`VItRI^#z{2hYr!_E1?SH^esG|9 z;q{>xC7{H6(oi$tIA}7;$z)eD1JW+xo$^J#o8t%4&l3xbBi!-E_+9$9lWAMgx;?q# zShtjW9~9klpD%iX{7B&Z4LmCq^qn-yMCf)OyaRTv>?`;l77i#9ndSC4+Q7m6az?N2 zmi_hoyS~TYmxU6G+w`%tQ8O>a<_CVfj(^+u&3d0k^0PTMF9$9S9w0fkFSQu3&Mu$m z(a;8YM6UznBa^`6SgJ8M^AhlDKFFN;=u@ajp0es(i{gnzr}jVYTZn@sdx^|DyilCP zy^~Yq;a7`*K=bj5uwax&dEfrP+h_KpdsBUjp^=|363pB$KGm^U4DO#{d(r6|05hNa z2IR^jd0Hs8-%n|J4#KaIfBmX)7yJNTr>1JRpwuOe@vxbd^=e34NNL`qYk{ayPSd24bFvM*rIfQP=_p@BD2z>78W$ICCu0IS?+ z&dQnv)NVd*dTS4whgZ3I=x@9G!BdJp!Fx$j9NfnD)y0uxw@zB>Egp0~T}`C_P0=kH z1dr7we-JGL0=I0~%yv0KON$J%lxJvu(Bl!Q$v9+y;KhUG<*i5_gln;BogRO$e@}(% zJ5eNq&5vEes@IZYi><$oD_2Ft z7W7vJ>kAQR1EYme+xoIZKu92T_cTc{&`tKj)6BXLSv`-$Th*a^KX%*G9colA(ENuK|?r>H=(-9)kM%dB$I(aX{2y+YP&z z9Kf$e-E-eB44hl4EBiT*?)zUlzZ9tz&ITNb0^%bq2)7he?b7@)F%j(DRieDWhvLRg z*)>sIf=KTh`E5&bmJS0=b*(C=`?J7$9ZbN2lka~cPIDc1w%I;^;paWK{b<|)TJ6!) z!Emrk*VSnHQ4Js%E({Mj;|eY`H!kgk>7bDDZS!{55^$evDpV%rA!s`=VjSX#^u^0t z9To37!T~yM7 zzQ8ij?DIjTg(4P|E!%8QOG)4CClT61z}J%puEczP;lhgQ2+`T8-g+aA>STPlbWJv4 zCC^s%R7Xt@EM!g?_5RA_n9isAfgjdQbCyMW;!uponaFMcXC~UrTJ!3~CY+06d zE+Iy^x34cw<()q54xb#AW;1z>a5eiJLPvJ>SqZMnoVSSO#sL3ExBvoK<(EI--Zx)5xyA?T*PQ(Ahlj^@;E3 zUP!>E|4zhB^qU=DeXNu=2o{)pX}-757N)o_x6G70fEAzU%iFk+efT+e1n*K`9OTV^ zS-cQ{?7Zh)DvQ%DC{7}2jF_#~%^4msqRavd_kj92eSB?-J0R{IZPqJcZTR#CD|c4O z-{*gz-5-~2N*09aFRq*PAo2pXPT4MDH5q4ewC+UWZA<%4ZXLg=r4x8nqZex@vtOIe z{KAOluVk<87vWJ==AQOr0qOBI*V!A1 zuh9BloNB-LDKHImuscR%q$GmxFFY*uO$vapZLR#&nj0jQ?yyW%M1G`wu|6W7W(oo4 z)X}l}F;6&NKC#-XH7-XEJi}5Pr_WJtgD=M+UHZSoB=? zC&JNWO6S>!d`gEgx&wP~$Z>y&fk@e=oSVpqyY>!Of zqEP5`h6v#nsYy)~T3nLhXJ^${qlW05AV+pS>RJlIo9_!d@5**J2kubm8D4to56`+B zekhug1OpY4Iv2Zgfj?O@*L6kYhyB{(%q^!73!4O1^N3_?K;3X0lwq`B^8z>hfZt zEqnU;z+}PKaLFbF(&(5Fu{$|Jg$O;i66*iNSq{6TFP%$* zJ!u_v@BEOye;~Lj8T=o=>?euHkeheoq2N->?APZvK`$SjbJl6o&G)80sdcuQ0?iYS zj!I#g)H`6bm@wp`ixCVg8=Dju{`>QSfw+vwOgwhI(kQgjq)z5z+7qr6DE{6eH`_ga z_~g{}Ve_Zr67M@XHYN}3`9mgsI^)0&6rZ7(w5)j{|L@~BPcXARwmO{s$Nq-j5_V1X zmw^lBS{~uuHXwA(j6b<21(0rI(rU;p1?S&BdatCG42NQ>ch3a>#~(lv|2#0h624wB z=&b8T^6ZAsOY2Q?Ko~t&O;S6mXCaqiG}7}N@!_qk{PWDuXprS(igzTu1ZWIMy^Af+ zfmRRf1{2?*Iv*(BCy#a7lVbhNThabM;LElmLuV1yB^RvUd#U81PVBG{DDycj zn5AeBl0T$hoT2=^&#jMx`<(AO9_?tmjat4bHlAlI5 zN5kb~Lk_rnyx%b%o&7}>;PPR$T|?nK7s_8MokeSMS;z!*@BQ^*TeAy*>v%K|-RbTW9)}n2=;!oTFGf7ngZcY+QbROb}DaOU&G;+{kg~A{++*j zY&;K$1+lo43%A<89DIPqi>f~uS<&J{`*c8YCFRZq{VnHH#(s%iiC$QIbn-f0N(Bcm zHGS1E&AihB;PSUBLudbj+85yR2iN6>%U{IV#-xi`D374-I_~JkI$lb*B021lm_5Md zkMv8YG9ia8yf-v-!Qm_Ret9celvta}q`~HmPt9P+mi&bES4HCR*Z*>#MU=TT=^V*G_#xeEJ^Xq! zTj$6BQ(b^{9NK0(MXDz4XSRR0n>J`nf;`=K1bbhxzo7l@-6E|1&rW6STfvjql%rG| zN22xit@Y;4W?j+}Ev&uc(uXJAvWW8R=Pk=}h;{wD{>P=Kj^ew2jbQVUdq;7H2wP+E z$UoB-A{`PCE<-ui*OIkwYkXWS!(ml!d@K&<+57pATsbH|)c3-SVNQpC$8-LPvV%#; zq$h7;{!foLYN4A|5!24~K|Si#9&~Qd`*p^oAy0Kne)Q!CuSdGlV*1V3F-5^4DjKwde@4c*lP2vB=E{QLb zcH>ak{0=8dt0J@sx325vKFV^mQ3$&qKQhLX?Jq#*9H*ImZ(lfK&m(`Lq={{NbZq_| zf4RKl+nUaU$C!C0YV`8fk7jI~0L|%B{i+E_kAGYE^5qR7HZBF11_x=@9)x1?H;i-kAaU8qO~UQc52YkwjsymzTd)yMwWKT^c_ zAUs2RHbrmS2aod5adZV0_Sh-54?UJGM^pB&uwFJ+0h-2Ph5bJz?*_E9CG01 zC&^p2dyu~R>{fR;chLlp(<{lc%OX9Lez4ehS^$kp%_Fz#%JNeXeu1CK__rO)wEK8A zf0GN?`0lvxFRaw^@Y*Xoz)@8UEfwsbGM!s$w3PTiuZzd8x=++cV(kj?b_M;$hgkh= zkAp)Sh`e0hd1q_?L{snd;k`N7c*nt*6>s%=gx7@9pUsl*djV5@PD+wfrNGZD)Pp!N z2-4n2YIy@ofY*+&i)O9?fQog^D~3B4j6IUZqwg*PI?@ia{H_|1+rFETcG(d|PM+D3 zMd1WxrjjddZAw7Pc&O*pTP5(z-%q&o>=Te~h4k0SBaXyc!+}8yqW^MCC;_z0M4_m>|r$_7jeY9ad-o&l3~cBVbS zo)Ax{h3T?C$~U}k->zu#&u%cQ@>yms7t#YiADJkTWEO*pZ%2P77tlbBcylJQP;FR5 zhNtSsdK+%|<;Za2B{%$Xo;dN6-$$4Ta(nclk&jAD`;+3oeqZqc{BP5f*!WXLEmPBd zE7&?QB4cKbD|sb=W=eFBWYGrXO?zy&rOXCG?^`9hK4t@|3+gXx-Av(EU5&QeWa#|% zTza`E;nV{-%tcA@jRBn#y(l`4kzJ1gY0{C}>B8uobkm*UYzX-K_jv!qOmhb#_8cg@ z_wvWWL)df5RLw<)&*sSf`uNnkP}!ga%rwbqoiBR?G}Vl(1X`Yf!EOCFjg4}E?sIwh z(QTHH%0GNyYys89ro3e=cyf`KYP&3|GdiW3eB_)s zx<9L4efel!rWA}>@n*T4d17}AGQ;msjowMww|Lj}o$*LF}UKIg~6n^Yj0 z{n6QQnh?a^_%42N+jTI6?`>?;ZoE1EIg{O5`>N4-WMlkY_mx4hj@N+fI+$CvgWmifP#9={Q!>&e3>c!+{pOv?`h)+3Y9n| zvHL$i)79=l0&M;0p@dILUV+GeJY~^reV$_Lx^LM9P5#wdX<)i}+_Th-61KkJTm8o>=e-v~}T;)b8^6;3>&-#TBluAUOK2hjdL z*L1w({Ur_LKe+f^_hsKz7|f-HR}p;|K3@0pdE>+*N(y{k$?7$RBQGS>2J!x0FPy(f zW5}e909`<$zm3nnwU76(;1_pHyMAJ=Wt0V)KN%JJVS87x{zF_kQL&3XP7{019nSQ# zH0LS+V5e7-)eU(-uk5%`mV-A}#F*3;M3hha1Dv60rBAe)A?N9Rm&C#_I+q> zwT}ZNz9%9Mh-8DQmx609j^QALr}LEk6C}spH4EHz{FMQG-V_rL$)a=hlXKA$0`>`j z;594W%nM}S%WocD{P+slK_exX53o;004CvDhxFKVpx<@@FIYPkxJZ$1$5tS_35w1CDrFR?1cpa;+D6athwafwI=^o%5&!cijn{*(h!un9*axwT~ zFcrWaXbZyXXIw%~q4jY>EIk;?=;}of569kNNO+rO^11H zN;hiv2(cI-OG8Vsq*aByCVy@X$j3 zx)X{@RUxg&ANVpsKBts?EL6_?(H5{44&yEX?%uBsKvLBRkdh%g8An!XMN!K+XejU0 z!%BsNo zWW>I>Mw>CPl zWB!aqg5#|5u!h3D%1s=}(UZw6KOzXxJgR)8iuZQW1Lg$M_4=}1gL#_k_76QxVEgJx zcbmhi;QpOxHUHbZE%Oz;xZ|Gk}vAc({t$#bbgJ@;@5|9n22 zHFosDJ8VpQZlZy?QBM)#yXzyRCB&~V%l#dN`rR#{02P2*{hXoPlr+<1r z5W4JkvrPxx6W#fA{q;Ey#NR0s$rUOg86ftCufN069biD8Lak?-53UAf@hPjiz|~6| zP7)t3@4YX!l6c^lbRnR_`lh#C=nHSPPU?j$W<%}QxW+eaA1D~hdk21q+&kEmPf+G=k71Kf-1n~ zXXZ>!FJ(rq#6t-nczLKIDwQ*mg1=@aR5>XoANh!Ppdbt@?e-p+lxML?tF}w=uY7qwJu3z68J~@XckBSxh>6ozwDv%zvrsswISMfs|?{zp8K7V^S#AF=>0^SBk33Bs)`i8D`ky<7>fTr7C*w0*3DE8ncr@uwB z5<9tD@0Y^=^Or#6fBsGhuhk7rCuSCc%96OtN7M{J>@Z~UA0|NgaUFn6nAS1%jb`<-AUz;>7+8*r%HaFg!l1v=L} z{Q10Hz)oOOXJ385UVfe|!cndgOh4+tLW7Jek(lu^en&cIXug^xV8#pcZq>~>JDdfM z{E7?~&aehl&D23ybZH>`mt(k(0Mh@Cc0Ht3Tfy8PQ0F!J@VcRMSh=jglaF8RpZ7n6 zcmEq&64G4k-NmC>+UpN$9^Lh;oWHwIKh@mV^oaY0FeZQgztfcPpY!|=ExPDf<}~Mn znmfawFvbRWUA#^psG9+DLi^8+jqLKi5>7d!!Z3A|A){#qjBdbbRjJSqPef5ZbVuG;ipFg ziT=^^3#|&79^s+!?d;&cz95DkxjTyFcK|Nm*C%qEM}g?=i_F8X)B%x{o1lv)^1GVCzAc^m z3v>QY*#vD8uOK;1Tv71m`WH+b6~%s~i-Z%%zV@oF@4D4tMc_1)yz$d}SD$Hb{vLi$ zn=cYm4*ZVl4r4`~ZourPrXzM6tDArJe>rlehN&$U(+_VyWvhI=wXzWhR3B(Jeb<)& z))F2S)XjmwiDqF;KQ(@j|7PA+4N{ot?fc%6u$3v3Atxo8zu&W!t;TCG{Vx+T_+Q76 zqxHMJ+U3aeZV&K)y(=}=0p-^x=SllEX0Z1>n3S3D=>D!8@c(xn?ef`F^LMgqrIqYO{P!KIGTD+~^6xI$^B2$FQ~58}e_z?2ldm!TZg#2jUTQ0yPWE4a@4uzzkCT+f z6EXYsf0Yz1nu)}{GeBG#{!cswNpRwMd0ugA5MV#|alDEW?Sq!?KKMy-c|U(l34@UV z_Q!9KJl;RPyL2!2L~hjH=t$YD-vwcO z&pbud9iQRv*WXYb(s&bg%=qVI-NmKH6W- zZa?onQ&>ge5BmSY^z#@@8ce|}MdM*4s7lYH znE|pjRu5_R=z)s3+PTjyfnbBohK!Cg4jc^+Hz;TJ1&6b;DY*|KdxL!81!{-dSU?=M zeEf7MlCN8o;W8I*hXDD}H>P(_p?ynAR5NznZM1(ET+KnAbO8PhYoxBpM5ejKEvw<15}P=pR|qqA@qES?lPC}>P?{h@$I+F)jUuo z)7kf!&l2z|a!=$ah6ATCY0C-XByd7SG=_r576`R+)qE^Q{axPA`fhV95b&L$YkiP~ z)=4G7I{wqLVc@I*huQcll4q{HxJeAB(0c8cNqy{FPY8Isy%<0FA_;V7MW2j68VF9i zPhoF$A^XU2`8E5L$FYD~&EeH;Y@~k>Q`a1qYC`j7^hQ~|!pBIE=zrq8?2#03jlh#{ zvN!{*;c;0#JZA>w23Q@POTwY4bX5Gk%ozAy;C&x4^oN4EnsdVLxA*o1qj;Cu%I2M5 zlT@U{xiy5d$2%*%b~Z5x>T+`&Dla*4?h3C zO7V442SoQ$J*2ve_Mv9{8MPH@`nHgbAi z350&QE0wh3KJcu<>hzO0`CtoM?ejx(Lul4AmCje-4@>1dd6=X8VVb3nJ6wY z*su8*DGM0+_zM0tOOlq&k+WJw-ncEjDgrk{`qqW{-7Um)BK}_PF(_Q?Bb>z4YgR-! zI8M7_+QY2F8m@cxA-(VWc}w=!cmC|}Y7%trc&#U<|K{8J2|jiK#1A-!$>U}hF!lG} z(QbPSolczbKA{8djMl}UJ?8}sP2C#Zu_C~?0+xq@hGKw*T5@Sj3E?<@V%)S3!`BB9 z#3XHN#OS=^fx+|s$t#|~J`C0=DYNXQ$48QzuvMXUPb*&}>%{T|#-A@af2oWE6nG>V zS43?JnLfj!pD)=ORqBx{Y>hJ+IhF#Q1Qk<5Lif8NzSea z0%-@8@Vflt0Iy|U7wH{q_$*Y)qD%tq$F2m?FB*Y3Q1e-2rZUeC8q?wH^WsNBHyr)X z9?=QVy@Q8<0Z|ofhB|& z7`Z8y-g6e&m$;v9aBch}7kX8*<-*z{Vf_g`E(et$(C+Z7{%J3=heuzV?VhFaf<4!t z@#Z9={XG{yi4{m$9H@$I<1D&(39A;-` z_x1&@UrwHIf9ndnGM&Dt*`$M{yt3=>?wiA}qgvNnJOW`wI`4_F%b`#*aDc8h(h4#v zu*4YtLhGaBw}Xc|0^FfOm+;FBd$dlK*d}qT=-q-1E>Aiu=Vj17@z#?L;%p>uM(abL zJAMj)L`y!0qh)Wv+?zW5W!JC4Q4Q%LZ!cswI^=uP{*wDGDE;^ag+vGPizunpGLYxF zfYwpbDHnWJe^{u(p2*0A)xyhkr9EYcTV%K0ykE>*o-86geyi*rEgSDjvxvGei@E;? z;WVNz)-qCk3=8BfdWi@=HOaxixw#+u3k~`x`-Vf@^2Mw*sSy~`t!Y;sg<#r z7$3}iT5Oun-LNEtPrx&*Q1Mmp@9#(K?~nbo+aG_>H{fsd4fqFrV{ab(rM?0Gpl|Gb z?|1sfC|!&eGo>wPDdfkBHthf(n};a)MY3T3;?xo6q;|ml@*urxQyP$dT|3**Q3t|b zUF#RbY6IN;HBHw(n*Y`Qh!Bd1^4jM*PfF74?Y-82vo{UrQl0#T;6KG{W^>lPc3N&DAef?P#3<^tsINd*; zw3q)&&5;kv6zHBcvC=0Er*$t_sL{-rpVa)<^)&A1W_EDGJb(I@OlTKp)Cjf>992vB zZh=5Gj#oi9Y5*$<2gr@Bp_KI3x{V;hXb*G0gZ1K?}ELt{Y+cAr~KtC%_!FaAVAqq;6ItvH6KBq{E!;=vV&XKk&SHOSTogtMw83$$;BG55x86`Abb;UAC4gUdL79H zN3RYOk_&Foy@}+CWE$GH+T)v=dOa@yFTVe(WW0d>7f=HV~xW zoz9jY1n9SMB`aczfSW|=*Q;VRpsH2LxO~S8@^Wqrhnz(FDH_X(SwhknNJ+n@o<@rH zm6s%fgjmyyz?O?el)xy`Q#D_2DB@EgKOjdok&&pzLJ*f4v?)VX2kPuaN+u#{q4nC_ z=a(KPu&vwoxoWZ(jB)$vSb01aXkGtwq`C~9C+3Ep5~zM&3XDmD^5Z|CezfGqQDRx*t0d zUU8Ic4C!A{pEy%8$czA`hVYwn0g)ix;bI*22|GwFNgYe}`SPqlnbFHYIBoJym`ow5Hg!HPm_Rp8}>q`|RN-QO-)xjNiE&bT9%|S$N;}q(S-ugJytYRbe9t z6!drb#(os0ShGDIue%1z^@#|mqQ;)c{nRxeF@+J`jF2yU!_SBFusImyl&5<2 zpGR^mf!-*3jKS0jJswxJ~EDC`mtpY<@GR~$Mj=US;HcuQb6lS4WG=I zej4UIr~P!vQ0vqhKBgaA1M>^%@uUV&##q)V)1e2rlb9b|p2-3RA6(ymIrjhz4fWLX zo7h5`L`tv2_5XqAdPJC3#q1XR#Ggm6O^WiNYR0@0m-_$gKazAiv8W4R+NTn8l7xK4QG6b{7lzTTry4<{ zH1l>2t{xbz-+VhmnF&N6Sy+oAdC#oR<$}{SQKebfXn*JSgqv`>51of9 zNh2vs8j}k%m%V!lp9QC)onifv6UwG| z;|TXf%4O--iRL2kt^cu5F}x4bn@#yuBWu80@bncB^oB0-pV&EVbKr)ebLs#|0gN|2 znX0HA4-3A3(Z2B$`L(#bCb4PG34l{IV_8}K`FrWk(nG((@1#NkEWAoXA{1xowAV2< zPwBgR&(xtOX-LBo;bUWW?(Xz>_?QTk-7Cs>T(7V_?G{Hy(+70Ub^esSg zuVeefz3z9Y+{_L`dhOPKeurfz$zL1ts_Q6eNCw11OQnGBP7JGrG+(ftkO&aT1_l}S+QVwYQ#7TT8+g)W%t-O7Rf zA-Gyu7g0SaC?Csig`(%e1(p7nl~M3juEvdVwVTlLj?2;3v)AFE{~_&Hi^$IM@fQ9M z@}sGczVYb7RX3#PSrLw|FG{0%WKbmC&`^ze&u^FB_p9EWJ@jYX$6cyVVkrn3$JAdR z(Mxsj%wpn9(zq&|3yMa3w`|mKntTCMKJKSmXTAuI*u`Mv6KgP7AM!?a!N68w`k^D3 z@vMJGyY2nuqw=w($_X5qO&S%*`e!{CFfn8-DF6ZlHL|X@`cTzd!}_}kl3$KSScR(J z%;CsjC3q!<>a}z`L6&el0hp)B>g!b^KjrfAwdH3MNH1|2Ije9$Bmo@rNm|EAEC;Pg z*oziTR$wf2>gq%ml4A#ni?ZKg=K-)y5Fu!b;@dYoX#w_}pd@k718e7;} zPXk-j+J)m8rQp2UyRyg^nB&d9iB0zCZW+jA_!eMI7!2P!(Xao%`~0Bs0lAxXKhj}??|}n{c=Dhu3&)vH6K*hg@R`5t#DAP4B~rRZ%tt_# z^5(~j{%D?c#VqiiJ(3BRc1WMy4@37h(~^>w4nDD6pb38+kt+hBDv@npWO{4J}-Y zM`^quUit*V75~g`_|CH#90y-@3Xg$>`AhlAN-=W!X=s8m^=ek`0-*Im)ZD*Cjd6&DE z$0tugt%H6`q}EbUcN9`LGe|&RS`#5MuKQ5qSw=y2j}<&9gq>}xd>i_dd!&6Y3Wq91 z?^Um>aKoQiXRb6wAUxAQk;*TXJF9Z{p%{CJvD@>XZNsdl7o{S3VPJ|u?)6?_7{Jtj ztb{fl3bAsXS7kZ1_uV_pwUsB|6u_Buopj?8@GdUx3FFv)xh;2|}yc10?vpLD2ooahCN@=w7*c2{t*tiywU5?C0Ko zSadIaM&lrDWrhG0#f{Xq=`H{3_HGkpL@Jw#VdU@s`6ykun-3#h_eC7f4);AcbvaN} zkJbeieN`;KZ2ynkKR)!4{XqfDV&3HG-VuObIf~947eey!4OPtI!^d2(DrDGLz8sx@ zdTSd9WlY4w=*!PfpE?Kj(!(20yXyq}{rq~=laPF80}~gVmCBn+>9rq5I&*qeU#2+M zUV6iWFB0t^%VFNf!zR*H&aiwqY4G%!JgDSDuxv?_2O|cP6Nw7 zxLp&+tvFMs4hzXei2 z94j=^LFe>sz8#kO+v-rIOV07}{7o21Y|SEHNeDBvws`vG(*An>*$I4OuhPK8q0tdM zCEEZnen(iszVn<nh3}dy_ z>ZCzCYwzz-o9ChII#$Jv!r zM&b1-fDU9gxp0NaS9H!FP90o%cP}9Y9^Z`NrMP$sat_7~95{gNhE4~xWNS9^AUENS ziBaL9HoFeDFvT=Rm=V52J*~(ETUr-qoHra{V1|uljNcvS$6qj7`i2QJYGkRZ5=x(T<3mH@-ee!_Hg$?%7#u!*=Il=Op+k=(* ztb6&40*Nn>7Ba(F=iGQ_hQhxdUn)|ya2y{NjQl(oUsaf&=fy}@^WYWL*FyI}BDT4U zsJ@^4V|iv~%_FqM3>f(wO>!I_k>|s;_119$IYmgA^unjGIttzxeW&+iD+?xZM6t~u zWrDqBIk;J5=-h89t#(#MhYN<@6Hpc^Cfrf+FW>W&>WOQzC3y%m%rRcfFQ6CE2iyH?*ZP5Dl^W{;d?jLbr z{Cy{LGZXUbnm)5|vrPcmIpg`T0|o+pLAuPbiit#xW6bQk@-+|#LO*c`;i)Kl4v zeX;mhFyrKzQp|ly?LqqP>VYdb1_hYaQtdhp|5+1A*Q3q9bLzn=4VRQ?ZrcS}r$h%gY|D!%f@Z6+BWyP8}Y z_S6X;><#MCJ8w|`^4_#r-e!-4aq*OlGJ=tC zUQRdcS#>gW93mCeCC9uUBat+gX6#(S>H)EGqqp%O^uW;u*%ukWG)t4q z+}8{e2u*lBgvj2*%jkkbP2rHDITpx?4S&*C3`#hyGBn^2H~F%Q1jJ9KtE@c}J#AD{Na zJjfFmAKg_&rx%!boBL@#IO*PVFU)#JP+C>}XhHH~>_%N=Z zYdt6HXlVcG+K)67be>#)S}CdeE8^cGVxS4*17NM~QOZos1SlYO^l@`VD6njGxN}?x zm19mhRi9jy2!EViHpxpx_Iq;{wd5UgRBrYNU@A)tfC)`yRpj0-P;bk`b(rloH2wBs zog>p57<``xj2}WFN9fZ>3-J~pUSmYUS~~z5=^Z8Fk}!eyUe0-m|D%UAti7blb#{SW zy4}(d-}qs(q5pdtKXrJnTYF)&<_cuD2Sr5L0Z>bc59`raAvij16qBf@2wPdfvt%(L z7`aj_+)l#{3mFnweO)ne7Jo;QqdmV0&j&#KyEdI8>4b1uAV0J(MiO?Pct(J0EDIf1 z?miWIWevS0#Z0RGY4^VS+A+hfqRA3!(d7PIY#@Y`SHYCN_hI;K@B!&}+$&%=|BpvQ z#{#{PKKeo-yP5`4f*(=1uP1*g{&hW*AM?sZk7MFIcIcSm`leg_(@*I$!ZLDjhS^fG zn9K!s@%Mvp(Ted%Unb* zkC46W`@6BAdn|(RM3&}3H=3J&-QJ9sjmD=VFJa_wN;ObAJ}8Ni9x@-TV2|eo2k_*- zz3P{RuWGP3L?1fBw47J&-#BccnD#roJ`-_h)E#xzj33nxw=j>LxQiQ(Wi4Nz97lL4 zme$b~Kbnl8wb-pB<|oJw=0?ES37au-(0@lcOS7HFBrxmyu=kf5y~1YO{&cmcneBnP zXZP~YZ#rb8UG{*=D>$N=pJieERrQ7xOJ^8Eb?sBLgCqQ0rf7~J4(``O+^aaI5Zkh1r7!{Q3#EQ#x03QBzc=>WUfg+cPdMm$ zAnUS$A{2i(XDZ2P3hS9(7>n6mgCMT|kYyQw3379Nk~?vw;jB{eC zPrB5V@1cHp)#dCme2r@_--Qn*&5O^M#J({n*ayB>2X?aOj?#^t1bIn`@9kPdf2&vT zrxm*nO$9p4xZ&G_+GG{mDj4abzBK&jdC>lzWynf2m;RU7{(So>;6i)X4itwM@6*&a z$xaQ1@yb8Yx29zPMf%x9nm5hVrd+Fl;*6WTh?~2_WWS882v-M*}`Nv-SW&}RmJ#B~ws|FfW z12s>9s2|KipiT;WxS>#@l6GjXek?8*j@?)z10-j~BUSzaPj{E9BhG9*H^DrIn7mp` zSb1F-Bb_*hKJd+P|7Ug4a$liSp1lK90uks zFehAAg)>fcYi+a&a7^zDr63zKy#GE#!Gn;0uf3sE=R}Xq;zLQp+WMV*bWd|{d?)_z z{m6Vpiq7mI!k1JwdaJ3DDhpYRum14Zp@bKX3m%t>{UxS7O!tf72)ftU7Oi=-E%72$ z{}}iB*&HhWZoS5#7jyD|%}23}^yIDrD;Vl=LI$A!O_zL`a9#lE5j#}%zf@T*V2J8#dco~74DM3yF-{c}%#-1WV|KP!20?|T=E z3r+>RG=;c*PT}h*7a>VqD=TS`7OV@HP|CnoheP;@S4CYkVVRDFUqmV5`>QwHaBkjG zfsS8|mwIoD@0H8>oya~M%K%0v5Z*cHiS#SAwOSq3L500%0@;M*P%;&mMf8z&>^Lv{ z_~EL~#t#Ol)$TZnU4-!DU7AYt&*of)*L7jegVTI_>2?W}WD~5)d(USr4Fnc81))f# z=H|603@wNFbp4;N%0P+f3swOKj9^jw;u|L+1IXH-n1FdFI!?$yV>Nc%Lm zlOkLXr6gl{fbMGv3#tsnOBg|VWfeyu0*<}>94!4<8oEeMe9Gv0B{{4IBQtod#7{{< zKhL+xL)@(JyChF-T#NeN_ZT%;)>xR-;X$#hoo9u`PB zH0@BhECr~hZzp|uU;ySDV$1~E|M@wipT zL1^!L({vt*rJVYpX{e*4r~uWE#6@=UAsu=SzPs__WwaX5%5?U~8)5_GCT_s>>~}FL z)s}Ni`l$bOtZ>iZtZ;*~+nEF=x6yf4znYJ>zzD*zveX*P=Xu8aTfV=&w3fc3Ee5*U zM;>_*8-V!I=%i;y%s?=mK`Q~j3E+vzJR50;_&ph$R%Lzd8gQ7V=28-d2B&U`b*s(^4&^ywM(D`*}J zOjFNIn1Ip~-1o9P(fv17gXzi-+323}w>rXaRrR`%w$ik91NAfNY}ji?5UHT>Rvj{xa@^4PE6eQ{ZuJN)si!f zxejq_WmWKTBl)8=ej&V@p6RdU_Ac?a@iKGg3&2gAiMm#sD==t<;I*oZD$J)UKS(ga z17(L6mNMCp9(bQ3Vur$%2l^k1Xet>)_#Y|8`nIQjT!z^nhj+fs5%1-5CM`+9>a=A#%a%hd>7`9=eUALWaANTBf-5jsi6DKZ2+nWj zoJhtq1{YvN%!%WAfZS??GeV3JR1t)nV_Qc0WO-70v(!8bBu$H(X>g2fu5#kCb5uqmLfwivH5)8>04K^LzA;Ar(G9=DxtidPy!?9W(vI z!*NTJdgPZvpHdev6@2QCb^0#Es=*VhV zeF0`E;*-3hxdKPdU*eGuP=HBC?{WL&NCTncIaRzjQ9Uvio|!gciGtOsEAv=Cke)M{ zoU`=3^a`YjF!Myw*@yph~H>$nv_o+JkcwnuxTvsmHR&prg_Mvnr1VH9XN%HB{ZJ4C&S*X6hNWIjR@cRQFmTX3O$NgH zM1H@{{eMkARQXK%spJ3+om=6BpVmO{?%@@o3@dQuhDKCrjv(0PI2SP*g(A9eteJ@e z%d=t+JT71Tuj?Uxb(Hk!7$%<8tJ9Kx8!>AC_4iT37wi0{SAgnrEQf}vA} zCf3_xYlQB?XPhK}wdBc0Z5C-@U~=-)!@Fi+|My;%KMK_(HwOE^r8cP-iU)c51xU||JS$$YxWg7j}L>JkZGJzC(~r+b`}(Ex}M zI_I2!X}nkeS`on|qU-2>-fsOrzcsUliwL)?@J30Td#W5@PdZFvLynIUzQiLr+V(?IFMny-%pK~o_vA>BRxj9+4@x) z>hEKUm3%ixN&mOyl_uAZPQAyN^Pcr1{DQ-ex!>Pkt_u#IsJ-c*?E+25Qp`n_eu^Eo zkL9s;6axcaGlLeB)WL2)?61deKkToE81N@0(%=L8>v2SAL7kaZWbYX#y~N=*|0Q7B zK}7f{Mi0=Eq~gZ&u>hhj8RJQt|9*X(77wKpJSdIv-WM(LDkeHi{J6z%f92_1G++43 z*}_vrh5lG>l0lXhZobTaUB4?~`g&f@3>fdJ-qiiXLnDBZ9+a^8>k zNPr8BW6xoS>VMs@B;032Zvsqv)mUFVvtEZ0M!NOBdRBA2Bae0eGrpjbVV~ctMiq>F zdTC-e%-F^Tzoz~ncGWj2;KywR&@G}y<-BgN*S}&O8>?Sa(0aMszf#Orbr=0n zyf>bI=i~lyuiRJPqh6^`czo2r^wb?nv0lBs{?+HLqQuQW`**LFiMt#A(jZ2lZ9cOe z$*J!hJqm$`P5N~#*ZnZ-^C$X9cJy1C++~dSzQ4IKdO3bSP9zrAwQwVDwti&CI2f}K zaLrHikL3z?ntYEAmcz)WWZcVqQd?&)UBEdcrpDgjzi!7aDKtAJPrksM&$m2(Bg9FKvES^@0vYzBtKf?3^!X-Ie+vrJELE^1s}kU5Z`X zNlQpY_VQhtxHTc_cvu%By^_{rEGP@v6L-|yE6NZ5+249SOsEDdW8RNg=Prx>l8)kP z+eNHsA20du?N7g>|JE+0wa+d^_rGbE;@xMLlKn63Qo^CVE6kQyU?)WdTm7UG2<5YR zw^(5e!rs~(gGO>7d5GIt_93!6i8@~jq~A0KzCDh~T4hN7s85`}du!to=;@zOkl;e{ z;a;fe#__}G`St3xlv+7e@KDC{Vn&%E;AA=eoR&ou@IS#W!BI!~^4whymSpM!)3*{& zUh^USclEUT4QV%|m)_rA?KJSv`9Ef7+-nd2-6N+LF!{dpC1v@m8BG46tFb%i&4~0% zfum*c`Tv7nv!7zWPtgmSWA0m`e9UI*ScOr$>4e1U`2K#K{hb}|PjvPY0d>nXX56F| z51c0-c}+3W+g_|QU@IUy6z8jClG^b<$6b2iShRWa!DWnm&nH`7Me!kfqkk$LG&lS6 zdDSlc$qx4?iu{e;$>}$Cr}=$$C(^&PJ1PCf?liT}?zHxQ*zRO%@>!&G5F4DnkMk(g zUlx>PjeAtI=>tDS+u3oo`g7v zs)A0Y%;_#Zv@gjHaC9pTMddQx=GCYUxc2{>9def}s|uspj$rP`MDI2Q8MR{aCDo6` zaP5QQd*wZ4YX5Ns@5&#?@v!!b=o=DZ82N-=ShnKhB75}g(&d zkhcHuB+`qmuI zRrXx7RsMS%wIIa@S=!Z2;OfYglMdmcu(c?Cn0U+|x-IDEW@_Dm7O_Ge^lhaegKV^% zH5AFCAKdHVdavsNLBjD(JVGJhDH}B4RPF=ZReniIvc&G?CkzbnOumlpNuM1(g}v45 z3E%jAKYhmX@8e%ytLi#rV}ps$#9TKmRsXdX+z%dqmSpP(%mt&eM;IRf%FDXe3J)Iu zmilpmgVFI&G41|snm5Sry|Ls)Lz8+Otgy#hJp>VMs5T8$@;%cG_;adNa5m1sCB`xe z0ToA>$Yo-qq2UIj^T>bQ2n_~pC4A{xt;lcktHv*-`KnuB!q?R^*$eq$uiWQ`v*+F6 z>mx>2lKv98|&O>6Okq$mMtzfa>)A(^yfXq@83cJ?(YT{z zG8g&N%H5DA6lwf>oS;`_dG?-UnD^h8U(O6E#$(0_e*US~-QEt}Gl_`DyK|GU39L@W z-JV|X1;4(i2PnH$0`&uVJ-*YG;FAsiaOw{an9p*0viATQM?E4QrAO6n@c5%)!)9iL zt3UWiGBe317kntlVW%WU@#yhMaEVp*(Y^Dvj8Bh+EE>U5hm=9O#P6OUepI5>9b3tLDd>QAS{%3M+Td>~si!o*sS zaL$e?B|DV;$G!M3@^+rsf_Xq`oiwB@xf-a}ODjh}8i+M8(`?ac0&AvvvLC+mg{<;L94=f2SyJRNBXh5R(Y3uF^~#(0hd}3t{m3;W*XB;7r1hUn)%QG^1B(z3f7y- zMR;%5c;_5&T67?-h`8#?Yy?cp67*F(S^?DM9*;x}Py)GwmLi#QMj&h>aXpCDYp;CP z_F;lK*8hmt^>6v^<#zs4KMp%(!9Db96FT8xt?1C%jPqzAf^T z(svtK)0zA8zTb)5H7TmG3^*o2(~&7nK#Jc@IrlIX;AIlrVD>KuoM~1s%vu5=S3Svt z)ii_)Euv&~I_GXWl;AW@V~Q{8X?qI*vRFX zGlrd?N3Y6xdBOXSePs_{b^{em1xflM=stjkQob(ltynPNwAC-$gzgWl{97-9WGrb( z5`^d1P$`pDx{2A+ogMkvlQ}!E5T6c& z3~f=dG$wz)E*ztNEFY?h>6d$_h~PdBO%z6YGmDYF)qAv#gn!r^J5pqjk%rS;3PXdNXdNO|Nz8wU>XQf`UfF9T*T86b_q z4d~7hl&Lg<;>HC2YH4RUmkpZS!Wf6G(Y=bxKk;r^)&D*2k#O9n3X9K}=NpdGX7d-z zF!^hLztRz#vGN!FIeu7P-!=vRV@w?Kvw3rGG~c3osWkHEsQfZ(f&JZ!U8giOfo&sh zI512BK|2%dpM~y$nq_c~-`x_@H<(hAKS1`J) z_Vey@HtAWNp8jH>8kKyQwW|~?efUfv{lXa@ed^IVoq=#)B)Nh)4EZyG3w?&oseE(~ zppQ`a$@U9$zfj05MCn{!4R~T^9d*gj9(>)Z57;t|2eEh?ho9Hvg37|ck?FD9AaB@M zosAc*C(Dm=82$8f09k~zOo1Z8aqRD$kh-%`@Pg7*Q+| z38KDnNDDp82KVq5hvHiA09T)L)Rjx9y<>M}B_)66fX*MQ^f-J7-zxfrN&ZzXRIbKP z_eNijD6j=L^f_Fr0Q+)YSG2Mh$Sb~f(Saokv{^=NVJY7OeH@cCR`OP$n%(bkYdyO6 z^>8>?md7pv#Fw&mVF#gdI38bM`0zXvOtneNcLXf$`4hHZs|$XNhssaKQr#2}$^by> zNMS@}IUq^r9UxVU1A)s5_(aYquH6$8QO4oILeP9b#>VUo!T}_^&L5ft5dO|dt61d) zhkQ_8k`%!Ivlz(Bt87|bd;nZelU!;@bcZI{!3QKhrb66)trrck+0cQx|4W@{G;G)0 z$#Bv`_z12O3kRp~+=NCy&Yb@A5yd0L=3$pqQ%-<&8JF)^yP^Aq`n4TWCm8b3{{Eol z8FA@2$ff??JKQW9vR~=fmF#c^G?V7v@aB;`3iB_jyX$x!V#|AvjCG@U_bdebCGp(o z{uMO^1D97=FpSO&$tC}E8?tY!u`?@#!>N<@XMVa=1C=K{vG0EYjN zn{@1RqJ%6+4hbhv-!di*gVh`^foHp2;nqFTprK<{Fl)o&@fA;mAIIPv{HP};0rrNh z;hQQV{9YsL9$i5NgbOEo^IXEB+)eoX!>E%N_0Q%;ohG@C06rH;h`{Va2_w(?vM;a8J%?W{3$ zUM(5DorLb~e!0YYaT&`QisaV4V^~A|>&sT8mQfc6v{n<}cO;;Dn3ivEnJ<3(54j;- zdzNcC7Hm}g;4D!r1*LD`cJ09AHq9bP+}lEBfSn6E zBwyDiYM{7|ZZEg&9E#FmEAw05Ei!b^Rm@41__cP)UcT_mBi;e0^PwrJZ-AnC02~&) z#mV8C1p6);(U!U8fng(17UqQFDijkk&6gA1f%VHX4)%D}puVm4oyPN<@SOOktY(d5 zc(###otZQn4s-E5NVj)@KW07YGIr4ZrA5{9*?qBKs5du<^QHpLyO-3YwLvy1P{x1B z!e|=VgUiqRR&Y>@g-1PF)CWr4;YGfPO{Z{Ty!pf3f!7;aq=j{J2Dkvddl>l~J-o zj!{WbNJ3U*W|KWKv-jR)W$(&5wrn9uM6y$gM2qkHcU^C<^S->kUHN>k-~Hd~c0A90 z)_u;o&wW4cYZKVGi`BP!sjA1Y?+Z0mO1CuR(0N{|8=u*q!2PfF^;c-R_}gOVS-d58 zuP^pLd4*y>##9lg?maKW?*7ln9vHUnfbm7J{HnY2qJ( ziSX?qoBIcs5RL-b%E0II_sd{Dk=T3NVRYWlp&Al*b$A5uY>Pr@8B#Fg##_%crhgUX zN29gxeiJwO&$`zmeN9eW2sWi1Bs#^jpq}@O7HLK#uW~1i8(~EmaNN}JpjbdSS53au zteQ^f{5!if^4W#1)l`D zPqu z_9i&GmDZ(mqZw+lHs=r=$Of(~%`3$ANbg3*Wl3|=WCD}Q4GX<9DDFM6m$ua&zXv`r z=^fht1%PSGo>mz$Um#%Uddl{ndyc-E53$mnL@3hNtv6?Z;`VvhJvVTI;-LSDeRG}< z(faXvJ*skqC>XE^=vu7`?|oc^-ce8M$YZZV`H$gaK~>oJkR-VW71v0+;aQEu=jUz1 zVW_`?yIF4&B$81U+th4^{^9Qg8+=1SGt1R9NR057I={Bgs&NGY-{3gmNfC4oq;!l~ z|JGj)KijVunSMq3fpUJ0ER<^R?Qpq4fd4`XJC6RsTH`Cq!6+=gGybBn@N;xeGJbo* zz=^IKdeH~DIdg?WhuooP8ImTLNYZW>W6}gmH$UQ&%?E-kvZqDrA5q*q5TRG0ZuSFD z$0dx2-lIHX1hn{5@Bo!(!{@lS&f<-1EDB1b6`K@?hGQOR4zp)4dp6i zpTWy2Kb1XU0s&2I_bg!ols+0OZ^G&E&n9dcQMggR=lRz{u4lwtbZh zi6v;AHgL?}$`?svh&z|FndQ~-lruDjL`2F-ESEH3-1Y-3*JNb0G%Q?D?YEgjdd!48 zf70(+6gX@}@%U46$DYSmkLUC=hASwK;SNP`YY_3-V&m2_)Qm-L+oOFXN2(6Yb=hE* z+f8fEB}~zo*m*qEs~hIu_q4$aRM#HAtRPcLR@N zm>331kiI+S9KJb183Wp$8y@wzS%Bg1jIaByeiRV=@RP3}?V}wBxw)>CWWcF&l$VOQ z>)|Vzo8QBJ_<^n{2VAjcbS@&7w0yVVQUWJkW%bg#QGW~ga_}-M@4cV1Zb#hoHo<-$ zO3@wozfFgV)=2jsXs z!bA)qUk-=TS<1(7?kzvvmB?DCLNDzt8RH11EGL3IpCO!3Jd;N@U(Lb+9>0LOYGpXq zI(qZ(eBI&i^z+W|bmu8PCGBTWykWg|siOw|WZx86D)9u44-N4iQlWP;mbJXeGh{`u zaJ^vc?I6-8KFimSSnwfS*ofo$6vKI~@OyX1z=s77s75@@$_%ogUF4^@16Rvovp8Et zrgJj%p$Y%qNQH3y2Xi!58KO$zr}&$!l}qT{%4T#Y=aFG9%(Q##H2njOi=$b2G@A{= z-)+Bl8Gl1I1$KpZ&r3>`Le*Ti>D;MINY-B3u5$+q1D^!n}m765O<}S#>}JyGUnQT<|eI!8D)6FIbHTp z!t3bO7+HkN80omt@zOdGF27pT%w$2|P4uz-Fz~b(ZiwG3+h>RT;U1h?En9zs%89b} zTQi#%!GIj?7E7E4s9>C?8E%vT71*}&Wj~_z^|Qh6gypL z1Km7npfr;?Op2`#Bd7GCmLQ!=L4fpo*o==M%AXQB_h!kMDjOWw&$pq$j^5*pN7UD^ zU8}(S{$^HU3<)y9IdhuUM^fovkb8mU%PB9Y*}_U(%J!f98iiXpFDF&N8D3`hgqP?Z zbta3X4|qW)E0J;8)yYSGhu5w-#S}ne5Hsy5@7DHJ&s$ z;+Jo;s_Z}Byl1`VUhyV+6$cx4YiVUTp)LC{7N4-SxntfK*#g zI!^3!3d!cstEllp44>Qld^KKl{+{LEX>T#LZqzn?*+4)HG3 zF(g%31G%3%>swREPHJ{(^d$kVCwQ|YHN3cveR;uga}IyAT16%8B;TM3jS=AB}z=F4qI?B6|Whv3Q7=Xjv!?kv-tzTm#EppHgUC z*Do+)RF2L&F2-l_9+m>>&*!-#*wH-i=ZM;HGOomwGtITtW>zf&op5$~si_(i#w)u} zRF=YM!WQx0%gFwcD56zuHc$Z4iZ4w${6hA;h(%$u5C!D#P+4UGZ8a-^C7W!}LGmbY z$6#qxyEYeGUNfT0psIi)TMuWRcx__raq$#Fs`DP1V8~fmX6i-@^tqvZ=EMFVV50M$ zUEpgj;Jx`AmrT6`Y$m)|7&z!5#5_gkL=q|H)^A2J0KBuaV~a=g?w0Ydr<}`q z;ER1Sqt^&}7c=azyG;8A+1Uz@hU|;3%LT8!!d1ul(!ojTj)0SCen7}QWI%PO4C!mt z=d*`jJO&i;7n%#XxQ_5xg+sT)zdm1tNh9bn()8_Pq6p} zZtLCZ3(sYl?nC@eH$Iai}AG>L% zKPX=NZJJAYLb;QaYg?*?aQ$;o^3#{~FehL+CMmT5^biJ!U9QQ&d}m9ct<K@;YCB>K^I_cPJ?*V11y){Z*|hQ1M9)I(l{*mw2M?>AZE0W!`ekx2^%?bn&zzZW+9xxRX>M~w?u!?k8N1tQ+DMG~ zZuc9qGl#$V!l3qnN%j>yu>I&EUgz~&z*+paL`s1T*eO3iU=+!zj?O>9E}nTFlL`>j zo9AxDW8*RZiR9LsX_vjQ@e?I;T%2z^d&8Tr`mE;FG$HBmJsNBOK*;rc0rxrxfUETz zc+YH|K<8PUY7S21PkIPA_Ro;o0%F`GoY{j47(UBZq)K&aG%WIE-coH}k&u47aI40U z8a&);4vtr%hNK4R+K)+8z%tH*0y#nxbpFX6O%r5O2f;rq$6iUGcLaNjL-Y&B*};Cd zF4|K%d&gJ(oGs4pcf}0r9w>WJQqg@9JC1|@-im6DTNHFL*G{4H(13Qf$FHWw`$C?Y z_Zp_}y`avQ>-OIkHGx2xSGsg2l6zaebXmAr8Ek44cQtY%`%F>JQ`X>94p8wC?dd8_ zAV__y&a0% zia!TBCw@6WnI}s{{y(=c@9v^?tGb(0)ziKP$C#ZpfAVpYeH{lDt5V{FL&Y2yoc&ogqi-vyuEU zgy-_$>p`f!H30?ZK7^C>bM;^! z7~{kIK5xX|OE-89Jh-4+$@JnHIJkMRIIC12CO@%vTG5@6FrfTa3<<=*Rle3E(#CpV zr~Z*2veK&cC=O?*{)5~k)JIYgULdi5bPtIZAIPUF4amKLaE>xvFZNekp?>tii!NsT zzz2+re_gs7XbXbnNqAf-72((Kxt~5V>^&Z#pDnKB(hF?Af8F2Q#+3Z#SbY4S?P8X%5Y{cDC;8X<_63VuleOG|ym(_1auIz0A1+_ajYw;FB$WY=;GP?_Cd{1C54a1? ziZM^fW~2V6IHv#5PskSBo4iD@_zC&r#eTmpD2C?+Q|Spih8s}4PBW+7S*^?eiJwsJ z(*sI|Fs2pnSd+0mw1_HryuqRiQjW=skP#q%_mV`qIr<78NGLoK znBadoGU&inm}4m*ykvA0Xa-cxMVTW%^zEDiwqOG*z}aApuOo@{WXivC9hW@a6=a6+ z&Z(T^Pjhe}{N`p{v#rT;T=;{giq$Dy1==Tk2?;JT0Hi|v{7kXEnDsYU?Zj-5s|a6s zSPdJ}{~hOchupJPKM;Fh>lbJ*F2DQ;TTgn_(*~~8A-@f|C{51Lv!s8m?+JdJjE)?( zf4+aTM7C157nFA1S93U&7ZR9p-4$apfj4@tUdc7T2br%2UhHJL0BT-7{%P?6?F&uh z@0(2COM;GU|9y-J$o{r7zSO(=k>PiKUeV}ZT zsHObMvKfQk&ziSmtlqL~LR*ib=fpwCZ!OP+{t}0|$e#Q8(s-DZiL+DThIa(9 z<2`rxD-F?xVRXdb@lxCS4J}?D#2&X^1>a3qN)+GLX`JJK62}fcRE)TWJ9!qSaXeGG zN@WGt?lz9g@j64dW|^^H-{nAFkjvR^KeT>F$86=)U)};2v`ktH@c!ff`tLew{dd0Z zuy^`-=Qn53+1I!{9?+Bb@H%~`Ej(48*Y;yw22AS*-eF-ualN{9TYgj|Ch!f7^FAg5 zG>&>g{MA$W8kpbJ^~BQUbe{0ak{6z|@)cP2an9A3R}W5i@6)?>QwIt;>Ntkis=`sS zkOW-{g#TtdY8K?_uMAyp%DjB8iQ-o)smfV;KI%iflYQ!Mg;3mxfz*lZdvPe=>r<7! zs5kUl@T_#l=VT>G_%K@IT<5(L@Se*kw=xNeFR3*z6f2s$3Eecvgo_WMek8JuVYa71 zdf49BEc?v(WhiPv5@&IZrEc}CM_SQSHF#gY=bW6R4UD?n$VB+r21fH~_sE!@0HnI^ z1s{{x(f`ME*Ikq4g34>$a=vruzVAS3A0+n98rt7|vH#&X7l!{e&3cLPC-SHFpSrBW zuWAi_3@*t~Y(#sZKzG`fol7uh2QlGUmBN43RO+XuY(LDh=&>HiwQ_lZl}H z2jA>e`%IA`Oldy%*6!2GS`l2)+5EoI+O(Ta+cWYv!0BGy68dpNz(noolnk=z_bct z6vtd|#uTf#{|+d$JyAc{BnWD07>(=k79`l>`;KbmT)=$qL{6-x^;u!i%hJ0|(Zi16 z)B8TkvU-F3PS_qOhh;2D17)uF#1(?WV!ZdoswZy^ijBS-e*L0!zSc~{A}NLB8u+As z-IGVt04QfXohb4)1L;>7>|f~{06ld+RT*3qZ!fjL{B0t|7>GRERu@l2aoUv!t(2T( z%z$h7qZ{5K=-l0aGh?LjAG|m2nE4F)U@efaeqb$u)DZaF3y;U!r~kwJ{NQe-@1i=$e{6s7r5Wk6%UI>G zzNgzQk*39nRZj8MOyT9%Xx*q@2)Ri2y{`7z>eVX(96G?_0+@)uXAj&1`(5Jv>z23_RK9m zk_AC5$GCn=pm_AhKTk!OU9kpZ)56+EB+p{_9~sQ+<|~oEaq*e&Nuj+~0A?9|!I5(U zV$`l8CZ5;8J)Cr%i`8g+Iyat^aXzyIj9OQ3wE3a?fmV2F_>J@biCZJCF)T?l2Rd}; ztdCwb08sqhS0P?Uu+wfW{HHu69(9=Yyl6{pzkJLFte?^AwI{HISISmN1V~FUcFVt! zuyg-=TY7!0b=Yso&$(D&h{fmWH7D>tfzCNGM|hn~ERX(meLiH&)uR!?)(cYBpY$G6 zAY9SNlUp;x9oYC6egSd(^Ul)?hezt=pm zrELKlrM}EPxbAMUKGj3p{~h<_|1a`oBa}Y{H2~cSfoy!*2f)}zypJ^7 z12oDWcyiqNCe%nD<2>SyjbHOO(&v4r+PtN>=X3oI@o;QtC%(hRBZzeFJz5yU2QI8> zofmsy3v@awk~KehgPnSI|KAgZo2LdJ{ximS7%lC^du$>Xf1`I`Eg9mtjDyK2%l_i0_+r z0lU9vA+3ggsLuiH{+@#bt$?HMU6`mf@ZS5@|31&$F35c>-j5xZbf&@%w=mxvi*HYS znZHg4ofB}$e#uJ^90%i}c4s3=jR0}z)A^A1W*GVXXLLGc9FhOqj{NPm4(&W;P8j~X zh?#GTJU4+wx=mLJ7m6!AgG)>>p8Dr}Sbw5eK4;JBZa=L56F5k(FOP#APg^=ab@p2< z(#HTVPw_x6wq5jZN?mhM~Rhv=+ZR0r`D4Zoj$7i&;6vgcTh~&2^=%flrhe`3D@ZP`-ngM?|QVa;l=OU zrP%EZFgUtlhl`yTY~rh!yjT&ke=47$b$`i+jZ3zh5@^~s2CT914F5*WHxowef`qW< z!;E}da^y4Y`-;KH@{`{o$UgCWaHzLwR_U+vNlU4do3$7FoWd?$*icjdy@3W8&c?sE z1|PZ)ui1ne!rXzYWwg~MV7GiE^4dN;DxP4seB=N2+iv+-hG~jI^N~K4d{k`oMq3R^ z9R7AB7#P76Ki>Vykv3qre4Amlga%Wla9^6q#xZA;|G8gVZMl|8@v+xIW6WiXt19+b z{NuaiBs@8-?P>RSoJ~gl=qm)Q##rTI9SGCmb)qz^9dLz8#C!9wHKu>l zjb~T+=Fz;DctYbwa!(5!WEJQV;YD$vX$xA>x4W>{$KUAq(tTDuzyHg+y3*%WR}zTD zm;QG??EL2XSMI;nBWD>lb=?3v4wrNcL_Q-x_yw~O(F*F;fA`niP0y7NrPqALe%IR8 zOUIR6#a`!;nw3*0%aC1}Hu{tx+y4dcZZ{dU-uOAqf&C7$k4LuNZyw#VVm;+2-)b8E z&+XWuxx(z?M5;h*(s!gH@mCju(KKnU(Tm4jIKRvG@Cttga zoxf~1-B#Ey{ecxbFIt8|=S-?6vL6kY+73pl|NVP=r9auNWd2~c3f*P5BHW|hO6CuC zE0tY#tJ?q3Zna*m(~!)37|g$RW<6kb0}xuOl+f%q0eYfnkHx-6nuoA zZU6=>Y+xLfDtIGo7XK*{*(=2l`egY9-T}U+iSScA(RvQa*se_7LciPYWmWmk>i^LW z8EI}{EWuQ?XS>7>^~-9IKW)I)4?5A7VWqFI*F^{0rNU_|bYD47|KZ7RhQH%(?q5z^ zF(t?TUN>1$xJw_xzdGAWSi^d0@A_r8oo=rb>9sQZLdObgo-w_$jtFRR$KnTyxRw~I zqkh_EwPv({?=9g-7XNjo{QVHJc8`#zLRY*o7=kLu;=x<+fMhtlF%RQQoVn$ zOP$_jmulFfT`Kqwb}7kScB!EM(JnRfgS>zBd-fmaJIk0?YX%-ASij8~SyZYHs<#i6 z3jVeR)!sus99t6-F~q|COh*xZWQXa>DZ4sx;B<(XJ4FE92lco!ffr6IEGnF%h z7S#-(K&dw;DL zyeO~We;|(^ryl; zC;y3d+v#@Gj-9S=vJ@{Z?=7&QVtw7DQUf`DU0hwb_7>1r1N$iR&Vn1hn%q58X@sKt!#_S|xrl z$jzo#wW}xwQ*Mq@!BR2M^p?yye#5tWZikQ;PP?n-1eod};z~bb02i~%NM_|8!=?d2 z{)NR_=;A}tm~^-w9EiHXn`MFgP?h`B(!C#ygBaq0c*77~Als6$z25W)_`NrZ-s-Eu zls`EjXYM-Ji;+hx(7TQK&|Cpu+tGqywio4{W zp8)LVD* zO}bW^f#NDA9tvNtn`#BI1xEuoSW!G|W~rE+?6JMiubC&?=FZ)@SmlkUwK#ohvatB% zu0!>?PAJarmcP?u?%8p`U8??I<#Re9AJ+(6Ixz^MnTVgwV}#=f*I}prIy}*F7OQRye{_76f5p=W9Ni+H z3v5R5e$3Jr;YL6#rkrs{_n4NX3z)R4{S>_B{XYUU(w& zp|udJ{E7DXL+-uLvG^h!TW*I0QM@t-Ug4Lj1Z=#S-P9+aH>cj;4~7F9ZD`UQLDt~D z$j)O8fMe|O%1Xiu@P#YmmBph%SX1`qr0NWcOFArcWJXV<4Gvq{R^t$({!8a}oT=m) z0L_&f6*yK1FKD?iEd8f8TE7OVJQf9+6(E?t=&qE*3t)9XQ=H;CS ziYKJ4#sQ%5dtWhq4rRJf!Qi}(-L zfZl?;2jw_X9Bbpha+NjRdn$f#08Tv^$+LG%DdXugc5<}QSt)U4N3 z@(KZYsQ&NK4W!?c{0)bPE|f!)4@B?OmB#lxzIur^pL`x;$5)1qX^|~aS7Pzw%rCI- zvqSq)E}xQ*V0RE!x!qKsaXa`8UJh2dl#*UA3DVc#m`>A`@e__Iwvcs)8) zn>heHh>Biq3&cQbxoV0iAr#+|-owu~E?o-E7MQ@~%LWX8XM7Lu>c{YiQ-+CreVB6E z`3pHOi7Nm>+reK|wgbS>yN8bb-9LIT_Pj#T5{hTLw0bahZmJn@wp_An6hQkD@#@6` zgzK;O+|SD?r0wN*W3kHL62_0dYE**7-`%gl+nUajvDo|fZi*u<|Fp%QfmKe_!}a`~ zZzxV|iblnhmt_?6o&SwPXzl>`4t^m1^1TK;mUn9!k>~>>-pz4J!Qs$2j;|&74T{%p ziKKr0QXm&zRk$PR#*&G(j^zHGuRHvme%|?=XGeE^K(rgI>^sTFRMQLE9SfGpQ~Bfs|Ih77jIi z3hryz!4hAj_fF^JIMAy;!~C{9-rk58UJMR@iZ3i9ZUXn2*QTbPRsb{W(fFhbsJ$6= zeYFf!%^)xA*yLwrh~eYieQ5T{71evuh4x8FQ3*)oiA_@X8T#iwVVPUAoB~vabV7t* zHG(h8fyb|9^Z_j!^;iKFd+>8oguZ7G;m3HCa9C3IWC88FZ`T+L(RbB^gWH-uH-eEH zu3kUrQ5?mivZeR7q|KOeLQ+PQjG7SeiAQhah75osCdZ%H*Omf0a@`rmezd-9Ga8j; zbDslV2mk9KO2{wx0FEb1hZ5SSo;+Q+Epw|4%)obc#Mxb7j6?YGcK0B_+kdm*bY?t! zxldF}^L!nYtzdbl#oq+4;F_g$FqS}EX}L77Z%9wN(t8D+p-OKSUIfcupPS9kDS+}* zBFFvehC#E>!Cx;UBB6>>2t|i~IlTUy=p4mpIiz)T$~gVG0&d;tl5=H1dZ}*q9gcEB z1w7uEC?-3A)@@ka^~=#hbZA@R|R7(99m@CM7Rag{5BI7?+}h$g!{Wcv4Vr42oF-o0>?k=3xa9ME?v=SMv01rKV&O&>A(Kv&ZGi$l+m zei^+EK8GD?0nXoE)w0*2d8M}fomk`mI*)%`c;`t~*9fjPvf)06cmlFgQy)p6>;!Kq z8p z+WmTZG36{cbvHsEw81E&IjexMM^N+aw!>rGS~z#v-bE0v74(xPKQeG*z~o_#FZ0Cl zr>=%>>;+X-6EDH@r>VH^Ldg)ucjU7@eg?0_;@@_`Z-SKWaz(|G0Z?mAJvZ$u!Y?#p z!fj?*%z_ObX5U{(A$^aN6EzZesuu41n0AM372!bgQ4cM13nP4(D|YM_w8|T`4GdfOBNbWJ;!r8{1J6fnS^VKnHa_Qll$c7#$WzV90dojz+~}L z$o-|JsoPki1v$9Jg)3ivFGbXM54IbE(3AZk18s!GzRv( zUiiG{pSpQq<58YGdH&REf=(^wWZpVP%6$y`{IZ*5$K5rQ?{#36GjNF8 zd{d3~MaqfQu(qjZdzOE9f9$56{s`8gT~Jkw1gf8p1%`$Fv#!R*Tj~}EfyJ;g%iOsp zcs!{b@A(qaZ=b}vkH5Px3W-%&LI}Pg{YidGHeD8Wg6`t(11UwVm~ne)AXp>WjmG=3 zNdn2+Pn95uJ!*C?X%LW37Ai_*bi*@K-2q~;=>F?|xb${F%_vA!K6N+FXB6{2eplIH zuL5-MW6Dmi=drE<3X79#DPJ>zT7`8pqfi@Q4>;6#nBXxikG=cAN9iy|ALORd$Gz)m z0Vz`EaW)*ousXGQ=%&~O%-?4lwN2!zmw^q#CX=0K2XI%@c>AoU06JYL!BH8n24itZ$CHWq={P^nzL= zazKRF{U|I>5a{yiOHhuS!<5f1u72iyCw9%rX%%Bqa_o}AJ{xjr*jj!83(3ET|;@- zl*G)x8W~=M0$x;pG|jEWrCQWcx&OCXh@&pW5Xk z4m;!?nT(Ype<3-?jUnoAZunKCR#7_Op zvsZs+WFx%Qe8%@y=JW?Zr#Ij0QAcV_y>nzASvmYs-pv|*C(=6y4gmieysE+$CUEJi zkbBxfdqb6Y*kDg!#GdD0m}(43Yc95b#^F$_Lv@d^abQ1aE_8l0L2?ZqI@|t(oZ_$b z343m3p8rQK7ri3|W(~@KeEIrA;yVH0-sZ?rp7dDIprk>1=b8u{JFYhF{Ga!;>-|be zvwQ&l&|=|Txr*9fbj;$H(oh_rVJBLADYlFmM~4@_iAP%yZVTmyC5E*|4`4n^(w5yE z1yVgdou5c>!psBN!*eD?m~zDz=JhsSr-HR_N@UzWiWag8zy624xmfo#J{bz$O-cdr%emOJsl6wh5+RYDf|BZ9eombCU-Pf9)d>LOCJVfHX|W)2wy0ZAgc)kgFWx=#6Zw6ZezxEEILHQ_ zPs`3mXresvJL5aMs~^?IOO9N5f#epGTfCA0J-~CT19k&VQ9$(QcR?N>GN>x+itpr( z^2(YHsBxEt`+&YgGE-CXCCv9IYdSNIjqbglRc&nEb7SI~M3vtc9t*~$hjPl;zxiZWxZBieuG>kfaXpLc#6GX%xc z_r-xjVh_c<8l!;X+jG2BPGpcek#xvc0j)P*CAeA<<^vYC${G*cdV%?#jx`QHWf;2e zxSYN-&hau8&_1g@dhw_&c*gOS!Q`_qaN2ycIzklz?sIv5TtDIkI*)i8ywFB|>gUcA zDzYzy09m|O9Jmm@Cj@SDj;J&R00W}%J8`Fxe_z~rHIECF$lp9a+U|4(iw6)O53>?W z4+NIW#b#F{+`;!{&~~2{;e`veFhS9d5KtZEJ3l{z>NzxBl^7?0e)m_gdcH|=#MtSK z>#h87l|2EYUPm-TbvW>EVf}T3KLG@2s@!V-U66}u@;T&wCkyC3g6z9}^sk%^g}tHF@FCBV=dSRg zhpqZb;!Ut=%7vTNiTqs#biZ@R+*O3ig|%#DH&A^1%BPEg;dJOduBYdvM`5rH1gti` zcHdm!y(c-8>=llXmZZXp{Yx5fd!BSc7uO!n{Zh%63G;)FNgfQotNt*ad5E3ZCJ@#t zEv`94Bfp^c1tPc5?02IIT#<>9W`!6S=IulT%eAnS9w4}-iWAW=uu{W`}q6ux|usUF+UOi@?rkSh_&&)}VMqhD;* zYtQnJD>=VrgGpe{&r!IM+y=BBIp$^H>jhea6d5S&LV@CCX2OX&ad6AKSM4MP%I9t_ zy5YfBq7Jl2SA#lKQCyR*$;l~&5KmAuKtyuq9m0+Atom{LTo{TUY2fnl&-U~L-uwbI z!?6)y^uZLXbC(hL#QVGV*BlzJWTOr~!gXK3zsls~M#YNm?auePA{G(Otf%zc?Lp`Z z?570CaU49sWC5oWer*_FQ0o_X%5DgsjRvH3Bp`f~n|%wW?_d}>Z{HN)9_9qp#}8`VC_KopUI!9kAfUWr@Agv*;cS=bOB%nmMB|O`5@QgS?g98qgr7e@8wBhX)z8-&c|ewA ziKH6==)6%{m+fqs9SWR_cuaePkw1;!hX)-*(dfKUa6Qgk64wcoU2N`c7cc^w{i}s( zCp|&TuW}n&e=B(DmQ5#kfbu4;$7l+djJSYGeD`xXk|A(VBC7G21Bz3+`7KgFu{sst zJ`JlC(DnoqD{fw@z5`%fm%8t)bw1>7;Q0P=tsjgIh!&6s<^#2lLVWn*ZJFOMg9 z!5i-TLzO<%f^|M^b!~|3MW$bMOK3`4K*yus@p3{UATj7R{)aGIKr?^-2qbmGly7HC z)cf%ky(0v7q_O{eE(M>rC@PBOw(MC>L4Eq%tZwZ0CGacyxN1TRNQ)|Ozj!waaJ&_K z&&1XO3?GPnm5FEu{3ospK5+_%-v{dGbfr){gq1~Xr^7#b<>G8`Qf8A8hOhB$y4$m> z2P8Gi=lEnEhW-^jNn}^$p$CKg17?2(*uYAAhw;4|urL`jVCdcE)5^$Fgz*moxDGY_-Opf$9!I_6Ir1Glf9rguvUD=3GZz0x4qophy1>|pb%Xqe$Y1!v zh<^91RRxgx98s#OQzLF4JV}$DE>fiTKQ@sN8c*91?FAac&-oD^Bq=pL~p=_G^ zYOs&**H5b@V|dY^u&yK~325e(SDv|o^1NT`9Ui+RTMllD@2g~95X_!_0cQb-BCd@bls;yuR#8AStT0A*@OP{M`#b zjvl!I%Fk+B>pAFS>c4EKrbZEf{2X`cf0rNj?wTaR zFW+)aMEf1Z`*|al#>?P`wTn^eH$xzAjAJcx>^NL>^AEq8vG;cg8?l2YmF_2DmG9L* z`CMPH9E<tDm;X9hTCy)xaVS1^wglZ%BGiJ{<)1$T#Uw)7xs(XU zg{6t6pMmo~xV^XKxNb9NfcBNg@+Dc-0LQH&v;D3uOf z=yJ|_q2YJui}2fdf{^*w{goo63$Ru!L}^pn5d6#u?E7{H zAKg1u2!zT)cx0gEmfL#j+dsb(?j~&!(Rw#QB<~IlPQ1308h6CvdmsAL=wFKDo$0xD zvcQE8tK4o<8l(IeuZSHNLU1||XX<4W2*PPziJUe8T51!c1dRE>SNU+wx#Q1(&2jD2 zefqlauH5mKGtB6Gs(WExh4G*B>>Z6*sZ--9AL7pV^6cuz(STv6o+>1FSU}hrA=(Te zlR?U)pHvO>)r;B~SJa`C?&>uTng8VH`<#sC}0cnIE ze9R58*3pfB=j#rCr=NFzQ;RyfPsKk2^d+KmFM_MV_Ian*s;%mf$>QYxbQZMUo<<%~ zec6!YJtbc;jdvsRJ11#UU+L&*0zAAH1j2blvbmdC_OaV~0>g8J!3Yg0AkpVLm3Ia4+A7%=Wx; z+4+7HsNS1t_iyo#rGY+HWA|~KA~5oWSVWCG14J*Xs^^|XeoUOWIb!>qN`Woigh|^i zRF70=#}7h?`~kT6+KQ}9lQ4dDJN7#ME|aCm@>1|6^0l%=&ohw8^?i{G27$w7(>g!( z(LIR!h2p1?mQ2v|{q*|%XUP9CibE_euD%5Dr`8F*kwyFLw~nGiW(3IZP>R;Hi!-(u z`1oh5COAI@)KaHyF5zT?eslld3lzxT7}xxG+1f-o7!%$r~G&RUs=ypPU&g}D+yT`K7&)HsN@*JTYqCK zWcB7tCOnfEY%xlk0uO(>6{5f33|{`a+}ZK~<;@~6igDsuHHO!|zUo=iM0nLt*Sed3 zd7^v=FvfzqHG-1!O~2 zW{q%>{kd?s>(*I~#awt&E9cz1|K!0GIiDgy$Ce8_Bo{9{d4}{@yUOsZC#OnbEEqe` z@C(^Bq?nYLOW&e63RVkIUdqU1xc}uT_Lib3sIWHdGZNto?R`12BJt6^_CPcx4&SLf zILxxG?1)g+J5)7=m|euOkjzw}umns2&tPB&9(vCkj7$z7xWE9XOO z`@*lv92fipXx$yH(LGV{3p*d=pUA52K~7H#1PgRfna3Rr2Kc}~-?{v*0<7r_%U)i42nwI7JtPiC<0a25?0J{{F?erS&t#E= z@bXCbof+%okpJXHrl2CudLAH^|5%rD_YwFKY$7K&T?T|%jyGr0_`xmtb05M+(YXdO0XndB5OO6%9MbT7I%kmcxoh``nzxr!bhrembZs6lmH!emv(Ii}}ATI=u?+ zu1DZ1U1dQR1@c$rI99tEFjNc$_zH0F2++Mn;UOK5WH9p6qayEq#^X{3bsJ8-*f?7X z=UxRhIi1P@U9kcIJV_|7WG2t`yGVEjw0b;$fW-#o{bjDF*^Vhh>;KWF1pY1h63A*e zX?wpR3=*Fry2VDF4k|de5_9trYu5+<9t-#`| zPD~kp^FsFf$t#=tdYrKFn0C{hH=+VwS4*+Vkuvb+MD(M4s4bKQI&W36{gwViOXca4 zR7d{oSHmT)ok1G-1P};N6zn_e4d`bweVh;E0k-`5pvd3~;3lT~^KD8N+;Wq?wg;lVZ3-;|GVkBH&^v+sWKlZ~Q7{?ok)z1un6X#SjMj<}zfo(|-g z4TMW+O2I7a#f_=LN3d(XNzbJLom1LgQH$sjR)FWfla^1Lm0-TtSL*6LLV)Vsy2RS_ ze|UTApsbsye^{g&MHB;2X+%W?0Z|r2QbJ0Q5|C0-LZrL9Q>2lUZdgg_4gnRV+du_H z;pfaF>^)r1J$gSg?|c5ccJ})2**^O@6<_ffa7tcyoh0cC9Nx`u@O(-I*2N{bq&=bV zbG&x`Z6Xx+(e=~m3xmJfr@7MnY)!Ke;^|&ljgUw7oRbM{k-}FR!N`xJg=8;7fP4hU zYCLx#Fm;-*@RJz>o9;SCu5y>d2>K@W#uG1ra6mHC2zCjeN@3c6oUIoKo}tq@Up@$^ z+}kf5^)QD;bR9bOm%^cb8?=^v5(a6t!i53pOAw_mw8sVdX zK(joIt2a>|9wZME{)+wbujl)QvJvk6FC$>F!{xens3>$<5(Ju5-q3$JsQs{N6inXG z?9`xW0p}#1q{@>^@Aen#sUA&mavz}ju&p_pECg;_Rd~%2xB(p+$*stTp}X~kJJU|T z#cJ8*hwh?9Rvotv3>A%?)eHW6e>W{>{@F82%^3Bg$1|fpTJ(V$L;v?n#tDFMZgtU% zt_vJ`nX3Ozt_vtE*j9d-h==BiH9@xk!jX;~7w$)MDtF-7t_L zlpi_hLj~{5*Nt9dRfDV-Opj(yYC)C6kT^a?Ux4@Xc%K{t%J<@Qym+1XqX(eXIP3N^ z70FepsTNT*iQ3Q;yY5)A`S4%&_dtC}E(IZGKABGhU%r{^_+gZP>xn#(p*0NrZ)IRt z>L-BwnYOD_IP3g&{Ecdk-L2KbRL=_Zghg(wqyP)^XMGM zQ~miUcBvLT^KPX#k3?}){4zW?BbZR*{{7x9tl( zH5(^*JtfxHs|)EZzQPy1oWr%iq!Kc<-x1qwM^xv#T5W6XZasRrHJMt`VZdD|m=-vm z2rQ+OF0u4Ma7wc3)+6x_5FMKP#s8)|?7w;Z9oIQzC(wiP7sx%yph*V z#g?VWKtOWzp>pLLh23@^9_bl>&V%gH!#SNNW+@>Uqg4Mw9n%Sl!?EcOMVy9XGkEuA z8w{Y;m+2f$!!t zaKb=AiNO-#nP$W;ZAzEW{JOkS0nzx{@Qe)QLgknrJQT=QbtR$+T)zF}LK!{{c~9blDjf`_bc1)wy*xfwJwVX`48;0PjxAw9*+Ux1P3p>wGUFN0b3dxlI4r_iC?G!#8|xNZ|*(+o2YmbC;p%b9r{-%Ef`M^nls zOAGi;;ci0Q;{(BcR=E)x6u+rnh%KT2(GxiF!0-c34toFSnb$7LY5h9y^dB=@5}`OH zWkNdi6K3dsmOQ1!v!$2|So~MG13ou_NV>B!Gwvam#UyGb^!Z6A=sC}~P0OA+>Uhy3{ zQ3;HCd+AOb{^$BBOnpkTQQWwIV=tIsCvahqumpFa!{XAHNw zb0{2IUe&CO{3&qNPmex7=?RCd4+N0A#q5^v%rDcPajZPWH@qQ=`1au=z0Pqx7l>cE zgZu7v6DW)>i1)eh5b{J2L=lvs^R~hJbZ8}Y8Q|2W3_JW2;g8L1&Yi;^e?QJgXgVfT zgfZiYuna3?t1$;)lPu)@4ZAv=W~t615@9FlWVwIt&ZYiGj==)K5E_z z@Dpb=4+BeZo_f}0VW0$}5(SQ3N_}e`O#;=Pt0CpX5C3sb_TTYFWbELVs1YBV|;nm2G-b;Qi z13JRZ2%kzUy-lNA^6NdkZZniTUI}6x4`wFDKLa6CSA*xP5H2Tptst*LtrpB&%+aSk zf!;x-r$*bbyivQtGAxY}vQKyYVR!88c5u7;%HUqx*=BG;1oth_i3C-eayfLt2q&!2 zTT@t|D*%>0TG_f+5TB4yS!!FW5=@?Lf5r|FZWB<(!)7;z_-R!(XySCN0MBqJSQm9# z0Bx2uV@q%W7!S_7citMklM;QrN4fKfbCxNN*-uxrk=BCWa--ggpz=S`jmCqq+%`&dza zzq^-g?_lQZM1Ho63nDCit$C2g zKIP=BMJ9CBThC+{3j|sbhg6s4qIc^hRXrX&Z7dBVzxxFqe}nu|=lA;y-!4b(zMhIa za9b@Ivb|io5Y(Lx*R9X42fa*zj-&yrS`T}G{5{HZAqPTW<4YntvYQ3ak^dW!U0ETN zAFMa?a43Qxq{qfa3gI0rfx(l{%Zp&wl!UjIBYKBRH9v9^A2ztWt8uZARI;PgF)bNJ(7@RJ08!{Zwvu#!5{{=NQ^RD9{@=7TOE)P6wzfw>=`auAcr`kD(WoG);71y+L(Y){JU?p=WU zR- zl`dnsU`FOrdr@x#i1z>_ZrfpCK3qDJOBKzR@B_Dp2kw`Hi<-n6B!`e4-|gO0df!UR zckAg_Mqa+iT@G4nZ&oVi6oLf3BZ9|ApM$V^p9ZJ75NKF4{63u@+5N~rNjN?Isvb1E zmTc_1`~+H!5=)dGsfE`(%&qG z>u2<$gn1F}yQs7A&A|l45gIu&cc%AP3FLooBh|0y3FFS19)DII4R`t-kbot+uK@XT zK5CdZIa?SCV??j;4;6U>(0wy)N*B`~_20<#$Ft3AI+*_IpE6su-u^Fo<%s+nqf}bx zJQ{!bE+#)V{EzLCO^Nm!KZO|e8hb`!$Fz{VvGulNE$MFFU-R$2H1frg8`FP(hoquO zy}mqe0inkvWInA10L6$yQ98$pfvG`XeVKDT(4u{elZI0WN#z+}a5Rzw?%7B%tfV%; zA&uAJwkOd$xl5zMpGKk*guI~mIW~vzHtJ(ar_>73IYoG<)L(Zi8^qxZs8?*)f%og} z1Ft~|9OEuwWlckI1$tkvh7+_l0D?XS)rVVf_j_7i6^ulxHM{i$#<<&wM{>XepX&y% zNuodx)fs*na%`T6B#Q&a8PR0KuTmZ7!KCU;WJ%^N+vpD7Fk^MK` z+xE-fGzUPPsH+B}ek|a>d_=mty$a~|bdL#(zW`gdiRVw#7sJ*YY|}J-A;6rjzsW+T z5UL)ndoRlp2;Y8M>=f+DfbACunsm?R!m*@%DHFHD0l!4rP)_eJxiU8Wq@F?+2o4+d z-e*(#?`R=7F$HVj1 zk_sR_<1BvpmL6D6NoA+bj|Y?ozYpn0rvf|Gh)FZgB>0B8WB9f@vYS zFF)nM%!@wSlz0FnrNab`1MKRh))2c)IL`7$2AuHZ#a*ILK~4#ip@}@gb7&J8Ea(#o;r`pV7zu7)0BogHltdZEfVlnL$iqcrAaLC` zQR>%wf<0n^v#SQ_!wje@3jH`0q4;g=8t;$jT=e}(d1qD69JrckSt&C8{k%wLT$h_o z$JDn~NSS?!?!eUR1s_Y$B|BLFjkNL}Qqfz%w6U6K>WWmD^SxH-uvscRmd~@8cQh8v z-+I5a5QFT@MW*>nj+_nwhdzhJ@fV{w+_%7)cypgf2)!h-o3A7N_xs0>3d+>;{<cmj={z{1!dstU^$_r*)ig5Cd1y@QcV;77yvxn z`jQgS`UySU>T9o&00>szX|0#kn-zQI zQ3R|NF&VM!O@@yt`6ThUg+NviPr!w6JHU{jeVMS(7bJx^;tSZi!1Xs%VeC%G|L)mx z-X_tbC}=kI(#T25&YDaqqTgIgzkGxEalFzF+=YMV>jJ9;k60 z3=af`C;YxM6UM@Uf%f(05A$`e#Pd#EW@d*CrJVdTA&wZMR;toqY8vSlEfvsuq16s@dPmkYE-B z*`9Mm16|R7z5c!rU#BKG?ub$UMBUV>7AMU7+9gF3a#~Xe4|WgXI)AI|+#lO(U2stR z@**1Io?|rrrY#M}c(HpL#e$*OtdsQf@kDr&;?f6B$2c$_KoMqkfN%GE#)tRY{Mbqd zO$LT0r^k@Lyn=!W{=TzGu)=q-B-I+Nm*~P5?9Tu2w_<19OcbqghaQ)v!feOlp>)jM z1#j1IaDip(M}0K1TjHw)12-x&VB*UsC&vwmfprCy=<_8-fTh*mv}Q;|WtED+ zpVC$_hn*1q?2vhpq1jUj0=n@eYguHEu*26~zcY;jPtm!o5x`Ai%8K~?AmDaDknB3( z9{X5?W26B_T|P?=$F7p2fT>?KMe*Ywx~+^3@dbhuX`v<2DTGh$%iiMKul#v1NwD^VD`cHgORxg5kff!lC2iRj#1J2t@v_=4<{x_3!j*TBO80CA%)$zoKx5pRa{@7l{loT-o z_f?E~6ERyqbH-6#Pj7khF5~1>_`-gIi)2a?eq1Tnv3B%_Bx@2*W;XG#j!D+?5mjYu3E?hw=`}aIpvv;>&=jH`#MCX-FQ` zKHIfK(s&IdUDf4M{fhk5h)#60w;4X%t;Z5ZU*6be2GdWrV&CVog3+u2aAThm)UC_x zCf_jHt!H*BDr`DR1-{--`qJyh`aO7?*JHtL?KYN2kLiUlG7x=g>=T<|2;tdwj3f_BW?FFxUNJMM` zWGBQtb;dkL1?8{zaN-}d=JkhSw&FfOJ_05xr1`xkmIFtsCcb_r{pY{g!jL>ewL!K!4l*@uTbkfYzC@~haYoLs=zD{2IjZKXntom5`3Q0 z3d3-$V~?yvkUZj0Caa{q58>7M5$RK}hYY}erF^x+RtkXf;-pG4sw_l((wizk-=x;C!|t8DBJtqo`Xj z?|aTc?~m<~vII+MY3g9q>w6s>rB;T@dxM0NgYzu^ntvWuSx*hYBU?H%yyC;B&2&*=+|8V4+JdAkK#Fr{r%W{O_OnfW~^|(Cv?C{+jp`tAvEz zq1p0a-^&yvKl7K*t3=8oJ=a6}aV%PHH%RZb$lD_o36%$~94wl%0X>Ibr36u-`J+6f zewX2+AEZtpv$eNH`F7eb9A6vRkNnU>4+%XpEAxZZS}D>+B*yT-%L0i1(;pIqF_T

    R#zLOFkWU8(k-whLi6e=`bkV^4+&66ITKnC09|fn+gz*x^64?ag*SEODRB^#d2B67KY-*)VtTJ3Bm4*uamc44J`CM2*w+ZUoWCPG z3+f^2*1`wjfGKWiU)K0NVCYE|)n?}ha!%mbYK6PNSN%?2HD<`~S@uMWpQeZxh);1| zSjBk)MWQd}Yf_klbLwPxBobbLsl@L--iAM*YA-p(c;6T9+f<|jI%pk#dXatou9pi; zdxj@A{to%YQi(s;ywL3mMn4^l6D&b;#GCI|C~wvxT=P!Y#@olsULZ3zeDp<#Gq77r z8C=rWhI-drN&ASAKV*k#e=FIHBgo4!wy29i`RGfJp3Wfx))16FDlL5gA_Ay5h99B0M>2(D zhaXV}!~5=URPb*mftHsPZypdL{jT4fD`%}+2@E=}@6Ykp5~{q9dO6w|1>Z$)^C!)w zz%Yje9qFN1(9Ib6LSQZrgm#YblZyGlxfWW6X`&pk--*V%;e{7?7FqC)u0I(R&Cs}4 zU}u1}-*}zOZ@li*Z@kWoI&2~cFB?QACRkXU2?wpO=?KJ)a)CqJ?dK_9o`Odnhv}Ir zjbU7_&Z=VL-^VLc{gABJzL^Dfa5vQ+MlM7JiD&)PderpV-Zp2mEzmxh8Mat%;Ps=JRo? z1IP0LOuO?pT{De$XOcij_`M|#J2N1DzQAB?I1$WvuefLFB?8IyJk7%iTF{ZzQF5XW z**^#~a$!YPsz5{eL6y(rD6R@N*7~B$Mg~xn(&PKO#SOd0>6Rv`Euc&M{je8TETCc{ zoAzU;bRc6T$0H+$-eFE2VP3+~@xYMU=$S7wvMW=`4mI+Ou!3<1)GFKsvi`ci-~R;% z+y5^(*vS!{9Q)M_;F3#++Y1);_Ut#O|Q-#^1Y3T zOFC$G2X5WQ#3g@B##X(^H`r|tZ~C&1lzN1M!a*2TL zH;(7S>F-UJiRL%{H;$KZba0j{63s7*)wy8V@F4JlA%VO|1^G|rU1MH;+J^Ki^3hc^ zPSY76sAp+f#{U5@9tixXcQ+KAZuxHRN1XsJ|HkpcTwC82jz2;QF@Vbh8g8Ei2TXAD)%!O1l0+15DdqIzTY_7$Zs62{x^;$ z6m?Oev-2T%N5|7*`v$$UuWFaoPLqZJQL4zB-c86~HZ`q?IX~wz%;M@;w$DLw#kU7P z=2w`J-`5U~R`44~b0NdM@i9IObkQgs5W^M%nIE!FO`f&`yvdfcJ?DIP+n2mI;Z{?Q z;=b&(|K^d{{UKju@A*KJc-u129GoVOuwrOKxMHl7tRF)yinDNG96b7=Zw_Lc<+l9Z z2Y|;5ouahd*CDxt$*5JppY>ilNvcS2J4ex0ofxf`)2B|qa-T=pKrde=78p7zqqaWOnoA-Itp28RSv-CLJ39B@2EmMI?}S%CkF67hr_7s zi6GE!D!=(D3&oLO37{gBU5WwA_~m%QHpotFhp(}iqcb|^(E9(GrzS)Ck9=kH>~?a4 z;u3H&;^}0Xr4IBucuxA-K`(Iibma3vcjV_eE$JM#zf2EuioLwR5SsMY^IP>VIMdgE z!I>00x~}>XA-Q9=D$q7%1~XscUivqjX`YjD-nS?b#M<52+WsgCy!Z!xdfoQ{B;l{0 zBv8eGzGS&W3)pdVOTzNY&;O7zTxzPn}T^U80CA%mG+7ls6O%MczB%~1MJKbo*4DCo5Hi-d_el9 zv|bO+T8|`fZs?nA5|#+C(Z4w@Z08BA%-i{cts{4FJat*340r|YH__iXp1PcEfR9rE z#y;9vuRG;C(y^3G%+IP#C_8Fe!i8O~p7In*O$4S~Lj&uwx`6Kkg%0hNU@%=C=@s@V7F?d@`u_7*zo`3% z>K0beJz+do6yJ0t3Zy+FEWKHd?isAJ(FLB$J4H4^w7cE2k0-3z!T5}51uA-m4u+Tz=09+5zFJKHQl8qISz)s%U(JNoTY zK56O2;088+=cSPN9q*3#xBu*p9o}yo4=7nEZIyZ;dG6*6#d1ToJ6OW)%XB`1>{K)i zzsC?*1%X4_;uiypP`*DGm2dHRU(q{STqAyD$GS!iA_A2q;jrHR}9J@PZ(wn{4$gzKx1k+%MlFG-6iB5hN^ z0qU}k)YayYV@g8MTPFtEkl8%{-k1QHPaj{wqVk8n(Zo!?aVXyq!zx(+Oydfl6Wlsb zPo211eupOYklS(yw0b9e>TUq?GnJrtsoU`y*$E|0+Tj=Q`$H9nQYOEJKv>m(UL{=r z2B;a6IeDrb;hy=*(nRcjMzEtSoucdsdN+{u!7WB5q+|(1-U}cwcdN_&~rO+SMpRzyp@NxcH{O72%7Ecuy9)`a)pehc&gNF9;WKOMCa}VGepPb6I)tcwKga zM9D+_TgUa_8>QRD^iU42@fJI~9!2-I7(?s8rBYAGseSQV$`aCZSiVsf(LILnO5V2T z+&GtwU}^8IeVL-a?gcDcH48z0uy+4DpPlPn&{XVZt??7nPXFJi_4Rtz!*tB}SP7do z9t)$G@qCrLNG=Sozp481=BN%;!F{qV>yDA3`?{{$BpE zddX@EI!Z?MYSrD=j>&Ke)9Di>hI(Dm&5fgn(!&bKa`$qWS8dx`GYqjQPX&`~}l zQUSCcqP-U1h0c*`;Yj0?Gfsf+c-_U1x%|8H=pk}>=}IQTb?%;Z>LDNUmF#S0u; zkC_|u4**+LJ+y1LBf$;G&PSkR4=6nw(4_W{eO$YI=Gu`UXx-f3 zsPF`>%P(9bQRMo_j_k$l*Z?*1P{?`z00#qq1k_@DI@;pr4d_30bNg!`+@dVtIGMAw zJG4E=Mm!ph#!Xx!`#VTRc*&1C$t3#F5U99h*xcal1}Sj-rTV1;U{rMRnNFK{KoUo+ z$z?0P`+r@UV-E7=W(n^X0i=1}%V@nSD2it}d5)7<${-4%uvn%$hRL3Rpvl+V4NU_|$P zX=@Dewd*dBMa!|7o$4Z7IPhFj0$U0)cqI}s=p%eILzC;|g+q=|kc;7tbBpe7dFgiQ zc!nR^Z`~z0F0=%XpsnasXv(q#IHW4dMLqdox8FEM&RUdL(f&}7cy1J}VFo_P+&a`C zstylHoqe@*_3z{1#fVrq#pht|!{``+4uX^jjB*KcOIa~a#D7$kzy{YxO!;Lmy~>^U zEy=}%y8sn-C_SI~1dtX((ry0QOhV%U}=xk~gp< zw2jz8fvy!>@K27%yExucf&23h2GMtRaJ)<8tWRexk>78NF3oiRt1uugA-u#HgX|+d zUN<03n?ri{ z?m;r{QDY?M*zG&}P-oN~T&m?LS$O&gJSi5y-^>mHK}&&-GTCnMhoINRPDk{0j5WNA=5Wb=&8A_cqxF#M_~>nWKTkYTuJ0(wKin5kA$kuU zGzuX8-{Zcm-}_rSXuXi6W2KDIUYrT9`KFd0Fh0F@h&?b4xR{hw)MllC zop$#A&u^^U#cSm*eC4ah<4k|&Kl7jHabaXh6!RS-E5aKyLV_9h{!e5wc&b3p6f@3x z$rGEf8+yzb<;&w+bCx;WFlHaQLwDr^DD8^Vs?hh~m;4bHD~6X2_I~flIwAM$R2E`7BtIuII4YiCPy+Hz!Zg>F z5uP{dG{DMkW%i%@b$qUyG>-~14q67K++-sarr$#=8T_nq7~z%;8wT+=@Ba68b^9GE z!Xz;F`>Tk`eJqP{80FO~FZhh+kUmFC^>OceUyc9sc@ZXTXVp%FiErGW2xy$E#Kbpx z-fCa_xPa^loQ~u<4Hy#s=Y74GF5UfVAK=Y{(U0c5E8QMg;uz(7+co#XU5f3+%uBJC zToUSQl}ZIc5=-3tqJ=G(4(<T_JH?g%fuoZ^o0Yi^TOa=b)yd4_*!PnYQPW+YZ0aZ`1 zmp`n^!~W07_2Bu>W#=z*D*Weh6}x9ADm{%k@5Y9j$5q-e=Y21q24QbTI=0pS*sk_> z;pqFJnDhQXO2Y|WL^zWvkt^HBBqDIql$|B+gd!lHBbqz6q`f=7VTTB*7le@9wKKlv zY2nNsnHfuSipWDuQ*vt2y+NpZ$dwxM4Qw}dF z#2erLS$Fq)d^yLN2Q>eCKZ32^imZIbjC0Rk?4WVr(En1t8j_}4;G;FwnXa5{` ze-QthMCaH081=qgwlEzhLVkI3l9bsYQ-2?adoLX-JVe;%f;nDIdM!EedYJE%O3JOT zZ|BfE>bmCw&xsVwc#V50|I{X}bDld!J#~R|hCg$WzgoRuH*G$_e?Kqx(m|uBfwUon zukDZ;nO(RNgDXZkNn7=qx`QaLzNKbHC;_P#M!mfxKqK|8zzWkYM1C{wT1^qMU-MY^ z+IRRiW?X{*E0Nj+j40`2#vj1H)}}XvhZ(1ooua$+8ab*@F*2`3+3{z4xg$Y1B^OIo zFzOk;B@^WvM0TfV8SOWsEkysie@$m1h1guLf?NCzk~-ctAaunrsrZpQsK&nk=^pa~ z@Jw;?#?d|$cl6$-0nfuE7hrc=yj-*v>G^naGZa=@t%2I3iR`Q6NM0y4zyFrc7Ol&= znqm_F^Dcn2*U^4W*9jbMVqc(lGzG!cWH~L9$X;Y^U$)$LNe6&aO=3e!j^v=>pEy*; zchEjNJ`nV^X3-J&{n*T2%JKmj?kBrW@p^)S<4c#*=53+#5va=HgBUSQr&rzys}8a^X@?@|G7|LowO;|m{rd5!VV2IhICHEl!TA&&C46+Y52 zy7m3f=k5+MT+h|A_+as$_is^DZ?^1KB*u7MzGd`j{WNAdxBl1Sw;ZS)$pcYp0|B;w z9B)3gD~lSJT`=kuygm5ZeiGq@TAd=oLx%Q$J%4Mfw_5kzGW$R8Z|=F*&&ee*?b(V` zT12t?Fzv}YQcpfT-HYsK-|Dht3SBb!( zALKaub=w%+(Em|H{~X;9_tOJU$4**;7MpF#ed!2CCanq<=I}%Dg2G;XV`%#l0AdqA z$w|KU2hF_VIgW>oKss(;y6b|`ZoMbjZcGO|?14MYNN>6p%HOj#vrWNdg3g(({x8a& zpTdB;t@l9x1$!{7%sEAR(I4#0``-TlT;7@_7}JUW~=|aKIDzR z82i#-o(I>=#y?kF$1Jxik6-+86rJfh}pzK8wMAazc&A^yZN2Cw?14nmG(Q@zu_K=|0dqMSg(Gv*EAj zadISdkj}XQlD4o=S!!v4meVJzqXd(|)t95`HIjv3;9?G5xJNO3oV)lqI27Udv(kf9 zN$=~Sbfe82an>own2ztq<)a7V-sRd?uRPkV@8{ErEkBRqd$!l%f2_`N0KW1`10%Wc zulc-m)l-7ybsQ8mE|)=)Lm%yXdog@;W}gC)2~e22>X z`y()cU+rBIX%3YIa^mA#5nl9NoV4NwsW~Jee_l1Zh4N^Nr1#spX;84rd}m!tS=0!-rn1 zT^A+`zaBQm5f=_$_Jl58OQx)w zWza6Ybhfm*9FF|JQd<>|2T?+OMJ88~9e%WM7rxD#C_u!Nsw1d};$j|?36?1k$bzB~ z&p0kqB75@2Z@sxE8Z&q6v4q^=v+Agaf=XA(MdrMqPMnq}pISEjBL@|>D)@Q;5T0Lvu&qqAU0dy4THn{ptQBRedw(#a67mPbBp3Z(x9^2EN=vK6_iWs z3`TfWQLbvoibD}3&TaA8sz&l@TKim=#glLlggr6&c^2v26rSH5-Q17fYus0exf^S2 z!F9)|t7myKK&kW`=^g2Ec#*Pi*6G8~I`gI%RpeWu@aZeO_QGPl-S(v@W&*MFQ2er; z_8FV@cNPjG|MRdf8|D53B5;I>Ol#B&>4~qqW)(&K!w)={h$!64SP-t6MCX6Rvw|u5 z+xtlA%|THaZHhN`>0htE!i|3HVr9&@YG&DFDUM%pr1BF^XavpWTB;FP%>qd<1O%}N#V z2Pi9nazY%3I`)Iz@>-ZR?debgUyx`8q~@V}FI*$QX~h)jiBGNdQ$(r7LTYvcGSVYu zP+#x+f%@%ipgSj<>O+C<`(!f$o{nP;FjF^1fSQW};0tx&zYM(#nqT={G^uq2DJ}Z@ zx9@1f0V{tSgE(a0^G-?4zQo26_DinT$(AE~@Rr|voflo8<)kd$ZRf&je9n{+;@8=w zi`TYG3AB8TWMIf~26o12cQv&hz<_sbT#D1kK1X`&lG3$wH=td3B{ezh`Crd(SjOo` zL3)VaT|RtQa4v~p+OMl#N(?B#LHsURlVldX`?G%J?%k$C0xFpK4Wem1ty3PR16)Yzy1fFCTqCyh~})95vEkhz#SL5RXU#?Bw}8*px^f z+L>R@J>zKns6Njj9o>I7vWM@9+eO2OaZ`;>(_)yZ=5XolP$(dMB6qwGAD!dw%Qrnn zs54-ykRrwAIrN_5XT2=)6{qg6$2q`&+WbzuDn@g+NYQRY;;(MRYCBv0~k_Y1M#qhXd z?9cZlK463KsxS3F^c&3W`L7M+lfa4U(EO1t1B`v-@_W7Rl<$o5&hKTDPc|E&g;0xV ze1E%QF_hk#4ba>8|ocahQ@~gR2Pm*-=Bl3T)CafK0 z?5Tx)Mz~yQ?=0YSr-(*OLnzGc>!6rFlmMS6abzD?e*_&Qfmjv;@{3`4Tk(nFYcLct za{zHbj=wX~u|WPQ3gaf0v_U~|TGd0Zi5%VYGe<99ZIeXrRAa|)%8&R0VZ`;%!w$pI z@M?8!(Q$rHc#KA@(K@*oW8ch`({qjTuhmFBNcQvIOQ zGbXb`ooVoQURwA&&jtJ)FAqxo_P3S&A3MF>|J(AC+EGV&gZVk?c}sR=N2BvSAr87E z!x@~io5X|&FNv(zRw0!^~c~xF82nK<}}j0NuGdnqfO4f6U~E}#)xvi zqBD5Ua^hPEjq~pKv0a^Zde9jJ<`yqQyu;`{Yf2}@=zJa7OP*mOPsp_M0&%{p3+j!U zAcpi)yT!Q;fl9aLsZBccuDb_rNY~@Kfg_cH*Z9m4?m-|pG=2FsT1U<)H`qSsT7u!| z^K-9its&V+G;S@232aDy6IIZ|4qtSIs>-yWxMqK%%qyz_zB3*e^_#fTRUKKwG0MyQ z7U{CM(0Tr96Zhz?1@Aw$N5itz8e`#(QBRI8AWPj2`TwyLL{~}-VYd5kWG;rsM-Y+@ zEe0bl0ar_CEJStYA>Z;RFoB*3x`c!w;0_YQnN2+tj8))Y@^n?mzfllXH{OFz% zkZ^c7;oeLl>@&SJu(Xc!S4_i6>d&h4;Ys81^^9rcSLR$L<}`CV3lNYf-`8{80Q)4N9C!)m0PYx^WfxOqFBGb~l&xTn&O_Tv z2}f+F5`llhGKn~$8Vo3?`o`sX6YTUm*DC&Gz5$BwX+4(i>no`T=%kr#u`6vL+1IND z)9v|xy*OQ;%Rgr^He)Nr^O@SIZ4+n8G>kp0n8JA5H%RX3>l7&&P zu(v2Vf<$)rdxChqIpgh7f6f1u;^{AEFaCR+BEegAZ4r3S;O9&?uA31yu)E{J<(~oR z@KzXw93g)>BuJ zhwzH$5@$p!ioclVnK3*biQ-$H^Vt^v*qIFTx>;s6N8MntqCGy-`KQoD{9)H^S06yu z#bZWyk!|{OS zSlv@d>&d>(Hd+BM{*<}K@+Ade3Cnd32Kb_Pnzo)`Urz;yU3*xr+*b>nr%H-6BVwVz z`vLMv$6DYrz#mvb9}Qe*`P8~oNzMZ7b&fq_ zz1DcSKv6$cUc4OnwM($bUE=Dm0LOeIULDE21FRigpLG0sx5#Uo;J$P(*sbql)7`IW zmA}gm-95PRHrf?(IpTv?YnXX#|Bb}oztWgo!1N2Hn{1G-O|Agkcw*$kaV{XGoO$8! z{vz-b&z&ywaS>peh$tl~Vy7<@8mq zEu>F*=OS?Q!B1yc@vYoTEVK5n`z!M=_?Y~^;A7_-c<&5NR0B$aOW1-mu0VxlputO~ z7|dK=F1;d90`xuzhb<^Ek@p(*p z@)_abG$7Pi^vZOz6madq*D`AZW!kTuUWxw|%zWuRK@*|M27Z-M&og^8NNsgtrJ#opimyWDA&7Xz%I_BD^vC zQ4HCmDrC=bm$=}`v$97Z@XoDY5|3<}f92y!~m~s8{ zM$^+xL^1v4_u_hfTVAIQ8vNPb{`ldl*QJUDKvOL2D(OLGfS)Xru(%!v?t3b}G$_pn z?+eAVr%xF`&x@I*^CyuXvi90YNHLuoq$VklN&SNC-nj?nm+xid0PTWmv!8khM|n!i ziU0W>^3T!lJZsOV83uaXB|Y!k|C+K<+`uRlrAEjPq(3%G{MyI&2ycpNb!tLYAnqkcG97Ciikd5I=9CFN92}~^3_5hlM-xla!UcOC>;oV{~f*Gmj*%f=|*JFbFLcf7yk{W<>g z4}JQ~>fr>8dSeuq6cQgJI|)uhwYAXFN?>vfzjy{u8K^oWV&#m+0ZHirSqI1bU3|}k zE=RQ&BEO&=d@pc{<-sE36O4WI;`e&pDc>3Ao!?U2vSRvHIe$#O6(>657R{sEBMdU`6a z?=jeVVc$PCkq1Qe4ZVe9qrd>~g{J6#MBzT=n9(i`F0Esg(zzW#~5>rORY&b~Mn`eX~ZJTMrx>yz!5bIPK=K-N}dXJDwhf zAMS5_4_IZ*;Aqtr?v}rrT0M1eH5vSv_c;2X8Re0G_1*H)wj;VXW7f52m#-!Rv*R8{ zN)shOXo#0CdFe5zsIiFPrAPNq4$r+w`a8LRbxU940^L9Sx&#H}6v>fX^myU?WW$3j z;OFTw@jANJ2t?XLpW2D@;^)#K1s30h+xv1MyLn*ds9Y>uAM7Hv z{rYrwzP;jjJ<|IFAgg0aIjuX2D_+yDb}{K}66`E+5wJOr@JbREGb`2wq<<=I!(;!T z9tSV2dOO|ad<;o-tqNm)J_7njMVfuZk^bsUyots`J8f7T4e2dEp?4mh0B%-TF=}_8 zQ1Hb?lQ8(>?WI>&1CwBf)LKbPTs+iNs!)s$Zvb~M-tQAxw1oCHvWbl?(XeXBDqFlh z0xI|~j_SL`!S^!B%g#jzZ!RKT3gqOCf;s_yB@uS$zL__?l*$#80{6cSuU`#BIF*mc z=$P?+gnP+Nj$=Ll8VvD&+>z0v7lj>a30>5^7a(Vo;onnR`gX$cDqf1mgE zv&+oEg727qbQYX5!#d9~nP#GNJEkAUUJC0VlnO7x^dsb9AV2pi z9p#Vg_B$p<#QgVhetbVh-jf-B4*ZNZV+j{c!D^K@d+_~mz(&|q@~ABhxP-TEo~XJ2 zCheRCIVO>v98mVlAd!!|{ILPyT}2=KTo!o4fp+Jcn4<@g{KhzXs9wzx>KR`*~;#ZzPZr*aU&65NE)zR z*IvFTjPT{3H|OL+&cwrvxO0_Fuh9DKiqKFkVMREKb>4W((dA4CYkS1a3`5~OaU%1N zlgZGs-Kvs4uK=WZzs`Jc1KHDUk~u}J4MxK$%X>@Nud6|bVOILrQ9JnbovUL>eIz`- z@9Fb7wrP~;T<7WqT1nruqcy$*w2bq)0lvM!+d*r(8HnTXwf7hLVW=yn^)b5nPU zPWR)5fY((Q85v64VEB#oj&!HL&og7l_n|c39n=4v!@ah^zBnJF{MFFxrS*J-PoL5^ zEwC#3vp=oBVOAk&7^Xb*8tY5L_9E*4JM~&>Pp!Y-?=Ls6ylA}i?{b!K>)ju$m&?J$ z%!)E9V+*jZox-FtoCJbgB0ZFTy{n9V<9iYA(%Tx6NDd(XjqlA^^N8fOpz&0bT%ja4 zN(X#|a@fc6(fTGoc~?oy0^xr5U4K}Zo{s`P;mg+-0}8>j-}s*4nVj>+Sg76yB7(g5 z+r>ceB5kGF4V3SRSFU{jwllh))0GuZ1@y)PE@qnA!bE@ItB*TqS)Bo*)oji=*oVVa z{|>T@bmX@aH^Rh}&z}m+V`tXh3zWd-#97lXH<5j2=SNGYV`i=3-7&N3%F9lGZB`WT zgipSL|Hk)xOk4e3{E^%k-gkHDA!j-q?Vuzc^}@`H{Qnp6JToDG^y^(u z9E(+R_DL4d7VDJyC5M2Ut|sr)*3BThbIX0dZ-)PwzsAi2_{lXQD@*mk)Y!33AP@kLfxVXLz z-1>euHo*ud&hGfeevU=B7~v{$%=>~GUFE6Qc|{T*&!n%o9w+p z_RQX7TziieDH$P|8SRpOpU2}9_w(@j_E6v7@9{hTz3=0`U-#U7?m5qM4yh@^2}$6& zhw-O!0N$6{U+AQ5z^^>sfX-F>E&grT)2a3)qWgN2|7Z%K*F|_pemIv0ExHMHfJozU z|Cs`G??{9?T+r(HcYmOxjg6z@F<5<&PD$WZi?`VG+WNJyPOb{_moe=YKiN|L@9pNd z&1c;Efn8VJryhH3h+y^9x^9Z9E1IakM>x+X`7!+aJZ_Tj(aeWtm00}QO^-XLOs-pF z%DKl~9UZih+|q!{jwAAw;h*>QcA~k#&)Q)riRnl3*9w`oL)iXpZ})3O*rQ}&Z2si! zLHSV7yD^0qcf24v$1d zg6;f8>eJs?i_Zny`HTBKZrk~ra$>{3xQy~>g`^H-mGaz%_ihRjE`0KUT6x~HbW#am zJAZ_%l=(H^yx}1wONV~Vo&5#3(-$Q-SIIlrc~6=4X~vhp&inK>J~Lls>0f8G+_7ET zIsrp_ChWW)X|a*6KZoL*v*FBMTl={ms12mKSG?B+i4o=Mk(Ewc*WJGB>!%X z?*-=1k*sP+4z>Bc9=FeX#x{PV^iK}Z<5+?@x){1hGMBCKrTl(?>+ToyzIeUwK~Rc@ z5%BK4m?U9~@X@8DLaLXqVEvwVqPgKysZWZqaUP8ng{9r&D=_7uzt_X&@0j0w@6^sl z6#j?6_gMQDjdg~kb}hmOHSb;>ia7J{{UDf)p}(Y!Js-tm_g5aD#Ljo#SCNi@dDM`==Y$FWVSl?`J8_C3eO;Xnf3KgkGFDjg7PRuXHL%@5VkI zWdGl!T5CDSgdA+S*01C;#ytoR)|O)#W0M?&skfahY4|kfs4Ow{;{8j0bp#-MZ^^hx z&~yBN9l!UtRFc#=&rXZ=+dZg8*z0NRhADTObsG_$LVAHo`SyAn?VbG$&1TN1%t~Y9 z1QEIBZln$&yqOe-hG(e9-^b68aaJjPH+~k3yRsHMc;^C)dm9Ehd%{2zJ0o+?dwU?` z};RiPUT|(WSRAOH&P9*nWi-E)v|V3zD`9b&+exSQ zRi`~S7B@CK$ZJM?7oFdybY<%-=&=4MeI6fZ#i}tv{okFzr^@QF-E>IrIZP$`oU|V03nX|?%_?Xc1*|pk#a1t; z0-H16vQ-{=fS{t%rk_{P_nJFH9^%l40qOi~b@vx2j#|DUdBSKdvNI$;@TohjoCOwb zzt+Gg3Wo~-hX3=bhhkL8Noc`OmQRc86ug5m6vq<5ERa!fSxF zzx;`uT)((Das2r_+HK79SnS-+^3ZnL+sPcK9fs|{g1trZ*|R2dUu>HMRgf4|LoWyD6u|w#NVQ zKB)!Onl@0!$!m0x?j&%Dv8i>wYXT&VXqWY?ZMW(Z%KbS1h#2K-ZhH@Fbc`><*20P@AJGuC(ebeSh%S5h4k{u1t4%q={Mjh`?pEdMKb3hN&*U~tISb)pxzx)L8~hzke3p>@e0{hPpUitp57 zSDQc(KWKfB?+IfyRkJnUq4Q~!S@hL`N@wWkomtQ&fc!uLn8c;NNRPu0yevVTvoH3~hhO^yaoa%d#Kb~rGLEyx6Iq=UXJ>UKn#oy|2 zSkft#Lwd^Rl~IoC;-x?+hL_>Q5Cr8D8-Wcm%uwd_^*tgFZ$kFT{SVZ-oZ$2>z3CUh z4}k2b*#)@7wDrA{ZSNcBnahC~r)HRB8_M7Myi3uQ(#jFi_4!yP4x%_?_Rn?N9D202 z>OCc>)oaYsg8HX#r_@EcLk{%-GJTy&@Rqk|<^8Wcpz-q!$!tRz;1J@J6E&f^)joZ2 z{G-F`=v}qhexA(2tG?@~e+6W$9dz#`L9;}6Ra76cA5_{_{QU6_#pTS?8=rjl6o7X> zEmAQ3v(8eFWl-6zP z>r+PZ0iyx!!>4iZ&clF|WfFAnH>XzL`+l|_sFNAhx$_8_eMkmMD3m_p0h|zV^?5A7M;E=Q2fY zL0;8ol-Kb-ar-;&H>Y8KvIW(k>Lti9)_%#4Q5RfcRvtdpg8U7Cx(>~;dMLrNJFj1J zuQ&ho{3?Z=db!ewjg!N4BkVNG|KZ(z%3(OWDH8E}g3ny7FF_bnZ#$hGdot>m>42$c z%+`7G$A@O{xa^XWM(RzVB9n_#5SasN9j$#UVyZ#lxo5-j;}($ry&;v&$D3R2-oiU$ z6=8c9X1HtoqO3sr<<0p$v~3(0zqY>YAg$i2_idbbK4wn}SU%e%cPgY3Om%XexnN}m z@tzi_FwvuRw371JS?o$KI7)s;MEo?;hrT;R7nl>=^w;A&)|hw9FG&MapEDxrRg)4{ z@4bCoKVK%-)+4CivAxmjyYU)5)G+npKfforn2zKRmyE_M>3&Th-|QfcYT`{W99ozt z?wgh? zNh0`#(^w*qmk+3-9Wu;srvgQC+%ui!sGX0hcXiHwEC&169B5N{kp1dueq{z}7t;Gy zUi3*3c8Le7{6TF^D~-VVoKk*!ekh1!5sr=k$&ULSSFV|AG!}B+Vpdr-HU-|ZfbWdM$eM z8?kZlO7hc*T`!|xdUa=%6GIa?mZ{t|$>0rZ0tALyb2Ff=5obu*mn`_~xb4rb_H1ZO z{V1JU1o?YkX)q4{ESv*FSDflE%OL#~&%RJl)UqWu~ah*nl^dJu%C7Z9nbV=38wxY=Xdqo`HI96Y#e6S z%9LD||AYTZKy@$2*a>uAke&&oWc9|%AKS@f9;c376pQl{Ii!eBLxA?3yAsU|%LOdH z@J|#*YoPe38-nSzRo(0ycfc_!7qjb2Dp39DB7FZ#5%6qI?2S{=gdU+P*Q_UyKK*s& zE1dj{tH4S3^qeLUdKdfpo+vkDPY1>g`;=XIdAH{Amv7zO`Y)*8iS6`}bYm%ilaRP) z#RQIps z01`Gs?g`m+Afrc9IkKk|{J5@=Tae)i^)GWAkm*5sjX;KuRlMh=fHLOzoMK@lq+>tC zJxx{$udwvU8W&Z=D<)NLXZj;SKFRL+XVb_(n#oJ1rP4kd-00`C`lyBQfA#z4Uc8Sh zhUb3`2wbl~xUQ0%^C?8~C{6{(A+oBc2F37~sCjpoelgT^U2I!o&jIo;*2SlMP&^QZ45$A-m!p z{;?TSV{~5ZF@3@2l%53%yR28Mul(m+a%YKVc^(Nj`@P4Afsy$=x(Db7nR9J-2f?({ ztDQI*-hhh1eKJk?@BK!O;IUcJyh+B?U(qa3SUrlxam~^3Ohx6Q{c&TJqLPDjXFV6b zsCGx!&0tGAO90&R(&!w8~t;hOp-gq{O|m$KqvoH$BMNl zV3ESHlC8)AG1-~zxA`l;Q1omIb6Pe`Gu3n#2u0)IV(9bha!Vyt)>2oBdyeq^FS1Sf zeY{J+#0#?Zs_PxKwZ^V)fwcJh?*2SZ9 zqvt78E&X&Q@SJxz>ceIkz} z3`|4~J2#FLgBRrIIp^JK!Oi|3_jn!8s;!XQuk=+Nf@6Bs;jNnKvT7n)k!7_jgO zg7QWV62*?XAb;cl0nQUI@bbpJ;3Nf45WwlWH|bs&+*r7ha)itXe$}n|(EQC0@(nw3 z^OD?y_3f|YE&8H?eVU%n8=t?=Bb{+zeuHRND5O;j!aL={4?+@e{1hg)2YIt0$#tt9 zK*TN7Tv*W!=7l*-QyoP5UtiD4pMrya@IwQYQhbUCwEUpx>fPxKKmRPxc;)ZARbM|r zzHVL)*#VWfhKvKggaQ$3-2H*c}{(x$bFYKToUcifyV}q6lngwA8QjAjk}*XqMUJij#rcOkG99JRJn5XROv?uiD4$v>h^MYKz^^5vHynj*GB0G2JZ~fvP*Ohe2 zW61v5ME63}l;0Mv8s5N>2}kz9?#7#9>}Qc*-9W@=z9iEinBVNT}LG!?Dc6 zr(XM^cMqe#GfsdOT7N|6eO8QRY+>D#;~Iu%ykNw;do_mp$w56^#ZcVFb-*a?m&t}} z0tiO>bZ4uz;l5v!w}<$U+*W{BLnu_{0QK>6!h?;GoN_|y-onM_1|TV-Z8w(@@^60V zOCWnD8tI8P^<67XVlttGw*Xr#hx-)~XUO~W#MC)_DrjA;utyNEY(KHsI{8i^8lT-%41NzQR3T@nGf&7T6t7;+T6K_<9@!B!!?o2)t}DW( zv7flB*0*7s;`I?pYfHd_BYUhz@bBXomkV&$`90Ib)aT7g*Cl+0jT?*?z&g)4hV+o# z`tsbD_wJmZ$ho+rkMWBm>{WadY;>F*IvF%&G!j}u{o`uPwEAvP=lkw3(otLB#Jv!y zm5TgD!zskihduNLOp)t9D5}snd3%wt_rGz4fizdmeWlQPDX7d(W3oo`xBKX%V4a9Q z{I2@sRSWH1s1Qt0FD7*x5FO)Es}><0cCmmMa9oSgO1L*Hdpm+$J0) zVjTejH4iE!T(g6s`*&**%pkpW*8$dpmHysPVdbu_;$`%{yZ4(f9DkfguP9I)01}3j zyAPNUzXm@p*BY$e216u6LUS%bK%D%VdXBLTJU{tqbW{SxwTw=vVB~!n29}Fi`$rG| z{k@ICc&KJ;o-Y*X)ocfm>C^VkV@4p zLW|@Yxt?48qNG-EA4iN!Wb^;LGgdVyf-meGXKIsPX^On%rpDrn2-c^YEi3P0%D0c} zJFmu|yy2bg&P`H-}Qmt*`tCwG`bxS?JP(}>bpBD*d!#E0TEMgK^?Mmlp!>RxB(Lr8S>*TYHZm``66y_; zzxWG3NEL+!eJlcoi|la4L)nq`+j)@h>*-y$W&(z-^1io&vs>R;U3u?B?qUs`_(nIH z($M+6^lCMmlu-wGY7Z~J-;Lyu6D_AIV?vQXK`Wu&URIh*uSYTq^`d=}pHivGk0XPeP$VY}F{LKn4k5Uiy?yc{+^zXUr@?0DaDYw)Ow3sC(xukP0WXMV@)`}tpg-mUUm|JD1! z3WZGWR7<3E7QINZ8AkMkO>r}5)^BAnXMzB!+m!GU|l2I`G79L1g21Z4@+=f#iOLZ6Ty>dl3c zpxAj{uzf@bsOSdu4wQ)kMUuid)z7S9`><&W)h>iTOCJnbdM{uBr}c+Zf+5PUWbnR{ z_Q@Ar_+-~L-Wyd&K7#D!!vS_^KC`seq!%?6!C^11OX4;n;JL+7ab>Z~u*agz@Ry~? zR=r1Yc(cz86(LVvI0wr(itoWCV4<(NhT>D|WoN$Lt$7i=(mrol7^%Ow4&48VK_G<##Z{=GdhD&| zqYkII9%Sv+Li_BE8EK30D;=nK`Dx?6awOk89rf~OdWQ7)VM)RA!()7aF!s@1`K!|K zj#|QF#maM#Y+}w$*a+FZ^rD4&s0gk>rPh|v5kiD3CagGovb6&FI~1|;?m58qQPe3d z`d!BlV|a%2`<$_{Dpc9?`iqaIJ|L%X{iWo9wMYMnxQw3QK7O~{u)X|oLFK?NLu_6$ zg^^z&9B+|bA+g7Qkue+V2eF-Q#WQM`#LtUvFP99_6)Hc9@(v62n;2x>zxdbuKPdFw z+oxv_DC7h#$WvT^_i5D_suuJiS=H4FmogjZ}mTCgK?KE#Nst*|-1~ zF0jYQt#Gl;8lG+MHC~`N0SHft(?~R2*s9;BpE6VvW)B;*;^jiBu7ie}F53@RoB?m= z@O5ipU!a&7d5Dq43G(51I}zST=j7%45(j&}ctRs7sy^v1^xlm<&wL;t*9qi(r;>Lm zLUB#Q&QnklD!lmWrNNU;EsvfW)WWjyT6}cI6&$Mggm$-N7k;xg+uR{ zRwU4RF!>ShF06bTytO;f=C+RsZXYHCB9D0KeQR`!*0F z3-(qCd0T{I?Y4iSBX*x3p03rw)Xyq^`L?DT8#kt)q_S_>7uiKS)*__$8}9sG;1-mu zZI-ve)cedqE2EC5j^2khbGrgwTl_Wu-)|=O!9w3)oz5R(3$%j^);vYX($AW+&9#hE{6c<=5-MsRM zehAENdaAWo2I1h=B+tsFI-zxK?C}!ca>y1=nq((QwuHg8Uf&zZ_k00uFN=IG8}f%( z3|0N)lNJrvOZprJh>+eh>zDmSjedkn-Ip3OU9RTD)S!cv!+z39V){EK5`zEWin4Mfi+ zT;e`+{;${9CdK7ypX2q#;=^~MDrQv@r+a5H?J4V#xru!^2NiG9(r6Gl!~FCw&uT_} z;AT79|Myr;nl5{PC;+XsV;6@n{4@U~MwwUEb+GT2nAplru6;%GmMH z36m)`xr!;jkY&hqkz5fn(#`%y|M#2!6%`K(?Mq0Hqt=$6Cq;1%s<+7&;+Z1- zUxfCu(%5d zb382I`wJxZ`S8kn6O8lxzdoM@N)KcDVa?R_IUjIh%D1;Gr}Nx^P*rQkafsRV zk-Xo55}rL6FVQ@w4rld0yr3|!gq!2AosZ3N*v_0%=t<4=Q%qz*_c_FdZ`s;8`F$e*P)bKhIk-)lcd?Tx|Tf+Xm(>XYjCcOAcvN zwQCewFY>iZbhXD%?bt4d(J%V;m_PeP{D~+(F$%f`VDkc#*5uLF8or+Z@48j%$sSv{ zoj*~QDdVLjFSwn*jNjw7oj+IK%p9Xsr0@B5$RhKbKrjfnI$=(f76{gDcXuQ|w}#vK zOB|tke z*sTY#{c}q+$m)sfkNyz90L} zw$Gf~Ip6nP|M15;ud(&|Jp`g!uOK@?VGhg4Pkbyte@l=4n}-)O4s-wY^Tm`)+tC)9tg_}B+TLn{8-8&lYT7be^@^>gOLM&~0na|mGFJ_Rdo`$imoL7K;(bu= za;eFf)dB;X%-;i`k5C6Ez4FFj1D2itI`R34U_|MPqg3220bIAZfaKL*)s zp*dJPP|8Aa-TPML_Y4wNh1u13c5GKOE&L=@!o~;rCPsW{_7Ku9I$UA4cew)ox*thG zv5T$Us{ec*y?GQd5?p}I6I<|x&9Y(y8>d0<3HuyVJkoRA%_}{7rr^eo?cz@6S>;OK z!qiK4`TD)t8tFqiY+iSg%NYK3KknUT2>Z(U@9+6dGHXAd*QAEcBY%a-b0vHbi~oP& zC;ooo9D3hLJ<^&e?Zd`#*-j=ES2(LSE?~aLlanN}6prkqQU%Q4-!drvb$=o|VxFEa zQTt>4DT#dP)AEPl?)3Eot<+Z_U2A3u&xi&*_ml0w<)fzHc-@cGjs=db|Fbeg*W%r^ z10ghf$=jMy-jpx46LQk8S>Rni?E@O_D4tw|e zpns(n>Vr~S`?~o3=$ztTd&;0Me+=|f<5t_Upmm#&J~wln2gTF8Wt1K3E@%vGmjab2 z`ZU3Q4%v1_o)chm-naKZ(Ix2X9#uK$Z#%8v{n`kS$vX|xEJ^(H`iMG(+aA-8m1j;4 z)aP?VV&AoE2PR?~Bv5>t7^M@RS^2Q>r?%78#Fy!`vZk1N=1CIM{ub!I&y8B{q09RF z{KK{i2I7UUN&Z;hvr#{;#tD00?L>`~3xjpUPMH7I%w7F7XoAfH6)GOJt9T<2Zk^} zO}>LSLoP6fXp~(l*$FZFyR zLPQwYgVwQ(@62W9Z_R*&j-fxRUL0_%J%35%;0Z!!1&^jp2XECcB+E47|AgXjMU;%RaP81T3KHJ?W_O2hHou=rl`GJ&A5g=SD4Nt|6M84h~yEF7rkYXSo7u9ELJ z8Ua1?#;+f*JR!UwTyl^S;p`j;Itm0goZ*3(HOZP7Brl(Au8?po>;j+oH7xjV9DsP< zb^G!6U4t?jb&3Q!%5dZ{L9IHsKVU4xA8=$xI1SlJ+`H1Ho`B7voq}jT+CSpP3>;oH z%FvfPM2A!T@BM;xx8dA2X*1jY zFw&BJ9ARn=#{xRm(w$Ho!25)Llq(NR;RuBunTZsHSI{$UVdpQ=T`mxAPGjl7kyCSc=~RaN_;5nS-t8(2+g0{KX71n(^(yW-TH=Mo_g^kC%uriz;uXnvJMPhK;p zECHM~qeA0nk$lX%Uvt3Y74i!jp6?PJi0uMba$1?6P)CBCdrqIm_oIpC{@aC6p!eUeU17{YFkLT;W_S0hVP` zyoKVazBEiv@}DUI(rhks^2Z^Nk;S(fY9NCBC*=I7K3s;SEfRZ%kLtm~5Q*xcyZ6EL z^jb*M|LCKbj{Qt^{!{|ScU`=vdLQ`(lOI>P5J7zd3issDpP@!_>yMz92|YQ;uI?@7 z*TcK}BFr;>N<(041Uq&O`|@^||3@H`l)8*V5Be*`g4A{OfD&=U0&|z`R{L-AR%_SZ zAv?}y`;7&ZZ@)i8czSlBteh)+D!`HS_}iCHP+nit(Ic}9kC5JD^w~yGFun@tUbJIA zQSAuMOYcfH(Bg)-f31g{fA#l%!Q*NRG8yJrzZ|^*-Q{cZC7AL}JmTi>!70Mw(p796 z)9v)}ma9cdb2$(aC84}@<|c4)HB+dh%>n&almcw2tAU49<-lo9OUTtxV&f@+^tME9 z*^w7|??U2*V>2u(2tO1b+uF)ke+PQFok&u31#E9)XIG z`bl1=I;$;Mn=(J~q!zuyRK0*^eu?lKwi_kO{w z+i+i-w6+cRwMlu-QMkO}DBlJHA0@t{!_Io1BinFan*{0^S-$?~Ji4#^Y8Txl6OgaX zdhCOH9@u!?Gs#F*3j{f7fqJMWEOwZSS8hN!B(EEpt5iN_kS$v&!}c8Vi`kst@7u-^ zzkk?N$`{?EEk_v+k}IbIZ@elt;+xfghjywkKUWpT-MM&PHVx@F?zDAe4!7h02DT|z zMipdluPz#N^I!b?xEzZ{qYK(NwwU_Qq4ubbtYIeSP>$%1jp6T{puSsE_QKA?iWrbV`xGOlyVUvpMD_ zP&<%4Tb1Ggj;(x0NCH|Z&~vz1l=sEW0te2 zATx$!UGRVWff|h3?B!n-gBwp51U=`F|JA2X7BNK~)b8sh!-}|$1dvuTKXsd|88{lM zQLJ1J1)n<#_L&nDgP=-&cBfZ0fOYDmRi0`Pa9917Q1BVW0gU-?-d^x(TV9V%|KHy@ zz^!sO9z}~wg6RCVvsGjm56=fgj_Y4im}ewlQJ}wkp^!SxxG7|S+F(VatRGJVtXQ>;H&%`9kgSh&|H4dJ5h!D7ZEHkoin z6^BVn zVOoaloQR_r#HGIRiXzbtR5RmUjAHuxcnHUrEkiy{VB==jGgj~oGUs5*!}~JQS0vEB z6SlCEu*$>6(c4Z@zfAjr{IUMWZ*ZoX-j*Uiza&js=loCEf6ae|xS~boL?c)-PLi$G zbq8)QTALrkRFLq}nNT&e2xuH;uq-K)159`J5~_rw^Y9G!tC6J{JHVCaoD(pQG$^s-*DzE z_8TC($b#K*zr@}g;59!$@}eK@z+6DkcS z4h8_~u6OtxohZ+49HmZst!O$J6kudYq(lDnw{yPU&a%&kNALMHgAg=M8T!@x2sco^ z4z39)fvF3{kZ5VORU@_-GOBm>-gC(Uf|Vp6dtFex!B5%uR^`T1V1wyo%+deB4dqQf zwA+|O-z#Nz%SpKkuolW#X``Dz9>)BBHyT!8L z)eN|YIm?X8C5uWV&!K#ppoCwc>@Az!($%9N- z78fsfB+(J7dWf@U>juHiek=TZ&O)e$?jcg^GNn6x-cbGB;W5!0uHg0KYW9krzxNCN z8oiL|_yg+~{5Ca{sZ15?7c9-pe74jQ;W!%$_?3%WcaD!sI#^@h{{ZV3jGxftd+QWB zKZ>89e&ZO8jbr>LYJTt>&*&yl}A7@m5 z8DMFRV(~wb4priL{f=cLxyNwfTPGPq8H`x967zVB_>Mg6=Jy>hA9U|Z5?4Hr;#=H0 zNN6vufaZIEg6kUP`DF0;d!R7if9}=P3$$jZcV)m&uVcUV(x7%u#hFA%Pm}^{U*PM2 zkNkqYH?mlaEm6BG&&bU(BOUH+Qqxh4iWX zAIb`JbyC5&7iHpi%~E);@9AgyW~6@%rf6B6lWPUv%robu>_fqsH4WRh+QlILSVw9= z+#^7geeB1sxk%WZ+!b=s60O%)L~|FubY(-L(io8xE_5za;^tSZ6BPl0dyLhe#*v=r zMsT-HaRBz+`TrL^DXTi7HmU>qe`Gk6?DGPtpUvqm2YVoVAWqvc8fI*q!=0$&4|utadJNd#2>yJ1$R{YWyVC~Y|@pYWP@paLB)y_YMUBLG5 zJy)CO%{Q_#{?;`pMott~e|iF#Df*P97|^|qs|+QWn`{xz+$UBZUZdvTM0B73nfKKw|Jmgbwi zq($xnXvA7r2o%39$Cc?G#{C(>-wgAgKRV znK-uhI#9^&7IA2}2{y-JJ0F|lu$>QrafVN$!LndG9|~>R8)hvCm+N}HdxO7OA9QKY z7|p0#0FU4J!29=|vxWQ2|9Re`3#Y!lPr>4PD2Byp#Q01x<-}QZK8C7D&r*^ze%Z!q z=eW#Si@glJVoFe?%{kaK4a;e_}D&vWlZ^&bFg zjD1Ht7H>!J2mIP($)Z3y=}oYmznett#23o!!FK)#evjLB{$_0Szs4RwILl2OnB;H# zTEblC`&-8h!FK)%tlM9HF&BeZgS4FaqOj-5P9#$M)X=LM8@D*4wEeyJGWPtK-^ORP zntIzT-p=PluF76o8Di`{!j)-b&ZtB35M_3(r6t?^B~ zkj!PphwjVG@ukNZOl=@TepW@l*W>niFW<)RFBcjM+1?7ZdMd^_qLP;R5mQ z{+I8a+Hq6N=gB_)f6!}g!v%i4JDufS^Y8uen92Iebr~zasOQIXzOu5zl#l6;jt1zU zbI^I6ji5!yZO3*Q2~J2@^t5CqU+37clIp2a1=M zKG@2leP;G?Rc=<&4oFM~TTqxHe1YYYs{$YYBWEx%Hk-UGMD_8cR)V+>p>@soaa^&X z+ZrUtPWHAvvI9z|b*~L~=z{~ew{Cmt(#U{Q@7qk9t zT)rhxD`EFfPJexomMW4vB||&E#un{-9#qnf-!eRfl@q&ECOwWWRBZW83%$||zbk}| zoAf7&uXoO2bouwZZF9oJ8pV9rJR382tX_;bWA_ce#19(pJmiP3GUGgKBo?ycc=ug> zCw!X~i{B(K|Khf>h|b$nbsJLW>Hj{jkD|EU8^Vo$$AxavP}0x)t^2Y0-zHYv^lm-m z!i?tw`4`UPK`36Ng1Kp4-WRO@-FBkS(oNMdm%@CncZp226&J}lRQw5&8$Q^$A%7xw zX7S|1I0ApHZ_FBXi2el~Xm7Kj7AVvQ-q5jL;I18Luxr9`6XyYVD#~if#b|wB`qs|# zqvjfDd@XeU)iAn;WKQucpZdY1LyD`*eR?cId3TQ&EA?l2H-jyc~baKbPv&x5dYM>hUAEjiK41mXJ;Ux zTQ%R3Yy&zT0LcUm7qB_++xx#}ojtxrY7IIgXeFsyY#^g0Jv|eV{6FuD)LXVX5AI{- znU{kbJmNFh{5?_IaDfCZj&bZicJ>!4x4hrP6kvdE#}p>r z{Bu6VP}?HkY<+ATpq=Q=xTzYKI@V6k_>?@Y{w-F%YH9Ou_DV$lZ{5mD{hTZTAdTYv zF&gawaO1=W|3#TRNDp`0I+FB(5&z(co1{5Fbs@%lK)waI^^(@%JnaA!bwZb(E~>)o zQo?cvnOtBqvnIjhiX&|35g%#)&;tZY4P8YYl>pPxjP>jvc7TSgo7Li?Ef@~9zmZsW z2HuY8K6!Mx=db%awBCqwW2PVE7i)x0S8_quggBa;Lbu>SD>}PU;0P5smhmeZs{zr( zv-i}mPi*zilH}@%-O9~ChjoI3oQ@qxco90x85)B=2U6{gn%i6TX-fA>dp<&O#J_%% zi}(@G3#l8YK2BWudwfX3&^5cWpKCGo&r*3G=P+*t`;3@kZncDg!G?;K6NQaHy@{RN z%B~SyJQB3dY~Ts?nIC5>2_yW^?Xs)m&qSSJy@SB2kgw)exvZ~d*8D^#Xni01c@_6d zLzqfv0FI9k#MdJa{2V6&_x{!|@^ACQ&Hk-lEZXLWiw{gWm?=bIsA`XO%InU*?r%oE z7)9d+?0H+r)p}#(0@h!3Ky%zB(zFNAC4iWYrZAuteeGl6;&IHgJy=-e3-ng2;FRSL)(e^odi zlC`8=d|&ZHDqr8jbKSiRqMpDY3b)?dGW6r!n)|ej3P*Fzv<8 zFj!Rv4q5>$Y2 z`}3_bZbl&LryAazN;c@DVtDjiz6$J9B4|6QZ2^76X5_q~!q)dpGfwIzO}W6)n#o7X z7m**zMUrpY&95p!#T|lJ%}9h}Y7-~O-g6tp8^$ffnI7#*0ndzH4hpDNfVht}_bjGO z;XqJjzOC{;ikUQZkwMg*>8R2 zz&1bEvfq3?KO-q}aj0^u9jkgy@w$76-_Rb#rJphkaJQ7ZDUk>d%=oRZY~SYRNdb3XX{c<)c&#D8#~#J*EQFAN>D8pEEGyM1tndQTxcvM@f&SHd-{{(L(f zJfPCFXpi-GJfc0{_wH>Iz}+wxI^$vl(n+5_^ij+Pf=1c6Y?4)gkvClIV6qZ)aePtt zWf93CweX`Uhk`!rCSTQ04MgYT=KR`h8%LK9A7AA^LE}uZuQF?@H3irZODz;$tpF;D z#~1s*C_+s`Y9E@P=sZ$jRVjPNk_AqmxYI2mg6w)fSoWT#i2wU>K1dSj$&riIYo2y% z{jffYJ;%3?Yx4dBPS;s?w%=PTe!I*4T^m!chex%7>H*SgMzH$6!+X;NOmD4cu6Y;( zPVv;&VgV1qIocQjo5PR5tgBFkS(FA`7SIpi4MOj@pDAN%$Ba#(2<7+1Hl@ z{L^ikN{LXO<#?Kho-Z2;LF+GX`7|Dc2YlWd-SkZ&8&Di{$ttHt=iaNTeRHALGPZu( zbn;%T7)t`SgSmGW)$>5E>8j1~8!2FMPGjY;Cu+yOBddmIsSxyhYwQv7K<(I@NN=ze zA>35^y*@v&vIM|);U)#0CIkaUr=Y)F2)ICP+RYwQ2s%}6ww}3L4SZaMpW6up0$Htu zXFak=Z|ucL?w)Lx2I9Wx&Mb-`9KmLukl*nFx5_thf}6h~kEKUERS}TwVhW6^tOBtN z4~}}&r-B200_3kAqVw`8=fIx)=@MYilKL^c57`lkV%esgoX|a`^l4o-+NK0p>Y119 z#jODAPP$Vf&b6TNLBg}TB|m60bd+Kb%!T{o3KAP$z5sEH<~r!>$&*m8{bjfrNosK`2NfNEG)(A4LtFLPsI%u9fdXF~_37(g@L|o6b(mc`l%Yt%H&n=kuT$<- zwfSX2#?nOMi9QtnH1*faC_~79%EQ}Uu&Vw~yxF$kNBfT#z{yFofpggi->951u5$G} z!V%`LSw!0jB*Jn&Ci$oO5%6skW^uCs3=ij{!$%4zwPQ1sZkiGRt zy%D_zK=sDX7uRRVhQJMph;xK$q43ztUG6NEfl$eg*hl{IU65ec`@-~j!(X3!x(g+z z9EPyC!Q)nff@Y_%_`O%*8TdBD=)9o)K#aHdZv2kzN&b>2@mIj+6QOg@#WV9j_^l(V z(ZZxsTop32igX|f=NTj=v} z57O6N_v@7krf7rM_Q34a|;mDm$5%fR0wyFY;nuFn3g`%Ht!_@7YEgWZUDFf_Fy2G;iu7 z;2_?f*zl7j(3ZzsPQkniPODwgU!L*@jtEedh0lHmMbhR2l z6qY|YA-vezw(LhHYY(Aq!nfT=D6`-pAI~3L4};+?IxDY3v*^CSZCz2ZGs=a5&XFHY z@ezK!eZR)fu>Xl0XF?LWlr4}0uNcxT13^z{ET$AOWFHAP`)#@6F`N1s;nNm#40auV z7zpWZ!I{uJA5dvKWSnWYa~`uz`k5Qd)gzyZsb9M>wjM->eRpvDy7Sez0pSL36)jlS zcI=$T+A*p{vN{`!8?=9(9hpvv_EDC6x79(BopHyT6nv_fU?BX@`9$c88=a~Ks{oPn zWtkNg4=|j5U5Oq)6G-mOIDYbe34rpnWpD1K!VCK{ywePj{BRIv=^j5_0{7|v%KH8i zokw`j&&VcLJi;`X z`BC!D_tVJV%mie2qzLO zQ;0h79o<`kZdVq~7E}P&gKxDZ=AVGuo0HOb(>3tqm6qy$ZAvof)}f zFbsm0%e61+OaN)IY_ecmOZao*ar|B3Sm+vfOyER#Ec_a2Ll((BnTQa{%290Oxqd_EQ108sC8Tdqd>f*i@h zA;TL9zw^szH2w^yLUzRMK4aK%WtK4g8qUtcys^Kor$bpz)69=9jQmvFMj~6zV_@m= ziVmZCGU$4rof|1K075n93OuO>f!55{lc(ybP`-VUef?kfSccW??s$C?l%ibL4ktnP zjv0n=4l?aYaI)lueoN~yC@vadkY1z-PtH)C`t-m6`s1#sZ_fpT!a)^|hZTqiy*+vK zQ*%rp7}NOnb)+2mpS*|jV{WwA0A8CTIq9SL_v6yqYc#ub7t?Rv9O4+KQdFHYl@kn422vxQB2VG4D%ep7@N{K)v19*=GxJkaoZlxEe%33O z;PF8Hd@5ka$Ht-!7#ZWy_K_eQ>Zya(g9Qb2Z@o9l8YIcy23)j)j`32DfQ9%7!`1W0 zp{VOa4cCk2@K~}5F4gH^xKz!o>(Y=12HogiI)x$qnLD^pEyU&_C=$hIKk+ZWF_!ez z1RiPbFaUDx_;VsWmGO+@v(smhzXhV8?~^o}2C%wQ@a<)lBzR?<+^I9SAMmZFH^nT` zf`F*|-qrPn;6q@eq2hw?@A8Mr#5BI;pmSlb{Jsa1Zk1P&9ph5;Bf0k%bO64Fswi(d z!kw53aZeq-hVYVa@YU$iWNmO%+UUjvP8_H?gfA~BZ3*Qb9(}K6+5gw`kIkm&m|Xzo zy_%XpMRfZprhO%x6&$fMMfIxZxM;JUg&7}vzerOaa>gR>2UNMozB5JIff4NZ)*Yo< zz@@5JY0cFOC_>+sigks;Cq5QO#)J_MC+`7)T&Hgyw0eW>Mz?|1gA!LzRN?7vkcoT3 zruZ)M^Zq$aq^6Y>oil_-lFymrmV(92+a8BldO`aG<+*_$$#6x6b~9%Yz2~dF1OZYP z$H0S4Uw49ts@~fLSz{eN#JPuS; zw9;0PC;v`Q|5dLh2P^4eTC~4+MK_9N>!SMJ2(5e1=ye&UKTA+tsI!BYu7|bhu>}L; zX#$Ef2I$@WQav8`ao;=eX1sXPEZg6o3sjQ){7emqzrQCR7*b6L!;>)5@%!zUBXLlD z9oYQSkKVX}k#E0jes`XJ936p??*%u|PsJVsrG{_bM+Dh{e2touMdG#KBe!k*%;8?Z z8+Pqo*M=P=;bhfKd5-RrW&WZWpSQ!|`Gl0)<<00`xHrDN`}&c@H1z7F!>HbTS;0po zHcCM2yD)08FFnB3sMhR3s1H;L5G&NMY=Xs^Y$$APqnj3 z(Bk@T6y#T44HNgU1H6kDM?% z@hq;$=LAk8sCgnLkbEEc0ou8!pO>?Q?Atl}C7mAkje;lXegkt;!9aMOKfIH>68Id> z8|c2$21If*?&W-bd?6zee(H>hlR}0qf+%Qz7 zLb%?m?6W&A8t7dl_Y>Cpl7IBT0YiFzvZ4pT+PQ^u*R={959TU}xs2?!PVRiH&)|n( zAdO11Rsp@!mKReeU5H2J7QT1^-{%$qUXl1+oQM%{u{=PmUoa8)2j{6KyEcMKyrZXA z40?d9i)=7Zj0ZCbGc$7skbZ!BbghYbrV`lF`CF*WBYkWyj_|K|BEQr3?1=Zi_wd2% z%~Aws=K6r6Bg;ZcSv8Q%mmn0&LH~E*gs}UheJ4=7z83l6JMug6&fQ^Ct8@r-9{;gaqZ12D%4xyrty;Kw>O@r8W+UvQyY8o{RsvPE zJ2G@HAp2nEwf<*p_u^q-KQ{Z3+YP_dbxgv1jC88tvN_c=+2aTo7?=A|bZqOv@9zP8 zgAKluJ}kPCoGd{V2Y5Qp=nZMK5+B;iW z>QT9n=u*UTWESk)Ji@zlBpXhw$MZ2A$b`8w`goK*BY>}#&FGR!IE>V)eW@N^4((Wt z+pGdBVMrIx+?-n#RK^7a_68_!@J|X2pIydk7-G2XDI$RMO7+p<08O7pIQm(RLGeP` z@BFyK2Z9`n(tm%8kr0@*(d0qdcISmIzeMQY%evKeIt*G2u?!c=BE4&juG4-2s}>qL z`?JGsgr}uF=VCs84%xN#Cf)FysJsW~G@`y-NpOQAv`TmI+?-+VJ#5Lduu$HN zf8?+Cy^@Nvo*(OTF!EdA&fKIrQICtAt8w!HGiJH}B~6s^nloocKva4>YqoL_U?y5noJuGGf-@nt->O@H#KWhO zXLT;aEbEu*1-$6KkebT!(iB@4$dM{XgnUHn253_#f3$Lc2s(I%cq9)-z^Ox7KAUII`CzjGTQVfv3lHG@laG11B7< zw#`#@==^Oi5@70RfD|_*2<6@&-nq$bX=hQA*5COQ3#9pW2_C?)rVXN&F$m+Y_4t&{ zH3M~h;~5V2;@|mFa)ZdUOsgORyU0ZJNi@GSQxA(JNp$|s$0#?-MAp>?T?kSOZxts% zp^4%vwc;g^c+D`^WUdYT_-X7x@fO7?@~|a2D8!f#)h-S+><$hAT75gXCX@j6Hsx0Y z57t86X#FWGi5B<)d#3-un|Rn`#jaJ@h;VFk35g$X4iv)lL+6Rh!_fX}By)szi>MBs zHj`8igNM$t)A#zBP##4>L1=dcC-MD};0f6=UT8E^x^4XC9`$@N|H1 z^~EP-4yuN1s5jdbR{YvIu2#E1``uv4OHR$2pShDl&1m<~1qMu zagCJSu;H-1?WPNQUls~_Z4fEg1TtP`gNI7!9HSMZZaNo$&Rxc^-S}+zVlY!9Vn|%q z0giFnbS$?u!kN`ClR7HMZabK%>T;ofH@HT6XVLs2S_cCei|m~Ys9a~g@HU~eaxnjM zJ#KC^5j36Z=1ZHa1-HHQuCQ&~hmo)B$GI(#|4peVuZZtE)u3-C^PJ*DC#-(IRE?W~ z^y3$874%P_Sw@5Cefpat*KOfU}K*jE$<{=|VI5EwpGr?yG6(2ggf1S31 zQ*7dfE?F9YxvcB9e`fn1^`AW%Y1ftEO>KvIVSS!knKwXeY%I@Fj#w}rY@@Ckk_RT% zq+1TiRYA2$^}F{ako{WN`P18189U%ilO=IMHY0p*aEd}Y#t?R9$`@G|yZp{iY>xdy z(+16>*lPmzk7OM|oyybq0Vm;K*ORB3On=;{5+nZr);phrJ8h7OUSjY7j~@)MuZ>YE zse@(tJZ4fG^)Lk|Oa9zIF8I8DSi^q;@mO$XDORW$bHJt1L*D0z5s&6@o2SKVw+`t2 z9P9lZ33}igIWpu(X#}L%;^+J#EWjaslKW%P7BF72XY%VR@*mQh+2l*{*aGtYm?ps8 zMmQ1W!eqCCsRfYUkgu9t{rhp@E*Vhae2D3vq%^E*t+)x(UflaWtpL%hcE}-rg`#rF z7rO1zs?OJX#Fzx)_iD!9 zUZs!8hg>BA&!VZ2zD4U!a>+vL@7uu}iy9^$sJKg7e2W|LN?a(! z2gp_1;mP;TesPPwu%+j5zvNIY^qjDAnuK*QohtjpCEGAC5xmswc?Q|LNY9uDlTe0$ zaGQ*#vs*~-{^7wY+Y*=$7nbWcx3LfpWXrCsiLMX%)rg_QKHe$c4i_mL&ShNkhlOsX zBrJUeFc7aXIykuj*4VR;U$cn>x^nCx&Q@st=rGtH{~X|R@^4=ej%xhe zRqosi0O>EkTdk+}f<#KI!fBJvfF!jG`?Oi(U(Y}NWgg)d-!bEAmnY1=(|UlppOjSb zSZGP2dTsnzWGYL$_Q&!@MX|PRk2k^`mwN*TPH94{uw^OBN15=Ql5cfoXDw{8;t(io zj0as)cehSBBY%fiOnC=`ovXl&x8?66j-$9`J!)%K+b65xDqCwn-WcLTI|d9)y_rIF zq|T`V(pvt(x`z(Hhpm|J+hrXX^StQ}%OJvQC?{s!%uKyt#uaWJkFV%nxALoAG`Z8q zS2U2{kkn7*8%Ca}zGk*pRZQou00Cl#M%h#Dpt8>H$%`Hb*cYjm`|>H`Yfx}3HPsM! z0lEux0oOJEet!`ZwR|-miis~(D^YsZ#9-=q$FwAZS#F^EvK5;L;!Eul2BEtO z-}o^3C6gp|fgNJ)P@dSY&Cpo`UhF2E?dr^cv3M12ShzLNvSdc#o~s*hfV{0&u#rCV zTweyimh>Jl+7a4TNC9*GA=dWS{oG$wx#oEb)BpDsZss$5 zxtRW|_xEdwv51bWFXnpNFVB=Y-YzO&#>WcVPHM0dK>Wpiv-2L?^lgwxPrSy*Rs%Mr z8O)lMWTTF78vWu;@5oL zOW*6~z3<3#ry7%;E1|mknM;=vYv6NXGfDN$FwnXkl^RZt?w?E)X*H!Kd9YkBE1hWp zjbre8XQdm*a)0OZtNcd!?n^7A_0+Q8&9sC49EXoSag2wKcVy_uReFG}ZW>L2M#k@SwadJnU%e6`PU~wI5n^PwI_u%nQdNcajpCN} zLEpM4_~MCT&&B=>SfL)G#qSaWIg1G+#fs5B9@@%{_qZYhDhNr;e6&P?3NmHALwM3QtTI9_!>uTl5$t6YpY!o!M+s3vR1Upau%7$C_QmaRsy4PlWsUQvt!!l(k4~CRh)c375c^r&zsE8v*^4{F2euTo* z0+gYlz`|?3IBV@LDB-wK_kGhCys&;tNWO{oMGAb94_*dwp!{jnwG02cR~;FAy(V3X z_?5%i(m^|tZr~LuIac?U2>ems&pXt|4F$S82^~)e!fp#mlZmW9??ZcXC>Mv8Js;El zTQU2bxk7R>MmkZ?83z?ov`+Jxnmt$?G2i$13*8SqYerd2JJW~nS35NvQh%o_u&|%` zG=W*}e@UvIS_^l6C0st!cr)p`9X!!c^upID0XBwz%EZqvfN~Xmfh@fapcaeeCyhGt z>+7wi$9X6t2C&rmY#HA}>ojiF7>~3x5w2{ATu7N%^2b8|Ti45eu8|>ObrL5&FB_b8$==S3ecORth6rPl(o`&Ud!@ zUiv)Xec)AN-W+r796V@y#4hw=QeMmVlOmV;^_w{DD$9|CEMgCg6H@ z^=5ibHe5cW@4?1}?0;vRxkhVx(}Al4m&QryM!1AsD0POz3)GW)FtmB5gVB?x+TP9N z0?XrMS;rTo0awe{fCVO2Sc0M~ss|Kh4AlSGYZ3yL9En&ECS_zY~60i8GOr2^!Ps zH^$$g`$}B%D?l2J_!ml7k21GXW`Y~L->=_$hzI*SAy53%8(^>9x6eGfVZ(;bA=rQQ zrI(=!2-e67d3{|6o-)zA=~qzw*XxB15Q%%$#9`#;&J#ZLbiE8CeUbmtY3FTwmjejffJ_oHYZ6?<(|wG{F9>zz`|BmO)`=6~jYG(#7|S6B_j zOTQeMoxcOK2$cN|sI%Y_8QTx%{2CbMFgJgmBpa+MFU^#spn2&L(>zNr)C>-Npgy-S zgznF|_PO19!^M!X=I**yE_&aYkSisy^+4xyWy2JHuKzuF2j4JCBeNDd6`l@=@Tvqq zFS~xd+=$jWf#jiVQlSSBzQ#Z2MvC55pLUsiv?NF6e&n9B9m2|lz4s%T;*R=4r_B&f zsYCfNKeB?5Cou?!u}B{J`RW*&M}!YK4`0rQa?c)>cO0z)_gJc|?arb2GTk{}T!u&n zVX&Y|EX8wg2u<@)Oyx%T3@8d89iYyI;|mgl;dpJ3Nsa0?fc2oN z=kraEYt4XLW6)G6FcHok*ddpK zXNlDe>J;ow`%c^exguOw7Mqg+U0>C^K8+MmdH#r>E3Y1$dnsV}s`k(R!uN#b(UGu6 zADY1PU-;kVKKyST$MeZhV-c9QWtO|BhwQCQy#4M)TQveX3omuLMmeAxs0GG1qXB-1 zBJQJ&oZtDcU1QKq`i}7GcxCgaSS7A7sm1GwL*d`o(_~6{@=1CTM*fF!I9$Yhjo_T6 zUtf2y2WYK%-Y zkyy=&2V=pa9}m}{bTM~}o}*s25Dt@EfOr1Bz5j)`HT?(P_U`!*C0#@lxYhJjSa!z) zJX(1_qxQBEl(X_Gsx4K4LmawcDNq+GG`MIG7$JR{#aN7#@VhR|XBAEMYeDONJmiq8 zS9TWQWR8Z}ENc%(bmrz#2DBoa{jj}K3KzH@H^x~<~U1({wzqGp{XHa;70dw+Oz z+O`_#{lW`xn|OHQ8zMheo4@eFUe38L{BUId#mz1qmX)0ixO_ht-7G+Mjo67NslOGX z@lcg7=&w& z*dMP(ej~CrSfvi(--17~v$RmrjA1 zx=gdlWA-4JkV1cGgt$>Z?3F+D>f4({L*!T26W9H`TdM`YIXh_8TZ-_@ z5p&y@4q1qYMXdjIUW~^Am|IIEHyq3XhBTbGJfGd6_`uFJNvHoIj){Esux(f06b?B!^^7vVBr z=cPpcNtJ8g)8Glk071HM5mYMqD7yQx_ zxwEXk@MCgZp2EGq_d7lKA9$AZf8bf3#BWaqPNH+fdi>Zh_i;^(eEVhYKkzL4TXC0k zlNtc=luJeezY5qGekpCon*s={(!H`cD?#Ag@ak!ko3Qb-`L*kU=>6H0(BsSW4?F0q zFZ#XXbH(rUz45)euOGz&DBEUa5RXH=r{Sy@RxI%1wS9Yvq6$|SoqeK1Sm-h zcC{nQz_(v`VM3qpbuKNm-e`W|g&)g%HE3SNW2~c>zvk;+`d&Zpeap19(zLb|fm_5< zC+Skl0sMs*R-eooRjEYhPyHhr#R-QDV6DrGD?g6Lk@H-hWyuS~EB%hmQ4nC!0PGdo zTl*BPK?{A!UE-;GATURJK#8CTY@0Z9wyeYg{i@q{#VyeOFsA-k+dQKP-0mSQ^`b}p zO7E?zKKSN_T~vU+M=f_#-)zMLIx@W_#>Z`d(YCnLh1V54 zwhI37=2#|p7FA|`)}azmHP3(gO5_2KC_BWH8>4=`_Mk#-{BjCtY_X3Q{1=Zp;u-rq z|N9KEL}PBS`U<^oY3_?pa`czo@gA@67hVW@i11hKLQwx0o?Cb);#>kQ=RDm}0Lb6< zO#uaMVK>C*CTVz& zUQQ^Nb8ivSuUS0Di<*AM!xENL)}aOQklfYTmpk1XxYWww-DX2L6B|&sJgT4t${J+Z z4~n68vIxWao6rpX-_f}=##1#BF#6)P`-7IT@U?1qFyPuqEVxcA<*n*VGSn0F5A*nZ#!RFnL$Cbm%hjjBGRGb>~R z_3(xF=kd|KKja#j+J!WfuZf?)J)9*QWH&TRC{JgBuhfrB2feDmQ|b`|pPL?#m$hU} zPafUV2m`_xQg~{>bepIiAHO%eFPGXiLX{1ZCRW$Q_$pw-we#U)e4b#$@1V=IV1#$Z zG+bxih|B~#Lvq@d(#Rh2dvwZ=Lgo8V#?{F`DFE@w8|b-u3&Rl(pp0wCc-bKf))lER z|A;My_nOUhdwcT18KY4f;}-}=p=8*6E7Oz&yIB2wfyD!tN z*)Bn6II=VA{^eZ)EStu;l3$(-Lj&r_y1%)?;|{F^-__B(mWVeAeOqG~#CoNn;6#n| zAzY@@!RHv0p!Cz?FR$=Xoa5IWW}1A@!hV;Z`1L2LbzLHi`)D{ACZ!CqEwk#<~|7U&dPgk+| z?iThAGd{@Sp*gkHa%3MxKIl8rU4>~^w_k8R`Zff;sKCfaw~=`-u>;|-DPK?bunzzI zdN0i>CYCz<-}fy0n>B5HDvf|8yq)hPu?>hBTIw{fPXPp-2Zo(%%fZ?&ypSjO>B2d6 z^iF>G7hag0WW6o-FWzHl#`?6`P!{+>TnN%+kUcVokp3Z&L^OY18s8zF(v1Z&*_Ce` z84zCBB*1chpcu7pUP0FzYrYEH7`#2G4bjOEd6P;yu{b{Vf4`d3zl76c%Fva-pX zM^aY10Zt>Y4bLrCU~nlur1V}UAeX_py;W5O2!G*)FS?6+8?T{#uJ9LLIFY(ynOBO& z^R(92ya1{!kRJMNBvS#MciGzHp`BjEq`$H+%6Qz#1S!?L(zCTq;E-1P0=>00RFUuf)Jh!>_Wz%Tpz^SsQY_g2e<81D zS;IxG;T^u`vd!_BaqIsil+0|boc|Ylum*yua1R{JerO3+#Qq|t{JZ?EwpuOs5o(|l zrY)iAq7R;yQ>I<-G5uZtfW;#5Ei7~&+N*!-$<0S^c#+=VLV#U@|5P3*SkqYE3`Osr z%=a(c(u~LShx{k8V#PI1=EL+yL3UK<4AW`MI3~H26-43W*1yZG3n9x_^8Vk;U48#S zEA#^4l`|DxW&+t_u!3^xL2O;Hk&u9ab zk5=p9ty{#tpj|^izT;a4a8Y?BP!Z+~A55O)(>U|zxFh>T>|I^0=o+S<&z%kBWt5idyAkVf#-F-%-!cmJvq-@SC9 z9@%B>^)ItqS7R9q!kM^#&By)YUb(NnA>qx^>ka>WhYg>bWODl5zr+tlC5;}Sd)ZEX z+FFjeKG-0jIUfBP@o_1)y~_c!oLAcVm2Jn6of>Yx5ox2|-}@imFXhL-F?y9@ z#+y0Y_FdlI1T%hpW@M<<)p2xh{jWGC`z0{@>4gCQTh&+;DqN^mzS9z zsN29M;ny$)MLxWC1Pdsxx#H}N+dW4DK$N_rmYxHeuWwB0ovsbofLA_?n+3VZKIh2G zsQjR8gm)8VK9n{8>HsRQvd%Sf`vY9o`;R}YJA?UYV}|ah=saLO`<_Q&)fX6ENhDsn zj^0x(VHD1yO+f?3E#XQhVs#zr3Nj4SY8QdUIFlda=|=-M#)ij`M;)~kim67Ov5l!p; zEXxMzlV;yu3JJfy55Cl9VhdyJ@&nrWf zY!UsK{wF84u9Z_npz}{?CF-)p6U?}E`vv^CNA&eYGEj-iV91ah1-FHwrW>-$phAp~ zxFgXhI1u;JiEp472!)Xy(irarj6)l`MMNW@V#0C$>asn2;!zMzAe{_%Wo@IF7n5PO z&8_+Q+EHMMcd)|pr!u&pIPM+G><$#kkCxw^aR;#=KIF=*{;vwrsSd#I9~JxhV?)MfQn$aaocz-4x5smeC^*Yyng zT1GQ{7}Jk?p6wRfiGzb+QB~DU?s*)L3U8O{w(J3HTZ*?GJbFP}UF*rTR87)$05Lg~$I=f_G!#z5xwU6QB=#~?=wZfvu!7LN} zUK!aX4^VcaiLZn{;dg&HEa&uk(zt`4X+@8YeMkNpI-T;C%AgTkI8wMU!94o+?WK8+ zU4xf^vF`cCutkqNi^WKHae2USk9rhfFIHVXz#9hye)=!aGX|!LCJqYErdr}XSnYS)UiXyy=Lzg+j{@~xw zuQgFFlJBON>$G;3#;Abk{}Shs^(lTJ9^wbyK0bQ20DA=35{*RmHNB6jwDp~de-2rfNF{0E)9^pYBvvS$*4%CCb<@tss zNp#OTKSkLTqK5cwIfS=k+CD!9JNm?}%?#8vD|xy1Ir%g58nXAkiFmp|WM<%=aK zR9$R9ek3n4p0-UVPy#~5;cKDK(Y|WZTd>hbgzoKEW<~oIu;hRw1@|!mVs9|_#r*1b zG6UG>L#$e;`SvM7;AyIq_M!HH~GS{OjR4?{3{XU!E&vA!K860+x z%5;LmxIrno*p`6ovz@FeLlxlQ+$g&-_YjbirCl(%7YEa*`Y30@ko|fxX}FGvb~$`y z?6~q{9^HQh;<)M`MRkIP7e~jBlpuY}>htc?r5A{oP|$r)?e|9BD2)yy5$# z7!+iECiTG31|}0-exW$$4h(OmAK6L&m;Zj#6qQ5RcVSv&MkcG<&|iM82NnC$8MRc4T0nnls8$@ zZ-ahO(n0psa&SA3tvJlS1C&nmD{j>|LD>c3!s1SZ%Y?|%a9>}Ffz&M12DUqh=dw4x z>-+lg?XIANN(}s+?{)7A>m#f@VA7dS9L3iG3d|hli`4vK`?&G$I1SP_&1)frRY46H zy!rlytS!>}Em#Eb2BZGo4^W^{SK{F=%=mJ&1Y1PHBA9XU_V?=y=fe53KJbs_b=-Nl zJW_y(U;U)gt+Jj+=TM-Yl3$kVBT&Pcc)L5{HrU#nzHK~R4wRHk6F%v60IS^SAQ0*V ziE8d<=UqYZ$vq4XRt%NJz#5V(p9Wvw!B|K0zvk;+`d&ZpeZR<&ETgo8;K%*@86u1w z;8Vovn^+QmX!$_{Z=)LxfGR4}9+X%ktL`SP`pmOArCJ8T0BL9i&6nPB2CE4IkR=c81K_7@U#U);T z8V#_mSgJnGR)dV-z?(}X9l-6$y*mrJ!C;p&!&1!+;l=?{$Jw+S@@e-B4)AK3O2ai|l3_j=v`fFfE1& zj%q8_Xa5y1#lD8M=n(Rkn5yYe(fK?V;tq81-@S7mQsqj}$+|=W)lZiT5(bfeB`zis zs5Nc}%*E~f9J$cF(e&)HVW%uA*HO%~hwyb0%)=cU#okDOLn<7siqmn>l_Nh#$gvMp za53E~lMjGp#hW+*rUh^+OUKwEyck}LSnHa^DuHYg&Y5>qQMra4^ES^$${_Bs2?4Sd z)SsaOoO<_VYM@`Z;Ixb}s?WvZjBUz##QQ2+EFxrV$bfQ;lHIib+^03oVy3ZdLgC8z z8$9agh(}u$|2av-x)M^h)=%<=ApLdm6{qfwB;w0F1*`FP7O}9V$H;kNCLB&&@_SbJ zBM9;JJ{K~_w?uz&J>^(!_^p2#XqnH=ePWPh@RLvTDa z0`vZ{Uo3R}-X<1c=3}7C_t^19>ux>WV{}6YlfU#|^0UoNIBB34C==WziGe;~XT3_? zB|Z;Sgd|;Vxm6GJE@+>;Y-t8PX2pE#o}v4~J&Evx7nL00OCmPx@?hl8?Mg=^U1(wf zsGB0FuDXog*UkpJg(k$IeM9oCdp(a?9?-nRcI&ifI}nZXqfUI}0zO;_;$l!k_~FSw zNwc4=b%2a1$Jy~S;;qls@;khYL+u`#W71O-{^uNXo>V@qTndJxBH5`x3rIacew6Bz zFVv4@z&dmj-P`Qd&kx$xLV!D;eQjke9-h3)A7U3)2cJYo^%>o3hl@IP2g7WVf%%(P za{0~(C+wSzkaw!90S&uCrw*B*b-bv4RAl2sEnMx~`pWE$^rY!1^_vaL$S)!*ixSO1 zS}i;{86Mu^*9bXDn_Oy@>HvN63pM`;#7}lPCobUor2_tZ;x{q`5Wm6RbxV&TvH5pC zrpk+@X1EQ|u530}U?2<*yW=0HuFiqNeez5AH|l{Gi~A#{lZZ#cLBR%&KF@@*@=1^R z>3e|iCVg5cb2QuuY~`s|u7C_;WCV+G^-!)*j~V||7*zQoYjN*9;$mGIG6dkRIT zC*--UYnX642JW@nr_p~lGywf?w4^85h2~I5o834(c(GdzJq$Jn1;zAf-PhzP4Z9Kkqmm){kkIsE@4_LP>zu5p^+6 zVwBLI{iW^+Bky6Ohiw0Cr}a7N%!z{aPJlyTG0I)%2kx#hMi~W_14SxULxB(oOzgcA z@0~7(;zugCZ`?=wSZZyZEIZlvJ5xttcYi?hd}Cdo(lJ zAJrSUg-(9T1$xeBZ^=@&0p^+KN_Hgmke@(UH7Nu6ca%1Jp7)8U3$!_5Tkr@WKSr|o zOsuk2$UbSM^2CaJPa&X_{bZfg6AfH8GvB^^RtW~Vz4Zb?B2*tEe`p$n-rq-63r!Xa zD?od(L+~vg2+w{Imj337aDN`qXbg@_0FyZax)Pcg@V;<<>xpVD*d1Yd?-TYAh`H$6 zhhS&JQ@4mB`X|wQikRgarl!ybP>^7{KIJNEud%tb#0QfG@Z#~kbF1#?eS%u$D)oUG zw66&j*Ly6zt_D-f9Ez$pdO(S?Q5M^L6MXQQLmO8d{a?$^Q>7wpMvL10W@>QmCYyeg+9CMzAYM=@LT1Vs|NA;a9T`M&yd>ycwbk0y`UKk z@J6Ouo_!AnJ2}U%4;dFg>895tPF5yRL|M*>12+=t)Yq=x?TGwmB0Og3-wp-EI)+xe z2IzkBC&3p_O)IaI^ zt4%mckI3`o!{&qhwKpBaAP)WdHMU7V=#wW?({7OXJO3ww$8g3J+0|=5xPFCoHLWpbP<1Fp6- z;FOfcfVL%tbHlU99)nm_?FPZyDBxGwSKdR4(m#kiKI|S*06mG;p1ZKhgL6Es!?LAu zzrPh z?Pvz13sqk9d+rXH)U}6t>(TvA!>r(PV!Ru0srcD77l!;m1g(N^9RpF&l+2S}%Ng+l zxOMGJLj(W59Z!g9ZEt+W^e4m1{^s2U%Rr2DGh6m&mro=8+JRcF^vlD1xc-9)_v(9d z$UN|mCa9VQpMIsx$9G7FE5Go{#A|duhbPcGe)%uFvZwUsgNsWp=zgEf-|#{w5?){V z=}P(p@hPMS7%ygPpnGx))~LBGPCiUONSML(-U4o33%8^-jD{6D*1aPG8E}qo&7F72 z6`YqcSS$}g?|C=0b;?H@Vt}wp{l}3U)XywF+_@14Vj#XF)s^XSWdBQLB2q(zjc|(a zGyK^}c+t>uSwei}Q8uLI32dB9pafOw-i}J_`d~9CD6~M@3!E|0Vsq4RhD7UM?8|x( zk5c}=xblI!_h6aF%W_t0bgs#XRQHsb*aI6%vD*i4ApS%1!%VD6HiR#-{ld?@W7MPj zhQq*U0|g7))_r*H^S8@U<8*NQ$192}l*W)@;O*0Iw0^(K-(6Seo>W3{?)J(*LVJoO z*#xbB6K5%P&2NUV`||1-_72hyg&oIw^Zij=+&AA}=L`&KLwdIArB5%Sp`OMY>r<3r zz|o3Te0~uVC;BhpK6hkJ^Cf1y-4pbw?cOIb@%m3}8;K%V2-oar^5{rxqz_R!AuDW6cE3H>(TtL8cX+5NE1xWS~729@cP5 z4W)|&(P9$BUpdgemiOGzPUd4Cj82Wyzj}fP*ql5-@R8gPIQYA&nY5$=len9-2A{oP zUn;iQ+Bo8UMGp#J5Z_3KTZi<+De=&~lkZo(JcviX8Ks~&B|^s{jo<>(KS~~6PRPV^ z0Gdx`--l$U0T%hYb&4$!kl)$!@e_8mfAR&|D~P_#1kU01l;eGWe=bM`P6>%LVB$|f z_pI#rXE5#2;>?%xB5=`sw5MlnzQ%*OpY9hzO96rM1DLoOWwia(m5^Mx5f?r#5F-vR zPBKKjD+`3GUf*%N*ivD^&(gtxF)J|Qa7A*21^FFHac-6Xsr6Vk7@Gd*gd? zUq6Pe%bZjoLj62DC7i}mLcZeV<~N}f{$y*KR`OWdK+kA&1z zT4y9`kiJ?*H6^R^BJZ#J`BnY-`9x7?jQmn_sSch}nD1Nr`}Os4uI;BkG0*S)QvZa* zT)Gz%AGS6B!TEF*@ite;ytf|s=E7Y`*ZhwZ;!ynFz(rD{0C@jOG}({&BcIIE@hzCzlNuuo!r&7}5mogWbZ?5bR!RMO3)z90KRjDQ#hwE>JzcNqXWxSKtl5D_ zm|Wn2Xoa>dJRfK+RBP4Sp#rrsjBu7*QT!Vt4%>(JiZ>xg{^?r>iO~7x2uS*p$EhsKFf8hc<=OAiF40q7#^(S{>W5!jtvy`r|;fKi2aWO^Mo*1xBsB`;wK5LE3 z&wd7&L*fsIAKH9HaipX&mLCV6ME_?iwQ84e${wC`3YL$!c^%%8zmbyNX#z)sjtm}| z34uOuWoOP7-h)gNBmuOMCIG+ksTIz@`Za6AW7*Hr37r0EqRq>M=97|9pMODV5PZ_L zxq|&1@xjtuL)-0)(0=(VZZf?2f8wIR`CtAH#r}`|^6z|%{|85e!KQ~FY__0%Rnz2H zy{S6d7dlmJJ`{(^h$rdL+yMI8;719=qcU1Y_u{&F=?- z6N-_?CB-$t;*;c}C(Wpy43veEo9ZkuA@hXc@I2xjoh>o4%RheyO#9w?W=M+O>Awa_ z#BiQL=XL>})}sVxS74R6u=EDc4aiD7S`O=zh4VeT&vU#G{_{cBk2t|l2~5)PI7F*o z{r!I#8&-)c2IxMTe8`Wh`kpQD^eN|}K5`d)r>bKPzvKo^zEZj6cOU>>A^%~QM4}0j z{BJ&^)V&K*o(PuoJKO;`)M94naqNJke~>B>2jYbeX}RV){jdWTq7p^aqbLrWmGn;2 z`9&w-9l3ed&Kvm&cxit9?8FhoUsBsB>^pGO7R>ky(}@J@fVHRF#=*B#!RGte_NW%b zPn#OU?YcN-59p7-sShSVd?+)$EZL_P=$*mpa4-0IQU}Ccr_-94)B>g{rj%sCDnPTB ze43e198}f_e&geG{p)>iWI@hOZpTUGbt84;9I$Vm#XMwSl@Dub^V$fkZ>{y!OVEu0KWH+4!cyYLG zjiwjHX zFNbTKBeUM<5D3o3j2c5-c^=S?veEgKc?fTP4697$I(oUf_@@o*xVeHkAiOS7vtiPWm zlmIA2X=pu#oj?jdtKNr}IIuQBmXT!@00*>I(zqDK(LJGxCOKU^8Zcn_Jx%e+gR!B> zqFL)kK&A46ik6)Z5Sgpg{_xBnU>A3@`5l!3mWM3n@pusL*VOZ8>w1n8p!sU_Xj~8J zXCiE&cTx`cf@aDA6~1@qKAr4XocLA(@oFzuCWZHk`+~ZD4Z#vd3ouA8I&Drdz%daSM2iH;IUbZ&m3en7LRi`L71SocpmyuteI_E?S262Rdpquz>* z((iWPf6T(ukArw{K2J1W5?L8Qr>bdNqXs*0KL1hqMFq?_djBO#iK4=G@tC~vdoQIu zrcB~7(x+bOC-{3JzxqWF^%F(a|GYjeGtT4x48rug7#Cu~OfY}*_y6_ftenK55Bux- zZ;L%C&F%T`@^8B5JWf4-4`%1t*#>6oz-doIr8%ltI748WxvXCRt$h}EOt|8~DqmWY z*9~+IhZ2kp=toz8XYS|gZ$B>iot{7ZMbKzC4Q>yqUZNO8xH#y)&ud|W`n~o4$J>9$ zbNz+?<9H~FBq|{#w4{WP5yzg9J)+F)%`jur_uj`I$t)R3C}mZYGFrda_x6tS zx_NxM@p}J0-|zL0+v7OT$2pJdtn0eY{kpEFKF8?x_&`#HKma1#rgq)?4Z{WY2Ekl*(uOiR{*`#L;_3lS1H8dGo;sICr5={qw>X z)bVghxjgE1lLOG*+j`VH_4Hpt2h2Kz=eDX>zcZKj8~<$xRHz?>ThLkb!VUtG?F-+mD{wGJeK z&MRR*ZmFRAhXJ-S@t2&baPNSfRQW!HC;9)HQm!n@b051611@UZO}i8T_Y1cl5f}`B zefbI%%0vEO{6s6B=W&r8&({qa73*MLC)qg;d4mq!(`IG(CWvV-27Kp;{lo_uj?*Y` zg?qvgTYi1nfe5(K&eq@EKhvV0GZX`eT=q~Bp1Ad&`!Ae(;d<977T4|QX~pYIiY?!c zbR}OcQ$CQ#@Z-Tf7piwBu<`rxD{e}dtw@7~R*JW~pM`AH#~OCa3( zzWKVy@6FF2z^(7oY2tBP@rVIwbzIKJ%4Gj@zxfNq9N%5U?w?am!bGhGSp8A<7rDQS zz`y*OQpmb_F5<(yCldC|yJTTF=VNi^0;SFVlbPO_tMEtm`HlYTx9+}F{V)C6`E3wK zyQC1jSzVnydluQ-D&NB=q7I7x`MX4)S??y0!tVbwaRSpB7qR+p0Up=0SVnZu&9f&t z_}ZQS-Y!#>{!6`8Y<^gG>e6UqJZyi|Y)^7086y25`SmIJl5olY-0lXA23f@^L|}15 zyr(JqQ+%*~*tR8#I1fdT9QpOtwRZQbJpX_1SAsnBgYMdAFyAo;abJ6>%3;d4w#zv? zm^&iBz2AmpAqRCAEfxHgM?mquN*B`J@p67xG3 zm+O%si&!~g?&!zJ3*kuao*VKFVoScdZM(Jp-{g*uxc%q;?K^QWD0)^5Ganr57}CAd zvGD-jBssr2^%UWLRfSLCjrd~ia9ioJ;`?u7QP_A54G+#eV0h02)C05~UYzv=<^##M zP08bc-ySO8@FT8pYyUnM$a+b$#=x!poB6}Ht^KpG?Qc54hy1A2-bs_D{t5(+UQ~X) z)p4MI;r+YrhzD?M|Lzk{2jez82AcSb+=8as|Cz5O384~GI>wmasT%t{rF?!5Q*O1T zpHmGLSvPdB{^nbWGT@%y0Vk|Iy>3_Py`m*_eqUBO*PHrtwtnx|8%ITN3c#Bm*bDYK z+}h-CTUA!xyAkxB4gNl{eh>Cu_*Y(~Kl5?xxKC{9Z>NQH?kUM@kc&6_?NKxBP5#>N z=5ociN8f*Pc3eZ~gd#lrfqhhi9@!In#S_l6%If@QzW>(GpZS@NR2p>xkV3#ZG^T5?;yT3m9! z7L&`3sh5($T`)AKy!k#+A4)07p8x$gZKdbTcr%Pnd>B5B%I!Y#BT)m(=bJ$vaDF5E zzKP`e>T_YXZTT#!%@iwg6RW4pzPobNo9E7E`9*(S9amZQ9gka^LVaL((zp6#AIBh&Yf91b&d>mJl= z_j_naM5FwG?L4=iUNUFjd_J2o%+2A>2UHf=@j7lBgLgxkoaJ+d;M1w417ekbd&R@)Bp<9@iazN3UKR z|D9J@d2Odu+QibMscMS(efg1A%J=uNam8NSvkWW?A{#zLR`s&n_wlXfqU~)n4E`|(E7&HGUR6EQX z285`5*MD>y_^qa03G7GlqR5VNy_>k}3965rE2yXQ*RdkUMowrj5 zr;IXRsczQ0FCJ~|^pAXh+mkKR)x;i(Yov?r39<+Kyw0bQDWP-Uj;r3W_KO_col#VC zJO{-`I8a%{niGQVGn5_g8I&1&!j;$)!R34O!Ql6O7g}rO;KsOb{r(x;wd@=`Q}~{( z=#gr=J4lRW`Ff*W;y>>P9nb9i73i?{FlS#ps8M6Y$~pd$_$4Na2rrBRh zERep0l~1B^Wgf>|h{lvBMN?)5te}0Z)s?XF`fhCAi>)LZYkAw-AL}1geEzK(Gj#$u zlG3Y}WYz~h&hI*Yfh`w0R)(Egy3z-({Y)eZa?Ju0eHUo)(%Zn*g%VtGrydYgrOKB( ztp;yYTGmY{ctBg8sr~hh|NLdQ-+lf`FX-@F2z?pOq?dI8`pV57mg3e?xJRxL`7hUt z6y@H|HHIfn`Qq!U_3XHx{*tHnO}N%$>f<>%SG9&c0o<+E9!?8|0i1oN_tdMK!4a9B z%p&C$Fic>mUy1JzebkiQ35OAm;+a!Gud9a-Oj#cPNc9cb&D0+_lmGJR0VKK71wVZb z!MiHM+Txcr;4%85%X}wwq4F`8)jGKl@F{4|=h)9^J=DCBWrkXTfZ_U(k}MM{FYv+_ zd_}4QBl4GcbR~8^E)Tch@HVJp3l49CdV>@A!|wI~ye~!^uiu0Lo_mb8n%7zZnHlBt zb@4V3ESKY|TXh#ES=Y|ss31MZ(vFR<_JuVRk&7#I@>Nv3|F9F;_wKz+71p}i2f{P5Gd}Qz zfxbc=$sak*psrTd=Dbh~2rkwCI-Y6)AM~j|St>>28{yAB{doEgEF7}9-_eT3*Ow3u zmP?lc>0e>r#&#ilgHrFy!of6zABPXs2CnGz06E-Wnkwbt;NG*VI_aIP!!tv;lw*%2&p-d+2X!P}l~(%@KfSc)3aN0*fe+s<_FZ?8K6LWc z!f|)0%FTKM6&=xZb7kQB^NXeG_uGNb9j)J;2M@v$#UyqEHC0H!>rD5U#1>wOr@4Ds z?=i?D%+~8}M1Ig$yk}Y6MQXsbMzfDYH?qIeW_jE>H*W+*<7v6Q=MmmvX{?-HoEPbTCxSF~<%7;4`>^w$N0ubyUepG5OYkIq-ffF6z0{i%V(BT~BHbS!_> zKu9Dwezk`>s$Lu3Y%`XXVA{D~L#U~)7n=Y!j^@2miq z+8&SF;s!#9(o)C65w23u$l`=2UJS6+Xwe=OM0kVYKmC#-G#eX~LHqkd72v^UM(1LkpjaWoP|el8p1`)CUvz57Ho zkA@)s?cMhyvV&67z;6>`{coX7z(~H};3UaiNO^3z&C3q?nbnO>l6yTa21bwME7w!d zeKtKawZhoFou9u;1ukz~4YB%H$MH*3TmjLT@~wRJGWhh{m*!)(TzXzb)$TP&l}JEc2CKw#_GU`&8LslR~kTqb7r7XeT(G+n{9dhm_3WxA zC>gqcDHD^2lA@LVyM*_t24(U4gz zFRbM$0MCM4#y#0kzthEHBPb3n>79mj`XTTo=&iX`zli8v^z! zC&m0f^Dkia_xuCNM({+8D=m6B1n^KA?CCg;=Ba>Xy?h~k4p8LhlT#!?enP9`Y0TF+ zioxXRJz4`%XS#Zt3Rp{%D3bj*dlOeJ$f_%JF8<|37(|f&7*{D;xgK8vlb+ z+$=X*lH{vkMDvrbM{p|Bt`fuub?~bFZUno@EM~`5+rh;~vWYaR2N1uOkxym15ZcQR z6RI9BgH&_l-rad=@QEl7nHfLIr|?oq;{<+5IMflInA&ZH{3UIDf3r2p=fK!Fk7BR8 z2nQnNG|Rj$Tee93uJ|hnED`UPeSZpMMJYsl*jN zm3l#vm3m6UAL-E2W#NLJWCkptq%bZO&W2;EKUNzqBfZi~prqZBeap}@wN>fQ4<=sOE_^Z2aN zih(h+u%irv-I>y$85!By{A=6LOBB^ z@c#Z%{zrk8(EJqc$gO|&vyW}JC?biGzn4MIe5saBCOmCQ_c3%F%`fMv{zWc6xLI$l zEP(a7Q90~ZP-XEs6a@*^mICCCWx^$!-9RI!3Ou>S&wE%H$@w}V6+IJkNpPCpJ0!mHs{n2zJcD>dU zl^SIJ!uml!i+^{*EfL{2IEox6DzdQoT(;6Vic4pNw6OZekmaelhE^mGo=q8@oZ!ah zf%zNxlP6l&i2gnQ%%G|Jfc@zf5ar}+_$AI0*p|A{r7Yxt;FK4<4;X8KkFh$@W6n&- zNfuu`H;&{7TXrheeEE8q_5@ejS{e15d(hP|n6?;vW~z0*L!Z4lZkjg}wRz~#{+R1Y z_0?D_1=PBa^bG`81Fe+3G%-3w(E5@6V;MXom&CQcd&nqR58PX5?b3AW(E3|(`0@)@&H6g?ykgBcxxn(Y z&4U}}b@14Hq?ObVijSk7t0FDJ*bfTxtaUqhLqKdct^w)k5@0@5HX?Mn34CU;nOZv+ z3%iAu1ulI>`=R{JF9hxeC9wQTP5_B6S})p8mtNaTmw>%LcrL%akMO@*9%6SCS<${$ zvFPXHGgt(CpDR4p3uys`xh8%c+$AuT;Ve$(I@;&;=mwm!~PHXM7QAoLjU0Z`sN2B#4J6* z*7woJ7T}FUx`VCn0|LE$^X`f;uxsJfc-)(^qK=r~_1ysqT=>|y_{J<2 z=UsSEeCE=RwC=8=(ja$!%tl=y3|ta!c#)YAwb}pWYhf)Wjp)8^qyG*SC6ixrkX`PC zu`^}$pc^QUq8)gZf$Z34FIaG`*8cbLl{-3G6cqmdI}NnX&er ze)snKmD^IIhf?MCc^bCTg*5KVb6watgf{PTg#hOrOt~yeFBQ)jgfH@@N}|v%+CFZ) zP*sCd`8RCd0p>sWI{ZKQI`u#Jy2;M0&qW_C!Pfqj*>@c(+V=o#?H|h@zHRNFuz5q@ zwR;E$x)opdc-n!3p~w|%?O#%r-A5~J9Z0k2nQ^mldwFszb$RFq$L=@5{I0f~{J>Bd zHeZ(LmVTbQe&XYhE%tt9D{&?Lh@G#(?nll97X}-@BfP<4{BQfNqfFrQ%G7JAM;>7G z%;c~XeJtXySNDlYQxsomgTK-iv&1~z2;Z^zXFhHn_cL4ii(|Er@sT?4pY>+9l$RR2 z$=^_AA*RZkm2uJY5;i6eKFIMm0j>`8qxQmxzaUshjLg$>n zV)IOI#Vz9f>GyW+n1=J(`>tc} z@5RnjlPKTt**W-1|*!VG9X^P$a;({_34-q_MYn*pvR5}ud;>^~0t zS3(tB^g$58qt(}+(fy(V!=;{_4lf{&Bf96zGbE=mmFm1n^uGfl-rYMl`3jxKl&n7) z8jc{p(c>v*vt#5o;PdU-?=q3z;AEHsj+DP02sdWAy%vww6JAqEcV(IfD9Fz)UNlDg z$dMp}Lj*-={{C>dW}G4C35H3pXRcaA0P+tr9V$~HVCmwOiv|3i@XZ?IwHsHr&oi}^ z_Te2)dP9cA<0+2I?_;;Y>Tf>|oi>haJGVIwVUnl6e<#A~6%xan0*7{D+j=w{6pM#NnzsrCAZZS!tr(rW#T!;TI=MZvyERN{2SIWFdCgSh) z>e-p6x3T$6wvzttm2Dix}{U?B6j&KPssS)sHC$KPhLIM^8Xt>4dLA)DdP`T*Q2GnsfH?E~>LMO;>H z?mYj|2Hnb`5IF$}=U$fvfB7cgW zfo`B&rDvvPlL1Z`9QrcR-2y6j=E%)Ib%EJ2B_?W3RrrV)Cv;iF9a_KqQWToz4*8x^ z5HxUggU7^r^FD+MV0ahV$+$ZXfTDD-4i26p@EH|mtk>p*do&e0b1v^ZKK_1>1!j$z z9#A#9@LGF}1quO+gJV`U@IhQn;vAtLd}e*HMT@Eyn4eo?q?$&42}Qe}t&Q1rfJ!-j zrQ8`tpv{bf^Rdwa3{PLOfE}Kj_1Qi-K^qcuA5c5xTCArl2SZ8t0=)Hi9%uR1fx66u z94xN!>bvKn!hT)grt~T?e|HG5+kKTO{$vx7moxZkpW6iXUOQ`i*Token{GZv7>)M1 zL~eYmSESx>%og0BJ&ycMW5@b(TlYN$iHok6Jsz&rn>{w+eeEC!7q4VYe%&Vlr~cS0 z#kTkzU-@INoZaGg{OcC}qmQ{_knuz6#eH}?&u0@%gKxmwh{fd&e-UPA#S8 z9-rt2VtDLahFu{*>!r+H$zx4G;E|ZWP+AkPn(hvi)G>#-i`l1ZmC*Wspn)GD&14F{ zdY-XeGe`GzR0$NFg}KE*GfwISRVs?t(ZFD@a^}a*aYx^x7@7E(u=@xli}_U9Tdba8 zW6D_tC+mASN)qol#PR9fqn~!<|9hzRJDf6k=eJ7 z@SyYJtC6mo$Zadw8=349R*&>8z9b6k`neMDOf5amm6Bt#o%iq5v$WqLJO$-PA}hVj zUhuSEcY%~X3>+j$I(@0S6m+e!GN_+!2GZ{g$807oVOyMi#=}KqKUjKT`5l+q7qZ_F zkf1n#_#AU~yjG936lf0>hh8m2{zicv_@9Cp{&gP$xET&#DF-^=iLSgbX$7AtDFn+d z9Dq90-4rL=m7(}A?`d4)yO5BUCDyk)9;n|UlNcMK+_|5ljw12-j!I!uT-DkS2FjxEAN&vbo ze#y~??`nN`kK%`Eyr9{w{X`ZVCjYoUf7%I5ka@qeTNQ<7<8{B)?YGYpvB_WmZpBBr zSX^V4>CFm*W$eA;XKvi3sCZ--c=*7n5%?G$0jr9YxQ+NPCe=8&96rAWSolm1A1gn zatV>z*IkznbSHjk+MY)Ey4rLl>pq;F^I659_x!i_#+dp`{QI=Te6V`sR=z4FU#Fev zsN1%^S6+PvLQdFop^uwAzNi)1NhiX}ODm;2fkyw}(zvA|IFgfNLs^&yMBEllMTi># zPVGSxf+=0tAv$U9M~eIz*$>I3&i1-N*XoZwm815Ub@brReBCJD;Pb|F|655N7Mupq zfFDFs+tmOT{K%JB_2b-Q|kU zdL})(fN1l}<`cp0z;<@^sq~jL@Wxxa@tb%lzIGa`v_I;HPGK3Fxmj-`Z%gz4#9Kt;^#{ke@ocvQ+;f8~!NOJM-Kkx*pbr#VCDhS`<_wx$rqhA5g%w2-@>Q|I6 zqAYr(xlKI-ep4_UwNgWIQ8R~6(mOq>iH1j~>{mL> zBjJ=u{Hvn-tzhMvc7yaMPq^A zvUcG!Vzhob8|}`v_F?6Zt)v*`v1@NBww|-{jBEdSgl{=<2eOywR>?~R`&ff$8ol6| zE~M|CpNSbY?@9(x$e7-M3x9JQr(@$oINu_<?sO9~1HbEm8 zc%17wrLczV`2#*wr-$<0??KTjZOM!fBnN2u)(<`+ss%c<^piiO!=UM2zg^Ca#n6L^Dpjwp z7S7JAsI43d0*ZEcDl|d}XGjl}5G(T=Hhu3l@&QkCPLK@NQXH709LvbZ*s@9bfzBvA<2S-4KtDi>9t{cF|4Ynin% z4|0w30h-`!SU4c>8Y>$PB|qi*>N5W;Uk_=dslY$`CS#dzS&a?y|KfD9rc3-+e5*ae zZ6`cW{!{N#rqd}^N0=j>euqLc1a5qHt5hWp+ZVJxvMrz3<7N9pu@_lgW$CV9ovc#o zvFFZlU#@*bNrLuRT%)Wob3*GV7T1_8+YzJBgY1I2H+{Uhb+^a=5Km+p%C|f`MqpMM~S@OU+OLSYyH$atHLw>O`!CP{^`aEchHzn|7L9{0}R)> z9dny52je19`yvKX;ZlI9NU1QAA54Q-4u4Lpgv!qOiQjn9`=_s}{y*8GfR9U$@vb`v zZ&zw^!hRtGo#U~WCQ3@YlED{JhuT;B%E0r5U$rZPIgks_&EFUz{G?D~D0kd=B?z0> zPV(4~@c8L-w><@V(KuUh&&Ix=N(IAqxfK$#0l?|ts@!ey4Ra66Dc}8$T zt~w3~kCwfuY%B-}{~$k6K>s?R}7#o=3}_cpv=2>FawM-2kLz z#qFsgOu^h?ntL_Yp#av%yyoQ(1)|;rUB(N>;O;4_yPrC?_gmVa3wruTS@;`3`MR){ zd>tPse=?t_+~N+X>%7i*oCyV|2tN?q3M>F!*18NMB?vcU>Ah&~_p}<+oj=t%{96cA z;wXPwEA|Fy*{hcMr=vFOe<&rHxpo-wdB4=0qUDMcNK>q#O^L$l{eL5^9u|6Y%Y01z zFVTdip_*0T*G&t#EVg^VQ~u(hmt85KWP5dbWTg~%9-%4ki3$fFfB2PHzDGEhw-iwv zf)yd)#T0e&2L^;IYT8eHZT=?>W%|`6^5xv@H1YwNYz;f4Ny;iNOJwQXV?egc}SJ znEBmO`q6$9plp>*{_{R4T}cR}Tt<4>d_+JnE{h{b@ca?@Ol0TdVyk|vZ)gOo&v`A} zo4TWky*J3*7k-HA3Iwj9))YS228u+y8<$uLF5!8!$LmF z>%vdbE99r<0Nfu_J6bKH^RHj^yMcLe8hBVuWF)AE?1o(K-MfiQcK#h4S>{LI-o@ez zs{prL@Ov!oAUV0&fAt8`-y~cGW%-jJpqhD0y8PV}1XMBj@0uzB6iUo)9bBbg-E%3M zgU12>AH%gyk0bewuqLI2mEg|t`DJtec^g^Baz zX#eXRdR)5KvmSV9v_E7>@d77);RzN5rvn>->`&@^rJ%S@N-OWT6S&N@{=$a_jR%Fn zt2czC!QjY=ZwhgwNN$!E@ZvuAFdh7`)(_+uM)IA~=(;36IXYJ?7_JTlR;7W^Sg-FQ z}uAl07_u=?d|+Cdu>qP?%FFC?F52t)+`E-g#hI{b0j6XD6UqL?X$ofQzjWud86g6y+yp*Ym0;Hcoy5VCn} zKF7b&)NE(1$};wzoLyege^E6HQ?B`b=u2P$ve!-Y$03}=}Ge(FH<3?!EajfBDfEV^_?F$ zQXu*8q>_hZaatAdG<+3%dY~D(_F~XI#KHOWa#$%Mq@v z{_~fSNyZ3J(p@md(S^o$`cJ=-_VSUh??&Tsz$o9)Zv9{Q5JSmPHw8to|FGuqDQ;IV z#?FS@T;mNA^J1NPF8wS1!HK(aelI7>oCeCra+3yM)CJ z%Y55KMlONQky1915sf(QZQGN+rF`lezB8s?C4Il}%cx3_OPkvy(s%=~M9~*rpGp8X zXYRiLaN!?$;(1pEyS51si9F(TpaPAr7YPrgjNUyk$DVvbg)|W}z9d`t*u4~zHQ%2#=<%L39p*zL zosRe43aUF*1*(MUe2;GHT z$&fzk(ll`~OfM1K&fXoUcnHZ&CJ!R^F*Kv`e!DA(;&NUEpb8FJWTU+c#-A2mX@CA0 zj06c<^xsy<+&s8Qh|G)e4s)o`rUoELmdIR z#lUHyqTE9X$^H6LR_p7mXgp<8^SX7$SF6wrHw zkw**`gMIGI(?QIk;Bg5b!S`&mpOh#%5uCY{3H6uOc-r_Ig&x;xmMQr@ls&7;)zrKy+QFrR5UQoy=8&}Ql2Q`ie(&79o|7x8C^OZV-WVkr?CShF<)mN@E_SzGP z@^k*UMmM(_84KeIGr^_Y2-wg6Lx1lcAE4-J+uWRmaF7;nWL+451pp2FR;#Yau1AsI zn7r75+Lh(MX>(*>2oxNP(`$EoV%(=@aB9Yq%97O%n&JFtb^G-Q zN_u{LzHmJeF7Qf?kUJ*B>#rypMq*JMZu^UFrU7SDU^81t6jc<$0jCh2cNAmIhKE_$ z-6qzN9bxq0JLBGRga_*n6*18~9u5}^$?etC?!h?vJbb}Kdw4Bq);&oD`FWP@XPt%`zh^2W43J%@AfTadLwMT#U}O?W=mve{ON*!r&KR<$Nk^< zUP}clPKQ=YK*v4FSWXxT1ho7n@b9F77WQ+CzfG-yu4swO8VSN>{*0*>ban~?0DpFP zC?2g-=K`We%Faj-dHp!6JRy>kyeQ{6U-2M&;+*KqGkCrc;3tLf?EbR_z{}a5{lR<$ z$O|f5(BF^bmy0Ky{PhA-!0mP4Od7L-QO9Q}0 zHIL@$KXO%m3W+BXHqJ@EM0tMvu0n7|e9hqH8!vc2|3Q$~y;OK$Z$ThiZXT3jWFxuw zOA7dV?n>k?LGv^Bium#Fh)6JE9<_4hC(6SR(U@AjY?cUv3HpC@EFiz3;2hFGzt<>l z-2te1nZqds#`Mf+tu-b?-Kv3T#i10cNQ;?rJSdGZI)`t8$?t%OJ~U9*|! zub4*n79aBVj6PvVg%?IsjFlDLVE2IgAs<11=#qa**3cR&2hRx_yblm`ht8^HReKXE zfO|a$HSI-r$ocvM-glD(C>ZOm2GdO&Ts}onMnF46(avN0WR0(4 zX4H@!dH3-+ztVpcu}k#_BW0)1c@`YN#&+fdy61@UG`s)QaBziPpInp|I<`1ByS(lss_#$Fq3ol{$QaW{kMj zkJ~}U;=97tjsHJqYn1N5|GPdAG2nepceQ-S>!nesG`}e%0#pBxQo2y7G**7m?cIIK zIuH5t$&!gbHP*-K?OVxFZJnpcJr`3itu4WYgA(!GDwxAG-)8%~^c%EOex#A!t-dj1 z1!@HDGf~OLfE#!vQBC{O|Ir(&zqlub!gnpIZ03$=T-r}I41ShMg{BUDjKnTzT{=G~ zXKqoB2l}ZZ(%F1y9SvMM_Nvzs?SqkNC-hRxLxJx}D*wdb6!4zldDf5jQIMSI{=1Mf zXy4#Gn7t-AlnRu2RF-e7C!=%pV!pf&KWf+PMs`5SQYdJ#NIf#weh+X?8udRQjsp^@ z93JASSiHe>?cU2iB#~f<4HGNWDy=oYN|EmEvt&|%K~(OgKMp=es`)dfAH^ldPk0bN_nz?8@6D zaJn=wI{^pbcWpXY2q(LdJR&LB8J@|S1hl4GhpG*VfK%E_KGxPq*#7KE0pLgDZYHmc zo5`64!nL%8-JT*`8*|FDZ}`X1`5=k{`RRV*@g5!_JIzLv1>6;am;}vRLE<;z=J!E=$HgV3C;Aqx^?*@|8&`jKnSta4 ze7)Uv;UM&L6IFW#nkO$0BtJ?L?cMQw-FWZc{{P_i39eEXEM7r^RNuQcpc5=JJ%09f zO$6+}zQ-(=*dMt2dkc?#MfVu(j8;lCyRmphQGS}dSficCRoSi|+25}S1^hD~+bDk> zDj;tLSNOQ)G9r97?=IOg$>^P(f5-opUmLW+xBpw?TZgCk!Epe4FSPZ0 zH|D{m&&g^s|H#3C$;vpCl4XG1W|@e{2esSHe(F8V3O0Yz+ZEB}2oJOl_V?}5aynIp zsdw#y#L5s{0{?lB@{{B4h?V4Bzwm(aX()&p+qI(95yBu^9 z`Pg{gKGT|aLVvqp>J5Y(p=2XR`bD?cOXV*yJHN;L-|}gLcFL~}K9x6tito@6+{^sM zSnzvvSYI{9S*-8Rzg! zOxzyNwn0s&{oh2tz}`n}(1?FXQt0u{|JU}(#J}+Me@p3q_d%BYWw2 zE=awd?|EJY-O~tO#$Os|!hW|&G;IL)zvAX>9p4S|IVHq!<9I!$URzMpnjj}?XXH|s zG}TjNr+TlhMXp_sl}EYt*&Fh^cFyPj?flrFoz9c(=EnwY%#;6H>uqBlZLPO;JT}(l zcI&MbkLxF^43_U($75q%=7um#=972=^?P6VmFTm8{w!IWp=~8#kQviFB$@`?R@ugs z{w3ckFwTW!4^{!Xx$uIVOr&3ppRRopbfFLg_TzCfHKTcj6LkKw)W70FojJXbO-GOn z99&oP@Sc@}Ysy3>wsm)dqfm@b+( zhx{nHgRzXVL&>X@$U7k_@JhQhL+&XVLKcbHK+lyD|@Gb$_Ltl&Jzs@5p0%2!p zl4gsVfN#oPpki7Gf`=w;)~}-XNyNOBySz{X`l%jXsbEBM5M4&zjW|&>Kb7`|lBG~p zf?wHI7UdC5;9cIcU7zCHL58dk5pC~%7)-eE97+|!Bnul;>5LNiY3)nSIj(e=IoTOR zN>jM0A6P4sMuyafzknpQt4)k6<^6l0w6wi@zCYkTO2*N$#YfKuM zW~ISWf=qI%t4Z+cp^jH`<{@BDv)HLyum6=NltffpD&86l+C2t8!yj&zp9<^#v0#GQ zy~s{R+a&l9p1I$UXp;L7mKfoQQ`ASpbp!2;4*jQqd$rxJCDRMeU9+uyn2-T`hl3xM zNM}L2>1&^QD|6toM$xKX8H(rVwEp|n6Z>3vK&6^>@dG-ig$CKzIvq;j^YzhHDR$&9 z+TI+Zape)hnYAraeR{bo5uW?`!Sh3G5F|^63Vwy2@c6(ksLF!Q?N1f!7JmH&@Z%4M z+?8--AIQq(y`ip-?B%MTeVJU>v3{`|bT~};W=F=({dO)`9<^Y~!O9OhHW$bD6JX;i zK5ZD~CvQRPPTZIgHzgJur*SJ$<0kx;!N=}D`GG&@Yx#k-@fL|Kps&`=EEb&t>b)-K9gr#odrKda@540!C4$YoizVoOtsb|4gH_KDOn%Tx#lI|z-dgU~&b>Jqc#7Yc;WDy;q_ zguA;0ww{z0KTTQ&&vlBW;EWUl)@wxZi82Tm=E@*oZC0KFy@*Smav320ip+C(J`1ki ztaoQPrn-W*3~J_0cvOB4f>ODDN2pnnp#02<)LlkZn0a7W!+UmmEEbAeCgbPxwgD+4 zuWNYhK``0yQsSg!E|gw-^rqRq1n%|v;T3&39Igr8CX{zY`dO)L*?vpvR7jU@#>~lp z=9xKnV{Cy&J|vxAS!;NW?jeKQ=4BSl5bkj_E~njzB^TBQI6k~UoCc5A5nn%WI}BO~ z>1HbMpg4nZzsb7p2o^!bz6=}{6J%%k`9x}3qY%XtPadf#WlYS495n3lAnkh%&EQ~3 z%1^~j`{UIPoF{j!EC0G4>~Wb_9mjT#bLQd<(7Z*DU59DxeD>#Ru(-$Uo98b$L8Ql? zjae+8ncChDSjf^pac>zGe>H4G(2?;4;oWo(-7Nf`jkQz$jdse9ZR8F37kLA2BX4Yu z+YaRoxQ)EA`M$r&8|tzosXS((faW6+UV>pRP-Z`8rTrP3ucba;+IKiA6X<;TCFY}AO+O$9JP;P;Lkz3$4a?56ab||;NZRD2C_x(+7+29A2$1{Uy-Wp(_B4H-Z z3nBGuYf*j6hhQxK{Lu2VT1XzE15BPr!;r#Gw_n#w;7OCQkI_bzaNy$`%GB1Vo^Mnbc z$(NCtTB*Z~!{12E;pWAoul7h7T6VWOj_u-q}?E(#X(VO)-F4<^OlAwFt1}IKB zU26)bACb5j@RskmpUzXwiT*NKnEHXD;GpH55=h5cr24tu9e%t#V|?^QA^aiuwE1jV zA+)+S9ku_PH;fl{_7d8Q&Z~=*ezH*xF3>G;iZUOdc~aT4CR-v=1?N1D$`}W;zzbf< zhMmFI@b{@$x4;P-s8@;8FvAfBFAAi5T9HKl_Bm#;Yi*|j;LR8PHaDhFo+q|nfvnH) zY~iz_54czKYIgj+E(!UI`Cqa5qF&$-40*F*^WE!3}gYQIPF;tup%^p~>hJAz!bm3Jfj`Fu+%ESXi=1}aM>xuZWxXp5QS_ze2!DRR_ z=~v2{8tTV<)%Rvk$DPlwRmIV?m%Fg}qH%0B4wJHA4a~V!(ic4U-Oe7@BZV4 zRN^Q<<*!7#7f*H}97I=VdyB}cBzUgm4!O&l0vIhtsGlQD3f1Yx)Q2YI;Mgv?B{k1m z&^5XAv^AAKWOR6LYJLm(t2@Z?4r?YS!KE87CKbw2980~JF%=q#TX48ewU{c!Y_oiT zo07Pw2l-!M6kZ-q8svgH-5OC99M}dIs`_*xWrdXAC>$d2sjZ zcx<+Bo-D+)x{w3e4E?{A2NUj*GnQk3E;j$Jjc;k}>6pnG!>} zl8A5Tn)!!tKbdXYo(#jdsYY}fj30kwb~i{F#?5_6rfP_WO6PihQ1)d&4}4xK%W`vw zN3qP~>4E%&dcgblbh*~hOIMgs;55qH_xLsWvIxk4r%UMYd#F)dt$mlX&nR#pJu8}= z_{~M9V8}bF&PiRL234*VzG5^`f^EOT+q++(yyTX2of5jSh49!@<;epfm7 zqkZ|BLPdt?0Tgesm1R$rPlhbC7I7lmeZUBofbzi%4i}h0sWgtmdmHKNFY(t%>`-q4l99 zo}l2g%N&}MeJ;&NPQ;9_%oaWdYvA{lTcC5)K>NoRbLmj1aG|@Sdv`WmqgD4f?xPC5 ztG~A07DaY~x&^JLTsLFk(XQ8qWhYQPrm7=`s?`l;JLYqAQoy}YV^>W5BS$T8TRvd( z7jEV2v9R?IXP2?(_g3o4@iw^OkBvK$4duS&JVWxw?sHv?&!S4;O!n<3pF@=)qm^as zh1F>2zdXmj9G(fCKku2pKCJ@VZth;L3r6$6u;1?J{v2I+LtZuJa=<;zI%@kfUpLA( z_`LCK(pX6?% z!Nh@SvlHl??d={Xr|Bqyq+!fy$97pkb(ng!>Si1a*LhxApqBxa*AJ){+C{-5iigsO z-y-`>^{DX#?)Nmv*ZetkDgohe7}AUHy_$IpYbIKZG9ytt{;!>B2Mf?V!(GkPk}(d2 zDH-y3x-lv6c4r)Q-FfdY)gbMq9&@pdgns=6JHa{ulT|Ga6Z!3f6W`M zGr12d4#vT}9A$eRHncAnv;;+$5hub@numw%AEJ3NCR5HZP>Sj)56-8nuRVgUzMp>5 z$>u@^ahv$l){!vh2VJTi8M4c*a8d{^pG$?0_Q&p}A`RXw?{gxny&Zz)=g$!S3jxN- zaCfbg)%S#ah(rBBEHkSJMp2P|Z((x+Z_D<+9Rtb0-bg0ljzk8~)DgMh@-7xw3N&Wo zgdsilu8D`HWO*1c<$J)O{1V}SnAfMz65mY#sYqDPb~g4dNKQC4A)gry&c`(CJ6J^l zA(C-rupr~assF;p#=VwE>k(y+h zs^Ue22S0J%Qx1r6I=TNr%RIy&`kEc{G0-6(II4IS_I zcK-Zo22aLG1#`Ve_iGx|*L5SyTw$Wa;q&t8Xx-|Pk(avmBnFnNROcO|LwK7`7K!~P z%E;c`m)31j_dEu!^!om+(9eUe`>nf+lD(lN;m7<6H-sB-i7n6e_Lmemb(W_710%AF z=NH(XpKi@Wc5>yNgU6Rrp@zJ4RT@tkGfJsbG-oE#dBzXQ5?3qxEy6QIL~ zI8SdDbf1=I)M!4HJQfhIJaVC`LO6|fMCs3ZtI>QtmOVb0ZIlh(r9>63xW#~dyJ{?p zty6&D!HP>MpYkx{KzqeDx>Yd>Jhv3Sk@~(Isy3ANG{t*>XOrJgaw(;NUc<1$hxHjC z_4VFeo!kLn{g@Qbgc`DMdHOY3#~mU;+9!D<>r@oy>00ojD9|kx&>l}KzVEGy<5%=P zJo!u*#X)@cdtrXhEE$Y#u>Uw47y+7(v~^OFxB%xCd&m>mj0u@+!7qc;Zm%4!T5sQi>@uE65ANyAF`~6~iH5P}fF?qw@e72d>qvT0KwEy35gU zID|Me3SO49;!GLLh9r!NH;Sp_f#JQSxflkdH|Ext^M8cqKmjPcPdXp@r}}gs$!292d^sg;LYvN1=0}G zs@`}evibk=UH|=FBh^q-75_kxkQYp0omGGRAq%!CF*zSRPz;5|yk?7SoWMxt^)#A0 z$ZjyHGL<1*iv`t8=ATl&A^XZgf!O8O)eN}1dQVzS=@ndiY}aa2BSw+_rVeDX`u+7b zyiO@N{8gzKPH3ugva!a4hlON1cDs@N=FXISaDXuvnwdmAJ4lP-c0axEHh3V2;v5>D zBz+rg&4Gl^_vY6>!*41JmsI%9nd06fyET3YjwK4L61oI~-3yY(mS2pn=R|yyHz4%(~q=%T}Al2D) zt3TbZTeNINW4SFfzyT(*L+shEV6%MMP01^cy=Z06 z7j2B1GJ~_^r{tUVBL9gQN81{StQwe1=OQK)K<7HzajXnKBeWoAWO5rlfBKHU_XK{< z5Hmk^Usl~UNl|KrjYBZ~c~bADd?q{_PjE&m%^0SM7INVe#Xza%{dcrG!{O(th_>2x zJ4ibf<^PSs4EMclfmZRNd#}S2CeyLp^eDdZ5z+M#az;NG;wzi{aSq{<*pz#d+X>eU!A-21f6Y~P*TX9d$);@Jg+6mfj1Up8WQc>`e4 zXe)k_z6h?Km0kH~WoFR2LS8XZDNvLKyC2*+!PR35Uw5=W))DoGMUR1wUPmzW(Qh#H zDsX^;8V}}}>{W5^7dq3ip~-j?7KPZ*#!n%;cvRo-@OP;|C}_yKs;p`=F%Hc@V%We_Sd2X*sNbxs_fgF z8ssn7tiQ4B(Bk?W!rgqYJNY1`lL!2)k=GSkNAWG>mhZ06Gi&48wcbc3yJmg{NZU4_ zNKNnnMT-X>N!~I5R5w`n3Z-u!N4rTRMct}BQp<%eRr_=`&r><>!?yO=-6kLovS!SswjBC$ZLhC8=1mrK&`*OQT z+1DPnGPA$nvh;&3iy!6UChg(xutT#Y$p|MX=;F^Vq0v~FHkTce5&pF$Ze(iV`vNnx z2n$d>w0Z^TcNcvqwvhqWJyf4q0*!I+rw8O+V%9gojn0j0=SGoSzW>`UGlE0b2W`5^9XUCi0^&0g+3Ger{0Pf%kY!9$^A}xN?>%A|oHNb-`IK zr_QNoo|u058?hLj8<-cfz?5&bJ;J`RgvDbIH=5m8kqpD}`8G6^x|L6ETc7xY-4_U7 zV)5Ch9wpw8H;;tUN8R3q+!Tb5q6AWi4IE%MEhW#Cssnsu_F(y3mZT5vyASew>c~tFg>b6tqBVjO^ZkN zo&uAX&$@+&qkG`)J$L-SP8h=}MMuTgrYO$4`G{19Q@s3+=aHbAFu3KafGKa6(3vw` zfW;@@Dp$$2cFnnKe%s2~#@Kmr>JBzP&z^DpiBbuacZ7&rmtqg$Ey!?Im?vIB7&eUY zELml^Ky`8Hsyae{*e=2)n11RitYZfa_;wPw=L{d^T#wbUfY%tTSQp07I=DHHrv4qT zoBT~VZ~nH*D#**w3xfV%WBD|FJmAdmm?nOPI&7X+2sQqMa3|-v8!x_2bA)1Y4<7LD zlfv=$_KKQl??!r(b#i`gKVt}_zkB3KLY@YEzo(ada?dSjF&1IXzRv?5RX%N>=j08m zxvA9j&5{4!;*wP%tFspzz7xz8SAg_J!t&`nYnvb#?kMR+V}|^&UN6k5^OMmz-!9(d z7j9AZ@GE1L2*(uzxO`{@R1m7c^O4`reL0H8$>}c;*N3lq5WAV>mOt+rYeDrJ0%J>67rI#&Ax>TUwUE7w*o!t68h&5B+Gn%?Yo$K`Z80 zKl4?EaP4_~U^Jl^&kNGU?3EF^jc{PxREG4f1qH%st}h3CfUiG^H8L}$qiQa z`Gk4GptVy+e+}3`K09Kc_V}ytQ^cjBv&WGAKDuJjsB_Z~ru7g<+fkzX?tZI-YGf)1 ze?#r<;}X#WSp6|5eCN}t76b6!;%of|uQ$m0pyqpn#St_N&C;fNdxO!C?>&@9kz7(2 z(tKaD>w)B(aWww-k$>JxJR-kv&KH!{<#1$pqIg&@#S!tGY1FQ&5F-9()sA3lPeJrV z%mpxr$1*ZaaRT1?n)#~y6*@QjDz7s-k--aMhgRfje@No^loua{Q5-_&Qi`h4XP#fz zz|5~rI&!;1Ubs;gjHm}!@qFg&z)U|69bT(j;^dE*F1^` zF<*noXj)NR%8@H?IyWj}f!-dqqcald`-JfIo5DqqzG!@Bm~w^A84z~`j2HKX1Nvg2 zsW&qI;FCO6deBj1KRwagoz8Y89*i=)@zrQY{>;;!doIb@p}0u3B)yRg7dyZj!5mti zngyE9S@MXzP6D?D3q->ucD~=(q?7>BZh|E2c_caI<<^{^))>AI&p74Sd1TL3tK7S< z$A5j>dIK1UKU&_!=KrHv@-VY~kH#Url`0oYm*QXh?{C!a{FcNyLk-GjUEZDCY!5#z zL{>>~-h^jgjVcJfF^1FAGR^zzgmCZmp4H%eZfpsQ+Cn7~3(&oC(u^Wf*#}NAsQBsY z2SaqYb`ALSdg?qw`4t{L7%zGxZwJ2;x|pa-Yj%LU!Gqh4I-IUZl6xtC@yQklMhh&WB{G!pEDfEnsLS5kKyJ+!^}93!N6& zxF}U)suL0|rof2c^USwyFCc#ITuQ*88}KBM5~z4%2u>}^D_yG=$35rUb7D$TO$z3P zdE66cMf&q}daq9RMR(9|9rUaq9qkua{i?DS|DgG9+9d9+Kj{HdmCHH095g|z7Tcc< z9eGGx@j^#$50Vez{xAABe_sZI=Vxa>@FKbUPwzgNa|x{vGPbu8ZAfjv7>#vXY53B8 zvBppm^CEiOchmQ9mXxbw&to@ePkaslj1=6D*R9a`T6F=Zg<=cBQ@SG3 z#YE}i0d}`(_ASRo0MfWDsu#C>fDK^o-?rX;dxP-vtg(5z!2Q?J!N<_K<`WZ< zn{TwR_R#;o#HqIY=oW<5XEm^d_G^Y#w z7+6pPr`vKqMqfd=H9~XKY{kwNaKbYB7S$NqSGF)jc4c9oKM#;{)SASuOzR~y3luecU()FI2* z++DCI&yCLrX0T`*rvGDKmIf~{23XyK$AaHI9cb5ty{Flzy7sW(+SMqOx47j zt~~C7^uU`Wi-=g6Tk!Z;&1-gTw7t?mlc zOU&+FEZIK)+E!vJG^AyY$Kqa{dVWwQMDylFC~Ug8|nZ`J})bqQn~;K!Sf0mr-H!N_v!VC=SXS$gRSoq*FS#g$Z1z_&^>bB z*TDat_m<**6-Bzx{~<4S@gnyel?%3?2*qMG*ipYvpPm4e!`z^#-nhY8)d}q5BLB*w z;)ZK~4433NmO5lFZnmF|l>c@M9*S?ipCv!~QN#qKnz=acPDT5ntA|vI4ov>{{v{Q7 zbJY7G_P%_~Q}+WMW${mHsXwy$zt$IFzILsZdKWOyU)8#uk>!fbL$^Ug(Dwl!#m87pGUv)% z*xvuP9bHHhOLq#8!@OtudGtN&AuR6V)_QrP&-33MFx|EtHP_imwbv;C_dcm_)90=M zrB^0|$H-m5rX04mV^a=W+Y#$R(d%rX4Ysz!e9uq0CUxXDC*$g$$i8F?IPVL$reCE#0vCNy=GW^ZIk`GT` zb1hloK_F^v;N&aQ?;EO^jN;QavT7WUdok#L8(q zdUE_?Y$C(|As;m94@Wuucntr_zvE%^x5~fm-macopKnCc+hg%NzJdT7qkgoWS+em+ zq#OSC{H+zl_E~Pm*!djWBy1i$gWZ=eUL5T^IE=>W9Jq6@k#l=HXBv-tq3Ar;-+ccx zcjtNr@(WRENb688V!wB%WaE^?vCkK4Z)|A24<&wsT{m5I)laSek3Wjx5xY1j#ycRe!mLF`ZYr;$%7_`-7tK?H}f+b zqv)QRe$ILW-vR8o^j4xv&U3%+jJ?0z&sp_Um;>FjuGEdsd&|82`*uo+fAQB*{Ka4A zyTxBuze9hW|6lxdv|IdjjQ`PJXLV=6SSp$x+)x*2JEda>&WZap-F+7dRAysW`p??~ z>23}aR}wVe*)rT$X*&L~D+O2*zmOokH{+hG_PNak$hw+pR$fH*Ul3>Gs>1(_)1V`S zwfo7O0Ucf9bdz#8=rZe{lO*s5-xl&-)tjRAKGOEEqTyr|P#yJ@S-XJl)zv4)+Qz&` z_W{}6dD->y{r_L{ziv`hr{GG){~>Sj#Y#?&3qn}C#FSB8kK_|tA2%u!$1<;NpO1TQ zo=dPK9d>_wDvzk%;yqfo1{?`rl=f{uzc=Y`{>kl#C+*wMie;?aVvX-@3~pfa*e~s2 z8Cj0g#qk@{)Xs4#W8>GhlB!$Q$v`>m{5Zx~oN|Vo9oKGKJj&f#g*!i=-OfL`9sO5- zT<;ct9M2B@ab$n-$4PGS$Mycd?2mipZPM=VMGr1ISihI}X$FF-Z~eMQ=MN?;ENnJn zbU}m9_ne$nWKW+EGiEP(=L3wp>4%kt(YW_nn9i-ZW(xB1I2#vpkzLj@LQonejqJ4AfJV&R}eV9rUo-5dN7Ywk8_L+k!{#=xbRmp-8UNlaq{48G9vfaJd&~aUKbyJ!Jsi1-L6-XAJ~*oNF5T`vQR# z**t}7_j$N${@tw^&7I>k9v?i{!vI)7r@t@uPkA+kc=5}8P)qoG|BHXt{Xu~~CmxM3 zsCQe*Q#G;?1kn4BAK*ptqQ)D6T?|r>0G@)KognJRj^y#s^nh}f+{Nf>Nw(~rmul7nOI@)6KGnQ3_hslW_fqLyF(^b|eK=s2r z_q9$ds5Jh1O6*4~@Jh79`}H~mDn4oS?z)clSxt8S_ho+s!KYGZ8#te!ai&zIEL>3A z1CDxqzra322>1OU=oGx61ifx(-CBKc1%9159`GU94+ziYc6F_w{76!FSk@o1_yW@4 z^M4#BksY=tq`}EY_X@l{6T^l&aq)!chr^Pgn`mo1$~FC^iGflE*v$jwHT`Xf`u!egXpZ#a5pcti2;67sF+r zD2J=>*GinyY*`P`yIPXLKo%?dqH^(p#GhH z`>UMH=LSr%yd0OBg8H{LmFC(iMI|78hVM;cjPkrHuNj8P(joi?mxW9{_2?du$gh1^ zpFIXlM~i%SmaYQsi#q#*HQGS2)P~RlO$TUbmsjvL7VWRJYEIrXy&n!!)i2v#8btTn zJ(>rMC#;Y&QGqA-tCs{&e*4kD?E4?)Tsd}H}FGH5-M z<}72U3C9i6=d2`LAsO3J`zy6HAXHjx^5XwxJ<*OqlUm*g?)6VR=-^Vq zwdW?|OD7%<6kk-HAX!gJngiPPn1|Q#AAtLp1_umg!=OP1)BPA9G%nrdxxbvQ=>pUH zDDKzp|J?HY(Mbu4cuA6f?NW^eWX`Cjd<7Q;=&i zp#Adx4I6VuP77Eat;ezF`QLF=x02J?qI&xsti4bAQ8>imMhJ$#_uBiogm~26J=&iY znP(+2<+f7j3AI7_9&8+QbBgHi*`O})(tPdmQ@rb-$>7_u$7T0GWQNw>hpo*Z1vF2! z4jaHc_hYS{dy&4|LmMNeFX{;kU%pN<4nVlGoBbQTMUJ+zv+2x3sNEBfU6|RZbAWqo z+Tb~%2Y|WWw3#{E0bY5Wu^*Try^{f-PF39~12nHDKbotf`=!zWzN50=b}nc2l!dnW z>sWv11HvEnqbAW9{#LoF)Kxb=$iuGRTWP((@j$^NtbM0Re4Fdm06K>+Y7=6hz1s!! zml~%$=1c&Wp~FnR`#sRu+x*~~W;2+HkhozPVgQAQXHLY4qxmLlV;!_xzyr?ymQFoP z?}wR36aS9aP5!2wH-CrI27Ik>X#}p5`bu1-&4AzI5cByiduTnEmxecr{C*qs`FX;` zWuUL==d+_ZC@y@uU;jAP9l8s6y-EM9npA^W zZHA9@hS>mb{Q%b$BZPk_cdgSzo2&*L^l|-cTZGoF!^TQZ_U46v{{W%>7d{jRb*<&# ztH`4$K2T-c=4pm=1~9oSdi^y=6@d7!>|<{hfJ2mfg_QhIT;eM;g1KjIHGsMWpXG@H zTBo|`e`{TcMfHX+T(>U{$p$2Wvm!RTx`3SGKALFzFrYawCE!0)3Lf1$&&@{L42lcE zM|JveaHoaZ@jV6dznqsVEwq`*2Nwxvc|>dxeim`*m$=<5Wx%s2>*JUc8h=z`&Nm&_ zksQ^%Rjg(Ilz@A=a#IGN75qBeI&k!HAs8DlH=|cUxK=Eu(;SqW>VZ{$Q{U+D|J1*_ z$9m#3S`T!UVk#~Q)q*_HfTtA34}i8#vyb!h4giU2k|tXv=tj#1f@NwIW+7{vy=?r%O& zb@jDt%JVzWRUl(2Qur?1a4r9Qx;+m*C+SaoB8%36zT&5q=i~BWb+A`dlRfhDzoxWc z*2pV^%lE~!#XcY$1djsMj+3M)K5(A(&8z8+RCsFWL1Sia2;{vO$=`+V1ve_m-`&$d zxLqEjzaHv>LO4!axGLF-&Yv|;3_l*1L;BMp%04+lFB0yREjz8TAujrJL}UE%JrPk; zRx^L4&|}T376^)djtWi3nfWdyxjBA!iKsdSe&;UT^%=@Lr7mR_!qE^@?-Ja zw^HqCNPM*bi(7di|Cv*r6q;umUvFxN%IrLk_U89a%?a9&HQxfF79%s48?r%wj|86f zY$dQs$u%uHEC6nBQ_Oq!q4`BWu^z%)YysS|(!&e*QNMn4qK#By&jHLLDT;}047h&G z%2aJGwnX2pZ=0X6N}B^nG{+6D)HMSW#nbvC(V^hX-U~r>r%|~yhhM>^2^FAi*U^(3 zsl2%N8B%ZTCq9k7o3h^Zz;F8sz?wfYSz4#s4<+g`Y2tDScPOLPtkmR7+A}0Wm5sEzK{{# zd{+&RAKn#h|Dh6m&1fxtv4Y|^?L1ygNfzFPGny)+FQgIf!uJ3{0|obbT)8K@sv-KS z)$lsE0Y!Fy2z>sTh18EY8=7ku-?P%J0YlUaG%H?*adFLZe#&c;32BhjVmZ66tOJZu zGn~A3E)-U{3&+&5+=IeV>-4clE8%bRLz&J};c)(qqlC{srg>XdQFK+rEpXlAz zw=u;!TB4iZ?GtNxDIx*kj;ba3KV0WJFS`GJQhWLg!gm1}KjbO=07Rw^EgjDm#HF_Ign@^wQECU<;Pa2G7QT+Jtq5Ro$K7Np$T{-St|N>pn32+BJovf8miZ#(xxGgA{X2) z=hJ1|zNcpl^1pqDsF3y#AAuu&$K@mziFT;xV1VefKkNA6nAkdeB+8A)6BU42t{P z9a&?p0G%~cl1W8_upq2TValfjo}ReNEF|6yGZbX5)Es^agKpd_=%BU(u;WPgJFx`t z@k@5yBOCX%7yliuvt8_95TQpt;1<2opAZ}YS3 z7~FQ>wMoLn$1kMD3_^|UoXEDB3t)z@RAz846gVXBVK28jHId;R1vy-t1!*5=$*=%JvN>jw zH?}~JX@p*j*%|P?eSb+rApuS}HFLzgMEgN{@%VD-=dp0=r-gJ8A+n>6P;)ae{PUcM z5&@sy`qLeMFDrxO2Rj99K2yEVVU{+L*gV1t6~q1o9Z%t!6yD%kU;=b>(v3d%y%XBH z57=c;*$rOxgTM*KQwQ($R)l=yM)y(;s_hspY7h=l#cTExTm%2e)9Q}E$z4g1wWVbuowNZ?yk#tX z_qG#$^U`mAUKt1?KUHVY1|Ykgi8O6&d^#P7+?0ov=MetHm8Vw=Uch?z%_P|(yA8$T z`KpVSahM={-|M|6ibzN6VTUYl^TV6n(3W=BM%fk{cmbEYAp|}aC@$`$Z4OnK z4%)~6lDAhM7Bc}O`@hT4{7M3rFEho$wc6qM@ViUxdCc%yOjwE6Av>7zi!gyYJpxz1 zUV>-Pq$wI#oArOGQ(g~JXugUa?JsPSNpiM`>Jvu)lb8l3vG-#~*3isPAz+EI!kPdfwR6znd}qW>p!h)LM78z_-$VCt(FzuXgAz^t(5m*cu)&^@D_6<&d?D& z)MV!RcHF=iGB+K_}UTuddy}gtQd!4}33%jMd*bn>fx@{H?7=RxzLd=S7F~1 zv=8X`bi4mBM;(m%!D_FYgK$Ild@}mHT2%%+Y%l-e96{yT_Dd4k#UX!{xyxwf^%+A$PkMQvX80b|VA&Jd_YmQ+P7%p)nb_CCT{eFv@gr++{M}#2&pSq=dS@Oo zUNjrag~Hx|p)au;E|`mqHLu4)#{Es=tMS!vk9exQSV|krWT1SW5FQ4XRxP-vT@l{R zoAaDh@z3+%+cOe6Tx&=^yS_dmeu7sGFMk@YnxsN;QDf(WrElb;_7Gm&8zu6*3jT^s zG3`Cv0dF-$9a4_J2ZJiqV#oy|S2RV^lO6q+;BpWdNI#v+*F&sGR$?x^t@CJK&2qNY^(D>kEykL}XT@2=FqVJY^ zAU|h0-Ip*zQ)Fj(2c$M!X@4(4x|MF)J;aJe2BNx^cEy=&98sjk!lV z)_cQ+rO(`Su(*;kBiR}KzbY_%iVgkW6tT$f%oI*YqqO_)_-~tJ&RP`Hs*JT$SRXE2 z(v(H`%cM;T6Hk09cijHX?|rVcCxU9+54uGL>a4Hi!2q+`dGo7vaIK8kvRzCcTpnNh z5IBYQ)9inaCmZiG2L{Y18Qp4cH7 z0{QUd(1AVmA+6BsG;#7$mj}E)aEZI&3zCoLo>eoZf4+}KLl*COB)XTSojg2d$cFUG z06I#X9C(l@Kg0Kn!@t=zq&D zg4Waaf|?N=Fy^O(q3xs?Y_Q3{5Tr9=Uu4>FATrO5A8tsT>O{9Xmv z&s$U=6^wB8(!?HC=g*>hB^qCL5BkfMff!56h$GiUas9jb-PAm2np(RtiIas40`SJJzVJ7Dxo3x-cG9Tpl=gYbL;C)uI#Xg)tHJ}H<`*alK2&+fTykMd18UOAU;PF4%a z4zJ14grf5kg=++Q)A(o|Z{b}3V>p}#(`X!q;p79@|BY*y)T{;&2+n?#+=cX60qePh z`L;F~72-#7Ar9qp%ya#mcO)Ol>kfN+cKY=~XfM~x5%Me^erH$S^<{4r-2IOE@<+aO zVBR(P@TB`;+<19KI98r?r~)chv%eyfYy~bv+_y6V&*J`9>|v2!cYY3o9)#$W^2Na` zw25V+um%d{N@XzJ?ttoI;pVc3v%x&xo6+B_$liU$A@jC(R|BAj79vv$vf^_Rala zZgmBtHhAbdB#Hcu=9}x;-JT;C(7s?^>Sl`&T{Gl7@b*>plVX@KN`1@Gz6CNbz7RO|j>M1bksR0_qx3#G zTLhS~e3e&Q^8wVK&q;5LCVI`P7}FfT_&sg>G!pj@x;&buH3i zAq`Xh;i*5GOV4s3Zv%&O%aQ|B&Y3Y{vA6>bx?&~#7INUeW?3ue)GKfopV)7~F?4@c zoC!Ez8B&2vc1O#8k)d<4vQ+yea+MMoNW;YUzWkkdrFKMXlMXAW-Bmx9h0hBX=loWG z1q6b=7DX>t{R_zcKhGk=u;LFQO87EwlA`-0#X(;Jj?nRdA=MIM{Gsjh18fpUeO%$u zc{xmZe^MheyTtPt{;*rC3$;=S?4qIOY>;z+43rHd9jM@kVH^CeFLf`|y(N<6_>xZkn6RYrps$CvSnSAHnD^ZX?1 z?R%DHtVdZ7&p|@VD|C#csDC5#hm}mn*??LMMB{#qhCAp`EmS5&3M}9Kl4LVv#fi%8VHBYoTkryNrW6%zXlr(r)b16 z_yANNVzn26i}OiFT-1TE>}7Q4j5j6FN&PnGB5MS83wcE8i~EDk`d5#BOOGc&cFbn| zb6pItx#v-w+nbe2&Xn&ufTnxjK#4IUj;|{t>5tcd{NmJ)jui}LQp}F?%1Q7nj z{*{9;082J!#u%gij;FPi>eR?ww4<^2kgdRv101&^G5l8}b!v6%%s4(i5jZBIZnkZG zOicB(Efm1hC-vt%kZ|PyNxk^L%?PugGCvcy)2GJ6t** z@~m@=udB<#55fm@3BpjEsi;HP+nLgA_#%&p@CD05@#5TEHB2e_r0R(CA`9ADz!b}5Gv+rT9i#w_a>OM*KWv`8zY)FC z@Jy3{0H%C~2i2Ryx8PUv@ckkcNe3+x}Ja8IbrrCyaUD;$w1ZlHzQ5 zS>`PJgM3+-f5yI3O)wBTd??pQON)lJ29Fx|a-D+xs$W-L5g>nIC*SQ89vofb9f>#ZKdCS zy|3hJdc*ZI2=l&^;lb~GE}g~kjl^Ddz4S_ktxRl3q<$5 zs_(t_{T7dhN$gqVo>bg0(yW51Dge#5`6IObMnXZ*fny^5WfCin|5C+O|FIgvJx(Z5 z$UJ>78@?ns_v{dl5iB-YY15aMk@V}$w1HGoJJKxiK!nu6m-A{j_IK$gs!p0{= zJz*Ua-XcvkI$yc3Y|TgcG!Xu#6c`ODLisDwmMBjw;vs*ZU~O3=i=G=)t&w5odu9w> zT>>ok7^}mq3MFddX0%@v&N%B@tn34OeDJz;Pa(VvkK2ZUvLDfTldj%(!Jr{4$SuZF zFj=oBYN*;7ZrNl9PZDhW6t9nf@Mgt+Z`W8j`DSB7e#IUtP?oM63?sd&e~8J&C&m*# zB|KhoO99#UYiASl<3tf!8-X<34Kt(0r^m;8XIhOkNek_&JS{Z>!>#1jNWca}cGM{-eD zcxj~qyzR5?kTuFL*Q*1}OKyk&;RzZ$lIsZ1dtavTm|+|_T~X2JHy;z0A6r$N8+P#mw`DI1dK%Q0a3u-*|zdKAYo6o1h} z)da~s=;yM(2C)ZtF{U`;MjHV_D6aNV^ZJ2-QVD~}#ap;?K>661re`d$47tEHMTE|$ zNG`R0DSAZ4`IwNWq); zgb(2YFpYBhJ<;%o)N_?~g6R^X&*`N@)2P)&Q)7SlpY~#JesydC-z*pHCq^1F)K1l$ z6;()Lr<#j(0ykSu{Zi?79|fBKqOH!Se-R-(N;=;C8vDuufC|xW$ESS! zIKO0*760h7T4mAc=tD29=}=q=dF;FIY^^-a;+==?jL@iwHvBd)VM? zwc%XFhQL%He(my&XijHfV3J=i(TUchSL8=ShloSLfz_8D?Dx^S=laCr#$Ll{AUG#@ ztj-<9XFPAdwx2E<;dAu+39|bAhyVf7r*BC`-3C&zwjqKqgTRxn)MGYOXg;S;{=RoPL+2US9>1K?-4g?>gvWXU?IM6&Y15gW?o6=x-9^)U4{f+) zaPyhX=7 z!0bo7I~XFq|D?Yg;rM*vf61=u9smsn^Ub;gA@^LNeOJtz zl^`Q{_){}=slFFDd3yk^fwf*9v6Jsf7b-EbIzFWJNMGv z5-zArKau8V6@6^qpI`JtQuJq1A@%bs{LPwt@7}LoMEy{(mmu8NP*8O5($8l$0V>Ve zp&M4_-e{dQl1g*z7t#^s+ee^(sL~FK{Ig5{r5^z~*9R#TkHtd!{Ob$LEH^-jsB`sr z0n(F7m4mTO2i?Gh$osbyE6{xgvB`X(BohfE8Hd%KPa_=dUp6!C>@3J`k@rq-Wmpb} z!h~Hbu|1wJ^hMO7dyF9%r#)y;_!`}JmgvY{4wwst845hCGaP6=I-wV)q;L-51m-#s zezQ0p3<>z%xW0Xo61}xh6)0kOQMBNNT>ZSLWb*`dDcxBQw0^z>bIkJr%DC}zA?@&C zdw{j)|Gy$7mJH3M*Y=>^!E7J1V-g^@iY_%tO#+Q+ExeV1yrAn^^wkgL+waG>Qtr(6 zfdw_L|NPw4tjJo2w+ZGsQDO0vV2g{udNl3qLl^;0`x6e_X~+Vb^=y5v?Nn<t#qNtlk0-6;#r}7klWv-iyXARFG0zFn1f;!7JA&Z{7UuHA z&@PHov7HxIW)}whyppwtu1W%0T_uqbo_MhJeSE8)RbLijz}ELI69Cx;JxO5gf3&iT z=D*{5(9f{{ihYBXgDgc6&wYO^{*>urYw%ePwEy~?uU;rU$_A{5ziW7w+XMe&FZcd( zb-}ftVm~>D<^b}KZnj_S_QVpyLv&7G$&<3KcljEa9%0 zKGyj`D)A@LK71uA;QB-Y7XM?Xq_24lZ>jeX=J{|A!=fJ^Vi^9*>A+j@_Go{)Hul-2 zR%uoI|F-^3+U4weJ&+WOS2@(4CF=AQi|?_u-cFmYJu5y~oV2aPt#&;B+l5o$jKr^G zDYYBmXTR@LGqG^6DTl4?*p$Q8c6?#Gc>K1bDcIVM0)d3O-z7*t{tRv6EgSLysS-Ja zZ>&nsY5BMSN zl;?b9+j^trV{^X+@7(U$q7B&OWkMjj>kfMIceCt(Ni;?qF-jO4?713A!qf%+i4;s>_2kM=3yOW(qD zu(f?}|CQU;_6fy|Am%K%HAFfHXTb* z$O;9v(T=to-);cj)ae+zWMq#Gu8bY&tBVAhowv?8{ZHPr)-G8m<3%UXd>S8oyo>A# z{%F!qYFy~IO2k2xFRO0g-tV7h`2)g1Llk>*$p>HX^UjC+^NMI6vk));mFz_r5DS}A zIn08_Aa@4klgb4#`58Uv*t2!k(-DjkfwP|115?UuX9he_iPoe_hxP{dMMl@z=R-@z>e^M}J+AT!gEs zFXLawyHuR*Ztk-j;40b8qiIhZfq$7KaZz0iph#=k>WfD~$}E)aD;8f?7tW6+uq(-7zpxJ zIE>wQ>(#`0ep5kyzOk3Fg2#tf3?)zE8fd{?27 zzLJAE^25gNleo!lyS?4=qWjK3pb*w>89BK!*lUOEgHJZc3%P3}cl;e&{g+#5(|@T& zmvmt)atIix$fZd%Rzke-XL~8B{vXQTJD%(A{~xcc63IxiN-BlxF2D0nx7X=-p8eR5`itDC==U)rR@JAMmw27PaIY~jtVCf12f&!cSi%gxN}aX9Jsyw)aN z3#B;J+VzDcp>J({CPV?HNP;_rubH_6RHfJL_J#dJ?#kGD>CU+^xcc1Z;1x+V$SFBB ztA8N|KK#m8WX{UlXs@A?6BZZOzA>I-)7NQ&_~TH`2eYG={-c{7=Y5ijS3$jmxD?|7 z5&fSpk3de{z&P!(SP(BhCA>Yk7Xp4P%^j)f1BZ9?Tm?a8C?-#{*is0e1Fc)OOCL&# zkvoyYMblNRH_KjS z0x^!~&byu?lf<41nNn|^*p)E8N1jWYrOj$2^37uT@=0X#`=ZqMDW#4Wf9Fs6?4P-f z!<8^^MXa77%ENyg0^MD!9e&5aH}~iV>3e(OQQrJ)Az2@oJzlUTVu?kwDn|~EDBygB z?LrmnT?eAk_JE?Abi165dYx(4_?WNtAmzht;(ai3qrU@5+Ybk|j&FJ%LrVL2s=1N~ z+WX%j%a)5Lyytrq1lMxIF}*S~m33Z@X$?} zRE#e&P1aEJta=O{4?gi$j*NphbvIr*zia?5X$ltg-F*-!PUO))9gBvt63RYgV!6)Z zZn{q;UkPH(nyPJ!!g?|Lc@{c(h96HZ`}^ix8%P$| zh)|B=_l|A(SJ`#;grhv=QTm%)ST5)q-7Tc;faQkgHRd`)r?q z^=>E_G%Gy8eH@M+cU$00xD7m~3NBASh}!7CsObWcJ}<^$`O|;T(|dwWJMg{DIm1wF z_|*>j(pS_kAH(?-A0!S8Kj^?XFz(_-*WHBwk_Y-un;Am}T>Vu34bBCl?T@+WC-FeGB1tuIe%ue8+r&(xkO!md^D*`}68u)BTp)3HQ(cPR%@J z1;=iEZ&bQj3BRO*E^iI*0-@^InBA0VD1bF^WxpNfdm(dSl!9Efh$%wDhvzT)@u&XH zv#mZ;g&klb@;-LEeBj1-s7)Enp7R%OwB!1mLGfTdA1cU#UtIF*0v=j^p`e3KD81`EMa3nULD) z3yJ6n`!o7G%PF9Lp5v{QBhHVyBe`>!sXYz(@^BR8zur7wh;6Mo@tv3uZ-R*Z?TMDi zJc9aUA?IE_Q_PRfz76&|NBn=-8U9sXo}JBKOh_bX*TIs;B$7A+bIHy*(!^FkE~$~Q z=UD|5?(@+IDe8nLM}2KRJ-&y2u?M@$DPVecb#zdip*$Vsm;R(sUB`K)fA;s^>u6FD z;^kk1$DJ!%rOI|O9|A;acjp9kf<$8!Jqu41isaOJyIlj{!<{c5pL+JR2Kd=czwO+G z`Nn|f%{JEGBb#35NFuH?v~d9h?d9tj{Bs2e@7KTA)%A<-uei1U#+6#{DA;l)oKUZA z{j_^kcL?mi&xlxRnFxxe2$|Uytf!K)$GT1qcJe7JtLAhi}QFy1Ta&&1`pc;pn1Dp*?q7$)YgYitWdUZR`2I>t$UD}J0ftG^Mto|!Vr>~90pyE`wWX!Sz=zUU{b zZed6yw>Y2iaRrhT?`z!qr5bH7Y;3*}oQ;;5-%0lK;QY!@MV=GVmEnj!g@Wh01ID3Y zV4=D!Z&r+M9C;;k;%LD}{Z@nWkxz#88^8O%OuNt>$w#6^qobD8IcR*PL#F0;AdJkt z`$6FshwlT`PNO8gyN)G!m`>3QYgthi<9_vz-|&8RB^AAkY9!a5$VB&|O0R{S z$UtT>oWcv7127{PcA4p`ACgR#{no*nk0{RgT|b$Vk63de6@I7`qBDZ5>OxI8{@a8` z{Oqo&0+c4z%1x_?=^OD=HJKc-N+fIcEkx)fj-wZGx#BImfXDrdyF#GsPC9Z_IWrS@ zA_Og3?d+oW{!9N^5p}g{$NpyVvuBPsj2ENR@p%e?lUR;FdQ5=*aU_mg-=a8Qn`899 z^E6A0#PuZ~Zyt|*C+)S}tNn!j@H@*A(Z7T%2pI^r8GtrK1g#G@n@@Kvo2Y>C~OXUOebWMjIUCW1MxhZ`=&w98^ z*OXv)^A6f)*YV1H2KyzxXG}BC4ThudRL*C`-{Nsea`MXD&MN?|x-#jOT8y8AddJUR z$ij4kfrUo4cUM06c83TJKWqnn+On(f`K^$&gxar&SD2pOh!+rRM75Al$KyMSu$;r) zPI2MoRxFP{6PA*F5>XAy1|m|6Tgu?0gT9a0`xbbX*7(pnpAc6>|8&|xk<;za%i!>H zjwBwj9#kplw5Uhp{+|03FLffCw)NKU7c*d}v?goH7UO`hyE|~_Y^?|TeL?d5viKe{ z8WJbci`1g$FGC*}8RED=n_EvStjlr!>Kp%WDe@DwNGFML>Jv>Xy5d{Q{8^+P_Uzal zbXFhZ3haEkX!e4-8ZD@))D1IZe7i8Y()a)tjDrL=WKj=F8<9JWF7JtJ@yPsi?KU@> za`aTpy+Z13J;6CRI~6+gW2F$4OW(;omplN{og&`5-bA3xMae_7g5}7+%B=X?uWFQ1 zFcCN;eHU3eO!=hPV*O>`^Tul_C>cqGzm1!e!StSCbV|-cLTMSQ=-GDq~ookU!ZyAQI63f8lua*TDN|+Y)n% zA0?I-j?Q?#u@W6XhV#lS2PyG-k`nJ9wu@^93#r5omBSbZAmieTpvw1n9G@h==J5Qb zM>Lr{v@*Nc1zv)z6MG$6kXLQ(zOh<-&;6=(eh#+|fOed%PrDDsi>jClZ`XW)^^Eo8 zPtP4o2QmRqk7?0h+>k#duW0$z(n1YPe_ysgvEGe5ntThn zUC1`zmQj~{28ov-+mB;&| zNyDF#Puz}zK2cAm*EDU^Lwvb>Ib|cT7!!S!EW|h)rRI}4wrhC4+K)noMp~;OS%cXm z^Xwpaz9dGxORea=)n{q$9oQ~#-n-Y$Zf7qQIGm4`~;cY%#nbyOSZqhTgtg#vPSA6++jBJeGB?##1&ehpz2*g~@_x}-fE7-zQ~aBIohXdnOU+?ZHH z&&GHXCCyUjr~Ob-sor?1+2p3j*(bZY?U7**L3?u9S1mC704(%rZ4W9W!x@LbR>kMT zkW0l?Wf(dFyuT7dep3~ob78UX3ZG)XMo7{1I|7}#=%rlPk8hpWezHB`0mGx?k3jL_ z%59~&<0$$*N9w7X+i1doxukiY2byUyTlVLOgZJ%3F54_IuGo(^BS*JgjDc91+y_q< zu^btjuDMlmuLtr>4bUXnwfTLCHGg3Aq>K!)-0Fyi$P5 zLy7LU0B;_RVaF%zpL>+OptbeY)TZa*q?^6lmOqxDy{R)(aL!gjeN}Yd>ozh`%*Sln zs@C+1r(oC4YveNYf6a@vdVa6wFzjV*?-e*c0tV-^>2x{5(WJkcD_bwtv*{*Q>0j&& zMShQ`93oF+{W3{vEqf%e1>VTp_*IkR{FF4$A+=~*%%=v6WSMT-O~ET;)OkxO75YxT zlR2N?3W*%4#|O(tAkLCRE15hJ(OI4B_|Ss=A6YUwCO3~1qNn^{pCyT4dA6H!arDyG zHdy^}AZ_0ij$a^tx1gIbj`gQ2c}sW zR5)&sbXSw;zIMFcu)}Gq{V!|eFHjq3keP=PoftbVtBk;88uD#&IRZLI)r1v3*nn=% ztCIZWh>iYVuQc8J>WJmjKm9MxpTBfH0NWjB7JNd^?X`r6^QXQi03Kg(h5eCo1MJtE zy<#)m$7lgRub_rm$OM0JqiWJ}Kcw}b4XPdvZ~FY*_?mFFgDRh(eV>r=yj3fqe6zSK z{yY~KKJUVp>ulyO{dc_Go^IPwip(LH9rC%tXKV-gvtw?IJ8PlTJv;s*=>RwiGf$9ehR%A-~|>acwA ztIdM^wObjaZGHSz@#bIrze33>hNmu^6S^Bd1B&f2v+yI)WD2Gkx?P zoi;^!3a`zQ?)af0>X{eh{C?1{?cDGTLN@xlZGJtcH!KU%L*d4f1eRAT{~p&Day_e> zJyw8501-M@>Bfq{f# zR1!fuMW=oAhNTZ6z*7KWK%T!fG)u(}3cVIP1BYv%<7JW7{+ND{r1&EG(ZLhR)Vx-6 zUBUWy@Cp96iHDMr9bb=Eg(}|9Kl>Z~uXUW~mU}%jgU7w>VMbl1QwFN9d2V^k^}_)^ zXBPcm;b?h|q8C>E!Km<)zG3U*+VUb-wlaytlGnwg7s3? zy1>XX)k5IS-EoTK5&CN$%nUmcDuLq5fFSP*)|=*!CC_a!YlW`xK5w&~xF1gnHsh5j z{99V#NZC2xVtCAXGJm~)49v?+hvt0aAu2brSl*@)zK4$OtJUa(>+ExHJRgQb7-hxo zXeWGbY_y2JiHVd!-Ac!eb%%zHdKN*I<3)yzP?5MGCBuT_CC<3|)8#i}z2TR$!E*_h z26*CXzob(%2;?j;XO?{`p{%ztpKlrK&qoa^Rw6t*;mgUA`<1N!u)EP%Ek4o0d};(L ztTaN}H|&>pNZ%K&IF16xg(tehd!tcm+pqmvYPD$jyjf_XR})gSdm$@)x&(zQ1ldi| zV*KhG$s`GTU&SH|O{3EGaBS}|*(pT)Fs~Awcd?E?D~oZ#mey~NX6IpCSiOm;0=wH~ zDE98eF_Wu>sBehnv)*zP(0DlV1RlZir|qEvol_+OL^NVAB_wtcLm4@`J*M@6R*>MV>xvn59{;pOI1kd)w{iy zT(Mug=3Se!H%H#a?>9{($JpC2KFGhz9u1@S^!j6)rh9J{o(_h2Xx z;`jcM69FK4RJ5CmxeNvc0xq0lY=uHj;R^euwnc-R+Gzvj4!lBNtz|UfB%8Q+tu6YBjhr3csmP z?S`s^q;;|Vkp%ml@734P`nC^>-#QBz)u*DPf@YsjYqg+D+&ZO8Y<@2A z5B)~|1M9Ya)5c@aIalXnpx2qQMPm*?LXW;WPQlWS>O$+0( zF8(gMSc2M+T)^es0gscAAf@Qak3E&BJfkbcosrNlSi))_{9v*aolLxb=Y!oCG~On* zJ)#hYVuXdS@2RRrYrl+61*;*H`9Wh^aJs z8+Mj`F71syP5(zc!rw)<(Eq7i@#ggf%Fvq5(+wpA?Z;gvzrJH7jGyQbBr^QYiQ}cY zxBd>TdPtZ*@bB`f&P{F49YXzsO3Tl3j0fAbg#)u*Nvl?Gdid{W+vMuqgi#LKidE>l&A&7)~VjT*}V?n8I8hHM8>Eq$_J^R|ERNwNbyrdM0Q zyDQGG-xk}~&YSVOkjrDf>$d0Nw#$dgpaLo{KCteAxc;Noa}Qe4;oJSD9#1g8CtZ3@ zO1^&x9-fV_&6LGqWQgO?ILxvJa<#Be&7t_Kz9PdFdDI-AQo(Uy^LBhP zrbBy|_m>0X-Yp|}ngXcu{(iHw5*ldrL_zE8crEnP=!HQDX&h|bvo@_|&a<%|R}*a* z?LQ_#6LCIi?5ZGGG;1H++O7#~2f|9{r>|_Z4-%7hp!Kis-V?(kE?@4SY8KOdt|p9{M}^IQ3EI>E^C zLsqh(Y2dGEwxabo1t>IDx}R;mgk06cTNupg1tv3P#Dne= zYu6v5mr#B5;*e+#?swi}weOL`dGxKnq%3Ro0+xG}*X;_!Lc#g=*3iy8zKwocv~w1B zm*IZBA2H21=!HUf>``{H?Xj?M@_Fy?pA^WS)yb3blmH62H}!?OR~)4?iG6ZiZ~(!{ zYC3tp9UI@v{m9O@z#RbZBK9$q2T*L(Q&NrX{V4}XfL}mW>pjljr<&JY@?JWG&++($ zwY`%Z=v6HT*+PUkx;wtD^~Tm<5Er;G@-?aDKlk!@A5jD=rvqG@z*!8>pF&E`nZ7m>w!aow2dYj{51l=K z6p5%UIIhbm07(;l_V9j;^ULS-P~!EJGTe_kE7aa_Zlj*`&$#vz?@;K$cDkpAFD2Fm zj$l2&g5p-);oa!6jpm^cH#Ri+$$pf&K?H>3IHl58gf`k;4;=b>@ZLcb%avDuApF1O z!9Rs*{e3~r4mkpPs65fa6@Bk4p1 zwF2&=_VG~qOg4aWRRt2dgvCDW^?@N%v+b4L5y125wByzwQS>0CRgtI((>wA-Aqw{= zl1O&im$knH^QAxg`|MxqC|GZK=;8z(x44y5#a9_;IQ%+7Q_Ls~76xWQl&%~>oX%W# zersafOX^NWF7ut9@T(?kt8@hW#`i*5&U#)=-uyauozb)D^gTn+K9iW#!04zlA$|YX zy7H=*k^HD2%#ZnZ88IHJCs!09Xm|a{VK(AyjNALGrR;~PS3GnPNtM*)r~u!~?t?ey z??Szl{(&7?5sC7=FL_l8e<3;+_pTHVEK6EA~p3ch~OU1yuN)<;qE%rxj2CKFqTf$K!X>&+5L3 zasoDuOAnfteIPuZXnOpyBfS63QT|o~+YQebTpRgv*bg}RUVi!9j^oK+f3{#^2*JOP z&XnXE%h>@jkwzh3MjS})3LbGi=L#ps+nQC20wFi2u=?9r6a2{~b7pk}CEVram5 zcvg=L&W;Saz`hq%{gTnx-_sWr=a%@wAMS1DGvZ&dyL_v(TS_Un8gd;uQ5|Jh2i9ph_~jE%+?(kmf;x%VxO1C|^0Kl>`)a&N~teAiORuU2fm zg*-+a6L#-*M62^OW$fzqs3?4F4`W6G#01cL2e(@z8AVabOSE2S$N8NHk577|v8H5B z3Fo`WO^t}CjuC%fIfr*Y@qj0~a;HJwYZ$-h@>G4#x;|R~s{BdBWm;!MesdD5{CCjg5s3}=`k-vZs1t&$AWQD*9EeJ zR#tHyb1F@JO6Xe?Pn?6QQo6|=0jN7-WVJ>!P+ zR$`6rn;t)_e0-AoR15?MbqhcDy$L;MmkaYt++eb2R-uc>A7a{f=QkDXK`jFc0?83r zUX7A}+6%Pj!G6Eta)a)bjr#XD3yE{Sxi^W(=LNcxG{)f$G#mA~-{4BqDNL_8(_{8O zS@HyT3rYL#Ay@EsG8jjv0wBbzHFEbMBV_DAQ_Ay6Yhye;yx&@oQ~>b(GOu8%^+ZI? zBHvoPLJ{pq!L^jEDD*kw;nTwhEa0S1&ncTx>~AuGfz}jeS74qN6BXCT_SH_st zYx7`Sw-YktcTFJPj&ai-Ym;(iQJ+K^qPE46`$2Y%XZuVyDi>Bfdy+?KacTV<9N( z8%55fmkFwnc6^n!gz=&ksLW<-gzV8VrVF9Zs`2@@-(O06rTZSb{($y555n`W?^PBT zSjTxx7C$59baQ+V(PQ0{M9(}?U>=IzMPh==5 zPtWsdL?4cuvN(QFui}FTl5kV-`>#&Jmhu&M2j%cO+_2lr^-(Dh`Rj}-x|LzSN7a(b z4(TXgV2xC53A)Xr%Z{uv0Fk zkNMpDHJ3XAK$P0(h3z`d+vB+;O|(3Szc(<;Jipb|9#)8t-)QH#2J+OcUDwI}qHE5t z{ZTwb~WE)0AzaofnIqTFHlomBT(fl!LQVBJ@UQ|qX zSMo&yK{_e^j7j6Ajee?kcl+P&$8t+4PaSWM-9h3U#QEt(>L+3ZGO^rpx8T0&(hEO$0=*AF#1(Q?@9kt84uE0r zAHGleolx3divFmbIKRb`+@q4x_8uf`r;d(45sIR^Ovb7XnPEA5tmVGu>u}iO`MJcK zEd~zqeLnX?$q^*UZq+PO4nqI>Yc_4CTvWsy9Nsw84?K~1gJ*4@4_!pHh z9$DxFUB;yD=h^NkrZEXn|< z!^r)?sWfoi^3mMsu?MoU7JB_WZD7;)z?(sQ>6d;#Jn3ovnz5{gn4RXU40wVON3xtw z@ViKqWB#!H;g(tul|E@hU4n6No)sx*4rR1Jy|oK{tbi8eSs#Hm#|TKiCYW)CIbox{ zn|}Kb-6s5QTlPKeSE(=T(2EKG$oylin;vId-RW9OBf>c9G8?ZSR9Y=SW3BGUxEKb3 zPgM)v1hxQi(AQfd?-0xjix1GrW}?G%UvEEH!THGSVwbmA1;inR+vc=~^e|oAuCHjA zTGs=y?(MRn`3k5^DuOP*)CW0VJ${m#*9YCbZ#pNhpA3%i=kG*FV1Mw^R!gnNdXZq# zNh;LkhvQ+k$G^Bh-0X{nT1EBY`sVXoyh~)G-^&omwv^f$vZ-^5Z1>c5)2+wH4)d^T+J&a&CR0QhBWxd(z0cUS z*UbYdz5jY;W(L#4)Jpor3w&j8&3?B0Ln_WIZ2Kg7yW}4BAM0N8u|D434GO180y!4K zAt)+%l%%5^E(JMUXxDB4))vM1h&O(yu|=Na({!8 z7V^s=XjzOyh6%@C@eeCo%AUl2h(zw#-Tq=_aIo3&{ae|3Sf;MNyFcO>dQ6wsO8v|n zMWKeoN-rnG=^mo1kQoaSeDvj4EH7+)uS;V)|M}(;NW5JsZ+q_QMt#6A)9I(DosiYQ z&6fkrm`|4K-A~a**nWOZ=z5Yju>s2K3$?4-?~0<5tf!YQmcuWhs^B9c0uW4eXqdR) z8lGpI+owkAxzYc39gCzMW2`Uy>Hj5@slm}??038;H5qkL^g4W&zt=&I&V}g` z`eUzi1s%QbbaP`|H)I@4_Vw8OXMcChXO3owm4jB6iKc>&34Ar)NgHI90|^?^8YLI1 z{^DB!O~;D^ka2y~^92bU_jzP^y3=+b3Pnp@_|aQ|^%slIy3cyAtH3sXIWOA}=XK3! zUp~|Z!xL%HiSX)hV*aa@Xl_Tg+ynyDT15`` z*^#n#w?(z8C6cPFRKMWshyqwgPCNX*3tc^UR)<= z_wPb&L`vTxWlzvv*Gz%>QUQ$Hj~-lYw^kXF=th zN?~n1n*WYBP>HAf{=tV(uLv{b*DJY?zgJ%n*c_?R3<^bT z*(d2tAodbj7V%UzXdQ54e)#%6P|bdQ5ctj-6=}%^ie_QE77y76#$q*BbV%>n;jg7$ z1ouep@ALYn{?9u9`CU2mNS^g@6)1Fsx}*aV`Bb1^zE@joy=z6+A6C{f9rG%dMfH1}0#H5J~xc1C~C#E0_Xl_A;Tu1h!$efL@JnU9wiAFf!M>VP-84LiL}GmdYv znPj0OLHSTv!U#u}@55}yd&H@ipM<3EP>SB4 z`A1$C%gLpr31KK5bI~JIG*$INISW9+L{4@yjH#TaTzbvgP0^zDbvw2kB{o6y6MPF zTk~#y)?fdI&{{10!gkk^NP*Cnur&1gnvR@A0k*fDAvo+HUt~+YhmMqG-I4w7iQ?rQD&E+;quNRD6frLc$UAdWR)2voPxpV7 z_aj7~eC-JHiQG{1xr`)2oQ;Ti8OSYf{kQ)}F^pG(<}IN-Ok%j2@VWmV zI1?$wwTm|i`~6?##hdR{bOH6?_HB{naK0NT3@;bT{&gR=e-60EdZrM5oN%OT{bG)m z=3giAreXQZo11e-$%+_CvPufM$%f<5?sGisT<}Q&v1kX0tJ^S6>*I55ksl7>d)9sO zc5^s!3TV-FD3?Aj1BRQ8T`SgiV4?ZBj}ay27gwImncg7I272*BJET3a{%;|DwPj5R z$H!i^JyFgvl?A0q4|liUPJ>nRRSSWT5_mTyQog(V9^%;JCn+udk37PI6}&GPN@0|( zeAf z^L3%_Sf9HSuGP5kISr|N(fmzRi1&TFbx`p6H5^ZM(c|^q=d6XOJ%p`($RrF2l>{GR z%S=N7H@+AviWCEd!ws@=HjL|HAfgVex8Bep=loZ0L69G^E;(m1w1 z3l%sqdRT48=j-vc+o5{II3L4AbKpZwQ#ztCjpK86{!8Ax^TbSz&j z#_~mq)7K7S&A|Wc?`pV$^sAeN1no{L?Rl_|9qTLRJzIjLNeJIt_+N!tfh}w;@PEf0 zQCuUs&@od9J0z)G#``^iHf@?FHaicf3+Pp{-&F$ZYg*|_&K&eRc#wAaG^R6_<;@>o zhgG5-j4Fmg{&*c!ga^<1HkN>5HYc-71;%YKlYSBEE{NynsB7|EDlZlClHE^r9WR4J z4K|Pa+%u7vkMVnUVN5sdgwVX(iwX#%*+=c8jPKQMXXU9^U$DOBbH$1&?m`lr9XV`e zlkX4Oypd%2x3WMfs!Su#I0Ci3o#`-tjqR3C`i4%QtxkiTK^FA$AInkM8RETaVOals za_jVB?vW07o6^Sf@?$Vm@1YscxK#?}t%KX~0*7%u_OE$UyrrLo?maQV47*A=V}ZzJ!uFXJzS$J-`q_}FTI zYW?H6$49bIQs>A0wn;ee!P+qWa+G!j@V=?*R-D3gBuBo$RPHFoA9=uB@@K{y`OEmlyV=AGgjtM z4in~I@bktkynNIKuMAed3eZGA^8-!+t(sQgYn7-xq}>W8%BNF98q-njt`P(FEF3pd zBcpoefk`ZqB%xO3d4~Nlp=92(#&Lb{uJDC;R_Yl={>*|M+^PaJINCu$PFPsx@ z+tML6P`Q2Y4s72vC0i>BAc}|J_o{(Z>{x!2u{`)(do~d5Dy-8N{?@(H^rtXbcoGcD@+_R?how^kud|SgR!MefKsvMb9f1{W=KA z9$TYrFvWVoGoL-6wR9Je)&z+r@5Ay0nGNULp{xoJElvKw#e#9nRN0dCPVE@n^gPNL ztXTOu2=R!@NiR+unI*J4#qG`6Vj7L(7;Y~Q1n&3hhs@YS$8GcBFs>jqS!&q|7M1%4 z#yDCbal3c1x``jkTNR(R`3J6L*9*@v`Bo1^YNWaMbO`1*KP}sy`XrUZ6K?}EUQQf8 z@IAw?0$sv%LWjjnqnEx97HeOgl^uzM9U@!iNc1Yfc*^9_Ju(EWW8Z38TYZtDe8JP& zGx%IR%IWP_W(hzGHgT#qc458viBx}$sb~d6l|FF_3c~*25F+0*GLe-V?c68$b}H?@MY9-3^{NDI|Mwfjg*<8CE(MR&f+UMJ_eo!@Y@K(79Zs+M8STPV_fQs$}el`Jn zWVx@&%G0P4Bn_3W=r#$0+pEEa`~?T7X6N?t;0xI3KSgrg=1T{*WB=*DTt9R8H!GfB z09V?bT`w)6^}Lx!uq0mp(}#Q+c^0tTc%&`(uRC)SCM0i#r?Z7YHECm08s#Ol)wGj4 zi?wRg=PxCU-3U1wPUXtFyD*lBh6LVng;Lbt}w+&SAl@pASI266C$d+ zVJ|d>$4y+}#U_2N1uolV`ZH8>pzn1xr1OTh$h>ju?v?FcXnxJkTkT5#cvWxTmFS-gfXSAPse`@9W=KWqsEH?LrCZT8S| z6~HndyT<;L^^i(87Ah9tfQD1-@320^^sY8$*T_!rMzzf1)bzC2PV{GgQ~tG%zxlQ- zY+b{8xu?C#y5#dTP$=LY3TSi+oRR(NWyw9=sGM)4w~V8 z%~8Ka)S%zK>2;0@rO%sb_a|sCdErp$*Z(8_^WW<#UAE%(ME$?>C;MF7^kttA#xs=k zcN~()$Mk~V!9=Z*rwz`JsxJ3Ex(<0aZFic>ehe14p4HEX|7?Nzk z@kD;J1DE`z?;tXRst+zv!36h65<_=;@V# z>&W@CrnYY=jyFuDn0MF_kpuE)Cj_5WV)~kp?AMVkhWA_P(6GY+rdB98Qc7oW*bCMo zTpE@+vLTDtIptDwIXD;vKKEWsg1(FwOF2gP-g~GLYoneLa5ByHI}wfLAB(Paz%ipLSjyGfo?92R*fIVlQh(GBAHyY8dV<2GP%rS9xpGAS&MWZO$G%-(Cv0 zopr{g5My-U;l>rjK4utuCBm6Xws~EFRuIV{&Nv_%2Ci51vb$cF z!r&{*+N_2;IQ)Y{y_vxkZtuF?vf7UI$g9Rva^zGgK)qG;g!UHP&rU7zXQ@|Exmv0V#;xs$|wreunWKt*;DM!;u zawi-O(@@4>XsG%C#vN{k=fj6rLlK?nT+7Kb*lt1h9t=$9v(c;RkORYeFfP0CUca7K z{y5J}-9pXCy(9xQHSCBy`8o}yxO0_>Uv~ob{N6X2y%K2YYkD z$=>^ACi;4|Gd3U>`&nvV){cCr#qt*kw*|1OOrDZJ)(|Hu0d%~6t1;t1^sCbPOhHY@nvDLNy)`;7l>pU5h^ zAb5m|P#&Jmrbu;S$NA~@g}&zlSn@VKey6i>zsp2gAWm4r{q#={C|akYF)B=lXlup+ zZuwFuk``Zcv%i5fETKlw6~|+7X}n-Da8L!wve{g_Hf-PZ%NSLf=t+ab^jwV+M(l6; z#@f;J&I8-SvQPDdJ9nmmn|1h1KB|PZZVk7iEI#0^qha12j`>sC$y?_R)aHVl$$FD> z3eIas>9tIxyEWXF`s(UE{(@RiE#ShyyI?Ok!B1>x?_~84>==4C8?p+xYXNY69cvFs4 z%-Q>ha&sW0<=`+_VBCoQaw58)DH(`=?e;Mae|)|?*2CvtIah78<09%5X8Br*-saps zxLYa;nbcQmq+ZWLXUkQEHHXUKoP9bk%S#+5czD6;!eT}udMdRpL;tlIzK_*Zl$(d3 z5A|w&Y;SW>M6_JdvA$xow^H+T8Hp!SDdJ^yaL0D-?5*d1?YE3ZOe-^=-a2A^@PLd? zd-qT-8hbynbZZ>@&9xsluJU_f|IE_<&*~$zxoC&G(f+-hX{hYu?cI)PKFGRoi1Mc< zKF4pKJWNVd$U)b<*i(z^u-~_>qJ{34C$yvom)wn&KcsmP85TR2o*(-N;=yXpI~+el|d=rEzaYR+Y-a^zAa zL49ZUHQH@tnC~-Fb4VzCB=q|7;%@b*{aXyB3s>RLfM}^@e;)CS|)*h46sB>EKPu8rYMywd$=<9=be}4}~}I z{@Y$?Wm%xEMn3Ix-}vrhd-2&6M*8C)%fL-=MPu;;_TQP$NbkvH!}H@6sf-EhNe7mY z=^sgx6%adQ^>!d78?B`_t1@$9fA6#6PGb9^`(VRhePDJQz6V+^q(qfXc>S#mtl~>i z8W_q3M;0cBLc;UhcDc$t*g?zd>6sOSa)Y(M98^=>_6*6^e zL2LW5Tt9K$;Y&vk@ooA zgY&;9l5#W)k%w14b@U>Zhm_||JV_regA|I7dBZm_pU#+*jCsU@?F>y@o}~QLErCyG z!*{fF*28t;S&qttY}Cki=r!XIUjK8i+v#2R+y_qHn|=Zk7@yFlsot}@6vqur9~DY| zmrxF?=WOCfD6=5L%HBdbw-RDCU1bdWGf?S!zwOpJINyV4T9NzZjWW2yS^i+DuLhN` zMLByK;CDvWO#1us)tX@2wNL5XnJsYfKx@Q|eK5RKeUm?uUIE{U#C z7mD6jCqT-V1>N3WDM~%sgQ;9Pp6-Ne7ZS;c?id(gt}gu;zcTjX(-!6LE{z!qBR~`7J-G{D5Js zcar}S#vT5za^hwQ@7jYl#JHE^dJ{4PvfI7R2{AE{Lf(){PMZR%sSkGz_LrkmH|xy% zr*XWjsFrV=r+6(2SgRWps6K;^c-FsaS@A+q1Er+%Q-K@p9kWwEu7_ax&TX;M#7o5m zQl7tSRadOp^f;NRzn-mFDkW&Yr1?0d*R>jzC#DOitN5eW%4~6BQME`qVeaVbk{Wd7 znYpswo>E|T6?sni73T*jt*ae5Mw|)NC9{J&a9&QH_VmJo`+T)Rln!m z#B`haecK?@RLiF4VV24oAg>ib(4JhawK!!f;X9o7(pYR{zhb^y|11CKmm4j}^(x8h zNo8Mj@xzgB=7)dHr*Zk)4!$ZRTw*aBLmmYNS6X#a%-uG=cje83wRxc*Twg2N*3gIf z=EzLN+hoW^#aUi_sZBVZQ7Pw{i0of_$DiMFbeG!we{FEE5Mg{7tWmbt1m4M^RB?+Ep_Hc}y)`5K83mBj2 zt#RK8M`udfeMdC$d!L4EZ9$9&b5P+;3pML({C?!!-T?9^H@#uv(*D`fIgEqnaC^Xy zGz0sAFOuG#y{>2q>O^qYGx9E2EB^lfSo`j1uD?J2LNXf4Dw2puC@CwsR)n%wN=A0} z-g{>6Eqm{ktZQXPMUki|(Lhml>GwJ3OSj|o>!{!PJ^ypv_v`NGeLf%eIaW@1<-%;$ z8wyhI>0$Wchj-6fYQr(^=LdJ2TmEXFX#L(-V>PsYHrv0bLDZKYgXZN%w~n!A81*_gPF7Uj*1sXg$; zC9o8h^>`oZTSRhHJE^9+sS|qt;HUqfI+_s$S8wQ-?Tspc(R}J9QsH;NzU1)!EJGAe zHm2nEc;A;Qm{Oma%D}<~&f@mJS7oyXxtdgO_aATvCxn=|MxZ0iB;&Ab`_1oDS)U&EpYPwoTag`9SEo( z+zkRPVG(3Xq&$Mo`A>ovjUT~|U}f$C%_ql%9bXz%6qv7~bpO>zfdi1;I_&JYP!4EsAR)=qDKvDCdyp5tiM9rIEo*!;{}=k>JV3Fl>tqHWt7{^1;Inq-QpSI4CPVy7bd zUT0%d=9%P5$ive)5nXW;#!yWbbN2*aV3**tj6+h%C)i3M<=E~`>6 z)cRF#6n}bcmOTj;D0A`!d!p~{%PSZWbVl*G&qXH2*|1c?m?QpUXSr-)@2kqf0Jdmo z;`Ju*@~Je)s{i?tl$Z~EJ9?8xmlp9?vAxP~%_S3IZ@#x#mJW&od!%#Ed1>7kNTH|Q ztDlMPpQMg@^8#9wuVvoRQ#_C+6f%cB2tDeT1oLBG{xqQsg;7_^BdmPUJL<;;1&{2? zWJvTq^i>lt`n{0Ns!{x*{22Ys>=M2lC_ha@{y2fqZi~3bBax9Xgh&~e@ zlMkU26-M^8hd;jZ=`BL{)EKES`P-QEU-^KpY{b*l{huE?*s$9KFaC#b0^4!3lS?bU z0C+C7SL{VNS7ulTG4)+55P7If#C8_px{UUR^&O(3z&T}>=6GN94x4Ol5T0`c$(2d9 zpViGdBEbMh*fUR(P(XhSFW6+t3_kSMeXo#+_>tw~D?NQe^59le)`8nbsN6X0)Re(F z)GqtcnN$fDAK>-K=;ED)I{;^v{&2A59pL%%W_ibaDV$(Vrf6ZZ2kFZ1L=SUE05`Y9 zPiC(oz)5B8^I4-|pnc3|kKzL2BcE$XM#zQ30gK1buA5`FzpdxDq*$$Zz&V;jbSM?Q zxB1T9cM9-8IAv0OdA}yv9WdE0_e{*(3HS-H9&0>*8=PEnCmHHM^4zc^t5DXNNWk1i zaljOF=>J&Q$Lm)RDbGp7p6_UR!3ShuN zd~`c{#Pqqli4*G&a4`o+@`q#ntaMuEkG_gU^6vh3?L~Wo1GjB&W$3MN>UnJ5?XYt} zX@>*Qx#PL7#&Ayn+wPypPU`C5@_*x%%sGBn%+nSgCbPDDN*Dt<1O`X#8`9yeUU)+D zz6*F9#Ohi25XD`OJlo7W`O*#y-M!$@7K!+K_RW2-o>RuariF>w`J~&w*72y;Deh=l zB$u4S^GOhtih@TZGs0L-=D@V?Yh1=jDv{#B^?rRX z`*PC4)nx!%jP|!v~`K7y~LX{cN^SpSTzKK1M(zuaaF@xmbSM?No zhn6y7_Slu@^z4Bkma(R&e?A9THyF2Moh}8+>NIBp9>&4%YnFi#~XotHXnE>n{95=da=?fwZ}J!K}7ua6VJ>hDU%EIIho?85)G{3z|$~ zT?*F(@HzdPP|k015sCTy$O5;OUtd=!=4l5FdQ}%iPh#_>{E6!KJn0V}#O58d3w}e6tCfW*e_8sj z`O7+rbN2n9=5+@a?7RC``miQO%5oH&7np!N;DD$P;sXqmE70f8pYxz?r6H2*UE!YC z{Fa+kTWJz3pqK~07E|mQ(EAkJf9D zB+8T0s}x+mO}P8%EYiOSUwBid6y-z5pLExEN1=P`pverA-?zsS*jltb8qC=FNt5MS}c>P2m9VoTI@GB6Y-Hp7Ak(U70ZEkrJ6NQ4#nE zyRNnEN9S+yhFz58bOod~T=}NpRRz@^+prve>oMhSF%!h2rPFsE%*@S!HHYaBUh-pz=wuQtqks2!0{lW+FHNq0Dc>|CG!^CGO_uPUh_yLn4r5-c;X52GkjyVPcH0L1F(!630}pN_ zCyA;hgN8RzFN(@x|JopOAgR zz~<5bdJJceDn|qZ+tc!01lsjLyV566xV#Qft!Hb2z8EOBJV5fq7TFu0dFgZF_O4Jk zk@|7w6a~_YL;6K~T-VzG4^{l06b=PweOvnxjz|bpCF3I!2?&N%2lO7F{FDtA7I!!E znL|M6v^82n^gOP3--{PvD!x70npzxP|8Th1q1EYHH!zfY-j`O^f}pZ%!B z<v4`5S!N8A;$xZe{9hmtM;G%h<4&2zlIdu)c5XtRB_C=dG zXF^DB^CPO?{AA7wDL*eQ05-L_IL~B|oie_BPy(YGdY3WbYMSHmX#?T~T7mX~VSxJl z#K*qM67V%TR;GTv<`>Rs9$-^I>x$Z?-M~5DESkJfA42ky#n6NI%_K!2Pt@jG?l6+$ zmrrtaSKFfZuN#D9?#WSwppEgFy7HA8@F$!x;rTOv*_HO(=?$Ebaq@vrFkUIBJ)bRT zXDhyI_C^nURnzZ0BAs$zY_=kYX9EZU`ch^-||Opw0|$)dJT;^n%BOA>JzGU z7NBl#YZ1smenwgxb`#CFk=|EGOr0Kj-yE1c2*dl-83Gh5`Iz_{uECYEhu7Y0?IfqdgU%ur@F-u*V%f`{K@Qn~3}+CphlQF;WJ@n{6r2`}L4KJTHsaKJu*` zoZzmDsC|g!(Fz;a4}0FDb0gYH$JDti9uPRSH14=m23{soc4QDZLZblfAO6+Ies}u( zj_Z|gYJs9lg4Kv08^k@GcY)xL4U9TbXkDh}0c%KisEN~r0gYFCKLx0{{A%yP*?W$( ziU}a@a-5Q79@6`cZ}dy-`Oy->S;SAq%5HyL!A1J#&jwqexioDkanweVy~_axrS+(( z())o|itPpz1nB&wcjx6>zjcDqHlFxmU+VvQegA~R#r^?@vy{I^quhqxRTUo|V4a}f z-mbI%4>+80Sf_XS{aWxTYk8sDMHgr?r;W9ZhaT3QwtHAq_-8X&a&0&r1I^mHD zggZq2Y@0al=nQd$Zi`fABK>A_eaE-V;}!LQh}%`@{niXGlD$JM5tzCi%7Am_Ah?$U z;7AxiohjAtH=EIZ*Oe~3HY}L|Ds&XR9%!KNc{)Cu|2p{h@c}f;yIcishhXYAjlG@U zO^3DX+&ZrcBD31$-rM_+y_>>ix4w$aW2980WZCA3zNZnFFKH1{50>Ni$R``z0{Sv! z_wSs|03l{ad~v(W0nP@_nWAh~v=oYP^_LqsCkwTf6)#>e<{a&8{NH}vEZ>~x&A&~9 z_b$@}m4n&U`SDruGGMcTbM7T*ORQ=_xXw4Cks`V$X`t3d;-2AdWGDKm)?zf35a|WN zL8M;xUbVn-<#^dzyc@dQS>qGJm-(ItTU@o-J%)g6FCw+|rcu$z8+Lv;{ z2jNqhG+~Kgn0CB5ip()-h^j_J~>$hKFqeL%ZNJxzgXfE0SU-H;)G5(1NZwl zu=KQdufrm0C-=eI9M+#XApW^g>Y*LTuG754ZAvf;`KM$Ngzq2`%>l~l&384pE5S77 z4!Yd%1h7KxzEivzy&Dhuh%%MZ6@l@=_`Jbdgu8W#T{vhei0nkUfu04wNsA1R!HwPcCgYb;zoH$?g=!?M=+(r2QnR_)dDF{oA}!f!+Vy1GmZTyuN8X7yJC6a z!r34T7^h>fY;gwRyC!$vi+t`W`1N`B2Y@>{RmiJLmc4rN9Z= z6g}ZSly{_ffL{dnV>Uc%C}!Ax8`Xbyy>zAd43Z}c)iTd^F-60g{MUj%G<@NOSZ)0` zPiY#Fgs}Kba-GR42BF zEEb++ueq$@8jsS8+$u|O;6hrn*6QE;t&?%cy?ecel^=A{WN299a zGYIaVi+@Iy43uV16C4-I12`w%ebVo`0Zj*e7JLNIJ7}kpM2qlb(HCUjl}9`i7W#x`Gls&e}eE zgfAX`pf7h$Is<%sY?`~gQv=DX(#xOKTG6;0BZw)27&8Fv=WvrdMX7-C;)$mNokgI9 z)K#3>KL8#jHw=~?K<`Zh_a6}8c{2V7mmT)M$6i@joz683CStfPdt%A{Xb^C%Y zhJpHN)e(DL^zQwfcsv&OKfcX(=E}frC3J4+MNjl)wB$mH)u*&X8VJA0V*QjBK9Brs zpMH%FJbJDGay#LerCch4Pp{U_8)~Ejb44wZYfpcRbEar|ZlpE^x-2;4l`W(BEv;@D zs*6D1qhRLI4LF?#WzRX(Ix|TNCc^L=Rz!yEWRk&P5(PrG9B}QPO7UCf9HCxx|r0c@*g_1j5I7CU2*})D`%} z@rePf6y!)|5VC=r<2J(;PPNKG_gdquq?bDJZAcJy`B{aO8F-xlawyoa_LzSnl4Hdj z$C$C_b+xY0W;!1m=PJcET5e7q*=>Z3mCR~^?d>`%_xC$pWWeSV6CYwApNU8K@jdGT z>C!N)o#~(G>6eem>=}RdTeo|hSxq8a0i-AZ?ZkjP2;Sqbs%@MDWCJ1_b~si5sz^T7 ztgjjHlOd;Hu_-!#ueEh=I~J8gf&GPH3Iph##E&}^q}EdaPSsz`RNaqoQ0>=;?%y3l zcxCKxmAfu=G7yj{<&It`0sEEbTeY92!?~-XsnjRY{alRu(c|i585lfW$&tAq<=u1U zdzQiMgY>=&dz8i6ekK6!G^L3Pwt+yev3-AXZzi}BuF}{_9|b9K#s~D2Q9QT)$CQoJ z*{MLY^n&gM#&Vd;5=Znj4%s(amfxlDz1ap{o?>~r@G=m{Ta4qrN+|^9BxgbmUsMBk zQwJ)mj%b+meh-uUG1T8ZN=!$VoU&mw>##m)IFiFImya8>FXe+6%8<`w2hjZ&-^KR! z{te`ZQ`D)lmH~3XIh`Tg+iO)IC0IfvAt@aeybgM@Xn^jQINSaof&b~f!gWgug+CD= z!F9)5Oms&2%;Yg8mQ!5?Aah|x#cm}P>BBv_q;siQh@5P5$ zm=^QFSU2lxeNqKnFW-MQCl1*iSxY&{TxPrvQv8NVWhd%Dx!}s)r;7o=_0yf2H~FQY zKcAMw)B-YH9XO{!qZ*~>pvykJA;iZ5V6Fzoile?He+=@E;qTjW7`%s5^?j}WqadlOT> zwOs}tTuny>t8M3D-fo&5CxIIjN}dlJEH($dGf9DO54nQPdDz;I&3V|`kAR-Fmwi8U zz}9{kviIVR$RfJ~g=aILjM7{{yNuE9>3DZwBK)zO^O6)C!EKK;VZe@eJ6gy6esa_l zyWaEpE7#a4u=x#IT<*@mRdoIueQ4xPUdGPnR_a?D?~*hy`RD$*Q6Hz#5SGU5hf@Q@ zeVjj)Fy(>nMls>MM!(t_wd`IPPv1TcW?6Y!U!9;Jrryz4qPVrf46rgcZPvNj5XL$# z7o-kY!3Z-33tJN}u(f|*tY-IIi3``5fNZ(I8pZgb|yf+Vu@@+&Cgvm&v8np$E` zDN)97QtTO5nVkdJ+CL5V!(8T`X0V9sbg^N8;Xlvo(MK)gt+jTT->uzvFT6*}6H^|w zrJtV5A`>^)w!io4BMuy9xM7B=XHMGj{N5U}3n6aP-d&=_1O~l(H2jX4fy%yydNOk|2;GaD^K1B2-3(z=Iz-`+~C zW07CIfEuP=ZvSnnnQRoVJC&Dq_mKqKZNK-oG;QDcS_@#mcj|D_=qo%!OgUb<=6m~k zwEx)zyEr;8Zht>?YRVnW)ECFpqtLaxc9IF{tvwpgo`j5ozaHP%$k~R%gmb_($m_EV zhbg!zhzHXj*#Yw(Q}H-gwZM`o&70CuwE)Q{@;k@wYE0^Z z8~f<*bWb3^8cPBVODUiI09l}kE@Kfb@oirOi5+(+`(On=++L&&Ht zudj#YS8P^HLgyP%o>l4|+`b_E?Z3B4nFhH<@2vFx`TSlaNp{E-!}-CH648n~L z(EEQr--mQ@+=QNbVSfLuYW>UsfVEpB!7n<_^bO_blyARyJt&@L+xCxzyY|S>=wRx} zHuV7>LF9jYjqF0DMYi@|ucKt_x5Ir^a(`@pa46bJ#p*o-fCfW9@7yF_8$z9t&Ed&_Hxyq2wy;K2S=PgAk3rU%UmjhtX_pvM_EDv_vz(x+*PHJ zR_<2P?vYB(VBU{VNU zDueIIF7U?i7{DlnB<5E)gCV={Otx)#ApE%!tAj)A3V5^|DoqEl`Q!gYgHqOn{C7*> z=eHGPLO&!xWTcwir3fzo*1ed@tUSSGJUWxt9ZAs3>iSBHAHqwrOihl32`0k9;$gKH z4TA6`zsB%WTn~6gYrI_kLg26Zt&e045{{!dCPWqYOjC-iL1xpi(c)yrU-xs@`_FMd zj$`e&U(efKV`oo;25ILd)>W+G?NGjS`?O3*6S?luXOIEcavaY+kB$e6beF%IMIgJE z1cAj>dx2me%B(xgvWV4Q`#4h9(}mu zXk`#QOe2|RoR4t4;D$F;ds2Mh`(Qt>v$*K}lq;w-OyrV35Nh?&`~?1fU2g2=YrkWU zwX>MITP|NGV^2y`v6h3 zoV}7x$Sy!W$MTydp(`LgF-B2y4B2lh;i;br&5wq;iRbTG*r4$|S?xL89*m7Q@F#K> zYosCY!us!=(cs@vt&Wu!Xp0Zt9HjW|9GjlC<%@rR<-q&J!X1ih0U~;p}PTAH*xBI<7Vx z0ee}CXYX}H!*=yghj{H7z!j12TzV|pfFw%o!U1UoFsg9zNP(>roGYv6V(drwTk235 z&KkEnY|N6$Y@b4W|E>j5cFg75z(KmiI-~~4Ny9v^Uw5w{9PJZRVwQS@GFW`+OwrC@ z0X;pd!%posf;U3L1}U_t;dQ*E3q||2py>s#DVc1GU+rJyABfR>j_d_D+ouq&3mo|^ ze!@%65)UnYHAob=Hl#Oz?z?rfRujEYgf}RuP_6S;D#0rR(@)|_&7tqrvdY+INmyR3 zFXEzyjnnuiYPmA-AT`zzQ-5XY)Ue?htXxYVBE-TKg!C8{lFy3Idbam-r>ig;GP>Xg zqtu>-tnQP7$Et3Y+?u)rKX{9ULE%VvqmFo%na2$jsi$0>i$ZzsVn2)K$u-Hs1C`&R z6FAZM>og==Qf=d4W>ANL7YEW4*hZ(D59~(!iuPKQgwUWn+@+$Xk|*E~74>xLee-Of zRb`=vy^QRydX*RGjU)zw;Y>#JWH=oiNdErXj>*6rbWK_B@)~sjI($uig1hV>Go`(t z(sOj*dd1YQi}bj_ciGlDz9J|NY5GRLL?z#*C)`2)FmD?Cq9*at?`KveTrbjUf@YS( z!YLna1I<$X)MJ7-V75T>4X1M`FS%h?WpZ`9Cg=#=d1f6a`LEaaIdOQo`5YEUdV7A~ z{_IHXds~T5>a3O!dN;?P~!Q>D>4^d;JPOi{%PUd}V+ zJbDRzkI@M4nU+7+&+1QfF`mcpLcS%Ye#+H}(oYLmKE8Ecukig;-sP0AZF@BnZj?It z*!R`5tCI;cC5T^e?34GlN=$`5_;F{C8c4uhy-tJQO#Z%m{CqlK%E?Z-XD&7w1cd*`u5wFU|hiIVyj6JH}lt0nZMOI?>!| z{($aLbLr#i#s~ah(L$tnb_c@aW*(g_=j24~US7CXK(A~E9glbho~De4o=$D-geNWF zSg?`ZKz$h0=5mnV>mCQcadzR0r04*KS+Mkt=C^r$>2%OO)foCF@OWqSBfk9ZO2Y_# zRxr$X7BVx-gYYED#K!x=yO8~$V@JQ@W%*!uY^H03F*XX08GXeS&bNmq?4hbZ3Q;>F zDT*l+)^{KcMXu=FHTqxQd!cmWD1HUH|9yUNA4pygf?oH(g|Cl7h=;L#qAoa|O=_7N* z-`%^_3!J=>T^!e$L;h~@9^e`W*BJq4cfdz{I&yqk9`Z!H7=H9cxU-x%{8Htl1aMV# zR^e@QPM#$Oy|Io#{V}8^ee-S93dp@opX{l00~a`-TR#bL1B!RZ-FW1Z;k(z)u4fMG z0PUQry@}**V0`lB>8^ekP@M1vFKXTi;OGcn$MZpPaV**N7FY zzGUU>4P<5X=ROc3{3@#J^eA|R2ljXDvIUy=a)ox<+yW)crr-8i$%BEcPF22g zgrg?&y{)R!a|YLb=p-n}BR>`46{WUpLA1}kKYVn&cSZ-iqP_0#M{yY_c0A2r*OLV6 z+0<((o)_VpWgo^j)hN!>cEt5lhHmW!Hcwq6achm#Yb-t;$KR%NFc8&`etqi0b2+U1 zv6Ws6H`85yYJsVDIAz4a^)qVc&7Ja&N*63n^(Q(ZcE|Sgf8(XDAG$%stPLGR{T1dZ zykO348K&j`^cdX|;ekgV4S=lfVTLD{P@cwGO}*~wej!L6c(;I~7wJde`M*yXw0ppi zXGfV%y+rngqzdUNGapdDIDDB%RFyoS!F05HTfiNtozFz6?qmbq@q!qydZYCsJbYg) zx84y>MX=q{NkH;Is%2r+w-<ip`D)RpN{T*MgL)T1v;nSY!gJdfOunEL z0bF`s7LSXkqB zcOt}pVF^1H%)omdFNvb>eqh&!oy^JYcff68)2}PCdC+G=SJUb1%w*L@sYrm{pq zx-?gc(d{6*!GjmO9(br&-ox_^|mB05B$4NS}aPq1< zrv3-|%PDLRCp3I&57*rVtX^)EM zM2>`mA6=5AGok1`ATjCc>}RDAkSJd1OtFac)mv&ZpQ9ecKpy@Vl;?@iz7=~64(+B! z@i4xqlQ{kxJ9J34O?LoT=a z9blU_5DE>C1VU_OOY-V6=-#~-GTSPV2rb9tRAmoZLZH+ZkxCr}1J@^S7cL~g%e(HI zwcPLrqzA~JSKdVP8)<&`?Wb!lfbKDl2bLezhz^EBAkz=-c}TQ@i4C0d&IZoOx`A`ni)iOK^R|O$q*JT+|C29j z93?;JcI1E;&Bi~Q^0L7RO_H&^84uXM`&AZ;N9VSB-6l~y@jcm1(+&nU@XV17JoD5B zo~d6%MWpOn37)u|%pg6A?n7hI7Duxt2zU&9&v%Yp2lUp@DG$F$1nUpp=IU1D{;FSX zrh+%#hy35uWloF>TY5q2s>&l1xBot`0uJt2+5tRk)U3vF|pwSx%SCZxSzaFpMAMit#Kj4S+aYs1#Y}(Sbmaf5)}X zkBxv}oLA^p7X(I=Vz<*)z2LsU%;>dvWWPSz_|%c_ojWZ3aDZ?{0okhuKEL;aJhd1A zc}m6tZ8T1m{U-bNNdLY6`~8{z@O-~?O#N}Y&hN;KrV%G<%d z0pcmK_W{6CKC!=Ttrnb8p|)o@Uk6@p;Ga77VKH91C=Tkg4gAxZ&-RliM0S|dJ&$9q zUM>JFH@nX34x;;t-O|~jOc?n$NT?>#`DnI*t|&(BwQE6ueraypnzaOwaPLr)OREJ! z8~Ep)roJF!E+hvvZQ!3cA7VPYage_U|HI^Kj)#gs!QuLoieHi3;~l@yG<*!L$G*wV ziXZ!mz%|EcjR5{SptONMs&3$q`WyHo{!TJ--mEClXh<$y;)(3Kax8_j;`oZeE$)Gf z2hJn87Wa`l<*slOcvq(Pc(FQ?TPE^%_$(J7oKJ28e-zumAN_@B+8^bY0Xx6hndyEm z@QiBRV2`*ncs#m0$$ByTSNmst6b*PKkUiCA`vZmF@I}1{>nOvCPK$ zuZ`t-Uid6if+<(rf_rlBjDBm}<+g2m)6(3=>lWo86X$rvw|Xt$V1YZC;F|$vUv#~X zqpAc|1N#_uymW!fDkFBGg~;AdMoM3zh|VA0JvREimk;T`Z|h10GPoAAmhicF}E!zUWv8r-Cxc-bi!9ooHE}gZ#Bx$W1rGk+JHO%C zeH;Cn^E zuboSAQxDzXQPU^BR}=m|E(-4-@VVGO;B(R9xQ{q~i%(zAbLF_UF823ZsrV20oa#!0 zY=b}p$X>Mz7n8aLSXN9j-!EkYJ#X>*BwjT@S>_{7G?^uA+ZXcjtQWG2w_ugE`%>!( z%f6G-`?I6-zq!6Qx6EUr48F_pcPKu8*m>Nv`)89u*-3$0qOck`Y4p7}wlafcXXJ4E zf{?$I+eJ#kgU7Q0y~~VjPB%!W9=xpo(f*~X2r&(-a49Ps%^SOwE-_jm`9sEV_Xv4^6EMk(zqzMa3%HM+=sxJ20b*wv zozZHrLiCtwYz$bfw z%qR2}z;pxugq(TDpPoVTE`PS`7_(aj2%h;uXK?}9_fc?bI9QsXc=cl*tq+CL8^9}$ z0=Yd89YF)X-;HYjba45kiskd*Qb2LhoXRaP9;lE$I~-Pl*7d7NUri!$5fCA@o~su` zeql`+=H&Ahnc&JKv#>)9@_VSleeqOK3;C7Pm&!l%y&exT%O&>yC&hvmyC3Ncq^W=* zVPv)M{%?MdUn@WGTNeTMg(~T~OGrL&W0GdJ97Oz+twz?=C?OtXk4Bn@zH0((>n0<{ zhJL_EH~W2$Lq52s_SwjHt{Uj7UggeocLhxZ$_JVcq4Pj$*28mDCJCH$Nxyg03w^hc z#)qu*TrPNi>v?K06hZ6wqOZ?-530vEOWEO_(P3$h2e zb8obHdIkBv^Yi5RxAUaJ9fg@BPa0C;w|(A&q$PG>yi-r@mL0-v!RPF^vIQn^_tkHL z>^(^T)EXbtZvTMVO-dJNC%hg7xoDni+%QXr2j+IkFXN{|&*%6!g*`2RBKg@T?$0jJ zc__?AfA3wG^Y(~VVPY~Y=&d=-Uh!YOQ!e>0nh{P-Z9D=3by8s9EyLo)6om73d#qJi zQ|G_{7S)a~L+IX!eEa!Z*D}(tqc1(|q8^EY?K6DuEMB?5D?gWI809P=b#_Ongc!0j zNO3&>P_;J|W)2Xy=g*+{&M1SigSH{dZm3ol>EO|&QLuWPC|7a_H zoXj%_Q;EUU%l@hMiM|4z+m^$xB0jMHeO{wh8etZ#9tcKhQunTD*aPh*r`*7{B+zB) z6R)pd01j#H%U{D$hJ+)XpL&ZC9;njoIP~Pi4e+E@a_EN-ivOWQH zPdoZ2G5{;odeVIb`JvZH*DVYN=R)O$dc_Mf=v`sKK6QEYA@b8b;6)pmA6Eb;?@34< z?kI(_?_15*`Lckq3mvO$Jj(y0+#S;K_XqMYCNW7V zgi&A1yk@hbpxKYz2L&%?Li#88_lI-JfaGyf3R6;KKPjwqi*|7-0Zw=%cczgy0``{* zl(b1c&~xc*q>w~9jEfZz;1|z^XM}Yo-OqWzu-K)*`;F*5#VkU6a35tPwE8);WS52X zm#}0iq98MaK=tE&9`K-< z&a(+dw4R~vru%!@(xH@vZDxNTk}FQDQQRzjj^4Fz%tm`jrrw22T-I+aZYqNiMzYc* zXz**?9sM%a+JngN_*BPE`GY0*s+lE?&}^q;H#>+>?U`@`bBD6IcGz7Ai@ z*<@@U)Gv{gIAx3omkRn)T{)G4^{?DYlf=tH9F$o7uDLrtdoq>O0Q_(U*4v=W18B>$10>{#{X3vadK)t$o zj^#kq?iuDap>vj%Fx-ebg0uqNlV6iaJjBivf{>tg z$pFmXzNB%u9GE?)WV&FV39C7$xu_*kJ3rqfsH##_0L89P-*{Y5JbFUIP7|r`NbfTX zOxk^PECtkv1PQS&hJx$l!t^`6a)AsX@k15TSQtsV(Au=l`K$hFqkJ*NxeT!5)R~V*!l0HrTJx$g%a9GTJUp(zC6M*?~z3u=H%K_cI^A5jno z$`>hF{T7eF+gsowVJ?hvE|8OOM*9PRx%9J(`QZDj?sgnHgu}}NNe#Z={P^9p){gm> z(nMN?!&bETED)^xu3kyonJb|CA2ZK2tWkh{+5YjVrOhUjouJF3g&j&1vg5>yfrNF~gJE~l&3QRuX zq^@7chL(h&QS7%o^1R(<4bCNL(5qFXCw=hm&*A@XQlv^g{5sSI+`319qcW∾%>PaTt$d2*NU3iwzj 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

    2=Q6FzeBg{ zix;qxpTjxHmIf5^X^dNa_~DHcA|BF@5&w+1)NO;mg@cO$o>RA5P+axi2Rk3y#s2*{ zo|Zg%%ta2XA3SYZa`3qs)}FMLuOPcG;JE;Hzip*zioj$W3(X4SXO z9W?IwK(rv{Oy0B@D8cF-W2Pmh{`c!PF5D9!8ab z*+;~`*Xu_42A?ca_=>TzF~J z7r>7Apx)I*dO;x?WX_(qbo!59uh1*|laDPT0AArICVm@)OSFpn;o@#{G@huQo0`wb z!a+o~x$XFJA#f<1{>T^=4|G$4aQeR@zuX1E(4+LaX+XxqG7{$%(qp>W(!K3}jm8&n zxR+IPB?(BL*8CCot`rbIdU=gDt_qMle0h8%+Z0YUzYa0meGLYm)xOXkn*>F(^$!;A z3x<{WC+_rmqCACx_)%=i!H#f*=*tgg`1$vE2m(BNrYt}DVCuiwmF9kp6njpkCPeNT3Ptkf%^Qmv=Vq^L+g?Vh1)Tyh z7N08Yrk`W7IP&wSTNUo!1+chSf1*(RHKJDE8ZdGBxuTP?7Eq=gXxN|Y1?rCEv!-%g z1Hps^56l;Yz+B1zeyJ6TliHiEpiFwh7>Eta42oYyex>KjoO<~Ay+PiK{b3A;k)Ke@ zmVDqFI8+J0<2HWVHvkdLy(;-1JpqsBll9{KtKjU@cgf_HDBgOOe5N>p5zVXM-M+hz zOs)c2%}QFPh$K*O=CHH$jzTb*!vT11TSIaU?GKO^wJ-AEN)Sm+A?OgP7-31ah6-&~ zp6%7qu=TCI-FkI8ygq9rX6A1W$ZLm)%~YZ{*W>AKX|Y6e7e=2%f&4T3GjW!_eMS&XSgT5lS=i?6{t|A z>oL%i3#L5|Tp^a#->lDE!*L8+1;Y1iw=NvtSp{6z*9(-dn!umdQ7h}UUhu-Olj%B} zIn0yE7{cu`gMulQzP8rL-b|i*@>W;eSx7S_WOL{(dQaK8YfluA`@{4{gTW%M$e#56 z@ev!}tH|E>$>}58!ms`QQFpopPc9bJu^m<8yW|6C*C&cU;GlbodXHMskJC=@dXbN<7TrS$Z}DR# zCenbtuf;KuXWp=yOvEKtm~s_!QV+6Rgj0|Ug!7eq zx6jLk*ID#aa1<*y>89a{+rB{OsIRr~gX?tL`}J;6m;i0ZetYb9H^_yhg4QhM2DooY zc3H_%4+Q9u8TOBc0;6waW_UrFfcdw5qq*x|T6H_>2i|Y{#^HncL)@$Ao?O^X=U|k2 z705pNd^tEA>9Ioxj;u}F{YSrOQh*d;vK9RX+L&soMQB0L|1%MCjIv(7-fTVOqgAOYUA=}*(E zM))K0zxDU0e(UeY)Kj=i=<0xlp|0DFuLh8BvRC^SNgy2R$?~aOa)$&rNmH1(Lx56@ zd04{{x6OVkA25C`qO_pBtQ$ulJGSjX~S3<7BCe|#qSz≈QQN|nolD+>cvz1 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

    U5=60j~Ecqv<%391WRwqN#_ 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

    =J8u#8_OL8GSeE2j*D0PSlU(5rYr1 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�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%0A-_|{)~Ua*ASptlz#9zLo5jB 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

    e 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≪;*O*H_=@iJ<8`xIkQEkXpZSb% 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

    @fl#`k4|4zJ-97i32r!HNl|MYmm3hI0Rgg-F7{N z1>ty{IgdV}8V&$_B8(jj!)RaSx7(d~HZK|||G3k4NDj?AF9!Fg+qR%M*|VP6w9C1^ zpjM`(>^hjSuHLzbmL+kJ}DB^t==e|BS9kmbsL{ z=^@Fp5e@!8B@s`=_zgOb^!Uc8cF-Q~Cp!}kp4PUzNlwX)a_6{xG{pilQ zEI^YO>eX`%>5a?YZut90#LLN=B1Ab%T?k%7hDxaA2?7%E^qusR0qf7MCz@5M@Zfl! z4{HYUtBKbLA5BtB0G=e#tS?2Xp?USYZQVOvK-{%wPeo5A0=ln@xn7quL1)v_kCMYm zaAsV)A|)HG6N7?k>4NW+0i|EdzBX+%zuvx)ZFr+10rcr9t+ru=uf{C*8=qhPZGY6qy5!Wq4%w!|CAFFlqlUngZ#SY+qw>k z-uxFHjxA7EEHoK}6}UG_$8o`f^d`02@9KcH_kO?qe65i$TK~G@C(=wJ4FK=hBuTxR zHLOlI891f3x!tiQiBmL*s`s%tT`IhDUG?<^nCqbm4X5lT(0*02JJ9>9=H_v4t9-MV za^KoAn)!T@pW4>_q>uUbm@T)Tc|J)%a0rtgpJP_yGZ@GR6B5fss?(^P*4J}t^_4Yn zAcsJh`6uFQy`eNh%zYN^Bkx%%e);a63PTfJ^KQqw!JLj%S01WNNOz@JIfuXpSS*T} zJ$}owe*aCE8RF+Y8SrbQfIt3$3Ltrs>~O>>zOSLzw=IOGdZzfzQD*+pC*glPK=sg^V4&EJ6%7sl- zVuDI^ z?I1fG%DTKB2jtK!_`LEcOjqbDF)l3d+?nd zryhfi6YNylTS%s#2@@aByuH(u4TmmdJA2Hff<`hqKJD8`58DqaiXY*$2M?rMkAE~p z@13Z43mzxPgoop9GI{<)`^p05!@6Vrh&PngGa*PbD*>{_2_=0xdK*5VmUY+@7y;=R zsotLnLAboJ??Ds02m*j1=-o;79pR{mn<7|S9;14HH%#ThYcbFSat#GLu&#Nk_zGvmm&6sBaL^*rX=NH$vcc12$CrVCL7 zav`S+qU+SbpMsw&^-XQ?2_xOnZGyHS@55*Abm4SxIxnC zIB@TQS*mz65dAK0RJR-qTZv-0r76*U$KR8YlKm(J``X7p$8sQ^vDikdaifxDQa9~F9_|Ntvk&Yd(0fkx-H;;9C zK~+#t(wc+aVB`h2`m|B9;L!CNW6@%*?ZQu`^jcAiVal+!Ht^rO;6JgSWPd#Bw? zw{A~b?&aQj=wvX29u&_UEnp=j-yTwiXn5eW%=K=c zT&PE+y;ty{7ogmIOy4>L;h5Tplx{0ArGac3TIIRh$iAi@^=a~7jDZGqrjsQ%QC?;< zsy8KCyO6%mHBdG+^2NY%aoW@h;!4PHF30x1Wj3&;9c-(sM(2Nob1u;e6nXGV%7Lec zoe}QNh;3GrqzTyp5hJB?fxPgF<Uoe4jccBNamlg=Mpx?bog|Sx zKb&5W{5nam1%eIeEyN z@KzRV{z(wy*Ovs}d^!F&DLWgs(wnp7?u-FT`GCw!0>y!5GF>DkVz>?QO01*4k0pZ% zkrNt8HRzlP-{auY30^h8qZhF~_=F4i_I>iwwZU@erG@8^_WcmrR}KdME_vq&YUB!@ zE}W@{B-2N>_wc!bBfc%~FUX_=sXaQb-o1q&qSp!Uv=AzjSCqeA;cKe-XosYv8+=^XC1{&G7V6uR46`;%vbCC`IO zBb-UlzFtBwWR#+P^-+9Y$~#jCcYRmx?t#4oIY8KITDM?7 zKd}3uxezGf0Dg*^j6SLa(Db+7m$-k$RWVwyP60zN;Ou@R!#KhhYVnVRq=cjQ`2Fek zw<#BIusu9=?CSGKu%^FHj_Ebr9O(Qyekqgfcys{R3u`A;MHJwT_^StkKW*K=(&|6z zd%F!gU+Da7zd58>g}MG+Uw2XE*nAFvn@=;QNdK^rO47OX(54|Qo-!N;^&}{Cf z#+8ATF7HnUSU!j3_{*c;LPWqkW#McQl`nAUm+%QIj{|G<;NB;(U*nczfgyZyNSZQN z8Ovv~nPm2h=+*ti;*o33lN7@T{{DG)_9kqX;={&WJbK66uR4jvF+aW0Z>PaU4*ON3 z9vNRygWB~=BUd`FLpOs1ig-PN0QY$V!|_6k^tS=-^G+6AJ@@gk4jljR>rVdfzt3NO zh1@-hniY#j=Sg?m?W}<1S)ISjY0KM(zWW^eUHn}ROyI0})8JPJGjKz_(a?C})_VI> zqI2^NlMs%1t^JM1BG^nC5Pty;M=i(U>#Be@?xgvpNcHvSH;dq3=P|(Ym~18#{!RNc zSFrpr5AXbVSsfpZxgJ(d8L)B(`5&@A3pCzo`Fp;arevu1UoiL56MW*nY@UYd}<_se!rvHaCvGxf9_8?pL&PckTcG z&rd6;RYM={C5CyAE1X4LdKa*~oVfM61^e8$3g2A+cE*>y%L{11`v;Ft&>HK5u9M7m z!3;iNO%J&3SknV;JIGJpeO0+f2jI5j_UvP`TnjX=G&l!I%}edUXKCxhce5gZ@U85= zE*>2ib?O$ILfPN*p%KRg(Hx^U$Lgud)iJpR%L}Aa{l56EB=XmvVqN^Pl)O3a*0^aN za=!h0zD4=(9i*-NSbkasX969H8`yX+6|2FqE>GmY7ovfZIOJRlVW1FYeWQ z+mJkjSE+H;yx&Hv455fjtf;RkREvaVH}(7gZu{K&)uvXK%;2#8TN0Pjjq_$~B&u0N zS=rs#`#wYs`M?z{uS)_>J43DE;p=+XeuFDfz;@Elo__iVu^K3NVy{MJeHT^;e ztabE<u4XSfog>S^<~ONZ?GJ0eMONFrSv{obChfs}k(hF3`|RVW(oq~y6T|tWLJKUv z*=CY=r?BU`H1_+K^GQB(wZqyqBqTOXf#s;(iIK zC8cU(t{0ll>}TDH`v3d70F$gFERP7T9R1XBHv7jOOgW*cN40t(C{7Nxyier&ip4{0 zB+0)RyaqF9Kq+PD2VY+UFd2XBY=El=pxdFu;dw=SUfu28*%XDA5Y zeX^I8CJ;ow$!pTS;{coP^M^-M|9##He@FNJEH^C9@QZj|9{h?OKe5vxwxO?3e&Tmc z?Z5H|H;)^NK5FJW`vS{PD@x55b;%sXfzf1ZXw4LForlYWVYd0S+SbdjN%z@{uH+Ti z@xk@r+XC%AY~Jp}2^U-EO3?m!!s5uw(*0O|S6q?hEfv)c#rn4}DuTJ%4UK z{!X5hdfgd|#WUnu1`qA(MCZRvVT2L^jaWXojigP8xY^5gnkM~Ek@v)#X-nn zXbQ+1U2^oV_=6d>uwT(Xg+NJ{*L+SSI^SL76JWl^VhmKi)7MgnpmC_QuZmx-fo=V|v^;)#|8KO8H0~LDOZC77C|=B}-Xj?S2zp-N$;w!P&<@VUgd+63H6B{p z|KK*!cu(uix;KmLmF-l&jT~j8fKNLq%aNZRAXwv8-YxG)u=d??-(QpRBWI&9g@b0m$llg(Q!*&Z(ck?Wxbp1^$7SJN8_$En3e*cUzyIEjCuZuB)mXsd ztPP)&CXD~Y<|p_yO@Ho7Kf+77eDY9=aofCJ^2B2db1$*^?Ds=6Cc**aZ+#S7e!)Xw z^E|I>LZ22k^v!f*zSi8^I@v{RTYny|$lfD1pSy#7{y6tBy52FYo!T$;w3fIM#Y>V1 z&^u}E+?;RMbsHUX=Sy8oxe)>H2?bkZZ`j7oPOp$`ecwQR96#r(!^Z2_XokB8ul?rx zu+8LTKy-y{F&5YQQ2T=ss{ocaVTxIlD}N^%Po5ltZ8bbtdka^1ex9rr^xTbUufcW~ z$AH7=Jml{7?+&C|TR#`hn+kr3*Fd>p`Mud}gW5wPn?A1??+*6`e|o^5YCs|9VGayb z3h^wbP%$3w&XA*dEvVt=Hehlz?x$@IV#|6k2>wG^!yfIJfM)FZM zjBUIQYu8QKkjAigV)G6Nx+Lw2qD6eUjiM)hTu|K@2e>9<6_0*8F=6Mc_Z-JaZjPe) zuTQ$~sJy?!mfz!OyNdG5|BrJ)ilXl&dG?#{+tdz(zO$tIFY?gc(5sX?kKN}!xoj?c z$QaAl$)tKPl*0@0D#R71UlG*UoFCg|@~S{dCAOXum-Q$EgwS_?5hgs~P`veh>V2su zrSHBQzc;m9>-)>Lo9A6T+dAfNP>Vgs-Kr$-ykG2ZhT>D!gy|gH0{aBk{#MdpBIYbX zapIqEHfmnFp|)xLot$d1Pv^1m1Sa~7mTB8joG$4N<<^}CJ{i3{NII3;$ z2EMtq3I@hUgAX5w>F@J+!JsE&Q?9p>y*2OO-RC^%1u|#@`8a0L{Mu3{8)M5K2#WB7 zzLi(q0c?9lgC594Ljrt>12Q>xfU`o+@llgVaPvvzchS;vkYVs%@y@n8V00C?xnmW# z`Dzunne?MJMS}ef$fu(DoYZIo-nvVC)UQbbg_^N`f$GU%_bLzV@48q9`N2C|{(h6P zCt3_&-2pSJ_)J+Gd}h3n-cFU`TnvBg0X0QZx`Jx3oZX+@WFQB4i*%Tl#3Mm*`8IJ< zpX~MW_np4h5e?_9w`YxS7AAiZ-S1bs<#rMu8mCWxk%uYYZYAquXITp-3BEfGIXQux z#W>gL@5P{bj5|q?x)k7x6wgb!8s4V5RLp zysYCmysWmm?3V(0<3I`yFYE58Y9Z6HXbdlF2w(6HT`DuE{PEqv1<|d47yk|Lkbg}7 zZ#<+%*Nz!3fjgjeWcrcMdnbT5_$aNAt`t-Q!SF|AWng%fr&cbW|CKx;ibG!GsbvWA zpA}q2@lS_`y*uZ2q=9K1{#dHF#;$(b>bCqI@zbT;JFa8#P#4}$Uy=Wjh`H_~R9L->D!=f2MAU4Ea|Xd}qkNv!iqGt{)$N&3wB9E{3vnzxH$i{Ke;P z{H{p{hr3?{EuJa|Ydp0h%Lzk74hUDa##4J%OFMbE3FZCWo+x0qUppP(^3#5Q$VE7D z4e34fi~~)CYzBxjY^9akT?Hs{@RSm(c*?{%rj`;tf53&q&wBW1)ADj+4u+rgcx4^I zk829>P;2~!U@~N9h~n_G=B?r>TUYUvf+ri^4!0MBCes}YisdYzhc${<&FB{3sdrSF zw}@D;-*oXen@2YqM{D&nwy@~x<<#}{XAt2-f~|k za|}sc=ZB>&DgRi@ShnTNd#f8E-B1a0*+Mx#z}&0n{6 zeSdm=XQoXqFgYP%cY_6ucSA<}w>HYCKYvNh$Y+oa0}UiOPXx0Hfa^>-`CE2NsJZH| zTPt@?d7_{!r3%ol@{|g%@|5DO@|22K7`{9l?+2dZ@RT}B98u>c%K)cvcuI{|+Z9TE zAv?|!>9Glir?i&(B2(C+;yO<$Y3T1BeZ43QPpOjP@x4y-j&Sz&VCeL0^_IWyMtH-C z4e*9+ypDeo>`{C52i}Wu$!*SevJu{J$Mulr^6_dg>d`Fs?AsL}|EB!JEPWhMkf{hE zODzK8t30)LdQ%0C+(O@1ZucY)8Ap%Xuj~{e_C+|=W&K0vz9)g-IDD_N7dr(F`L@3Po=(#mCqIha$2fA; z5yxD>jw4*XruG@^{f=L-X?+(Y#BOTd!mbOXA5XpI*@5s9J^|5A`8)1_q22F3c}!ga zGVh3nUmu7AQzoi?VZKG{c+L{vg`djL(Ej1>DxQ;7h-m5aKq6)w-C6CgYuDHGy!Lyt z%(Z{nJRc-dM7M=66|LhrKd7qi84pD3KzSe8AK{@S&|agtkG%oy^9Xeh%LSDo{DTF@ zkx$8#wcv_%?N`eX6VQ95J%{dF49GU7`R1jQ3l>;1nwj@SfQW%KQNcYZUdNPu(pa1< z7X+5lmOU&%`gfvR&`-UT2!f50vrOAjd4^}kJ{C4;9Ui(wk5^_G4nDN9|Iri30eh@V zca%O(067AB@{?XjFMi?d1$z(X0(Rrd_`bf}_3Kx27PW<|&~NFc!B{npXmDWgdszEO zJ#hQ1FXLZg584hCX%AgX0oz8qex%5mv=WT%lh<~8G_w1-+4C?23GM$#>f+;}IlP2S-N(BJpdKDi+ z5ldZ;8AL_mIc~A~Q`6)aNPy zPf+$pQTbYsE<-$j_^AyveYh=HbZ06o*>jn~`e7Di8ef3EfsyczO_5xAIKnmPP=tzy zzV(8RF@l$*Oi|n?BhQQ7e13885g~7gFeAdp#te3y*&mN^4S8=qzj0`YhOCiAHa$yG zQ2tlGR2YdpVDKaN2@yd!U(5chpA~``pOzLwR8LbzlpyDjEDgAU##4mEVB8g&ScoSS-X4rFp zsB-6v&*!jte6wYIlB=mudpx!?eK~U;8)t_r$y(m*RRq{`a!_geyZ-{R*YVW%aLN4( zN4S}YD{;?m_i6ypJwV`jm?7x3DUuu!4g*V*%A#5S*q!Akjz4^y#REu)d;9X{kew6E zQK)rq=XLPs)SY5YK{Ov+jv=q}#18{6BUZYm@e#gHB*tygdmD;RU~Xm$ns5yV`QsUT z-ES8GZP{J5_Z(e-n<3w$B5E{lm0HgnO+S+gZqpH(Fcc#HnbboMJJ~p--*E4?EQN%0 zpl=sLt$ZLA(4Kvi9Ku};X5E$t#3bEe$gz%*KXZtG=D~CQ=^(^v zK^Bq@DcHEo@0~7&Uq6I~+*@%3W^Vkdi8oPv{s%E*t)yp(z}&dS->wYd_#RXIme-z5 zga)F15q_7D{aoMQ>6T-La0<`04chFQ(%~Png>6)1d61vo{z;Bp26#Yi$9>x^73r&a zR9xaf416?Nu|rZ0^^ZpJ8t2i62%qvXFd>bIAQ$r0kBEUqKS<7P5PKyv0Uo>|Nof?D z561c%M20g^+~m_M6eOzmBH=cD+OlDTTCi9AtXOudEetGWJjo{+1&1Hf|M_DV3w5@W zGz9H;fPJ4m1YjgT((_)HeWRoPuubT$#0VaWqvw^;^w%Jcfi+GnMD&U%-ekyHFY=lY z8s8pGlJEPaqM?OzS>T>fOE`PH&q!0i6siWFc82FrzcrL3w)k{A2A*<%{NvgR8qdiW zawZ2Q&^|p-AlUF{RRrXh6J!q6vIgF5YhyMI zIs-dMAa!Z_9!JHN$IFW<0V0L~?D-{I$B4pl)?&={6LQZb+PAp=aW-xYvQt9VY0jB{VdjM041=`^-4fU6h;`cT3t zZ^RcP_ViSz&YJEQK$+~+F9MrGA@v_Sv6dPn;vpkjxa*D+- zBp)gRw^s3-DVfEM)huY9KD&zN#Cw>;K;MAACtYYJK?6xDP|ZK^Q}YWt$CdEbz8SL( z&1;z#R8L7wrT~M%G38V5E5Z0Gp3^6aML|s&eMe~_yu-7g5M&pQjR#F2Jrig|`cdPf z{qOL=mM<0-gYoMmGdg8)kdiD{UH%T@d-BTt$o9^&09^Id zT4rFbfJPh#?fgs8`LE|U#phA!HK4?AXn>2j0X)XRE1q1%EAG7Um{#jk45aGR(Ki2z z-Y>g4rIdEi2hy6-bp-1oJC(lwj?JIviQwq|S|Mg4WG^u^5)cYlqxb%`idQ6G#VcMX z%u|kf=mSlX!8^x#C>uOrkgrR!Z@QSbITN0fz0zu&9 z?bF-NCV-i|iyz7eVqiFfz0jUe#NQ3LyL?(2y+K0AzU;>h8E}@5sedsS@kbuQ!7GZ` z6f%z)-vivwjh092EnuNCBXebJG~}@o&Bfar4e=ONZChyKfpI5PNSZ?aYBQ31?J_B` zfQK>vxQZ;=XN|~BM*SemfND*5EhuNub-@*)AG<2h{igPTZce{~A;<2!5?>UwAzQW7 zRLjIAU>loB)0vO#?7}-gQl*R%;go`#@FNk#uTV_a@GRwV9NH(bpIbEE?hbzo`3ITG zh=Lxy^LB$OCg9fzZmR53F?iWgTZAze#ez9-|R6eN1_m~sp_IL=oQPFzRrHs9B-$#Ju;dudA>$IZT(q>rwT!`gwk zG9wVhHrvqxP6{aZ*~A%wBR?1^;%vjf=@$i)TZjDdaEsTYV3Y(;T$ry3Qq>$)v`@ML4cfzWIGr!4=>(`$H63WgJ| zcN@_>-VpC(GRT_-8uU0W#MYy8hq8mut$X^>{BTt|l;d}AI*6N!sUf-+2VAqh6yjIr zfe=ZDBjaDa;ofpxR)qpIPm{X%x|3uSf+90}D#!dZXqoNAG_Qu@ht9V?k{2n+1Pelp1Uy3#6KFkl zRm`;AF%|=U4mb8+A42oWDBcC~+MWc^wxnTbB#Qi4_*4st?WfQ=aMvmxv0xRC$Q9+# z(i)HfRIiX{@>V0>pEG>{{}E`IWq?bQWB?6i%yh8R-uf zkN8s3O{!$J7|^!gx=9d=@a$`NL|XDQZ4XY|0c^xib6&o&g)kx5_e5C~R8N=Aj_8hs zKPxYaI0(9dpVk$3i%V$N@1MD2II-U?0G#azmip+3#@VRM_j|N z5w3L3U0qm%AMG!5S#CNwOh>@*6MsJRKF|U-RbgZo_jm!f#dyWJnyWB#CF6eJ17w$y za}V71ruGH-$`;d6Tz>HO2U;nYjLh}_kKHFfdwJOrTs?Z6sn;}oU4Qb0&g>#D(0rjZ z&7Pc682}hAo3EsZS%LGvSQ!seS8Y1}*CfJ{)^T!z`=3q*vt;S z*oNiB!bPpSUw3%4>Yw`L1!RC)uaoF#nsHg(o zP;NhJb2tS6{jzidj&iV85AJ<3i_VqZD;}_)i2vcX@Qw58ZY0`-vNM;BV=(sto>znW zc{X2fa3zKL2j%<-J4PSuikH)D46!&*-bS7)j5#cD(qWp$-^v>95?xd(A9sLdiacu1 zgE9f`^OTPC(w@mm2e{8Oy~0;h6KfA?9%eqsb^Uvsr|;|?+WM6l*mm<5m8ACm3@h_m#F-n>-xrg zuJ=5yH_!9^UBBP?&zSc;=RWt$nKNh3d7Ya6N$2iRxId;IZwYb2c?#V%C!!Fki;>X>~=7C4RC zNyI}G;(KOMebFcqGEnIZo)&I69P2Pv$rHhiBJ}ei^Lt5F!PbwEkgWpSbmWufeax6 zK!V*aT>P^)=uhr=AadyjSd{}VAFFb}3j)}Sx!S|<~d+o2g&lDKj+}k3|3hz5p z?Os~h?B9G|;m{0&bo382pR;9*>we?Y8l-*V?|fMOoBuE0_{MRW%?L9hDMk7{B6Y{A z>fk-qT(L5iueSMkQ_+qu)i&yA{_a3v5&30J)E|&x`ROu5AkKZc!Yevq}fB5Zt5uLmb61t^3pL_N_Gp zX*d5vsP&Ky`bUf279P(RypHt4rN*l&i@X?Ghdg5bxpTS^jQapowAzn;q2vCi#B=?T zf5egx^1P~$KJJ2-XkOUsq&I;{PobY~N6cvImmsuG5H2}z%@T@5>LLC76ReculHmR6 z?gTP^)i(V31gli>qC)?D3m;&i$&77g@c^zVE{ki2gA zgr)OC(LiVttm;rh>d zzP-_au!iiNdgC=v5Kdw6HV5jnuvQ|+mX8sj=)MivcncgSd{obhs~xVhhCrdCay-$1 zG5V5FV|XekbiLj2Z8-@PM7DIhkoaMje=kZ?wr;+T_??@v0S_Y3JgTk}Hx51(Melj< z*e)#IJ_75^3LnqnXQo8)d~k_^GpswACL8JJXG{OHsRhQ%^y>=E(Qu%7;Oo(%XwVyy zSAm;ezZGS{RnAO_h`hQS&)sdZ%0t=(?FeNf=;8U(w2neMHyM8&s8Q~E=RnnDq@Tgd z=J)D{px(JodSay`dgHjoC%QE;!{_+(OxL6SqGBf93bgJ+h)N@@UKG(MNGF)}vqUr!op?*RNydQ+@NL z^O;lNrSb=Xj(gXDb&KB5S6t};3-}gX?WGQu8^|N8qM<)TfT6%e`sTmZWqFE!EGLYQ zVK38j9v1Qd7Lh+Eb4g)6+>4C6t)p(keJEAQ<^4tO1V9>+nWOe32MA6DNo=tQ1ilet zRYjEW{(^7CMbNM;21Nc(JUYO| z|9sbYXXTbm@V)UHGkZlG#&I)xj6G-bdHyn!YIc9Z(e?E1r`A#CKGc8EeB=@FWDWFB zdi!X#xm`!?62s-`=vm{rT{Z2jkA;Xg#Hk5_8{`K|34NE-d8QMmXDu z#sydh+qSUnh4ZHA^USr3WU2(mP;l;7=iSGo$)Kc}a9Ytk3hR*P6mGr_@6)vcKIl75 zBm>Sv@5wmb;lACT1{${XK|R!w5n4Vnnh2P}_|+@@j6g){9TBR~FmUur$_vUwQw z(I=ceN0P6Dr!i`OuF0fexN`cWeI$X1Hy5xo6Pi%RWrHUH52bvw{6NdD)AdE+o}1R= z0cSY!_J2b4>)Y0c8T>C$yN*dCfHZ^GbZwl0e48^o8u;zH7ffG5a;H&!^+KcVP54cy z|73bxNcazKydL?n6oWzu&h_-{KxG_Kqp zP5^(4@A&<0pE(|qMovT`&%>3Q#;+7Y-^&}fCxm-sAIWi{{?ApqpPJF=*@D*B#w9}8 z`8&^cuV0Uvrqyce9Yzu0I#uy*f+zrx?R(YC6?GF(xwRF4dTfdDU*G2}Jr3iSW+;^3 z&a}m0kG-Na5~tz0u}@Z{V7A*ETw||^PTL0kh&EbQGo@;9{gKovyI%E41d_J4J3izW z053ZJ&*38p*e<1fUKKhhpGA-ISb=L?WF?_|q>>%&TEvWSvq0GDol;3W6f-!y+ly!{%F{wQzy zcie10^ium#9GqB>cIuLZ<3M^&S4`xk6VPv|Ow;-14_3#){oOsq3mmV4O~A;?Vf)&! z&F5Q7c2g!L9YFK_#ixYXTdrDd`gufQH(z&NL;Ws}OOfsNpV51uC%S?Kypj6>mZC*< z%2OZw^15bvz19e*stY8)81MwR&$B&!aXZNiH-P&*H*s14cLQUPs@pl}uZiM(;3F^T zb6;;0qW3mDmCghuMW~?^a(;rOrhmABRC zGzpt1@|?Y{>W^hr(D(=3aqnqOS6&17@ibapi)m(CD1f1eaMwh%I-sXNdUW)?9axnE zE+4CMz~$q^K=luyedhr#A7%EgkzWR&o_k2S^BA>;3Ao(e{z^pX3ZOC3kuop10OsiU zUremA6$nHF1f0ckhsp1k)v0?y}WuU@w|4&%R{)m3RZ%G`by>BoAyr2fIf zpW+9A>2UH(B@pc0HRl*<3i3PU@6c9T09^idDd+`otNQ_5{(Aq)4VS;eT?a}di=aN0 zxOLmCNADsKC;Ltw4$MG$5HF!>tRukXZ!xNt)TGZ6Y|XUzLF0k{9uk+DoVdP}Z%5Zb zL&8~Gd36*Ag$ajGQuYBoKWF@LOZ5Ela>UFiZg!#@=}qiBl!JRydH`@pVNQm!|LB$fBD8Y&N;iNzVjxizkc@z5L-hG=gV+RyrP!F=Hq(~YYurnUO~VA zLqQn@#Sj!v&f)i2wXeEx+=>H1(}u+O@zk&6oaZ{%gX)bZLI;?CCBySiq=?^Q$Ugk| zJ?l|HHnvT<1+_P}oAY;`7De~XYYj%pH6HN&qnyiv@{LUKkN;Vp>+~!1+~#NQU?k=R z`5!RVD!jq6d0cQ@BGf9UA0mf&?W<&P>15T}Y4pDG#2*nZ)-Kpznc!=y`~-f#R#8LS znORHpJeK$Ij8e!=7_YV`n46MXe*N>-W{GmHUT2pbnlFF!d0pjv2#ULAvomjR@eO$2 zdB4=$qK6aB*T*HFsQYI}=u!Ostp0C){kNch=8w@Sy3bUnH~ihEJ?j~LeD(rUR`agX zLPPLXW7l{7JP)8^_K^9Aogr8rJt9jI1o!nSGA0#!V_#6*+a>hJ8rrqTayxw@IL8G+>tQpn%=mhSX3!H16msl3TjmHlmnv*&OQ79&u+f>I z`KcFJ_-J*TCLYfJ#I7+$aZ5NasT^ntcUilD`s`d?Kc-0Vc|PO*u=BDY#{C$%fj|-d|;b9}J*?e5mQqiNLpA9HZ?9$e(dnBr;KZDCP zpj>!dVy)eZpq`GR3dMcKCC!V1g;je@k$$t?|i^eUkM=9g0 z{^RwX+SngJT#CjuPZ%d{yVj20qgz;0eLm$yc!5B0y+??VsM1znJSwIu4UtsD5M%X8DrL;Dl_g>fAS{4q#FL=(9_!r!#1u`{CQ>Csr~hc3w~!*Zvcpr^Lo- z!e8;&fJ~wShWQ+V^BLm%>m#&F-(a&WRm^bv`sW<0~B_H?H@dd%Zhsa0T^OtdbR9 z@Uvpu&DR-PrBm15PFegLdwJF|Rd}DiG1AU@lFrE}1J=h7yL3*Wb`rmxs;x+PdV*OF z>6fM0GL+#5as4_ionFOiZM=?9$e+4Peizq2U+>)RRQ7HQI$t+SKMDdr#%_Ur=~a>{ zXQ|s)sDQLbK3Dm9N+0@jNW*1^PTx6;^h2I!@LW7ommcY-{&pz)BOmnZ)w2EEGt72; z!|(NydnlvVBz|4Ja`dFv*_2&rc=gUgwSIjXBN-Td@4>voS`Coesh1rfGy`vSlX~C9 z$YHNEy2$AD;kmMXe+$(CZDWkgqHHKKAAZ*ZHD?8PO{)N^A0ZCU2_TMy0q0zVxhFjL z2Bgbb8(-7`k6sDh+J4gnblN&%N&7Ug9wF=GZ~wqM7bObF2?{j?fyZ`kPxpiSQ$*Iv z-Hbm_|2?tFsR|r60@wTvOh*6&9;96MA2`x#2x4ta%*7c>H?7Az&Rp7azaG`Y`tf#A zxH^Or5gagFf#$WofkM3;27!CejDYvK!aqMkG%% z=_%It2dDC#c+Rhk{~Ri3H_5cJh`$a4F2!D(8h)vd>Pv>V4l&msqqyCn!dJ^owV=FL zm~9_7ZNOjjy|v<}b0|8F%t|e{AS-D%uQRt-JoZt1aEg`d;8&pF>M~I%a?7uG{bMhigq) z+o-^THfL;UxfZBi*-qN0DBos%}1>pU~ zWv;KPw{ulM@#9#YyF(D?e5C)voTnkwhd23?c1D+2fWgIgwoBjLKzZ+#3EfHsjI%Q0 zakUAYx7P%&ww*FH27MpJ!3VH#TXgh_j5>}Qsz8` z@$*SmQR+%!hqTX&bo0gm+~*zt=~Xc~6Af^m_k9~Ub6-aiv-YRD(|mCA_qU8=oJ%nu zQ8}EUDdMg5NAr|S=Nf_qkFu|g|0PeoQ0grQuzoYE;Z^1U{AoWBExEg`@lQiWeN?j@ z#&BvSQG<;uiPe=28sGlDx z(bYiX8owR97RIgvalGU%c)Y21+x)oW4$?kv$WfeC+L(R*MgJ!M#5ylXC5}aKZQRAk z0F(as&ELPSlAb2*mibmnWWI$RH7r`VDu%Rw7zy-@bAa~B^7}7tRp)=!|EJ@x5`l}m zNgz3TuhsP^Q`GqzY9HZ_`^2Vs$D%L(dk!8oy1Xe_Rv;j;lyq9n7W`=Q>ogM!1FLet zRm>^IBU z$HTWbpN~#xbC3En7kbXj_|bfH`wSZY{#iy&G`wAC?K=i6NIB=a;6J}d$;I573dSFY zjZ1mf8J~_jY)9se!}9|7Z~WXyyJeUQ^Q{E9-%ZV)jVG2w`{B|fjPB*5CKjaMryAb# zashAZ{hd!aiWhTXQUa1qc?M^(I@treu?yD#E`NtQw}0>}ya90e`}9|Cxcr@r?#_EY z27}ISQbgk(2#>i zasFP#m6yTdktj|!58pNUZoA6Jn=bpiW~$5-F4 z>er*|N@AHff@T`U@4fqXKCCrN{}12z#z~gswv>2s1L;Tc*k&cY57x_G{3!ONKWy{) zN@8XmmJ3%fDX>no@!D z>ivfpVY)Y)ufMuV$B6gAZ760V$f`2BV7o@KWO zo*YG}Xqa;kJZgpB0y;n`z*|7Jq zm_5=SF{aC_z6IVVWt#DF+zY~w6X4+|zC>|W3hC$mQYzh18p_M}tk9qO&l~q=-woGe z)Y{GpzNgR5c~sZ~t~r_ua!bMB_DaOiOpi4Py!VInj5)NcE0QelP3;W>f^=<3L(}FuV6_jZ;AQm%B&x^X zb<;urMCz?S@{vj*fNwAF^$LHOeOC%f`M$ZIf#BuNy{{5|lfc_SyB#a6 z@gPC6RU-0*D^@>ls%o{!QMXZftWw+?4idX0R6iuM=ToOop!<_V&I~gbo4{Io<~`=a zhhL*{KDbnFCgLJ;9F41|dF>RR&^9G`Q_@oB|6&i$A8OF>M>v7MDrj`yoqG7D{vmTo#3Q$360qB zdS$A1OU^om##d~VKD9}FX75Gwx9LvwB+pI-BkdP!s#R}mK)40ZCgvH?XdsRs*QL!8Wr z&Wn+BM$kTBY5VziXq)0y#Y z5+~sAb8+e|*8a`QYdTQXQz04(DleX?X(dVrtKS{>{dYW2dSL$~0aPC9>qy89z$8s) zh`)FWZCW23PP=}V>kz6B4E~&@ZWawj+5>p@mL7Tx>v_eh02*5~Q3|;&>>DtNMJe0{$- zUDVgC_naHgGs2~^$7yFCOZ*#rj%U-mswGjs-8lkg=XOe%$DZ1~_bg2Y{`FtF?6W^K z0rj)y8jdvfc0+k*4IG|*HNNqE;Ys!RrJYOb$74H~I(SGl{`d7h$zzRP5K^P@F3Y7i z2!$`Aad0W|QH=X*p}%44jS7PfCG=ham;Rgy;$40zjr0?)R_N;#hIT%U!xgu8VwxL% zFTQ!Tf;g(4+V%dQu`ixx_y`GJy|eRI$ZSI(E9h?Z{50&~0A4{h01 zF}{?MX!|7SAA7m@e(&?@2u$;dr;xKa)RPU(XPk}ZoIxGeRxp|a<;ovLKCX5Q`h8Tw zcdJbPyaEb-{Sf322m|*cIg?6;{IDO{L$%XNaDL9j$$g`E7Yf8ezpCsx0`tmC$Fd@ zFJ5^E&}dTgz!po^S0ss08Iveh8>c_NhztgdHggk;r zfi8tBRceP5@V_ldQdAuc4#vMeocUQDlSyQz>sN>Ox9$S;B1BYv7zc$i#oGWlf4(bX zM=*I?&`t3|>w3VMHF@m)+MikZ&%CYYm!iji1b~z>PwmqmQ^D4Z)9iQa01|G7Q! z-%|6nd#11Zw6W;4E)SzbA8fC{p2Js3ys+8KVtqbJPc(RSIbyOnh<_F+lq zM=aRMFJWx@{Hdedy4a3*Cc(NBS1{b?DPAKtSm zga>V@b1rIcnV;7cR&+<@Lt)unFq8q~)PC^}TpsP?z{;f_-($aHi`~xV*=bAXxW<1| z{}DgeXn4L}<-bo*KPoa1`VHpl$2gk#w6LFpVbQWJ5EsJcx6jXbU$mYdK9aF)C-ut= zM1Ds-qO7nug5m-dJIXxF6o7dQ!_O0n3>`L~KT+Vj%ctc5dd@Gp<#?WF4)u$+rnf(c z6@u~6!A9M5rT5pzb;3t2${zVHV;souI}I)=UPwUiLshm^fqG#Wk0@=h?c=#yNB-mS zSLs3{bGK)w1o9k-Gg||88|fhJxZ_6E(j1)dM*HCs8{3R_SQ!N-P3$*OU#NY zZbz>aI6tm09A%-&QpQ*#EiGaqRIshIO3e!ojWJyQPTk|Rmhd@`byTquwl?DT=i^e% z;P1;m^=RJInd_fLGAPk=aWW2{%x)`!$LUdgBV4*6p2R|0jq+!_?d5GU7Kopn=UHd> z{1gdBx?JBeQlX92U&55adtfA$2fFAA$5F14P`?+b?< zulxNGMfLjr^KDCS69FeB&F3Gx|2*_=JAPK^Hy6VP2RA=Q^YElw22o z-XAW#dlnlkT84htnOzg}6#(6TLNa6NZcD;_<rUSI=TCzT5wHFwEu^2Q6rrY| zCDc!Ub{>86Cknm)+9(|>JYZq?2*pReUXsVhwc?Jhhhxf5!|h-`Qrg+fah_%T@AKzt z$>}+O<~RLuG;G#NgWnZPwYWO!xB2;nOSQCtW5T!4IAC(ui67jiD4xlC&U0_o4#RU_ z7x~V>{Hyr$JklnXR4RSYdq5uA+|vC8Fz+O8Ds+-rZS(nZ>(P<9;L`C)G@ka6S!flJ zE}Ab<;_xH3;4F-zA2~W-_~i)x_+ou#rx)Vc%t*htjp84N`=Q^in{4Hdu@SnDtVaSN z55Ejt--{h_VGL#YqmR|t%^x6%bHoN%(@bU^v@zwdix$0c@Z2F}Sg=6$!yZ%E;%fEX z2F{NK^+C-~#|<&XyGBB#Z{a!<>*4cTOn`rXh#Q~JIbniP`6!3D{;Zxz7@txF{lTtpoK4@s#mZ%F|GP-E{brx>9A0#hoe5o2&D}1X)?8T|xCrWzsLf$(QiH`Uaogd#9cF^L?vx zCEN)t(RJ&&@*_bu8txy5t_d)832fXh?vEwrTK3$$9i44;oQ0VH^=~V6`)<|vgZdH6 zZ+ZFN9yz(zZj?Vv`f~%gLK?xZF11vk`E=jPv3DC^uigAPyj#*X zo@aqeDn*7>Isc|k&RCX_^!QG+UA*k*oZvKE=f$Zfo@%V{;vIjXFvTJ7J&L2G|0-do zF9+6}n*5)-d;hf_UZpo3nc+JksIe#l!roVg+E}6-qkfvA1NJ8Tl-!xi(pV#KmZENf z`@Paip_NfVnbSg3LDf&0y&7CO^;D?{u=B7seW4cu>svwS3l+~9iqi^GW> z?5^NGL}rccJSOiH&*_G(_uU`GS7)EbY_MOP0qsspn~#@XrL)Z3B8I`*$affbEjex! zi>|YnK~*jyI+(vzoB#-6`iksv!Lq-0v+OYlQyKD>Xs3^}jam?~o)H ziMyhK*4x->W6X@Q>8Mk!YI&MCSg?aa5k3ty6d6kq-OMT&9*wHbbY zljeO&wvtwKoG)Ca(Mj0 z>(Pr#z02Nj)<3_R-R3!CtGxMngG=|`{g`O#LG7i6aFd&Ro}EM5ZMW@?${~Q~p~U&5 z(!ePE_)u&bp^lNeXpw$m@9r>B4?_9H5-pV`SZqGu<-a9ki~HdwJ>=LE<-`w@(}9LBl}gb!dc0; z{AMr@QNPqNEujtS*Ajz)hVi{R*aQKeI?K2bRu7gK*ymJ1_Vz{#&Sbdnd=un6VN{}r z9d+6wVf6s+gX-^&v?TxI+`xRD`dJ+HWz4oz=D|d*B<4`9vMt6^2Vf%?_n zkM8>Lwg~n2UJ}`N=MXWB2WEH{O0~rrzn|+RK_HX-7Syi$MH~9Dc_05;dykCErDGu* zf1eqJEdS;SgLV72^dE{^ zY58Gr9t}zD@wS=Aug~JV)Qkp4P`yl(%yKh!1it?@z4=Ee=Uq1Z9?c)aJ~-v9k24Z$ zmpQ(>6h98h42Q1BBX;~a*Xz;UN$zd^hA3XZ^-P|HP+GJ-xFk8O?C6InwrL6i}D!|(FT>sYl+}vCI-=}9D@pU-{RG8f7B6S1Tix|-hPR?Lu zTdcqKi4SNa245MJO4$;iKbTi8w$)|344`MswZSgIeeTuR)+3%0N?6=&=@5+pnC~M% zs@;{c7k)=or%zcTGG^GTpfNW>W=G7mj)qLfL=pH77EhcCfa~;_qV%ol?Yh_mQHYLf z6U3o(c<6gR;s#uQ_Ug*!B4n=EFtKa7%JWNDGgib$b;=e?nG3Ct=+egf{r+!}nyU9= z(n&?^Vh+uUG5f#ln+Km3@5xzVADn&lFA!b8&R*?56KO59>G|MwQ&5WKuKcEdm#6-? z{NXq)YTq4hqSAcDge{rAPm!iHz^;7@BA`BHhOLf+`#Y-Hyqj^87qA!O{F3BHHjaYYg{!ZIvYwkNZq8+~)=G9FDF~GQvXlj9AuiqxW9;NHSY` zf!Yq$Z|}ukJerm@ zEvb9Njqd+tcJ#i~dGOr!tmI~kWjcDVhmVM9^3xo@qWdjLm)#QKHuN4uH-=oIQ5L@M z_VSS0@zMSNv3`!=92@#@6wS-qQB7m4b{c)3yPQpCdop3%2&C~lzf z8Tg2nXcWk+P$R!1k6fvn{&E<3-{Zb4VcWh!`-RQghZNf_iFe#@&Ig~TF|Z@gnFv`L zB!~Wq8-FlUZAZTU*v_R}2|WIFH)@Ay#__bW?nCupbpM1})i}I&IU4)m=`M9Negl_C zznODiY7;>E*(CWSa=e4`F+atq)c+mzM{SnIjElPp3sHP2f`e^_6$9vbO?F|&!7N93 zPk8$`8~MqTig@{OaV|+3jNFd&iwGc$t#~iI);_p6oK5i-{ht3Rc^o^D@uXS}8JB15 zf$;PhG`~XUkd}ACFBoUer|{dR|0`Ng0+(dM=BlLFP`}?F=UtA*y3kKGm2Wn2(g)>d zJ-R*XHof&30T%c(yGMXR4h#0-T#oQk!Bk{a_WzJn#Ew<(l{Ddjc1U;K_o%oqbpKdDNHg9ePi{L;CQT#*y<#`%fX!=0j~CrAKjbF7bN zZ$k?PyAE&13iX)ke!i8(CeQj&WQnU{LR4v{uS~_U6|%Qp_f-zA@ozD}>!b27d%x$} zw_1OQ#-59VI#pknfsNSU`5>Coj^TbgI`gNgdjIW7lsh z`mvz>a0y!yyhq)<1?hL`QKp>nad@BeQRS<|c;o*6HGQyAJWpI|61EcxkX1wY?Uz;# zC5lGvvqJ+Hs3XpcueI|Z(U`sR2)}=WI5hZqAOjljeCt?u+7laS&shHA4JMMXkKC_dpe~ncf+pwIReyLJVQc|wl-}`cr%-0$gyw8i^ z=a$weU8p~^Xzn&8%!}2r9KEf7k{jbo?WVhC#t5YR4ri?>LHqSbv^G(gD50N|UT&JLYD^ zg_*6yjxruv``u|y(tc@uM(p;$E`kdw1Z%&4u6c3i!4NoK^IHgGZYHs>J752|Bln&eN+BNLz*oAjJ_SD{xRANB& zeVt-Y1bG15M-CpLJQv`M#z+1CO3#SKb+6>3=TQ~IqUE`4^t?}M&vjeu7xW*@YWjqI z3J}ICzlqb#MDwnwAGdF-plES2#F-iqI@EJrZu5S}|JTI9VF{$9(K=e=YSzZ2r%}6* zEPH5Wh!XnQjyh~%5Uyv&D@UDez2YOp=sCV~p3=;r9GuFy`LjB-bMWNZ>CybR2Uim@SLF9pl9pTz*JV3pmkiH2dCHxGyQhRP$rJY0_U^>cUd_E& z%c>{1_P5aAx~i-A!npaht8(ef5GuN;UieR0o6$0+riyxAV(#`E->T@n9CjGa$xWP6I<%!qteU39pad$?z=Sr zW2);L_i!%|Xn!)8QN$ZOntdu$s(%rDDjV*+-@WlVrb^r~-}NZUfl({Fcfn6C&@rP@ z>-WYUoL`zcJ63iLSUlCQ-`|q~KD{9-Gcbkcp(f97^?KKeL30Vyy#*d#aJs?xgovjT z$bYTYEP69=t-pNs;cxCBbM1F`^Iq&C)wTl_{{1=*)Fm6|^Igd)J?~7UzmMy}exk)< zu>Xj!pa+p7cqe#7&=b1_21s|=4EyAOCqhoUSj?^gCuwS>ieoS?xQ6n}-CG{M;A+i) z;;AMWS2oc+Tr|dssO*Rt83@PJ3FPa0C_62TPx@=71wa+&46)a{xg(rQtOt zYv67?Q%Ye7^TL}1tH#QYSptR2q1??1@VhrzeCA1^NB}`eif>hHVZ7d_^WIEfWgz~; z$Se9!pW6SmP8T)rimN(-?pDG)9mPb@7FEAp{A~_k`LJB{Wv4Yrvz^okIt9mV!Ptne zmHUB`V*wXR+#$Z;iuQ;8t5S(TVN}AL?j!UcO2#Q1*NKNX3`hGvk+W3RFD(Rs#U>dU9 z_Qo>wM_zY6s^$LmGI&E&zk6E`jN2$m7T3DCANpbG%=GGBo>c-wm^}9mH4h;8ETU`g zqb#5>_%&kU;!Y5Hq)1e$L>>HioTsOI$Z>7_ps80|0uMp_k=60qsSegTXXm>> zwx3!VoF@3t=zJW;1MA(UjqEuC7!C18wT7TW0LDhlz6vV$EzbG8H{Stn>c{83k|F6%pfMO6` zhy?37puUxw=o=ORM(?H<{obAh{Ip$cW?ndey*I0VoY)SZM-n{2n#mUmOf1ft4{nG0 z#3+fldRt2d@DO^N9k>&IM~;{Sa$5%Ayb4frc*8{<2;^L3te$n>1fLeJHfl3?0i&QD zRN);kZ|SyeUvQFI5s1!Ep*ry3xA=9@Gl$vY)qwWg7BhNAdvH?ms%FxP1+WrZYM-%% zag3&x%dL{r{$QS`m+H3y#GAPCm#=y)HoGlqP%nQnCcP@-1o;(Vkdxn8sQ|866%6Kj zIsgJAnFhs6uE3?`TSr(T#7jQZGUH8l*a@gGWJxek6>s?aJ{@OGa2ijvTM;p4q+a z3gp{6m2PqHav%`@tv%x|m<28$-$y+9#0*fle@TBV3-PB0sA#w>$z#FKF|EpiH!u$+ zR5H&!lWpU2&W@j6XjDh>Q*IV85@?B|xMsL={p>`TBcNbK)?U2R{L^XlKRbJ|&McQZlG;Vr&VyRtw`M!1Egsu}p? z#?qzn8`hWFDJ6I021zVfOcU}_R)_mp%kj7zS2Ktw()p?I-J7-|K$kE-*wkmg03cWGZXd~%|NILecLy*o~P2m{V0!jEd+-33Kl2S01>v`MLZzB zKFnFu0_QLNjoCMiDG>KZ=yY?IB2OI1{&JF}@LV1kHU6b9D4Yyhn>)LOwBf!Uc!u=D zyX-9RVOA`oZ6Cy)<0TU4CfJv?_V@dk;&PcgXW1= z!rCr>dFT=whe?xpH_aYM#xi8?>mSgLz!<;A=X)i`t(`mk<%W9VJ=K`oB`w{^k%G^6tM8itWGmN%rbDe{A>#Zxm698+i71 zs$udOj2q5naOEG`Zw%)6FsWVH{%h?T!Ie^#Y{~F>+fMiBw)|G-z)uhacx-<*IA{ZO@(c?t2T#2g$hA3F?jgCwpTTpXuGnX`%sbb}Z^N_oF}JEmDzoQxaC0UwfcF=O^*CGkS6z?|Ak?9hpL> z!jXR8husspA49#Fbd`GF^L7-cdp$DIinV%^Uj?pO<~y>mLUygk;>kDRglny3I!~H}hg<sxw)G*fG9Jou!-?s(QZ5fF4uR|c_XgMoGOL_2u|@&{eB0Joz) zy?LM$Hmn_UWrjH(J4?Ug*`BQ#SnmLRN{Q1+Aig^~@tGf-pKTuuM}GGOf>{@_L|=y3 zwE%`ddB1k^fEOt}WYJjeK|5agEEsQgi15eRJiCK=;vl29Dg^{BLBi`f&W_0LDDKR=~ecNYOm!e#YKIffwBOf`D?YA}!#E;u=L zF9BR0nW_*b_QP71e)`xOLi@QUgNW9FJ{|+3Y<46Ja9#GFyL;gD)i6NRIg}Bs4(Im~ z2C<%@9Z;XywLFnrsPqGTP36-`(Q#m@HnxtJJQ&k=Hu&nn0`&n?=$3|ePvSvr+>OjF zH{trbWHtDbY#7Qxv4Sefp!*t7|DeNi6q|v|D*?W(< zDA8dgsT596Th%}o6VPXD-#M0Bp2-9(+Dq?umrAy6K6woqCo%0hh{wI zSRmFjzP`YBOt?n97&aNnSd0`6dUA0w$2H|HpdhD4h z6$SVIp%5asBnCKcMPHbv$7fG)zm#Dktebf_lYJ%t`}mTE ze84>rx`GSx*#C2m0)xVo^wcSt3%K3xsDNd z{c6<-g?KNyZ=+s1WkCCFtoHDDa^U*7e6tJMo&&b)<9@im;~dp0$B!G@M?2>1+m^dw z{Wkn(eAICO^(VRyic2oGpmkDwZ0IsQ&0+lrgKyscHQ(^#GkeInEli$6{YK(6yBQxp zi&=YK!OCv#Pd?Eb=HK_ijz0`B>-!sSdI#1nF5|DuvA`cpGZ~>fiT1 zp*9HspIDd!BQ7O?xEQzn69*Lmt$3Se+6@>NGuQ7p{76a)Xfx z;8f2=8|DP>l|GhEFwPjl{m`hJ&&cRxAc&EleC2X06KGjH$@fWC!OjU~iZ+qJexpw) z{A!=Zg7@doRu?G1^LM%?w$Gjx?jLQf1iQZdOMlqv%Kp)L7Y#;Q#?JFu{OjDsnHe=| zh2lK%nb+yn$fkog>UVk#_)vU*?HoE<>O)~bc8AU6;*T5PM82A=WFqRfc$9iqZEtr5 zNF{Sf?YY?7mB7d9BjQ0?@Ex-iUMf3V_wY%FH`kR#H^!2}FB zfE+1i_#Hm_Jauzs_XM|9eP7kA!1eRv!quwC;&AN!T)dx)7rb}AofGZodjslcC3gXA zPi8n)^pfh3M5sTuRnO^zI=3}Ac^B&o3xeNeAu_bToH`#&iFH zcf)8C(ZwE))t6>g@8*AB8{YkGCjIg8wSDlA+~Z+|;q~!$h0n0QiR**oe%v~#Ew|-$ zZE+3R5DTBc+H-s_I}l#!Sl^y2e%b41sIYPWcIIwp_S}DSK0Wlh`*oHLS~u|Abyje- z9pVDfGGs}K<>9YeN2g(HID*U-Qo#Cj|6KfAPP{%Bloy&ARMJg!8* zKuTDV54u0J+HaebSCIiu4sn_s=dS}_|F1fn`!c}lIJm!KJE3{u^NJ&8D%qoY<0<|+ z7Pw?YHrXkoh0d$(O6?LSyEb0mWR-TwS&En*K;!%vb3YiHO!6V^LEpXaNfhqGnmu~N zoO=y0N^IQm8bMK&G*tt zpL}auR1Vb9VU4!4s2pCOcwZ1S1>?wH)r|?*=+S}pv$wKjgp9#+(&G|&ZB}diQ`#74 zExm^NZf%>(~4o7GTKZ1A$0et!5Hs>}!?pw9PCeZ@udKYZIMn$iN-tYgg6_(C!hIkiB zf{%JQB-W1u#z!PKwnd!^MB|ih2FAYsRDt5kv^(~+h!Da&gQE$-3x6Ks&r8Hdg^d?n zxlGZxNcNInt*<*!{4(5eeYO;P46@?Sf9Op8)F88s2`q;6O8b&ofqQ;xmaH~mU{wyd ze5}d=mydl7ibTn6#sHTOD%H}XY4gx;xK&u+sG`staECBTpS+(ASVjE%=gD0$njmjF z1&7Vo8Vbu-d)+8<+kBo*W$a@>?Sg)H z8+H=6=eN-B-h{(v#>-Kg#UcFp0Fp}w-$gE<-#zo~eYYeki08OceDwr%?H0fbz9i{c zYk-3d<*HA4UDxFM?&SH{`uFfWwJP8KM?Dvgy@Gmn{_lLm{qAWv{AMhBPV?S10>uIO z8qzTer#y3u$L5D->L)1Pc4nOX&Tm*6D>xgoa^_thO_p}~`FJBK; z{)pB+eG1C$wp~Q`?Z`!yJsq(e=%o1PZhk%hlm@@M}Kb?+UI<@@&mC(@8ID`k_AQ1(2OO@!=~ zQDkM0GBP52WMrjmvdhXkvqC5tO%jzq`1~9%-{K! zI?t6o$I?>ZI=Nk>;;}_A2nb0~I!!IagS)>&Zw$)Ef*VB__0?qmKHoLPlcxn4{pk6m zJ~+O42Nzl|hRva=|Jw&C-1FY_qg#$pQYk%{@FZN9iV)H7s@?EDFa(iX++nShI~UM;qrA_QDd(O*|Ezrsl+V-*iRULf z%9kYfav~b(H?zG&GF=g#*JGzQ%bbu$?HYuLJD*;0DroKXVOHq&!yg%%AO4MfDg51; zL_bs?shTj<<3$4F|J9_LA2)^)_b2>qex1cT3Z0+tWsgsiPr?1fHSZkfyz$!W#uB3a zBG+qv3he`a(o)-ZXSo2^hRBE9K{24-MSGu%yF6ffR;9qy3;n>w>d4py#i%Kq7~cYATaI z*etm1)s5@WZzAEw#-Q^i7l8dzdkM{Fc>mi`@};cM8=gZWHO2Qbxif)dLC`___zOVs zZc%`jMLHn#-Ft^yWVLIPLB3S*mslCJ-pp$0%YsVeG&ib8bI`pI$XkM*lcK%jUgvV4 zK2mF&@aEjB#PdXNax^V$;zaAuDLnpt{KOl$4g?3%dGwC0zTSNE&MfUBJHq(|(hrLE z3TdrfkF;m&%*C=M6mK=>wOeeXIlsD1+d4EU1 zr#da@eR3qNrbJ6|7w^{GSq?z9-M{06VC&T5uJ!aRH)*ib=haQK0S0Bj#_# z&Y0)7yc2nS5MR|@oqMoYlYr%MdmO+22+sTD%Ft-0F;8&YPf&dFD3sq&V_8hQk}IxX zO}G0y$wVJ;@2#+U+)Ny(b2{d&t9}uiF?9Tu^9`Om)qUi`Pc!0y+d+-)k9N>LYN_C4 zQ~3t&e`jq4oX#gkfWn8Dxwkmz1L5)GbsuYjfWuth}XS6Ov!9py#dWXyw~}_ z2XGq7mquhXJY@I(ot=&l`2*q1dx!3l; z?xnv9Wo~k5UjweMi#^}BUBcvQ{kT->pkDHTMeV5Prx;)$)>zQn0QD0oU&|hx@`n5H zsqr62JJhd%)K@-sg3T_Vn~yi`@s^)8{Xx=pTINFnEGxvi%)%;~G?QTHoLe$qA ztv=w*&@}z?D=8TMct4x%KQKH_#PG*+qS5429Pj}R=4k@^X4kGC*>m-{zGHRfLX_|bp)};Wd*iL0$!NZEKi|`qCbxRXs4hZkuETfVukxbBM=3=d}U-m!vRCYnVr}zo`V83DiHNV%7>T(volw9O@dbPLrpBKnR z+E?Vb@^@nMp#^9CwLjNhtlFkd71e{B%P$(T?M0t!CQ-J(aw~k_yr+(aSKHTKpKgWX zZhfBUkw)_jB*)CF=I%pr(m64@=fZXHe$rfExL~t^a2|lw(#t-r_U4Bg$a{!Cxhrcr z?2WYJKQ~`i@X#g}!f_!h^f71Q;&}lc?EJH%o+5p&n90ED-|V(=*oqwR`B;$yJ|9Jc z*E|L#?J;~lo}`G+MaqapN&Hkm%NM1BQ zq-Brdg20RPv@;jILos~*whB}`UVD5M!{_h9vfS|byY2AvoDY*B((mP)w5^|K zLO}S9C+k{OE@AlmZ7d6Y(7iqk@E4z5e`o93zk8o}f9V5WR4=LKRYNBtl7zIk;_=xz z8E|EtJ@I;p+tqigTrNQMoPX*H4riyrc~r_eKFKIWgI!H+{Psc779;&gfpM^0z{xlC zPr_HjVt6jD$oJHpFJx?ia9xY zeE(?1-EEFWu2_xZWapz6c%Q#Qp`=a8gPvQ&=vOayl)`0nU2W8nYqm@(A-diQmiZ?3 zoD*S;w=_zwqR&~LH!FWX;N8c;LB4u@_zDF~C};%iL+f2Jwp7>BoksDHUZKsvi6Dp% zxLO8wHMXQ*L-jZ*wn_VUNW!>4rGdT49l614evcKped+@rojQuUp7P}x z7?Y(V?abuLWq+DsK1ysS(?^zJ;^&34A$#7ZA@uwA2>h66{0{X^d!lm1Z&kc1P)4ogWpE-dcGI>STb&Y1t9Pm(shA=ntzj$3z3 zY_X|b1)CY7VLtA&73r0A@ zoUuxRe^>6=vi-jxGPXWHA|}-|4tui1CO2yqja}ey>A$48c0Y_2ati`;g{tWJ)cUx& z=;9Xie2U+>spp9W%+Hdec$=Tem3Tc+vOmw|vpY~bq?vFAd&&{0A5l+uu)xIVfsHyZ+(yb>v>V5#wVw67QGLj{>58M*@Ei%Z|*qIOql`a5&0ML zI+~}%ak93?$%jdX==atjZKr$p39gs&kklu8yH|fc_sN-jzNAZdUgpccnXYVJ`+Z-J z#)a<6DO67)9`fS#eY$H%`%CL{Kct4CovX?yNj=Wmm*{gRo(6U@Tuwv!Niv!I++GUx z^wvpt?|8>2uKGPp!>1RN?i1c8f1I_?81+N<`_)p;!9E(zadh9lbfItqqYio>9UTh^ zzNQZ6jaYe;#}hO3{(?{Uz6dEE6+!(4XmU&g5}cu(-kw9jHG?i<)$hYT>K?}Sn6Mpk zwe|amQE6SU!A%L&-GWYZ{H+;AZ6x!6BmQvt6EoHpHqD&cxDXZ1jHV8l*q_qD*>CRz@Yf9UG2xPwr z!Y)s1W)2=n#`Mg6O0#rhz@dhn3o1%*o}`Th@6rF5jMbf+azCUA{T7rjMRVqkK>O*g z4mn@_BMI2R1Kz6FVHQ~au1~j8Lc+0=RkvFo@SuLSn;2B%*DGDbB*iKhEdGsOXylIv zeBLv8SP}&@dyG{!_QaNh=9vB3am@;G7@ny-^cKZ+k*QR#Qx%et_Bg{|Iu!Jf?;OVD zGg?c;ah=P{Zx$+xsYt)PFfFygaCq;@H5G3U5nuiJE^xw)&tROe-ecL`M|8aEn=N12 z@1pVH#OT0XlCx>q=>8$%dmxRm;WE-*I@((QqZI1#zn$BBrp}!BIe4M+yOJO)dLPb{ z{yCv$3jM~Nd7oR@j;#J13^J=SIxtUI4|uiiWRHV3@$-W$F?XhriB2oRU2G;F7l@)Yty<+1tVAjn>u0C&h2)9Lc|;ep+7VnX~N^pd4}xoIfTC zuiftRKTT7?BV1>h4`QXsfr@_NKA2Bifr^%4GWMduME>PtYv4V@{zG03)(LI%WMkzM zj{{|{M+I+`!TEin`De<+cXup^r!f1%Lug;MWfo4J4}j}w;_N=9_;DAJhQ%Lx$+I$9a`GSXRWW zV&P$TtYi4o%sbO$EKJY2(kcS=6Eo`-HJ^4&#d2@P@{oMN&gFSNKc!#v;P3sj|5NG{-$d;#8&w{kN5(M{Fk*|If&1X+05zl3;G+otv=RHAbdIC-&54obRwje@6X?0f zPj4LTCrKPP3y=Re^2KuPegTI??ilkHqw{LYBG0FooH#yU>bl#1?%dz|k*$>+UX(gs z7yjq*F$raHDC-Hd&PKV^CdKEU?1;W!;rwl}Q~AW}2GhLNeov-Chmo9^%GQ@O!bp;S zhLniG^}AX=Ms?(zy=zf@>+j1;Jychq-Bs1^1=me#M@;Wdd$k}pTsJD$zLeCRTf4rB zWw%z8-(D-^xlbY+w6|R$UZ1_xS0z1uoOr#rR}>B$*&9#&kMC>0ECZ{HY5(5;Y_$|B z%=T0444NlMm}!r3M;+mHwpRXvT{&1yMbZ6ng%*v41qLk8JTJsZGfQ8zyc&%QJJMm` zQy+!;U*S`>VE zT(su#E!5wMEHEp1^e~*KB?RWDhDjghPLo_b)n+erSX1-fDBj z1p_P8pOAg;)FDwl;{NCObYS27fTTF8r{b7aZ@w#n>i_U5beV5r{YDa4Yh0tya}S^B zV#$?55?3ETwL-aP-F zb*-DXLI3_KnsDPY$I-ej_@uQUYS#UJ2htB@Q43KBLBEow?X2IfD-*Blx?1wc_#<*L z4_yy#$u^6Aj3|D3w=v89*;d%TzVyy+X#j}6-#)h!cds#`_+MRzraS3U)@2JPRJ5W2@KTTT?@ob{^cSW8vd@?6Y=NNj=ba85Mm!^jGzs^1O zYOM(%USIU>&gWLN{^a>JP^ihnz$JcQwtNnhy7E;>8-}L6yuEWH6XR)ysR&3 z58gc^)OIi*#+^7nbK~zhLHs@ue>g5AZ4iw=i?)?7X*vmUx!z{VO({yNzn?79*_aLq z5xy@5PnC%E)-qs^Zdlr#vNgjZ+_K2F={jML_}58?bVy?&CdELsk_+x9-?Znhl^9~@ zwuTFB*$2nnT|&RH{H8v(*OX+`b(Rv>Uj9A(j1V2fTW{$e4&3f{#<3a}pdV~qdRD7%&smKAf_0m_ z?2J_0cFUFryTowypNPFbV+!-vz5{E|2l1D91NWSN2yfuV`%m!(K0U0p_ul&A-kR%` z{v~d~@%<0s7ToXuDcrI`8t<9Se3B3Rb-mJM{Da3(%Rvg7}-R5af3|a?ug;ra?j|d(E1n?Ljg2!;}tHfh~2p+@z zeyw=ypOVx6GOoit=O4m#xZnS8;kti{mhmC-Ud#9pX(xaWiN5bLK19YNfDiwFBfk~; zOPq;&?|%qq;(otYoJnk*Zk|7WTW}9?yVQS(R{;UM3W(rU+m3*Vg2C`urW}^pMKx2#SL3a60 zg5yo@lsU;4^I!k(zv!Ft+6-tFDGMDAz5u9mm~YL7!Z>4QEuN^Im4wH^r>~4wpRVfP zA=qE`-7n_7Of|^=cR7nxGP<{edTDGVMn@DJnPJHL&fo_&bS3Xs%YuG__swqkdRU;p zC;L%mcI0RKs`)f{`7$`cs}|}1({#V=_qa~5^)u(gtmJTzuT@um^?d_KdWXprlQ-e| z$Cx;1Z4*cB9JJ|+A1!{v`O(24LnlH)Sbh(hx?@s5-LObC8U0Md(Q{9 zU%6M9n%8>=?Cbsf*~TFfuxd)#?Hw%#BBZ}s4s33L_)6rJMtCIpT&^AdDFb(*-}pWC z-uJ1&d1MtNQ*&B13^_SfW2aK6)rHvE}oMg8Xj zbnbMd9fj+E@OS&J)_Y(_`rocN-N^ zJ_*rRvWm%JFT(Lpx#WXQ&7`Y87uHIfe!9)q$)V@S-%>%Vt-wj~4lubSv%lepC7?Md zb5tTf4`e90KJmHgh{Fcy|`K z@0-9vLU#+-o*!$Se8C2;muH)HY3mplBjaU$mirLgRn%$?1TgM9KXQFmj#r)YUpmAlPgCDYz#e{E+gZNYHD* z{r+LkG0J{9)NkYH3`N3g`fy|&;rCmS^UB{IC(d1G_o)L4Jn{!_9%#h1Tiw{j+P58k z-|^D%w@>G;Bjd@wdG|dQgLP!v^q;QVdcPAGa0OJ~jr9RrmEzwP)MtZ)iZrpf`&FRf zQTa3Lby?ug742@`Uofwwp3dQgJ#;t0U8C8NT{e}tcH2X4+}BF{j8UER)NzBvcVl$1t4%t{#%S`F0S9*zN0rQkKY7Q5@xl{ zK2^B(k00;7ZDWJa)l4_7ertFQ#Bw{l$|~*v+uA}e?XCy~ETp%nM+%BTha*RL`k`AO zZ}RQU-VHIphG(P54R)CS#X{1O7Q0jgQby=b$QMGn$!D98(7!1LUVpN!?Oww97r@1) z&Uy;=qdV$YbXx2>h#Km*`>>}41UQ#=bp5;zN;sk;WGbP&hfi`u7+$Oa=?|{UXtu-i zljpRwccK`apPE`dR}S5+2Hf>i&2EE@;M5pJcK^dRAO_l^2YG_Ax${(>^hE_2n^pei z<4Gl$7E|2G{g1M+8ZD)HlArmwdqumUWyuN3P%L1AbzFOmy6=-CdvmcWhS6Gy zjvQS3wx$N}eg5URzkNdDJgnDU!=$rmjf=xBV;3~lX?86}g7TaDe5q5QKiK|v?}3@V zCpcR_+A??tb2q*z%V>W4u8ghedD@A_5fFP*I8WxIa(GPV$Q=~vYKFpTH0?vK|;{4k5Ez&mr1 z5Kmz1DRX8n7h-qlm;!8?A%2bG{PFSVdbloxr{AWtnxXkWR!CfT^mfFKj#ck_Qo}-= zADU5I3&hT?m9P4 z-j^mt@hc$`8;zA=l<5RPAb5qwZS^WxHJhXYGN;nAGxHxiGh`r-rjo z<=KJ?V9)Z^d(y24ghhBMrWDo#LUE?vXDTb2xf{WQ%et4W$|EuICzEn?3nf@s-vt$Q zrCN-);9S)4t{}jCXsc-33+Qiu(%bOYdZB#au%)vxsJRH&zTn9&v&dYCwM9?$j_-zg zzt^LgR-E_CaQ!^~Y_Z*SunaR^5{NC0ti%Q+B`T`6R{;5RjUEq?EL^`~bGaQ)WUpWz z`*$8qW`OZy>TwT0*?hZ+>vwd2QNcrj8`uzDykRsmz25b<8^}C3w;XTiE+IAernVJ4 z)-*`*F1UcPh0DrZ%+JH*-tCvoTVIYz<(&R_XCw+cCb4eGA|2+9Rf#^O%$Ro-GY*`1 z^F9#H?^E3CEgRPtU^17v%~S>9J$hVy?^|kLm}lYM&<)-iEFV*8x~9d*l8q%S9Df;k zHWtg-mG-z~0rKl$dx@m>%XMtJhJmkR5w71-=LZGiD$ozLXU|X|hiegbL0~#p?fQqt z&uK2y%?z5j`cQQYTyM`xp>kNE`c$&3?{42-^?Lc@vwbkm4aEVHX+<<2NNyqRr04eS zZ2SWANpPjMG~PWzyngY!xyQ=g-spI}0b-$Yq_A$l&+|)cFUD41k9Cvp40ByM;d;%x zgGJAD-E1Rd||-bPCk{3G#~l@WgG>TaTHi3jsgU56d;15aP6zaQGf`J!u@`& zIBKF*a4Il?u>A|az8}GU|2udL_a6Tc9>a~dRy@Xe*`Mv;OVoa}LgN(-?;YO|&sVuh zT!#_Bbr=y`hkL(O;yR27uEUK-2-mIb&vwiE(ek=O<{xd9e=;@X$-As~Pcaepu4L$Hhw0Ukbt`~838LqGr@!u{dD z@!`t3wz7{C+^?492FiGxXLv}iBmcjQGr=;>1VnHqSS8K`1aKxGf-`aatrBMfA~+NG zdqOyK1sC9-gT(eTk=Sb_RZQ@n_WyCbihJ*W2(RMCTPt2Aw%>_TmN4uLB8+GMr-{0i zwmx%{%jxZ&gFc(A|zp|V(aJO~(myM>#|4f}Lk;N2yOwa3wPo+_+o%3FK<_Pz2a zZ2_~W-Q7R5+vQir5%Bx-$$&j)Lcz}`TSbdAE`ycl;Qx-=o<`<@Ul`Wr_;9{1VeR!v zAM{nk=_sOk(HK?EJno%aeLaK~dPmDg#bITF$V0HOxn}B&CDPu4HCB=i31KJpfBxC^ z?i^MqJ*s;7Y7q7@Cs@ohKMvrJr}x8MSkxj0;E(rCn)r+I44I zDO6GUi7QaN=C(ui{XaM*&s!nI;ge(qo;IMbb|}aAU-Am3>p7S9wywQyQH+UqZ)qmFE+_s- zCw$95_5DHoY;97#u&!~mmtgNRnYGuiY`QY7Q2GXyr%}#ab5Sme`!=i3Ft;hf`xT2l z+3~6@;`L7mQQ}d1Yl?2vZ&Q}@P`TYfRL^8Ny^cF*7sOX~o=+sx=M>kxuJMU$rg7+1 zw>t732fiM)8YxHTDgJY5PZ=j2@*s>eSLnL*0M!d=77(gFB>FPf1~_{S)EF*>fE795 z^RXfad_I1dJu--Cwg&ioY~SuDGs_M03zD2lXbcGR2E!YI<>qn{fbhKvnE_fqEK0&z zw&@e$It+wpBe$VRgE8t)c=lbhyrfAC(*ECdly zU(-1@NYOWo#^;ipbtmQ1LjA0Rn2)-}l|sL`Q}q53hS8{>Ha-ca^E}BvV~_Nsx;E9? zutbk_@>}qFeRRNF7}=BCeurVRS5*U@@16(v{Ecr9=(KQ51Ni*?Se6?;e-^ZCrzS+9 zUuOQ9*s}H1Uf2<*sP}m>5!e{Ry4lQ=|F!Sp@fS`h#L)CT7SsH|_~dfr+Us#0oE*N= zw1}?r^U>qR1FER~&=QZ&ro^SKPyS6EN_>)Tnm5d1NAo!D|2ins?+)_-=!L~7EDBHq z2ThLfn88!P`o2kJ*<27#zF7@=)IXeH+~a-_NKOr~ndJN{zpgO60dNzOc^{!S(^QE=2 zy$bp}<%cTTXBe*`?FGy8VdZa;Wxk0$XKDSzucmBh-bLqzO`H|4pxuiq_=C!8$+g!Z z=6X%-w|5Nn>zMM)>wjc``iVKc$x#gc1@lyldaz`U8x!|mEmE&bR9cVv+uS^8u8@@k z^G#&RNwB+!{e9j@)3XNs6LjEhmUtb5mfmH2x2opn!< zT>!0XGM~mASGxh`f4k)8f4-3VKd*n%-_c{HERE(h2|uMdp5=?ix95dqlWaN*V7_ie~Q5KiiM=6S=9ybF~o0LstZ!1_eUI{k&HQ%$>UV zNQVJ<#%Dk8ery2_-?k_OWA5OzBFFW-Azfe^v`#w74(4rtQJfq5y~+g?P>v1BY=Y-K zDQ%ldc(EDi2z#^6ksQWfY5o$AbDoFmM}+Z8i<}xHRRtr_D-OATr=;v6!V>f_mcaT>Xz6o z;&~D*EvU}0=A-A`%SXe}ET7={1iCerguc?6M{gX@hP|42-^9M~{q(4}sBSlp15fpKj zA>YtE96rV8o764~<9;uuDZ>?OzWR8ZUYcLsohr8p&i7KUX8w<59AKZIxZ5*ddk`E> zx?yxC1U%L$FAKAh!9=Hpo;+V?gnOP^e@cPkpf)D=R3?$i8saGLK%=kr71ki^wRCa# zWf))Cv5_<3b`aE4keQvkpWS^9C@YGI&+m-}55np8X_bkCt!31V8`B`3(v`ZRbYAQ% zpb;7Qa;po*TU_X*;$i*cH@ZT613MP8&!c#ig>UN^&m8f31IlfT4c^meJzFKe->UQ&j5nftcKGMU7pt#dkU3Au+*M6D zPaosM8wZ%Su3dkMPv7~s=2rYcahdC)!;ue7XkCh}cyh^9u8vXK-({ z4PP$Lq>cy6^_r}H9=gm2pEkB^%=0&mMg+o`bU>CC+uH|vU^~PQ0eWRQu7|=~UxGGQw z&vT6k8Aj5raGg(X&-~MIFaSJKG2z$#a~afJa9!`=a|z@B^eZH46vmSnF&vHTGa&MvcB zTI_kK@WTqdzmn}3D-fB9LfSFF>hnpRxfLZ!l}orD)Jh$2V&kwKjQ-Q!hSpCYMqg%*-^@=!_bpHoEjwF| z+MzBLk3`4M!ThRUeZtw#_Y$wG?H`{gXv%})Z`#0}zq!R=oc{0WU!Ontt$sg~oLZ_e zEF`R_99g!X5*tV5<0qqgit>M*pWvCes-QzDy07JJ<1TtbbpdIg#gm(I;bZyvgQ7(F zeCIG8@?H+jpSFM}H;xV(fn$rSue)j<{eU znWM}Fa=Nbf#R<5A)*AX0r-3*iDN}yC)btca=K1ZMY*Jc6MH0F>D5mGC&?#0 zp)S$D%lcT|_$w<6Uykx3{7IW_62M~>x(vT}$r!#I*U$MK^_u>_tB0C3_a&}$)Cc@g zojOjk^%@9nCI2X5bq!pbb@{CJ%pHrKu^J@VNZf9Lj2n5ZE&t})>o)2ywH0kBM)i2J z8=g{4f6)fPea#-bHzosK-Y>xeHbr3NIrzW3dZ%gDH!T)hxbR3(aC+@^pns-Z_LoXV zac4t_>HNJbYp)y9^vj1NrWC~~S1f&i$%r1(9+cj-Jw!_c3p9QEbHj)~#;Py!tcULc zmgZojK3AU!@Wh*Ly0m5O_EfUdzdtA+Mdh%u-7BDY z7`5l5snFXdc|hD|Yp%|{t56UGY(J)RL(>~@Zx+rp3OkSE|9udXQo1CJuUg?>rHguZ z)Clx{t0|8b<6S%jG8PAGKiq+O6i2R`>YMb|o`)!YatrOxJB7&a_VdN{v$^LZ?Rx}G ztysF@Ij{0d!;bRp+UrS;^UGW@%s|g+1NNh)T)n8D#(76h0j&XeuDtivO`5k_`*&QS zMwvw4-DK!|qe*2wbt@dLlSdJ*O-}U*zNbyy;;!fZ(toXwS)o2k#3)YM$+rw zp{QK(pIeuu^0AqMxcvM4l}MZq^Ml9ALdOqUd4W5asQZofWUwL!d_Gp>fX_$x;dLc6 zqpkp-kM7QXwP8buKkHB5u%-2oR&({O_j zJBY=$H5QGMH%9|}{<`81%6AMJw{4-<|$}PoUlV#!7Z+Z*&(18*NBr-ugU9bf`_GJLD?EYZ=bh1qEMjo-9m$?gcC&%= zo;u3Ec=EIl$fIQOjdh21NR?j<*MHKlUT=gOuOpJGSQ5o!Y-EkqVTq`pAocQmSo!8JNb=IF>M)XN)}dTg}cOgP?~5JlP3^OrHA`oE>fy_>TIQF}-B z;&hH7A3RrL?ENMD_Y&71KG^p$aj!Y5M^(*{*hYH``VFyf*k3Nuz4rZYg{BM+y`&UE z@AHk>jYktfHqyS8Pwfu75X>Xmc?BqCm=M?3PTo6~o;r=LuaSk#e4R}&Ki9peb}ECP ziGTe*E94<{z9PjA>IYY7>1{@DfeU&bZ+9XylJACova0Oruf9y6_e*@*JJHikRfFaO ze=Yuan#u*@wV$nRpO2~ib9G;;H@?{*AcX1xX=@@ALQEr`Vym-N2)!%LJjxyH0uXsSe_>_fdz8hHQ_9K+u zJ{-`=4bw8*asXSl8MBE6{R^*YCRCr%~xqG*7+wxLVFYF5}{mck!}s*!EY zdJnlDe$^Ga==tQHdgA%g78I9w?Hqfl$PMk}+*N$8ABNHTy!eziX&Aus9bMmA5vnh$ z8R5F2nQ(Kh`n~#dwyS60tMJ~n``M-jrTxB@iN>>?>o@M$wl5cHuk9Js9Z-Px6Khxb zMW-vo>vt5#lx$+YkJbxw_%^(Almq&`hdexK{hbr-M~Kpn7Sa`I6R(p_h=hv9Z|~JW z>t*rVShvKKqjDLb_U^E;0J!#N+ZQtbC=kzg^X-_!@Z%74-`KDh2WTEEV0hKC(r&mzb1Fw4;v7;E zky(y{Xps7I`uU@rY(S~%PqDej18k`Zr?aMl_Oafjvp2cYqrtc7y@Kr{FmGa%se7S& z2<#_v^nU9b%{(x_Y)Ab$n?0VrBO9!Icl`H{N!_5`jvkS!av=S3j1CBZW#*g%Mt4M^^ z72J4NF17Z9In+Oy5Pi&2QwNuz_=XS_GTJGu+e-NP z)rQKq?rucmT~Y~44_4+--Y@H{ajfD3z3VwC>Bwph7aAG8PujRMianz6J zDOJy_*NG@joWPSy=(e{K)xN~_vAW~Z@9aOIes1`3k#yZw%#^r#f26Fj@{R(s$wor| zzeK^6`HGB@=)QBEpLuCd{6X+0rK`GJKM=I*k8m^H$OQUDmua0x0x`^g4{x6aytgp2 zZP}OEo{KqxDCKpNFrKeIQM1F&|01yV)i$bTg6CPH1ZOal9mECS3-Wn|i!K8G!N)0y z+}VJ1k!ELya60A~)@A8+7RFsv&)CVNJ;?#8pMFs0ltCPj$M8cl!W^zQo~0#;fG25S z_x9X+3HDPU`<2+Hv!0hgN}CF~w4*JCFQ=JG52??eE`e6k0~@dQWn=hqdUyHo_(jhu zVAQ|w!p0qCz)WLeoSIirdimcq@8gp`i@HyrpzFO%)K${P3yr@`xc`ZBMia(OB|Q$8 z`&34}&RTJp@)M&tbie8adZe5+Fb>-C_~+r?#ntQYLwI^?BzXzP*C^gC3h=TZzW>$G zxg7THPFwT3ZJ^7U5MV;@>y;@n3MWX=eX?(T>!9Kb=!-<|p zhfXGtM03M?E?IomYrR3#&xR1Su;qWccN4v5uh2>y>T1XPTgp(1qTF!|ts}lE&Vx(8 zI0b3Pms`Y!{vzvx#Ov;j1U&qbZ~?u40#EfAu2 z=eK`VeJ4S%U-j(wo{Vx~z|;0c5T9O-5#nzUfns(2&;_o5gu(XMo+mm2$EMNGr(=SWxxRM7=TjkpQ zto#E5K7?-~oEM%D{j_It(49g3Oh!i{M8$%{Kw|_Da3}W$tRwlg67#`e$vL{U$45L;Ao1*Yh5EnN@s;VDJzjhMaVamcZCwAxeww}0!@t%WZGRmx zG~PPJg?aN~vaU>a82`o!9rhY~j85{5YrAP6z#lKdflAqs$p_$%C$jL}{k)C?=6RCq zUCP+n?c<~}<n~os$Y`4G+=xP$5KU#?4lr;`hBR=vfcx1$R3k? zmF877_TZ5r~&?PE3yeVewajMt% zzPkL96g@vS8ith2Y>Y+U zgXQ*g>dZMP&#u}9lKTh$-tV!=yq5juZ?qno0!7yO=c8iCxCZ4$qar5IFWczeHMepCYDj z^CnKSBmH(?bhaGVCd0_OTmAVWj$`t-?-{k^>SKm+Nwpolb^xD0ilE?uemNI_&tK}Y z-0=BJseI#Sp-h};qSE$|LYw)^I z)c;@M^_KHK4KVKYn`$$K`6BUr=!EF&NB!<~`Y3*h=!$A_8b#0HFn6~2`2#RMNK4*x zV#^=m-^Dfg(vPljl+XJo@5nigL4Ed)NV+g7zqRKbz^9b%Xwu{e82^gncWc5RnJ#Jv zJ@Pdf~)>+l3tgnJ>sZ=U_7n2Y`i{rbf{oA#&H_NZWMa0*QpAApUu%BPlRzQU(?KN z`u11>5v7;q7Z1Yto-gOZf@(&!fk#((ZU!@~$31%Q;MQG-;rZ^XqDsfqa{`Rrz5V)+ z$SEM;XO}N@PY38$Q!Z#RLmc+A5paFeUasa(y=o2k z$zJzs?QsPhCH>W5zGpy^bW{0;g};wiq`b!B(~Y6{OUHu$V*Fh+zu)J5ZrdK~!*kfR zS7w*#EmNZ3fh*${cY}&K(oby3$Xu;N0@qGDM`M@YNZd}lLWe5fKHha<^>H>Uv~=>z zJ(c%poMy1f**m9`(K_3%cdC*mdExhov5~#=(*ylIKHW_#$vhx~exKw_P0gWKFb*L~ zV=PpZ9E}epMD&t(U$XZS$6JJGBTK7;KFKNM_jmske4QXgrt`gFol2I;qZs_?>rY*=r2^l`)C@od6zVr!-F{h_AiVhlj$omAIbQgd)_ zOFZZlas`vmbrNq(Ghq3P&7v+p;rgwrew%&atukOs^>%7%h4a31_g>@vC2dfWy|n4> zPktP~{;m6DBsakMTzx3)@gW{Zz!$|U{^772_}!j*{lVaIP^OqV3nt;bsZscn@P^+A zeE6nS$w9`CYo8Y)ZAnXjejOqY4KT}I@0GaJ6?-Zm^xb1`omcmGYzKyGtkg~99RGS= zkT)tZRVbi#mL1pMXqV2S=dQ9^ZUucie4f#RcYfyj#PfSZSq_DmjUGYzbxZg2Vb|fg z5wK49&-G^F$s4&_6-b5w=%Giq;h2ry$X zrGR)KghV2ig_`(#97)>Cr+FK#j}zW@DueQ~ByPM#sq-f@3s#ROAKl3fkv~k>-ppR> zotn-6_w@`P8(ydS{Rw?Po9jQYkLjpipW6NJn|8l|`8ycNLfxjG5y$!ctWz@F|7LzZ z5Fb|`j)Z<(^j(^P^yRDf)7L+KvetEo;tJ zru%5#F`q`$Mt2|h@H=`_L-~2(Le{A1f zExjF5ef-vVH|VuEYkN_{23)D@k{Ymg17)`wNM6laVQqKVs5D+fd&*6^mhKlU+L$?| zh;nBcyl-jK0xm~$8xS99x2~xb;@v1wX%nX#P;NoZx`&;qoxsxuI|u*MMnGb_zsFN9 z3&4FU=2OsTHC(?O`^wr)JM=N~QuD&H0C*0*=u+M3v=2U4+)yz1$SnsT-)Ag5@lgY? z_8cg!&^-z6*l8*3{})`pLeoA|!!I=y!TS%=kw0~vkpH*a(Zt;^W8O4qs!#ppmUh#F zS&45Pd8@ah;Ztq0xTcp1s;}_8RAlw;2D*<&dj^vJV$j0zgt4ms>L)R%hcb<@JM()J@w^)*DuaWcj-&d6rZPjh&OHydRW~s1o*<7&PE;n%zp=o)RJalICXi+VkG6P*&r)?=S0Zk@;Rz zYP9FEBf5`azpu=V^1*r6xAV)JkXqvP*B_Sr+WabiAJXr-`FfwLUv}Zf+tulQiaZ6K zum9KNGr8}%yZIgv`X#(dCd?A(X_3FJ0d4{M8K!qyN)+_@C0TSMRQE<}<;h zJLb(h51z-e`ICHid-&t*swq~F4jG?7?>WSXke!qmwY?ZJ%rB-vp0{XJN6Kq<2s4be z!oZ>{HpVX0b|}vuXII7l-HKhcTFR|Xe8yJB$$Uf+gyD}je7)3#+RY!sA5SWUMvYw09|X5e?M?DK zx@NwQx=1N$a-nhZMKZai5#P{#ZVUFP*rEJi_Bq8Amx1Ap*g%`1s8au7%;w(t@<_IW zIR1;-b_O+dLI30x{%@NI3T`roctZPdqQ(g~IgIfW>!@Qj-2cyCnH~!)-m&KQG8ZD9 zRM~_2U&qXGR#qQD{aEnrsUNjv&4W*%aT3Hx;D(>!nHdx(#mx=7ie5zhwDIk!y%T;^ zJJ^1-;P+cCt<|o{{!3Ez#Rd4Cqezy_L$i1M$NN=;;Gx#_=F_tH?LyH!{a58te1!kp zQ2W7ampU|v%KxM8=8Y_0DY1&yIsZNe9qjhffk*EWt#Ni$d_Gp>fX_!Rh5T!J+T$2L zA8Zw8Pc#c0#_{p$5$R`!VoPjKoRfH(i6ypTSACxzdgu8xaeFX6SvBT&MJu9utNSz- zVMe0pd@N>^CgS=PzgKtJT^GA^J zzKH}03UosIK0|J&KN#_ABDPD2F-&peE!Uq z<%ZAS(6IR?%3clJ@A2(^{NGGO$c={S&%J&}ssBwsBhpWEVa7PVLJrriV0>3i#&Wc!;>9|7 z4eO1VM(d`Q%OiSVMZUZ#EFDI+5ZABB*G+7!QF8?1q@m^ci2vR1;_>@+yLCosB{|k^ z8O)d8V+~g1o2t;LvG|!A*U#hYS@{R<3ZSjfV<3JC<{KR0QJxlly>`8iXS|1MM=*N6 zcaO6wtDQvs#_{c`bIW`adrpVLjAF(P6d&T-Q#W0slszS~b~}KUKV8F?X>^{v*g)HV zxg5QBXw^#EKH`J+sTiMNfsNtF-#~M?$1_`5VK%8gzfKm2dwt-71Z=M=Z2&84TWsYnR=)@eCQe3Q<08rr-Is zO@oMsBzbtzJ zX{vOc$9*iW_ws+on9ab&sCufzwiyP0} z0^QsLU=KF?>)Izo9l3chd0`a}tS&vwy#o+%#XHP7Q`4hy|%7RJc9 z9|60=1cx=!-g1ABlujC4FV$z+DEs$qAv({RzKC7P(N{(KoiAjI8+i`({_m^0ccq>* z{EycoF^bB3ann{9)iZk1eY2?fH+F{CHyQK_24P%yU1Icw^zVf2I4cyFTyw^j7scrr zJO{DfM{vBWw6mK(c$)uX>y;SoW4|t4r-|xc&(qYl{yc^H9oNK&^%dTSdgEUdHgpfB ziR%+ag)V-(nu6X(cmyVo8C`__gS&I(7klOAk$VIo>i-pLb&Qg59&n@1gLd36sWCe@ z#uswpI@n{c9BZWk6O8h^KdWM&G*IMK(Acg8*RRh0^rr=SN5O(A%*)e0eoxUs-0$0Dx3>6vg6ns|M>4BuH_Z2oAE!#}{RjP~x8!@EawkTS zHMI9$Hlypl_U7w@YMH425WYS2S>>afYM+Vw<1>X-310U>=T8uxJ=HMtb(x_HT4&~O zX;7M7ZlP>;&H0htsh+SURiOD-%g0SXW;L4UAK#v;#{XMjW~TyCxo}Mj9CW*b+S&f# z*;7sY^Fm*V6OS8TE!lBvN4s2M{p);>fduS^4g~Cm=ke@@`Kz=W(rf&CyP+|j-7xF_ z$ZklCilV-&{dPv}9z{NMN{Lpef8lTUEoK|IVZQmvU7WGj`-%GpkfqL8F4CaSnYGgv zw%rZ$E#!Xu@Y+0n_3;{Jfik65Gi(I==Y6Tt~t?U-8R{dSREkFTUu051$`+d{5C~ z7U=I57Z_Igy9o79`lsdew|3Tdf+~`+38n~t%5=TVTO84S9N(UL{@3=t2@h0%k56?n z)+b57Ya;#d?WsrSIJ%zqt^NM{e?{2@?1FU!?1HU$cEOQV+66}m*ahqH?1C)+AGHe- zqrUA5PkJAq`_NbU<1u-$sNYRwwyj)!DXc4XCU4S2ZfF&93|VKKHiz1?@2AIlI|{?R zZR!qGS89%dRm)NQsu<|qNBA6Bq_Z&{5+WYoP0T*XB4pyY#flya2)!UlV`YNfYwx}I z@T)z}uF87h6@{u2ykCA>wyPG7T3lb~fjEy3eD$a~YKeU-77KsA9o~;?oP#*9H~$i! zlIxd2N^6HDmlx95Sejx<%XZc7sCf6dVt6k9zI9wa%iRSV^jr6-IU3#*kB|O-8KMhu z?RuqeRozr>*sEVO_rLtimkLvf_OS_K$Ki>!%5f!cGJd@8iX6Kb=}yxwb^|58#VygN z^Rb4d$Lp@X>IN>cS3=_KbHPuJ2>0!gt)LM&j@)DJ26r!id-wUWD|V{rkCg;@DkdcG z{6#Ej8kR3)lcc@12h7Dyb2a%p0RQx*8M@9(fYNG+e0@|R_|eU(Ki=k!(U7G3`Zag2 zdfq5VsV2-k>INz;yeE(EQ^P(=8azx=h{qf|D#^uka*3>w)7{KlYd65I^p3 zb_q!E?*db$*F?XcQ2zVG`sWUpi=OC_O5DG}0g-+#n>9CgU+z7kji$k!4tl+sgOJ|90d5TgvEA; zqI?(2iwQ4v41$2=r65IO50oFoVz#8{rG_W0Qn#S68`^%q__X<@nkr%M%PZ|Xzbwca zhAC&~JKYEfJAesMf8X(g4?var!FFmQ2)H_UCiS&0>Z+ObAK_NQV z(vp(I__Tu}i-KawJptf)V4Qc>qau*@nwx$0T?5#Ang=kPxesMB)HB2d5T1i^>lJ2V z@f5hkE!Hy4fN(e7Rfn+l9V-S8b}}w}&p`WR%Vd0XY42fQDiqZk{G;+0r?hgeO!(RnetE&dWg%xxG-L-EQVBtYunG#X9v z22fftJ$c`N5r}20TvL@Y0Y6DcPyO=t-+2G6OT~0QM9}zIe}9GDvsWI$6&vN19%HoM zTW)~cU2$5r2T+`8EKe%lbwh-cw-=AZ|C+iH$oQ~q@zFREz$g;$_bi@}jl?sEdbED~ z`fbpVrAZZw2ci;Sc+FI`0#j~Xbwg*S1@UF{2A+DMfg88k&E}Dm-K}~cXzHZpJEaeN zy?42&oXZ44d(Ymg>8S-YDiVo7`+}i&ZNHpUE4n9jZbosu);bR!aymJ|!iaDwa|ju@ zzDHMq;=2ZG?Eiu1>hg@9qht)_haB#X_Qz^@-PUpS1qgFuNAUPV5HBgvn+ zRJ=DR5%3GqY9=-$ZhT@Quo99ixcC%3;YG~gFCx4gsRUIzI8W}IzI#*~Zk z8Mc|&A%1t3Qcb~KcBi?IXZ)I%h&r?bCVpE!eu=fL(uxC z9=>cr7MKWXPO$b5{Hg)El1_#uaemNPdp;*G5RLceGu-*9Uilz@*jQ9|D0rj28{KS2 z2AW&8Eoc2{_a9fMu=qB$2@1EBWwH1;o8{`QYstR<1$O=3OaVqUZTORtcIMZRKd%YCsLqgRv(}eh`nk z{LHyjw9YU(H|C_d=7Z$rW`1*W6yNjK-NfseTHZ!In*zFUVeb}jR^(=$=@|#GTU?=G z|C1!Z_0K)P>rn`-81R|#EXO8b&PQc9GW^gQ}rGx3`j z^!5}2&KMpCtE0IaOq3}^dXecg;|s1tNH$R%?{zB%j=Y~tFJ%Gs${s*q+hGFWT&en2zK#tA(a8&JW3`-T7r^7s}j@>%Aam#Mp`ew24 z0gKNS?P*-{>L+at$xd8dBdNn(@%$e5nlsJFG=p?B!aS?#oSK&k)B-D z-S>?o2kDJB8uB-yJrV(_=Kf~OxN7h*Wx%)gwGs5;rfoiGhH!zE^MjPU*$V;9r#cyP zR%Gujy~XFSLk8`~bzDW3nM?}6!^0z8mnKpHHRHD>t)Oy{LpKynM2*GK9+|e+B_OH> zd!$|oee(@~%?!Jb-}fqn3_W(gnQzuW2b*q@+eKkOv22Xw>{|53^TFotS&X_1!8wud z_L@Uz9tz}5@ShyXgT`Nfl}q-cyh7a>+7o?EMH}@7rpn}A$rVEJlS>NkEXv_8#xf&M z*CN1sdEg(V@U)G34g$(Hc0{?5(W+9=Z8l}2y)44BXKTGHH|jm*=%lqKD}_SsF<05X z2f(qCrdj8&X)yRjqs5415oR0^h(&dn+(?GuR=dB07moq+H})M9>^^W;^nz{0NE$S- zsTE8g&x2R+XB;UAoM8UQuyuh3!l5RvdPnNDD-@3J7hU1$LF3L^I@7dcDjnWw6fA9R zN4ONZW&H1iT#^2A`js@qs+|sv_VVobLY@doJWd=kKHv=to!5AF*CBpcR2>h?gDiM` zVoq*h5Uux=E6vK?eCQseG*Pm6Elh{anpR}bvZiVlzV%=Sx-LYdYy>EM6l1ub@FT8SHuCQdYdKt{qxO9GMn}?uue@ZZ}iR$)UNK zW9687Cstwv)Sja}2HIynN3*hRf4&nxJykLwS+He&hDU<^X}DFPpU)SA z@Q;oibYHVK`i+XXvokpj?H7!f|9N#TJ_$6bpFH15QVSlZO^&?DEro#^pDKk|&^&)N zIR1<%suAc`#xw-XhDn&>x% zdM~i~kzM(RRpHruu+WitGyZcO9A#sA!(07r1F!SBkJ=myUmv(O7Bbnq=0>y^^%qE9xh65%&*77SF)LZwt*d#apFH@o`TEo6?XNedI3L^ z^Sl}1`5>Iq=H-6MVxV1{S>IEV0kyeT21O2|`RI6KB%sI19j@#Wxp6HX&HtjxjIQ8Y zxuA8hYFF8CK9bLL=e>K+N;m59+;9An=aUM?Z7!Jo`W_BU1lU*teBuC)T9R{f8^Ra8 zEq-A9*1=GiPD9e285Ob7o@lRmt<5PU#~n*g>D|JjfwN1{tuz07{~2)$uiu9v1$0Tj zvtKq(z{tlr`?dBWzXv!|sL#W&kcIi*)a_Z-x$av61+;HfrU?uMOeq}=A2#*?dQac@ zZ|_~9%u$NH-={L5GRMgup#r&3>yLaK101JmuA_b0w?Fa`w)aX6oI?9{%YP2_&UKc- zJf5$^x)tc0HA`8lN6vxH&qE5I`Z!1uVXQ!(snlW+bE_=$Rs|3)u-w6gJWgyP`}xj>jVm4!s6F%rZb0ldpvEkF!h2e z*a6~#W|(jdFF^?k;?V!RtImdQBV^O4&zx$i(fm?=!w;hL}m zT+jJy^zI~rX9RQW&AZS(wRBqf z_{*du(B9}>NU)0Vb0nPh-*+KI<0t27Kp5w%MBvDjlVALy7SwWTuhbJ}LFq%1@f8oy z_=)yv+}|u*4DRg{zNh~j?e|q*?xC$eg7iTA@{t+hdxbzFRaEDwP$F;*x+VD_v;^$f z=V=i=;*S}BwR`th1LZ1ky#MCz@4@+)|4S-b_k(+-;Em9v;BL7FAkG-M%+IBV$!p1# zXx+B&Gz3NGgC#DD27uwu)gM%k6#(m6b=H-xa?p_bkZ!bv8fKr(=m3bgnl15V=1%&ZO)*`3d2HzxEIM7GH(*bS{1 zbp082|CG{xRU^#USimTLy5#e03vkiZD$q^$fkzr_b&n`!!gs=&#|wIkV8$Q$EwRv4 zlzc|}%ys$g$KN-8hYQJvK);%L%{Ld?{bKuVRgUhPM4rE+@U;-(;S-W;tGv|8gtEU} z+?r3OLia!NBOXy@E4zsFKr-Q^=~IVdSnL8nf4PP5y%i&8O0IFCxQS_*uz;enY{=kh z_^Vr>qvj)t9UkKynGHF(>Y4Ab>)JYRPz5dXjNL`F&U{&s_4mo8sTHteer@$#AE!Lm zXUp2W6S zYp^u>OSp8Sy;HlW21v8E-hXZ;2YM5&ikqQZ)+ctDJ6e%ng0sD)=!H(B@7q7u|4&nw zNaGvr`*(pJ177WNMHuK`bX%P;2nRf`KUM_w>p@b{k~oLkxN!hBlksKtX$37^%sjjvd3sv3wp#95SUB2hZtSosZ5u08Mlfk4i0)!1{YOKX=m1@BVW)S2%QfM;HCm z?dK(4r$;-FhnQW&;smBocs-4+$DJR0GaaBUYv22v3nPy;wr^6(bJ#e|4~$;qF=I@S zUS==7yX|eL+zyP?^DH4LDOuT^Pzc!Ep2WSr{S3=NU~_v;e%z8JH!WevujMZXU;X{P zx>L1p5YrXWuEL=G*mE@HW&NBl7tlTD0roDrl%0S7Ug3_A1pbTIe0UVk{kd-3!tS3|8a{T4 zIwAbP6S6MlG{^pZT&ls8xZs8N*f`lwgnPWm%WN>^H%{2S_S%d5e!I9eCQHVd{(4?- zrUBc7#?i_`nD3A;(z%xTf53a%{9cvZN3DDfxbZ8Z!zsrvnjQxdxBV|hem4XBI~n)& z(FTHbIc(-*T@IW1Ak(~gI#T{7*v!W@v5C}O-%wo5s!$Kb#|Lg8veTW`aAz`z%py*1 z6!(ONPw$D675{zSV7m)0Qny{PI8R4&d_*;#W7qYj5`*Lzb!3N9Gx>lQU@C+2y|bUp z?Jt{cKd;pWfApc#F-~W(=gWnHR;p+$PFa=XuC}l0D880^;tt#QVBB%Z9ZkX%cMGv` z@1Cxr0W1-_pp|GjSbL@em-oCqok!pbU9220y{~RsFxqe&G+)}@kL`J zMCPrzu>CGBnaOcM7TfQkoA^xNGBIo0i5nlMdcHq{FAl4ZD0d!L^AJUGCh(BMnzR`K zNN;rVGkc*15|0yW+U>O4kS{Uy%TsUpksongzWc7d_5D(b^sMrq@wmC)<2Lbo{^Da3 zxo$&nU{qx`I?#1PzV~~xZV<{NzlKEy)4~y83{r}1{`tNi`JJ7IJZ-}Z{yyK{r8|XJ zsb#S7J@{X`9{+xtgDJoEXFRO`zVL@{T<^*0Upgz{ip?{4{m~_EH+~cs(8ZDa;=R`2 ze}{BI#YHV$?0G#N{_?cD>5eIX>OYn(oQ>8qR(*qa7vgc_)h(;av8s4r<4pF4GxK{M zK{!dms!!}?`~E$C%dfd#6U2j9zK!q2$~R46<7DC-AFL3np?fV~%`;vv?8W^($qP45 zcYeqE&1MKzvvYQ!`)ud$%4PU*Zk@MgyA-#q`V>D5yY3d<8~Vg}2#Z4+zn8@!xEsw& zmLKIJ(QDXxn`!dEEXAG}te)LZ)RBJvC%TVxko`i`K)v&Sy}qv#_1Z$w&JyhXZOV`U zcCvVEe(jeLYhNE9Mf)t5?uXey?{MRsmVGIpt$hVB^=7)MtUsF|yAV~OD~}H4_T#*% z@X5Oa`xwD1mjko%1Gm5)m({D?RqjC2zUAhF+lHWnR78wN5zY7SpDdzeS3Lk>hpQ>8 zKhlS_EwR%^yr$p~tpR@(3 z7vGUNY9pMfIBJsi#kyUE$7z^bYZGef_i9fNl5VADq~K z-S4YrPGlp}SpDG4qC-FEgSC4OO1hGDm7x1+iF_A)9(m(Fhca_5>+E`l9iKgs9}-N0 zk^g>4$EjUr?C;OxTak}ZW!KDJR-h#ojJG$_0w@{#kcbBa0z(_FfW6`ZfVx6)j^r#F zxBchtk<*+v1Lr2)7^$!RM}9QY6}`F~6ELyZ5&AQTd83@8UFzz^kpIZvTrPX+ptdI% z&mM}QaEk@vzZYjqZ`lF2CGuBc)yRH2Too5LVdV`BISWj~RMGxa>%hAs$#!TwWY~mS z$#o(8yva>(M&TN#Wu%gaE6&D(1Gh=*AIJ@QN4^q#+{u(tj6x$`I)x_7U&Xod8AE(YBqt!oZmM;Ma75KzQLgPvV`O$X+7Y>GN}kQ#eRdhwo0& zApbPsFlV4aKGJ_qWW-VyVu8R(MBAIuNdt_2zC5v-;teh^3B3R8t%Z@hR?~U0ay1{2 zL8<#}J_{Siec++PVMpgw;B%(7oUSAZv|s;n_v`4{e|^uqbjMjA1}dx`ez&9KXjKw6 zzjepAX>XPT=v;BRg!0Y%W4Lk30+**f#3ixkU!6fkgI&*1Jl(RuIYlNNr)`h3*pKzE z>W8;~w7nCo@t*`ba%i%XSW7jQQB*BD_r=o_i&hMs2Oa!_A^*HS479hHihsBrlGLoW*7zxCb+isE@w}e%=W#6mGwrqTq@4`Rn*6y+P5h z6Mb#|VPO3|o1eQm)FScN|1Ow&zVk=IGWPyCE+Rc$sT5|9wG*D%Q(4E!{P*oCkv&>t z4$Q&e9$nc-@mh(R64PFJ+H^vB%vZrEIfcqc5?8@7vzagVc$9&?Pt@`={|8`md*q`h zUDeXO!RGeJSzn(%@>Us~%Qk(ynE&_r(z5ziMN^`&`%vK*`($PavGVbLYsGhd65anM zcr#CL_kb1bsWUs^B zkO;f4@*zAVmnb2tungSiwaui*@Mhv?G4@`8E>KjXv&Zf)N|k1150xPQmE~t^!QFg+ z|6YM|G1?LrtUTe*N1B;hSp1KuhBOWRB!m-st%g15>h8bK7rahm**1@7@YyiWf2}9! zRDFeQ*L(N#)u!iY-0V-+5FT;C`>*wt!Q6NOyAu{KO(U>##_}N+uWj>tUzOC%5IW(; zvxy3EIFhc-2)>hDh@P4>0)yo33FD@&U|kNI`B<03W_BmZly9PG%p;Za9iO(Q> zHCBo5QFM}a;Earw^l*wN5dPS~&J^Jcgtev0Ll1AA2VpDH`!Z(y;{;Y7yFYW}u#I5P ztMdog)l}RF|P6n7R7xT?a*aD8jq2-Ou z=3p~_4+5%pd3rm6DNYq_-JrjpuQ9nkAB|7qupwXLuq^UBYv_Em zF5kQHYnuNUqxiIrKjU$8zk6=t*U}X#Akw2Jh(7Ax^Kt0E) z0UeNjZNKqQ0@72H&+4DtuG_x-WS#DjO%bkL!TO z=NaF>Tc{Mby)T6!>MV0wzb`j zjlcA@nw0SzLw@|$;KO1En{a=R;oAk1Jp@=rtmpZnX#w^;NKW47RJ#}XBaEm_G!A5KKd5=XMXW!FVxymoT`u=R%(b;85&CAXd}q8Ocj`Pb3cHC{33d_y%oQ$#hg^=~&kcuGI zZu7->vMSsK;a;1*m(#vlgw4acnQk?o5|2{F>J9v&iB!@9Xg*(+4tNzPv;Fv{ph5n? zCceKv$ML*+{-NF!i!1NmmwQB`{Q;)@mS79hf&n@Qvk2bVZ7PIY?wOZPkF$5*!_+Ig z(;>^2hVoUi2z`5-yNJENyA}Pnc{xiougd(|iM8|Jr5t|a?t#@CFt4?=xfjKCjPCPc zPIr*PDR+r3MW(_d*tl)JsX4ML4W$2KKjAae-}w7{=39}Yez{MvC=1XaBGQ*>H3KF6 zT@1!f>a(erV{#YPTg%P3Q_nkp?FnepxB5KdH`p1&XFFR0b z&gHF&hxCQw9fxay(n!xNHGX0`SsVgf>INTGeRc;nN7JZnG()z`$NISEX8I49v3dHAn@^e1(}Rfb*O4-hT=ciUFOHOmIne;O zwsVvm8Se^9`1f%SRViO?O}b$9wjK2smJ3I)a%-4(GD?m?ac6NJI`a%hxZ`K8lN`Hv zYZ2@J9QCeq^ZSK4S-n_1*bm-JrZG%cHrh)j!@FjC z8uz*Vf11p+tK#Qs7y#uJ-!v-W8-Rw4FLFG=5=htG`f&jNI(#mR7mQDc>=-I0oOZU{ z;!s*lnu2^1=^q1NL+5WcUc1*!B$E!1DMwOJN#o|pr-)!kfEby^^M z#{rSw7xaNGTjb3nd?-&Z)m{!K4{8-i9dSdHbp*u;Y7loGkg`SZHN6961tly%Q^3bg zXKw}2cHR1mdd>~NP2fbJsf_K%nhRnqr4#=EeVb6ZNQS#O`|ru^er1K8GZr@1;} zUM;(~ug87)qw?eKZ(Tp_qWeO?rLFyn>-2dgHFo^S<-hhDPF$7v67d9kUgz5P^#aje ztbKPuKhs{23fWn1ooKVFeuR5J<8r@tsfzOfre2iKY)6a|iiZeGxOYP^A8XIpidOD} z@@~$pmgXC!dGpNYPY)A-I+Y{97o?Xp`yF>>`}yDhzakH&7%#0EX3)W=|2t33 z6dWcS54_pp2A<5nAgJU5kYpfHi1H9xpR&!hO78s918tc$J)Dn`e?G&1ce9YRE|53u z1PS^)8{eHuUoRACiR{)NXeu;>54eCN*Yus=4ebE_{x)6{4|g!uSjDAs6WQMw8fHmE z0SA1)>n^+NL1bqwq?jo=UWV57(@Q7BvL*w-B8Oh54e=ci^<8Sm7?%goF8`T^Plt^Y ztaiLX=}2YqA4#urdH`7*rR9r-7FjVAh zg1u*(6Cfg5Ya#?W-wQvtl68X%q^mdM`vc+ndp19}?srWVFu|Anx&64Abz*8#xuW+P zYuDn)HfGDD#M;Ghks_JnF&19|%yT*w!_i&BqL}in{FdJw=}z>&@`Ib(qcZV5aXZu- zZf@`3Eu;O%KivbWUlWCn^#E}|j=y5_@Zcgxa}&H<3)u6vWApOFR|9Om+nU1x1Y$-g z&f=B<=@O$ZJ>W}sveQ$&0hX*+Nacg?f_45iJwkpwjYfG@*ZIHCE_=82DVkpoP7ay5 z)+mFDyPQA$s!=?^(YQ4Vvm~tj7Z*jERut?X!{Vb*CqCI5^(Y8azS-aE!c%{IVBqiX zy{4r)^Sye9J?B2Rrt8fu#@cT-`&(1qy}VNJ_V4{<>-4vNPcl-^Iq^EA2gfy34@8Ht z|Lb%5I(_{7a8Yp?yML#kPr98zhCPpMe(zBJDZ#sfxbu%vu*hU{9X|wpK}_xlmnB4|o_8f!P<3gIU0Z}7mBPfTA?Q=3C}kYl!y^|n#C?ahQnQoURh zxbI_N-p4$l*XYKBd5-lIbLQzeTOd&cOn_PDM5 zf@wK%AM%ZC;b#60TfKKyJro2t^EduSZkzd|_PoNWnvLYQ*)OQ(8ht3=#)< zBR$UeXFP81_o_|&)-rzs(jSdLof38I%?BP}UB12ksVgC`(0Q3HU8kSN)f6}w#@hL1 zqIH3F`Lmm}=->Ot`WHG{4}WvV$U}^Q(@@+l5>vj}-&*&FZ(Q#Q$0w(lC-K9yx7pvi zD?e?p^y}a2jq<|R)f(hjztwBUZy6njvFH4sZ@t)G_@ey5GxHjYUBS5Xp(qLle3-v- z8dEQY$lmjSe)d#LlEX;Xe^V)8v6-QXzl8(i9kP3_NVi`y6dA@ll zF0c-_A#LXP+86R$nQ;oF8NI;jyPuifnYOJ9%5 zL30w>K#p#-ugDpbNTI$W4}U9J?5-8z->5(Naz5vK58B69Gep+>jJ^iB#1xKZOYlO~ z2TjQq3@2b1^XQ}2ag?`lFgeRd>#Zy#+x;azw;9FVD2ydNZkapu$g+mx51yNd$f^8+t&H))+r!r-|FIdtp6qUZs3h(Nz@)k4ZgE=H#X1QR)i~G zX}@P%e2y^#d^Vg(S6ZwGt^7zAF9%z|+FQwCI~Ey0u<%&!Nxrii&l9bjIPWsZ0s-$-Ym_PT*mxRIyj=NCb}a6}W`Aqg&ft7Q zVriWHI3G^KIld@{sVBY3-%4N|zK=2o_x-EwQeWQq=f2bL{yLwlWG)SrK>*fX{3u`L z;tmIF+{9*otK^Bw2hv%xIKM;fc2siLB-TIoYLmZ}@gMynN#Vc0@4ppYHu^$5>%jA` z?>A{|;a6nXreD!vn|{UNE&Ph#H~AG)|9|o;;-Xe}5w-MRSpTtUJk`DZ^w>CT$Def3 zU1BIt6R(N0c)Ry&a z^$M2?r*Yeh-$?0>&7Yuy4;gl346y0Jz;@pt)@-v4ziYVu-hDfoV3)&^N;O1)f78TU}8+ATcUs}^!(#@<*|h~ zEa}j`sc+vcIpsIjun50n(Zx}9W^lX(5>U2{-@;hZ~d?#T|16r{mD6-{H?AZXx=!wZ+-9n|26t= z{f3?YrQeWhli%>z|D%3GT(mmXdv+(y|DoSsvi1eaW5>0iN?kj2M|Lr@bSxtf0uQ)fJU-!F)B`TX+siN~z#l=(F zOP7ow-^Y+Onp%`6ctkY*H-`ek^LyR*%_R39TWGT!lsG+P3D^CuT~(|8*8-5=UQhjO zLJqMLJT$+9;P5Uax1&XUFH3k;H|kOCJ$QZYm@o8Vj`CvDYrfbQK3UK&hVroftsDc6 zjStkX?GpIof8A&YmmJsquuWCQ+HW%Y!NeEG_S&K%ct1&r#x<%R^sVWVd6N}_bQ}5y zdNiFN=zF9`_QifsJCc{1>S+dpEq3|uA`63N?kyq9yy1{{Xf>wXsUK9V5xjplbORU@ z3zFzq1cDDrEHY)+f5Ier;>FFf`hoKjlbDY;1I+ruPck!m6H-T=^G$eV4#m!182C*45D<+X<2!DMaHMQ? zRH?tvJpgwog(Nuq~1`;&U18d1>T@8Aj+NQ{`{qMLg@}!rj5sUW_NaA*{CK6lj z9Pqi6I2_?nxxc<$;gH%71l#sE?6HdgzRias_Gvr;Z}uMvi0pU@#BP%AJaNwlcGotR zN-CrISTP#PudVI_y*&mQi3L%4gYDI8s%bUgiseUqdI1#IrtC8P&v!4B$L2@o<5Q`0 z1HiEV>e9ENNZ^Sy zty#x{aEPwZ_KHQ>*MSpXXH0vOk$oYn=W@P{7{Y%ajpz@0ZCejkMkMBVr+R?tY~1Sy z(M&Lz?>b*(>>aq*k>+;Hj$lYL_fL^DT^jg$#Z}|Ex5!3&{w}`MMiece`ep;3e<#`> z*qtEWwc6nZspgE2#^fRYwl0}!KHed8&Q|NPH1POp0jT2c zFSUZ>$o?+HnO*D_hRz) zkc8eeO#Q<_cX-z5v3W&%gAC4(a-sNy(vgB@j~U$Y%J!pgKLpx!0j{E-=U8O!0)Fk^ zB&wMuAjkHX{Eh53kZC`s&!-*;MM>BU857a|sYf-8h-FtkB&Msm>r{j8&q)c5Me{{9 zgUOHYb{(-q`;NEaTv?2Y2rpG>@(FXcLN2JwY&tfS&<>nv4uxh1rNFXaE=mJlU(KdQ82UP=-08i?sM_UT|0NkgJ4X z2=HZwb(H1^&xZ_;iYJ7_8?qJ1{rEZ3yY2op%MfzUSw-<4>-4I@>JD>y8m1hu9gO>Z z3FT85n^7UZw20g9FR`R?D5EPDQ*Y2Ha#4Q14^)a8Dsl_o1s@j!G>g1TfW^n!l)me2 zpjG!LxzZ6E_*`mb`MeIoIXOuq=zZ{$7c$?GZ_KY@?^J#Xr zq{|GsAXWO<_i+Ap(Bdv9YQFD2?EG}0vV;WTItqlE$o*uh0_GMzk6+XwIhB^3TPR4} zzMS(`^Q11bVdFsQ;Ll*ZSuEb#X1N~I9p^oF5O*GnUt}D;PVQK|0`--+{tzl;FZkq_ zZ*(D}4>ToQQ)LOf3ySxdn4gy|1#d5Z6y<7c2f1k^J>PWfV3q|pC08GcS9ag6v)}u7 zBrHx(Ju>POf|*Bq{*2f4@^v|{|2}oHlbNNg1zavtG1MLH0G6Vm9m>gpP(fk1;_FY; zzw~|#Vy2dPI@+f^g?dt>bs&kNRjYRywP&%T{17ck3E({_d!(}w zjVpN-W3q!uD9=uAQDx*#iwrQu9oCgMRs(h>)i!9y6oKo

    X`QNE4?e3a+7GU~ze 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 literal 0 HcmV?d00001 diff --git a/mints/h2o-cc-pvdz-mints.npz b/mints/h2o-cc-pvdz-mints.npz new file mode 100644 index 0000000000000000000000000000000000000000..30cc295b249691db4bb8196ba95ec2f6e38d6e10 GIT binary patch literal 217084 zcmZ6xcT`hB_b#j=AR1f;i+h=?d4z4s!$Ne={w2uKH!-kbE^JE2JLz4u;2 zfY3sc%lrPmyS{txtTlg}z0aAMwbz{I*-c3f?;*v#d-opQP3C(Shq8W(5AUAtMELh8 z?m2VYfA_e5@9BR9cW>PLkMcjGOUqk6R-I-?$5OvPGLF1v@oNE8_asn+@Apv@m@hzD z9`vVz(vZ4CXBJPb-=PlKetex zj#gA|o(9n>i^#gjBur+{VrP+w`gU!ff3fH0dP2@(Vc2FH3G5EnFPb6vR6XX1kTJV9 zgzhyUw+(D$^Xe1OpKQ&L$~7RO2ocf)7!0HNdRZCYQew8q-xH3s7Ia|8uOQQMm}*VJh;l*it!r-sydsAg-lmmpuD{ zT0g+U3dWcL=LXs>jUGHBNw0G`mOXs>gpDG_NCbXBQ{n@Pz-^+Acg>UHC>pN+=EUvC z-t_RyCnQ7WSzPXxj%;Mo{)^J5RgGeCffofvPgyix+N6Mi-4`&=sxkMFd@F_RTPh~Z zrfuY{v2noF(Kcreo-frf72d{roA@42m#-l*Dyxb-{OMx)_n` zJz~!R2IlE+225g3V+v#>G|A{47e5Ee10eEtt|Sjcbbi`a9#a5d|UQb5+5gHrQ zd@fju_+ccHx%#j({7Q6n%>i85d-jh&C`re4hf{=CWhW$^=^@ymjnbZ>&c5)PMj~yT zug`ohmj(BU%hBO7Sf6cpEbM?}-{uPaS=n;8kujO^d*wLuQM8l?~Y0D#p}i5_52p#b^oLuo^jACrP*e< z>BtSyA3dn}nku;$zjfeNK3%arZA22={FI(Q7c0VrV8`t%dH4|k3;~8u42f_AhIqhZ z!$rAXDe6pc?}nafn5#6#^AfPnV^G1>*MNCa!qo>hth_8Ih`c1e1>f>}nMs_b^WpAc z0=ZuTuqI(=XRC!Zm^TMJF*nk%SoY(tp`oN}h~}F91H+XU$h$XxK!Xp!Gn781n4`cz zD`fbzw0)j2JNiBx0mRygyCxrTK+3p&K?bYI!r zww(M1Y90voJ7;5V36=gY6av5g6Y~52Kp~s|7lr<#{2vrDmRHrJFgGvJwxFte)>UEV zK%8w?{8BKVqOT;%mx%5il}woOrwsd7Qy;`hUaY>8Y~%?2=NlpT?xC3}=@-?X%znf_ z-F}$9H+pwpio~zWW&grY{!>-O>{(pO_IAsTQ5x)W6I!;j=-!I(sk0z+gC|z+1pjz- zUncfBfn1|@!A8siz*f~-Wb1zPwUqOGrdqUU=ZPXnXvmWH?KT%8&+IwX42PZnuZd6j zf_nEagEAB3YF+C)vQVl$b$>q&`@4!zf^FP)^k3a4>vVcmI|&k#3pg!TZ~~Rk_Jbv} z9|!ZbX2ldQui0MN$>5J|l{UMvw1nZj2_j7BCz%$Py^t5NPg_{Q`vWBVx_{70<{%OM zN^I+jvk2fImy0WXhl=5~XM^J=x{{S|B3E`!$1T-IgKxW_Y;O~7zWS)U9V>-7O0|(% ziTf&h+}ZqIH#Go!EfIKDeymVBtb(v(`KW6psxtR!91POZOu#UFop&|wa#5l-WWtkq z7eOgqI8-s^04(ac*3A>@4`o~YgZ}4O%zqYNm`|m`ksbnfsf^PDMDn^^Mvg8cYs#nx z0@*v1nIc}M?25$|rN_IjJ#Wb*{d1TI@*LKX&cL33HvMRr8v6L|WD>_dT4TaEll*nt z>{V#M_u?CC!$-+aqDF3a8p*?a)g!#6Hj4-=6|pC^&z3I2&jQIC^IctVrC3A4|6>a# zXRpm62L|EZB=^=JOR>ohwyig+$NJwDG2egw?_GH9ow1_2W1Lq8ZS4&Y8;8dgGk-@; zn@caGO>Q(Vr&7<-%t#?Ufp(ZByCkYVT0n?)U58{byr*b#$*xFWRzwYK^QF5Jsb(H)8f(E{n7+c9ozBP-(XznhD`}DaPGx`HQ_(i& zS|*KK=_(121A>PK=WDwvLzHPukAMz8LR-*|c5ao3jyVpdKBwt;V6Dt3WR%P5IIHRGNy!3MkLymX)XIchq+2 zA_{5zIravzx@|ZRo(wOk7w?tqiPC?EapviG)H zT*ooC1(9Z9{cUMYP(U1MjjgUp36oBXFQYBJSl~H9t%kO1{)FKf;z2}UYkEI{yDxVE zo5rQaB``ml@p}ht&cVK z`JQTmdjDf5rrnvN&AAmoHB$BLPVVS!g1U!={XmN^!n7}C{yBpH*zk5|M#3Aw4be^K zIu9uo>>=dX9ahbE3tqp5d&_M$XkkO9@aQ9Zom&|TfYb|s-S(CL8^*@x$zE6!{Qu6B z_5TZF|55&Dq-wzgrYvaSCh@9lIkz0)3sxH(a+_p@m-ZzBj|V=2UvKMV+Un_~EW9Md zDEUz2>V*2pA2AL^s?B?>gpC(}(k}9=9;2*jwEsY5C%&`;9a%0zH0)m^&?zG*@3bAX z7YMNvyKw|xbdM$FNsG56XAQ;(ba#I>;s<-Bg{QW$0>wVjl2?j~h_T9_8v1~29(~&1@wkmbe$F134))-Xe=Prbl7$j0;kWtM7 zbh~dEGg8{ycXfZg;g$F4qJ?igi)(qiNC*P;w-qEcyR7|GA7Q&R36-{BbNA##qSI+y z6q-Q(e(q<8QX!`IoK&f{tp|2dL38J)Rw2(1r zN`6^vac`&IBexio<>Zfw>Q1`l$%*P}8Dib6oeP`1EWXhwVL`RLrlWHINk zr$yZ&w?{%jB%X{Vy=HY>@Nk}-owlo)M&6D+QpjYBIi@4dbm&jImiI*Fisnl%RW zUw;9{N{!Wo>)JKxUw-*-dIgJzQrU99e-4-W!RZxXy8ircRe(}&DPA&u%^70N6=7r&P28kp~!6s>S6iU<$DF550($j}q^!o^;CAic->hBsmAMe}b+ggV?-xf~sdi5G0l zoe*;PRY?Oqrz7wz-H39VsqLs(YPnMIcD0Y`da83JjU7#33xAS^7ihI;>1P8QK0K+f zsOw3H&FefLNc>q15rWm5+`2gje$6AOS-(%XL%j@eQb;ZJFl4qph>o+E+uI+Cxuat3EhtP z@jliIIEPdzkCEdlbf&4!H&cv$z+-45+gB$&tw1`GC6&lJ(iZ_8LY;hYa%GXf-OP_K z=b@-ZUiQ^Qd+mk`pZfKWnu!YMnRz+~Y8y|lm`(ua*K!BohyS$-DLVM#iQ)M9L@YZP zG9RqSA$M*&0mO9+H;VQ1sD&|ijQT$eC6hpQ&DQOBA#Q@M83l&7DI-Sf#|YxFk#TT~ z!@_~Obb8F?Gkq=(W8)0W?LGP{#S@2B*ge7>9t?C;5ki0+zq{!`K!|+g@*vey_?v<; z!!H~_)q+h#;RJK1V3SJRZ;;wkCNudEXoBc}{ysdzC#_^&&;N7OAAx7YE)1s`;5NhF zPJ>ZbO2%p%^h9rrZN8RsF^e1h*a7St@|fuPU4<|8se^`gBq7RTxnQ{h(#S~E2j4dF)C#E5XR6o9W+fo}A3pgn z8v(B#h}<#R4WRLn$0`r76Wey1iG`}lh6j3m{j7dq673&4G)O;rCbNGN#h3L>J3Nof zYz3~3&iLfa^Ak$BD0g={SgtqA71KO*Tf@f#a0zGmOgZ=+EI+-sh&1(N<_d3?DFNQ- zQ_W%0B(<+|1d1T#HtgGCvcxczVBbGHoL4=8d?yO3Su;b*3kOriX&1 zRh=`X`R>r)N(;b3KTYGwANW$Gy&_F}#Ras$f~ZGCuR<-cPP_MW@7M@;@6x>AO&p8S`Qq>%B~5`#?pdFMac9g+0MaC)G{H7sODJ}vZa@h$sWg5RTxewKb}B^mpdI{w6BJxDj-BEu-n}b#g8xSQR{xuz{v-I$_>b~GPIre9RPzW-V~)f8Fo5Cv#Mik7TR?KFi-g!QI0ED0Hemkt480vIss&(K5!#S zSqaE(SQ&}Je;fQ+&|S8O+pJ$?$tYvu;h&HhGji{<7p&F7(5orAD`h*wW^+yLf@fpw zMmfiFyOFr-e2>Z}i?CjgZl7I$AyRgd>v`t-O?Tc7l(b!e%gu2rQpOPPsq|l4LQY>K zy6-5O$MXfwmlW4JO#RN`SFfj}Lkv|i?}m%)91(ku;p_G-%a-=Iohg0=xSq~Lf5h(x zIuTg5v_)=0vzv@ZLrh zwx{LZjB|iY%8`QG?tsI3uNfr=3aZ^W+g|?hSJ+;+IJcYnxY5+V$_-`^(Y1rveM*q> z_&-FVI*%qyM_vn_Yj^()+x4;d_SC@kxtyEQt3UIc^g$K_^I?xfCETE=&)vw`MrZ=$ zob1^)6A9@ziOF6zgFIvVwr$>%^3w;%widt-hwcdsfuK zj;JVb)4x9V4^Ml`Jo&fd6Ef#%)X|bDFLf253$o`T1vs`lgNs{WlA)?!ly6QReJ@p< zoPGFUS)m`aH zHiTI-Qp)$$@vENhPQ)y}h?H@ZFc(GKvIPn)ZPx^rrlkYaYQ;MHR9*G#5{VW$FTcM~JvcKsA*6cW|8c4LWw z^Btvn&l&WlBE8S<4Dz7nfTHR^UgzC_m3qN`W$C8q$?^Buy zB3xkbGj@lPI30EWfHmIZtWr+4gr4uOu->8Hl50wIPG8qkJ(PT(R3<}G2>hMS&_UPj za+=io^WbE(Wc!7U)@?V^5(nwJ_AA1Tnyon8p^&*H91=`*x)v6S%TYM zN>S-92Usbljjo`Z_Q92UT9E_Rc0MTZF9-=`mCeo_&3xP=;-P5xYCz>m;XsnNWj{Ni z3v^q9*7hUqX$Ef=t>zsr}0c9(97GU)}_}G{bg50wO0WS zk)dBsJ-q`Jm0~t|*LV2OL@-3}fA4uZT?-fsBYR8bo^=gBTt@+fNr>o^gAYWsg3!7# zyztB8pDnU#d!UzTz(`T(Z<&*Ag+Z_K)2R*sNy2zv24VH3bvL%0u_efnoL#Q)#&Ima_}RvK5LFmqN{4 zbp*^}e$;@J461N`IL%ECcC21WCCPn{1rQFeYmitUlEdT+Aee1s%Gt(GU(== z%DEbzx56OI-(@?q)3nF5bRl=ErXv%dHPwb{Vcj{-z z&86evZs0xboGA8bT>9*JFK4SqcV$L#i1_rRO{}r7Uw!1of)qxkS1OB4I2)DUVdJ9) zUEd>&iE}RX&6Bx32HEGn=(9OJnL8%jc?|LFMI19(JRbM_#E5M|k2X9=V?1j@PbYRn z+b*#gm!2ns!yD!;hRhPNLkOca997E?l@^y$)L=tx=jvV##FN#^&`Puh@p2_{H7Bn+ z1y|b|60kD0VP2RwgmV9Uvy_enQJtLctk|t2J}62xFLJ=KV?0WaOd&TyX;}HnS5b#= z`M)Y!i6YOx+fA>nuQP0wqn^q<(3N#zcc!;U)G=Uu@>lMfKK;?J+8g&hbp)BDtR&o8 zg`ecC=@&DQp;7<(Bsj`U^b*tc&uAw=uH|<78L7q-u-XhnXleMgw38=teoIBqr}=7~ ziFB;5H0%SW)FaPFiS-3lhuhY0Q=x`NN@WSAU4fQaO?-r!`%DXhCgs53iTSbl;>R3B zL#~U7Q78HnhfnwrX$T_(gb4Ukri+T3n@6zFgUU)}9KZ=B?*xo+`Z?MZ1lZu7&-`?E z6;_KgF5{0XK-1g4Hs~0g($pihh$AxtY6SA=D9DIREeMWXt?#)&5f<`St!Rm@4O$-T znvHIPY0lV2Us2;`hkm1wCF;PPaRr+t@)Kmq8|f=n*aCRFMnym4<1foI%LVlEeGHXI zw*tkEe{v4!4aiD2 z%MU%Y^)ugI&ygE3szZORJ92e>h561Q{9C#@J(#8?wz1FXnV{s7Qk;da$AL=|^umGr zS#DPI5^~*8qXE9D_DY8_r4o(ZfV$Jg)PC$tzDisFsER@j9&_Zo!Ir&C#W=Q^IWRv7 zvWDszwvHm=MArl1hU)xHv$*mM zxopuwf@zZIL7wTR(_1O*1T6cgO~RxMOc25ge`LwOxrT|D@G3TVzhgu-q?5?Mm?o)4 zuKwx~Nu^m|cit|Mb?1$sEjZ!b!52;%_WIKqu@5eKU;8r@o))7j>JJ!_@ROHQTJ&*` zkcRnhBTjZL{$|yu5qOs^k2x3yTrAjti7^ws!X`*)_tL&e(+^oJW z1iyihqh*2bIgA^D_C?91TKiu!F4kOQML&^eow0N0*$Nzm)QM%~Upe5rT_!W$L<4Am|YQKRX9uYkY(=Pm|hg_x~CW#7x=l!$(>ao};cH${A+J6_xFL~wV{ z&t|-{5!c}huXf(rIvb_8b)H>UV%1aV6>&VU89R61u!#wz5ff5L0c+fT?ei%T7u&=o zwTzsOccwDujh?0%{;_dFetdqI2YxwN|HZG@R3-=E^DDmGdv*S$3EDjC=V4arhUv?H zTuYisH2Iss#eH_A2NUHpeqXU(k9T+uUnKE>UTOVt#qW4jFz}&d<45p@q{^!FN1W+^ znu%CuYt;I6hL;keYsQx=0SO(5OB$(~4ZBIz<fi<5EggWRclr16#ylceF zt!Hsw1&QK|+V5BsBv6r^KnCzp9Vv#BN}|a1zYRpzMPhJ**S}`c^Q?xqppC?L=GJ3r zFpse}!rzBNFk!LW#{_wGt5W9;#Ed65a{czv(mLnwJ`-NyGs%{5Zc)mW0ipJf9s*{i zxylL&9^?(Cve;t2BcF{Bm89Kekq?x7=DeCtp+?C}!fj3d@sMh-fmroKIie5a+fo4r zJh?N5ae%(l^rU4apu)*I%z{WI5j-7y)1n_XoyS|klon#+y!Dra5+_!+l^a`)CwL5B z!WDWUUh5d@f8nHXOJiCXemCI-`UK#PMfLhKm&_axF5P4b&b$nZykEigcJfhg|Hd;( zRGE9wenDiNK<)s8rOQFg9-3B?wpT5K3vEb-*DO&JFcoy)snPafp{2ZlCdGl&Z+>Ht)v?lOb9Ce zdB2}kmps^Q8lPq}pV0AuD7VsA`7&lZ0_)g(ttClAJt2mp2Pd(jFHg%* z*)kf6s~ZOASf!d0<>9v`{N`ZL3i==Gc{$}9?v|m?l&*`?o3&=Oe|Q@P z(`W67h|wjCo*g_X8e|;GtM*UHJ&3G{ta`dk%T-e|@$6NQAxSK(Eo@gJ^5qla1{)7!E`iX3%AnaW~}z?hk@@1 zLA)-{7aF(1oO*RG`y;I>`~j+}4cy^Nj0Xr`@pI~W^s-8IVCxkdGzj_b!NL81Ie~L~pUHPN2 z8gLaJJzz{$%oWeOW&Pp+H)36jpXzdxaMWI;QRUHUBE*r-Le)4|ns(6Ra0Pe9c&b=)vq)_2a#@TwZFI>Q(V+k$;5cY(5U?Yy`1>*b5t)n z6Vb)qfp5Jn7Z8+eaJdbrnUJqT=v|`IyIaGhA^9GAWSH-M*gK!(9##2zQ>$_%s!tj%am)T@ znSO)@!W~G<)5!X3Se9OwcPlc!RO`6?9$mT5SSm+U3<>nuE0hEpyo;Qkik_4O9$Jb+ zcGiKorryRlXSmm^bjSO>@^frkd56&tR4=|{vZFV<+0lRTBD_!AK@k$qLYF0zef)p# zR9rtCXrc_UCeQ97{>O$8U=vV?jBYG|#MF}0MR<>|O=?hfHXY@!>^Ludixk@P`;|(l z-byIJ2^y%u75qT3sx=wqqzlKUjXPo6$`wnKDiyhXxLW|od1Md<_cFa znBe}FtWoasWq*oQ)N06cOwT=cf#`f|tbtOwLBrmkauy8cJ_djDI;cA2HOW$nczIDDn1X?U_! zY-Z(p;X(^IDuf)W8qbg_5jXBhBtK~EQg+&KKdOe&!fi%U3tHSt;b(P6%@D}H`qSZt zcX#AAnZ^o2WMRxDnww5UoM7PK1#sPctJ`)*oN8MKG)Pq? z5vc^wMNNS1v#wHSp!hcUyjj`Gl`!br4qa(fjApH+J|hPvI%Qi*rA{@sQ|4&vE1WlU zu)Y;nyVzb;#vLuMiKXJg&KyP$&P8v7WOtz*kPEG17j-;s&OxBXu)~J}iCc#axZ5=N zE(|;>ey)l>JSp&|Y`_9%+!p52W^PMU5=*?=I`jsj=S*sM1P^lJgO{@y)#qEqcR1vV zo~#umzW>+~edyBAH^W2rP1;Lty85M0?E!q($Gh^geK!gN|EhpFZfKVu!QZ|ShoOP@ z0aSmePyyAJ=!oBDp5s!Xu5Ua-+=t&=`TTYM)lfVjzdDFKLI*JuONwGb)0eb$vQC7m z))SU3CftTU9{G)2V7h#=RI74L;@%?^38>ox`D0PCnURw1rCwZx`W53#+vLrHmLAUC zTblVzaR!$Eg7@8Xn2xdR2=*0+K|wM@AcrH+JXn*b0+cW{_8t)w zluS;M&k;a5@LIu7rHmJGBA~TL-II6$u;5d>oX+hpSpDC_1Kazp;5~!8VzZ$p zHZE>m-mYN`8)lHB=*`3*PPMHtz)8k)7r6dwLPWZcfVOk`#=Nxyy7ZyxAdQ+W=^9~1 z!~bYGWiJ0XW+xNVuLaAty6>$+>J>ZT@5L$lz)BD$=0&$hW;2zV;y@=HuOui z_Dc$f&aZyuSWPdx8jfC6d`Yb%RV?>-7cW0Vm|{IlE2g@YX0wb(2KF5e8LNnJwC_ms zajVmcWcj$CGMvz35(Fa*X7U|BT}LvmB1vZ7b+s&$Ehrt@@tj@hMZGRuLPE&z3}YZl zo7cT?I<3FWJ(B*xOqM%Z05O4M-huprx^aJub*L<#SZkuJgyk%+xy24WPtJ>M*tOs7 zV6lXUGv#@R8^9!I()}G&PpQk&s_-#t4LAxMUT~gqi@nKbC@2n?WZs`YmM0#b3YnKe;97Z%I(R%pk7Pllxa&Iw@x?x#gTbpNI}mzqfrw z{6hC~hnD%yJe-VAnxQvZy-H%+eV%qE-Ipt0+M3)AWAX|<4GBk@w9s*adaR5uZ-33j zJ9oF0_XwNJ@_!x`Td(xS&QaxXg^b^|;_yEkksYmPNs&B;D|vD^Snu_^8%R~(c6Ba? z;FB}D|53W;sUs<^jsJA~OXwZIA&OUIF6{sG1Q zOCM4MuL*a98TDNeX$Dfm-d})%utIuBTXY?qQ`6${+XhkHYoLvX4KrCT14YC>HJ}L_ zF2shFNDG|n@3NbN^0`04-E{%IgLqMBX{F`zz(&k2fI!GC*@Z4!x3l=N(juuAvMO53 zjAxe@Cn&y%7lzVFJG}L!M*?E4(s`KJA{8js?4Xx?Om8IW1Xal|L?q$1 z-I$+(+|iTb!kVN6LlC_+q({t@?FRBQ_|xXTnlkTL6ib4uCHI;J_#-{-qKa)^#)rY@ zy9g)EG3Hazf@z@64@_y0bdGan*1u;j8Ap`8T5=s>Kc96Sedwn?xXjWWX62RKMLQ1+ zCqLS4d_#`BiexqDQSXZUUawZ|{V!$dam z^Q^!2^o;Xt^>!EC?f`9;&t@+-%5Rm0Hd1!XzA!92qlI5arb=-t#6smNXM9Eq)&I%R zjc7f#pL%&S`9!+NGG75k9XYe77z+SEPOsg!PUL-AEG#%jEI89Errp)uFZ$x+(r`Mk zA&m&o(?;QbRGecsCWy^~$;+9(sAc8J2br@lL!Obh5?!WKJ~CBA^8o@29|1X?+(l0- z$c}YpyBeLmD`@6@K6HrXY@FIAepTvRS@cnJQrcUh+YiRmVdyFd2`*|dI}7RCP}cGJ z6rR+hb83lxMMT7;Khs=uW4N9ELpnTEo}}J`RE&+Dhi7>hI67kQ4?=Xv;zDt_zjxU( zLsXBd%gtD`#|){QK%uC*Z(n$^wY%?&*;2b}uJIaLk*(##G{&M2=gxRhZc*V<`A9?| z`n-C`(Vr(AQ9Tv$MDpL^ z@Omv?O}#)(3@6<_~JG@qgY_B&<+)p0X?|GNGt#~3Gy_)b;+B$a&n z+W!y#OVb5m!lukEP?RR<5Xpx(%fY@a{D%7Rwjvy4qZe4b5woq?<=U1i!FFC&(`k)} zN2F^nC-8$lkvU{ZTgTWq`#$pJ65y>=_!(ILk*~~}_;S}p;!AUQOdNS+&>8;mFL*KdRaVIc$Iq{zIrp z?w{?^d*%%agW?;to_bGW0X*u2JMV~V)4y{>tn?u|?!W-j9Ag{d{`#TG=)t73@Y<^` zp+`I{JimMdbzA!z9xx)d5X&oR?B&PCBXMlbwU>3-3eNuu1GBGR)y?TskU`Hcmpfk( z?)i{-)DOnM_%y^K1Z+!lFqB{cx|pZs=7%vpW`kt&On3Fm6kw|s?ic#I#=Xw zF(Pw7uf92ei3>hadsgz9=HuBRmh1O%cvPT6@@Z3#EF1OP%#{R*Gjyr7>ds95ZSLV3 zWDlo$Jhp+%#U6X#BtAGWxV81ruz;pxgZ8akRZA?vd)^xK3q(U%xOovaIQ5qY*DYjD z&F~%iv3VNd4Y%?aXCp6sZ<`5;aaLaUw5||$E>G7=G^P+yL&07efx3DvO8N(lJ-p(hMVb8j#r0s7oNiUL7ENYcQUxh zGy-zF01G9gkBroV|BXbd2}!Iam#*FnwSVw0?hKt{*g5+OiywF7K`1wzPxIJ%ThwmE z7_VZ!p5@BG263S-uppm(gPw7AFw~q6W+8jcVL5e7VSCvx8GA|bi{UXbPH5yI6?Opd zuI{St>VEk#3d?SkO8wik^qOS*F$72iA25_qHA1S6#1TSko2Q+R423l_Vt9P%t5E#6 z`q;#kt%Ed910OONR`2XI`U+d&)3ecu(`~+mAn@LLgI>1${*^qdGp}-XlEQ&3A5WUl zTkfAgvZn%+k8I~q#YqWAybDNO^L@k(SKvv{rV`(t0cz4)a~#v@R0%bTIn59W-^|%7 ze!oJv)+w6)st3jaBMOgKlP(65to0KU6r}r+cgc_+3GX{Id(FTP%HF9OT{FD4$JARR zJNQ_pGlRz^wtnVc^UYu%FO^OSwnpz_QMpKps?hG`5sZ~>+iJ^;)f0oozvK*7&Y#en z>zVVGZ`&zGcl4O_2T6aK4|g))AXq9|noI6p3}08?Et9zp_AY|hGHhR$PP7>m#Pz2? zsEFIw`}oXLujC8EVB>Vi1^jjD!JlDx?+D?WA;kDWnd##PM6eQu2X9g$`RxE?pS}3_ zxu_Xeo>KX^GY-aq9}(l&H!!b$f&adZ0KZ(s;Bil8bcfO*wx*1yzRmYdfV1whZU;mXR1(v ztj49coi@C;hC4UF%S}Ll`4u;SG4eShV9s`BD-qo3?r{Pcbd$d>;7&PJZIRy2 zqs{NGTJ^+u$1K`~ydA$;jhxlQ`+loNZIa@=dbEQRhG(o`CR9p}+s41vZf< zkmX)qRK%D@ihJ1SE7e=ubQo+cX9MO@^lTkH#V9c zyU8WJamOzx{e%4ePQoYt z1BU)c*lz~3sRb2O!`?r8Jb78!x7^iTGy@+Z&)+IK%AS7*H6R8ua?D8XoZ-j60fXB^ z09^Wtug}?V2`iM3t2T+k5*uZt1zlJE1r0K#tKbCRq6rzdZ@sIvPkn}JZ>#XBz(A_c zK!YP0uN_XvG3#atMoXlvOkR!JCryQ3;l;PE(PI6ME*Z<;TyjDnX+9_j_ExLvg|mr9XP)8YLG&(v7AV!)Q%jt0>R3 zwOwaQV5>^83)7RYq)aV}qK10{Z#Ee)3kh72?98$czQ~DZ|d0qPbLq_x#0f(n!p`G1nBshVS7cQXl@m`a(5RVbUP&GXBet%^o(YNgo)N2Lfaj z>6CP(VbQVcZpU1@)}WCGLsdgu@kI{GFC|~k?JVRShHSb$mF+S7dvh@sYdyOobjLCd ztm1*mHofvKnjbx7ew~*Fa?PP1$Mk3Oml!4*Ki4UHvD4DtiRh1t?Ux8g3*-d1kjwNl zxs*SpF6F<`ZvLG3*>&xN7LVP3gw%miMQ6EzfYE^)-b7<#>epcy?SK^QmwLjmi~b4m zYSh{jVnLT2@4i2yTlG~jScHeqogVfN{kc4LUs&6`={O9pgvY4CcNy#1GCwHU*~IXN z&I0vGWe+xfRt(dwpFB0WABk`;^-w+ANi3?^R(iHDUU_->&|BGw{sML#aNS<*jTcEs z$!S=;f`q7Ite3)>(i}JxB9CPemG8?AAYOU@@y}qCkvuMc?bFb$QkI}Y;jfu>;~)R! z-GN{7zPHAj2{H9eN?DOFml5h2{-7&h0AO1Be%w@6uNEu#1+@7g6W6EB-|m^ULC}f0nqL7yulk! z5tiM(s_OW!UKp5)V48MdpTgTwzT$pQ^2;YQ4;PJhz<^Jb;!g4T#okes_hozd;Syo7 z=a2>>mGkzJaTFJUTgJNqw|NSmKMA;f0lD#YMZK;e1Kdbh91nMSVBMoULRR+Q_zdvc_H2Uy5`RJ#8RyVY$>Gc{`FY+efAk=L%mXNU z5ZqG~*`tV4(@W-Lv&+Al@!%3Jd3`QQV&Hk_Cim1u_C!aTftkUI?HheP>kgs+*4U9f z|0Sfg9-F`x8btLUIHEfu(_ys+AQ}=Gv0S4Qyd8>F9;(fVCPhn#o_ek!aXkO6IZ2+G zK?C#CZXm?zxO8C3Ipe)GqxrpSRKUsG)sXWpzh^nk|4yd9$oy$j_%hs4J4B}yw-O{G zOZP;@f1_r8r<3`*-;XKsAL);H({1AC1+U6ac6G#(?n%u$pEs;{`aOK)CR@l`K4PV#DJ@m_NXo44){rSa{cUWgI{#TDQFX^p!y|vu~Am-#t3Jk?DTR)#G zy_vwO=jNjQ&&Qft%VB=xDZGC(fV18t`juusPOI}e1j_zkWrt~zM%44=AZZ2+2u2-^Q`3i zMzL(UFIv&`z*2=^fiTjad2S280%!3g)tfE&Y-4$~Qd>_&_)G^}Jm+ngYT=sG0a(Qa zYxVBU+|GsN%NYrZP=9_Z!G|y??Yk>T94h<=h5rl_LY^k(9!qB}dEUn557(J}ziw%C z?nF*A%%`eKk+S0#BZU)*oz$>y!N11Yf}B;go?j@TpD}1krGTltDSm`h7s62JFLieX z3FWeTlrY#=lx$FRLYnc;=X^c?*THdF^8401MN=Wy7kYCY6=H~AR39sQoGB9NzUJW; zxofSeL+(8|>v`+SbCg7iAfIG>-r_~+M)9_)F}lTGEM?hC_mr2k|G?PU{F)mR*rbf) znGs;vgH=AKEOnQe9_BT)6!WTC_n266iBj6Ae>o_BL;tyw)Q(-0?jhY1pxWb=MgPHt zsT>K{q<6TK>m{Cs{fRwLF)WFEGXJ4n>GGaaSLMW-qPxN3vBwR^ckTR-%fzPXq?h9w zO~YnECu@C9&BgDq5JFF&#^N1`5cEWK$zA;_%9v_HCr)nUk53lX55D&0$e3Pw&TPem zADBfugs<^*E&9R}^UuNT`{9o;qoUso{{2sU(%w8FD5XF9^H0-v^qmGRT)g;k996=< zG;edFMP(~BP1gtSojd>SJYod*jzNy98<)sjAXDijlbN?E->R&~8#+fgjB)mo+X(;E z7c~|h8Ewjd*(L0!g609HVYgI~#sgI)8Xz_)IpJTy`-du(d*ep=;a9Edq0a~A=4dfP)!*bqpiK9-(Kh`wm+s&EF}6m)b9rZj`lrVq4hocc;?ovFH#w9 zj4|(C1|C0*m@ct(@>_Q-%U!UViE`X<`ep!6d}ZmN`|WIi@(A%OVDn&+wr6p4=Zx*S z`+kxG>V1Ioc~!)lF}1c@7j5*s9HUZ-UgcV;6|-7e19h&h^1VO6zyVTKeLu^JbEZ#o zLHcns0?ez}1akU;-?AtPm@lprPOu^9lT~Q>xqq=bQH@r z$iJ#^|?5~+N=db^ar`!eZ) z)__fF?e3L&d7-|i2aK@;{M<2{<)3>h-id+6M!feoeg+?nto@^5sV_>;hrdu$1~*fi zF1uu$@^P)RVXUnhHchgfL@YA6b@!|QyvhRrmX%NfeL7x}OE$%f$*v3C!uh4~SWdhI zU2j_EjC1^U6%c+Y-;+mS4Eeu?UrFEG#FD%)6{&Y>N+-9h8e>mp|0spqT{g96RDPeA zW+((m+^#8tt~_(kK30-5c9c26^Lo*SrVgr94}ge3O9G^D=Xjqo!b zo&R)I*}5f}SHk^)$rsOmI#+R@ z@ieW!2U{qlb`9%th_R)YR_R^nUexD{SeS+YFwT zinjkQRlv`wr-Gs1^{ zb57UzmN0BprG>^sS$)7`*qM~h$x^6{(plJk)mFj1{9f!_F0%>|k5)Y`gjDnAJ!B5R zuMu1-2=WE=VGf$q|ftXQunCpd<4qu@8O1$wuZ;nw%c)y`2&6C)dP z>UsD*^)5yE3GM9YBL-yb4T;k{;3l~evzOfLiBP&U$*hX}QNm^O&E@O8Fgvm!1hVkQ zWB#eMtc1sqvhU|a?uk5J7rGq|cbzJ#nj1@`EnbRGYgAw^nS`Q|Prll|p=*i7tBqb0 z%*G2^+!gB6>MHO(gjXHs4pVbM9?1p#*#@6F22^>liA>Y3;HSD}2TCZg7)fMCQRk@K zf8d~-Xtw+@&eP!8^`wOdlZO2}vAWy$BD1ZsA=6pIgqX$7#f-7y53!p!$9=Ul+4+lF?!a>F6ezUcRVpiQ9Ud&86*K(m~pm zJ5$zq@$>XD)yk|Vd~m(r2%_p89v8#xavX12ISlZB#kyd{fg5w4q<7GoOtP~>-8mz~DF>P|n$kR(|nng+@s8BbypvJYt9!p_v`#m&yMtqcns2l>Z#B-4-jH~*f{~H}(rP|} zZcPHcwk|=v_72?R&s%whp;!nBP0axvT=3=Dj}0Hf%YJ=sBS-1uC<7tBh#_%w8CyvU z0VYYfV3%8UnTNpcm-$YxC3-oWWez>_4nM1-3?5-Mxy|K=WaCR>4b+oV$Njlk%MpFi z&6OZ{{f@39VvLaiXVD64jB!YAA`_hfPV*`5Wu&mBaOR+t9Y358QL(1E_+2BPLRi}0 zNs|-p^fNs55Qh7&dwPjzsVO@>8Cub+jc5CFmdwTBh0G~@A;b3C%VF907=!CQYnvE& zygS|Sz+1+As%+A>SKU?3(^Z7-lW>agm)RpgZuq!vdTUjRf(4YB)j*|(VK|=die*_s zf}vIGc;6~6)bYh5t~M5b|4YzgEwSHzS1{@7%?3@P6~Cs$<2j8U+qE?BZrO+*Z$?Xd z{}%u^K*+z3+;JxzyvO!<@V<)%*2y!$0~{rAFpj%C{Y+@-CaE~LCe>n?P*2~L`aTFW z_;-;OK-hk*q5(GS-k&!ps}&g*D+#E?+a zR~iW|rKe&Aq?{qLL(q|}fk<)t+dXKCuB9r%oToj_avkqN6JW8X_@U3+K<1Kb%1HQheX7(!1al>Rm~D^e!aH?7G$*bpuvQ zzSXg@MD)yVjm1G9#;<}=Nb|6YA>vQs;M8FnG>{LLkLpvj)@=hLx4jEZ3SHshLaI$^ z5?7%~SS4$PLIix9|6^k!H*1Wm~=cp(9!(J6q zT;KOIoEHtY-X$lr^I_$AK`yCzm*K~U2bSwk{L?>i#+~~lGC|qC)HE^89ykcy3+m=0 z{UP`2C4oWC3MOBj`njHv-payHAHFNf;dXs8vjHJv7d-d+5fa z-_`Pa?P&0IDSF-3xX!4--+W;@{Q01Hw&9lo*d1_j@2Trf;GgpBYD!5u3?Fk3V^&R{ zp4SoFrcwuoeWue{P0edX?jpsoE@a(i9J`m;v-A#peN|uI^~7vCoS=Tk_H8Uue=7Hb z29uR}5FXxN^G4kgj!I0X2;1BSPmXu*i0=}hn7;wu><)&#oMNwp@@LNPI#*ymuHdnA z;0iPp>TPAB4~L6`j2GXZ41phqb=Dk9vjd&cdd|CB&(FAghPxY>xwKz;0l+4YGaAkRwuqnw4X^dDjh+xGyj<+ zdS4^{aFalEFjC*aiLoaS-d~vUceO5CxcIc&!>V`u$`BNT?l7vKIMgJr&uLYC4<<(p(sVol>4*V1XRW`xIFx4 zUt`TccjyrG1Sjbp=DGt<=q+Oct?z>T4PnpsuBG5~`QW}orpP`i^cAfj0G!@1F2k{$S?-iyx$xb!Kub z3j%+0<=|>>gzwd4y%y7ppErSHo`u@8Fl4+vn14;Rq0ArnwKLBz{DS6n!a|Vxp`^Fp z(Dw*5UOHG_$wS+zl{7bUeiwcOLavf!Rg!+Nk8zp%mdJ7#S^N5@l3WF_6mxsHzYK;d zw;ZP}e8@gu{J<`U?+$?=b18MyFcw*#*t!L@Gh%b#iNw>Ih5U#2cEitFLR zFud!c9{PO4>+CbZYbVimx3%`sg-_BDJ7~0({B4NoBR`O>xK;|W|jpct%M!E-vzUS2i7vMQ=e==7!1H6`*&A)GVAGBEWWp?k(1Yd@{ zM}4x1h&`v(|KeWJYA_FFef@e_EmY)`UlO?+TUvBed*ohq4IJ95rP!Al4Tma5<23`z zAU}b%eThspoSmB2a%A(mt5TFeh^+ywh;wdUyPVnmj+SZ)9O1XV2M7L$KYjF)&OwHfGsrkz|HGj*@8iv<=%Y#PIoHHwKAoJeK>g;4U zerGn{ntZ#a5{F>(vvgN*f8K)?> z|2Ms3UlTo!_Wx<{xR$%Eq#VBd3S2rc=?RbMo$6jY--AmVhD%$nmw=78_xjZ6aL}?= z_0+nH_^X>v2I}N#heCtKz=ycc$hZ!$y6h>w-5Q^IEHAi&BqvYb#6raG zQGSvr;r-SPSkE+b=eQ!{_hW5+ZjxjM=ov2jbwml#yIDdeGZf!bUXRbJn%Q!VXuE^p z)}o{C`e=WY5BeYJ_i!Ti_WLr|YCi4yXWZ*HdB#P1g54!~zkBvXcw@q0^iAp>1W(O( z0-KE?vjI}h$5ZoN=XUgi@>7WYm7&4Kc`AFIF=jyQ?I|A&3`05o2k#Q&>5R!I zRY0$B$m(JDC8&P-<@ZfU&6Za>lv4O zWZ`?E>t5)4F)6#olv{Pt=UpPhVf(pyk^Qe}Nm?==gDg~ky1Aet@B*w~y-sta({Z}| zQvKnQJ;xDwODccTDD}p>C5T+RJ@&@;$wyO&r9awot_RVt&x(JS{sc3Br>(N_@HufO zv|gm~r2c-j30mHC);v_snMCTlG`n?&!mEzlMC$>4=ZGrZJIWyBdFh%~5g*v>k`OJyCJ`KIhtAatAmeSk#f*cFryf`=JReAUDFdrrQU00L zS3vRT$%d_lSAj#*bm8^$pn;8IWggo;DPT z*zKLI?+1S2siwFdy9TyJ71E;RjppknQ=Tno`wGuObu9uBv0Lt0{#5tgqbiVa=6D@b z>jmYf;^l*fiLjjR==B#_|NK?tNY!`qhclG{r(=T<`#|i93rXqf*P)zyNto;?V%IvF z>T+QvQwGR6M#h10E!DnliG?5;H5M5B7`dmt_u`tUlb^ESfmCsP?gt_q zZF-~j@p*8m45QxymeoXvT&JI5bs`ANoIZ=)-IfiPs2t=tLJPq33Ha12+QRVWb9bXf zZ^QOW%8PQ0LcmVFs4lsO2ogoyUJ?5)zzue;wrZ(xV3sqq$l$vT2IDlhR=@WH;hykE zo5CsAM~<-Pg>K6!0#$SBY|ogTuy^yOl|qBwAXYQBRVF(Gj#`ZD=rBqFTBjjx4i#iv z@ZF27(e%y*2Iqvt9V>OI&i?6I7v|dhj3-Zd@}0m+Bt$@ zhht8g^S%%eu{X3d%!mM^RZLstyb$}fhNVm2ndVzCaFyVtV~^|?zEo|J3_KnVcEYTl ztuko;0xaxqPT%!?1npNSCdz(l*AV)C;X9Mu$a|7S;Q4mf*;mJ$VNv7)uWNOgaKCfa z@dWBD;L>n3m3r(0y;fN_EKeeKhV>m@yWTXogPP^#^ zbAq%}og?iE8DL?RAY!*A14#1b@aK-aj#5P5)0&bu{UatjCypU@f-tp5>|)kYFiA-0 zbu&lg(XMf(Vr+e?W^vn9#ED$Mq^@yGc*=IP1vp!>&O9JyxAHo~b|Neb9681fP*P?jA z5(bzVh9BGAgk4q(B97$x!_RF(VLiV*;rNnBPmLv}GcMn!B^&KCH5_N0PRf-rM6m;{ zKmP=tQ;Yq#!I~N-72QK_09so`Wn=w-^d0ha^TiLdwC;BWjzsxy>O&`HTn_d%ucBcd z+8*AY9eX%G-(|-69atJ&73YI)N7_`)1z+Tjqrxr1Gl|zW?E%`LiC-fB$SL{gzJOXb ze;_J$2-d_00(pM(H!3=o%K8F%ej^{}voV+jg2X-gVufJK8JD}{tabp#4)@KoJK&=K{HY^L z&lZXxdc&SFZsRCBV_3TQwx-E0WM1!(d*l~5Jo9?p7-*iaL5toO401@WJ=cytZ;X6! z>_fc)B7dLnXKwqdJoE2flWdJwvcH5%M|CHD+x92u{g?2OhMt`xZXh0)^m$uGHLNrd z{CFWXrgX40sf%}e6|hUXr8=C8f;S8isRGVK(BD=cznyp=#2M?aom4Xec5BYmADzBn z_0GlFf2R*L2!uJT&8dW2#;Wvs%PxTi>sb26m^;ua5N7q2Cmgn(bP2l|WCwxHi+>c{ zrd-ckU1Z{TXGq>2QX}$q%?MzM3D*5;h%wIm;Nk^L@l$Do&So-RTb(V9$+T z2hR0T?ng2&et6XaCbU1nN)fLk=Xi=CSxh*S*T)^YPmC>jK3)Jl&x)OO9~Z!2@irD*JDy{J85pe~&uwAy- z)6nk>V8MWF9VCH#9V9{U=C$%OrsXj1Yx*`^$P*^HFYOU-D~5CDW%hR$6+`;>`pK#e zS4cf1vDIM`v43%VI}>$Q))~s$%$_T7AnPVwW7&2l{}d=QThXpyfz0QumHbVHt0^B} zw+c)WS8YJ=dk8(cE583i+e;N`AC$X?AodaBt8o1r-z%WQ^hSyAW_LIw5w13=QUDyg zcSjvwPyo9ce zk6dWxA?=puaQa@!k4$hAt?4M*j=Y<__}hzLsjHG;GDv8XK?UMhIT6KGVVaEAhyNBz z7Bfnhcb$Q-29}G$KYc(_$p1yD(hWE@r9ZF=8P5})haQJ`kjBsl@K7wzYawNcUY~L# z=sNaDtAYa~Z=;^wWzZh@arTw(bs&9*JRR4R{_s#gkmi!X%>4lx#;h(E>!R&L;$K~o zO7G6xe)rn`5Ic47X;eDhhU#x4yG>BxAyexw!_@k#F}42Q(RaNVal!-0^E1%Bee-jT z3y|k`&qRIk{e$OWUA5+=^7C#pE_eCseHHf0(Cgd5&P8;Fl0=6r*V2FW)?bkTfBi6h?a?*9w#OAndeuw3PE%_c6t8Go0hHjnc@ z*r3vt)x2Xc{DRiIb1GNIl>{Jm)+O!=QPn=qz?eZN>?c+Ri+FRF_X~!VMs7KOW2EaI zI3Cry|Ewk$Y*eH!?R=OG1~$)**UXHg|%d+1ZA>G-}0DT_N@5kEIg>x1-O5eFgBcY~5pBjtXFY>tmY*%zYU ziPz78?LT(p02eivZ?@rO0Jmg;iDQ|NYAt15D3%Ex9BgZj_ILy9E2^I*9}vCh*bfsc z(W`D?!~59cHa+6kbg0F+YXe^qd`xKfe|laJzT`kup~EqFXUg>Tl)5q0PsyA6WO}>U zl)ULD)7v=%imgr_FahR=R4JpQl=~fSW)JA72teEQ`Y$Z5Uwi^BCyo2hh>Zym!F0ag znNZEkaH(i_Gn;%S_%@s0F8-PU>-OI(cVA=;6FxgtOS_SLeTF!1YIU2#`owN6mcvNC zhBEp!QCd+THmcYs{S3MHwK%j({zN|I^*CH>yd?27S`XTtcE3?i>LM!qR(!@+W>v)h zEJZ;3EnjOfN|#18;WnR*{-~IKVD6`cbI`&eVqY#5Oz!(Ws74clsOP|EjhwQZ5@pGe;mU(jg&^SI;Ut9eN$?RJ>FI;gr7W1{o8|-_eqDnOA-3 zP#5$zFszA`G=?{EnM|*?C&B$jS((>wis7OwQ`v3C$3PpfXI-p0BKLPcz7u)H`8fnG zX$&^GVFX(%qJE9tj{&zACvHwY%AJlc+PK~9(g5OTrQ~^~N}wePHgG+i)P9M+kBtcH|-*dhAl3E2xP(~^5YgkvE0PK6$b+6%3^_45vFewE6}CLae5 z6^g?|xC{DrCgY7O5V`kwM1sdcH61=lMsK%wK|%j4mpX0r{qP7lTPrTsPL zN3=roqHvefjMKR%qr%_%JWjvj+Xe26B{y?Hj&5+psP>jE;8N5>@g5*bI zAv$pWlgJ^&e(cuym3TTL2K>dDKV?K^PltD1lix|~t%RTyb`Oyii2qh}hLY7*4$8;Z z%luzv_VsAHooWB!)viV8cQaTnHQ!6PfY?3t-7h4Gzj_Yh8T*|-j6?#<^8=o5S2e*+ z{w0Mklbhh3zE8SkU=)ZP>eFhufY_CVyH+t*L`MKIiSgap56FHflwOuUEw=)e+iu#p zvH{U|ULJ_&Ij@S`hx7!i)`IqD;AP1DT5p#>=#6lA`uLQ=j?U*5#5YY~{&ctCz=r!E zbUTZ>_APS%^}SNPP@h^mEYTCZv2YyWpJEZ)8o9N!4(ikEX~X}=zO=+v=fBUn|7|7C2DOyQA&v(HBRHzPHE!a&+wO#VDAs z#Qvgfg%iYudWCw6#DasN%8vsT(J)B+Rfxw>7aUAIBLj9IJOMiYA8&6R)m8Jvk1Hq$ zsHlJ_se%|Ff`AgrNQZ!gl%y!Aw4{V|cXxMpN-W)_AQB>=hyr4R0-`_v@Oj_o`2IfU zgTM1V-~I2-nc2I0clWh3vom`IOupPU5Q77oR-cclv*744U*p=|Ru+JsVCU)EkDm&n z36)4E5<&=Yrdj98-3Ee7$;_?_zwD~lmr#BgmdAhGTShwTIv4c&4sqMm^J04MDW)Lv z0s^QB?j?+_z}K7ptI$R3NDF1--xJWwp0hw!#EVD&Mp2SrS5^QACG)==Ipz%WvyD&A z9?t-d<-ngOTGHTh%B7?pkBiVLm40`k1dFGZy8m_fPzW1*;VoWeth$V&+mTMGk~4)v zpn|@uSq=e?Zfo&r;bQsL`$1jU5IQF;g2!LgO!DrWBo`jtN0f4i)?)=X&kQx5N*pUK zfbSFwg7+Amf&XEy5GhjzeBwH`L!v1Sy5FhnO|ZQPaaS$%DlTE;`zd@X!_t`zgeNs# zjEG?4o2h4gC+lc9j4MsZTo`+Ud(Vf9{GQE6Fu$jx!`Ss*#RV`FU&0a~W(g82sMOBE z3qCMuxYFB)!q-de4|N#bA=AS9x%Mn(_r7FckJI}Q1O`9o#i-aYd}4-E(v*3AKq+nW zU_%SzFTHvB&T})&&fMt`sUMu;49crv-11dPKu{B0$NkG5pL+kmO~rEvp6MPM;JlZI z*cw^ZmOl@|*bsmI0lz#@TRwko=f!sDkqTXQvgih(Yd?5gHf}@VjaAM_D<4Qm7*i`r z^@KRSoB5ZShhTKF|71nI9yo1k2w=Ajp_}ZGK8(2l30=lFwq@K*@-y@Ex#I{0mcv*+ot#Dv@&hwIyxfKjt1ipxbwgA_Ot31_qA+R=7Ppd10 z+0*8xQQfv#ULf`=AU>@bJAb*p`l8phrw`&=WU@Tcc7soOU;O?nGT=;a<8s7D78;po zZZN!j0H${*jF0Tc`~@s;`x?i?tRNw(^P@XIX1}CWs%fQW$U}^aFDps&*5i_M!=Ikn zvxcwtzphXePS}U^3K$MJLuv9%9s%)I^T_A6TpZbF5 z?>V$UUpH5(`5SAXR!n8?rN_p1oOZ|SsY9mFwD>8t+#MU=^}~eE#g3N43I3NMg|ry% ze92L_d_#ljVYGEBBDZ7vU>7$<{&r4xpqoqcuqVm^=DY^~uz+%SAfUVPJTU`)JP=m( zqQ&f#$*>G#_FvyE=aT#G$Dgry4a#(aJpu$p;PKH*BAgb}hx=pue`fV!e$h)uLalRB zQs6~GccjS0R(SgTaOvK$5KxTZco)x83Z_nPYW(CTV8dOH`VvnyiePGEYo!|lk$_Z| zr-T(imBvCqdwK{ivoh+PtsVg?_nz~IJUcX!PV(bUXv2=r3g?><4u&Z5}jtBE=^+77|uX{ZX@R@mhi-MXL zO!Bwc@8jrJ;}%bf?MFe5MDghXA1cs!(>N}CN&`-DnjX%3p$lqBA#r@ye1T|__K^ZJ zW(PabmVYJt=m88`XWTZ^F@Jx0x?6THhxoK>WzAd< zKfi2kFp@4ycNF|pvIuJp5}@c+_obKQ{V?Bt#mr2wA5MR|Y#W{K2FLE{s_G)lZW!#N zd`Z^o1Os*x{>yJLzai1}&HJ%S4N&ae#bh3N14j?tx&Fh@VC(%zec1QTYA^n|_wro9 z)bT|8IN9`J)#LPn*KqX8?u{KmDx+{Qg(I6lD*g+98z#ec1$&Y^Ro4Pa7>SbB6MaCC9Kb&ZBDEPjSb z;j>(W_$Y+ZNXdPA7Xa5HD5La#;f?9-N6l5v&7jMWxFcgnDeO^XM#0gToq5+*ig`J` z1)gY4h1(s$>g(64@u!!ng^EU0~9)?D7 zSFPg)u^_-tEj!Tj5N-_)Oo&K!!VkNov&Wdqq3g=&Ir>K-$ei(Un}u8{TtD3S{_4p< znEABWcX==idN_Br-8xeM6Dix$rhnnFfKV)lApw8q3zlMK()RVLlW8`_#yotwi_Y=Sv6E zB;4A2qy&s~3vH;FtRQ2eKKf8iI^?f6C?7OS2b!V_i-m_{;f>1srG*&mzBI8pfePwl zAwc;hEKZ;t8($S*jW_p+1mq=^*Di|rr{5>uFR9YRzenT0%0`CjMF(ajJpLVx+OnVQ zWbkoCL%5#=VfP>DE)YJQyH*G(XD^Z-IAR58`|&k_(sbxE2s^5LI~~?#=SeUAi~&~i z$?PZ^>^{81AH(B0c85ShDv9ufIcCS*W*Xw4aEXMWU2gT3nOJ@;h!@T+2V(ZlVX~dM z2W1Q4(o>c!zI;QNn~<%D{T2y7WX>-;6{SIWXXl+!y?Cg#trp0;g5kXN_KO1z+F78> z!~VrN6N@u()ehO*DU%8fo^KUu$1q%1FZUr!e~Ge4UD+@pHd+mCz!L0&1 zW-LMNebm@^Ulhzn{}f1>PlGVW1wGj(u`qBvvQzMNA%yll71$%;hhBFuFwc?Z1A!C0 zcT1-i6i1fKGCod)vRCx(HH2C4`8R&Z{l<@@zwyKDP}p=3Q65AlC0JOnhC|mB<1R^~ z0&whBZ%SLqf%_f@nOJI#A+A90-L=-O+q>64r0Vx<T`F z{#vMgFhLg{oO&QV{U`<}FLIoFdsM9&+)*4+`!b2eIT3FEy6EyP3$DrN^R52if&NLx zr5A@Rz$M-=tn;D;TuVBABhe`nr`{KHh<;#a^ze2noX{5BuF9DT zs%Lt(h24~ctkJTxtPsqPEU7pbS0g3?lh1ux2L>^}seaYPA=Qx(Sk7vHL6wf#D?(?L z4By#r{eQM|@8&6e)$wuC@y0;l4|RN;{Qe^LVP_F$w-C+o>pfu4g*c%rr|m7wz|E8> zPpUl$#`zAX3@RkS>EF2GbI#v;Z#Fi*@xO5;;qb^jcO*8xC#~3nuZ9OfCvyUMnHrYY zQz(4mZB93)Cn`oiq<5Oj0)iSQIl|Ffz_(rMhSBLzxMg)Zc#|U$hbuXPhHvhTVCORb z;L3UOQ#tdNSe{+SE&92~&%!`bN@VF=495Ra^!8ra3d~=8mhs$%dm!t&qf6=0 zJ=nHAELMUj6aK6(`6~&}{L47_v%b{N@m{1St$P8M;{esUrrViiMxfa$MrZKU2-kjd_{>i84LjHQr~PcR z;{>67*#4fx{NNfLvoa{QiO`FxV)!!dG<=H9%IvTEMf-YSPaze496}a_!i!ca{PU-- zz37Y9K@3M*zTJ+Ozxns?RWx2P_NDj4lM^vl&-lX4T>u2BOe6bJ@*(%&EAAnmR^Scn$SD3I0guT^v=W)jfohYu zn>oWAg6LN5-IokO|0wx>ZqJr2xBJD@&=E%G7TD8qlFCw77dnm|sf)Ut3YW&lGwY>G zVVEnQDBPnQ5(^d+gF~@6g?ZT#s+9N5AlqvDnk@Gy9M2^7qxY+`Sy5;*gem|c+ zLd7>&9#Kyt@yEJ+NAOil8Gc%Tw%pG1mpr9TPT~Itvs0?uaor0+SoBUMibYTO+1K^) zOMMOKtenuf_Nf-CY6r-!6;!}5e?p1}3l{efzuhD#0z7SVhLPiI#lNC_hFj2&buPg98?AKBYbJ$JZ^l}F3j*m#}l_pphF6%OK#Q?{6YVjpY5m4<`S@TfNAOs5(a-;rYC ze)9H}T$m~P<`q_g#a&T>%oP84^OpM|uRXZ5wg*4n?^cQC$OM(JeF`K3)vzm*X_e7B2aI17qz^V?`9!pgPfpT@H^RP)pmaM6^B0frwPt7E6d2SMe>P71!SVap4m{TWSDXgpUG!}x+7-AT z5W}<2ThI5BeE&@A#R9$_&-kK6wjs3!c!(s(N8?-|t@^~mL4q>aBywlWPAr4dDqON( z9c{r|xjEl02HRiFi;PLubgh9bJc7|d8MD(?;_foLf2@OJCuQC((Q(1@7_kyb(0wpd zMclJroM5j|?ttp9Y}oC?>Y442`7x>*zm7VnrUN6z+$HWG*giSyB6#@Trt`1yt@e`0 z-g=&%+<&ZB#s65ZXIpr6o=n#P#jf*&m+4(W?c{Kams~l#;(uFtQLqB^KZt}a(AjDe57-B8^6e$kcn za766?aF3!{NH+N*2|j-QOf9(aSQm?H{a%r1_bI3W)bDL3zKFgqx{8f2$#1;zxco(VVFUAzbdMfipOVEA?OZ zZR)M9mhukN0atcS6_v3Ce7%vzqBfcWK`xOV$}DAI^c!y?++}}iNn>#qDI{rd|Fn{+Qhs{^;hC&ACh%@1-Cc_bT7=IQ`!)7m7{D z?{|6vS?u=uGs(GdL!wW{ZZ!wwT}@^+zM27>bBCed+TZ5`wr{tBz`}xFkcblqp z;olQ@*w)!UWLXP{`MX9$$djRN?6UQ}m?HS+J%7p(G7$@}-f;nDO{P1t8GnDDn}Oop z2UO(v_cxy1sTgth-QWKY*W2$u^0uFLR6GX;JQTE&2Db2H z{btBv?FaB9+=(@%JQMz`FU&vC!t+QP{8^u#g8E3FlM~pe?+a(`#>c7uRZJWxS;s!( z+gV5BT=p{b<9~$4Y4?WF+!J+3#n|tJ+AYWLDB+#=5zaXeYC-~-{N%oA(8~l zkMmFaBPscx6%%59yo>qBq=!@&E;SwZoiD`BrNx46g|s^H?>+rrg}$k2YB~zv&eARQ zS2THrAFp`tnSgGtDi&vN*dxN)TJiVq)mnB`>=(q(i#g<{U$9z=pC_HO@-k1i^by4V{p2PmjGDIS=q*mJw^=G&ZL>XAY zG0LLO;lVH5Fra&Xv&IU?PkLqJ^26O&9Ax`DRI7XEDkRr%c0AYEdVI~@?}cTl1o;0G zY2fEVP^g?+{Is<7xD?WzZ*z<2@z2BG z2*~^le2JeoFnEi~%W0+$oSb&=Z;T0rzTo=gFTTyNgL0ilSg{!bEHS2=*4M`mF+FP0DE$0Q>0RiYdu&y5^>*^kB1OFZAHRDZH(%l+UiDv>A` z#J?{qkV|-WA_;##du2I4^IB3GNB3V0C9Xc&1EWPB_Uw-eg;Qf|8ZGY4VE)kq6t6VH z_sMsb%kgfo@NMdN&H}by!5L!Rv`7aK@H}Sf9;t<+`^4N-zjnDC@?(a#Ppb>!=tL4X zt`8bv_B}dx`EvzL4|H94+4=s6f=UIdq2%Kyx{3k3NufQw9WW2J*YK+wVL1t7GKlaeJXf|ZVJS% z#WRmdcL3FT$4vg-5SWP=b7-0@fu|Ig&n!CE!R>(!@4j#GV3p7jbz%kcQzktNAmy_t zf~QkFjC1UmUibYW`2ex=h6k?`y=eE(drG4Y^UfEV=C z(lolfR)ikc-kUEYJU}dnklBCU12i1`<#!YMfz^bTSkpdi|NEd`0f#i)!I90(nc)kz z4oL#4&?UwYsExeJUe{d5+L7VMe1Z9_1?XNF zxe+7%ulvy1tT}B(Y`_ezDpiPM@oa-bw;syTZoMC$W<>AwJi?D#RIO~hqx=>>UnwEx zd1F{1mfymW8h;aA4T1X(!=YV6wI;OA8z{s-TCSYI_6PGbB41W(qQS42%TT-((^G`gjjImd z41(E82ytt&y`erOh3BgI!L2L0)-msX$t z{+#9iR(UE%clb-BK4b-WuaRo|fH;w|4x6nPguRZGuf7!tf*0duInQ1G>-NRu>RjaZ z!r!O=SE*)J+iUO5gD0n=x6fJl^F>g&O-HLi<^TohUx#a_JmH`B{3$o2F3FI+Cm5iu z?z!lg&|kM>uR*5#cU}DTetWM#*ePB7_5QyK7hTFZDSH)sIo%Mcvb*^I0Tjy8=MbgP zfj5`lFh#e<18GSWZQQ;D$i8(_MeCj~{8``kxAPzBblu_4`o_D-7Pb+jfc(4sTmc3A zyodi)_^#h-XA#5CGq0%7^+@%?KNqrZb=DIX!PYT5v7dD1G9k>U%coj?6$kcDsfABd zrEu-f=47f&|9Af6@AiLCb*0pi#qdbIy&zwL@*-Ssmo6eS#PBFg=e^SN9nyc@FZ)|M z)kk{q*PZQ$1DSlj`16)Z`&L|CDW>Px&^$i&;+xc8zc+%Npd)Gk-_BzlY$#w0$G^Ao z)Bc&LMlmdpAxi1w>WTAzfB)(~rHOj!N&Rm8`1INZ#g!*_@$JB1k%(<2Kl~w|OZxWc zi6LmNXY7kTRDfvJW4_LQ>xYXmJC@73bAWnAZ^m!A6&_i*=8h+KK{gws;FO&@aNb>q z*-=NxA)7iak!%k~8(&Gb4)?)%P4%2rV-rZ8zxeoBatH**H0^533xXF$vDSqk10Do@ zv0aN>|8LhpisYUCoqb@g@Z`%k8cr~6nOnU}Y7VT+DU4P`_VB^@&9q!_EnK)uM(W>- z*>O@{^H-VIT3|23(SfW65#UrG89!v}2ElLm=+ou`ar{O5G7T=QV0q_M>AJ@Q&R+#W zO%A_X7q)&MHGM`|D4{ccelbNkZ$QXW3)F<~&Mp%FWxw2C+TU=#8F)`SiNE{N1V@;E z{M?vu10*C+dVm_kCEHz{g?v98V1Lvn@!BYCowBx6ia8Z^!^#B>lMCAWfzYFV4>8F# zkkY7E*rlrilS8}eu570T z_ssRJ+i^Gk&;$M{f9e7M6sM`nPRG)_A!r-FzG_$)+_!J3v+-^PN8c|x^eU}jpd~#N zW_S;t`*nUwx5xZQv7|oK9}*2=l2UKqU3Cl})NDwWy5`G(N~_88-M`{!ZdH4y(QVuM z{3>QvzUQ_ZKd!m9caF>@2w$JdpCRgccnZU%Aqvv!7KuJ!UfZ3aE*uIK(G%XaY|UU{ zpH*G=xe0_^iTrD*@4|U<3qJ3+m|p$z{)kvmq8^0DHdo#@!M>xCAnP?_>QXpUJH+$RmIS2`sS$Jm+b7xNIvvKcqFErdf)a(9rZDW-=_ zkSz#(?al_WvZzZb9GIV+nxLTaJ6SRCdLOG#h75;h8pK|}`PfCuNToTUsaWMa@5VLbn*Jk6d^8)si+Qss}KL@b; zaEkS*xh9_6!t;`GE5MJZ`cwZn^IQLjJYVCmIpzp|);FTQ$X#&D8vd;B0f&B^$8Krh zER0q6y8QR|yx4t;?)6^8*BcLLPz%vo;P2;-Ow9}%J21cd?zm!}wpMK@y&e(p?RGqz zu(Xp_&x^;kU-MqJW5^hm@Agmo$!vtbdS1ZRNt##ovKECW(3Pi*Y=~g`;8bac_(@0n z`}Y4=k$<1rvoVVAH$da<-;Mqc_k&sfp*LlW&j&F||NVPY&8&12WAX3L8-MbHOJpAZ zd?w-#y=hmgUCil?zrT;^pE5gbsLpX6KR@o+V~VtfSNQjUx3;@FxF=wKxE>XyfioEaeJhoZj-VY@c6<9_(l>DCHhB)HEkzj*%Cv%WA9?-u$DKe~&oBG< ztr{px2wXY9oTwdIkxx2l}$B3 zHZ%N==GjSHy{3B=Pwr4@0o@ZbY!nQqLCl@hc0vCR^xKl_{HV3W@za(ONxD76{`2u| z?Mm2295>K3z5FsGzx8;X_|a?DJgfL|1w4m5jx1j|5)@ zLsWzPwtMmeu^xs0YRn}d`i*xN{;->}f8$;8A9fQl7_u=_3PP}2@4b{~Tfg5sqd=Il zNeJIQE#hd?o)p5znL*8I$8f`5V2FpP&gKx%ioE?mHLnSdb9d>Sxz_~eggrib1m6K6 zBYO+QYE1t~;8&@M;L?M+&9=tvqF8@+37ku%3NL|B>YC4TWSIVOS1xL=$k^8Vq0&I2 zlQxOpUW+Mb_3WGYxF{6sRZp-ifTKSvCnZh1*$an=4m@HZ2!mHgPi@~f+XBR^YXfTe zEl|&78pAVZ4q*woNiS|;aV$o;$Wx*GF6hl{FH@q#&KI9wTHM?%Q3e!EKPw#=IdJsX zwwk4PgfYF!>BgO>#q<3@=5ST&1B)w+r7J5PA)k*$MVPsN6twnROW(BWAx4C``G=zqkjG2`HI+i=FrJ6?NLf8 zpqX+#QlGUM%4FYc^Dz&CvI{(uMFPceMMgKDn7tNOYWHcCk%t4D?nwD`7j}9(XD1h%=GbN|05=Kc%Y>1@FG+UZKm#!SO50Wrf7VVCQ#dCvP7J zI2Qxe?+j0y`ffeXwPI)4>ws>2oE!EF>-}_n2(oJXhAGZQ!^J}W^Scte!Ef#3^r`9| zuz7p%L|#A%MCGU!n(|iA^q}_9g_@pexBpdVrsD- z4&E8`pFi+!eOzREJ|xxdz|W`oDs?xE z=gdy!6Ze4O#N0hX`e>MvJ9TVG63biJ#Z&gP<47dz@++uLwZh_%G$$QnqgEfnWlvTE z_hZ<1JCd;LWI*%qmisXvbC|8_L;@ba?*rmYu~_{01}aJJ&FoOjzhZdfS*XQ@Vekyv z|Mp5*6lk6;NJtj%f-V`Ku&OUzK(UYSo%}!qIC35u&=JD?`|?(wFL|8_gSx#3(rs>I z{$!bNN6hngKLquN?*T$hnBC6v^tg#gGUjiXB(AG|QS}%On2E`+u=s$o+vCA~HWhGn zcXN15Ob49HAC6r0uKyMT|5 zBh#TE2j1(y;$9cW>`T=H=aO=Fv_im#{iCVXSUerXmWr3|sRw#}!d1b1Y&?pMMzbt8 zv3{$M2lEUyS3yLF>R}tMVK^CQ(VfjV0m2(LpW5=P(6-~G((fF{Vae3*XB<>OQ0U$4 zJ=Kq(Uif76&Fy1g`QyTq^S|(EcXK(bu3Rd}2ubhgC`*OqNcF27(c@5bb3t_foE6mD z`%re0#smAucCwu8cxZbpgXVn9z+AtTUg`e$mgm>dHtNjX6626ke^Ur4D}kO4on2df z6r8h><1Gr#gZx$<{mjo@u*yDE50b{1-en}Q+|xe_m(G?kDxa5wZ3p&77PW=~%@n~A zr=|=Xf9!YZ#{zZOJ{>P;m^?e_0|mu8!^wtQ&-d;TT_+gV!{6^oMPE0;;1e*`rLa6E znFta#{>@ij4nj8hiAufTAvp6rKIjK|9!Q5ozs;Y){+AF`aQgvQdp69Ag{*yT$NVk3 z;+`BD=NN}8iYvA<(;N_4!JN!rZ3`ne=!zN-yTG$1!!N$fF|gc9=s;kK?VoFlL#GK8 zqagY~_LJue*ghPcs=8f}+67#b{Zx1E-TJsh8$G%CyaYdgm?@K%lkz40ec*3rHonz7 z8UxnY4UG!!MBqIg=2uWK2p(t7`p6m%fwBLnX-H@&?Brj`cNM~Lw`6oRJfA)UB&|b3 zEsZg}%tNKYgcVJ2Cg*@&+Xu|f7|)zj+x~j%_dwWbW$v>)ho6si*Pb>oYdgN5g75H~ z7Ggfk-m++^+|(%?gS}+8NJS3*>K8-REVb$&P&2f4b8!s8jjNfITFjv^>Z{~Q85 zqa0a3_=+qTd?ve}4K4L}^W|#^4(1 z=$nIY1Ht)H7Nyd`YVb^2=8FjGf|2=@MTfCUIO@_cq_iLN2RRRTWDHpLL(RcN?nZ)6 zOrIh?(sft63EVqke0nXh{|sFX$JQ9UKNe!K)Y8+ApMFV2A9w|DW;v$3G4 z)w}lAr4g8^f6g6ZAAt7{HFCL3bD?U?vR>&qhF@xKCwMf6+aOI>Dpy_%>(6xCK;nJp zCa~T(W;gQuU;eMu>e{bHSiG&|%X52UzSINzDXX%s`VmNp`uIeHZybh50$RzbT2cCB zvVfs^7BJJNY;W%1fPES(cS6lq?45o^*s|j+PNJ zMGP{Xe0R}~NWBxoLZxUk<(MGp^lda4S#A=hWQx=upWqh@-~Xq%vlO zU;5q_3o-3+>Mx9?h=zLGP>w1WDz9KPl)9vh);aT<-^8k+jhnA-1QErc?NpnSYDR3h zdbQ&%Xsq8SpoSf}MA7Tq$hcAc*!EUcbo59_@$94qjz2&^*oKlJ1}C>GS%g+I{y54t zZZL2mPTX=k4L*`@>K{e-w+c%;madbl`qi;t#vQa-1L+S@&T6ANwG^mbB z1o0iokdAu+sA;S)@jB8+HoZJKZ`N<(#dLGqh;{7eShE==52#G~H{bUE=dHyf?{n;5Q?*dbMSoz3v36eJWx zzB}>d@=E86?JCGo>7w{UR(vim;S?#pbe>mrk&RW@g z4M+(>g-mR64R)@`RJ_ciU(69FcgKqQ#CsWk2J>h@`U#vUbV2(%c3t86r;~f!O6Pup0O8^?ywC+_fibS{I zzBb2BD`Xi$cyNXL9!|dY+MLXSswb_~W9*-#*JSR4AhB8X!k&KA`}56Fb-QdR zpbHGGALvDF;W_;h=d;l~4O@4)ZVU1)D55zv*N(Jk5;|XII-{f`)f;_+NvKU%mt65{ zEXq@&mf$4rL;0j@>ra2UA=!7GKb|Rh*AM8E5VqYojX!J${&3w9WyL;>7 zQY0F=EE0vs-@;T(KN}K&N4MCMHf1l?g=`j^z5r7wVv}ZgTD`Lwk^TsERK5S}`|xln zupbXZJ}iV^FFek{$zKuMcP@(B9aYa!O?w29U`6Im!Lvlf^lL#UmU$O?9iQq zvs>>+P8%bSk5fDzKZl|Lx8nXVJo>OOp@Za2Y`q^}7%kh`(}nEyI_8U#LJ%(xl^7dU z6WV4zUlMWvp$X4b z7Wxs`Pw_=49Vcg6+W7uWNI4>*k<;Vx#p;tg-!J7|Uxcn?vd}q{Wnnlf{3_U)J0JIa zU(4X-<(y>n+)QX8`&1iRN@`)7e;E~fJ@&CY&6oR2FLEy5tB377$KJV_%?%eJ*KOBU-G#CFBYFMh#S=ZtIeB z`AD+xme&cPTBO8nobTIOk9IF~7DO!hfycJU({%kM5T#->FSGLzN;bIG|6a5Rs0R*P zD$5R_$7WXDM;mg{w#wE+6jQBe#_)YDflU``TnHH0$LENOX~gOm?csi(GH)~wI4L2g^Bz;;? z+EtOsu_ATksOoEJuoi_}KJQKQZcW4S`&g!4mhGv-_912^)?EzFs5;c7s3N3o%k8ud z8<*u9ti|I$cP3_Te!K;}zOlZ_bs!8iK4IZft8PZ@&6moLt2ZM9S)t^h`czc2cjyLF zMmSEsT0~yri9s|H+__(t?FBZ@!Nl%U`Y}D|ZT_o^8Oaie$RZ*u+tCLl=DeVH5%fdJ zpIJtn2vSkBzicZt35IKTi8l-U2xC#;vb;Yz6SiJOOpm=(pYlh0^J{g_f9>6Je}`;k zSsji>;^TPDOoQOgKs>rb7Sp3H!yZ)c&!cZ|5{As}58vrYZ$Tl=f)o|bEr|c%8G*<* z0Z8=hCPm%dLTrEXqyn{%9*C$qfG_bdw%&*>Se6Dd$`D_1;=2>{7+%O9P1NBh>ECic zN)MScoMTSG<1Zyr962?GuXo2#XKlM1>4NFgU;6wR-Fi`abo_mS*-$hrd3m(hv>6$f zGxj}ZZbtFD+zYQ6_@JEii&GZq*mv)E<@#8>*#!~ZRHYUQ^2gCPOj~9=6H3u@_Zx<1 zSS)e$Z)rYdNTm$-tVwUE+qZ>UFrb<7G;olkF z@~DumRCLg5ENZuZCmNQ!A5ZQZf^tZ;8t$GgMH~emZuY#aLksPMS4M>rkl+MGd$@Hn zPX6kTk%TPOeB|PmyFYTF2wQj4oX=ASOHk78_c?=iLUHu8X~C#*daU0K+ny(FXceJN zgWjH8r3OTB>q9DQdJ|GS(j4~8IuPdN7juVF%YcSqSZ4D@??@Oc{&;dD9aP;P*}@*avyZ)arfvsmDVlK zKTeaPGn-FZe%YbSw;PZiBDU?ekBf>zNu+hjq!dX=KKbe1{@zl=Z&GX2J86rnmru>R z#r0wh^4qNK=c8fRbLmZN7E| zUl04QLbrcas_bJi9{)$xiKK4FDpVSu%5_c77rl`^8Y2)D1XB>8Pq`s-Gka)7R6xSB?%0x1gQzH^#g;l+ei>1`6~b5V1ae zEysI101alZ=P;cJLq4}H_)O1Z`?V3hQ~4QT7WL7)A&A~;a;k== zWy}5Lk!f+_)kwv+H;u+M{U&=9Dw0ULG1xb_X&TLPvYoB%!}!p_F{u4Qkinl`hEFtIVKpLZn>qO zcC2a3{V+^s@Do?_!{aAaYA#IL?uJMAN};z9U3JCLAAZk0{rOH4a@5}WW>nT2DZV?^ zN%!twhJ5oa)UG+mLYI!9w-(#aT~+3q)|9Y*e~=D(oqFM3nT9+-qgSZ8%rX~fs5|$L&g4T_{H&AmOcrP@DJom4 z_92U%O)H+HxiEKAZc>J(8!a@5wKBV8BKrfUUvVimA=YD@IZsAgk?z*KDj_ zbRzHHcy;m*yozr=WY9cWf##0N6tFzHkL~|vdlf>SH~g~G_!3-%4N$vgVuI-PMAXoD zr$MZ|&aPJ310@w3Q3Vm|Yr0rlQ} z$Dk4xh-}U(cJI=wM|u^W{=#K-h~`Ju4H$?*;@^h%J+i^{c#bJg7NecPXf9=One`yH zuLV68?REOmhInaWcPDWwAuA)jK?0E=q(;e4D&iZ6X!aWnom$F5E33rK7tJxfP+>ze zN-8E1trM6Z4;R7o2FXbaF|i#XXrJyxgB5S*miue)ANWA_ANbJms^oH7TN@&wKYQ^w zVF{w_6#cBvW2mVg2*I zw7`|n+JRb>XZrNy1CjUn6VCDrb!d6h_kpfJ9n$=bZ~AvXkSgrO^y+``EiNdhd5{Lf z0gZD)Dq|)2$oe56!IP_)T|%T75O@4KruUefZ~DmV*@mth1je~x7ZkYLM@`Q-8_D~I zH*B*nM>OI5YMGzY(b8Qm?;=yIf75#UM)rkeNRYfBL}?iFdlSVR3b@{zk67z3WvG#3 z_@_60s5W_~0QVd{Ug@Gwn}{sRk`H=mx1lN4(<3Xt>;T1kvxLu+3Xu6ej^Mi!RmjEE zj>fVx5@o*GeM0dFwjb_RK0)`@Aqz#ajo+pS#q3_mvRPyHuX!knI_N#+er&$ScAt4! ztBL6kg5zl0uGn3bJYI{EyvHfz=ju?|<+VK{tG?j0#I&5WKQc&Me!m5t33;KR2 z&gsH__bt!ce~L=hjvZE0rhhGW9(`NYcC)~f`!K{s`S7|n;{W)?l`c9IN#>0)Lvl3w z=RJSQ8Od|BU+pkQ&C9cCS9z`fx*g@!v(IU2Lh$4^w)JSsJ9+$deQEURldhL*6wIEQcBE9&J8I|UjL@Cl7RlKPgvUOy*Ua+f7Zub zxsXZ{>4DTd&we;r;Plt+wp=%~yJi)NCs&nknNwWliAT4LqM9MwWsakVJUnvq#-*#s zL8!N2+lm*WSywAu{_2TqfA*~C3mt(Z9REMSHoZUG7FThL}0r2U_8a$w$`Zt= zkerbp7d-KKzI4z@2ook!{aC78#3Hk4kQad_YNvh?ox&YW37zf~}8>CNY19-~Avw{<_NJ zZZ!|^_p5%3!k`0zg=qU?g6iW=OH{M{WiNqc2GT0o@7r=R1M#n(C-JhZbvaUL?wi=c&GDjrHfzdhg+mKzzT#e-%gZM*3au zUU>W*Iv2N9Y2o7mW6=Ta(Sz7}+-7>thWBrWweM$Z1LUDGU#F@RhEC;tTnwm)L5vI%+2NC+XtP_oWH}h~ zXT~SUzI(46gyJPC91pHyeutaaufC6Hk3zf`C#ZQyvGXPIAvi=#i#?l8ZJJ)C_ChYz zLGN0n;*rISf|~pR3k1q-VJWl`$p6Q@QNcc`@i-2HM!%m)); zyTsv=s=7{e)gsG<#WVwU>=32z-_eP#4Xb>k(MUrUi`PjHgd%kHF;u%swV}D+_~!Q; z-`IZRTfK;0wj*B$dP4Dfz1GnK)!0kF&*{uY6V1jyn{u-di|)Re++|nvnD}|-Y1ghT z&(DL8yiWDdcc9_lI5znk$5?;k*zH0ZQWd8P^ytB0@k zj#-USAD)OuKiXgB=$Gf<_^ZrRcgzl8c5d2LmRVs7cSKuRK{sc#b-yD4;Y{j&3w%4* z;L*gBXznJIwrLvD^V1i}nq9Lvd%O2n`A2sVY@coTJkp(88-NU7NIC8M*0JUO+WrS_oc<5o_!L9O z$#2t!+&G`~bw&E4%NMt)cP%!eU9)^bH@gusoEJArU3W)&{WBsrVln&cS>uR3|0@?% zvap|IO$oEN{Ku*{sZxp%C{iEK*Ted$N^Y`ux7^n4+}h>Gp?ThEc>Fz1Bt#qp_;E$& zx=mMiuw(tpRHmoeS=NE}4wJnWf8&cR6yqPaZ9GJ*sWz0Clj+Ey?i1%Xf6UJ1IJqIj{cE0v8q$VQlvm>DpA+`E zigOg8peOq89?#|C=&~lwMR_#Xeln35L{*uahz{JXx0My>L@P+{(xX~$)K0f-&`V!{ zLg{>arSoghgZy}Y_00%GfD{XrE&p{M*P7}oqf@cuhUB6s}bm*_xveG&w2iW7{fjEJ!bhqDxdRTx5K2E-t}QQzI{g; z+eIl#^!N5h*V+M&6B;-0NltK@FAjk$rFAb?2(7yL7&o9$6tDe z-CKj+F!X1AtJl_ql$-t0pY^?Hekeqd?S$fMM?XADclhgePu#T+=zr;rC#P#ydr~A4 z-=DbLLAaXj^#2j}<>6d?Z@UO7DO40GNs?4TsAMZeks@;uQRaD`=Xsvzd7kHadd!q5 zQ|7Tzq@tuq=Xv#1zU0=QDz0Ujm_gUB4Yp?y;Yd`B*_j9j%X>OLkjUnKTYvPAz z6O`9qB{;$`w-S>8iOXjHcdB{y=;xz&^H=|kL&aC#QX{`)TAM*){7w%V4$(Yc`eeFU zE}M~@zn+ELzkf6GyHyU8pJH*Y>-*uQaR(naPh8K@oG?|0#?e=+tvmP`+t)0j)sUEBHV(3Brf%Zd_hUf-B!2auj(c zz>M+IwXv6N(6`SO);NqIQOSzy$U+FXT7T8AuL^?ghqP}+9dZQL{w%Vqom-DT+=`xY zd-1dYg%tOX{UmZA7)_=gD-;aOJ4nxG1w?~i#apTR&n0kyIcCoG1zKO+!JBh?Y*q`D z+ej&&MGAwI?Iq(SaW`n8CC-U<2-vKDu#koEJ06PXYB|UDe^0Xn7O9Jd4=by;+)q>c zr-a8uig4;L6ul$is;q+Y$9&(O-SmNYu9MG2j@806r`>3fbPaIb3X7GA%7S^f%K>Tk z(fW?&$vq1(?L^2?Sgj@iG+w=B^X{d(w8Bz**t|M+1JsBQ2L%VY1Iw|HBeC=zpubD? zZBkz-6h2z#nbSjgvw6<@qJ==)b5)-)9i27-NF6#!q*4OsNH6PF~;hY955!-yX>WiaHg5UKH3xFTjw7g*c)W} z-rWzU{%Zc7&!G3+U8~?PwbGL%e#W=KH7Ji;1f7m`7vRGZlj3v=Lt0&XN7}ygN$vC0;faT(1%EQ1};uI{C|&=Y3KkZMuBS1VeEd zEekD8Pec(E5YdFXwIROH)l6a`cHcZWto*L@pf%#Xbo`HZ&B5WyTy_q;O}rAjU#%R+84#CRXc1H1$$B<&!MfJqo)kC468U> zzEptw#0AQ2d9Ikn&*&eY33D(f-Rt)b9?QoL`*V?!&7@=3_Lx?T?nHVf6{Leb`t1>z zV*h2ygKKEt?gHm)vl~ydvAYBPXK0k0;3px+a+_}g)>p**vDC2GOU%7F5M#lEBL z!EoU~4(G$WvGCz5Px#a2& zGxxP}I0|0xKJzMb6#1S07o{U#=n`OW;W5j@om-?_{C{2 zVaH*+diZ)`$4weGH}Ebad>uPd4kX2SQ#bm`LHEMsRQ9(}sBQbCkr0f&{|qwT@aq}= zu>Sp_{2T{*9_{zeqJ97P3FWBHSUM53-X%HP7N@Me_2=*od}RA657)nYZ+DKlX&8)C z&M9O{+gy#-bEb5w=PbtRL9EXEQtzA#*tKVA)1N4X2tSTcl9dwJzu|Xd^}F|N_ebxs zZ^Q4Z@)b;yM5B1Kf6wl13{q)8yngNcKq86@q>fsUNhN0j&m>t;>2s8S7WjS!6EDetF+tWP`*4&$ z&u!1QTOdQ@VbteZQiWJD_*aG=d~>A|vNQCj=aMU-U&z!>G0F)$T{kkGl#+`v8i_BR z+gXV1v8+wuc$d5DZ;0E=7dS&c?9<`+`#kJ@I^L-i?Z1!r zmDUF58n$WRTt|NW@}=RgqA=^?E#kY+0}e?E+?Uf2gkSgh{kj>qm#YUj9HD%K7z=x^ z|JVJP{vcXWP=K3nGtkU=oI?NidG&Mi&l~su2QKx?Or|TZhsEgNl%I-Wm$oF3ftMWu z8Rz7K;KB2JI+czvcbbB`7RB!}VM_rqsrqnms)=>&EqX80S`>9;^nZ_QT)pb*cL^VN z9j$r8`%+^zu0M_teV2JA0hK4blCUt#{QJB-*Z7SnI!4_7Mj3B^Y8Hz-uA+CnaLLC< z`Rc>X?s*qt|Lg1Mb%j-D1$A5=#Nj8tp05&c`Bw)x*%A+pptyZ7R?iBr)a<`}|6dmV ztefuJW!!V_*3*=E4t~L1Usq3hUtY@J; zSp;0h*c5ph+`;%$QMK=SATSHopboh-dBiDWv%V_1xy_k~u9ODTwua9| zo}>AgkpbV6syZGt_&)Zwa-jBT%3XhU4f}yuXbHi+``uf9-uU0*qF<) zIfk_Z+1}GvTW$q|o|Uli?!0E;&|tflYTpb@NBc>U&Ng06#i@Toz=kI)GY+SG zeO)K7SPrd|Q%I&M#;dzvWico~YPOF(k@h!c1j%5f+Z z|Hr-^MWWta0#>l^ZuuFN8z?TNw|U@>|F{qq0;ik|*if8MPZV1E)&}7~OtF#L$v4`; zgr7|DwXZWsi3zvY_~*ixRHov$xBiK%EJ!m0)-piT)bU87Ac_MoMJ~#)IaNUS>tcj3*aS>Zxh=XbfN{2%+x4!$3E)3ZjnkyUT_%eg~IK#~%XnNQaNyp)n9Uql0- z_!4vLwbeq%-DOj;B*EuskU6QMZLwj^u6=fP>`*0t3_-#Kd z)aqWCuVV?86suBn!K(tJNjF?$`V`Q~X1G_;2RQu%ML|i95eqgS=_hf;hZLm7(-r^o6w>@>Pcn>M!UUWwJGvjJocqql(=b4F%_x+ny zF1I%;HR19TCuEo{tOIcWAFF1CE7w>MPs_JiL6h459*k3Rsl0X!1IjEz>t(&L&HnH4 z`4U3Zg5tYh{l9^4mFvrh@Q+DSe@n3&j^HlSYHw$X;wo(L%37BY?t1;-Y}zCu-jf$M zFJ4TzTp8gPfm0s)TO8?DeyGQA4{p7Gvk6~E#(^ui<0pRGDW$nJT-?>Ohn<#8290YC z4~xpm$-n1g{xWx(@xAiKxZlI4AF8Y~F}U;YuB;w+5h|3|J34ytHN6(@dh2gZd#Oa6 z{*5P&-(z6qxoXghtHU~Su|w=t4=NwBPN(JC5rXl2bn2k^(g^js#)J-<37C25$*yv) z28ioz%evqm3ybmfG~S=efKM_k*5Y^#aAgn1=@)3iT>Wbskufj$aMt`Zey2OcTipzM z>sJp^JYUa=rRl-y1t+1SGyX94>V%$1*Mh!G?UB7@_oqW-Zv=IcN zq=;liuRxAiL3Pg;Yj}O_@`q4i7uZQs;kGw67jBg3VmdR3SNtKQY_Ml{DXgr_-5xH! z2FtW01^Xu)AnkN8zVH{%&HBXKx5><$M)T@JX6Cm)y;NXLEOtEHxpeFO6nfuw`3Wvw zd5SM4$+@u%EZQHin_O^#i<1K<7`lq#ijt@e#ra{T7%p|efV_bWm=r10sQj2pMG1bh2qA`3Vps8^%g8_U7@hXXyO9dH!rz0hA4mLob8pEToEaz{=1L^IHda~>r23SR(@Caqb}@?d zOGgYiMh}~PtVo9)AFwfvu?VP1Qgz1GfzsfF^XahKsKCukgyKK`aZ*O9fBbpJ z!}0Ps7UY*lUV2FuMxuE8oV;$?sokOARZ-?z7hDcRi?>(GotNUOXt~JJfy(L-Wo)S9%YvTS?HB{B_{uRfOO8 zljPBrN+G<}_jJP8L_iW0?z!E3wK5M{#ECvLekcT*GfJbMKiOkkzJ2Yx(}aDxtD$c91L5T1NX_x)Fuv*w^Pe9`pU;MVoQVoA=ty}uuKKUrN-R^txy3@8#g zqE39&4ve-NmZccwLY0Dwv7}Zu2xJ(q>g5H({`V3y#)&A-j&#aYv6--iN8j@09@3%x zpLGvuZq^r-K=vNy_Zl7|khRNat%1lNX3E^nf}H|j_ZxK<>0|M5&1X~xlF)j5oYmn1 zom@DOiK-m+qD14l_iOgvtB(VrFlDOYO?2g!pVwWJ>ev?(+<0Xhm6Xb8lQ~ZL;OWkW zpYbIil-B&1PR|}3y==d~A1?sv3;b3K3kC50XA6;6jw{S_O&w;-LGNSn%%JS&HhT!I ztL}NOhW=j@UH-ujH3=ZFI^jVugZzVsc6i~Q6E$0YjuSci1PV29^H%cPBT48;sB)ojsyq?fsju?NkXs!e_F^)f5KVet8Ph2NBOxao#5M+q4OY9h%nv zwg>IcQ{^mt%rYAT0VnKAQVCI9%+1jUYj()bJ_^iE`4Hs~LK;gVnyGxePpIDqE)`nC zp^xqKDs6F4+)F;sik}SL4{Se3aCw5Yoq;ghB#PtTCT!Pa_AtiyzI{+OHbs8fO?66Z zA4wD}Fp%L}?*5Ow*pjxpm?!d|{MR|~Tbyy@?sMv|x*|EPu&W{;#7JMIU_>7bz5K-r zFxdvf8B_8EY!dIm2b$YRSGTMEJYj!%9yYaKl```zI%hh7Vql~_H3?fL{PHsXAj+HT zQrPBHbE3RZs>EZKx&vXD>h(_#Gu#`o4;s_90ofH0SX%F-Ruzh|X}YLRyeI|n_<)^N zMnRyYN7^f&kOKruBXr&0^FedsQAQ2#V@MoXk4Up}1Sa+ITIEhF;B8*)AnGZB9~?4{ ztfb~3Xg|esHy{cO?~%66ZjS_`rV@@jm(AhX<0&@%$K_id=ckO{XLK%>K)i)*6#kwI zke<4lE%8@ug&-; zo_0UjpDf;8a5-|b{vf@LHv3UDzx&4r?09IQ49tv?&Qh^CTka=;*r6h2U)*(B5c9IsXAj?#iAFP49H0stxfkLb3S5eI_PLJe zd*65MoqBYrKlD6s{Al(cyjA}<2dBB^9U)M?=KkHwC0l-8&eKwFC(UsAdST6mKSEq^ z`K>Eg8Yrbb3c+;j@<%~;YdF5|{Io!O4ou0u`~D*=2Wkc$5q-@ygVy7h1x-((@AlgH zp2#Bwx{#fSAFr|l`4LU8HO5BqXc#DG&%EA&{CUsa@%PsVw?4iOixGaW4#D-8#xKe^ z6q9k|)2l4&e#*O%e~a0bxb7-i0v72nXHEUQk3HKk9?wEns< zB*B;#IFJ10E2gt&q{JY1bQ-dj1uikxQH!|Id7=63PeiO=8n zB`{`SwZ|5=2fq%(Jhh2ef0Uv)G{Ecn;%TK6%%SMKk>XY4FR9yW?bIJfVg98PUS|O5 z^A9NHd!<}Qez>8jQ;;b>5L4EEPbjrmfq7D`ogDNo#NIbNwH|&jg$=1nh^texV4({+L zI}rHz(CL~9>?Olf!dmi2SpTBk$ZTN>*7GvHk?mP2wx^o*mQQ;Z7PhaU;!+UOuU9lQ zm%evx6w_)C%r~J_!#ZT6C-D5!F{UvFp0A(EHtT=RzH>x49i8iSB(#^Cvm+VXTmMSB zQ)G0@{oF^T_t9Vm_nfovIyGij$sx=dK&#K^m>+5@#$?}|i zU5=5KIqa6$fzEA6HJD9Qy;y?LXhye$O{4d^yk_qE5}2pcqyPI7BT#I59Fk47wlR)W#_@-goeP5lq1V9oV3 zh3^h*{k`n0(KD)%%EGCCCzj>)!IV^-auV+WoJi;-3|VrSl+Z_g+1!!kyK z(vRX7Va!w2DQ5F%93E)@CNOrV1CuPNq&7Z?bl{%~jcxyWzZr9}G!gIG_aA)8O!9ji zM(DgmajA1fMt=x9sX8Z9&PX93I5#pm8OlAsoA(H3nj3mi|1lnqj) z;WoMdb?$)+5bLsDN86H#)1N=tW4@&Omm4ync0(^)cSA3mVM8xlBIEPZ%&&p)^x{6% zonuGPb3bQf2yP99H;Fi&{e&F0;!Y^}366ow@ipB)BFL;qe6?W#ZaBkW-aM zE*Ehg0?*CXJ9V4`);UquBAvTXQBbbiPlfcO?^+hmx<_0AuK0_V4}+0@H07x{UUT;^waD2vC=)<=sgW4kE91(~;bh zg}%b4&XLRto7cZOF#S=rQ3#B`4+%=Tiy-_$z|H>0fIAR-KACbo#IafKmwL()|MAwJ zV~&f_U+;i8PW_Pcl|9^-`EknCKl(C#d%?6>UevI(d`dMDp7b6d@)|b+ES^Guc`5>& z`aZgk|MOfn8~WNUMHjbQ)Ci#U!G^vzrAxA#OdUIlv%kn%5}e;oBG<@DC=l%k08ALm%jG& zfiZO^Ys6=IZGNVC@024*afkD1DIz{V+svS5mny>756NsR?BOzjss;_uEY1)(nLIS^ zE@ujA&0_p6*IeP`eaG1y)&86M+WtLa&#q3ZZeIUlLtmRF>+RP?Kh&@FWA*l(DK6kI zlsX}7B(_=3>onQ+&IhfxM*C^|XnUN1i6tdNe$@+FE#tkFg#(~mR^Vv#tRWUIp6y#% zyDojypbMBAB#1Bql`T+_x_nzejm4g zGD6cc9z>6tq2f3F?&uBu?tyWhCs}yKV0v6*vOgW||I2Q?VbWDl1qV12<+Hsp(8XJv z&a^jynOBCIAu(2)^;ss~&v)dRwsvt{mhOaKO5_&Vm+QiHIFa=07!@}1I-Dca15LaYC%q3_F$$f{Ls##57_m1x?HOE|_ zXxA4^ff3<^vh3>>9A7LU(%}=iY7$zPSxG+|8rg0I&WXuKylS`3J5T+CUiO(k=w0~2*=rjU#uGE-{QMEtL5(_+$8q;u^qM!ncy7JJ=-XN_N~&`^WK0gT_#h&K=Bq%L*r@8NaJa|h>SXKyP}JR4UZCOzhkNa`ulc3J%WQ?i^yEdG zdf!p!b=)q4#a07jj>L9*v(fVSy(;Wb@Kj$uM9ctXv8PC|z8Bf{J8MjZAPm=%K2JJi} z5hu<(1fQ9gJTk8>;Y_HG3EN9!kaBDqe5$4kt&s2sJ@K-m zdw{v96s}}sbG`{y+-&y%rv)|Hd>vQ>*}5t=aDb1nvD^N&N1(*(cRZ^2=4O3I$DSrR z6~vz-DkI9v5|V&JopcfD*w*(cE%?}MKgxou>k)JLQO7gm8W_D;>1!?H19cj=PkBhz z!g5isWbc()XjJo{a+b-3z5SIHPBSQ!HBc1`nB6 z?0=-5hbI2vR0FNd78J`UdU3XIu>O?rzwltQO_*Dal3vSfDIfU@V zjP?Em#ywW>`h%C%^OUX6e}Ajron!yxD-}lz6keSZ%gy%!;Ub=FSIbHeeLf|XQC|V& zF=g@rZ2`dXfsy0&9fafBdD5h6Uhn{M;z>2-8_4fCzuWVjZaf%Fbd7YxDICt$>vvz$kipT*esSl#+2heyX zrQ4Yx7KGM+QaaY0JC&Q@{qA7CB0F0+(!Qqq?s^K0IlbOrL{PY?KYlxQUuhU6;w}Hu zA7`l8YdmCw_C2MA5OqXzY_bMtP&4QIX~1CsB}T@UC;{Q3J$X zYKt&=?g7TSUS^L+GJ*HUIbQCkCBVO-KOR_cE3ft#;#oOv=#N((9?btSg2u_Y*N?Nh zFXh2hNXLv$Ji=SIYZFPnltKNBZT@UoRFMYX70iw#%$9=k^X~C0KP%u@+$y=@UrpGa z|CA-p#H6L&_LX_2VktbMW({@7Z#uG{ZB`ZV#txfvc+txs95$}lF<6noH`%uocJWO#zFW6{9FZlI_UhumOyiy;D%jaL*apu~3 zzWGmj!6!HLf*+(u)~GW3!ydOCwUdfbv!*BEUFRc+jg~*>ylh!%{@FU~uBGr9cpgxvoF#V68-Bnj8i{V z$mcw_GH$%PQyE`HbYCm5NKhZ@6Y_zA2#%YmEXi^?BWcEiK>pY z8#ai)Yvr} zy@V>0VnZ}%vgnB!v(w9tnd(?AJ`S~ zPH0CiM%VE4s-HW;g>4irTr5b;L-+z~pEBY31gtJG&!apl0wYf=-0S%v5R(oY_AlpY z1jb5DNqr4x%#!-?eid)SuX4VwJ3O*02jb~Y_n&|4 z404hw?fD&%@N6JwuWm~yOswTvNE14OVCK5J?fb3g>r>y-biXUgg0-yw<3CA$^Pl-r zb3cU5!lA+OfR=0s@=rg9_b~9g#lt(7oY1UG(%@NsqchXr4GvY*xgERUvspiGKb`x4 zBFb-m=EIY0=+pmmCHazrTl64kvff(9Xv9l#kz+UdEm6a3<^YTF|#mQ*>&10=Xw06`Bs%2^jQ;5(y zISyZfc$PL3!UQ0sl?fw~f-1(qCoG{OGTh`RNI9+}p2Kae8s*8|Y2ez`M0P6fF|czzqo%d=g-N<0;ib1>kUC`YEXcwe z8uz(Vmf|75_gUSwtN(i#$P+6}JTXUngWNLTR%WjtAe|=ZoOz1yrs&v<*@s@E`zB9w zeHB082y0bDZ?$I9p;M`2?EMY{AS~}D46gSFHtOdAV_Fd~;56Dq$6ybnPYEv#ZbxzM zH3QGy*LvQt?L+83dLzVFJ9w{X*|6Im92x1J7~MqUmPu)~`CTr$|FTz2Yh;}lu-vt#>kgtzX|X~a7m z%NoGI;Ec{W|Nm_;t4}R2?E=e-A>?@tF<{?#=wM4*#HL<6!NbO++ZkG0{*HdxpY-4V z&Ahj>+)V10#kr0ug$QFVlL1w~&$+tRUeG&6U>$E9xTzQa`*pwc;%Tz?Ztri#ZSUXA zFi?gwViEToME_u;&Y-h@zb^|fZyBu zEYx$m(9REjZ%PXto`{XV%?trR(9BiwyF3*tj=I>EU5X)p0FpX~aG zaBroBYpvF zBqE=!uD$KV)i1J=D%JXj)8G4p-|gb%u}I}L+uNyt2jUb>LL}{Q>it)Z z;M~opiu`sM;f9X$?F}7g;(yU`j`lgBoj2qRr)ByQcuLaYhOOH^jiNNTJUepk!`C+O zGdbTdJaYrsM+D{CM$};!x$utMohmRkdbYjzy%tC+Kc+2j*gCHGOUK#2mQsE^SspH> zoje{a90QjPWI}yXW}dZ2IozA0=hj$6_!zaFgT2kgCg8AUoYI~=3?~mA+$H~0 z0)n|l8iY;>VZZ7tS+qW=Y(#jk{8HC@t_(3S%V#d)JyyHre*T+|v&)g)$Is1pL1|z9 z9_mtn^F8PJTb1iTImf)<)TcuDLgoAOtUAI^Uf-i2!#|M+OEywv9xW(e=zqrHg`CAx zV1E#KxJrT@R_;HL%RX-eU&?IgE+8;pT1KBGN-gF>r@clkmzOpGb9_~5x?s=fBj9zIcP)2Sx&7rO))tU zLZehHNvY91a^7w*EXAo9w0E5kaWX(SSVtqP;h~-as7^c(d{PMc>swr`Ho6Z`KG9)A z$65O~9p}+54gu0uXRLa@sP#*2CWc3ta>G_B6O;E@RGH>X$3jyk_8;Aj@Y~PDrKS0? zj#%14NT?z`%BwXWI(w6{C>vXu3%+%u4B-{j#7Pl`t=XHu+0rJao6_U4%-6GQ^COS2 zJ%N%zSyvP=tA!l$gq_X6YX7RWlF$LWbX=V^e0LUhI^!}Ck#`Z+`&d%xp-dqr;5BMi zwjJ?TTfe=bkfW-^1Z;xzm%Bo-fxQvu=~<1SubHi2bv+zAn?`lpm&6crns-vZb07#) zFA{@k?^w)d!{4%P_*=pafBRbM0J-A+Ff6mJL6q&}J?L>RD7Ws`hHK9&T78J*U_IjN zlj%pgu*04FS)w|M@Bht$E7KJojIyece9PKZyHtRV{p8HJv})TlQfb~j@ZuySCpuDrE82} z!dT#=ftUe2T_Pkrp=<<7cpWUC3h!-Rr+4!N!Pt3u5G_zQT>8qt*-tb7@t7D=D`;L> zI!0Bz_4m^92R~N*2R}AQa!KM%aX1z(y!gE?|2{TAU>)E!8i@7XOWl7*Iuy%JX~?_N ze;aBCUoRc3M$fy#=Bc(E#(}YpNK*Q08Ep1%FeR~Jx49!$9XBR;EH|0}1bW6Nru%vv((l>AKVT@6RzRvRg zn2zJQ7#q?+jCsQk7u;NKS@J~diRKMIyjC}yG&n-Pc^}_=Ywk#MdyMS;;g>=Z4>s$E zwC2YiD?&UdLrle9$SxAAy2H;SLn(xHj}eJ<6B}Xq=2gdgp9Nq)y6KY@%ha)aA*IL7 zEBc$)Np*^u(#eKkN<%dqnorO<8@9>UWiyP7Fm(~NwX^T_Hp|@(cg9|N;<))c(=KN2 z<5wL_kb~jpq-;JGJXiauL|z&z*WaNmRAq;ye`16$e4*H??1=r{J9jY`tBU7G?Uc}a zo6Y2^Qu4+U0v&7Tb3!)DYZs5cxLatA-K51t@IE2Fpovls`RGN&-x^l3xYgKUhY?7Z zl&(%CV|;`OYAk8#SXw;3&*95raE;GUw@t$wn5G{QK6UVb=7dt_v#%b*bk$i~%QzHg zr_geD&63@R+XW1A;@$|Cn!A_IK2fU;Ur*WSmjlYn<`@1<*AYbPRo~b+l{qs55VA0Q zy7Ji&h-{lhL<@95lixpvIyo29vj1@^qV)#!hV9fCGI%dl3DwY4>hH&^0#_`ZnhTg^FD>VM_j+ z`u@LP_iaPppZ0^f32P(IU-#qqw!V|H!nitaf)?@H&mH@FJv<2pqYf|jJ2=<%%GlWO zcizM)f4!lP-}Re5z74U}3BAAo_`N-X+N=0_OJ4AMd!bGp?JP^fz7quevAj=X!AG&%ZUJKj0F0NmWlY zjSO(gdG71q{slF zYdw^UWonS#B9MIsDZLZ6$LliT$}n?~@mMpQclEhXMbQr5uuDVMEPil5)xGZ8 z^8b9_?t7H=_b#|J(9No!{RphsRjK`A65*0`;7_ub*>H0Q#hEmZI%x8uUH;mH#?L&* zF8VhzZJ<3GKd&Wz37jlNMqX|+2hvv**DKyQY}OAkqG&3=kN9b%4)+^7CXAqa`1zW( z#Mbli`A_h=WbJTyZYv#6NuOCa!O^Jo((^jOkmWuL+*~anI`_;D?^p{gE*-$`1y#VF zA8BKSe6^o0S-B?p*nHTOuJ zc7VjU{vjtMyg-(t>TYj5TK|=t)~L?C;0$fb5j!cI(LVbX(eE#$RNO(KWQVje@78q@ z)xw^#i}t7E)bBb(%*@n=d+vPqY_Y-V``r-v()4((MzY8Zw8K9^4#7ezSG;F=_pUV6bB;bYindev`NB{)PG8VrU#y8YIC(eA4eTIs`ly z+qe82J1@_hrd+_C_iE=|qMtuA#VOCGI>cR0f#!!IbIqIN((PcY{d}F?FA!Wr6lq)> z8i2l4PCN2O131ujevZqEhWs_@3hru@=b+?XGJ4=13{PT7ZfnV+INV+ESc1`;Vvy0y zaXKoAaIN-~Pi#sT5dZwjnGdhqG}^(g*^A<6mNVoJ%-bF;$b&1wgF|-zj6=fP#VV|) z3t*>2c z3O&DK4RF7d@7+g|Ca`MpdN$Zsq* z*Je*I<2Ig+#0K9us_x)J{D@;-Ru`@*7GoN%?(UgAXg{9mVmSvLGtx<9<|*{;8cxMZ zcbg@C(ul?Q2CIKE5{F`KOVz?Oa_t~;H46XOh&!fhKOI2ET8NQ2_@xp*F2#C`8*GgZ zmtzOt{pkIkiSmU%rSRmb@v5*M-*wL72M8xywl^s3XQ;EMN)Zq-O_uuT~+vW%J&nc<2Y!X1j*v#Q36Z&3Hm61_7KFol9 zjVv93g90DJJ?d1@9IIJYn>B$_t?|W(z%*Ddb=#qKiAiy{(5*XqinZyy}?nC*L?Xn^W zm7u}RPaZIHwG?Z>)fL;v!yNX!A|HI@>$)GkGDXAae_UM1lME8G0wX7-l^>b4l zgRcDu(!kw!a*jKb^Ya33-Z5iWAMd3Klo#xZ6cCoXoCouzHAFui8pD%GF80WK$sk3i zu4=j~8Avzgfh&rKHJh)Zc=*>mpf=%Qt@;%4_!@<$4j&c`g-N-{hbu)WjvS{rJ?7ts zp8svHJ_T%hn1fM1^lI4*$V7(qig++7XZ9{^&yKP7MN2IGk~|b|}6S zF5K@>*`a9!b~zTe`agui;m?^Jw@VY@;3=(ME><7daeR4sCIRt2LSBBhdEpQVl-$7= z*If|5ID$%uULA{szKecU=~T#1pZ9WCiB&`SP_Ax8AFati*gw~I)iNjp3d0yzetM=u zi0j!jn!`pI!N*R@zDu!KpOCyjn{7On$Yb2G<4_bfx6b|jm0aAWUwjxMS^N#p8ygJY z=1paZ_J0pE72f1J8HbrBCVcK0M!e%~clx-;;6L;rj(arRQTE5&>uYMxO9x{+FQgFN zO7z5@Q;m7w;w=GJi;HJI+|t25t#H(Tl?%hj9{dnhRF1;jer%&x{~Cko&MZAPcc z+{HiW=f0mR@R-#>@c@;z&RfQ+zvrj?ZZj44hK+yVp39Ib9{5p&0GGdU{L(P3s+Z4Z zdGKw?4|oCpef&0w_jRXte8%mMK$P&DA3JWj4wu$y%4iU_{=-?W;!8O+Q}pJxz6ilq zURQGz^OSD(|C3+H5;~zbRAayoDYff+070E+HgSR_KQ~yK0v$wOy5Ty zPk77Y=-$Rr3fFCS8ZStz!kNCGNujk)5GK*z7QW9OB#qClr zvwlNg0{kKs;t+ZjDoPex$W?4%mAzod-p&P{$FY11p-+N4{<9y?TcJGSOdFB;b-qkc zcO_pa*?$R|;zW%WISqj0OzSbSI)lynfvg7R89YirT*K1&d#)tt<~nF)N0G9)i8G9dYSkRiE25YW;`+_|HG z_)8HkrWC>{o^X3OH5&<9iQ z(Df6|_OQk)5w1{({EQiE$5T@UV^GN{AKSMdeZLNe?U|P{j6s&BS4bofmzVM<6Z|c1 z{AKFD#f`sgn?c6i)$u}j{N>WD*pwA~)K?B2|C$N;xheQNqBB5A{ALZdY6qUi=bwF_ zKIk*QP;U zQ@(h!w>gOM-_hIFj@qNQG%y#9(}(&MB7z?V2#3uM^=|xjA_BGxo*2{JgW`dtugdTE zlaXIPX7;5u=vx7-FKCz?f3FRROQ{U%B0)enzZS*D6$=NRRQVXT4z`M*S& zB<@46Vxc;wzl4YBKhC#1$YQbABLX_c(SxuUk8<-9vQ4*t@! z+L{9%i)4f!bs|UZXheh6B`fJ zXdJI`!d`Rd7Cl(a0n+$I2hJsZ?AY6+acS{jY>b;`7m-L9c1W%D6H8n;)+=yJvONmT z6U;|u`CUJRW0%c&rAw29(Rx5KFSAE49{Xuf#XpCSbe{;q-DyU0UH`}8?iqf;JhE5H zz`nj7YEJD0N4)mn^VHb`<3_wq=-I5cEfH6T;NQ&q5ApNASr;<3n@e8p9o@ zc;I{eAkUbH5s(;>mNBwf!LR%Le%-x|c>DH^J*(!=|32O{7*1_JVt~uOSwsB3ct7K zHT%Zl$pZrjK2PU3FZ{oFd+Vqwy6$n@z@h~S5fG)NBoqbYNJ$xlk}A?2(jbkLba$5^ zNF(XcU1FdT0)h%CDWNF-p0$3!dDflRCD-@;e)fNN-#O>(nK`rT?7;p#mXfyk&d#Fa zaUW+$X5FkqKL?j+$-L$WsP~7g$ay&T$|6dy!wxVXnnTe=G6?G_Jf`S%Obu%oCTY>Wa6;&%`c_Jh^-dIVgKfG zB=I+WGA0#?$&Js|AOW_ajH=IWAQ|O-^&xn+2<^(t)_7$rM0*8C(CnouQnSK8OT4l3 zdgDrWCRM~6YJb}gBSK;08_mau$ni5@j_2FKJd1__ZnBDh^pp(ko(A?$Y>32pVh$oH zJ>)x%bjp~H`S$fDtPMIHcVNE$k{#nwp;85eNR{~J;2U&bjNd`~n)~Oc0_b{o%-S`_ zRzr#r5nfAAx{-hM5sIbf9b<(EL0X{Vvxq{(MY5XoIAavT_SAvINfzpN&eW8YYg)m` zWp+LuEhiYCpy}EtRvuW1SoCF5sW_ZKYN(iM^G!67{`*r)$De2-=9_ZB2E+eAzbOYW z{SW&_KGK#E>LBUQ=>~$0c3$_F8O#0?7OAbJ@~5hiRT&(PEJHWsVoI=YMP~sL?!wc2 zgRlVM%RDD7^7@+BUw)$t(YG^$nxdrEwCik*GOPz*Lnb&X( zUx4-XzFJt>vhRj=9zmnoIPT+WB;K)v`a;+JKve7Sz`XE>mPl2!_&d?mb_KGi~$=U9oabGZ+_lG^)ZM@_amX;2(K{}fZ_Qp#_Bq8E0Ou{|w50Pd6LgqbD`N*!# zI&E9^gtqEkTn%HJ4RwnKbLFiS3Iotz95MH4k~H}~DEaPiZ1f1khxU+vBczT8?1BU5 zD-5CDF7v~U?m#o_t6_&n^r${L0(>ASmgRKv2b2vakDqIL13AZNX8!NRh>F~ml#DKG zKoz1*@c3&C*zaH9Wn7&AOzXns6j_qM2`?8i{!g$Tou^iJl|64VXd60qhuI6p1+~wm z`(9JX0ADF{1$^lIwy$R<9sXt&3*#J_gYr`>kA{MXj1O6c9_5IzmXQfgPB;jfmZPNU zDn(9I+Wz=?HWX1M$j;(Yd4y!WXo`IyRq)%s9Y|1KXMuVJGW;SgvAFg$Qm1|E^7sce zki7ov(nhB#I8-xq%$eH~A^iOLffCow&&f>Br9A&=T=Lug92$!yo%WU4NdM{gLd^fF z+vR;^kok;LAyPhCFAy3uD_pE_sRTJ@2z+xg@#gM@fUWDT&iNfw7l-)-t#=JV_j22S zGU88a?`e152W@0T_`sMwx?YfW`ZtQbAJUNnT`6?u)*O)+jQY6|%ms+SsiR9^v;e{X zX5z9GkcSYmvkzOWLBG(vyvaz8c{b8>ROLBjzuWZy z`!svx$6Y@hX?YujdZ;t^_;~|Fy{h#=WgE1^({5Y3y}!keRPy0eYs@($M=hEKa4Yl(I=F7%8+JMF8HmZZwYvMNX-LL1>q|q; zfr!oSm7d{yE>IsSU1TEL@I-{$*sWKlVPCJ)@rmd5E5;$di`_ZBbCBfA+L~E-R1n%FL%gR>nlU^^DD;Hx>p!$ZvMDTgA9$06 zI1nTZjIC#G_w#6u3G2D)tF%4eRzHs*FX7>?VYvR>wDkb3SOU^+;#hHe6z=Dclhh{C zl+b@4ZY8~1$PapMtS0`X%tD-F@7-f(g?^N-7bHl6A+$fJn}>IQUGhT$EbIf0d)U_m5l3A< zY+{SVW+!9~yof>S+Q;K~MUxTd&3+!NAIrY&OgGSd*= zj>98&grIyC7*u79DTjU`lH^v2l{s{t|5m+CzsYH_ow(4n2Z{~MzU7x<0=W=N? zzIqE^vKcpWfAd^&3;%Z0f3o#^Vv~m5v0TzA2d>O_y5hf~0>4S{-T^#V|F zGMah_CmWP-53c3o!TlWinTMs_uN+i&H&YX(!a7d4S`Ip`az)^9Dw~LL7?dy8G#V5~ zh+)3Xr|{{6=E5P{eMT}9#}WvLN|8CI(~F4>q2Qd`b8f-$B1CLI0Xdg$5P~TA7vEsY zM#iQded6)W{cRr+Yo{cMMafb`i}8Rz)!Z3i_!BoyXP+hDDaVOVq_qdj0U)lOpM07>eK!?r_DPS4KKPQ)iP&kGSe1DLG7_c(6KQQ3{1Id(g|H8<>qpOM zf%W_t?WT)x|34j{Zy2pG2W;_pIZ+!ht|CxzN%-xYK0>A@W+--e=XMFU{W(MmPum|G zEkEl4SR=xs#c$}#QxQ)p*5`|L$%sJg63#_IZ)D&7*rw>`Fu$bp)QfOJ92ev+ zwlgy^@|^SWDe`^|@)#}n~Y-3F79Xgho9gDeUD9NI3= zf6e)|oKj(X{#eBhPa*GIL?drGe0kj(u?{RM3Lwuws7u_`aun0I`-?0%B#qTDLH@nf zUxew}!g)$|gKhlvi&4uC&!Ul;=-FxAN%8GjXO6J#^?hnC)`iC>AeUGoj(zQh`OL<4Hx6kZfcED8 zg~Mqzr_pin^_%sRzi-z0B;2e+w^bjBbhBQ^*7dlXd5gO?^JTX1TXBFmn{g&v_`ywo z_||XoO}!kGjx8`*eOcgk!4%-f2M{Y$#(+ki1;P5bEU@OUclg^x3a~&j_AiIGH2%4j#59QL;F7s239#AfL6eOG=r+9$sdvgD7 z-ugL@MiR4c{E$gmJDDB;VlGU-)_n31@Lhakrox~NdQX%-z1HIl%mlAkMlx6f8~ZTE z&Pscb!z@~ILN#N@{wS*82W+24GXSAVbk*+blAxC9G;Lgi3ncd#}amo+6i!yPu;dJIRk7&-EUc!X#&erqWU87+Q`=Rb2=GF`b2bJU2!JgHYFJ2b880ZFmErhH1yD1T(;OI(6RGDgh+n zCe3cB#eh4X+v#31M}wC1uF|nPHrwNgN2^)CIQW22XPGe3{kq$Dp0Eak@0T*c7Xx)_ z=T#9A)PdFUUlZuENQ=WhX8 zyVQ@?=E+07-BMawVa*q)$tU(|=)mjUW7zrSUqb%!G^Blk(IXj%?Edn&v*ZrQnDKeF zxZw$m-tW)-l3@$t&Ssx`UE&2Uy-W>dZHCXY-ScI^Sd=`_>#e;J=mqV9!7oWQ4uKDV zcgO7~G2)Q#hlb_$pEiKwsX1BRL`cBjb;~KcRyvFT4;9-{T^Vl>`iRM|Wx*MURx~v{ zu66@mjw2$?bIhK)>)BeawKD&fO0xzVP*TO)_I1ssbCAu$Z0OrNr z_-^jAyVMhDKDx{<^u%O)J`05~5uwBo#JYg!!SHz)PvGYsWL(|?&tK#@uA9q~qw|rr zz@v7GAn$<=@?zwO-Auy+#65;r_g0oKVx&bin{_(`X)ZLmJ@^jBl{VH~@8qU2LMSU< zg5nssPMFms`%Twy#6G*T<4Xb|09k>D@PqhX0&3#mY*&vVAUiwF_}(fM{OoET zkY6tYZyRG5S6-C?Nd;Rai|6lvTJxoAcO%?DZ`ADNER9UiOIV_;(UA$dUJ1~DIvWHo z*u~yDGC#cI?@*}dm;;W*Fz9#oI-uWb00b^5O4cSn0%wwLN$q}61I`}v3~)&A1*sdX zSzKXIu2IV9Qp9Ntf%_bM)5%|yfozUf<)OuR5I@Y{y2@U-eSPAgK=F&yurF1S(5sIc z^Qqw28()Qkvu}1x=bldv2Im(#QP=YZ3G#NY4FHe6$&9AAsUS*qqUtT<3xIHtr}GiK z1jcQZH-vW8gHETP60dMzKJ%RmHQyV;YQg(7;UBpF^80yYTvjA@9tC{!RW>nf^1vgC zPlSal3M`y3=i`x20Bcng7p#4=0QHsCEQZ6y+v9G@?6-MAp9%Oz4gGbEVcr9|il3+m zNeZaGv!^Ei6!)i51p9Z+-UDX~m!TQ0yk(m=89Gd_M zi_fdQ%ka5oPFc%(%aD#8c(*~cVld)^lfa355?rs69b1YZvkCytwh0fX`%gTmbi z5E$2{8!~$alI*|ZuT|Covn7GMBr#96$B7tMC0}5E1vU;Za-0qCgL*~9eafqN?ci2P z993~*{Wf0rgGf5Yfp^*2VV(nxfae#h^~#HW@N`sV zDeXiVcy>Eh@%RX=OG*{oZQ82Z1MZrnG$d5RzEx7Lp|a7@E#OmaaJN7J^iMQt;UzVa zzzSg1oTfJj?Z7Fp=9(kE?>(bKkMx@1F_4!hNGeS2oQg!knf~0+u*tbU> z_K&cC_SINDHU?3V;iLZi3FiAH(~nhUEjA!>b8DLO)vzv3P%ydWk)!R~zh_dHFlKPUGtAKIJi zTp6_&j?_b^O zyY;*O|6fCE15dhEuN=rewJXKzgA%CsD^c?KbRFI)wqQ>cL5E%L#q6JyeyV%aCiUMgoGl^B|OJHjq%yIbZuGN*-sKLnb z1U`RSa;)h9QS6fX-D0S5WI8WLE{gDBJ)c?S-p;Ga#HewFgd+ts_X{u@8BKrX5Xft zCYAEb+jP0@>$m9Ne_JUkdJ)!>*@vV4&<39pm~qb?uwh``#xvdU?VTRu!ur03%HEYb zSg51MosICy7I`X*!ta|({=T;Y-ml4zU6;puIk8@M#B;w{Yb*M>X@wk4sJw@+3zH>7 zK`}~tdK-VTrIKIuIO|{Y3+sRfv)l(RqQ-Z~_*t5gok!sXI6vHtUp}>sH&*$fMMuo| zU-K(PP27G)H$fC%bo`!ImnF}E!rvyA|J5G=`?`515H)`BKJ#0?iY>Tsh1B12LeF=Y zbhwJ}6B7!5A7g!bqfZvTsV8-SNFxog9+#D}zrXkg`aG^{aP4C`?j?Z# z@Ty`VwFi*Bqs92{=L4{{4(2!oJv?PY{kuTvGwbjqH#+X=PY_ue+xNH`ZLbCzxQ5*& zb-;Q)O9WT&^)s|zLL??`PKrkrh2MWpEkOU1FzBsn62zc`RK^1?F?9Wkz7Fd6 zt4{E}zmqI94vc>xQ%)xS}xYFfn1bO~03}^*84s=>OcJUozY{LYWczbyJCx z89DlN0bcbKA3q6k+a*zbc5%TLwMzFVQj`JNfL8XJk8@8`1zn!jE_e6s8QH@v6Oey^PZbJ08A@B7hy zK3%{YAK34K!VBkK$T^A+pLfwCHt+27*z*HSV5Hb!x-N>&uiCS&QZJ>2j;|tBlsKMJ z5A!wdaD}m-sYl1L{w<`x93vpQkB$#jR1%>2>4c82*1}l7d`xS7VqoWS(-qBSbOjs9jZouSdeYA!b7=W= zmAo*JFiH&M^N+NzIQW2>lwy7G#UCVJ)$ZMMD+XZBr$Q~w_uVZ5V9uw+t46?66$Cg! zzD%tqqWSorz-q2kpF`vUYMfd0ipIrUbiSV1u6wVNI3T}hqv7Z6j}rz$L*t3A${yeq z7>}d zj}l~bH;xn9uVh5yS)SI6u2Z=XR<1Vt2*!Ju#)tHWC86*CPf+%nW^d&C z`Q(;1?0y=ZN6dt={)X7eV`eF6x%E3RN_07QXo4F!7!vIH{LgoJEB|IR&eiDu`nmos zoTZ)jnszk+!4quXZty(-(@6`Bw%>ig(^sU18fMNwaTT{)7f%;!`c}U1i&M2@FW*+C z+60IT?EX|#@|W&odCg1QS@?+H`rPSbKKEGI=tYi9Uu&;Qn>I=2YbDp zIKWQsD4K72&oo{8#%quDe5Z(=;^tViP~*C9lekJ5pzVXksgp;aGE0ER+@>kxBA(!- z%r{%&Z=N9U(Hnimaesh0-^Dq`nUUrD0CT>^Hm;n{_`V>c_=fwXQ`osYbLs zZx8u(i`N&e54z`{)cSP~)_IL^_FELzVoyLZn_CKheaT*@tbw!{YWfrKB057W*6 zy&f)m|&MES1)H#C25Rl;dymxXj`zA(O}cm}P{U<=nZH~c<7M)OU}bzcq+ zO0+&sK%X1pY6H)2DaTyA;)spg4l4D&ez%@#D`9-5U*jfj39Kog>pyk{{df)-}{*Wx*nuI71^n1Y-ZvOO)))edc zR*cRM7!srXT@L5p`4CEIpzxuad{lmuj~?3Oqt_2<)>urs0nGW%&@-@h3x9ER(z=|196!wiVJm%Ey(_{?%!-_PU9+_?9Nv0z5 z&PSpB8Gi!)4>RJeY3TT1peMHWG=Pd=7NKMZv-PBGfGwNq42jb`2XGtJtnn=|DInl{)Ycr z{)Yd$e3}r-w}bh*ZvyFqKU)6p{6bl5sb_R9p#3_ae1pHl4V~9csJJ`F=pD=_7|aio zUHYNFV|o$->RP!3=zxsZnvVPpBk<{At?w%aCm_H<$E-hY01h$AGrQCng7!yZCSNG3 z!D%DTV1}pBh_v;^7vGC2fW|RP+v)rWz+HLGU{skf)6TiQjy)yE8{mG8s?}MDH%=C7Z;OCeBUtee1)YtJg_4R{$E0zRuG6AMM;0v8t zHm4{A1{i$Z8H2BPBrxR72*Wr8{7t@o@MFzK72kp#(;0>6X^%fd_u(LWIJloEs1QVq z)@u+FIRgO|k|%vM`QUT9tbz2iJaE-Qq?U^_6ky5&=C;L`^|XEfQyv&dm!^6gC_u`YBpB?E)s>3Hn#u&|gzD zT1!7glnAmh^!5F3m#q(*@BBU#&d$+g7oz=oEW4WzR!^h-+dX^ku%9P^{PpS2MB~<) zau7xNoHS0*1^kpwu2W8X4BTEM_RVuX1~VDbS6&=-1}1}=J$GxMKPv}Ug5K=54LIhG zGrw8{>6a2p*H!(H1Qb>zx>xyNKZ>mE{)t2KupY}D_7ATEL!W^8ZtEX$t7f1H+;XkF z83`8G6Ky;k(}3_&>x0FraIm63Pi6N4ojh9`6L+kRmxCC$I}=Go)|p(aLoH5$dLSev|J+(AbRoS{j_$7h;CQC<8VCkJ*4S# zpl33YDx`N<$R-kbyRgI%PXqfZc^_jwW*K-NNh_zXG-`+VQ3k_v(Jx~V-sv{v>pNIK zPWqAnUMxP$gFd20b*E=C3>n9(d?c0?gjA7U(CXgpi`dnkuyYbE0a*tR(Z~>6BF*OQ zD^ksoh*rc!8{*^`WN4F)@|)`3FGpbBM8+l^?@7r`nX_QN$AH=3NbsXn#OL%Fw*wW- z%OMC(7MazDelKpxl~N<0KxD+N(Ug7B2We6v^GK=pK-h2a+ToJgfU`HKnN{M7cl=$b ze-aLhA^Uw^+W%`vzdfCP{)z=?(~^Fj=@1F-FdU`z&xr)NI9BG-(jK6-_|Arn0`_*R zXinnpSCZJ*!%*x@G`-7)*2}x*D}L^IBne&|9CnH?^#_G|8-njx6T#LxnB(G^Ic|d8 zVZf6LU+vZz?9UUfntvG6`-1kPKenuKS`+&R&O<2?De`DP$i~Js z^^4x(K#j(>?W?iQb>~;jN)ji^_ zjk#^ppJC@Ll9>q44YufSefoZtCK3914qe4P@Kf?G$Z$G+f2ae}Q$%q+pil~X{oR0A zw8h;69gjN4p_BAO1D)4!iG0!K<9FGiw`bXuWNViLBZ1rw7-V$E&G8A5%l@C z#aMAt*uLOx{KTNvNlX8~KTlvUOCcUoMdwQyk(h~?_#~k4+;dklCzauMV8~g6H>iXC zePhDGyN&t$_~`yQUl;gpT@*r}GboJ(6s|pnc>-3+b+#mW{;2Ez76MCf^m-qo&lA8< zXL>#^`g~(eh z#hzZkic=hDQ=sFt8wPJ4w#07tp3buxTy*g@Q*`Gr|%cgu_ zdrlfZHHWr4{{(Ws;rD-nmS9V%jos+}E_2+|G0&Vu0eh?)t6HWP;KI4?^1UqzY^{Si z&TUgZP;d=@Ha0`^`#*tK--gY43Hp0(`zrEFlNNiv^tE5`@)JX}oLI=A8O%k{erttI z{#v@pUtewV*8>N>q$KAA0nGVUqIf&0X8Zx>d~;cz&2xQjAZ{ppaK9M#ewbH2HMztm z(0s{JZqSD+{y+F(xE@8g@IyKE!jLEPY&8HJByGGFe)oY&M5(n#ir+T!)Y`@8g-FHIB2!Fun-IRWFZ$ah{Z@1ZO6mDf_N;CeWf)9j0TAhgKr zS-_3xZTY|}^o28267KWLlS|L;nIwVpDY~oUlktG;ozg;$PBYNt&*`aGPeYuF(yU${ zYX*CUZaguJNdcjaff*&{wcuXRx6kJuHG**MJ^A=xk z!O)v$H~D(@_3FK1t~-A(Vy1Q;U#cTe*PnUH_nIgt42ACqqGZvgYX%@yN<(zy|NWm;LD~RL0dDqa<2*U)2vN9f}o$^_;MLs&*#`RHP!2nz++7P9{0AL zFWt`XqiO!z%5GltdGQ+C+Jq}hAPP_Z6hD=g7uqkS6VkXt)lHz%bD;mod0*gabBrP6 zQ59$$w0|lTQVkx-N1i&o-~$+pe69tSLVmZgzuAH`zzbvt(YvO;g!JEeN;k^MmIq$? z%(+q@h5LE-G=Vl_Cd|is(xNlYx4Rjv+3c-y{bdi{iw_Dc+GKz`#x_@%kClNJ^tyu6 z?dd=$sYB=O4D>IF(_hw@DXjqM!#_hquas=#WyKO1bQ|M&&{ zsdcI63*@sBLCe~D!*_)aa51CK@7r}R5KMp8abY$GxatnswZE(Y^WDK;3~t2$39@HH zJcpnhoM&*ksVGwfQcn;5w8Vk;)2vc=SpG;JXpN;z&%}dz)=S#HeMWpRpKY++t!_Xh z2Xybpd5^1K2Oi~Zq>`mHfW4^{j57~Bka~3^rLpWBL|a*h`v`()|q$d$h^lX zo!F1Ck6Pb7GP+ANfr!HMr}(PfFs~~U30@(7l#SS2j?I;3gLT+1@aENrtirl0Dwn3; zpLIz^eoR&R+vtQM`R874*c|Xjq|SI=vh!&Jan35c^u9SEO;!qv+ISgA+(12H^I-Ni z9TDO(!qdG_?rhN!x5TX9b_2#KvbY-SzppJqvU8tylVw9cm^KlQkQpwl8`EP@Z{>3% z9-)*k8k6GiN4niwWJqbf5Eq?0=I5d{!EPB|JWZXp9e)>f;sg17F>$Et1J8URbR8_* z@jU-)z=>Nw_C&xKqz%=2gd7L~W>vSCX_f-Pht))>x|^=xvTX2b`%wd|=?h(w5JZfz zKW~#1ueG?udj~bnGx~$ca)_F3_Jkm3EdW9(IBw34(2%1fK%taS>3=jZHw0u zP1wg_JmJp~yKofkhw1$g`*o%fdpkob+DqH+F8UnXk89z!^qM9LZ%^KFpTJQJkSOf> znSIh59DHb=ud3k-yfhXsB}jw;%=zqMXv3Z#3Iv$*y`lLKPm&b`I?I)AQ4!c+O}Aj} zCjK!l4yG{|8%;AsF?U+E!uzRk%xJM7Pm{kiJ&Md>sHVYIw; zyR~RcUrnN>novweSAbY)yUAYAUdun?ApkM%Ij$TeQyHmA^b%6 z9OTr^cFXnseV9EoQ5)5Zsf^eE`*?h=b9X1a zgV1#y=1s5LE{iyz@KIX%u|MUZUf-`b-S$NY`@YY=1L}FnyB&%{1pYaPsS7K?7U!kl(MIO&JYQz7j0H1@Ey2zhFt;}mcBGqhC1V*fmp z`TNydjM4mNZ@WB|8zK68oN*D@E39xHK5}&vM9Sa4K^;g~ibG|QE zf3S@GqfcYbN3OuF}VpNl<<$ zyea8?l^_5NZrzc!?Qj9K!DKb%H16Bs$06DRX8ETY!9vJuP2%LBJJpKd?%-OzEZ<^{pG z5wPzJE^s^;}-&g*qjK1!7Kou3bCPv2q zB!vy3%MWWBhst+M=eZ*{4Tvl9QP;C)g*NdLJOTG6 zJUL&McmUr(0-|}1Qo!RCHjbNI3Y0{8-&`V32fHxjhXx5tR5?c?xQ-z|7*7(EDB;wB zX$*evu*vVWH~Ia1VC6a4fk^0w*yQ)R6DFLQWzb)<#qY<5+<^~H|LT_Fg3 zxVtpIzy$eX^PB!l-O@gQxoh6#tBuwb?KJvWrgS_MuTm6_?=zr_>- zugCoJz7G0F^jL;lfwm!C*V4dbaDQXk;cRanP~r>Q2sxMnv|fygE(pN$1pW*c_d90_ zfjzO~JzK-}%^QoyVof3+wg=j34ZJ$sGk`#5%(sQq}=O z)v0qrW^O<@Khe8eIUUgC8;gD_E(DIJA6=H4hy#wQbS+~HSwy$;`p?1-g(1~;tdDE8yvJ6_f_Fe3C`koaW@@TZPBMm$#r zYD~Gm0}5xvtMt}d-t%#`a*pn z210h zeXc5#jZ7z8uHE|*#%+&FB@M~k$VccKmjXV%hxN|y@7YUxrU}+=Gy7e=d%N|3?IA`!&p+)s(RRrTGomn+kqf}xbF#Iq&k1~G5;%H3$p>t&gE8)02Ym$2OCwNE zo2#XvhCTgrMQ>Ys6w!GJ78)l$R%c@G&mb2IQLrpW`>#&yW6rv82K}58zKO52S8;;m zF+qZbmb*al#u0(gMl0}K@^y&CVK0C=pBU|03p5vZnI|oohrK>I zqF}JLu^-LP+ZXO!2>yv$3~JSP4{5e>X$NEq-0|&%p0M+rjvvY9p4t zP>(T8Gax8=hkc&S79>R^8-LG7e-B9a*OnP_w0$>J_3&f0G?b^3jMo=NfBd~)Z3|vA z?tX)-4eO3?K^G}=aOYFBf9aRa+C23##P5-zsyC{_zF+z8U?^~TRL2V4cQ9(=Gw-@5 zI`87q0RC%SdU)P`ilBloxoGEgJ36Ke0w)83w;_xcKyR04VdYPE&_4D{tLTUs z@O{6mdHl$~;@Ue^LpuJ^L-7Wl7ZZ2F_ryNQh94;;#UUgr$dT39SHur+5j?i6~I)l%B~K8Ub84{a3h$3lG-FSMGR!gfFZ= zIy+YZk~ZxPVGMgCvzP$vH^~BY7=EYOrNP8GpCWL1z#ngRSQI#?L_0Etb$y@d~axfT%aTMoATIYt=% z9J_rJWP`$CKm@~|!%0;9Hg?S)kYo6Bs&8tWUdwU^9z$P5dYX5hcN6s+{T}Z(`u)o` zt-@rrCt&o#t8!-|XJGuc^c0mz0g#h%$dRcn07IMptt>iURl`)MztV5|w=R07$huvJ z`u3x~kIDwc$v_#y?-X3KxOdU1V#oK^({P^j~%MsiNN9$xa3q33pZntf2kbv~lxI%{BNw zZcy30IjI~9PQ6nJ?q{k5(mD70ALKazjx)A4{^yfGM=}2RYl>Xpv1y;E9vyzezXs2N zw(OJQUq!fO63`xcGJHAP{b&+sX0&T8wu1gIS%2qcjx~6lnQG+QvO5W2sw?T6#Lvfo z;6{1p>d7Jygkcv1Y}y5rL$yCXKZ-%(;?&e;)nIDZcKuSq7hy(4BYHLBe za$Sq!dq6_UDqfalLNnQjYUBtnuuC4A!_z}sc1Xmr95vtKF1|lmELL$TRGHB<1 zm*)!j3NmWw{a+};DSOQuZI2Yl#Bk?G!}u68Mf1bd%;@jx{|df39Qf{BZ4DGEj0#&1 zMT5INr|5s;M}jmfYMv+vPY} zVE%?O;p-_s;MSk&^W#}K*jfj39PP`v_k|s{VCqDpL2wWD`7L3}En5d*^EyV7%ED{ffULZdI4TI3kkC zL`UBdJ)l#U(lTuW?XMGQ>i0THvCn%sK(WW zAMcNQVZRSPI%{}t97LZ_`M6iMf_3zK!ZcUXIEvwOo|8GJaBuzZ&oiXEUgL}oqwN!R zQ_l^$0CfB`VVBpH&s;E0nf-hvdEo`@&l52rsA6AR6E*rgop92e4Y}xy!vA_g)ZOs7J= z>7RaQ=%TH`8c-IP`FS72?(zzB4zmIWjV_0QNXS30ISDcG{iCOr-9_ZDi$c9LhGOCR zCshX!<;WN7i4XUM%7~0N^ApIo3&%&|1MUC*9PYmbc@yD)-cDPv5ncA8`FD-vgIK)0~|p!Bue~^Dc!Du$p&2e34Jwlv>z$&Y0G&e4jmtLHSowCxe)jr zsO;hRbx}HjjRWT|Qg^WV1UZ!7h|p>T(K{LoaLIyIvk z;GBPR{IxM$Hv;EMY-&52zCS_TH8n@P9CV*9YxWoVQ7h;>kASelhWHG1l+dv|Dz%p2GBMQ;yZ=HP>zUS)T z>S#SL*!Og&bpEe_r>Z)1g4r6-;ds`az>5O|DTn(>ZpVQ-FClZ=P&d%0_rW;oJ@$2U zkt54DpA2E22Pw7p{MEuHwBB@hh2|Wb3K^ z#OFcxA8hfpb8U-EM&Y9;9|=nQfcxP|i2Tu;rr6i-HA?$hZB~x96OSlsHSLx{=bcYw zgt1%rL%w0n7VpFU7W@0%0!Q<9xsJDJd3V3ZW&C6#`gtgB1Z}i^hSzJdNKObI!oGem zCRA+JFTuob<(FXMx6bXie)nwp$NpP7wxD6NehDUiE58I2kGX!#rhjaw>n%npJI__{ z0PmlE$^Mt`14osKn4Wh`t#)> ztHQYU^u$57m!#r}X}>!L~oyOX9XM;v$oB8N`Pm zf;dx3qv62_^WtJ&@l{(SN7nJPf-Bm-{S$mk{9F<@V1o5HZvk6wr!*VXI4i1GlQ(BY zk*FFu=_*H0M33P)pP+Iuvb7H8ID?M^a`L+j5sEbRhDiqO&kI+7Q6I|IMC&bD;6iSW z9QO4><()}?d{jaA0hsE%Sw=vD#+TNwKM6Z2i1@!Sl8t@mifDOsT_?75N6JnZo!);e z2*I4MmxJ#YZHG64IiE0NG#;g~2SO_#tlyo4{d0IwR{F{RBsvZ>=NcDx2o;i^qEYK6GDELotuN#}eVXrFXBU?WXwqxZL*$E>pP+ zy1wB(rdWRq3G}>Trf(a{eIUJ(MiUPHpLed${|?3rMjOKZLmh^Twyyn6chUOZ9=%2i zR%*yc@6lZq?lMK6WBe^_)yu-fJ8$MQV&Y9V~y^py6aQBCRh>vU*p2( zOdJq;{xtyt0xu+ycMlQCkR5Wx%s9v=13vePZykNw%X-MJBN|r}Dd4`#Olx{x{L=}k zs5eP&;)C+BcS7qI5p-EMGK4L*@fwB5`3impFcgg^12>J*~2P5(!w>f;h7@HubM zpPlrg+V&BQQz~>{aTU9wgM5$E%>I57=1-hmO~@o;xrz0CMNx7aj^(4}OrM10t-xqM z6dqIF%ur=a>PhKhy{={b^+g9IbbZ`?fvo$=t?f|w5)65>$1L{^p_bWS^Z$wZ!dH^< z==iTADW5$?^3ZY#Q{K=w2nX%HrukpXA5JX!y)g#AAHtH~{|V9ujl4!n(Q$y?^=>qp z7twY<{_R7qg^!`XF*^T{>J^fmpL;(}a$vnBz<}g-Wn69@vO@BVeVnu{-H@xBa)&Kc zaDIXDU;ArQ?)<{NuXyh$Jh$et(mL{e>^|bW@PsjX48GT=a=e2?Es#H~i>%o^XGQO? zE!dJnX(}Uy8%jgqfZI>v5s3<RFa z(NB74C4GR$yv|{PxdIU18y&)(RtRP_?qr-S8UprJD@H9`9zdQ+>S6x6W;l7eqD%4{v6axA0QVs&uW=*;ZGIh|KKzyS-4&o|iFC1s2F3?*Xq%I->z4y+!WU6rKSKXVZ3WA%6tZEE zmfl$tS1t#hXl0q#X2pQB3HZSwpHslSr5tTK{v3cLwu_xeg!w*(MPV5M2Xg=g`8)Xn zbC^$bjv`E$?_?@?L-nC*p?T-;#k*XeYf2p5mz-#>V7&TTE($+;t)Jnw!aw_L`BeGF zTryz7bI=nndj^i(TZrcH?FXw-*B-7?rh>idpKqRGf%duhx2(`FMk(NPVwJ3H5v)rw zaaf!=m9r7#&}oUW9D(Qb{dtN9v)&Kx_&$Cdo8q7(N1r!*2G96?gV5(PxA8g^_1?pC zycNTYIj+1xAh|U4dZIBIP`;NNE--rr2fSG~2-3|K1b)>z` z>NS(V8=+qWSvAlPnDAiCbaJc#xF0s=%cO;IZdVo>k~=J6zj9A`CAz+ogP`TYkvCU6 zLqLr*(KW?4wP4cX%m)gVXTXW>brp^BQy}=fl~}11#v`%~+U?=#dkKtB?cMbj_t`c+ zErQxvH?ajIHgNm*$HTfvoX;On#rnhFMKKPAjT*3D`76cX`cFCups%JmFL1sdkR~4K z)3oac(-)`oie!rcj^ko-Tol|VrxnGf*uuMk(X#+`aIAG3pSs}cf@jtQ!uFOXoG^g# zpULT++>KA+ee0fN((UU;_bWG#{<2s#7=w)Iy_aJG4MNs0W(3icq7xvjMFQuV z^_cl#zjBJ$^gKDXj7}^B}86j*?EY=y>DbL7v{>Zf4GG z@M3O>{rD+nszb5^3-ejlMhq|>Fv;Xw1y zm<8?8lR%BwPpVv30$ zX?y&BpE>E-i#L$*C8;)%<+I!Pf!Xo)Zq^iFV$muT=C}{JyXs{ zY7FQbXDI@k;Zy3mRVv%hnp*D1fG}3 zPn8E=MpDSK$g9j?p3m3Utip@ULI~aNWy>2*u>bkki7WGq?q1+(#Zl|zlGEGk;hIV1 zYLoB$K5R{B<&?V>P}jS+_G^wm6Gh>blF!(?JUO|&-YEeq1BC-Apw)#w!IbAN;3A#5 z^wc~GoWJcSQaKd?isD<4ckQys?z?6Mt7Q_~^Ud+SD2?h9LRftk>Z?e)a%1 zJ+4`l%a(xQNRIHUgD~Fm@{uOLDj7E*8?cd_{0{2lR*QIiq(AO~mG*0&`xjxHQ}6f8 za*|K*oGr$A+@DeKE*L*9KvNME0*+QzlSzp^VMsxuiP`^eS8^Xmf)3)Z_ zJpPuueb^09tv#Hg;r0d#IyL)_+6DZh&jc$ioHR#b1v!&~uel+)tOZ9*SUiwOYTr?w zv$lxEH~OOWSZIHlnS8t;XrYC?<9;NM-v#|p4W_L*WU-FOt3$b^dmcf%+(b9T(aHe& zmosx4W#=_*5Mv@+x$!h}A?gr>%97V@nbyEQH#~?&sG6e%PvkCog&Qg}rtj zFT>d(d*=Tm?meTj>Y27-1*Hh6bVL+Hnj#=YL_h)pDjigs^eVmg-h1!8_ue~%4oVSG z6i`7>!2+lVDk|_^Yh6O_<@va7eBO6`U;f}3v-eK+PBJsc95dn0#Ee%AxHa{}ll6b# zJ2G0r6Wr)~-sSvyPT6Mf`CDAI9R@ykMu6Gi(}^AR2EgMZ(cu%zec-WX#8b}u*|4lH zzq**N4;)aG%iwUy2I|>k7IdfEz-JjA<)ZJMK<_s9smJtAFok<@ZKF8}Qq@^>6upjz z!|Sl%Mp_>rZZgcXd};%zv&*sk6=H$ZrH!?WNOqy&_s{ zt?{%MsNOhr^oO7v(ARpL@Wds2x4qDp6CLrXNFQ)oe0AfIHwfK#{aw-RLOYesR}lOB~IIcrn)Q`nUZN! zGKg?&VXv^>Ih;iJ(mh3SMHTHI9IhuA>6&}MNa9`1nYv5x>`=$>b7^NN?L+2oEA9f@ zNh5)|SQOx@P5HpHjPmSd#;@LG91j4kU&6*y%aK3!k&n*4d2b=%6Jj^#db@$y_NSHubiqLEfv6HiO%t%K z%+6^!*aX;V?91`>{h{3;vA1di!hJHrCz7MiyF(gpG1?2GC?3+1t?!+jdNJrtr^L<9 zLb!*;`0ZYAoZ{VfuZg=kh_t&w`Y(B;Hxv*~Uy%yjHWL)BZxsN)Yj3-6!WeMkr9Ox7 zTV&T2f4^4QWS$Gk+CW|S9mEd^I-SiaKam0OHBPPGBSHMPX%$({@okicld5d=$ft~0 zkm~cS-2QMqXkl7AVf@h_X!#QVeE1?CsL!ra4{ucgk`2pJ&}9MyKOWURDTw?l3&Y|X zN!`&vZmZ~2`2&OttT|h+D8}Rg{ShWUgQc^(^(W7M;eXeJ{Ntp#3F3wAxjx+jdHpMYoy2Lc|MYMQrbI@@=LI}a{Njyu+|j6&>P|ca1JyV1aJ^c0ZWbX;D`09R}Q5i;NP{o=}DiSJ<2{ z2hOkF(hCUAhPdL5cMtT90Y3K6Q}>FUKzHM%yPi&IfCamFmitaBU^?_I{Edz~EV0Qk zG7cHrbH5WZ-L(?f$G}&fiF?zIicsK~Io6^4c=+_G{i`khJlOL!Ss_3k0%dMPpP-LO z&v`|)b*)tAF7PXsI6ToO4;Cvfs?ooV0;C@M+QZT^ciYqSgg$b~M)_d^tvIcs_XR=O zY^9mAIeX8GYNQ?ag)g!lqdoq&I#D`@0ib!_=bKVYEC|VTyuusQ3;fhbE|@>;1%a(I zUQn|HCe_!t(i}y+yVq)7Bkbn+kow-WE}V;qzeMl&=s_Xn7)ZFUwlSq30?Yig-_D8n z!-0oCBm*jgAxRktJuZF;=&9X&BFWSX zUXoA^AJ^ywbZxI93B+R{yFt&Q#3h8Eu^c3b>OURnD4P=0N^dy|$ez@E zTxE>~>q2w|vtd1;$6R!_CASBx@aaCF?u>$K(T8cB&LLiyqU4gSQey~Yu@fJ4o<;n& zl%nCz)x1jA0csr6k&4YAVb2vowwD+DSWdNvzu9b=&n?U?%N$+6pHV zJh}FqhKC*T!3V1f6+F4C0oBZNteQE5i(0)=&TWe;207F*pEBZ*JUW2OpM`^kaM`vP zONl%G*w=5pG>*4Y^#GS|PgfsPMg#j3RR&SoQsfGAnByq!M3DFdWN+*Vk$n zEpqZ9alwo7OWY{WO)@dtddSy2$YIH*YD$j$5h~8ut*pl@AeL|Wwy+P<2RXIr@6p8} zKDp86A*RayRQPTvlJey#CwQXpdY@RhJsig&p4gZ%0)e;$G~0UJdtMh!kr!Mh|A#zS z3>C~t8Hz~-JlXE zOlptJdUgQ&4atUVkse6*?(tFXw^<;>m+AAIO&4Umq-}ljb~msCe2^siZO!CXE||Y2vMCzh4bQ|T27WKqhxaDu88#dOAbV|=i_I2XQXo9B1JWuc(~X-+LLt;#lT-xv>c3?&Zs z;${IccR9R(nkwiwFh2I$3B{Gm-Y%q~HgAGB%ZvH^QUcJ*vHW}NpcAx8CsW>cL@4bH)%_myswr!a6F#K?>D(ex<_~_6#xnnXko$$*8 zZYe``KPal~CaytT2hUKSs@WQ;g=u;?x?ld0U!UC?9qSnp?@e!FpMV-~2(X4Yks_Xm z-!pOKc!lQv0vPXGs8uS3a4)L*1*WC_9eW|QB?BkD(3ie% z(*Wz858_f+{Xu;xM`z==q}}_H&COD_3t9uJ%U0B$#Ym1?T|IqPSThE&arNBHDn|OD zhslHnS20>obphtFP599u`lEOIJboYukrUAqcMbp+`O4ywpDLi%>3c3Nb#@?eC9A}a zKMH6(vAQt$CJM+K2q~%LMS!i1560z&$X+6`YRa>XjRd!n%BjqFQ2eSFL$Kkur37FW zUp1_tgXWzy{m*7e7KD3-pX3W~z7zP59U{TG*sTkm>i>AlE~XED^sQ7%n%#h3z9hTe zXe-_Gy2xvcJa{VylW)Ef?_(#~6^Bt@cf1eZMhNlf-}K9uJ@m!o)&HrC5K~>IA1{TK z)j_p(dXBK&rHYXvHXF+HG-kJ_ENOwF1E}RwcUPFDKq1cjfN{}Q zupwR{U$&9}BrgV~MgOPZ9eFhLOCFv7C6DU(tZ7rTT7dgPVbJP_K+s^= zVXW{b2aFOF4$Q$UFab^S=s3M#*3>Bvvf;hwhjh9(o->Hm0{$d-W*_oSEu|C!BB^ug z4<8~v7|lu3`@w$IAd~Nzz0f^1P(bQ**gq=dO1a_s*j?A`&#%xQpp$-(*uWGJH}6&cF0p+xqDVSlkNc5@96>ONr>k(X9l< z-131Bv%}$8j&}+UHVD_6kt9m^@Wmf$CqG;k(Ly{`ch4!KgoQ?6Gdff%ef~Ps4!DJ9 z*z5;K@UVo++5F)+gGkM3z6|hv|If=s)QH~|lo+6(cY9PBk3`$Fs_yby3WwdHa)e>z>CU zX-yuiSdfa*KKhM^<~L$YyGk;YP?Gi`iU)bNXi=;6wF%sab-iU0>Iq^>pZb?}RDfl@ zptPf+6}xgOgW8BwZ5iPxcE98lKXnU#+H+)A5w5ov%@SvVZ?A`jol& z__2c2G`D&i0Mjpj)5%}>-sCSk>X)1XQ&BnNyxItlxk^;1eVR5M2z5sv;YvsP#;tvl z_*zN{z@L?^r^ON3_pui}xkyeT{rb}BF99M4!@!ZFM`rBet3W@IufYRNcVOp8z_k1< z9rS+Uco(`|2=?QdzRxi*0aW7?9dDP>d-RY5*NPcJz#~4+-o#7De$!<=So)PS6--){ ze(whtcE>#&7ju%>3ynKC*QTq6AO-a9$2r*lIUhV$27~d9rC|S&iA2&1F7SZncbY)r z3^<(g`cr{kHk^N^$!9AJ_ZKWJdCdS5CdHjy6l@IqM+>NFbi>M4M-dlyjk>* z9^qmve@=cQ8m`~>&B3aRhOfkF=E?tWMSr#N!R;hPjQ8=S#f<;>PkD^`5?acP8eLHs8!)o0AMXME z?_?78@Oi)kdUwo2Hxj___v8BNHZkHJ4t~F17%_GCq=`3VHLX*6!uj`klavJ7I-EK& z<2XZmd%hu&8( z>8n5DTbp%y>H6IH`}22qN|fCT@#QtlxFY;F33M`AnDM?zJb9($R+78p_FgFXc3$rP z{`{V4BVCHvYnXAUCS9jhG>kCgAo9x9q7zq;A3Q5oM`Q5f-s4#RTZy{sW{1^og>k>H zw(v@QnI1;HF}1{uf)CTOVbG22nv6!DnKNFMKVd1wN7)IuMgc0;@fRo;sy7YcNM(PMQnh@-JvpJny7 zb6FYjX6)DwS-v}N0Y1LflgJ9N2kuh#=@)<60Evmy6|Z!S;pzUZFLBjMfBinCy{&vA zCtZM9s?Zee)F?EYI@96mTmm@pa0|;UMxm*dPh9?TAuROd+t+%j4}R2K_5Wc!4B5mq zitU;Fz%0|vGNa`pz(o}tBv)1hG^?*p)|KCfW<6qL_PrMH!jaVoE{iyrktQha-WCVR zoGyL(A?gDTO?2l4d>z?ye;s0b^9g)L;0m8T0j|0_m`y5H)S$`)4-VPn#@kndi{T6* zD}E4qdaJ3Z8=*WnDb}F#@v&iO=_$w7WqlRKo-mY~PYZzrft#wc!D+kgufO&7HCb%i z?T`5d|0h2*V}LETLViE--97hH^O>=K9!(oY`$zc0SOJ>@5bv;A7+X&?lswP!h4E-F zoL2b4F0s)Iqg+MOyeexzm1?1ckRReH%+-B+$Ut5N7%U>+^It}G#mQxz(!v{Ku+~$Q zm)1uN@X$RGPyP`C)-I||FOWoovd-yhiem{d#zHu$KLYuw4SA%Gyxfd~6#J~io~EJw z^WOeI(c#V*Kr2&ii}!VO&*M!HS1*3|9W#H8pG(RXu`*4n( z@)u9TVfbcwlD3T?8V;}=wtIG|8ydzmG|^Rd!zTy7S#Xggf`p$k;l9sNJXX(H|7V8M zv0zNtD?;lIl22}d5A_SF>L7oTVoP*1isK>AjojE?LA>K>)<=qPc?kaE^}$~}3i!)k z1*L!Cf#Uz#S?IlG9LM>_UjgNq`<^Y|ME;#9FG?L5sRD?ndftnf4e<el>qtGh8`TV41bXeq7!m2P;Mf-w8{GjR%UAT?r#?nrTTW~ zY;f;ngaB)N63DxrGfw1?2)4O3$c#^Q!yW-EL$8ZIz{8n?;FCx;I5__Nq1{|IXz6Ia zm`R%h*s0V!z$+AY07$5tb=Y#i)6~Mp*u4lRC*PPTnSE9aL?$ZgyIvr@>fs2X+f`LG z@AJN!`g&?60lKI+ZsuWnfUvQzl-*qq40n%Iy_{2k?!=VB%SC(l1N5tdhuX^t810p6 zz0E4|i!kcxlDZ36kEHF^znZDnt-wm%^YhZ&UT!KBcETpAg4x&3KJd7{i*dbZ6%0FO zzQ4<<3rdqVa^H}v22lhJqjML~^XVVQxZYyv2No%$Z{8dm1U+@#ZcLSVuq96BV|)Jq zP`@S3KUbXt)O%J7q~be4VqJo9Z$Tl6#_;NdER~F)ehV) zEyIb>4&V?G!Bdu#4yElyL!>JazsqPVUZFuI1rAFte8^uz^EKAaJA{jR00i;`t?UyQ zhh8#^t&{elPhtzd`C@%fe;81-rM-@=g!rRsnK>liy5$@B)9XRk={-1fTI3ALp69SyvE=ISz zw1KyV6x!c8+dA7pQ6{dMIjucp0~g)VA67=Ys~$ zmulBq5uO^QHT!790L7n#PA$w)Y$byV$N8kR#4d2{z!N4c7zoY8zrb)j9c=0~p>dLvfJ8r9h z7vIw65$@Hy?I)eXT?{M*@XB-Y8iCgXI~%(S2$JSUom#p5;G!-rOTSVvbT%#w;*76^ zBPD*8`TA*aQ@?0&T@(3x%nG;9j`oK@QBu24ZNf-So-dhRXXD6)&lLrowG|Mb(AD=` zW6@otN1VjsBzBO@f^K(CcU5C&L4NKxy2M^-Fwo?jgeq1K5Z%nwcuwH~{Z6-E{$iU6 zKamHw;I(DIsHMP2m&4hR$(3Yt{~F>Gd0i?u6C=rjDyr_L4L*o>PGorO^6}S&aLPQ? zCFnX@Z)@FNy3#R-*THh;;f0!zcsNQ?2^xl(Bt|Qs-VWs zJ+BK6tFOd51(<$oT)FxCypfpkNCDFxrRN;ccg|=_Q+tRJO@~iP>(mHM!^3zZ?g%*l6-VD0UQ;uC1a~~fOWVB`OdffJsu@?n>)1U1*V<;-wN03 z1ywIC%yYaABx^_?Zb|{o<^1d%x-ejO2alOdKLzYO=lAQ__^dv!wfn%w?vx@-5`Ukk zIzwAjOgSV7<2u@Iwi@}AWRM8eJF(Fd=u@)%nOnlqMyt8fgi4i?ZYq9 z@`4@XEL4=x7cRI3)s_gygWvC0SoIl?sxBJ*e!m0jvayfl{Gn?C|HieHzt1225pRV) zGz=4uFO^>xeyoVePiIA)={6|I|JDR`rD`npNv4>A>9evNu%cB|xr zp{{;IO!+xIFd|&Hh2$r3EyPw9^8D-P{s}+Kd?$D^+XXY;hI+f}W%C-s72TilpG-gh z_v>+|u-3Y15R+lzilT``4UF@ceCwgbY*l^i+q>hwU6#T&ZS{YjhdfC1lWd$VW`1wK z>+a^p=P>I%h#FXvoDi-k#CYXO0L%YyUibg9oR4{4*RExXaldQ#X%dC$Fmc5T8T^&X zZOCtu-gb0R=d{M2`@>n=Ga5;D8ti*xb>6$o5R5Vo-uA9{1jM-OX;p^mKxw@n%X>t3 z_dRQ46ZM_cH>^3J|jpm8kS1X3s-;8#DD^4De_)=j7 z5|<>Gq-VXrdQ>QX2dfA0U?wod=Cg*B1#98KOPKMT|E=h(>YQmJ!rWg?=y>coPlf?a zW9qY+)AxYVeZxcb!i8}5h2!+L(p~VT?Tpv)(mXKu-Y%jBrwed*dlJ09+6Q>J<*}-O zFMMV0vs68u56`>{&P-;@gDeBpg^wABKum>@XYaTPICA-w2(Nl1nAS^Wg)-qFYCfrm z<);f|GH+ywwA#BKJy}+TTX%90hk7dVK{HK}qV zI%gy14&M|QH@H^rU9Y*7%)qP@hiRwHS+|MI$aaF{XOQ(VQzW?JQL04{}2kwH>EGmdLi8Ipcq~Y zVQ~n|vzDtND&G5d`7!CowRtEDV?J719kr6rz~s-zV~O!LQ49h(A*M!({o%lOs-P~~ zz8ws$;6*=|X$Q`qnz!E<#KI7&GB*kfByYNf#gtyzghMQ!TccNABYVc|3(s(^RTXHk zuqc0@h4@om_FeH`kN59+9P$g-vzu`+<)_q}aiil`G5wRr@x-MC+YpcC=E+Bj?W28w z&5Pnq?qC?`HYvE6wA=oG7)6T^e;-Rpc`f%EX zRpb}eE%R|^JW>UC-Rr#tjL?2Z^^p2RAt|z7SI5oUYy$egPQ36=eAW&R{uj>>?C>{s zuKR^6f*reTr~Ydwo_zLrHee_>@ViHccp-I@%zSQGh<`8AFZ7~?Apum?OVP@h$a}(`D-esVaju;n=?S-Ncl%O2G2;r@|xj+PmWxOA3CxNsn;CN4@b~8{&l^UC%?F*{cdTICNT%gg1cG zwI`PJ>-^wR3D)$_&Ux^;ygsvyN+CQkNO(ckAORYLUlvfFLA=f-N!`E$-9E58*NS}A z8u8@ib43F>c(Py{tq7S>CR!);))!wFJD|K1HynMRul`7Zw+f{yOt9mi^yaYq^ywJL zfy)$K`mz~NXIR!P>3BlLZhK8ujWh^9hFkH?r$hP0C#Ej_=`eU=-zGCYnzzDzk2HyO z(%~b80Uwk1NN+hx#Q%NuXg<`ybq;3WMScfoDt?9@DuhdBo%z5StPl&CRN2-_#@yl8 ztB*Fa3}^z|e+y&I0KWMT00AW`2IkUNIHQL1fpF z#0lADknH{32e~GnPX}%_g48??rC(E|`U#P0}}uUJ>+u%rSBH(~rb?PTC2-g38O zwhgkiP={rxIKyyqswe%N>F_A8mQ~e>RH*soVB*=8XuvR=J}Q)s>38~5(IIb0xn9=- zMJ*20hUChDTUUe_=@%ownSu3d+_lL-*XpC}ly)h^@q8~sA%ghVC)%?Hq$27efmdOX zETaOvEhpCIZ5{;=q}Q1?eoonKf1SFegJ=uQ+j{}Bb#nJ3z)E50)@RQ8J@>PPBEF{5 z9usGt;kMn@s|H#!+6`W~UIQafaNSt)%K9oxJ61Juir#g&h`nw;Fa$GwT-~sDV_H9!8w^Bf$&1 zns6Iqv=8x2g~`7i4gz8}-aKhM$S?G*n^66gV=naEdh=yf3gI2L-Joo{w{_3s5Tq$y z+;54Qe|8pIgu`|^5~JR5S+MH{Cz7+SpD4E@)|z2+=eeeR=AN+JWcuSIUlp{nD`axI zS_OCHr^eb;!xTjOlk_k7Iseg6ZbJ|G+0w*D$_^cAP6 zgcFHZo8a2Nc`zW}zj4Pf_uu#~`05vbKHy(o;_h|$zx-u&|Kg3i^}pmAWG6Wv*NlgF zuG-!Ep5UBBewCBvYt0)tA<+J|9jx>(gN6iAI*IIV@Wip)Rx-s5D0r48phut>W?k0j zx&1{CFhw!jT-`wL@$GFtgWe;KkY!_tv|Ty_;b_7AuLl^?p`X^|hm`|pf9E1?I?7;* z^eA!?w}LwAR7ep-t#s&pF6@>U8YC7jgRu1F3AKxkAWXACAOI^F*hSvZx}Kd5s0?*S z?&SFa!hI%K3ZwsVUJKrxlgcbsKzf1YigN;*KQe73B=g15U|#Z5o%#cGj+=0H(DCi3 zXkR6ICSd5N5Cvq7@Ykwzg2BGEhhgHMO;y2E>=vHVPRdK$SZc z&d-f-@bR5$<4cQh&`~s7!SW38da@E+XmUcXT6_8JY;cG57S}JMVtl zxtYW*0W%NrjqOuzcRet9_f8Ab9ybml-t^lf|JgMi%sd8vDqGg9;_{iLQ2Uw}i=mpTflJHoN7IqIv)X($`onz}9}Kl`qNWulwEcPQVn44|BY;qNlwQTQT#Kk9CJiDUhP`*rFPoZu{`F zL)>SjVf=Ge@Otju-WgMy-Tn_8q+yVWK>P1b|I0oSTQ)PH^?I|D+92D>01^|WN*T%{ z+*p=(G&+9y@5dFs@NmB*P720#ixeE}){~fdPqOameHhY2`ouHUqffpG|NV1+@fb0# zJN7RQiBYc*MH(7*7v(b}jC9XA`swfU2=A10@7?{j?_u%CnbkCiJS`F z0&?(Kr-=#Y8#UOm{cikZ!&(Q9{!NJ-Y>D0bFI=KJNZcg})6cH-`t_*p*4uGdY?AZ} zz?iwqk%=`&cI#=R_KP%BBK~u`>eFu}OscT3fUK`ZMFXDCAyW&j(1NUUOseJkWkApX zeryE|&0l}lK#s=+0xp<1F;-^5b%_U<=SVQ<4A07a3;^fyi`TAK^#ex3Q=gp6a^WH@ zeoiCN2go@B%G|B9!CQiiGCHp|pnQF(K%%V+oFg0xG!`?5Vg2BL?Qj=2Fz()EhVxtZWGU7FpuS~s z=G9&>DIN4eaaa_Z;@y05?3)i1J$B{NaoR{Y&eVjZpIZa4MvgLsF(E(PnTMyfdq~>= z9U;CG*Ml2Cgu~tJxMwt=c744+i6m{e{YjE_a<49wPa$8C=Dg_#XLvJw`?mF5$KL04 z!7?-U5zKftMy4*KAUXS+I=~16FS}vVv^gd!VHBVb5gR%OMP$HPl#Lc=!!24 zawHrw;*J)NVH!p0omMTW-~vmR3;lV`!^y$`6*Qvt4uF zLjGfl?`GMS7rbES6Z2<$6iBbe9qW`h5>pB~%}-DASt0pU!$>=>b$0LbE3wJ2i1`vG zzg}=w@$`>v%=~ivIQP1Pl2Lqn+v{}Y@E<*3$|$@e>Piq$XG<5`5@`YyH*REWU^fBz zG2RfYI5#*rGM_U$hT=CCm09me3);f~-WnRgY~){@pgvR~5LyI$lE(VhJ|cZDFL2zh zEf3{eP*ZWZ_6)ZhjQz@IxRXC>Cr`((IA{>}TYT9s-Xr*(H?o6I{<7ncJ+mGDl8zVg zVRK((F)-1`1NMRfM;fJOka$_eQ;aMCth45q1dtYjP_Ku&qJ1?0k7nrJT_XoDiklGg zxDeq8uaEIxzAG6ILgpfmGu5H|F3dbw{k)v{fUSqUAtCbOZhgs%cTRJ$2)CSW#D5!k zD-SeB{ZzU2qzc41)sr)2)Pod?^7r$AF~Fa6gni7@5Cx%(`q+JJTM__xo?uJF)%kNC4RsZcw`j#-&E6)Lf* zsp9meLE`e4o0L>&{iGyrbD7Pjz$@P!v*Y8DJ^#3UNK3yp7hb(IQe=D%;X4f4->%DD zLAd3Q62jj4Z_#jUv@DG4t`(emcZDjG+Z;Z(tMn*})&~;WG#!*9d&eyYWGRE@Vli<` zgZ@d)5n4>#Qlp2p`b|Ij&g$wvYV7GTFWYG1Cr@`-sS?o zpu_swWz|6P!i)e}K{iy-9rZc54?VxZ-L$>qXEh998JKF3Kzt>l?=QE@n2W(y0=kszYe=DsQX{yl;aP& zY5sjY+VHxacdH_%fA!oqpJG_~_kQ>{F6!h5k}&<;io^ZiKi)9Js89Z79})brk0gKD zN14igt{HcN!SDCeR7{Oq8}I?Y->=%A@*K9pC7jx&nAk+yoc+BEd6azxLkf$ld-|`8}OB4ncBlr~m7x z3BcVPH19In-PS%XIfMS8yUz`$kUx0c{9Vjv(Z4^pcTBS+j!6;Ik5Tk7Vlv1E69=CC z&8|BsqA?&u_4nshoBts`&Fv5Tl3#Y+ZhhVXU+mdFyZ`lm@$AIegTic>ad~#UG6IL~ zG1tk1fH(aMf}*?QcK&$=uZREd`8U58g1gNVc8i$j@^HxcM;W`=V$>IPM9bY%Mtl&K z$ArQ#vl z^V6)kv#15eZ#phA6(jq2gpF#@UI0kBd>yjJF5Y(W6(1 zn605e>;mtqq{LspPm;j~$}Zr5F&{bymI$=IV&Z&ty=U_~ViC@8IEXL1Khg^jR^c*4 zpXmhnH1#LvPo=@EtG3}EpSJ@KUFoi;14+O^gwsuKq!ws8IcN^be5&s2k8 z3NlvR*$7Db8f&xT1BzeO`)O#$;vWDVXzp939zt>A>JtXfFP&%sp9&{q9@(CPU+X}2 zv%4N#GCK0jMBD%l{gR(uzu|;ue#y`I-*7_8*j78^+lKJy2v+Ip>fZB`Tp^F0>WRfX zM{(YnXo%Dz$O{%ErlDR1D`a^oS{#cB}s&?2? z$-Q58-p+55B;^Qe?g(H>-`{y4ssfb7*|FE2@&t;R_R4I;nINlP^@M(15jY!jy0Pc3 zCDTC^cXYu4P~cG;b5WegoU0s(gTL?Zm!B#r-80Rx;V_oWzarrHumLQ56XXQ zHOM1YKa&Bdj?@RNC*}d#=Fr$G`BKnN@m%9woHOJOq`=YRNP&V_k0?*(q{B5ApKGBf zBBAw9(WSJ{DDE%lLe&&|oGWCgx-lG}hIlFW<(2H}1>&F@t%J$Fc;sJ?Ej{q^i!<^o zO7rIHjRwTPz9`WX3ydMq@PobVeuqFvT(!t9##aSu6IRZo`rE=e9hW#ow-{J_W}xI@ zYAjT*;i3sHj)k29@6Fe}QQo|hxV56X9I=puL~N?Z5$Pjpj7tPe&r{$x*b6e>{PXin4v8In&M%h zn(RKnisA0Wt%-C{Z5AXYM7x87JQVo%FP`APe_sfEX?QdjpPmn@ilgO@+|U3~52S+0 z3cP@jUk_Gi-;Vw^CcrQxgxmTJGmq7uN|MpZL!SOS{4%fB-~azZ%Xs$BrX7FC*zW)1 zJ@GbuOqU7RWF76r2DpKWo|6}kn=RP(Y3Uwm^xkdHm2qhDd@*JmiBG;pntT|ho&Tqz z!c6r+Ck~V6;nuF2#rpW4@39%?FOX&oC|W7~_MJ!p!JAgW?z{+>I@;TF?8bkb)3H-1 zbDG_`?U8@sT80m8|HSX{+1~_q{`Kf1zv9a9j$Qh3_kB=useV;s|C1g0qIIODkJC{g zf6wFnb)CR}Z}V?iu~oT~)tU?HVjhG1NE6_C$sCVQH4S71j-H!(vcoHQA)u7boTVL# zx&F4>d|Z~g(0*zlTazduhnY|Rl(Ncmt@6Fkuk-#lgQ7Vx?f*hT%LCm(f3kbfJfm`8 z%eN)Y2bZ&_!yUtnfxz7(d<1LBAm1pTzV86~zTI6H%$I~Pzps_*%DEr)=zKy!@u6TZ zIm|pacIkr8#3<2tH~X)ACn(4TnYY&P6^Cwv%INx6@7sL9cM=nl6YSC8XmGGb`DqVu zI3tss6BqG*ujgN+w5*Q;gh8K-RC;rh5QMm4Z>eqx;>%L zMl-vMybtumUadMN><(Ea*5(GE<$|C4Z@lj@(1iMJFH(8(ykN;S7p~LcUNGg3y9L#T z4`e43iAp_$;%Ax&!W(l+fWWUp)K^plhp6qx6IP`HH|(}ySzhOWk*@+591Mk2LiWC&(Mjly9Gb!0FIENF z*ck0FdCtZ`P3A5m2)|nAxN~+o1{1IOQ`za?f0@tl5AzxRm-)Q=p8hnSCr?BwohCO0 zZTT1WMd)^cx2=!JE(m78(UliRY!W&F=R@3+3N0x>Y`XqsQ&$5Bp3ocR+t&d&N9$Vj z-WvS#e3~1ouR>r}LHQ~EtPr@he{5_xu@lJ1Uw5L8GXw9)Xnk94qXBG{oxLm^4X*m* z4w)>OKsyE-yAOkVj}JJfZ%D~0+zA@Ki)r6z7lIA<-e)QGdO@0YKPGRcXvlDA8CNsB z5)9euotdgd_JOtkN6Vn$7SMi{;qK(NC}`TR^kJjMALN&Ov#wxF*loXDcjS#U8N!hX zrQY4L{^|xRtm*DzQE@O+k~HE9XQ7G zoN?+Oqt1t%wqZ0O7OwmZssK5=p<`gy7IA6X6PF zb{JhB$t^u?3vsx6L_VEyhGxe|$-A*4LB@Gu&)f&d-w>u`Q$n#B0_whIgdbZ&{OR{` zVUbvzE-=IAXZS<$y?+-6wc}$?rZDrb`Yrj+n`>eE1B>uuNiSW5z$1F5<+`FTupFR~ zbi7vwti0X^4{Fr|v!S%1up&1YKhJt*sRHS3!c_M~gH)ZNS0;^%%^K2M9;p1dV_B0A zQd-a->Z}c4D-Zg zN`w&JJI-t}NdJ?(ayPb!D;s?! z85c3+PoxZ_r6LZBhx=d|Ey>kbcwK$q7CliktP9jId#=$0s{9+HzsuUg&zCQ)4W-1x z?u+8zU-iX9(s7GtNmYq3fxDYi^gr-b>F(bAH&qEx^ir>VxDtwIA_!d4z3rO?y#lb6 zGA^O@Mn>L$^=BaZoxdbI`mib-W8LkP#ZiUAm-r2PUKfoCOnH7!G1o=kNzsArml+uK zRCW^Q{36i2`J~mvNV>Fl{C=l@)R7S%c~04Znc=F71CKJnR9KB;lS~x|`T6AN1^f)i z-urdku>kE4b`lw-aaA=?Hf!Y&eLBj=Q1KwU@hg1+IA>aBbqNRYqgQOLIA7wT`Q#F! z#qgLb9`st}k-r=81tD1{Mnzq70J}Bc2G`drnBu~@AujwC(S2 zbUbF!y(AjO4SkX{vdxDDpf~*}b@8!O$j@?~LxG85_r5Ww>#Jy=<-z%-B!3SVVJK%~ z@k#xdC(OJ4db##}$ZmU|QXciOL+BitCqV(L_PXcb`p+yKY;VkXhCh`bHgiVqf|&Vp zLf*^gChgCMI3xrnpNMSWD{n6^W6~Vh{4$F1>AoE3;9~HRmi8LN3%|)yh>dv9l%+Xu zKiFM{1(#(zuCO3~ky=%(vDvXwNFp6+LcjI3!})+&*)!6MkUBooJ{g}68ofM7gfr|1 z9hi?ZeSL@gEjNqzlj7KV!s%8|ht9*7ckAbG;U23>iG0#o-Q`sU&3zOCr z!e~Fb(U&SPz=Kh*`XHKXo3j+Ykn_2G`XORcljz4;PwmJ`Hoc_Tzu+0lU zuoW;L=STR)Gm6NSp8oT&Cg8F5^>U=oyD4k%r#+8_5pwq#8P0*-`rsx;2NmzV&#%6r zxWt(6m^^P53O5R=X-|y$)2THh>B8t7)28ZWk74biv6j)Zg4bgmfr$BlX=YAwKKIC7> zZ?1%c5w^c;ba2%o*8 z7%jZw>k8;(n$z}`A)eIC`Z>W=`EbC$Mf#@A0ofg|I?m)&9Yt{xr4OocY5N0!{xElZ z8BsVG9?w31`)D9I?rb|9yH*OLjfDkuh73Rkd);$a??ABarg-(q!vK&X8#&$X83M>A z7V7-}BVQag*^nMvV<2!SY90$TL3vj<9v-D1_!bSGE_R=8rAKzx9P^TM2QRX}V|n&_ zkNNzW58r4WJ2X&GxaW1DQrYxl90zm$pV9W%$HRn~e@U0@)w|>&w2sye%42EdVXmwH z*1w#?oJW{X=)o14OqS+bA@EVoksq9)iSWhLGYgs9e&Cf&iB$>@n$LuSB9~^c5`a~D zlVo5Eiqo;bHhtULI09O{)BBd9gY?@*MyZ6_52*hIgg_C-dc(MuvKmr1TX_4Yj@{!k zp-}hpgRgAqZa`yw0i1dh2-yPf_ASL4g4kP6M2wZaq1NrA1m{I`VClnGuEPJ!^QJEk zDY9*BVXx|dSjguKuvOD*k;?NXJU5`cG+8GP&su;2f=q9yB*n9@?*l)aoYRVozby&d zS-`zSA$}OPS})K^#R>E2;#oZG_U@0qGC8!F&*2Sm3QfA7q#lBwcyj|sBCo&!ntOQI z+E<~~YT;e}31jGXMM$UC>)7snr>)Y=DqHSAC93R=m8L_GTn)TXcRLL4jaL(|W6Oh` z_TTy*QTw&+oMz%591*G#B?=D zXT%lW8p}(I?)%X}(&_x9JDvy1GWkPoit|u_=73Uev>0^r_%8KAOM3S@tX%H$x?`l! z_S1O++dd@M)?ZKgl``=`nhZr;d#b(X!A*PEtj!oEgVDYvSwrgh_!W%$fQ1MNivzB3 z?7;QU6Qft*MBP5N%RN>wC2PXrGn*+CQht44L`N8E4TP)dUqJoC&d)hZ*vkp0GCo}- ze~S3wcZ?${zqM#XVF7I^*d*dh`?K~0;KWD zQ2zc4lh}q%try^jmmas8yg%$d2m1p)=NgtS+<&KXH9wAax4r0QW;^i(WJjLO9>!h} zc7fO<*1=zsEnw?^aknL@Of0d z?yreMk-3XT-Uqc{LFdXdYkm#L(j=L(&s_!z+a;aSyv?_Jy+wgCBd4__{2EA3!c>jU zI~U-S9g7vwf+wYAt@!cScH6Ttjqbapit?7dOY5Du^7uB!_lm^T?UIla1r&3k3CqWn$uDRp~BayBzaJLLgCxcbs0J#Q0LU&u42i*d%w98PVpt|>Y(LO zS64ya&HuyOTSo=8MD4>Sib^P8fQV8eprRltjEbay5|R=kARy9+ba!_n-5?zjLwAFe z5=uxYQi6f{yK4!|U7pu<@%`TQ&3|XFnRDjEoE`J*XK(e#GvXhqAxFnf$zQvAys`D# zH=D=8YQ#?&9#C7^UuSVh5d@@p2R9R_0Vi_B^8HutgUdcq44yi-w#J9-JR!EW`T*#? zA#SZbE59W_-@#{P^HLqKjoTC9N{esFr8*g@c$d+!DX@~H?7jo44LIHLQuF{vQa^dx z$U|_Eu&7_$bNhVKo2~nLsU_((EY3xZpL%JZ%XN(Wu32-FfeylR9Dl{nR(pZ>udl07 zqEDxk#|EQ?aqwOqzXSU(ie4796N15n>6ffxZURoSm|SKvbp6Qp&8j6kxWUTUov9t4 zS&^L+60`6r?G8Ndu4Wa2hw9otr)xCBwM6q`&|kMB3KoEA7B4g(Uu(ha)0yAzbZxuJ zylwyY|GIq^XHjiGDgcg?naXY5_+ug7 z_vod+9@nX^w|>-B1T$`ZHANlo=PB^i3g-^zK_$?AR#>4nQ5$St=l5|eDwAJV)vkeu z3_LkcZ!7%uJgzAW9Bvwv!Hj!JbHnDV&!5-jpIX>~q)tZB3z%`eEL}Z;?O1t2FSXKr ztsgwA2cB@9HMkD6ZcvoS(B1@!_bFy;lGVWP=X;r1=W>@w1^j+KiNIIp74|oQ6l;zh zf&SmWN9NT~#c&5D%(%nJ56{U<%3sSu>oz&E3uhDo&jG`j zi#;k^^Dnr{zHsm{!pCjSe{NJw3(h0lU7~5K-;*!_Kp%{MT-oUQmV9T=A!~^OY#omO zYWsKC3DL`7ah^Aopmw&19*VmmnLbx0*a2qr3(`(a# z+X3=RE19ix$+{weX~c_uzKAM=0P{#GAJ z|E7<~|56`uxwI}(J=_6)hKlW!q__oKShOeSpQ`}ZQEgJFEC51!FB$UJ2yZ=SZbMP~ zQ{Pm8b&Gz8bOz!@lN_c=cK9j^TH1$&t}~(kQo4)kS2BEbJhbv4v_L@o|4e^xwuiZi z-scFg`Ip?uFC3N2#WC`upXc3V_M!T{O_Y_N@9ep=?eA$*U$&2C?|GIo0t}B)4OU6L zfVAs;OVeT_;ACE!0Bu7NkSC#BTI6~ObQ+^Z6Ix#by4b;R*8^VAf3mSDhBXg{=Pcdo zPRxUEoP$D|2}S|wJ6;#-Y-iwCYO|cbHwz>uo|HDu%K~FoPp^Ak4}#h2i6Quz#uPe&sU>XZ{`P+Y_i|YZnKgUh{V|szx^~#UnOgR)2 zR*gwIfc9r5yBKg+ZC*f6vl?kgXHI!G06y zF!pbEC=6V;EH$tC<$*Y;E!>1XvOaVDFbciD2980 zcl!BYwxt9Z7qqi0W)AVwIS+jW8!Z*8YZjNy zWh`)X``_0@(a*=`Em&R(&9{p5jxQ20@*|c#<;iAEW@B!NPF*%$V)TC14KQ1marx+8kVIVdaw5p#r?t$T%pJ; zr~#);dAMm>QT%g4K8ehTw`QxKJ237m9(V=bP;inLd;5Y&``4K!_yt?_!Z+%%Zq>Ql z9Jf(_VT-?dQ@+WQw!tTZ{LPI##LeSPd}{dl;0QU#9-vI7m;B;=6p-ps_G0U=1dH$8 zDaB&jfuf;YFpJa^@NJa+WNSCdtF(Det4G|L0F=~5mQQ7%>&vov)>SQ3f<8%0`>!Vv zo+3VHcHD>%)zfCZ{*d_8JqRY?8)N*$W-vs{min`$8|>MAH~m6fD15n-Q}G^m85GDn z^G1=m3JUMiiE23Y9PYXy^vr%0@m*P-wD-7pEDR>U4$$|RMD-138QzW;3>Cn_z|Ym^ zn$i0CLdL*mJX3?-2fyd8OU1b`B}(+rkNQlQJIFDamXr=f#@H#H%X&ez5BeH5cA)Jjg*bkPAtln#EpN$b&y5n}saNQQd>G$u~PB!tx+xWjL2WCtB}5A-4qs zS<9gL`%7u$|Em9YmaFuL)Dy(defR#Xz}co$C^p$5Oi0CCrn^`<=P-GxEXPZas)vf| zs&mB1-j;XW+g=wdHa54P_F?n*!rw(iW>vkw+VeL8^;bC2eqcvO)8izK?bqwuoS&yM z>9q76e;~bZ)ZNFY5{M1Gt|^=82D-fxXQnu+AZ0}Ep2k^p{duky$~QL$Aine&ul=j& z{*Igzh!KEIpe3sXCn~dc>p8ttzw+W*3tC5lT44ku^Z7t@18*jqXHb2LwGPm@;Z`2n zp9*t>)odNb50!29pR82U5-NNT49P!J7~3@fYgze`lGb!+cJuiTsn>;INKN-J<7xz$ zW^9x{ua^jPzg}}aE}jOOpNN2gBw<)mEr0f-syHm#X&O+zavPFTwZ=A0=L3&^Z-$WW zn?OIQe0Ylf7La^XS!BH?2xiq42YmYWz;85HPg%Xo-}dvAA}6CZp3DaiR&;Mwcprlr zxrbv`;<(^VXAaRW*K6;NYH? zc%P6fK!xc64{;yIR{zAT!V(8ugi|2%^B((3KUeX&_FTYjtL@{!M19@fB;rJ2`cq6S zeR^&Y3wCmmjQ3O7fW&amaBtcKV5NM0UA`s`yuK>x72zXA?P2U+9phMqR0Uzt;PK%Tj0)OO;$!0H`0 zOwUF9wKOgw!b$SXpv|q5<-Dt=BNCroeWVHzMhQb$8EWg zGIKDC9V7otlpSf7n*ojrrmvi)v;k9ZDqdcsNdQbAynddojsw?XxTBjLufhhQc&(vq zWd8|0UF$jS%LrH4pRZCBqWGcNfngZ}ssP|6u5PE7f_Obl4VPxF=57Bzj%AknP29lp zfD~5Y&R-V9#$jA<5_gh0e%kuZv=#aVD04EvI?)V|0fi0Ve35$n09685Vy4_9P#FiB z=B4o?O|Qc6+eWJS-01x-1q>$`*)YNzuN2<)@}l>fsA{5_bS3}{N)Cyz4NPxcXW=TR zQ`NtCLM<%@NYOTL-6zj>UtkrcGp5qA5duYi~NtMYSSXI01BRz!n*9@*oX4Gf+fV!lB&|DJq{>{|oh!<`n z9`1IH3()PBH<)R!E1%jG2(+`c+DBc&05`r@r=_qZJnc%*CCK9i*^~Cfo#ya`w4`fC zW+|OuXM%+;fgZxO+FR6Kz&&RG&;NM*N=FOrf6YGEd?~8#3P+#4bd0G(d??9Z4!gDC zp?%x-ll|rzYz`1m89EuSTEIs|NyIdHPa!Emo<7auGho#iaaLv56F9XlmB{Pk44+2W zkUK58!qC$_H28+@uvC0z*)$O0QpeNTd-aN)VZ=pgpU`>aPxr4;!y;c_n0WZBX^u16 z*XDKZruo{4cyUE7PvX@zTEWofM=86OjUnC)MgL_7LrB#~HrLIh1;Uj%t#6ZK@i%{J zlxjD~jxJ*JQ497;u!>D#`TnPUjVPRo5#BIxo&N(d%l7L`z7{thq=pfoGa{STlg|hU ze1bV<7S3RSO2LlY+z+gAUwENR;Q$j2T}G7NpznG7)P-=>1#hVFgPf0q5#iyf!8u{# zG;BC02p^Wd81h#vZ$_gVz0`^4CQoDF>T=Z>X}XLNQTXg$}E)Kwqy%NRBR zTRvo;topOuDU1fYihW91l1p&^1-*CcNy=b=-l>mjdpB*-*~hW1e{6Z zH2ls3MINtJ_2Zhsh!0AFufy!2r1frZ@wrm)>9UfX5=8%P?G=^hC$eimL;UwpAy#$} z?xC=E&c_Ixc*l(g39YvJ*Hee9ejP!0SI>rLG~XJp!^WCBces*kwmr`)4^Ad0v|w?w zU_FphI;;jf3&^eKQwspJBUi>LsB3_RE!PUKUo~Jpd;3a}nJ@g(Sw^OE9mVhTb%UEs zlbj*nq-R8270MfsUwzwR*W3ysszs6<;|@XByw-@rw?v=~`4ijIuA;DliuC@eaVwy! zHKcR;Fk1h#?^`Pd{f$9naKoYlC&G=!704>aCftFcwr&i#Ran3IPc1c||2*CoEZ+59 zzQm14LM%_)*Q7md(>bj`^*NCjtx5nmzyCtiSF##lIU%l5<5~?=@$TN`-tz=@6W6qP z7NNSgJ(JP&*M)Rp!24--&J2VT#!pu;RA9&hqXPR?45Jb6R4^lFuYA$=??X&Vgvlxq z%g3-BMf;Ie5t|pnbIzzihX%#P46JZ6@1?YYn+M5xa^wO);S(DJHi8=PQ=Ny^z@i$o zHZjNQPn*DF60y`RD2byia3 zjHXGE-%VC3&HFH{6`W_%-OrX{50o4ZulI~40uyrm$^NJuU|1HTfb%s57;e;4-yC=J zSDimlzELM>Q@+W^y}?_$CEw(`**xCNgWU8pH}xiSv(~JCZZ=r-AC%x}Edg;1UuGDf z2RNkjR{7flgokA8x-;MRkKNe%<-#YE5)@|%pydh)DSr-_qsv%d37|aT)rL%5o&Csf zzD}y$Odp&DjE9`bU)(4Jfyn`x{Dx(Kt*5%;PKF2M*A%M#x|RXW6_gX}r=PKpGE%uS-re`u_!ONig7>4*%$j#z7uMOpF z9ltVS)qk}Z2Rob0QZL{|!LkvjjG5+8ct+&Z%GK;DQ1ASP{DQm_3|*`jqIOG!(x>Hp z*>@+y-e#Fg@-xYhPBDq&%|66K%g!CeLq?qp8?MdVEGj{G>3XT&{-Sf)Fc=KsRIH=8 z+I0%?)7c{^{z0Y7$wcfQ3Hh{G=67cJ!I_I1WT6z^@Hut;buI%tuu3PMW9Pbke0VEM z{+AJZY<+aClmm9w8rV1uVZwv#l5muts3K%`H|k&YyZ)=`m)Rz@)bQ_zYC9R zR~B$wbQTC8L;iVNSliE}7UWNJpY}6JiHQN1H}aY+-%NjITZ#uJdHH+sI{e^D#QiL} z1Bn0dZDdmr@6{U6zkVVIf4~<=1TxJ>T*(2t*3-rAVng7YgX%HvD@8Dns+O_ldnEiu_qRqb1-G0&m{c-2>ZxzPDr^?bZI&4`y3z zZ@T#LL)*D)K#9Z!dc5~;J}Ms!V?QgkDiYR%3qsH0B?u5sWoL>yxle2tAX)gSG!=Ut z$Qc(qzuRvQRLO;Z1U>QF>d)JnKsmM(@sUw58>UuVQH6f|VN>cpUE7|giVfEk!yLBW zVaTiGkVV5TP^RheaZV=^;J%xmb*5+o!~^jfZ^YYxbkml+4ZTo%?SNUcT;$rc0 zOZz{4(N}fH$iH+1olH{c10K>zyGt}8LDpmw_c%ctn5w&_r^nL<=$EdUhQ!-LN&^)c z6^QaiI$DXx57t=2cC#Um57X#>j3fX3Y1mvjc<$0jr5}X$pZxZI{h_U~{riZ0(K>I8 zkF8h#VIpIgCJJkB$M?w4kn>1wU9X_&+a7P}K5#XLDS4M-Bq%O@E~mQI3LHiW4u1aU zJ=Zz;t(|! zRiV7Ge5)Uo__A0ze;;s2n_kK|?Fke{mq=TGWP_tuWV0wc%fZttB%j>gr-9nVi?bd- z|D^|i)ydteGq@=~zERI&gZCTxryG26o5#@`JOZ0>+D*T6Q-4;K_;i|0)q#_Id&huk z5O|>^o=)L|@TSG;%aSt`*}%wEB~9%rIxnP=5&5Z70^Xi)e$EI`zN=>;8@>4uiXS)1 zJgmKJRSaI$i(V?@sRf^Xx=$3}Z3f9n>4j_EfiReDd@ntFA#8i6Tbxi@0=2CL-?$KD z!nc0$K3(Tf9e@X{W)gU|p-^7_qqg&6A+k581k0JkbK#6yiF9*yE zbD%_Tm7b$zE(E?ErlukY=Sk<~^R}`m7q*QHxu{qne6L8|Q@a3%5~%cAaP?3T;>{Pe z*U2O0K=E9@k&O6{>`8D!i~7R8SN?EGh^sp4mM<(hp8WXav<2w*Tli|*-L~y@LD5v0 zZ*d>Hf1ybzd7ttvHjcP($=m3h2(rr_AYtGVfVrSa@Vk16Q8bLH|JLT1iT1&9 z#+o_5DD{8}emg}PjWEE)c}%pu`2|qxXdmJgYydyZqAyZX<-x{V^b_P=zCfR%yVg)F z2g;wQ_;{Pn3yv+#wqENxjJQptQmLS+mShRQ;Y7stc&ujO}->cvCSEVkLq6JcOl z`s3V8D8iHSO>pHOqx1#DEB@hJd9qt_X}}Pn?-~T5vrt;yP2|UXjCz_~cyIgpG~W_r zu3At_V*2l?P!e4-6T!&i6>hZQ!hhA5o7vqzA(aVZE?zxwW3eDFef8z&C#O+6}_35E8KA7D;XgoI!8(m|CrJRpAcB-gSDbQd*cytrxvcJ6;P z7pJbhHBM}!-uy~am>oh$rP2k?9AuM>o5mrCGdq&k>0W=;H874b? z4o)5C&`@uag7d0f6lxSEFs0$!9(N+{t@FJJQ4pW?)`#nalPRQCs6HaymFf2GK?68X zWb(RR9odcJCiJ>TwS>0DE8hOB+RUc}R69!PYU?cF!yV)uazRG0UoB$A^X@}XdEDtk zfdiJm@=xtF!Iig*Au5>uhDD9{w69|8(_T!o!siG95jMTP} zyPr0RBV8L#42kB4eGY;@L|8vqXT`z1h6c?()d)~xTEvxh3)$-?JFm8vDt)#*d?Q#DB*sY0}UglKtY>fVj3ylio~zuxx+9 z(}Ds65a>z5)c2GK*_ZF^E|=TqLvJz-52i6ADEl#ZV6Zh9z6trs6*CnF{ViuyMPG)2 zcAB6Do_CqRueF~GPrx0%t3O3OaUdP+vL<(_Zg2+AgRG`vo6m0Lv!1%D7J{;Hl$LD%uhq7@nazFIBVs z{Ve%~SoP*_sbEt-+Ww{=TPlX)!P{Uk5t?mn{Q~j83g1aj!dr>~uRMR~@>Z#X`%I=H zuG|se%bwwY4$k!?Rw|4Y*<_(Den#UhKcRP#xEZH=_M^1spF#NDWu>())w(s}rAN0|#Kj@>={i^8} z^GU!q18=YDiarRjGJEvmVJtYS#IsZ8QY?@;-@L>Bff!8c%Z*F&MgEJR#6);8p8$L{ z;#$+*f$U!O!mFJ!y}sZ>Qr%mUc$BYl{i3Ayym|Vz?_*+qir7sKYadwNZ}<8khqVvZ z--f+t$U^ytI1`+zRu@u1`1M=#=7xH}UKb}#s4f}|a-4|i5RV4*8~W7svWE+PGJ3xe z8~QZzMDG+!5PH9K#ut2U2Y7=9>PUiIS;PmLdE@N+lqQsKC=v34+O2P^kW zAFeu%_|BEd9ay5X!J)pIcZ@?bqRwFcCpV}H%$=n4TBZf4#`C)jFt^vpcH8AChE@fLgx zv3nHA;|TK`m`A!BkzF&3^K7=Q%NKSnEGxu(LcB!w32&C3q@#U67Gp;?XHIKa&?&tm znV$#l*lDI;TaE{Gd}Q-AF->LN^E!EKi~6Cq5F^M{eYS=z0Y^1s4ab(!lONH z(2Kr@O?}Era4u!a=-HOMUX6UB`?Wt16ylw`9E$RT7jHhq7tKewzKfT}>360%0@e+_ zs%LpT`@W_50`EC5E3q_txPHxXYE{x=nMphLM#%;*&kY#-+r zm#4;o&FlO=&V8uJ*7?H&_}WdK&4x<(uje1_c&UGmKNK_WHXnOv{~>IB^#5v)d(UL6 z>oQ`VNB%QY|6A&3G4l7Xe!MeEzXC&d5LmXC7(h|GJ&lrG2LG&A|1bfZMDY9ho~_|t znHmoVzn?F5Il}n>oiQZ88Ek=bTlKH!-Tc9K*^?Ff99}KC$V@GIW8^kW3ZV(h$ezGG z=0QU<&je&9Djz21J_7e@_)co{KiZnVK3Kj$`WeN!Hs{ayW^k8ZE8@qCrnZtgNqrYc z)bf(wltFrR(7NXwqp{v!-xt}tcDzgyERS&#k@(vh5^UV85g)E79!2&;_2-8XcOLxx zb$yJ-_&%&)d371{EENwE{}1wCb+ESNf8tBuZX?bi#_h7j^3&I<*QZCQWBKPxh<>b& zy+iphH=SnKPR1GifBs(`c@*4}@Df`eM*-hF;4U?mC;3oQDMQ5(>n*vFQj*_(JZDV5 z|82uF_3Xc^fyE{4yV0cn66YyK&Pdo^aDxE#C+weAA!^yaKU&KWbe-Og8%T3i3#+=A z0>2NMF?mlNKTPL~@eoX7zL$)U|w!mCYu!z4L?PIWIBuRc~Gyw`v zN7J}pp}0|jzV;Z08G26@WqF4@F4_Y3^>1l&sjeW&;dI*>b|;WcHpiJTZ3ZpQJPP8e z#QMSi)g*L2>9~>>C(v^{7!qCZQE>Y_fW4^#0U3sy`cg-$ z;E7LR6$H61z-cOBg@q*p?24u8C5%Z2sYfSSI$diZyH|a}^A!QuO@ONyMWqi(zVB#8 z9_DnM0LMHSl`$LT6Vm?+u(Hhft2UE{Ln#6tXEUxM>{7r^M>4&FV{oP$# zcS}qoJVJBDzQxjXOW-CE)6<^;w>?i*ZYLqS;T%l=2B9X)ug(zqhwPOknstIdTN@Ww z%8H@#r?bjZOC_+dr2U{&Mn34_jEr%lMSS5AJ0E+;XyyQtbHH<_o9dQ)n3=y*kE9kB zpYv1DO}+ry8yrp3tBnBjL1hyCuTR0~zEYR`AblvqlO7S#i2mDO1@Ve+;pxLe1eGra ze<1!UzQk@*@~>uq!(Ua&>+|;COC(-s{^?k(UZ|3(aU*a4oo{!?jv(_n&OINip}%xp zz7>xXJnNld^Kx$yoDA~yf6!b6pE#dub9@p3J~8d9KWB>KmV^wEx5|%(fUXkX^9{17 z9!1P!2fBy1QsG$EXJ`Lx^#3OTBEy`6RolLgJ4zjMU+}R1DJieW>k1)QUX5>EaYvW} z5Z|a|X{6oV?kZRlelVwx)9D|7W={9qw?b&1STI#kS_J#ocPh*aMu6b!UAd3BQ9fM= zZ`(f8kzjCuHeU6bI>JSeius6T^Q1!lz~@YyM5taw&6m!MlQoEEhR#=+!?>jic0Jn5 zlJLe5PPFnVhF1H*jII{KY2rv&8N-xDcJC>)6b1sR)F_@tH&(nvxatG1>)Ah2HAMV$ zlCK^co$~gE6B~7uH{~1kx3-Qqc-f)#ue=wyf#Zc6cqF*7p9+OH;=s3m`K?>y&DinG zj|aPe>37GcjTjNHm+IHZaA+F~C-)TIIf#q?(?M1DW%0xizn%jnk?pfbageS1qoU#2 zSZE--dyR`d8|n_;7wT-Y0Ma7u-|u9G0tNK}z5@i&;O3KNM%j-xfKJVinr#}{Z9~Hr zN1n#$0Ajrs_EWdfe(-B5DRGH6-r$yQy*O(ivOfwXY1Vx&qC5b)iTif6Ykokt=E5PH z0S~a>YOVG-n-@4?u1tO~FAW}Sp4Gn)Vhnahl5^pfcz`=?)>1k}EeqpkkB6e2V>H&I-hftDaL z+1wfQg7X1?jQZ-}au6p260A_*2stz~R{Mn+R8u?OE;wn!@&$OPt?56QQ&}p*SvA z5!|0hwMt=<0(9PH#CKGnJR>rSmvrO-6@c(6kbIbwhwNa&OGPq)IS_F0a?Vkp|J3uZ zhwqK?CT;a=B~#^+QICWhJj*ao%3>ew#S~~O_@qtF&K2OdvFTAT({GJet6LqQ=kI{h zZ@WHw%Q`?u_grrOiWGRtiE)j7uoyCb7rR0CDGu!96>shJM0JSE@2g+y>L>M~2*hBEvsvOw%aCzlZg#f!L4u$r(d{F%5R$uFfQt-PzJ-VS!9bSGK zcUdh1HE`n0{E{;WtDEV_xSS5Y2-QHR;54vfQQ7uNg+2`T-)BW=yZyS9p|ZwgpQp;e zrrxCeO>bIt40W2|WB@6RcnQHGw0|N*C(g>!T?|Ow0$(3XRt6?kcF$S@V}Qi{$9o4H zvbXxXnznZ<8KXQZ3N83~EW{47SnUI^m$%QCEBNuX;@cT)yprN=wP<;4F}Q*wK+qR% z3*w5-&K%v93%=txP$Wm?0(xm?(KSm`=yJCz-98lgQ~FstxL;IE;K6`E3X8ia?)E8M zi`rqa6j0KM%+H-?PuM6joc2% z()Cn3i{*hy&i4gZdGdk!0s@5O?-^)HNwMo1DD>Yr>f9e0AKZa0>X=SeCv=K zs*MMpt9Fh__-J2`!mI1^eF?bz_*l}5UcM%5JWbCxnP3(dYd8Fi&A8vKg7O{K^P|j` zyvuYtPV$aB?sWtymuOQ&jo=SdUk&0=DV!h=>6hu=vl{WD|ctUp}1^Q zAI&U#P#lPxR^FG&j`p)8sI-z|^U-`%zpUo4x0ixGVb|!p9}R%WkCZc+T~XjigGKky zXeQv-&~)Jq3kE&xmuf>eP<(b_JvroMTL$1fqf1=+ue{Z#<(gAYMzP@BmlmRO5!Bz~ zw>p=b^-nhQOD#9@Wj1lYo4BQo{Z>qTctg(uo* zCAl3LkWt?&c~CqIuJyLznXMw8Pv>xU$HZ<=c+M)W=#&G(zm#<=FvpyafvwrLJf;_s zoL+e>oR*VRP}Vv4>U(OzG+R?c$UyO zxN9t+YTgUw`MB~84(VtkeJ1|))y~R)>?mi29aVbi?qHl}N+){F1-LisF5sWmhj+CT zB4?<#j}u<8ojj8L70Y*PczLo>h#*Jv(W_#+Ol#a7zlpABYGZ zB?1my@!h0Z$j%@*{ot;EA=1CvcI$?^7lXIz8MtZe?KLV*0wD^f7c4CT;Jil*eo`XJ z`)XY@vL@AQ1aC<7N=rDc0sRy|&dIy+fbFh8(709}*tMZ&U3D8hY&}pMJD}^q+>^_R zaIl5w;GlEfwx7%Ybz^(}nBZxH6F3;Qv+Vq{RB&IQRpg&_0q)p6extCa2N`YZwcWq` zeLeJ=ZzZ^gB@m8ayNy5fkgjYamKW!Qsf~y42Su=tv$2<#;29_#xMpGynguqm^ZU5n zRQqnMYT82TdsLdD34b4d(~!`zA|b%y;xF!%2-KR##@+s_xfmVEl}l#BJdaQBs-9ZR zT*b)O({|EZN?e8-SBS_2HB8};uMd1rC|SWD0oDvLd5Pfn^Z9#t89JSg1HYe7Ra~w& z&Dt71ks}OXXnOS5^L}hW%rLNwjVGT8x5YozhJ6k@Y0^arv=MJ4-)>u9wpd2MGN`iaq|Hcz+Fk>HkFC$ck=m| zURP`|{p9P zv)gSKJXMu&RopP&eW}4MvxpR|T=D0#Jj%Vuf2&K;4K{q{iRt&hZ8_16v-Bsi@#G_N z2U_hlv3$5T(>AZT#?e0STao&5LuI{f&qv5YCimUw6)*ABWXr!SZ;QH7L^cKOaqkaNzunUI&i5 zqByMqY0Wq08Ykeaq|^ZqMgW{6S0@{_LqJnY8&8{w17ucx8Pb00@8ijeA1o!>c(C=I zj=QU8tma_raHV|u!Oz``>>NX39|!zZ?0Wc9Gq+x|G-v$#eKDLy>QH50?0ona46=!= zlR$)d-ExF+Cx|okJLeFY0r$U3)U)<(2m98SYQnCi0>YOEdCy4If}<~GMmVXOfJRbh z!~Ho!C_&OCu=F4Z9w5T8J6aY1)rfq00t7pOV7(|`-FYd%+~M%P_01Dt;$|X|KxG10 zICs=lDT_dx=!FwgirdGRSI|*8%Sg9@#{I!(#nptMF-u(CjXD>Y^ga2=`Rf6Y%f8lv zJ+vIC*orqFn?Ss+owx#XvL$t(>^zIc%~K4(GT5-x!b z#Pd-%4@*=uZ^LKBm+D6pwx1uXwVs(9y9>)#QqH_|MOU&03~1RA>&*KD!b|qv?TakZWD6VU{RF3pidY1Y5xug*IUhxId-s>oS9wy!sPM6;Sj(^dz4%`1G8mMx{>;g_$%I`=*WgJ1kYDH&1T&Fa95A_7fAaEb$GZ{km6 zFPHG28?km!fZ_!cvrBW^&nrE!_kC&>IX16nnoH!T*Elx5)S*V=Y(3TrtgR0nt_bx5 ztv+SXR@|z<9^$X0HzcZnCmX1Z%CLta_hggry+ip;!_+)OhYKyBnPXyR6FaJx>rTZh zuqKcP1TXg<9dAQ*HU&oZN|wFTd^0noB(q=H!*dBMr#||u; z8O-1HPXMwWj{132Ibeh>nv&Qj2Bt=pV-Y;A+*u+6?j^BtUgW(N7 zcTa=O8kl*{}5x(NRy~yv?SkE5Br;mlfp&{pfgoMI7&$`EU3JMpGgW{hQM&2v8An*+&fZs>ngES8&U@#rCBYsV&Vh%*$^JA-jhe*N2odFdLp+l#k_hL;0}+izT|pg%J*DV5ZlnHZ2@-4s*T_q78)n zPuD1O@A*RQDmx+ii?*PlNA=|X@$LJ)5?8MkMCM@eKGuaXskHw?oXEYnm2rd)<*gE2 z_BeLd5$i|%srjB%6MxYRK_lCE!-9c5pcUAuFILjo1o6U(j?7bzCxx)4pfR z?t}bEOLeE8w`&Taw4%IZXfNW0>QB~Yb8^f9WBrem^f-~tbLyrM7-2{RcYNPhy!G^jWbP+Ysy$I&PuQ0T>H*<;K=QSIEFIq$j0Fx@RKCgv z{Y2N!&)SrNhwa~7T0ciX>s{DF>wLeo9i!#dlpl3LDxQw zi@|BWu&Fq`XFW~_Op%gVNpSl@=KA5j)ebG_)gdY`!siUNA1ie{cJhQG8m4^NX7@qH ztHb+ub~%7SB^R$~F?-;C-Wn&`#TWjVyAyMQPy>FxU$k8P#TBv+m|bGQcY)>gufrd= z1%W4Vs!ng5u>bErwS>d7KMwBjfhXlWcVDn%1KyEJ-?@mMfb?naXJw0afZN7LhfCZB zru&*s96y5WB4_);?;I~(;c~@s$?zC%sJkp~?bv7mSHI^c47oXP^?wi{QZ{=F*_)C~ zeVXoTK7iX`7v9SbEdJt8&3X@SK(fCjrvG!DeI2r%&akHBs zQ+rG~LIn$tJBN0=1LGk@zDh#m?<~mWgX0Pgz>-nV=F|$x$H4V0gxnOquq-IDE*ol^&S;fgUmB zGlq-mN;`%85I&^2^5G5oD+piJ;lIint?db)t+{bU#qvP4Hd=P|_w;bVPTK6`mun!y z+1{~iNec|*LcZ|p_BJF`RXiwkZm!` zQU8h)$lUjA?a1Q+;`mu_ihB%T{eX7N@f|!{=Z$~q{b8Q{F`RfX5aR_A&zIVK;mNMG z`><<=6pK<3`Ys@S{(!p)dR|G2OM>t3iGv~KYlc>=IxwE!XNEh91%6;VQ~lh<6mS;j zR{HVsfc+nD`H~C*nDM^8PqtDN7N4UaaN|{hc%RO&$1oxsV9D`LM^z_zIL;K6grkV^ ze%?GHsL>o!f#SEjD{=GDf1rEV!Hud1`5nH|ULpe{tiU`j=v~7%O?a8$>x`zRER@;% zdd=zH13*M<{ZrBuYj6IkF==$|>U{SRQ+J{>v#{f*IveIZVy}LBGfpBLX=IDrd&*?~ zZC@`c%NeIl^$8F-F%kIU$1SMUTli^U&H;Y93EsX93V?MAGR1zSE`W%C(dg58WasOj z=UrJX4gv1ZnYHGE){8w(pnj?Q$({6B|Zl5vSsGAFM zYF{{QA)u0bEek(B{ePda|a>4gk1XyQ5+>)BBttwr43XcZ5%gV`g`2$ z|5fW3J9%OyNF645x_mjHQIQQqQqTWG5CRTgJ# z-OK-KMbxtR<}Oz-*OOKyw7Ic-6^cJRNv3en0%pXo^^^=d!OiRZKCV+v@KiFM4*<2L zBR2=I{M`T5@HGi>~4;l&giU7jQjEo#`f# zGMMI`rV6Qv00*)Q$-)UEL9!a1w4#9<{QZ3E@23_@RUF{&=NoJ~IJ09{47f9&p2{VT zt?pSy6uhuv^Y?oO=H8b7?S6r0%} zE3`HL1NjUZz;53#^s z-}mpWwvXT$+s)gU^N7%!E-=2r)^)1=SXYolh1T8kQqq^l6#xFc|EY13t;brWVe??) zY$)-oWglSV#qWoY&M6}N^O=OwyZfE7^Zrw-yXh_^n7qz2mriEUo+$_V8bf0)N@xMG znVbB}xEi1_>cF}~Jo-)q38~!8MGOIHLiU-dv#8$2x<>Eod1)=co0yXALyPd}ryi?M zi?g6Q61ha(i|dW@pd;B+Vz=iLKh36&@OfGStCehq~IAglY^JEzJfP>mN4buFulMtb9km=Qn03{6|mluOIg)<44zG0 z?SB2t7kGtM?ypVr25%pQnPdVH=(wvjtZ}wu+w1!%(X+iC4Xr?5{N>7L(o0acdSX@U zfIejS5JO>%V-6Q|rboqmN&uVI!2=#G$ZiyJp1Mu_r5fO$I@6w1&I>Nd^$s34wFf@a z9OQ8mUR(XM2op8fK9z0Fha_Hw#*_6n+hl7{+ zOM=n=k)gVP&pN9Kd}330%%*f0?shE0+lMO!g%rxf_p3<5SDpJyWN(m9p`&X){xj{d7o9}C{S4!a?=&pa^O#M2Sd1WG%S zr;B3j06G0C=WKBzV2hr&ImDF<6b`*Nib;$Ct%3fh4%?zQLPnu4vC!*mpzl2PIr1&q zpS~ID*7uz<6Frfnq5!ed7snQ17|TyK9MvPvurbMahl5{*Ys+z1{c_ z!fAc|ZvEyqSu%VdOFR;)iSV;(3o`r`SM#@y&l)-DkD0{58G5G`*ML~~^MOF6C2bV6 zxPMkr%(Mnbw`h@_#dCz7lZ7{5(`oSeM5I3+l*-3tiDbd!>pcFEw-6p#`Pe>XA1CA&%3i!N6{;Q%Tjw)Wxt==1 zxCG%DZZikCi&SZdIMM_ZQ}4bRNL97%bwTq{*Zb2L7OzoGS-|>|8e3n$uPq^dfe(E* zT#rro^wY8Y@PBFryyA}&$0~u`E^7Ss1v@a&=D)(pp9}(fSkDKx=K_Bqt&zBCe^$%Foj`Zw%45$-VHsEzB_-5H>HM>MbaHMH-bcjUkmK{14bq{?34klB4+c6UWo1Zm#-_%9^`Ov|c>uXKP@L+B*cMKE4i5=UO zQLujSIbe68EdDf#{?|%g&4$_TIop1I|JSW6ujqu_unK7ZmSCEL>i}X`bxz&(vP1sz z&N>P*YV1Dvf3<=?_`mIEw=bRUW`2BoVOzPo|hlJs!%rH6UYuLQd|D5+yNQ=uX zHXeRN;n;ODLu@?GlB(*|w>=0?b}0P$mD(C5kRu=H`T1c4IBR4kESDCsHUE1C$(FtY zh^J_C{s*7jSaV`SxS=@bKKtwYy7Muy`CA_rhXM!d z)*n5<+5<+v`N;``Q{EK9e}7%Osie<@6|uxv^Mt{tCQ*M8M>%UqVl^~HS+Ag}&XB23wj(HK`~IJG z9nOb6C6r*Uoc8GHD>}eYvR>xnv^gMjD{~*PR|VN0KP(#yqwnO=%HpkQeiOhq;q{nU z8~G2qT@vgof)4=|Wwq8|7V5uSV8Qbe33|`0E2H8S%?6|SV5&cspxxfsHF@D@vP+1HPj`hrwzNXu{ zKV5tYx;@g>K;`ThBhe{(z~^wlbVgkhw3!kp|0prq>Q9!7BWV8u@!Ed=a?Af)I141L z9A6o`Q@!nZM)XOUTv^5DM_oDYNW-X83ve~4g7s>A!OMz*8oI1XAYVmKq;FCQZl3U5 zr&hCv52!nnCAknT$S6-@w1>w6mYcFKaysAJk_$WEOPU>P1hw-atBbqVDtu*p+;=*0 z!hNbl9;>0;5NAWrv;7tyPTtV-&wq;#?*rP5)Wkf{N4CWv=5^z??>8ai265$eY#cs| zsaEOLb!;5I4vkQ4de$X)Nn#Wq9O0h*en=n}5LNyxu%JNo>))B) z%h9}n{Ala@n*GnG+CVVH(50qfTW};km@m0J9(?>L)9>V3)KE}6p3R-{&8<@P}LW{WI%kxGAW-F;lzfDaA$m^P`;C4Bg@T#k!Y}4 z7q4TZ&d+AOf=#|GC63zUqQTBvoa?scmB)YCYif1J0BPaO$1IR z3SA0?;%46}##Do#vHW!4m8+FNj5U<>;#~)rR?=tSYZ4EIh@F)l@Qu8EK` zH}cR}8^U?V{+t><x-{^0Y!dO*$xQVi~}r7iS;k|u|oL~dJw2$R-+?cVL@ncknvxnSCd^`mL@IXE6& z!14+V`6cW#JcRt{lgo#8<5+D!-^n{jh^QjC0vxosEwn&u2L|HrN}k@A2>5XlXc)qB z02Dcy_r@g_UdK&vj8jA3=Mk86pXOo?#C`BH>FXfEG4AfYEF4*o3Z7JiJoxYw@u2m& zw*{n2ARJ>S-AY}sWDKy5I!3zO;tcLTVtC@h8V8;R&+=bP_kj^~4*n)T{~vE(9o6L$ zwW|oCgs7wlC*s zyRO6ezPs-H<9f$=`OVC`XZFnA&we)Mz12v$6sgDA0%fu@>wL_EpzIj`Xwivcke1QR zC*`h%&$U}Gmr;cyF3o}Ru`Vq4)fMqKE=Omf`jj87H?pwYAJvPpf6-hBM4GqD+pggK zTCh+dnB+T_dvBwX+^5;a(2&W$E=aotUeyoK@SjXVeRJbfmQl^X`;e4Hu`Uk8Mk=Rj zTB^WzP^V9DT@Rn+Oc(gO+~rt=r4{U9Z)ko9+FezBQQ~j-Vbv&hf@n3 zL*N|xtWHwd1I#*^q-=XCz})qfZ`ajIFzHR`4ajkV$VpE2w?!D=d79y#sLw@va7|`% zu>6GWEceyET{A1og!npgLlIpZry=Bemzdmm?c)&0HKU)l4j^b>3&$0MUlQ6`($d;| zztUpf#dFRg3a3*MFwRVG`}EBn0&3ZP*G-lKgEEgxmrw;Pxxdd7IAISzxA>9IU&s5f zxnqkK<*^%JQ%9*F5{G$=O*d+5JKoEH`=5W5upYyC<#{e}jdRf9eWv?Sa>XY1CSVK> zdUur78lK%LIo3Il437iKY-?mo!0-E`t^AvlfV=(6XWJ}1pVsG+@*_&hKrUsDY)>M_ zwHDn^t^Tqn3%HC6%!M}M{bbI{oOg;8<4PU;uI?K;61kdZbR}<^^K$-|75@5V-rZH6 zz?Jux`4(2=Kv(K-E#qTJe&cgi>$fi3Ay=L?m-kb#=h0V+B5MI8#ctm^(*R=IS~{+g zI-`q+!bx+@GEm%9cAI#44$4$wc4_HNLi$Y|REc*nUblo(A+C{;)DaoUaN zc#bt*OGEFTOeHPp;`S=FMz=^J3s#@M%j|jmH8K{7Jc-lohzmvBI+g~-^?rya>hZg{ z`8L=$W5H-~#1@&Z|9;!$XCjhvpBs29pMu_=l739*kcQ-+GBiJq#rOleLoOx(2hvg7 z(U2&{D7??7lW{nlJ(7oLc==t%moQFyB>siby}#j%?uUvSUu7ob=~yZG!?$Agc&yRIK1=eJqz5=$V?X9bhA)sH_xDb-RS{>6NdNwDdXT=hJc%7hCji4emd#O zY4D*6f_F1jJRf(3JF{`@!un~@B_8)>=C5<|p0`%_&C@MW5RD*3v=Fwd3LQ4w;7t*R zZrPnRqFTann697s4t$wTh5Z$Qc}eSWzQG$^ykrx1@w$@|=?>31k_vt)%zdJcX;5q1 zZFEJlAKo4mpGlT0Knr{4>94chgJ6fu{YS}j!Br`UTg2=(q%4TFy$t%ZKQlEe#k+K| z4@MX+o&42n3Ta6jb%|}mA@oBlV`ny==g}=`iK!B6_b0CW-9P=mzaEQF#Z5v!jC0%c zJsSeL;S+cA!|6qFppYjqEui!TS6@%DkgwQJVx{9dH&y)#N~c>%cXQ@Zw`adT_FnlF1Ep`l%8(w zIXn+(lV`-UISBn+S8q#Zif+c|_AU2>cpNAR^S4-U|3o!%eeL7;pU&4xS(&&0SKqgB z!-ZLg2ZX!>{~Yg%92A7GPZUwPgSyAZ)5?2uLI2hE4g;GSV3&Jxm0BVbT)rNCqWrgg zLW%QrNZw#A?0FqtoS##L@Avx~dV;u0An^VMLGCuJC)WpYe2_klB zLz)H!0WZU--R=MrRa2aMPcW2vPnTEsm%`qY4?^NXo58~Lwz4&E1SmMQUfHRG_is9d zJ$rQiIxlDzr#C)&js08t@de099lf4~4(j_R>{Dz5ab~&0~{Fr}GC=2CGbO&wQh2x{F zRJKKiG=-qe`Ha#GbeR7sxpR>0vrj(q{7SoUb<- zpEOFp>Q>@=v*XgQD?N4vXp3syk$1B=u1R!|f3e%X91Sdue3ju?^We-@fBmCIe(YqxK5SboM*kwutMl?Fc~)1T$~a*f3cKdWHzXMpfC~RXORW#l1oOE@xkrDH zd-N}IzxsQBlKYkZF}gjx7JaH7uBo0gl{|$I)0mZnzC}DdDdKqa>0tw+3(*GSfoK#` z((Uq7z8vi~elizrScAqt7N-leXrgSgCZ!}XH{_^2v(=2l1<{{MepkP>0bRNhVwz84 zjYKuPMvgQ^A)Sef9AoK`Xm?@ykq_g>XjhS(+~k+WKg!uZ%UQRDr_ZPwP+fP47I!c| zdKaL%uS&rZ9kCEIeLiT9TBkijuQBJM`7UjHGJVWfxlO)}Y_hft*>Qa6Bwiz?qDnQYhSEO;P?%sTeH4-Mj#9wI+H&C zMGEux=9|VYcI*p4mxu1(xHO6Vc}IT+9(lOI20bjDB|4^Czvl7YOe%U;^qJ5vIJBPh zk>^n>f_mMELJ>Q&S|psfMcZG?4gIhQa4|P8L&m`Z!Yn0a=)#Od-h(ezsGscZp72_{ z4=t4KNZCSehRz;zW=VL0^RV!RRil7`|_f2J>9#Qk_v`>oC0VeRtu^}}fuGXW=>vo?fsc}W`kzj_)lM=+sC!(t-XBr7h|uwo!=o0(Bk`YbS4?qkGC7 zpIv1X-y?aJo*$sJP6D+C>TuE?Y=7AGbWSS06x(4Rc-y=jWQu~Y+}oQ^B&LJBdtSoA zOahFF*;cEi)gt|aY?TLMt^c~m>>EFy6Ac_OZTj|>Q6MV!i2R*xJXnWSgrv$~yOplm z*1L|6qTuXY-ml;p%v(DDOh`n+A`PmaCv=`ZitlmtX}fC6-eJ2C3y1O6V=8~f&)h!F zdP*c@?faRu>LUZG`#}Wldu5x677LRJ>VrgLs-iP6{%wk;jM+RmV$Hv|(m(G{(^<58 zEznz6$hX@Xg?{pxj;Y$EBY~T`p8--53@ZRyW zmk>X(kl{h$JXDTU&#$NQ5^_c{2j5(HGM$WCHIMA>o^oZs?ep`k8H_|>;`#Bn#R^%c82#L-$CP+6y-?!#Y=B`R*B zMW)4qN|6ZkT1TeK<#i;Y9jF=keqRT9?orCks=S46MSt)18FEKqpSBA!&!?gv10*S- zT89ylc3VyRF-gcCWF=L3brFPxm43yt$|8@dOO!)}gn0@7RE$k#pD0nMpkhWjwafWJ z=n|=G!=R)MDt>;T^18MwB7Vn0pPL_qoKrU6=PuyJ=Pk8X%57|6h=D)e_-EIXCN;B@ zp@$7sfNJlSZ5%0fu+l!x=8Upc58hvQyljo0w!H-Gy6?-+daONu%7-iZ`kM+uo+A01 zoo&|y1CVya*!)n69&#>!=9GLc61g*KN~XI-AdeBN4yD6E=)|3OA2&YRvHBhBm`Y1_ zS$Lu0h4=$5A~;TQ?2_50H+xeNYiDMHVj?}FAENlFk)VjK7B=k{C6+)#9C^PU>9YYp z?S82`QtXeu#?|tT?5q+@#dB{a5y1SE7sC#+ehE-RhXSKpcJsxrdAuy^QwP}i2;(No zJErIgjS1r{^uO%Wu#rka{Ncn$MdEZ&+{s+-^_xPFNCQRM#oPYq_49z1%2sp4{5;5G zo(|)oT0D)zPm<~(7Tp)2hj(MVOXnuNA=*9e$j9w$^vhWs_h%-%SYfHX_WeWdYeUc5 zxN`*SmGxK9p=2(?IH%%~#mtFv99MMG{p1YaTr^U&c79hUsf!wJ>E8|%3qu+k%+zui zLs0_>??iQlCFXSrnA+%w3?B!WaF9D88U;>^OlucZewab& ziUH;cHIz2aJ$S%SA`uImnI_l0kiXR#=bhIue#d$ET6tD9KDQ9@Mi1Ku zS)iF08#E276&u*d`tSME=%86e7tynkT7AEd z>QO}gI%l*igj8H80sB4d6$dn~dU>K3+;6Geq;P!Fj-D|F1793hPOJHq+|`c|XL0{{ z+N=FdnlNcNSN)6E1(K(g+)NKxLCwG$=2#aOc;xe;o1O;CPwe|RwRAk&TGrgW^AvaR(^W>S4k*nY*eC| zIgR@xwEjw+{|StDsvXygQQma}4hFFK7RM$--7zDcQ%|BGK`{HI|LOl82O4whWEXLi zDZzWR^s>#VUkKx`TzSUmAB*Ahbh%p!dZ4=m`UqUs=AM zs!$gV*WV47l2(P0vGZ+eXK`M;hIpaRci$@kXG`kKU}cOO6PkU&o`1s-O&A3`GCaoX zu4QjVQpqp;y^nHmC>D(CAnHAOPU@L+_5bY8r^LP2_MO3hx8!QLcH7xK4PDtAGwqLP zqr?Ljwc<$}QK9$yJ-3V<5u^8b|J_zq)WgZn(6JHc@u?Nc{P@FO0=1h2monL6xp^98 z7!WG%h?pK%JmI(~w%R`D-SrngFXMH1e^YOA`Afn)CM(72VEo}tp8s>)=>N8)dJOHD zZ`XlmC#!RI3HpG(hMS-Jv^SK|wRF5xG=!n(E|RR)|IRnbTsGp%G(yP#`EO-ReZBI# zHa&v(nl`+jjVe6>jf+EeOPid*V=;QNQz8gfe&?U>HJEIl+Hk=RE)-nLIalEDpZl>l zSBse~oDe6u|KV0~A5}t})xVXP`s%}#7HS0V-ORcmq^Yk#P%l^d=1aw##qzK3VF~%M-c~d(GBrLoCMAUf!mdM>X}|zb~c0QyQ0cLOXs) zKUrV&OTxT(lG{(bI%@X%yk`jQ{U6Ug>fJhs ze`glba%vC#cllc>*R7+t$lVCP+b^|A-_1`6$8D#6VgHW~yzj9`f8=2Z{@>@JI(Sg% z`=~cz{Gv}Ot=H5bAAM-OM|dB-lKP|O2o>Qu_J3L;|DZSN{-8JA{-HOk|D)bC zPJ6E-61*EsF9@{kzhn-_gk9@0#(hEYP3YGS@Sl2pt!2cM@5+WiLb;`pT^IK>ig4X2*-AGQ z8)2S{teQPk=PcHqcWyBsBonGfNZ&s2?Nsv1hNsj=<} zNkCs(d-ON>6{Ay}LEKGD?Vup?%X&x1-_~2&dX<|}58%p_=N@%oCCDl|{!~*j3g*7& zN;75TthQH{%L<8!!G6udqt~_v9Em~Ib4DDdzW3MM&kB;VmjT^`IQEBrVZ9$N^+Q(e zorlziqv2%Xae+;V-Qc(QevG}k2W;Nb9moqPK~XuXg{J%%SDryIdAwk zKK$)=DYex%24IZ&G&0&Lj(#XTh%NsdfHn!9Exkz*j>vdlZ%Ix|fz!Kpmq`+1oKDWQ zEYXC$$&h~fjs0F3Y?sP$Y&Er93P;`<%pczguKl~n^t?-|B~Bw)mmhr7iS{`W+T%{t zF+{lfJ_LUkrz)GDQSikjaxj&?8y@FOJk2NV0i%&=iw(@t=&2n0o_8vg(I>NmtLi`kL3`huq?zKe zgg6~q$)i8AL$O`QNb5wj*r-n`Bg67cgDXO z%uZ}7Ov|WVtxwc(Ryg2V0(3r%Dr9f4UAi{pyV`|E7zfHgRq6FPIs>NBg!Pup9(dJv zyYU541XzuDG1rMy!DxppZ-a0km*tzWNI+W$_w zZuPnM`OaKE}}T= zbM07GE@H_Fmt2&~M`w?+T;OlSc4PhRC(mse&O<4uTR5quvD^`lD~V>EC`V#OUxN6L zVgIe5qq>LKH1?l==PctZxtU6^?p8{X&Ph$-k?u9G3vz1RtxLTr1nqBrIu-d{fY4ta z>32Hvj1HEw#EW-n^=vZM{Cg|?+ioVV@R`jAl-(cP+iFt*@)RxMF)!RLf`0`f zde4;PLy6^)S$M2G4Q8@`8dFwU|&TWADC zzS(?e&;Lu#_mfG@IX#9qrhdQTpaOzI4YMh$??Z#g!DyZJ!(jFE*q}h81EOdt=hT!- zMKWikh&#$s(QM>J`HtwvP^9xpY}>RoG&uOsbdtpb_xs!AIoa{h{y+vz`O%#U5Lz}?>flK7l! zYJ7IK=k5@kI$X9(SwIffZQl}E)D{YiPl$$i!YY!@WT;(WJK8Bbf+iZTwrLr|v;E)qzUw;C?vtJwE6s zRUVQGiGG_uj_)r)1=nu!-OffY#6uRp+{S*LO>u(^k9i)0^!d-WGGja_vSMHI@oHN% zpv6?ww8IrWX*T-gyDtW2+cr27nc{eh#n=5DMCYR*dVBWZvsc*O9-XSXUYOn$xh4Cl zl5AP~cZoJ0)Ol7y=ug?3xs#V>DvqH3?fAE^HTQ>sGxnQ$#nD6%G-KL9cob=vmsj`FQ$4OFon4^1e_sXc_h<%|=$?}YBcG9BoA5I@-XP)h zkIa7mW_T@O=~G39?_()$eM*s57@vQ)Ky2rA>tT4W+d#6zHUOG$_rB%yFN5Jhu@^ry zTflPc*l7pt0vJ?Gq~QjwzMw7`N(W+nl0`IRzb6ZaM!leINl}9 zu9B85sdDw1rPe>ZL?ItW*pB7?>U{vlC5C-t-mwso9bPD5*#KXIAMB`6?tyE2$6mWV z3WX5LvaON!_`6yD&O-^c%lWZZ>Q{Kf%YO5guGX*cv#dO?#F?$=^_v@K3qIT3hkc6A zF5jb%M9Hn+cd04WpilBf!SU{mNZR_jn82AL6e<~DJxpD*I-drKBysdFqmhZKPH|gk z1J<+T{KSuP%8|UIMeI4Tveo+czijVk<}|N9Umb|Zv$ick@A~(rg~?^3eVHGqMSo== zE1T+#`!7BON-pyL<9kEUI`ZM~UBsnm_n1L}UvDX5lI2W|WhzIsepO3J?O0#uJ9Y1; zI9!g{-0tiz+kpM}Pcj~Mcn#E{kA=rSAG?Fk%~FQu&3A&Z{u%taJIbOYn_%6o6k27S zSvt)JYhD*`B**WDxDxV;FHGv{h$|BERB^l;n*aF;!}?v#{Q$ql z!*-OWc`jGsZ}CE7?R|-MF3oV`+aCLYXBdw#l3HE+#Tc(o$*Ch-Vm>uMe7!cmVnD?z z4phBk_Lo+A2|+)(*{#dE8U`RG>iwX)&|~P|9MDEZ+Xm^Q$tR4=v(P@~l=Zhe%Ah}g zv!C-&6bvN>b8EDv!VZ72>m5y*kY!c*nTAatSx7}#`}t$i~NBiB&`2be?MkZH$5Sv_D4GjJa0FdnMkI@y2`tG!o}-j9xkl zCQTRjtZ!2V*4-h+6Qk;@?E_AT*wC=xbMvNT(VZIc`%$h*qrNNY+IfcbKMrecct)r% zVnw}qZww?r&^F?yKN9W1CoVu;zBmPV+^BAuZApei=M%xoA?B!q%+V-?>Ei19wvQ&b zN#0#WHAf!a{uV8{T5sfR{B?InHr(CIlKPHxC(;@%4XURVMMAqXq~az4H4hgiUP5|c z)61VTvxNB%snj1zi(HyFGsK9EoFVtziS%tTA)S8E>!kxBln zFb$z!ChJSx-qH+0dz_EkvCTe8M^}F@^s9W7WL-9F3C?Xfa@`*KdG?!&1*d?os?le) zktCo{{@gjaUIjTRos^(Z#eNMxYhpJ#QE?Pp>l<-$2=kph*`_ka9T*Ih7FWU34*Tnj zq-m|l(=p$1;Nt7N^>$XD*|EBYPQ(QNFWJZg)g)I91nU476n%cr^W z)BZ?zdiw<{Jy+zo<+OnyKjv=<`9u}>GRPP`?Po|`CynhgR_Yrs8MS(#s;@tnrbV$` zkhJY-k$^$q>hspFuwUboF37dtE^g~qJG3;hy=3o&8>k@k0WD)%97Oric?7muAW>-{ zN)>8%v{{~f56_SXdeE52cFN%va#q@~p_UQb|_Sx|Zw7)c2 z{ZRP=2{6v%_LN+EetrtT_|)2{-Q}UAcF2Y6<@;!PGj#aHlCMCgF(NXk=8`GZfx^xZ zQW?j!$B)r9dS;EBBjg7%o@{8UKT61-Qg!h)=ZPEGPTz5rTSUN^@clm(7Kzvdm*FS~ zynj#9iQgQoN$mCNraj=Wwau4+lprYF%O%%n?}khz%5L2i$NUop*7OJFW&Dw^#(in$ z5{yHvd@r|IB*Gh*!VgGa9mRae4Hv}o&uzwXFY9NS%X+{OJ`?j8v~lTz#P7IA7;>2L z`TWWR$sDdPI?#c6ufM|DjG+EF4$e+A+bhQ zAsgsEAI1K#+6&V%uTNnv0NL5=qeQkTO+!r(6 zwUWH-3(uf?5Col8;ymD<$D;SMUVD^6PthAej_qIHA2e5}&V<4`w+}@gtWmIs`-9Y? zj2#G*npMA|ybHa*W>_!UXQKk9z|e-iUf>GPxqDV18(uJSb(d?lf^R_)Bm4AixXhT) zIhE;xl6F^ryCa;0+BG$)&VPwTc}nzWc}ed;KH1{Zqo3}eaeBAL^@238KZslgkEejs zx_M*!5m#hx!9O#VvUdJY4~CQPzialwv#zFvv`f9kj32c< zT2})?BF8MZ6=6KWWPzk=Us^NNSvb-~^Ql3O1v|9bg+Ze3(X_KnajWf}HQN?1H)1}S zOs|VClb>6o=L5dsxrf)zW7t}Irp8pKnxK7&rTZe4S~G07xM0WlDg^w;74lyHb#EgM zSTO5z%@Eqej-G3CW2k8{LQdavG`uH-c)VmYB=cM-pJqKgK^87 zVxKD#H+iGJ79mZzwsyOoN0C_MtSH7`ug=5XV&;huLVUR;W!h5*@h-4=-TVpmh60xq z%cE+N79jf>>ZEG-*ZlDFDRS=*L_TaAz8rgic^{?4w;qY2_dwO-r|9!du^rK8$T8Ao zz61(=i5`;*VO(Qr7=r=b#M;M^)4q$}$2p#$JSsQV0n0(~5J^{&j9Qe^C;$9YKeaRcmFXFIq~Z2-8DYUyD^RcF;S!BAM9* z^(Rm8{*zoz_eznw1axmaEuBloyg#k)glvnvu)XrKuBQc0TPMVy;7$sbcZCq??)Zd( zG`RNBnkAjC2*w{KlZ4R30?CynChu)HUWrc3T=ZmLF1*wxJ=mdw{Uck?aVCDW&j9}` zRVTcNa6J2@ck=LDA-2aJ@uu6Tb2ttL*B`&EajF4!`%vAN6b=MQgLCamUkV`V*c1te zU=<9ujI>)=S_ALYxzpa-SkI`+^!-pMi~+yjd9HE4e&_#!C(HRqR_d2|Rm-YOW&ZTyW>IURY^&HL)@#dh$P53Is{4yAa1Ir8u=nQICfaxfBkJD-49KDftl z$;YCLi8Z4Z3Mrt#x}z?%^HefrDw=eizhHPd6&YPry_K8s*S|s3Chx!F^FvWM zUvP6s3YyW?5I>cNaZ+bV(`5zta*)CC#R1Z7c-;n^OzksJ#&-W_@9N76Zbu>Zl8l>T zU)@lwgiYD&8!o73$Rp{5yA9-=y)LFXO_=BKPi3}$!#i(lLc5kTij+!AAk4cOHldeO zG=b$NAe@2B)NJi}#Gb$YT1n$q2b+bd93S?&0d>mg_UOzU*p^2pm-)6FSZ1h2%Gt8e z&%nFXpU&XlH!W?Np9v{Pn;GS_`F-*FkQ2Cj&by%qq%+x=9LsP#h>^(iV3(uV&SiI5 zf9iBjGMwu_Xl|M73(NclAQMrdoTC?pTHicrH=a?(^K5qJRW^G&yh&>1dNCgeRkYjh zD4P{SX-j;xgnkXY3~Y?-{1JyfTZ?hM3&wG|?GJpcID~RhmX%BS7HxbV*)!*EHvO;& z+}2%K@DRcKrsSomlLyo>e*_U(_l=Sx`CujanuFUo1wwwubAk#}__pYhBsAj2ubDfF z_Y28FU9SUYYC-9!NxpAe15mu`EQomH2e;NmaxmR3fhZN57cwOGAzA;z-FdMhMBlf= zN?EoK9++8ovo`*ct=@ z8A;Ky=XZg(b?=Z*u?OTS8t!cjrfYgP-II!MfVQZ@D!<7*nVBBv#NS|Lqd zbac4rA~>n~TInxFf$PUDY2IyVtL=TPQcuhFV7sF1J|)ggEH0=z^mI#=uI8JxyMC42W z5}doQF%$J-H2gu+9~(?i9kEnrf< z>&}CHEfBxSqws>h56W3O`P4EUpCdY+yFHL-aYY+-RO!zIVL#3{)7Ej%gi?6sp=ET4 z4d3Iwrumd173?R~U^Y_jrt5(`_F@{7gYNJn%(4E{zD&qCW5}+sT z`THy#Y#(-2AijvYioo75+lMz2?<=DUx(6)PvcWp|{8ha6ar4_S2H_iis9}{)0&L>S~$44??MxU6WDICZC+}_c!(={ z!{TIANw96b5bwox*l$4oJKra0Eaw|rsbA(*$L)Ue!@;sY9zOrJ+r!Ge{`RuIXSlvo zGGDM1jV6fm+G(etw7bE<7w#0T&Sw)$-8;AxjA#tUnvb2u_E4Hx&@!CJL@!5!cHg7L zco#i-pRSj_n2-H}iIR>>Q5xdmZ*-6EO-1H?jN}6x$w;(S&${VtD=6zlz1gO93zbp?t5nqU_N$Bygv=#N=^0>bFQ(8WF{MoQL=5;Yf!xq!K?5?*z_&zNjaX zkM76WZ8$22*KK6M_X6@_j8kFGIHb8zDHg>E$$r0LYKz#y*_%o3Xy~4Sx>0^duMZ4e&l-rP#tey{!s)wvBz^ zuE6{c=aLxdc>cNx`d>(5AEE^T8p(@~DumRL~X+49`ythGjk@*i3!M z%`GDeWd~mTxJOBP^?f?8;V26KPIxG17fpCpQA&g~IFH{?szyh)NrQe)v=2yQR1_qU)hCltCxJrpqb+xPOVRP`wZ^@p*gh$w=H2RcvIhD6sJ+Wqbr!L^ z)xB)~?2aPt6mOgu_Frvpmzg~OD+sTD=U3(W?sAThH1)RSf^_wo`^mIz;au7KVuJSX zRY#J#ovKi2d@A1sIbSp*%Nlbcq6Ue?jd9ErRU`FDW7(^;#lYkwI7PXD?Ts?Ol-Lgw zr$bfI)4Q9qa6Z)Z?$4}!4_gsQywi)KZwVo-m)OR|>PG*aEh5)_u?A_-N3KoUV|}49R+<^Kbn?%S)g&FSL$&J{rEt54V zC^mt4I>c#I+I)W^6vgB-enh|q-F;S3;Cm<%UH6#um*h-ET-WBsr6oMk)RQZMdb{wv zNl>axnM=i^yLq?FGIcRNh^dQ$UrsLy(dld7y_SLHFrl--JbxF)g?(^vKkNV3c}t4O zB(amF7#(2zviy-fw$8EZ_5CnQR5&45gwrbNGC+-)_e>`-liQs>0C{>xIu{iRK2O*-Usn zCDhGdHs=iok9$U^{66~u(cGRLfl_|p{_9Fv=Z6wBeK3)(^?)6usXQ0kaV!j6T;kuD zJqrVN6>a{^Cn3-=?n!asGq(56*K8f76$u3nw?`yb#%=yKU!M}9wPJzqNj4cn%HQzr z?`s`>-7tF&{F76$e z?`h^EkMdNiu^}M5yGLVqh?N7y4T6XB`U;TTRJ%9Fjv?Fpq zn%18qla9_hC+bpb6(g!#G3Ei53_wMS7w%GFxgFXX;ZE;S0+Pm?NeAXIzu@MPTl7hV zdC1`xt2$`}{%)_S_OiI&#eVv^uCecrf}_z(ftPnFkSoes<}qBCHr4G!?+s2YFT=lY z!+GQG46l1Js@aU%HgYSf8+oCZslCjaSy`z3LEZ-W=2G;7B%G0YcOs+{K#!nh10p%<<6ZaK(OlZmLe7T@#SRHmC3mGF9hCl&N8g)|*SXzz-Z zQVmD%mU)|43s0XkYz_tDqYeh^$S$wG|3bqyLh5Zf+G)7>Ny(!UUFyHVvA6#gQtv&} zQf8I=mp<*>GBlo#!r~{KmB+K-@|*L@R;qWvlBD^wCs{6<){z^PVeE!ijpA+lTr4J&T&?@~y;c&t1`q_J@i$Fka#?Ch+ z4^(z3`P7;DAOnLlw+=p8JAa&l%LNb@ z+oBlqtP$*Dg%Vsv^x?KfVuIMEL}+X>XjHDrSZ&XBX{*|!0BpAxB)_<@zW63u3aq4P ziTn@e=BhhM9A1RHYitVl_Z_;~2)%}LEGl7vU~~9<_a^NI(5~?G7b&X;#-CYQ&=-Xy zzCPS~-v--@c%FK)8IuH~>6F*AoOBqsAM`-1*ZF5V2r|Y}B=IUCYh&$uM4~}RjpjI+ zsBa)*+@{~p{w51PFOasJG{^S@#cvu>=VB6JiO76^xF}wqlB1U5;>00ntL8|fwP5F( z$E*Jb{Ym}@{n_!nI26t{7Jtk5wg3A2E&DCFH;DPCmtho2s&QW*VxzVgP z7k=pGy!?Cx+d*{$Pn}SGmJSr_jEEHbupAzzH1iDszT${g~xRM=n+-MenWf`NPECO26nwD{P{Odo7`Go(FIjBi z!E#@4DdR}@fk^bmEbi%Lay!If;a)l>V2!>BDv#t;TEeyysV!PdYq$T?@G3qZ`xZga zUN=>K7gso;{r_j3K)CWHEZ0sCNLstl-@KMt?$p!`A z@Wyox<-izzTrKlsI(lQs=Urrq*Xx+Jp0Pt=84{){2vK^7?L`}77y>T!<^yNLsSGtL zd_K?~W2j9Y$M&b_$Ca*nI}_nps`B&+8-G~lF$S4X)uy&R5s02>;-S8Z;_CaBWyy42 zSK8qzC&$3&r~Yu>Vq(LyqyjMC$`fojQU$K2_Ka4YktlP9;=uXc_?|?ee1PeTV-||! zdVGyK6t6qUvI!IJFL@9}A2d(14S(O*?n6_x8rV)(*roa{9daP!^Q@}vVhZH`=52(I z2#2<-{wb(DyE5X`G{ym2OWVs!?yrR;@5j^%)AdkxdXaKq!55t0_|;72mB53%U0bgo zE{8-uC6AK4Y?MN!a`Wvq!g!4TU!_z0gORJeKP-wqJJmp*4vkeEwz94%aHl_E;i`!% z`pyvNd~6$G{NleAl`LXn>!*bAuK!j9(AR}4?u2=T-u3g*)Lps)$KQW)V~P$1$-Lox zkQ@ywzw^)cj1_op%XgTgmf49kdBL^gUsg(a^~5vA8p8PPZ|i!lC^+Bx&wo#?Z|?&A z4?>(?xtHx`%BzHVrgl+3a=h&>jU-fs9^~BcKns!Q#I5Drk<#d;uj-!@;Gcg_M9O;J z9EHL^|K7gJSE-vLZy`0$!|x6j5a#*%w_>$qWPiarl;FLpe5;(|Dng!ot0>xW@=Z8j zS4iD%9j#OH;CQCDVBKdgU|dowoc-dt+W+hcvB|3^u-$T{|F4^s(--by`~5y*GF8h; z3(%m|sy1r>8;-~){6%~Gf6q&H?7V;0k6c2#>etFmr9RII;|X_%iE?iC#`pALQ_nrS zfiREUzm-t~ZMyKYguD+vqVMG*tO(=ovo%S?f;4gbGI@9Hp!LiDF3&4vyK&URj6uSF za|dW&*{n%8k8S_RbH1Fv?SH*r(GxW-X@dWLY}DEgp^$A3>-hSW%PNo zRyE;y_kUX6+I5X-0b!gv=Z?ZB&xj2P>WR}dXY3lVoF6*f&D(W~Fpu1y%J}G!#)7z` z;2hvFFVAZVS56b7w0pK-{^MmVk*pScF=d`?`GEPZ&Py()go;{#_2D0*u&8Lm(ByP zEzne!%FW@8g!|CHmB5)!fit~?IK)?1*f@Kd2=D0s=j5e&x;e?5AvvIOl?OwP!U@kcdee!;x+nP@Tl z{Ld_&T=eYZ&a;nNts#oZQPf8!0#pVbhjyri0-4(ZrH})qXolv5P?Vqnicm^8`0Pp` z;ue|BvMKXNzZRo)iO8KnP`k0h^dVuq!k@~JwDsnb$;D`Xs+{J`k8=f?b8Ziq)~qU`($ z|JC+w_Y@4`_To4>vhr%vq(W=RXnt(8@PaV@<4=WTW|*XVb~8HC%mv^CmaZ32lXCvEMWUb zX01rttt0!l(e#eLvRo2TX*So?R;AU)pUXGh52Szo!|z2+w2dG4-dVbJ!# zLbU#Mg6e}#D^#<7s+Y(r16?lJ=G%HO107#DD3}%K31XMBDWx1SkKXxg%TJn{oq?Kd zoUUd!w!bM8U*-(Xi$po`{M8mW@ObVo_3r2hB=p<-sW?eAF>mtlB52QZ_2jy$%Y^!4 zSJCz>Lv+~AyUz58jo`IHlu2Q=SBS|9J*djt^S&+(@$DPEUBHxv^fH3?W=6Zgbe_6F z_)p9W<0xCjnC4~!PZrPow4ucQf+wj~6$MG%W{DJ5<{tsGz;{hOZ*)Q<^w_RZM z@21^w`Oy@m4ZGin-1(-D<#@N$z9;=h-64f%(e$1>Y)xXhu^u8Z&=%ZWeFX~m5!Vr7T z`_};#F=!Xd+3fJqQ25a;RWcil@j>wkvUBswK@fko!ijDHC+#k^7LNl5wSdb!3zsiyqw>NZIkooOOf`_P}=cbS(zKlL3Pkv z+qrmTIj*Rtu-y`Ya(h_H&IsiH^M!H2=Qt!uQft<#;RDp$Xof4UV1D#)^W>>F7jFXV zNPJ1U65hvHFU^LF_ow#b(>DBjXxOSddEDA#Bg`ZERX9Xa}b4$ucm@SYXOOdb-RUA6$+QYN+ zU>Yh2Q8}0JDGD4HUNv{!#c|snemMi?_Yz_K*&QWS^_?JZndQo6nt_Ok#hC9Bcfy5- zDqk7Z)4=leC9>_I2;?6?wcELNm|oWZe#`owYgzv{h-zm$33b3A^~-lSijASa# z6>$G1dpb1>)}tn3tqx|*2m}qh_`Al{VUP7N{f?1%_<4ION3T3*wSASDD)B@g_9LXp zvrULtdZ3+^6-?8{YtIWsv|&7TnFqz?!s6`jJ0E<8SFdUi{nr*@aY2-o71NPdq$Jc~}BH z@il;hTD~Y%*UU^IF8~!-Yl;ZTqyt&lAw7LrY?pfBtXEt_nFQy#%HMm4V!U7D$ARwL z+5luUdCqz3*N!!h*Y*#3mE#Y3^+OC3?{S-UaOWMo(-r9tr%$fC*!8*zHcbef(dkBD z^g_Zob;$#5@z03-7K`nHPnrfCjz4!rC9k$^UR1*NKmXzCAG9e&0O#rV=WF9}s#0Cw zLLs+yKSJ&7gU~#0!n__m&YLD~_W9_cn+Am+y7%T#8jB`NEGEf2|GO3e6z<@xvr z?ceHvQ+21^KK^=mx_mCswF`;z(8D;3!R2#-^>Ldw?g-n7-uCuK$x7x!>y>VPy&;Sz z6negmY@~te%?f@QgQKk>ZX6G@kU^IY@Sv;_vw1C-@rsQZ24C@T11R_y|^ItcnAot;oLoeM{6UKdI- zeT-9Dgt(y0P~tF`YlOT3i{oZ|%DvccKpPajud9mC4)&+g#w^02)r+7njoxj8oD=vI zG#7r|mksBdn8zJO7tvR02bfjPZf%mIF_9O5d{C4K3Wd#Z~+8IV&j(IFTCTw++ z;3M=`?DdwSJVq=}BZ)z@mAQ#fBN}jqYatlaf9E{}`OV~aRH>s;IQ8eY z=AV44?YA2?*vg*hgwIIs)csm-xXtu`hge2J_!bv0{OSY6H zM3(Hb@3QavzVG|KCPPw+6p2EGN+pD{6zTrlk2mJ?>vi{g>wbKHkKg=voyS~r&CGRX z=FB%@W`CmBYTepOT$Z}AGW4`=(N4&oQ zOr>$n=E36YNB7qs!gBCMkkl0L#Ou>VYvG_*X%4)pc$t*ckq*mwo`7*UN_^MnG<5mP zo+c-8xz+l{6`>u0i% z1sODmvtl~}|0B~oj>W0Sqgk{qt*2_u|M7piDAFWSzX`qxI@R+VRkod*5C)>lzJF1hL0Oc)>apqy-HvVb&<-j?IcckzXd zb8i&HXCq+cJHNk2$H~igcE34Vj2U-I<^TKm%ErZXZgu5^`T$x$rN8sdv8_~M#B0}w zt(4a9lpM@gvbvX#Px#7_fEsp*OX`9r@F&SzN<{4q@Jt&-+bM_)2syBQ&;+L6(v9aaSuMX zts8Pltwv4Z?mn8HuTxkLd?`1hWGSDpfB#mtU%c)1W{MDx{p_c|fh-ZBpFC}wIf!`9S=f*26KCaDUh;*dHlxfpNblUHaYU zkFI@x4l;Y%#1VAyulesxzBsF?8lhfwENj=G;UuAb!P41}q>>lkcV({kH;xsr-M(<0 z@oo+S4PpG_wU)SfQSV#t3D@b1+NT+HH$1>YcRh=m??X_qq^gq;%0fqazYaXU@c?o( z5=?}H)1huO_wlVK4ImZV%;S)M7aly`D>ZB5fnr{|NC6Wl^q>rhN_;*V^A-xtzJm4VG!HM^ z$=ygph3X6S>k;PvfJ?=fvpgTb*S6>}eUL!ciT8&`g!>>?hR6d+2Yr#*7QK(@&!V90 z+S19-rWg;)|5?3wyI=^o)F10j$i(`rh20xc?8$;r4_7Ab1;Mrd7kiY^&*_ptu+BGd zo*5J4Bh2Gnch$XR_th3qDL!!Uk+whVc1)I?WxWjxUPJ~qDRn@8*fzxVVaW&i$V|*>%woN7i|7DjeP$t8Z8R0~*Ti_s;j(A6%<^mZFWtK{+tTFm+<=>HluR=;89&I~6>ASw=ZgXca}%IlBgWy**=#TuXJ9?85e5QVtnR*x!uP|6 zoz$j*gXwTQuW#nqaf~yQOBeNO;7I}LdP>UST&&09qy9ubx`^?GkL8rDDo;hg=+WV~ zm3@^kTCD&4g02r-l=*U4EFc@0MkMZV$d`fRy}6*eq+>{vE}hDK49j0H85HF&4h2Dd z*A?!RWBA?`8ga!uoH`qHC#v>!&f#Hx%l?Lp|M(rC72M%UJInS3^m18`utNW+`jktUJPBzG^gf>N#d`X=&Dx#9T=;%^ z@>G>v-FyrheURhVI24ZPKRJ;EJ_|+r(gLUxT&v;e?fae!x1Eq}LH^PdT^!m}&-!R5 zdpwGy;vqdo5|0)_IcG1w$2gNjMz%U9hB(ysS~xN1zs^CH!v+>EThoz(5MH$rJHD?yjwAj^-Lb|Ij*2$ z*sncWMeT^=6FdnVQ@ziC`KegC%aXz`9=P9%%^r=s1@-4S`0iX!1AhKHVTpPHh_WT8 zW|AJ`6X_mKv&pA6L)Y{RnLIIHV6OSJPHZ6$Bt5?0H8!n;4xO#ySCbRb=%WkmNhx?f zJ_^q3Zs5&BE)f)Eo^*KKwYs^9d@d-2kAly>OSSxesAY1S5tG`ocqsTc9SGr==rBk`yJ zEQ7A<*G zy0}5wK=APV&ot0=N_aiJI~D3`_lhUgG^1`)<7EEr?uh#*b6DuRbo7pf%*TZ^4XMYn zzB_#}8ls8@IG@qoTeDorEX{jX`o>+fesQC)@@5s#p0J}j#1#SjdkcBAE+)a3xsx%y zi>2rudou5jKzv_`$p~8LO0PpcCYoNwlPc)fwu zq^#Fu7gR_?V4s?7VsQQ1^WpA(K<~TLozUK|QO?x+?MV%C5i`@C9``~r&wuXGXRkp- z)7hF`#5L&ZwsQ&!@;T7?&HcQ$I<}*ESssX_-I)q!Vo#G_rowv2&oR%^Ykcn_(xuYj z%95*4n8&+gmq!w$lEzC^#3g~~QL`mWjdY|pUCdDQ9`k3P@#nd^m+@$Xg8hA7KR%bc z-&Xa_(51r8G6wtokJs*Zsu`3lq9#j-`}cpeY1D`>oPa*$FX{f$r3uY3lbxsG@J0dE z8%L7*Y7l8f@u0-B8f3!%X0YIU6g0F>8Kg#Ff8^Y)f-z@vLtyELmfB}-yuaTVzjfi6 zULMkpf1E@oh3yHX$6J%NZ>)VB0b$pir-}*Xp8%3uiRUc{^AGZzv!-pS$NQl*-2$iG zKogQ{3^>*G*%P_6<=;5ST!mtTxuZzuE77iHxg^Q#2^C2Q{*TX=%Kgc&!Y99Jr%kxIKqxKS4VVmRle?GHpF=S#$N1f{wc{HlAd^M3u^*Tl$ z@B3qg{D*&@NJ9q8`2tqr3NObUgyncdF!E1)f>l37*MIyJR@+Tm#v>&EV|Q4kFUt!s zU*=#^A%g7!Uh*Y5J(k!mgN$f=N-+)aOkNMCg~u-;|ysI(wPwmhas}t*$3&dUg`BX z<5P;q2~d?i5vfju@xbr*($Wi*V*dE07cmjv6aaiOI(hqkUIenMR4wKqDp0G<;b@_K z7U_*9pB<(sTl2cu*ynkl^*Nz`;xWUF=&fXgxGe41^7V%v<9xwq>0ggA(T1-1d*_p9 z*PWm(L&T+<`CRhs(BXr#0$=sAkg>>{>iZexC`7ep8ePkRS#*Z=!35@;BX6>@INw!( z)xI9plRS8Q_9xo2{Y{I|uorPED!_Kk1rtk82d4bhdNTnR8ttv)kSgafvI0#nG&S%x z>BqGUl=Vo>cL!fE@EqOiJVbd0%iT)6LgeoE(J*R`U`)D&x=4l#$Q5!>53Pr<`h^M< z^uoc7RyYAz-=sa`+=J&StKV*`Qbrz}e6uyYst5a7i2h&)`N~{0AkOyHH3s{I6t$JO zOl-ybV1J-kdaYarB3rkyM1wpAdCu>e)zHXCkKU0oJ{*XG<1?hQ0n)OVpX#EhKZw+! zf?Ttq&lz>7`<%6lX1oVF*4XzdJ+lZgTFQUr++2pX**9czf6Rp+Vd{e0FW~cwi9*%y zp<*(~op`9`%!K24nQ(urcsgHzc9LGRT9@QWS$`v}n!ORH|+gxVK28k)btTU^tjny_kZZih1$|m!gXtISg4zM(BrS$ z;~eX0-qk~>U%ok1cQ!iFn1FsXkxSWry$ZZ*7tQ5V3kQv!5;~psFv$8^I@7lhjec*> zIjg%g=|AV<@9iZTU-k;& z!*-nODdH9i`vegqIVI!VXGe6i^&;cVjn1q6e{JcoCyN;CM^^g3!SvV;z6Oi~REho? znwVvVs0Z({Eq=s!<{_gUjav`?y}tU)8L!||L`eki8A=44YAzs@S7I-W=CP+@drIni z1v{HO!twuG$tb)M8a+Xn&(3*k)zKJRLi*`!!)(e$9FI7sAyoE}3ZXyETFaJ)w~sbZ z682mDS8_T1CPMt&y)P}5Sq#{IqIhLax-sL|7+xdg?$W_WB zy6>LmD&2b`RDrHn6zSWr?|k{5YL#B16P0u}9mf&W)T`1S*3m@VcVyY`@Mxm~BKoqp z6FSIstd*wuMH-YmS<{;w3?R}%4bjD+hi-iqXrO%mZgnXu)pX9*GZ!`a{B zQ_P>_vSxnj6A&Z|84&$z{##OCxTUUti{QQe4}<*PrxN;=@8#i0+t-KnoxMq>4(qB2 z?P`B2#Wo|va8UXGdY!~PeM0wLh;ZLs%GN$fJwu37tAB0F$q?ud1r)78nzo&g$#B}` zu51xvP29hDT>dGr5r3APc##J_0vZYC4J{zW`yyofvqw<$bG>FvzZK#tv_F4sJ_?ab z#flYlMW9yh2Z|;apFow_+fT301^~+m-zPIKia_1iVcvTxAB02vay*(nQR}D3Hi_u9 z=NqKBN1hqGmZ zwqAR@flXAK=FeZcO;Dd_Uip){@I9cVI=$ieov{Dhd)C`i-@XfhZe;5Y+uw!l!nMcyguU(JRgXNw-G9vsJpk)FtJcYO*N2v2rB;Kt`CO^w&Dj+enmE~;|< zSw?$s;B=(l_IN-4V?DD58I23vO?J9A$;0!$qwttg6HfZKrMa+YfgFdceE z?(;klxeJX_-@l1*IL|zd7)98;kX}QSdjKEC3Hj7AsDyr~0C(*;na^tY{2l+)8ry8R zcK)(3EIi(Ph7ji^A?kE8KQEbpzO-aqT%n53y-d=f9k1#;V1Bwdsw*Z8W~Xkvx?y$~ zJ|8&VW7FGYm2A@qPkeat|Ni<8V8*;e28?*U?ObL z!<+-l(M_A8sy;elI~!9{+>H#0HZal+vA5LsfS$u|A5_KUK&{M{&re+|z{&8rI#+HA zsK)x}O{HKQS(V$i^~v$2VDG_Jo%0aiBPz`K-sf89foQ4^?XQ097v6D-VrMg899dZY z#<#O}DKJlal+Wr@Gh~0?;rn=NDA3uZ37qaLg?CMD%>3>3V3<$2DUZqn&ToHlt?d=Q z|5qy#iI0Sgev6Ob@{b<`^8F3(xMHVR);p}y^FNM8oNlgN zea^KzvMY=+6EQ^HqrL5(g}#kn(WqBUN1=wqHlg(ZF3Wgv*<)wWH~9IC8}kYnK0iHz-7 zPkBbgMkJ9P+gIMw9UB?FACJnO`|keGZH-I~FFjkIZi%+-2eyRsrjWV$;n@eign3*4 zR32&^IBAtasAs$~JM~1bhAN}nLn{zf$H$%B9CsuIBb6^&W{bUAN$>fo2R#G zjs)ETB{|8qJ0V3dlf_i=QMwMg?a1>&7ju!JwfliIaja)Q6*sNI;Zcj8d}7|SDHzAe zH<|b_^+~b}mQH&LXkWp8RMg|IyiFako!Ox)=H2Ig>7Wqtgo~po3>0e(Z*7V!00q@+ z_Mr~(D4(b7o~{qZ-H>L+=9SR3gCM11<;;aps5r&)Ky0B5indtQKBPlXp~rPBd9Zu}_d`cQz^oj^c5OXEx_R9FAnb+8umgZpkRU1C#gZ`yN? zwdc!`5@2+oIbtuC4b&gggg>0Ef?FdmckJ@cLWWz}^YhPRf19&Bc~hrUn_%BI;|H25 z%|P<<8DES{Fhn_Ajt+9Kg!Ckxa(@3>pvkdWJRnenPEFe_L)|I?*n=*RN{0|!`Nok7JUoCs&i z_n*iWj|1*yeT3uU%=3)nYqzJZ6wN>A7yhky(N7p<#}VRO9FdxJ{)9Zd%~GKZm=1!) zVa6S$m!e_iJHNlTqK{ya^M1M`{O|qfuYEfA{8I!Wp6ntGow4C&LR`?ll?N5q7~S?- z5zNQjrJC%QUW9Qh443co^vm~oo8|jFv%wV?FXkxty*+h}gE@*248OORkX!TAs@@rC zDX~2B%Ok`a{9CD;ZELxDk1#&NYZVqd$56ugacEH&5o5*q5rbOP4fljxhF6rlIwS7U zK$&mhIBOcc+W&2VGm)F_W4rE3|0ReVih>xizsno)5PLZZckoep;Ob(H?=jFTvewUYNp3U3Gf*l^f$W>IYa|z(Yxa=pzSN%R%W3C z+V0d__Z4HDt#~N+(+DzaFz0(Rz|w*3DvRwuZt|})ge$iTB9HFIdLHu3k;LNviuV!3 zxvshEg*6!PhZ)4s+=5a^8T%GlH{f?Cy59QU0R_%J4O82u^w;zGI>?>zxd`EYn6lyM z)z6EBeCF55MY~l6>njX=?ds~@tUbPp0wpbbzTD-%=06{rS3A|L2>EvErykpIA|c*n zOMa)1)NULH=1{-D$U!5*_zr(6Y~l$=PHrWPGql!n<7=h-!4G}}@6)rLJY(KPIF3Gn zcDeVRIKJl##~fN-vPd{N>CwJprWu+{tTwtCrXt&_BONuocOki}HJ{%n38qt;Xac6H zL0B<5$?otS;4SD)HY+tmpPNRUqz3%am*cj_h#vc(6o>QCAA_49{^T5|T(&7J@Ozv) zG#mm0@0m@{sRY4sFgm-{K_B_E8QeiFYtOH=U4Q$u4S6$&#w%^QbU_3a%9Yl4&N!kG zF`+L}lAdTYX|4Cpq#}^0Gy&sb96#hsWOZ*RMHS4?f0lV!AqKOwq@}xFyFvD`2qMWD zzt#H0BpXzQkKucm77NSAU;a91Q7-9K%&oQit!zIx-YWF4grNRW;l%V?&DCJnronZS z-xCDhJZGlwr~r|x7o2unseruaj{VY#p{SqtNiL}$#@~AUst!S|-e^>~k>+hTjteZm z+ui@zs|J|effm~ZI8eSRt$9(I8JarqE<0J#9IePDQ@_~@6qn_a-|YooqfNi}HJGD{ zAZY~*R@N@Dw<{5Kbr#1_ZO#ewC|J=+?t-50e+^l!RvofN`;E1j0d z0*fWGph)sZ#M#5xzF-@mD8ZA9^(nk*8^s2ynjj;uS!z=2CWJ~g4cDv3fPBP#>9m1# zDDyH7uOSPCmqi=77&x$eZYQE#dB-jl=+<-Yu$IL4N;w;kSJMk|uyx>+-Yt1N9|lE- zo+>@W`ZFosOq~v|FnA{(u%5G~3_AAp+UxOoK))rgS^rcT9R75crL(mVUW*;u-h9^* zQiknGN>1T@k>#D18`E4Uls_b9n^eQ?USBMENx_;58S2v#V`@0Q4vVFy+2Bnqhwb{z zJ~|PR29Lh>J5U|Th2=cUu#$&yB|p*0l#A67j3Wr3We?u&mns4)z&~Lysz{#*goKSy}TF0VLG=lE|G?)3@gO3s33;tB9sq#_%Q_ZCMC`A-dR-K-$yXyiA()6SAk+Jad z-j^3<*SyfZLyB5FHds&LUt8_f7*PY8re)@9Zh64VoFEj;mH}U1NCiHlEP-)HBVw|3 z!D!uveGd=QQo=Z% zpkt{6uS3&ekN1JSJA5L6SZ&DQMs6ms*Yb9xYlWj|>0I=}6U(7x+hkhK)D^>h`Ay## zzmx$D`_=w$Q?9@pR3`ZKT{;w8XS{OUC<}bVFVajBC!#K;eL02i@H%UV_UrB&3P2Vt za~Wt0?uX4)HHys-Q=lwp*eLKRUN_kb`yST?VLZ`pYtHuq+VQ|{e)2olTnWV4bAA_j z9EdJ4y{ERnSPXll3S7wE`hxv%;W?|N40zAEFu9bJ2P2l**J)ofB4rYn$sGowNc9EU zbNiqOa;DZ2pyVh5#YYJl$!+>TB0!XEB<&AQg|=}sS-v2X^+DcPh7)~X$1GRpM|ckZ zsmT143Hx@g2!vU^uHJm|y`hIin_o158@b1*ry94PLT>aOG`ZCAAi%1=-*WGzgl)Tmt`L*o5-`Dee?`tJEWYEL&~e(Uw|n!c&chGrI1v^Kcq ztht{H7DM_@f`seN@3UNb3{fT!Q<57_{YRdB=jQ5aurm#6--aCSUzY~f_PUb?4xB@z zfeI|y8*K6Ulb`nKimT0Qaad>erc}3ZsU!Dft`GaCNlYE zEZIq<|8~<>;`Uo$%}mQQH;V0l3b{l(i7j2A@3xC|BZbf^eOQr%x+H-Y32g{aF>Ehf z^LUrY69S~Qg$d+{j_)n;rylSS&{aD_xqflx!=S9Y&}C{%$oe8#C~J}d$7s7hv6f~) z62k)5gI~Pp%dsqGS^9|Par$R{kM4=_N+X4!E zqPh+D2YTY2eot9sbyl6D?Yla$e`h|2OUGtA+hb%xK>z>5*X_{D1j*wb~UA zg#kz1J8H3e^jN;IPU>Nu!uGJjo!??eCG#PTf^!=)oeoS~NM@;3^n>oSZ3~?K(J=UO zz~sW^Tky^z&n%7y%Sl@VMfhK@j{>vA8cFXute?4guJ5wBK@gaX>deP!;ri8wrJ~Be zV0j~J3n-y*H#qD|*0_Z<7a|wSENFbpz`DF*)7B@U@KEBXZmne!)RR`)R#uur@aI4$ znLK>Ibdj)rtm@_iQCDo(9Ubs^Er3tG+_fG#Y@4PI$yIX)1QS&jp+LO;2T-(SY# zVYzi#FTV1;a{frxKl$!#;E$?fMHuqwyijyxIBWZ(C$VMD)hN8{fR6E&T zVLLC|w;S9&so2ggGjDY2(TLL@@BeAr6#_?S)}C*@QdOC6<0Zm)u=P1_kCj9c>LE|g zX)ryf#_LG!M?{XnzO~1}UFlz8=@q%>LOO7IvAucMTR#xi7(A}IIR+$dZ<(*;^+Ymr zhfFrqV*V6h|E`~u6ooGLl{fMWW54OcFJQ9jbTH&dcYQk%g74L089hBQQdsVBDM-v% z=y!vNx`MKuj+SsfgV#+W!ynR)^jfF*65_xXdBivK#N`6bK!k>Auo;}^)EFcC90~;_ ziMBa8N$_^ved6p`OXR8k;UN1{%=fnz#E?;iFX9TKj#bOXd|&4CIQURa2s~0NJaq6V zmJe*@Sti`{FyD{L@7zxOBp5C)YFYIh@dxD-EEZbR(JOhXHYT|1TcSXy}Vmc248+K^-6Ik9!B>@10Q!Jw4&! zfDT@$O;}fe=k@grn_#?LAP6k&{8(>|?cnbkj--`r$8uACXDP{n`(B{^wR7%Rq9a^a zId38%gkawrOL0B(cr;MN+WYNUJ?swA2BYq12q}5!vLss$2aN_Mq770Hx; zM(9A1jLh)doi+2{Ik(wYuea4h-NOm7E3QG8Z#>|J)AUedif^oh}!? zv})UJ*3(`c_YT?S&BL{2V9PrFVBWefZ#O;=X)KIhtrY7|^j0-tzD1dINY4#E0ar5KTsUDn;Vw{{mIfx(+#dL!Tr&2PfrOfo@sAp zt}Foy>Gx4vW<61YnB%Sg9sgkEy<^lqa#40p$R%Z%x(Kjdx~Aj1T>1H07)A5u6bf=vbdJS&f5HI1_ntU(UggP| zG>A`KO8>5k`|-JUq1oMj?ff;b*q7PAj?fNAWUWTEgOgBi?|EX2+G|=I58$D0N`#!| zZBSo#@ZzQ#SC~R4Gh7BrfRp=-979(L{IdiES--e|wj;i@_YmTp{0f zdlW2jo4ir6O$T15@lqYHVEBIMv*g|pJU*)>LpeshRQP0O=~8Wn+Y8-b_u<9e7`S50 z&(^XH@58p`jh7xi#qu*-4W$oRQV`5$cx-X*DF>B{MBBXhogs$hv*N(JWN4CQxVe2> zJ_raof6h0yf}SMZINCIPE?q0rJG*Hi6v`R&KgE2(|JgvA%;txBB5Wupj;knCTBVyV zRK^DMV!J)HCxg-AL;`4`C$zj0d2r?a_%E&W5_sbA-TQT$9a3D*@4J%kZ#nM|T8aC= z(#~>xKg6&c$7hAU;(zz>A3XgkeZ{W5^1O0?G^CMZZoLw%nN1|AtiB0|UwS^~9u?MO=#MhqZ4Jiy!T{CXDlM&q=gmqf=1k~SE?YZJ|FTk` z@<;`t{ov52@2&@p2=i39##T9U0hUK;dhFU|q6zhb|JJ`9VH}yX>nz|3$`GtokAraS z?uz1T*`WM`;!2546xyY@Gjr=ZEFahP84j*r$V9@;(;34_SkHGPtIXro$7HxYc+Vgw z631WkedBoOc`@d@_47GbWeh_htncl|>R>n6_>3fz*go!$=eOHBo$s=$HE@3FxTtu7 zGt545>oC8c0zFZKbu*p?z_5QNrHao7HG~WAXc@=jzsgh)U%fpJ73M43p5npluJ~S1 zbmi6*s5lV6(>5OS!+=cHk**3{Px<-htSjFWVd?%B8P&&8K)%W5gH?VeeAN@UKB`EV zUwC7^l*K|)5fJSgKbMnR3Q;sW7Vhylz`IJ)cLV>~M{Esbl8n!1gQoUbHm8wTWG>Q_ zLllPf6;?)Wnvzvv=!UTW5#@d?pK|E-y*p3p4s6on~79QkkQU$9ulSt zXbTHj^Un8vXrHBe^U2hx)%s(cBt;q`*zep)Yk0bObg!Tf$@_e=wDL9gbMhqZd~tdv zL4Ehe(#c$(64V=F{PKREBdTB$-W#1;faD|d$!M($P|*kfZs%!s!Ee`E?hni0{p6+i zY}`CQvtW>VI~~`5#Y1Siz#8kWQi*IcnoAu|_Mh6{G&wo5W4|B;^<{nAw+98U$5#?* zM1>-i3)^1oHaoI9ABFt;%_^6Ck@Jjn&Eq`ARr;akXPcqtprG{ifs_Mp)}A-CDrth8 z;`JfH-{~2&HXomM(h$(MJba*8=2(fo7{A;-Oyq)CI{UJ?i%JluiH;aa-+%s-@MSp< zO*+91HLgUoLzs_G=~r<}z1kzl^zEUbiyyvMR{K6Z%G#ZbENS)11SBnb?MS_94&n?8yS~BI2_4U1 zKYuwC>j&z$b7c!;hNC<6P3z^;ar~6$VjO3iB;(LQOQXxD0LSH^s&g8y%EIGzWl=w? zBNU4^xa;ZBBa0Lw+$wfmXo@I0Tq;!l`IGhBPi7P{_bdHVmTP5+S(lCyMI%!ih6wYV{b7Be<@JG<*9ZD-ePH?b|G7R^>C5W_ z{b7Bq)>~d5EAxnw|LG?pQQ7g&rJ@joAjqo^l0{gq7Gp-F%YwqVtKYpjL^n*4nGApa~N7u1C+UkWbZHg(6!;^tej0j+Wxw>iePtGY702B#>^yA#0s5Y$qDJ z=`DXS#}yf<-hbrfybejuEsE^P;6r`vCbq%pT*#h-lH=-}0upO$rL`%OSbc9K`T4D9 zPdO1^`034JJp7n0#Iflhxd38rqx~d3vvz+iRZ5kIhUw=B>dQs9OHb)OIE=Q<`IFdrRL8 zcc0KIpBsBqigU~8qPJ<@+O)&ieluOP{)B9=!z&5^nxtn6jjUG(uDo? zvp!|t`$B&eP5Fn5Oc~+)Smm^@T}d|JxIoG(EEB!~7tuaGdSkuHgY^{YkGeyu$va|r>AR^U)VkJdUQ*EkZnM0w#0V8o zuPs*FDy;!M$F9s|WoWK`FNE*%XvCZd$lhrz0;AKb?NQgbQJR)sg;#ND{wdCvR_k{# z&|R@G!#F_YyHwhO#VUV1=To1_ec)FX1Letm$4S(*Ktpoed|Rs?Jk?bUk2lf*u1u+g zhBh3R@%o*4*@~cRaCir@XVB4DrSCiuLHxbpI-I*P**bY&ag{D`cHHd*9sa(sQ);OJ zvm&^>>lKX9GlP-KmuOnF4M1P9u}}5?kf-n8O1=B+hu6b01n)U6xL*}e`ak$-_7lB+ zuZh=DMi!&6La@YNe^L0(E~oO#Kwt6;6Q(r0 zFWYTVdoBJ@6gKzI8psRbe6OZX*WUenpp0rhFQ92+kyW~09PzDfCeo|#M~L*gv;B}o z!@5q#4;Xab{=GkUPd+7L7vx`kfAUIP>Dx;?>&M*N2cDW;KvBCRZyP&kBjJ}RG{oXp zk>Y70mXUp&AXQlPE!#zG^*c5mwEnE?`M^YjPv*H4{*QXqV>P-oS5d_6SXwc~4XgDd z>Aj_EX)odRucH5;Wc#1vrC#>as$*vTGe2&NU`|orb{_RRSlD&F(nMM!K4e0c3aEdH z9Sw&mz_pG;>krReUTuGDOAj@BF)zIN@oK-l$EnqJW6$m!{>XL-O@Hk#?V`A_NPPIBz?lg)Hqd%UK!^DCaZMALgJU) zYI4BDx$D=Q9<0(en?o(e*-ZX=Twk2UzorBd#?3Z*lJ9$B+>C&}GLI|IbQ}FzF8JyH z^>^>|`&=U%Qy_RRXQP0h%w0l$yVvK15A5m)l_9w1?{~uS1^2xe0KO+d^K-|>x ztz3Vfa6ET<9m(pH&#lsRg!mGwIRAb>_`MKWoBvdaB+N^x-B}~xvW{?nXSOtbm?Vbf zVPX34K*Nh`&&&C5rS31!`3=9F^I3m+&fA`-^BN7@1Zw#bT4h~wprRKGovE8>+mH4dfOMug-9bT|Fd#ydWrwP$dA95 z-{p|C7UzvKQ9Qzg>n3!1C~4!29symVm14=?i*>c1hwa3#X1Nfqn?IF*lSBTkNaddn zedSL$f1X^#8#8qX{cvcUf``qUFrJoQR4)H%oz9xSzaocxipZ7>d{PgM6mQ&kvu_v&^dg4!>rcBB zC?BU(6Pj0q=kZsxw#h`oJGrQ<*+QwS^@XKv_1_|Fr;;`qpVK*Ri;Q0iSc~c=&l2}w{S{A`=bsZ~3qXH1kwOTMO4nw=f6^5tnc^ zVdf^GK5N5nC7u3zwgmLvV~_9tN~wf%*)6(srmo=b@BCx@RVnP@KkYCvQ3~U~?r-uh z^g?62gZnuO@&A}+@4fV`)fGiG)_3+?$MbvBa9$1Yej`ScoVcsR*CG9O$3fPV!KzAsk=qGAvp4U+mDw&9gU^voY@B>&$7VN3l1Mj-21oThiFi%sgy|YF?^hE&GD`>e2q7Q%56X!0|dmQ|SiWo?^CCk>Q32kkKdmR-%RN{A!2BcPl)>de(a( zqI4sN{UAH>!j`4`g>ag|!qaNj0lFUA<+5*01lAXyIfFVffk>(7%5EzK@PAyEy6Fkl zf15V5Z*h6y4~v7m144oL`!O-mN0y>v;DzRC3nyNjAAFS6^P5jN#(Ug6w=eTNXAF!* z)NfYpPKU{-httAjvcdJKZQSi zyHsXv#Q&F%`x#nv!Tv4R!U{6K#D{?J_gZ#)Id?cS5O?iO1pQVbdy4;x1N`-dkDMR23!Xm9O?3ZOEUZHX2PnnEfyu8i#i$@2 zR`5puHou(u?>pjn9N>)97di6xnXu`Lg@1@#DO|d1F>Jj(6}?%f@rCBU@QNL6CpLE1 z6r;gidX#y`aXgaH9nbsPveIF8mf>*K zl)OtVwGh^S?W240qXZ0JU(3BCsEgA2mSVFV+!2%hs|M}I4oI+Nx_wh;CH&-8ac3j9 z1##EGlNUqd!QwJ`>nD;pu)J5vEh}V;p6U*AnCaH6nNN>ejpsg|u7ngj=Xj!R{3s`D zp+MoI5i0eL@HE+K2vV#Uqu!gRLUi2-2W_VD>Nv9vF20z*p8y|Pj3x(#XDIB5Nx%J_wFuH5OQQ-6075&KA)So-=hHgXO<;Yu6z^m!vTI7!R zCn~W~{e-9x=+tnZw28oY&5#e&LwsuPC`|v(m5V}a&u74MOzGnr8$$ePbc@B$NKeB2 za`Pg0DV2T8zxr&TVQ&{f9(vTCYyOvd)Yj_ogUG_GSD`K2H1 zX3YI%Ft#a5BzVsaaO1va*y$Jw*34X*bte+RPgX?dteqFwM>XB7IgiJYA(7U#)jApk zxIb#|aK-IO{cM-(WB8BU^6go`S!pbf7;?K_d(VP#?z&%Y$`Dz5L)lCI_jy_QaHBel z>TtO&G`#jK`1B|S=58LF3wn_TJEsQnObztG)oaPS*#*mCq)v19_VNWnoAlR;`*Bzf zluzy&T=y~pGQ@*F2_<4X8_~6MjgCzC{E@d?Xc*Lv1n-FAYeAf8a5!^%r|7Q?_%TFT z!k~B)?Vom!VUvwTW*s!--K@!I-2^>#prjwt-;>HOTY_-_%X!UL^OvsBSMrW5#}Qwp zuf+3Od0z3GU6Di1c^BkRYKNklB3e;R;u0t*SMwbcFhy1uAE<^r4L~{v8;pGo{ZMsU zoQhs^AnLGH*&(_U`=xZ64N2KPN;%Mheo*LF~I3d=)F zHBscb)%vIuuG8DQ$Kdr9y|B&oZUo#W=FxfGigCmog@s|Y#|mzHR(58bWVY+j_HS- z=iN}>3#RpFgfWhrt8t@*o4gIs>B*is+l>3^=%##}n=%p%HB4AqJ+NPOUaXtJnK2wc zh&462w0K<z4ut0DJ2ZryHYtWZ}$dS_q>GJj|o8a4{nN}zuGs(H!4lng5U1NBfSA- zFn;%u<4cV}c%i2tuXm~*EqbDL3cYWDO>*F}ifk>+?D#4@v7rY_*Ku~u3A}>$H*{^C zG6K-`8_D|&ZV8vDF^ZB zakX!~(J05s@_W1N;F|e$Zwhbd zJs_Eb<8K~_>f+;R&pR)p|sdk%Anh&=V)Q@Sr&f=x`0&GjRh}B8?%PgPgc&{3JsZ3AqnD3Mx~WHKlNRf~*%e8yJ>7e{jV^fyI`>`r=gbP8TfErl9LKaMl|I&uRnf^|6}Q*v(@O~ zICP)0kEm(}%Lntr-_I9}HiIC$CebHqjFaX1Me~GI4(EsKwSDnCx?}(zdzTyaJPCzj zLAH~#?Nup)xN7|bd>`vcO0eI8DG`g&PzKx{jlCuvd3heFE7d4QhvT@I={2np_J^9_GvA@R z#ok!%bI@W|m$AY9w7UE;;)Gx$7)CMizGG?!E9+|F!>Z4qAhc^2OwU?|o-SoBz+G zwfn)Z^iT4Rz2$YAaLDNxnq={61fJKWox};9@G9+|W7D2S#7Mlp`eX_A-`kkwT%Ba{ z95G})s1>!x@rTJbp1$8`^8gr+XKy~ikMkof4D4M{QO4_N%MJ%K@*S0M^!&G>)`4{3 zh zWw1WeW(?~M_O^W&9guBDij{SHtf*U8>5tA0kj!0a0Z;pz@*Pw-|H(w&_RHLsEm$5` z66o}EX@UxG^&79$YhdBJR(7jiJ1qNQ5%iPDKZLe1>=n?sb+_L!eglRoR>Ud{iEwPU zngyqL3mhn-oK%W!h3nVbc#(A@3i9AC<>bM6G%b0PmyXZIpab3ALTBx9f9LrvbN9(L zL*x|QzVcbT9#meR`&yFFv09JpJ5#2eS1r)mS@wm0%ZDK`oBzezTZd)2M17+w0tTp{ zlA?fM03y;oAPNEsNSBf#2qN9xA>G~GA(9T#lG2TUpdi>ZsAr!`VD`12W72M<*#GPVo`L1H!G&ES_Y(6_FsmG4I){FzA2f8@ z16?@oXQyH6gSo{O6Z{_G&`zAC>L#lhG?Y&}rFB0Vay+;_ZR8#aF9u^hLXq9u%f8ku#X7&f2D0o=e?o?A$uaXjYcTKzYx+V@WOYj;JwKMN{7VcJ&*T* zLC#11QZtp^eLVY#hZ$Px(Y9NkB~(|@!4Y( zhm;jTZ*i+z^rd^d{g@@0`l3@W0?amsgk`-Dj%{4X)9FXQ7sT;-HR*ANWw*V6bb6cp z5B5He1$LUiCnR?<>W8sac60CvV3g~A@xQSC_QGy^C3W9d=yj6es~!?;-*Hn25($JZ zO-4c2-Y;I`e~rsthF2I*K@l{SaN}CnAbdbzg?A|LfCwOTPxVx&Wk&bsWknmD0WZj{ z6rApANVeO~N5$xPZZ8zqAhUk6;^bfLaz4&?Kfd}9&S})2E5B|F59tMyklb;H_s+N4 z*p!;V@YlRDnahZut)9n7$BDxQ3jRpAH%^4^-6Zi(N*6U8p#{%OV-7BgV=->%S^NGG z;e(6AKV6P-H-!yuxLf@}!O*TH=A!xm3)t*2MZu`-4yE-@G6oU^!rI4jRGKa-aJv6! z6Ag{d?(;`mKNvAam_aR;N8L9+p!n`{Y4We8soWrUd2wx!5aOMYZ_^{ch>z@l66}#= zSLIyc7;B(1`HC0BXE^$r`+Ojb^dWNft2YM1ij_)CLM}k=LHGiJh8vi=6h~Bd(F#y5 zYxOfGqPUgWH+Bw8q}t$gT>k>cXT#$e-_$`UyU8Y z#P|P6Tx>268j1zM=0MfyaTz@rIr!py?P*8IEE}2f?4u_%6fSn_xM>Hl2y4kDMi8%x zw`#YzL!mpEA{o=YV2Au%@2nUbPfof(IgUtveKqsl@6<9q_^49{&HFP7SjFA!=5TAj z^g{iE`;cbNn9P{j5^nRmfU{+0DK`%yJZDv%o=*;I7`&W1H14Hj0UtI>3Ao?zfR|NV z<_}i~LeoGjqGeWN5ZEpC`uY@__iwKf;PA=V0kWLA)o%f)|3A;abm~ZRhk+vL6Jn+a zAH(bVrsabln)jo9u*K>g`ElYLN z7dG1@KGpo|yOt{oQN_-iz{tC~{*^Uu&?&Vt#3R%L(pSm}H03#gcb$p(%G}8ArcKbk zIu-E<9IP-a-**gs*M=lM^4tw)D2y$`mb{ME4e2KR%Mf$Khqphsp*32-1_tQ~@M^R@ zfI62hJi8cWwi{nown4}^J%jM{WY_&`LW#{_EybH3r#Xya()Xyq6_ao%Y*kI9T=N)= zI@&#^E@^^VS9y#NDkKB3?>YPp6^-y)Xt!8Abu!#I6kcWcyc$9)UoKO!moVqZ`o`c- zm%r}6l&X(&lY#Xm=-AJl2!87NNZR~pf*WL^M7+9saIoD;(uCg=@&@~}O9r^Y_wpl| zWAVm-il*CLS-5e}^Y@?yqc^s8BdjpCC5m8C1ewN{L7i1Fh}C9I7C93Q`o}q6;l6KE*-qwgde-DoSe)%{{n;6z{pzPs99(04Cop+xIFGsXHskW3@|v^rtf=)esU zN{n&Xg)Km8@7acG26J%i@Wxurd3RWXw+!ylAp5x@^Un&FWg8gn{Pl!R3bH%e%D)~O z!LuHZKQEoCc$`4y!Z)ru~=GY{cX2R6T5ecGp3A&KnjCS4?9s zl*3TEV=tx;l*0?eW!WMM0ie#u@NQ%%^7B$RkbL}f&kdZ&eAks}j@C>55EGrYOg0R4 z)H*uHgm9z}qx&z(iq!3S9D!yUO8jRq^Bt+K%QohQcq}LUm2f#+i^B_k00TgavOwI#OSF%ReOyr)8*>A9@j9wi zRgga{{^t3^4$j%oEvjq2UPv9SV<+BQ3sES)2r)yy%(K8cXh~)hUG&$y;q-LIZgGi% zMH`z6^z^AP@>62A8FwJG)ste7T1WOpN9(IczX~QnxAQf8E2iikFIQ)NpZ;DfJjJ!N zo!V@z&Hzru>8;5l633+*i>nP|IbQ;P5-2t~5LH&4 z43gz%Z;)~X1M)Au3sQo}Kd6)O3_s?yBd{9`G=GSX{Quke<9GAH?v!umWkL3w-~6Xw z8&3kZ{WxI9ZnC4FFpiYs=f8>oh6lQsrPd-r@W5%C7WzmaKyW8nmHnZ*}@V#QXBN$2?H;!>G@kx84`+8I4iCBD$Q_`xwnL#egT? zhWqv&@0(P2gR88t2x^GR`*d{LLOUbd;0VDK7)rz_dycvQ{`BiOxg?kZXgrUP7n7iP z<3nT;nrz;Mpz4*l<&P9(zts~?Dfar94WkGfSe>lV|K4zT;OlM)+^#3m&d!&JdP#wUifWdBU?jjs`aZGT}__ zy|a`jO5n2D4TdiP(IAJ*hV`92+Q(8&9ZQaBW&ryqVJi11(RyMmC&0QBoDIV?wAvb5 z(0ovrC>6)XLgVRXNKqXIY4AHA*HT+_7+kn*Q5_SX0o8u<*MLS5dZj8){oUs&wU!5| zs!HGiUehuh>oOR=t)Iv|6aZe4nNY_59uS|%g0=#3HYk}QyA#RN%#pblaWI~-blle26DGye zOiE`)z@7N_p^!~a$@>UL>qS#f`}%$aT>m^JZ!;VO$?8T5E$d#u8=iW?BOy-U(F|Se zBl$FNQ}IknL}V)@8)!O6ot^>gNM@Xia+@Ju>udX;-$iI<0oOYCdOZ^h1MYs9%^+g&`-?F^YoTBRObz#jVTq~t?%N}-Jqm} zcu26HV;AIz$bd5)6j7OA?>rZu{Oob5=t?o_$MI>mzc#CZquiDLb_#y5R!@T7TlNK9 zDd~~z5qtsbA9@qHDddBbeU%li)94;kCMTBCft3OHJ}7i`)uX&ZhSl-j_xM|&#-%l< zAL(qML14U5Va*f_3ulD;0#k5cA6?{YetS4{)AOE42l8iPWzaPxZW_ac(0T*WA%wrk z`q`I6bKDlZ`|N8wkhXU{vWUd!EHe$-2X@PGr28(9M_`oaIlWpXVrhcK*B7Mn3w@zj z31_Z{O(ncDFe#VyvI3UJJy#8C2?8viX;|J#qI;X84_W#nE^lxb=gmXSTPTjg?Zfd6 zit$|N(m*qMj|Rot%vcasH!JU5@1hR9K^RPhnNKG+ApacJv^GXLLu|L;hmVhT+iMGJ zwzB(F4+}O8l-_^#h2=G~v^V&w;CstUkB47X!psfcag&r_AVo=?)5nkEJ8-lVhz0$9 zL5jt3{G${o9?(ArZ`m{|56a1XzN1Tm=JQdCBS}&r$Q~*8*pBsxW&`}eo1GLeX#=|k zhf-(Nqan%7_u)FPQ=#gh5nIb#AYAEkO+HYH&JpaM@m{m3B>3gDcjcjKlu!4?7e6D; z={T5gPlB_xj?O8yXtRq7>}Y?@yxg4K8xsO0TaI#_94dxZF^&}O-@KqArE(xARtB`^ zSwCV^Rs`RZaOphgkOllahx1B4qx=Fg9S*Vv&plyPzghOJmk8HqrgO!=WHlW=Uu+ss ztVQvMXA0!zf={D;RP*}s`s0x9c<%X!8YCm?D%(f>?k{W$|$)QkNx==&>KDSE;uy`Bv>_w2n?a~>8%R> z+<0jeFcr4LKjw$*S|yW{c;cH$U_F_8%uWL7D=HTcg)507yoYnMuNb{n5D=rU0)f8?a8W_i{Zy(q5LI|4)9#tmf?q+X>iQ--RY78#ZY-H3*_jg1Bv)k zWf6o(UvjU1v&vXn3aBeinhn__|8GVZc6%&)A*|<48`iKyel&}5_4;f+bpD2nim#Nu zihM?r@lqW#2ubofF0gSB29qeRTszS^iG^c0-6 zV)3Q?n|_y2>QbmLm<@v$DI1QKBOE7ZB+0S)8l8#7xih8+-N%$ua}C-AeBg;k6Px?*xk2_R%Jb!yUqZLIOxpV_E&wm+%~j2N znLxzpV>s(p0Z?0zmNQjo2d3Dy%kD?A;5#je(c5INz=xWf^)yatz?P71mPNW2Fi>C1 z>>sEHg%@<*22}^ajkm1d!@2UHe3ICa?#3)Qrk~S3&D#d*vie;_^R&Qx%ZV#12`=Ek z`%nREVJEN>OVC9XYXt*4uyxYA_nwbd+ELcRY`Pinq_pUWEowvJPX?Ez+hZYPGfs_t zQY!4#CG+CnUk-HmzB!h8qWh{8y*PgJd@b0YYki!;n-kz(V>j}1HUWhej+dI+tas}# z6(3_)eu(mNmWC12PPFMmKDM`#ZtQ!H52-F|kEin}#i)N-s+;DDeGRyu8C|1uDG(g@ zJpAH~S}maJED6uqUkj)wAA4hSl)^*43EWS9Ap5fl^}S!O|5^`G8V&BfdMNI6uHf|d zEu2;m{mb=@-D4s6BkTG%A{7Tne7?YV>Mwl-ugF#>rO6GO|q-8t0^ z=wyh`^osa_!HR2jxUE&-(VdSTSp-$!LpXKNtDh0jdTQCNvliLi4_&JGu}TmCx6-I6 z?wm&X*v=%4>g-R=2lUr)Ub#jhJmSGy6rY(?8umO6EZ@H6;DFCz)Qnl^xDxyg1-DL>%De$i2Cz6yN);cc(ZQw22NC+Oj^M#71z_KaKh zC?46?{Tppbd;om^WZsA9iZ;?uhW5KvH|7I^EBnG;$|61!#oRUn!J7!rX2@RqmD9Ze zoNQO<5u30D@;DJ;yv5Pr)>6rP!{js|^?+YqG1VW;+&m{4o`&pRl`kqd63!)qfJM&$ zn_~z+Bk_Jv-=--JeEXpE{H-C1$B@0EqJ-0c@HEQB%xAo_LIA0ibrR#35)et*OMA@3 z2lTZnTvMLU0MdOgpSal-gHM{>=d{n6!**vPs!wzXmn&jKafdU}9mx287}jw?@j`vH zW|A^kKoV42%Z7447XiJs3Jz0v?>ddRJHi5zhD4t-M8nG(=j6L*2n z#trHzDY#{&CPDW0fbS74$* z%=%bS1SCwna>3jb+4s(zZ5kvYj)Zh4B7|k@J>@C3{{Ma-GCK?W+AT z>K`XPd8RNGGr!}s$mP?4uaW&$XOru-4BR`9>)b%KZaZ@cxJ?Ak&Gb3}e>^WmO@j;| zAMBKWY2;pg5oYLXd^xIfPt+_(z9n!kr>`;dyCcwX&26+a`z%o=W*7o z{Uh3^xQ5TO`TQ-9bj0v8rw8P5AnKvLA<4Q6SmYBQCbCHeirc*Y_PAl$Jq;Hd8<*IMrh~7FieptY&Y2 z?kdj#JG{Vt$=;;mHR${^7q^zYMOy*lJ%>+9%~S#Gnhy0tN4&xJlSiySoy!C6S8rGM z2j>G4fyn2{G1<^J-WTg`D$0)%ba~&oY1=S3Ty%`db|2ys4DO8jAaXb#P}H?v5AZ_w zDEoU{+(pR$}>sBY1f*k>W}p+XFYKB%9V&*d7gE_vf87Yzl`HTlv=V2VH=0_D?T|k9m96$J6J? zx;~WTz^$C$ddQ)F=plu23qQmxBVnBjiN0bOI_G~4AEy@ZOoSiY^TKm@oR(Ti0O(m`XN(TF4~qxu16Vj+zqRG4U^lw?0A* zssxyOZ!P50yfHLd|BCZ|G7&!UOzk5VNQ7sL3@4+{dx1|a$8QPIAbh3T%co)o8J$2G zPdbyAEW-aYHspvozH zArn5U5L2hfGJzoyT}@pyNzf?Yab2Au5tc9Hxejocf`wC!vISe{yXPE^B4-lT1!v`s zc_k8}d!5Gjh#(4yAb5u4o^!D<(s#7AN#Brzy^rI}p+UNR$n7o_PN=n>Uhsk~;g9`GXuf&(@B4A_ zusf{De3O4^4E2W~@9hs_66EKBJPVJPoo(SynO0Fdida~4cmBI&s1dw;FP&=&*B^qw zE=$YX;V`#(^Pta3J}7Hv&?~Tr>@Lh}ukPBmo5If$NsErfsC`|s$`mp_Ux>F%#hJ)} z?8kaUJncHk=>AV#9E&&E;SF!Go|R>*35KVA$~NK~BA}BD7FGqBA<*?dY4CN+54<*x z-53!H1Wl9fc(TiOU?F;RzM2-Dulu#Hs~mJU050_Q*&{De-2Z0KwH4)AH!x7ikK2ih z?!lp|Cb6>Q$PN?pJ0Bj{jxPqUf5-KJ9UN`;HeLm6`-67uEZceuSiRGxoS%gJn?A~1 z1XsNsf#{V|YmZTcui7{wd|YhV6P!PGV0aSObhrMEPTJIub0{y4mE#j3QUOblEvZGN zcvTzp@E>l8-%tnI-KVk0T{Ym?+pF%z%$WY2KMC(XnJ1Go78v!nf=bj93NYi1%KFrE z|5_Kj<+l3ZX5A!azL-CWB4f|J8&{*DM`r^*eZm9C%>J5~+{Pcip%@bTJ{JMghs@}K)RU-AusN2d;TOt+%{JvN>@_sl!A zj#8)CSMQRzK!#I-fiXuOL#c6++TkcqDEB)b5opSlvv=e|xQneS>^c4EOxU5`KKAjj zF+5n_bujd0AY>vQ2pZFmg8i3R3$DZu(1eu~l*@x_uV zm#mm{1wt1ZidUwhXurOozS;O8AN6y^x28F|))$7e)Lj!=a)L{$MQhs60(bHmfI|fz zS@TB_{}Hoc&;d5@I5-*S=}D*`4=;>2rOe_RL;A$4O)cqR5YH?41@X6Vcx#dK&FG;Z z@NG6^rDF)$gQ&gaVpHv$!PNswhYxt5{gJvo*Ye5v5GZv0t!z9FvahEHFb?tvqI+w> z!*sS%=m}5tzbkbQGKc2DrGZJe-Qf-&@{;SFBzIh7U!A`@Jn@O}DLk>FxGu!&1`|YU zi(z&a6zNxdPO+g2x?k2Mi(m2wftPN_Rz3^_TkVJa=U0NDB0~^0wcFnFD*c}pIB!I( zD(?W2 zW{SzL{ps$I=i^Y!{A4rx`7U>Ud9vHS`llPsnd2NV$UFEH1&$GX9?Fn)P51F`{~5eb zR}C>BUY4EyJDG5^e~3f-&+Sj4y?54CA^YZCHt8&szgJ+qh4C=m-f@S!(a!nVi6 z4ZpQzyB;2bsRxf3x>HjEglkZC)38l?v-kY+I}-TH&g?)9=5yDA$4hI}FxT0O%Ng!h z%Mfp*=SX8#^l_d4KL54_-}338oDSyvEsAgXKz9bSoSS?r$vzv|m#fd;I;lzhzvow5 zv}$>y0Wf*?ObTdb&Z+5Rl;65lZ9~e5c(zO!XOc26nPSxYpNh|`mj$y_n0$dp-s&e_ zn^DIoU$@2%5T!ML%L41CEB-+X!M5PPSS$6MXrno_90%j$iWKJX;T&Wu!}Qm;2Gkb3$h9(_Vhux zdQy6_WV-=fNW=|z2zw0SJE=L&Q*-)IZnD81CvjB zzgBduVI^kywenfpC|aZ^;1dh#!GoB2zy2f{vL2oLk6i!H^RJ3OwOI6tJH~S-%q8;L z-ecaABucx*^4k#J^~7Yl-4EBjpM$!djkNwlD*xkk!p%1pt+|DX|1)zjwrE+j#3=u9 zb8f4%4*5a*6V%MZWcSWj-aT`UP3w&4|9V{?xF*`FCg2DTijWqTRW$<%lXRyGhN%$e z;0=n7gUvv;SALC5B^j7}P(DH!1c77^cANu19z;VlQxQ+g#C zkZ*qE+UM045Ma($H#~g{Fpmf;wT$Qjyc1%F^N(nOvC*q-r62X7tmXsq^18-7&tIZ$ zkIStTO(5_Eq3U?5D&)zyOdBc|2l;$N$K$lJ;mefl0z2<=pu9lIq4y2tQzLeCcCzPg z04#PilLl|jg3D(}@l=1wfKc|4IuUvixKm%3on)Mo`13D zejdP@Od>GB^egFfkMu{d)&lo)$7ruj`+~CG!sEnc5U_Q#2{dcg0?j(ld|3uxaSV&$>sCxEn49_tNL=s$C_E}8@ghu75 zrXc~q?99)O(C^5;&re8Jp>ZV{ICA9~+#p2w5Z=bV`ve+sAU@po++;qoQ$$7lVm6pY z{vQh55+Tj2A)tD8YM*pe33!{s+4rQ}190-i@srbJfQxH|gFRROpd)1V#7@e$1SRPfO~BuHOnzCa5EM?WXCD?9JY=kebv4`2muCy&I?U zPXiAKc}0&6WrJM1SG0InOTeA(wxuWca!K#OUekK`{Hc zU6w}{nwQ268%9};){xv_6!>bR@&p=&O8fKCFtFZVYndC}N4u}yyB+L^{1ailI9b*2 z!ePQT&)W{a%62?6*p3^5+qhgf^BeC1cl<}&b{M1w6#goGz8VQl?y3zC`3YqO71LZf-hqC%W z=D0K7DfYelmHKM99=&bGHYtv9#`G(lzWRiCsSVjbiv48_T)$!FEB=#2yPfT@ zBrE~1lZlj z$?&g*Smal_3mGD>NR|KvdV|VZErjz(_O<#ImWyyrBXRzxpJl~?=Xg&SBmA9# zlVNy_md#OObPr*39E?bFErkYnY+@#}u8RW8`cD_K12)DyLe^d5uKpmzp|)u7-oHBIw72u3?u zgpM}5f$GJQ=H(ZE?IQ=%ZaJuD1699oT2riH5};cAqK zx32NbRZ+r{T(Gtfdi&P%zr_>aq(qrCqddDz852_tnTY`RRGZe7=bk`Y@kEF1U^v*$ zO9l6x47}rGfYy2TyLqO?5p8fhST-a_@E)-Jly@TONF!iynr*H;=nQ#ibr~X$<-jXh zeAw7eOJL6fS#=GCVj$!@YWW-&;r*J|-xDYiRRSUV5TljOaL|7;ij9)N6!tbU6>a{E z1XnYNB>WGV0M|uVO-Ygvpj#pZr=G?GziqvRXelhE@nK-pCq(`$?^4OBw*gwPuRBgleBI9 zB)m7jy==h?WVI!ppt4fgeXs4plXsIzaiCXv38+cY!F*ccI4dy&@Cd`Ds7)u$0*6#-oUeq*&>igR1z7`|9{S(oP2gcY`;hiE~ zlkcl2F4!_~JTC62EofZ(ex9gw@Bd5FAM}ChKj;I4hj?V(mqvm}v2Po-g({%`fL)O9 zXfWtiPCqRv9}aTU>Ix+LB*2Toci%~?(RkOGd>*buut0_pSweq(XizdE{s24f^eQDK+8$QF&aq5MKMZaiGkRRoAbRMR^ZB$D@yvO z{lMMGJQ4#|3&1e#zr^|+*%iiOG6t|3{D6Xzy?&Vsn)iKon_V6)ID$h|l)N2V=v=+N zVVM*bhVEg6gg1ukEsX(XZ8VR_>m(3;RX!l{lRRh^n7{G7!U?p$74=lN4+WbiW;4lN z>VeW`mWiGg#LvBW>CAc{g(J{>>QfqOgU-RgFE%xjqE6r~Q(QXEJv6Uo75B4>q@nzK z)Ip7d7ZsgAg1}4qlj4!!f^$1=@jS1PA2Hi8ZsE)7V{n5$r&@jZF{on= z3?~cs1B&Mq49{bk!HDOYM-L?-`?D|$^{+RIg&=g{h4wR5c~EY2SW~3R5oCU)fy?~i zU{i6#Nm^1Gy4zL^P&pzy+u(dQdzJcAm=x^tVlfZJS-kj0^;Wvr4v3Ni@qJ&#cgxMy zyHAXABObqDb?e*p?T$c*tHIn)-VGdAsAT@~F#>Go$%dWm16N($(Kq5?9$cQ2XLzDs)J1evJa(^b9Bz* zt3Zh&YNfkR5s&qPawhY{3j?r9Z*No%QG7&U@vqFs!stHaAD^JL@YgQ zqBmr&0qOmRniolpfyD`ekFY=;;8@=)spv=f4)UozNCCbLq+H22_Fur{6aBv>(^&H< zkwZpMN>tUR>3a~gTICD=oEQkNrd`e|4z&Sa?S@mO&Hk3>Y>z_NQD|;gkBR5_H|ff@ z7hgFihSA>rSdE5b$AqDwm8r=3f-5Xm>zs~I4}?4I{PVf>$dC3(T#kVJvz0kRJ?DS! zKP^`8WkoSezHVXbMBHoVo&NLtWT;KseVHXOzDJLOy}dw(C`S3axC6Wi4FaHZg7D^S zk_#B-P`@B_$Q{_@*j{`R90dRQz5_3=?|<^$7yk2o;jZl;2wr-Dyktw~{P{oU>H3q{ z&gfm7&vd|euE8W_^m+$oJhY|U5z33<$d4fQ&aa;6JT>I>7Lfl`rVg+4EW3Je)j8Cqk^Q4ehk(NL3zvpRLF@@Kk8{b;q5*5C(}23_=_qjSriS}fa89v{WkZt(Ig(%U!~SW0~} z)nSfuYyR3vZFqFfSrgY;6Y}ygHW}U(G zQ?omcx~$PV?zW>$QZPx;`FPLsDR%k+PwQ*8|2+Tv>pRI>1TgopK^I~jQf*I+@;eVl zYZnWUp0R3pasNU$=KbqWl8XP5^F%Wy-_>5l^bh`~eJNG19+?_rlyj;WiL$bz{vMQ| zI=Q8diNpGnR2`Twa;M|_U$1L@nVZy;W0n~6sJraLN-eDepz5pr;G@|MPph>jG@r=_ z*?LEBA5eS^(|RTxXlt{f;P9mov$00V=HaJ8M9>D;0nd;fT>wzYT3<`MS_JN=)7vo! z7Jw5^#Zx*ax}k5Z!6wr)ZMg47VroXD2Ye&aXx<>@246NX9_nMX2EFCq@oV38?s;4) zjvFy{8=a7+zl*^rR~y(e>ktRTB?BJ$;9vMNxj^(V0b_=DEo|^5Us-KHILk#AJj(Y9 zEzn>zaZ&#+4|KH=ADO|jf=6cwZdSZ^-mM>IO3+ZQg5t7|I;+&TPnd$P;ejnXnT9?0 zv+&ivPDMw|`0lm#)}ycO8X#57&oZ{hp)kj59&)fZ!8;4D9rvAYg5SQA0OgPhaGX~0 zn4}-t?}e^-xcC(ogB%O6yU=|T(UeX(o4)cA@@7mS{ybA0Oc4 zZrk%Xj_@s7q;X;Dk1rP8V+USiuGd_mGaTgv2zOm#^+@!Dd>eEy82CvU5DeYL)yUkP z>mX&bl0o#XI_ON^v6PS#3ktX7D>$lAyc8kFchmb`q2N{gAqjm&lqbMT_9VJ=Mk4fb*hw;^KTQp}9CT_|dc9u-w_jy_A!Sx&Hu~g9qMu-@D&_D6nI<*&Q$G*N*G2Gr?&5 zsZDZ-;(2O<&9l&3KIm)=U&Xa~I2%BXqcRuGKd$T>MLR05AW&!~=dL73Y0?Q@V= zCTMRDy7eg)`8N-6jn4(Hl>z(#W!y(*D1J_W^Hcl^=X01UaZG_F1o`u>ut@gK9QYg0 zx*$X3gL{SWi07iFvTGs~>StSjWnBW7v2l~=ykmj%I5vUJIBG&td~<$JXlnNk}RzaF#y{D>DY zbeamnXD9}ToCDHv9+ZJ@vpNUUv*nQV!;hYgY=mF_CAUwNcwZIl_W#LRdLQ8kR-BBB z`>0=nJ3i}3F44hPm z77o76UVmvI7zhUsTZ_f^>^(0c_H%)!F*rqFqlll-Hd6%3@$R$bX?KGv?^-avoq*8!XA^OgQln)S`9WrN#58kcs&?!-D z=z`+z;u|%TUgEexoC-Tqx%+$fTSc!sSzM-y$EY6?`~WHwr-MghH7gJ2%|V&|__wIw z4Dhqe^RS^_29Pcn@;UlB8rnK0XC25zeuQ;-su&fC5IA}9$`N}_v@Z^cep-pjEe2K1 zPf7D%E5JuLRI@+nG^9?{Hc!AQ-t&0zY!8IXkYVDWNi02Vr0Ou^C{A%+iWsOU1b(Wuow!8i zpi?J0Y27Ie3{gzzGvKCy8}%Re>8-oMS;B`3CBx`De*07)8zN;3T@~K}#2BD`IY7;{UEx>3p2y)5a^pvc9wz_aHI8i7rB7ZMvzL=k!SG{W8?RevzTLyM_NHO?0-jD%I#)N4 zK6itwBU6t7`D54hUR2)WasoDs*Rm=8I>*xpHY|%gOh5z}!FjP24DOHJTETlB2fmy% zA8UG`0eilDS4mt(ey49AxFHUaJ~%KL^74}(I>1J?LTeV<+$heq=UM8 z*O?N*rMva^*dw}N?bm@KfwFKg8LK&BZ?O% zPHqH)BP^#*GK|~652J4ejcXAP_1UbeFNPA!0GCR;*5OB{z%kGIcHif4aCRxXU7{=* zkkae-urv6f`RTt22F@N>^6^~mpl@SjO`I(faNS;uY&hixn-yk0{3u5Lh0_bY*KI5aw|;gY2v+IPj%|u$Lzu^opnowKyb#WKOg8!)IdP!cUHkStWE1YJ|y_ zuJ3ya2P3hb64@ZVfA~VNDEs9EV3C}()IE&uD_D}f9Aofr`IczC>m)S;!RY(C^HtP# z;Mr_!vjD3!<9!L8XUu8gM ztc*5LurFH+dy4QHQ8QZClu94}=W$J%MkrK2>w5fgYQU>e{Gfpr@2Pm0rzL`xC1e3uJ^e8?e-rOffr%y2r-2+$B4uZx< zC_aGjgp9Mwb7|nr$V(u0?dEQ|O0z5XH3{TzOWTqh(iqkPZ#lR|N@O1aIr4^?CIUTB z>lnwHBdrW4oN^!IunPX??>Xu3LenpZIiHfS=+zgtJTS_uvXm5f2vJ=5IGJ3F%m608 z#h(P9a}j{1>;HNFd6A8uR5iog$G-j0VVI7?!$c7@gxpc8}+1s*LvBZn=yF zo9Z^OXayK0tF&N67e zB^W7#6#@sl>#r`P=R#cZ&a;|Jg)n(Bx6!%Z0Fa1Fyq&G{1LUU}d%tk{fH_VVuNIav zc+=sC*(Z4&$k_WUCH#dejF9PTi9F>5Whif-FH6w}(T_sq%$NT?AJvX@>OQx7Px%ZA zh*#W&;nzXMvu{l&v>d=DbJ38KqdOQ#pj!{4Oo5Vt^IzC(5ng$^1>5Q-e>T+hIPvM( zX&%^+aL4o;t1)C@Y(9@)YrI=On1N++l>^yL(-fA^2lXm|RJusRuzh>yS(%~kuymP9 z!l+Lf87w%Ik_o36noDSVZQvd9M{f#6vmyUCg+nveSupixh{*}#5I{~DB`J9i-2@_D4td!LlF1uKnY~KZXc)kg9W(VEKri3HwFPssk8z`M!CN$C_+Xi5UTV@7elgMvA79Oeh52dw565Of^}C`qVAB!!n6bUym_T-^ z#mMR}EK`5=kJpPSD-E586z55vRXmP?*rAKp=kFjqu1Y~19X{#a$MGWeR(gaNW*jQP zd+qBL-!S9G4=kMs`dEVU^i*@T7BKOYz(HF*gX&+_@C(&@qxPsw_-*aUsqz;Yu%Myv zZsSucASEFA1gj0bkJ852>P~_Yc)5ms;D<5t*XM>mtzW+w1#yKhju{?D`&i1V<_CdP zaF7WL;lp}5 z@a%+@g5bA0C(YZz=$>gs!c9|8;seeIUyb+o^oT0VXeug3*m;He^% zwMd3S9zC=hEtXL5++E7Ti7%! z?w<(p8K{3QJv9YSd6PPI<$^(2?pE&6f)L>TwZhih*%kDw6t2HyLidW`S69ctgc0z6 z`+4cr8uBmDDouvGlkx?#B;?fGMQDCsSFjX}V?_7$Y>h^&;3uA7{~flcfybS}cHU~R zlP7W~AJb00gB>1Wp5MHD;Gg_9bHC%NKEq*YD*YyzUp1K(th8UeRB%4v4+5X#~^I?oMa?oWRb{#3Vvls7POD9@OD$Y!j4 zFv=@$Ge~w#AiKNOvXmR?!rt+RF>8KT=53PT&rf>hv>y#%^7nLVUGWfjaB(Y!i9H^Y zSf%MXC|2PvKPN$)7wKBlDYG=}Vp67(*T zofF9av{dn;kB-d?jxZxsl|E+y8Tv-s-QLOa@->^uF@0XzQXE3TBeTWwZy0{v2 z%O0WccU3Cc*7;}@B<$>e!sLqVt+O;fpHd8wpYXxK7ak6gG9c zdoU{+T2wWrmj#7_3C`7Dd!s zDEf2aeBgMvUj2BDD}2Y1Uvhsl4<1eY=FIxt2%Miw8JE8s3dT6d@UX=rz?p~5U+EGe zVUN&l*|r#@mt8tHFW~Vx67pH`%9o`ey-Gv2AiMiXBKT!oC9tp`eg6ZIUSuQrnELYn zEtwV&F2JAFgv>vGhFcN4!gIdI_jA@dL7Hv*&q1HYhgiv&asK}%Pyb-g`8SE1CA=(y zi;3H^!l^MiOwS27UJi1OiJQVhrbnOCFxkSLcK-RC^0xg);@0s^s{zdS{hJsMr?;Im zHo9+mk#P}T z=lgi6GSWmTEZ{%i=R5!2`PF@65Xwg3vMBc7|HsmkO!Hp!TH#@9FBk>Wnb#P<&U!|t=6%qs}c zU_SqEg3~GDx{0NR@myT>iT4`kG4a{eWy!n(`%#|GmxW1bt!kL|ioME-!8!GlZJ0bE z)3=*yOw=&-O{&x?xkDZ(UMA0od|z16e_v1k6h?tp*IM{6amiYOqtu&?n08yYrL#7= z!)QO%@ou~Li+}I;@_&=HKk(!H39qdB+wQYlJ|@zLGxtS)&;2>d#E)nC{S>_BJ03Iw zWFgaxs#Xt`8eG?DNx3?69ZFg1V~vNS_-ob2*ZK@uWT7Ef=7k6G2-l9IFKf(PD-Icg zLS{pbAiqlrtvBVzFDO2-^5$6AaX)2vBD7<+Zu$Ss+tVUIG{gFSNlZIkfvQBRQaiFoe`Pf2$!gy_zs{Cz`=(we*MFXW zRWz(`m>*;I=doTj&FooBT=u|#r&W75vUiI9Kg7LvJlEYDKVB4-iil(s31!d7I!KDj z$gb=?vS-`7g zE=w04u>|R__imNpgphMIY^wG|5@6}pc-Zey5A#Wj)GA)a!LfZZSEehw zV2a>3ZiQScuzb?z4E<<07<$KSbw(`=yi+2fFc++cA&wD@8jn?AR@I}Xa3V)|=xcvR zlA0aV|GG`svR?z#e-)S^`Bl5&_N(f=Q{O&m9`JRKUBHb0Ni>) zH*nLedc*By##cQ`k&3nJc1Blv{)i30@U1gCDim4j;5XTA>^Y{MP(1x+V0CvfjB@8` zQ`uV#`LYFNB%WUfi7&nOt1lz`)x4YC(uvx3pewE_XeSBU4;ux{Z|*vi4)vHH>S;5f z^AK$(dFE~PyBluD-X}$@S9!61&Q}g{6&@h7#J;CiOCUV})n{|OsI=Lu1~OZPS4n4h z!B^YVSV|{KA(<)PxsPt8FqJKlg@?-rSn&})&CNu5+>zH$eFa6Yg9dHAyQG@Bt9%&> zKj#xPnUKn=p8b_5%BTLt+Rl+}D>~QjX|WvLb*B!Fda%4o5x0g3Wr_dbse`tY8kjBEP72 z|Fjn5vG*157ee-hV@$-!x!3%m;^^Sk#;?dO^?dT_&DQ)x7?m1&{`v5URlYi>%c%Tv!uJR~|v=42I|G$_m?J0c{q$4uMhvNUksI z)7c*k3NB^wbTOm2)^fpp#2womLCom~UDSiz-A71o&+fJ(KhgJmoQ3_VKB9 zg!6EiB4fsaB^;CxKKM8^?F-cS5A~8V_<)f3TSR&i1rV2)8<+PImrpAC@B9qFX$9vP z_ddD5@pS<2N<2D_kMnCL``h0KV+X?h7PA_7#O)aX^cEZ$Jfj@|j3}DSFSG+Zj2-!p z2900}xo`ZJlN+~ln;lCt@7*%-ujr2fwGnrc8RwCma;ZgA;Mn#o zaOn7p(h4tQ$oA^Xvu^9OQH3rE1ZQw_4Wn;qc8 zh|}iUv{6uQ(OmfcxEt6-nNN3m7qSb55Eb`W@s&gTtFMmLd$>b?$+?HW{L)~+lwVRM z?O*+iPt(PCBoz1x$MODfMs^|H60duo;*tSkI3tZ$Qdsi#tzr{h`9OIA(#RGN`U_AwBDXJ)jEL-*e|n zJRrDH>}Ot=46ZgtDJUIFh4g;z)H?H~!OkIS9cDiizuGl>D^UJo7WhJ$ zFBCwB{5hG)UVXPqK>HPQSW&v|!3dzaFb?P^0w8-pSKG%ZBM_xLAYrQJ1+_1c5OGQ9 z!h$Db*Toa;VD;B06dAU5uvMc&D)=)$sMGR%PwAlq*gDicKCe&!ES4aLD9sD1p5xon zHY)_5k7(bFxg-l4j)D7eVnQ%vzEZf6k{e{x#T;|D-?$xB@_F~qY)&sokZaaFkhBYY zI&mwY=cXj+pt-*TUq>2P&*ydt^_xOhNip4W&x5P&dug3)QCw>bRVg#R&s6V%M%F48D~M0qAfQQAA#|X0*>HQ4pVa6uhG21=YZElj zQTJi*)&0lAWGuH`hmW?M{oLOx4f`v$u#2`>!^HG{$ItBMP)zOJwjNz^pxqIA*?=GU zCE{mivg~f<1}{=S36KvWd_QB;u;Rs99cU`%6U)%awaRzcLEjAPu;-lhD1Gj2GnE7u zU$y1I&x?m-mhY|QU+hY0^wwZS^Lg1SIZ@sjo}b4PP5B@Vqb@5|#~a(in-uy}byn8! zL*W(UsK8P!-H(<&E$sj>un`Y9FQ0OtjsvtBYVmZX5&EnNx9W%mo#R-oe|V9_ zo`Get2A;l(yX&RZY`cKxY4|ls_m0M{D=@u%xyQFi14f6Cb3Jn=gUjOnybs*a`}Xz- zSRLkNfipL{_vU1yb&)#wU|w^G1`H1kn%nMAw#q+QVc~Ig3(7~7bj&Bx;WyTg<{W3; z9p-ik(DY%b)qFw)Q^<$qbpu`(_Vx)?2r|L`Ff2gQ%fGDzsmd0Pa ztM4Oi%d4I{q6qj{Dcwg%(Ks&PD{D0jMB}}cURjsV2|NCAL|bKl>-09^)x6cXe2^>o zl`we){TktP=-L^tV3^(x?BWT?N0#Cg@xINw}w~;n+T3RaoWq>Rj?xCHRye=CY`r3Mf=J z@(9jH@%ERU9PnIxrk5$ViZgIN+#O>qhwJst26U!VmMs6Ef@GXFxl&KWm6A25-J&KahhKJ6}Sqtqz zcw+2Ky<3zukiBjyxwT*N*`;;+^Zs5&E-oT0o(Ya_66!U{$e)4~BR68FOEuy67Y+6U zb{FA(zN2Cz+8W@7_?Z$}K7_lTJ9%T_0-YGBaBgorJ*(72yLY zKVoAz^%<=TPQXp+NS^|@ru!(cM}!yD*T#xXF5iMIJ(OcLMzd;8S&J&$FVG4bK~Mi|HXHvUFHXC8w@g za1vZ1^sMhc>j;Y9F;`yI^90-G4js5%5C+}TcRuDQQ*8VoTjRPm|^cemUL%;E1&2np<;I*osSN_Z;l&tx&)6Kd@4WVvvHh*K(@H6A1Z<{ z<>lQvT8srlpkDOr*=Om7(7k-vHBBZ4dQ<6~z2y}ReO}tND{+Pa;Rkb{35Jn=S4&e` za@fWnJpY=+>>(+=%71;yYR3nL3`pORovfI0033L>``49ZMW9`DkMYztY4D6C|M!3q z6W}Ljl&vL1xDCc^P0PE^D1o<096Pt4K<5*U$Yb>1Lev3!Xj~H=FE-ETdUR-O##1I< ztY33^`&)`4b1Y7S(YK>l9A#4>f7CWU$wYmaC~}))>yB_JS-(3|qwNNqdKc1E*=!AH z--Y?iQXso$lb?B%2%#Z3WH27VNr(J~I(8U7BR}E|1HI0~y`M(wqSb}(6}EcO8*Yc( zV*UM(iP&|8{&yIA+CTC>;i&lK_w14KGibf^7Mb9kiGzyv?sK(g4Pd>mQCp}~B)o!e zrJhF>0qeJOkKC=W1zp^1<=?|aQNJ5oz2PS^2T9CPEGJGPd=$y0tD;%lzA%5FaciuW z@G5^1FNgp11iEJXS|`^n6l+tW6p3Z>k`>)XC}b;{^_;aK!B9b;=hAucL_}E4Ab|!sX#( zVNoo6qYq28qx4$N9I5ZjCCGN+(Ss?>8oEi_ufw8%Pe**suS2SUH;;On)xdq$1}T*AWn|$&a*x%L~@x*x}-#+y0IdLhHjC{}G(sz?c4HyPlQ<5Iq%Z zWUpWc+MhJ>WYldwzsP#|4zkz5pDFv>j~9*4e|eunmqqq4I$ITv65MBbOK=^Uz6h~k zA##QL639_%7o-@CF%)uS>X9h4t=AyWO=&!8V7FYe@4Lb>UYGZVN z=KkEcJSPs_=i+h4J$DJSf%}gbx?awn!RSY8^^S>gd>xa!iuFvp9zDFVUms2@dYn2# z?*;MGv(ze;e4saNr^$A07hujb_$}um(hqxy2ciqMxP!ytgr`p?Bm19=;?pbI{(f+r z<0G+`EYgb)-hWML5`@lqe7>tifCTH!*6gj24a)S#3sTnpr=uexbliKNVRF#DLcdq3AJ7>{U%d@UPEA~;dfam z{J7?1UYb8p#6Nu~{+TS`vGW`m7`pD+rV8rg>r3FV7|xuZ{aT;oi$b zG#bcQMF9I4w3cNAMIm=sYp;)*IQ%WDp_rXy1(t+d?k+CTuC_m-g+9-Xz#QB^aHPA! zl^SFhTsrSt$`5*-R7>bO6dEZ}GruT%=q&-;{tz*@?6v6P{ zuE=ez6l1{UBM-u#-=~d;b_AZ#m;b_38}Q!z@Uu`~5xAB4zMw?~!t*%yj_ZOI6+0wp zd%3{-67Ant14yNL>lD~E_|;TV6xr*n z+ziHkcBq2t56f_#0Qr9yB@*}&TOxa8w8Vfn+mbw(yPR11R-H`bqxXZMN7ffWEJaM+ z)$4jd>_s{ifwT@#7Tw)whCm-q?EO-LIQcFOt{~XfajP8D{Hl)%4 z(RB&bQp)(N{FoyF=WG7qk8@Scq@#oc>lZ{E&77`DECUCx+q(3<(uTScfjdR*l;Gem z4mcXA1PyxW@fg3MbNI*I&kk}FpMbBIULCsTgY?ma(`2I)Z0d0S^I&P;UW6woJW?#o ztB%guE~x>TPu-O<;~Ym-OQam5W0LTB)N+8l)+N}I;?ht(3`2be% zb65E*I4qd>=UKu$ zSNk{a9ftp4P5jU=^8eS5WYhJw>wR7W{|b>{9IvearfB%qx1wy5sT0xS9HQD_KzES+A|GrVn_n^CMHD)qrMA@s&O2 zwcs=M%L_SK+N<|wbg!D=s3t5O~CDlzj$x;wJx_A=03wzWp* zO4a85dLqSY>&knbUnYfyMtog)ag^~y;r&TfDX2O}!%28W7i!5)+Yome!AFM5QAy_d zfG7Lh^1W^}4~!cY3giyC~3Us&+bPy*!ct(dVs7YR-Y+R)3kSi|y}QS$c7 zVPK|=xAE{nbMPj!{)E1<519T@=zc&58*hjs4WAv#FP?{jw@MFFINDEvIlFIV3zv@NB;O0$_`baI-u3?9Tc~{PnL8Fo!#{HLRM`t}AUECHOvyHWi>S^OD*`>S7r10!+JT z8^69nc9}QdTaKR4#NtES@so=-WFxzhruZwNU9Cau%9X`WEbDn3yFO;TVLJaadHpPl`nTePYcG&L^u8IUFW06mfJ>E0Q2DRxfauY;u$=;4Ag$MZlKkcc*diFP zd%?sC(k)FG%#Pc_Ep=1RD?6b&}zqD`_{KF4T+X09%4sjdUk@K zDLgDSp62U_{Kp8b+v6U2B0t&u&?oW_a`Z9!iSI5YwZcAs;8$F(_0m}ywi>0LF|#y; zmxz15&5s#CLhdm4Tmus*^_gC??k?Kjj82J@=>1jh3%62ZJ{KByF$D&b9)ey~Rf z4P0;ZqjmKJ%*2z481h|F)OdFM060ub`t& z*%$=UmJ(Vns$%+cgX12qGw$IZ#yygAopFzo?~QjSS2djj_z=9mRpkRVZepGJ0aoS* zSeYMS&HPxcZ_WHz<*&>Su+IEgEw?g1aQz5A{w*iadf!)mITMScy)uu$$~*!aoJU}t zc?AA2k5>7cokumEi&JyE`2RoKC;vq2*{g8>D*+P5}J zIJ@FnKF+TAr{~93?1G!E*P+*6a(d4(%yVA%${j;84`BE*$2o$i8c@40sb@4y5g+;2 z=cxwIQeI70Filp4Vttqm>x`^Z4(8Ef!nLxiIq*G;n$U zHlxJwtGy1@2~skleL5&B|A0Torswr~)SN4NcwXW-=6&BT=SQieGGh31;#t8x3#fd> zCHl{~N9i{#&yWz=<&JBk_ad&>vWglXh98V~*_?bw1@oLPb@L+5ioqkQ908W<%R96Db@zFPh*p=eHp|Gw4Vg$`D{d{al){caOc z_toU}vG&|Q(Z3wetM&ZX@w`#`m*aj_&i~c8-zcrj4@`Y4^8>?QXMX%&->3fNJX)1= zv-2o+oNatd$``TdtnnOE?g5dk&!mS ztqD)h7DF})K@C-3cku9jgS@j)Cdhlx*{Cd^0bp2Rck$(F`08n5N?8LJY}D60KRSL1 zq%A*|{?&aI?5rQ6cH_1Mdp~{*R^=?)aQ|KvOn>s;yd0KKlU@;BR0jP?mvxEdV!)U} ztWK_I2GE`_?{==qg?(IaMVS9#-}2u-$jt9r0;}FM2}Oj>h?QNGE{D{nAn*O?UnT+(s$<+ErxGf<$~V*!IHAeEUWzX zsUFSv_8>)UjUXWKR1R^@bOt|cg0{&hIslrX?)<|iP2lC)j^LV3gg2O}W$XD? zQvlZRZL8B)KzJciN!unXy?ucZpJTq%z48sWm$_*FsWMY+{?{vni96_suzB?OOXBF& zcq-vwX})kLp%awYuFS>|mIW=oFE;vWWWub+_R>Rbp}=A5*WOpx-O=+E^GxKwe1KRd zoBh`*WcTDsN)aSbN`!&)J+~juqP&wMCpvs7Sh4Yl>ye3NmyD+m)(;@=S6Q|tAJ+bJ zyd%5hpfJKk7~*9)VtMoqJYXc^YnIj7ggw-b0}_p{aH{*}fw%O|&{j)^`+c(>w4+LG+{cXkS?IziT(5@c!(MW7 zi4#YVeUC|l{Y(BMH+XY=K2Fge>6wpu3qyFikiBMCKZ9fBZ$~Kiu3MIbfww;KzIh(r zXL~4Z$~UvMFanO59_1h$jD&g*>yEXyxq`|^s#|iU(S6`R9OwI?1_uyuc}tU30kU%n zy%PEu!xRl&GGpF%EF-xd%oOSgJEM52-=`x*c4=Ver6=3_PjT{A;CM-vo7AEgNIZGr zhnA%iP&bnnsd`}yK3XNd(j-E8YKIPA4h*0;3*Kr79+WRc=U~;u;IM`Bu0TLeKcD6& z^2;sj52ASg6!~wIKXz|f%3U8{P+Duk_IA55XtCaDbQ`#XGfgcVN!>m`y^<@Ab=;mP~%k?@I9DiT=eY*f!&&9sa>e)M{fy`rm#HD>G?h=;S z?i|j}guM6n4eN-Y@g+2phKY)?8{)4FpoqyQ1-Oi2lkVo{cs{`YKN6rIB2#J z3f_}v1&)O<1r;Zx0gtf(k!T|6@0xmg z{!9hbV>SGxrjZo>oDA_ta&Z$py@SGpT$vVnxZNcX$v zC{OU1Xve!Y(hTsMLrF1C0okj6-EkM<3af-9gKDRa&oY1kJhu!O zaM?KSgC1Beiq~%yN9)JE(YfX~)mDHtiRgChFLeJGs`Odx<*YFvzjVs<)V_`5Cmd4P zwp1U3)tBtw-sRQK!r}}_lyEsyzbb{%Q%xnrqV`Zsvg`#zRR;8-I{sw7F%1eOeBLH5 z><_m4CbY&qLH>N*EKj5MZgU4Vl*1`@2}tg?BgG>c7BTR9gl)or2*WDh&!%4M#dyw! z+rd|>1>VJA@p3+opCjEpi_Pm@^qk{M6(!nV6O``zi1_D2?ZSnqg=KqaA6i-(LXib& z$~`aLR=NeBD;>>^{1^y6xulNNGa-G+%#4wn>FLz(IrMNe(Fk zNXazxeLo)f|&h0bEf9k9B)9)Gb*I+_|^7p-d$Zup|N|G{-7vc1O z&tSFro@Ng%KQ(^vdBkB=>!;xwX;KO6?Qtwrrr@}Zcj@aB=zA)6Jk9@QBnx!5 zy(mzrL-B|ba&ofWubjb7o&9Y#;mBXZ%1r$U-Yw+E{;OBOdEfyy{sBkSw&%ijoHhg; z6B){f%&vp1=dIrgc6)<9f5iurbxz>1*v`(>C8Q^_20xA{;c;EfXOH9K@}jNe3qj*< z1xFJ18;2i&)1S`1h}O@p_5s!w!wyvS8;>K!(YV5d;Qk3L9u_X|>stQBzwxtI`GG4q zN}H{>WL)=oYnU;#Z=ovPSrrcDZM=+s*GECs+HN}SPtkxtW!#YSANhyNf$@=R-tj=K z_8KTVh46Dpx2Y5|GNwV3cJreBRmi_quTtMEPaDN;lQOZ_lkW9{%LA;cIj;B^Jqj0p zi2LnsNFl2daJAl6>e_+cTXrxaSfc0k`Dl1kJ@I%^TLOIfoC!}-?5};ajr*or4~loD zHIkP+-4YLo)fk?;u_JtgfO_%9sH9{leJq;#OAqolGIvthsZWUT83;b@%dF?Z=9R_~ zE)HP5|C?xE|0EZ%flIR^s@Gmbz`bU}%Ud;lAxUl-S@3KmAp5HR{geobkJ=Tf991Bp z3AU`{smJkg`Odbj*qszYqDC1H zT6jJQHznqP#T!QZzK^9tYna8?8-dQ<&PL4o5)y?SeBv)G)sO1Khx8Tq;<7&4mp8*X_T!#{y-9bfB z%(!c%Ex324Y0tGc5s>)z(EFwnD9=fK(6LBr8du0cF{$NT&JP_Vy)^ABb)hYbq_ISj zKERcqH8>_$$cEzM#;DH>sK=ZGeBUW##unE14_!+ocs{>|g~KrAb3-a_5&!asBF$6R zYLhJ?Cs)Rtqg^sg-IY4?>ry<_`PfC*&m0HZZ#}3O(Lw$eByZ}DPrC$w2shbCNdgpC z!V}qSvLu}ir%f)?xP6lVWdn{mM7unJj`mX{$DZrJ;Kj4>Tpw>}6i~(HSBS=YGDfekA6w3|qPi z`pymfK9i38hI&6zx-66jLJ&%J)V&JTH*a~UIK?bs!|j;I+xB9V2D{(9@QCXmOTp%K zNh41SCznL~a@$yQ-*=b-Niy;ln8nTE9v_30$rrJ(tGzn5^jI`}_PSC(Vy_zzlSun$ zeiGrY*R}XP4!U6tIv!j;*ieY>^Ji^kWG*fS!b^%N548#Jw!cVU}=MuZ`q;5{io(v@dqgi$Hb=v9uTJyJJmYX{Z&$69$HQ`cCQ( zeO#un_-MO?u#Fe2q0GHXGjSb0Gf4UpqGAl@&6ZAH^FsAEXAH-dJY<8x_buo4(jk4o ztjSA;h0_zNY#;jOcLnL4cvM<1_a~!yq2#dJ@4P%V-U!d+F5CH1eNg?(Cso+n5r`+# z8@WuG1I3TAob}b}U|CS*WnLxHQ-0-8FQt3kV<3G3e@Ovx!UR> z|6h_rfGt@D`LWFU4!+6$$3C-`M!3SV9Cv8~v7q^>V?)*;rrD`0@25RbSZI!_(>4VL zkIC_=eb9cwMmH~GtZWVpazA%}@ka4tp?~L>1-QIxIKJQCc-*VMS8$kcb|_%;w;l!P z6I%g)(CjTi{&bcjOgxb*_`KW?NcU$%9B)JGLzho~@kp#9FnZXa66%Na)4}P~dY8~( z=zm}9ZoCxIvmzq%`?yTd^E4dCUPPaEf)C_QxcK*c!^GLG;5cBubK^q#maq5CAP*Jm zK|@)87*W6!)c(m0N>;Zv->LHi53UVMv^64qv}$nZAzsaQvB9){q7h3pj_$kIOIF1M zz#nDrMAEs@_&h_+Q1V&m8d?Xh*Aw}htdIM<5>L7AcwFA`BJQNCDOA608$&sD10LaX zN>1712g`V^O;pW8f%t{EN2voypHf+}3fNlV1KJKQu!-EYKz53YkrE;);n2RAIQZ2` zT9`F~aKYNehHE=xo z>O){jEo6}SG0J5(40J3wI_e3lK~Ct--C=zFfQIB|u7~#!I5#uJ_|`50{(R6jptxKK zU$!L7e|=U7&s=m=wSMv%Txye+w~6)y4`XM}=V)hxhkMJ_wC`tw2hW5UCQgJwQKtmW z{d2GW*q=BODW!JVX8j8Ex%m+qcbGsSQKd5tX$6o!RrBoD;Cgt1+9$;2)v#@l zB+~0CWepD`Y7YTlcD|{!X*F=}wqMQ8`6Q6^N}%H#Tghtql%1hc;!_V+TytrfL#fIg?n{Y8X`KcRIo;OUGw`Xwxct3iV)%r36#A=MyzGQp~AUnk^zCHcG zyt76{WJ?q5cKvz!*|x;h=XFHumzpCR;M+{GAG`j6FXo+fUWvr*4d9!rb%GiDRcg`dua82;jcnuhSL!(b@m)Sk~LG63zTUkUpn z`hado2JZsb6Hv?V*_=C+1x0nuf6!*5{OZ=d$L$6gG9f2}$ED!bf>r**nC!9fYpsCv zSim#<1%!+EU5S}o{msyZ+cEs|SY$L|2By4bkEa>o-4qO;h!ju2@BzZz)3UVWyC60M zT8oF=RY)>Gqr+hJR{B0rs~^ew_GTYwP1sI#sr(isW;^DEmyhg*vvR(i7p&8v&DGkd z56sBkyhzM+oM>w+DA1#ekl;h>)caH!XWpmHXdKi&r{b#|1b6#+jK%!ILA{Jly3^?j z;7>?I^IN|eEPPG4ezCp)*d6;>^!q;Q&+GdRh)?G=0=Ki0l!12}SNWnxXst(@?gBIM ziK`xdsGp^EXzm^8xr@$$Ig=ME(u#n8((v}~_kAEyTgY9WHWhq5rda9~*a!w9=9WDB zdca*uzv)UJbI@Au?V$M+<&*B{iMS-!o&{9QvXUo{qWU|Y=+W$W+XzVayZ=^lLUGX5 zNAabi8JbqhB{@78Fnf9r+|d`&5qsGMC{*;PDRlZkQAar8`Rnm8@61&xov~WT-nG-5 zU$zmFzbXnkigyR@6V7PTT|#)fql5ic0)!(*GUiHU*m%^#Mtu9^^1@QD~vTYsbZ^KA-w;KGZCtzfr|1N)EBs?2l z!|F_420P16Qq^29gSSHBC!H+I;m})7KN}u2Zk33=cJDt?4u@NPpOdGd@pwn}IJI(0 z9c24Ek1Z;{CcjDYA8;-0g~_{o9Q!srFHYx$XzMNJV#>3U8qZD*)L{6}&fkx|B!$MA zaCuR&(Cxwv*LTq6fz5(iANaD9BxTeh5|~u|7!>P)KxkB-ZpiX6NOfM?y;#!-Ek6s{ zkjA6&C}CckCd&K_{@ORsej@4-+8?WZDdmW|fM$6jRar{YYQGqcOO%F3pz)+A#W}8} zRsr}Ojl|T0GeE&}-}obbEg+LbDRi7F7t^16PtUke^-KW$rxpp#cxk}D^2941!WO{u z`?&qrr+whw8}-kb^p)_jR)W&u;r!KlsBZRL?a=6jHWum4$#re$TuC8UZ-mse#w)+out(N7C&fDbIQ9F6e49N)+V z>K6F&T^i%{^KIZqk)XosB6KgY%z0TRT)h)W9ak473@crg=OWK}23F&TkafCI{9#zd zD*qiIyPZ{x_A9m%M|@rzuJ8A<(RdC2k=Hkqj!tfP{Qs}1qnYQH-a`eD%d#ciZ(J2L z1(mA?Oeh0^ycu4D%L34hNb7Mj;Muf%dJ73#{ix_ReO@}5$hN)i_(4p42EX>02JAcp za^kkI@@q%}86wNm-)N)(uAa5e?Oyh%tC6RH!-tdkZXBZ6wEQ5J?Tm2`HeQ(Apnq6g zf^XCBv#i1ImQy3a^he3w;bPj|_!#~pe|p2Txn1z?%l)6eQSrlVu~N!u5BAsFK?mvX`K87TB@;e^9XNh z`?kw@4!bFVCHE|$!%^hF$fOeZaB75e)9o6nd|l;YjXkfOi1y2s_&?xmY@bY9!mmbg z85TdboF9F-d4FiV>0@QLv)M7vahJFB-rUcC;j0Or@8%#QU**e25UNY~Z`@yVEj6>o zNU(Te3f}J_Oahvv2mgwGIX) z29RPrb7<-f71Z`ve6y8$&!+ox*oVNfqXWAR=!Ne~uDOmK=Q*+m4!j{le%43YYXme7 zWBr%cqsZ-zx7hfX#5OCZeMs;OH=#JDp8K)@WI&t0LAF=PPh$8&9OE`g3&?-gT>Xb0 z9SPQ-dOZ?ZO7X5MBKz0#L`ip7AET!*=J{(&g^f9i*nZU_QT*K(g4QRWWa5@-|Bc7F zMYM8F^H<~j=XveU8Q!Gnip6!^NA{|A?*tQu@4H4$2D1t4zzl5M(Rzf7>-bYSyE6d? zCx3n0^tkz7QEO!+oyC$hxOaE&hrqB1Q1Y$o2E*~2AirJV1fG^7JffBUIok#6H~c3W zDeYDui`jhMx14l>zOo-!|K$gRi|?y;NrT;aa!MsM-r$^$9^>nu!2nm!+UG7B5viFP z+d$Qi$6vkU#>N%@iDD`e9^Glf=8q0F@rbk`!{RagiEQC6;pdOB_goV3iL+;UG%$Pu z!Al{=6JqdTZ3o}6UN@NFdT{1cj60mm`E>kjXBb%fzKcV!#^|meSo^+Y6M>z>kG$ZC z_J}t-$80w(_qOZ97qS4nMAk#PbS zF3z}&jXAB#?`LTL-E9cv=fKH-CdxcojS-zwGDy-G*&i7KqPj^w0aE1ut6HmoC-rvY zdC_r{I>Rraq#uiUE?c*is5AqMBQka2W#cvpXpZuYK`g(5>8c!b@ zm?-G@E&g@=IPwhfnU&|p`eXm*)xBUcXbWTYD-H-NWJX(rvUp%N70V=sh9%=6#pJo9zRGr5!lC2bv6PJbPt8M@=!X?-x3+v^{}TQxyNe zZG3v+-GwSW@a4)=o%*8|;Etzy43CH@=y{tlLqDSf!DCmVLHg61?$7(S6LpW5u>M7X z`~z|cG1&R>^Kr25?`J3vLz)M{3tld)KjnHfRf?~b%Y@Cp@F!v}ea*W>fF0k4fHx_$ z&l|%R%NMZdDqzUr-!vuZ?d zd2C?gdIK(Q_D|)~P34?)W8r!)Md-Q&Y>H8lextJok`QRp@siHV@sO zsL07sxP`(D(;w}?v3zFx>UkB>;X%FEa+yH(;8a{zE*?c(C?; z>NGNZOPQG}LHj#yx@TZ<;&>&yOBl-+%T`6ftd*Uha&Y z52g?9^|N$MC+fgQoGvh#OC$ewWKA!4Q4*Xt`F=-MJJd}VfmRZS3;HC zkzZ0A;J!1)iOuu;Z;3Lw)%@uR>^#h)O^A{l!1_a-U>oy?{Dq9X*mkZ*Ied}CJ8KAz-SVlf%Zrft|f-t1c1-Fo$04lUMS zZNfA2l^2&chR?J{&R?gFP+O*NJf0SZPx7a7W-0E1JIAir?Ep0&>%+-blI?m2z}B!jOo^73w9su3jeLi8;Cu(coiMd`+Xhxmqxn4jye&T0DS@$*nkyqDPh`>2t57ta(W*wJ8`0ROF#1{+YHs3C#$34+M zjKeX{H4K!2ALRiUe&4C;Mk`0OKiv4*b&QhMYV+f&vN!O35_Wv=BV0%>F}i}`H~yaL zJ5=>$)m~02HBILP)izx(j_UBu=1rNg-z}Qu$kFZ@?0P3RDJA`RC$hhh1l0#W_r}_T zHcQq&-zVT*z{WGFJ(LyyHjiEZh5NYFno2}<=5|SA)NbfMxD1f$2M+%x$^hDAw2xIT??-0TQFTY(?atR4{YW&q|kMj zUhQYHT^yD~atd&O=pOll8f15y$o$}8UUmxdSJF;zCqp>nZ=0WInjc5_@bovUvLkzx zVJMx+zHV+U=$Mk+KKk(rOn-Tx`gNo{U^Xt)VF4_g?oR@t81B>OY%$}(^7?g4*@SBt zzI1-&J{DG#_g4%mAR4~%L1DoesXMafIRTT>IogH+dA0J zq4S0AQ*%uve(bqHRtnRcjrS>l%X&-0q;=gkE*4y@hM`n8auNCWn~crc%;?g=N-$LL00a9nD@ z;!&?hD|m2!EYGvssF$|wC?wArVF53#Vd4YV{!u({7*ja-C7kr%pJV?k;jvw{ICfMY z{C;DqLFeKNT92P?8>{mM3M+aS71KcTQBLPg%lCObJ?alc>wJ<}eA*0CpJ{Mys_em& zfG_X9kBN__PiXiqPHln=q)=}^cLlvy7kuYJi*%cE$Z?B5_1s{Z~i;BdmG9Jp1?jQufA-sOoZ*%gAIvi1uK!A;JL!>Z?kO@!0@u* zQ6e!9&?gwPB?lkLpG^AgIK@Bw9&z&L5!x{mNh15RDYa`?K&v^p5m~C+T7d4SNGGEU zPsU>J3I0R^;~%6tGO_WSVKkVZ*T=Ti{Ssjb()0wjChtDm9H(WY9 z{n=jjzuW1*S<;R+&13HqiCP>CyJxWHC51tJ719utw@%0V;2xUd|J^+!U2Bd}q7yb= z&-H5RDG7!P82;->LsQyml($3P$sGSxEH*B1J;M2G-CMa&#M!x4^e!M=#T%B~fZ|h) z1&fZ#SzZP)^d@*rT}ba_31}aYCQtw$wMX1Swb6Zamd3M~%Y{gf4bYGA*+#Dkc5L-N zMc`-(MtB~6{OM{0nus(EGhgYzx$rIR-2GTToIlb2vFzYaG1z-&CeC*8EuGkXSa^-T z)y$ElNi4MSd&YO}cSQpxBsM+%tj;cXx^Kg-S9^xvXH}?U^KEIa(YNrcjhHSqZ+xG2 z=;HiQd}saqF@GY)b@Uk9b@Ukbi7}BPCln|AB9!6gd)tlQGqO8;c-&L;-|rc7STpzy zM6vgTpz4=ExhHmB?^W7*+w3*^E`vpp=RW_yt_$nYS{&Z>C^@9DgHwnO$oefBD5{u& ziM)ouXGdLu5IY^S@u&&h$*9QeUT+Gz3Qk!}AE*OdW*j$<-iw1W_To>MN~?i3wXNe+ zQ8eJLkvEx9DgiU8zBBAx6@YieeigdLex+`EDd>TGHTaW$C71hk`1$hP4flKSZ8>HJ zryB5c`fqy_(~3QcXvH421HbyS(CuunR{!FQ7+bJ9Py$TW=uvKK^r-vEM+-lQAw09) zD|*z9_x1191B*8-XDl?*AI;0blqb&{Bp?ne0nu-owD%Ib0U>qLyN_s#z{gwXOk^Gx z0y%4m22PF$xK{sS?ws#$Iur!g>R%=@6&c=yRUm9dUs6~{U$RasM1YZ<+z7KmRfWuu?71wpMz!75p(NA$Yp!3zY z+m6}j{v=mqCM4*cFZkm5jh*;PMO=2^?Ig*WJ)M(;x@ zhtsoou$#<)WT`tHd_4Q6C)_g!P&D}Eyp(Z(A0Oe*1=z>H`t7Og=JxUMA@l70M&3ZU zpIht%%Vdg8Y{{qhwDsC2%U>aA|fD&I?Si08X(IK+SH*Ur+9?tQzp4h!0+BRu2x z@(~42k3ykdb8vHFryuN0tr%%(@PU@i@8pCM^TEZgU6KWdtYMC@Uy`AAC^WXLc-h_@ z232|w{Bo@igQ8oMtlo?vdqaQ2Nwc>dp)e{hhxdpx(pU2?Tii|Mh=JpeYB8KaI92DjCXuKu<^XHuehH@lF#RYxgPr;iQgHRO78gx@M99De+L&s1(BYJRA60P|IYS33>=ox@7Xo%0Q_lsx0(Kk1Z5hk0^8KxVXm@&@77)Dew0i~y6B}|IWVri zt8L(Q4K)2E31It{1VkARX*K=M0bNJ7sWs0A!nw)u-NDyU|M^SZm<^Ulgq%vX&ux4V zzNdA_i8rs#B!g^Q5;}WIWG^${seMN=6~(bv9Id3|X-Ndtu}oRMgCT&!=72RvK`OYc z5~@005d_WFKp9iwed^}jCT?n925=Gx3Cm>}>hq^&rnU|Bg_%_hHD+Ci|K_NvU|fGZ;GOD(UtS};PZ?<;qJ-VZ zuVVitDxKbUkwC4udby9l1DsbIFp+&62J-m&=Pus}girp?SGoH9C{azpshluSOD3w< zvo#PnHPAb`N|uA19Xn}dNo--8RoB- zwpdHp;QjUe@TeSEn>T9Mv*jw=d;n}!C-+Wo@`h|GyiU8w9N-BR8fNvxvJH>_%M)Ue z@#GuN>-N8%84uSFiW?^LhMtJv^W1Je=nlkMkJ!$4#Nr*04iQ z?pc;o4Af=WzAHE{2IjA}wThGT0(Z-G7wuKZzkf>PrBL+Cx|02WsdlDV*l?gYHeJ)T zzg8B=!pG}gx+GNw!&0L~kyq>~5Z@2+dr53u=K)0|@MhYmec`A#+47&Udi%y`G6;FE z_)4S8j0CFxEJtgK%h<}Q(L8|8^=Z**%BY=TaZ&NyaX%@bz0;yYa7{3H)M+l9ye0yy z{j6;_s2m50+v`}|pda))1`@Xy&`d+sGaU(pS575FPAy%(eJPqA>!=%b^F`jvozG6# z#)FRQ_Z`T`0SilqT(A5g8Z3|t|zimBC+!pC;#1B zBXc`bFu&pYGgOqnWNl!k%VD3v`&gVr8G~9#=}FXoyd0U(NVI!;r6BKp;xb76se|H* z$qsGs&E&Hf-~1?=8xKKuF9dl~z`?jKJoC%>mfNTP9Z z%4?52QyNG44}-3I%I(4G0n0=j>5X2G#v%VLZM^g-Rv{hrbEZ&Uz4H1IS})MrnvVAH zvkL_Nc?;ghmPgb`mIs%&2yt=s(D_fi7u2@(PTFDqWA7(3g}jeVAa4wFPqpz?xS3l(@BJ=E7!#d# z;!C9wsM0MrOJPLoAT39ZfMp3^W{|ipa+7qz|-}+5?YUG+QLO-Jedi$;f`;a`J zjyp6sti7N__Wa|lN~0OnLUBLMwpyOJ?2qDO^L{#=HKvK(M@_jKHw+k%zTTj~hB7u$QxXga$zi?a>-H$cigp|$~V|s+`jb?|fMoZ(x6VsP~c%MtB&^!}z zDYRm>(Su?%ZVn7~-YlX*+Qy?Ys zvr^=4I9O$%EtxYB4%%`07{{Y+NgqC;_T1%2X$k#mIcg8Pa&nOZ{Vtz)$KxNmN&wCT z4|eS=U%<0k&Fx1=EWr0e{GJC+A7kKoIbm)|eqCnY-bMR`3Uq#T%%1ptX&3o^s@Xmf zg&I@zJpG)vb08n0aYrgReWntp&-CN;8A{5@v>SQX0dafZVvlq(eGCS~?S0DjzVoTq z111he4Xl+U->=v2-sSK-Tw6PiSO@xm zv(c4yI%$Cf`FlRoSd~~}_kFzl1+_E3=XPLvkj~E6z9;DIfuX97MFKsR|I_*G*r7sK z^6xd$T&LuOH=%KwET78~1s_Er{AMCO%x(va^wwIsp8Hb7cP{wReizigQ?JkMwEZ_a z?~@KqwfVGS`Bj2x>t$vR{e66cv)0KPnI_ck_)3;zaa|>v56YBTy7w&`mVYZf8frmn zM*e+^n50=bOTQGLdZ<4uTZA1g8rS1->Pp;;Hp~xiCGcSIU=R6v@lvE9%k?t+F&aPV=0t-z%X^`y0^rH$C1G2Iljfk-{a!J5Wgf&9|L-B>@m{a z*u7^>f7OF`8oFS0e1mK$6Xpk}5IQTzM2Fqms&)!EG!SdPY4Rd_UgMb8J*ov<-jAGPC+5b0rVG}rfjY$rWV|5aZ5 zj^Rh@WXqX0>bAqg0o~8_kI3)q&%%s5RV zX2&eg3mNXGN1t1Yi0gwcMY-;5r=Oi<2WnAFE>n-Mfrv88hau{51bys?=p=W9EVeJ! z?fdfZ+T~Ozlx8?LJeCCLUTJ)8G`IsU3FP&(oXdbNWf`_lnD2m|J+>>|K*Xbyrjv?|}O_y-Ruty-W0T(n-NbZ6tq>#7&Z4Oiur+ zU7Y>uAPR2^6;cU^^)k&9@2_+$w16p`e#Nnbes#a7y#59whR24tcd1() zmhsnXAz99lJj=-Os!HT})d79(g;y(qn&ytXnustthm#&~++ ziW`tvFKZjoVYw`l1c~*sED8-Nin=zSOk@`#)}w9`*@f_WR6CJfXbPuC<)}5Rl5{8i zyGU9%dQCP&BlG#_E&gYl^CA)c{p*Ye_4nKXApN9{_>e!KsL$IB-_?P|@ZnXbYU{xy z&Q7+gaqQc*HcWrX#@WfJ`>1z+t-|d8{>+NnT51KLnAmMham22h|J zb7;$Ff5>9yuNYd1?X!z(?^tgO@r60p_q(S*!M?BVtv#=~ISRoO|4;5awqx^o>M*rF zYZiu!TGMVY%ujI#_^CaA>dxT^4h?H24LPQOeZ_3?->ve&WQ>=cd`mR&i7|O@Xo#Hy z>J^@sOV;OtwTim}SOMugCnB7ruRdU{s6M@$?FDH7k`#f?WyUJhQo? zp?ydEU|D=5Jjvz}o59}*JYb1!AhR>%EBgL8(LWKcU6|szl#v8!wr|@}nwboLMpWqB zD8cN%xt>?b<2;igJGZBS^1tP=eR%k*?iPI}tn#5C%J+1IaLc^Ftf z83~JU^$_v(d~i7QU@6?xrKolZf8~dg>MEagHxa&I$P-xYip{g&JF}Jk6L0<%1I&QbVWW{hzCrlR4{rru^n>42jl_+PYfX|{_T&#Bf zpuB%~!QSIJpfPuZt28DIrVJa3-0#KW-P-3DZvRlZ4~}Ox2Yy%c1!4P-Ie(tY1MY@{ zj`yC_g6ZzCNs|llP@3-HAm4iIzBSF_c3xG!45l9*_;qD9wvO+dZQi0xTL|tZFy74C zfPK#=yL#7{@niU{1NS_dpPtAAZM!7z{vJsMdiGpH8!5}d-VfhB_LwKaEb10Pn!8wi zjPA9oN2rXOK|$eSI$hdruqvH_^<$71XgO!5@g^q^TrgkN5F1zwjD35ukG{GIr@amt zB)r4cS?@KvJu*8(p~|CM8@0MI9NjD!_Kl_>2iPklAJ1pKM)SOPdBgpUUUOQ>%HlX<4=I~D~GIo4~Y@p|M{UV*xn!l6bU|Aw5JRP zCy#o|IQn;hMAx$`jJ~_THd~b${SBEg@oCGZI|Dfcd84J|#m66Dc-VM(6Th$-cc^1{ z1P9&CjYpcwU{3z6Zn_*SE<%4ZpQt4j=I8D)X|eTJPlARrEHjk;CmE`sg%g|-P zOIKK35@a{7=(=zeyMHh$m%Ta36%4yQ+U2+H@`Y{&x>ka5mmr1wkqws&I!K=X%~DT` z_~R3i=R=Q9ZgL+eCAppdHmy!vV6G812N{D+Ug4DCz_R`V+s-ec;O$(>$>#I!P~lYA z+`a9j=Rx2p;)}EhG$+4)nXFWkwagJTF4{Zp?d7j=5@40=2Z=kt3vll>Y!{cf4)FaD zzh@D0NXU=f11joUKa*}l^9Yus8i71XvF&KS@q@PsvmaZ@x1;IB`RY5`p!f7Zp3fKM z=FxomtMvDMsGTL@R+SaMa`ySbb-7kWS~>yHS7$~hSvnFBx91qYEAr9$P(a+?^PO*# zwq{?4oz)r_n5dVo*SZvmG%0-Bv>UaXcpi>;?RKzL)zoxSrR?lH|!D{lK^iro`{?-dkvlAbWUI0^p zuVt0b7z3T{8t;7748f&0FIKK7I|~nAF88n25+{2+tC@xdzlxwZEs=^tVs&b$-Dy=a z`}&P3m|m=O&XPi@mvn#Dtu-7iMyCPU^Uv7HDLh~gx{sYZwZcrQ9kok+k8I4fTaEc` z7aL~MS=C6-cUg7c@Sa{W`Sw0M@d(Uysmd-PM3QOI3e@sm7kL=4TB3hzoZv;J{tQsf5a-2WSv&h^Vx;? zjq;6$cP#sSa!qCg@6Ln3`&}uY-c|>|lT2GcxiS#!4xLqfyUH03UCT6YUBv93-74!N zcus{u`!&OMI?|Y(*WK8xhbw@5f7E}A#P+aIcCqNeGciu~W(j`qq>${(+(2I_rSm$Q z_mv&+ILg5zQbKQV{QDPyqU7VGt>kDI_0~c2jMal#+G`WY9}i7|zH{y7==r|t zo-&iiCUhV8=q9{MTtx^J$?eol?REv%oGh|aYCM2}waSTwem_Xu-sG8|2j5hBLE`o{ ze^I`8Tf+-nEe~9Myo&s|tpSfyl`Fi^^|!|Xe&DM`_3`y9DvKFYv3Met=M|m($->a& zg6=7Y`)+Vo7+quaPEUgT$Lr>2SsAc65xo4gRjwS7pRxUtGo#4xv%D?zeKe|8r+3=rzlekDKQ9H> zUO?V!>T-FbP=@O54sXQ5;>tG@_zzVb-yO(9pCgsdU44}=Hh|)a)L2GxrP87ET{0`T zH0%I|Ke}(It` zEuM@Y2zVxM=5x#rD!%HZb%7U#Pg^|jIOVnWS;+jru-e8_ zADX@kfeGDuFxKUGgU&;BFf`CNEW^S~_IRFbJ0$X(72OA7jnm~Wv7&Km^_#LXKMG-b zg!fj>`ToZLaE>oQl1c%01t-YIb4Uv;Ud3dH`r{5e2kqGe(YV@%kJXz#y~Fa;qZy|p zW=2RqN48(&>t0<=IzBKlG5_-TRpf!LN2`*si%Ej$cvWbYonYUC=@IQ72EtdnNRRVN zc~kz{Dp>v>uWO~u_$bwW^qf1l;)PBALqO}p z{Hrvwm>r$&W&FO-ZU1O$K#w_YGV}A>2W0{A#sD z0<7pc{9t!S739ba@|(?XfNw4&u6-Eo2pUsIsA5`^z`?WUG{-+BfZ2C51tszPVW-J>0RSQdRN3_n;qc*t4D>`yF{Q=Nmapb)yn$oOtkDhW;j4L8PzgY&{rT&6NVw zi1anqebf~itDE6Ck$&Zb)35Y#`qgx3o#3gbm_K3yr(YS4UgplK!u(Ts{c5E9*xw(?Cs3Dkc3Bd6YQD+g*vlAt?wegBST_(OxnZTFlfym;co9;(`M==;RC`Rs#o z*p0J$HSJ~}yK9Wuw*zr@uN%d|!A0LOy(Wfbw_XizCM=3u;eX-=wjcXCSs09qHIn>) z#OZE67dwvbGn4{aDd7;+kDl6$sgG{N;tS|0MK;G?ZGv?M7pa-8ykMe1>&bw!3g~NT zeTedL1!S6ZWb#zG4&K^)8UB0#!>7CRyicZE&L6OKO}o9&__sKTyE9u~IA_64C36o( zcriU#uf#>CE(`PLNvejb#sBMjQLtLUokwh7o=VZ4YMUtNaM_A(lVKXHV!pHfig*Bg zHXR;yBM8$IS>kVJb8JqAelOe#I2|#6AAOtDS%!`ncAHx(+(u6MqbqwIY;E`jgEZFl?Dy2CA*`lWS=X>gkNx-Gjx0p!ki-6Rxu8sx0Hbcv-7 zi)X0{8sDAA?*)}zlyCjogyn?=)^>3Y9ZZ7?1HZ3xj$!t^i0;gr)6!TS#=(e8$}1bw zU`){Qm=pS0@X&Psr^VSKSgSS8A!6?YBHtM17QaaVMlUafT=|*;j9O=Q4aEh4#rk7W z>e>l}cH>0b47LW_gCDQ0j;MEH^H|n63XGOS0o{a(m3zA}yXQ(J2FI*lX@uYD^#@gp z-$npw9;LoRjRD{>rTH0c8GjJ}%{AjpdMONIE%RJBVhg^>ea(Ah5dqXZXyW#qhy~!J15uom|ZlQiZX1Ac@v0|9*i~x~frA%xMcFtP|9=^tWIRVVr%=Hf|V)L$Efm89p z5EehN_j*A=et!TM6A*e)p=JhDnA=9%x0nKa{cT*mNRrn@^q)LUttYfIf@kPRAY;LJj`N#qf1$ zK=1KuiO<4V{{oqAp1Ma%!BraPYYwJZ{Ybtif;-!Lvtf73oaW)I8-#HRkSpX-J%Y`r zkl}S*Pk3XYX+W)obGIwhPm;Rlu{Q+@&0Re3WV;X8C^!K?JBA-8FWDKH%h(J}wLS=n zT6#e7q7=Vw&6{v%k-5bC@>1x0xIjT^GzPe@8CLZu$MU|)WOb8P(&m7GJye$uJ;(Bh zx+&ky$@^zPE?t4M&lWJd%Bi6%S2KAtu=W0P-K!()8F0Iu9H-CqNZ8f<;y8U<7W7J} zcHslzpiw36aF@CIQIEE<`>_l zZNYbK92@_Jvx9Agnu$=4c62V3Z@ zI~p2V#!l`KyAHd(eDmHY-Gbr2A168Oas=KikEvR-(?F=%>-V`oZUV~{-7LM-S#a8( zeHZ6F%wDEx$o@!6J_n8`D>SWog5e~zjRi9z zfH|}F>}E#~@Zf}HEZ-_f^8DYXmTMhHgT@yLuSqNkIgo|$A2J6veY=G1NB`5r#%W`8 zjlu{xtY_u-4h;m1>8=+Vp+9)W`POkIl_|_IkIa27LVmv0oU;1-%Sc_4$BjUn#vWXIFF87q{NEkykp%h8aE$^7D4)ZTvY zv#wa!4|IH9xAwi=WQXNH?PB(5bPoCc@>J^&&6Ao2$a`9I)+}T5XgmVbDT))-C78dgi;J5vr=|CgqQB0<2hQb)6o@DMe~vN z)2u6;$wBjSO7&w?rEjVe_|#c%Q%Y<}#}8kQ!mdU#_y?i(P>s2Vpk)O0lb*ZlEzElc z%R{)y8n|b2TAgHh@bxJ1^^)*7{y1D&kU@lR7V;;r6Z{tZzw-$2{?Oxp>}&*nWtCg} z`Vh>18GhG}BidRIILCZ^QJ`)E#*GVixI|cjz$O~bL`q}m3L1Cx?j|1}jh$NS@DEEg zZ+CV+ICJBDw0^`!3GJaP53qZ%X@&`P#VgWr8y~;i+_PHuB>C$u`iA+BBJ>=9-Lvf< z=~2JeV14ep206^WEX%6)`SnlI&yldS5{A;PXuJ=p^o*6_Ih8&-E?wK$!a8rEe$wCe z^V2)NV*Zhp@=Pse^`zIsi5xpT_CrGDAFu1d(66rzY|(WcJ34V>!5htsEqJ=|8P$Gl zTn|y#^4};Uy$;g|rC4^Q-1#W+!tYml!3|FzmD6-$^MiAYV`GejE#R`4qZ;PN>;PH4oDnOV=Lbr3+LaTwdfkJ1)41%IE-ILflNE*s^HaS;NcIyj0Y)IKpbahQ^48T zHtO?2 z!Ld)ZAQfj%6DP8#WtCHdwU@KO9wI;H)R%#jPyS^<;c4)Osh4s)=`eZ&NDxezR{exyi z{z1nzqjUq}k>CW8e~^1~`HO`4U_ejgA8a_UZ=sm&3B3jyi=ZhQwbQv`Af6+1ZbJ2rx4`WkMoxv_f9+I zp@zjh7xccQC}VU07ZW?X7X{y+M(lKGuCpz+hf=^;hCe}*Ca1-YlOLmXKC zwVea+{+-Wi!FZ36)^xWE04Mt1HQy-)oteJ(au$lg7|#C2bR}1QLIJxka^mc7OqP|} zW{%i;ZQJlX#(n<{@bti|$f&2-ey)(&d3jqncJKOjF1;Z%zXsgro#WKJav9uof2?p- zBNCis2v}h!c>}y}S1Nqu9RO~X4sud-VfLhvp(?%Nl}RAAF^T7{XflCM6D@9+x-}ZS zkN15wdkKpJJa>Mf+qJgg9i`pS!5d(gXo_!leGL!Ku^v|J*6QD=vNMn ztFq(({nGb=+%AT|A?Lljb{3{Dzg$?eUE_m42;X!u_4Iwr{u=%j_%f?k}T@yj7RyUoYLnavWKJ~kJIv=#_a7!FBw}+uoj8v9Z3GkFN z)Tv}jg*0RBMbx3eP=Patb=OEDq1~8Q93P%3J43qbaV#Cx7_LH29iNSBc_ftCH#Bj8 z8O!&lW$iBZew{h6~+|-XZPHZdiXFD8cx${M^*>HZ9SdAzfwy<>9tcl$%N5~p6~*Mv3Bhn^ydc!83d5nRIgq~n8uLe0URS;BJrf2Gm-61I=*4hGYxa4Z zIdUuxw%Ae7IX=MREw6r6^4b0oTW6;S=A+ix`N56R-D9`EUV;I`9qMdlI&i%Tht-(v zSs+qTR3e;LNbE_%3*2%ha!nW9V zZ(BV7yipOGPwGte&-ZCYfUi8phh9XwfZ~OR+Z|=%!TBH2xu!dO;P-1?3#L6ng!d1< zIvdt^pbp68`Sb-9IsvYu4)(!9so;M3#^GlS`M?Wjf79Cj^0~k~w(juuxANa*R8`WL zU9je*LXPM5RB(sYv9;V5^QWE)cKymVk3DCp74xD>HyO<6)Us}yhyW+eI9A?F$N!Xf=YY){@ehBxw|EA_kduVO&0UfnsjuMAu#vS)?h>{(-jO+P0J;$dQ_i-I^dtl7X*boYqnJIDP0`b2-775LqY7uw`m#o8 z<%LWiFhX0t(>g2~Y@r)kv~&uGi*&aW>GxxCq{Q~DJ0jjMOwZK;wY_QXb73}co8rD> z8#l(m{42A2Di0>W&1%;&gui*O*!i%K&w|Y&3_lOd(<{tsAy$o zKq;&wK?V0v;FO<217T~8QAD|?Ijj1wGUdY#R(*%pRxl|T68dNs-O|B=c@6?tv+yeU1w zeM->}wYQbX$MfdN#S!GTRJGc&gN^h&p#L__I#K>`ZLk9>wPvMv*T(^yo*E3*tl?JxO z_MTb+Fu619nEqC0kl57Ko6g}vkpJ-YRnv_uSY1xM{HnjBFEmtP=hD`(6z6~;BVf>+ z);?~J#ii`cICrgc8~L~tNBzH~|DZwF=iwfqxGHTFA0%S!qCLd{%r8l$^3G@2m;8Bf zg^S8+oEfbfp!#gJ+_z#hF0x5$U_So<=BH`7tq>5Gj^g~0O1By-HU{&ca@#PqE*xn^ z^L5I$^?m-?@o)Iov#*qI-6wxN5tE?btFymWp>b3U%Kh1A;?a0J9iwW!VSNk-MGo;;NDMC_S4FuD9* z%e%x5SnW_!YHGRyvK#i#DDO6gYLZDpGD76zp1pI`@m^eq+KK!<>+XUDbe@UtJe|Q+ zj^S&3k{49Dwm`bSz|PY!L0^M>yPRCtv(>L(qV_jV3-84}At;W}rY_&p6Fk=la&ijQ z(U*#mp8qBNtzhrPN;IyMRJvZfrlV~KI)0nRtT^Ctbieyuv$?ysAG=p5D{#Dg-9dVs zJ+;lXH%GrH{o{45mswRM&h;PSr$xH6pT9uYt16M4p1o}4=SE1!4=b>@I>JBBvh4F) zslu&{>NtShufU^w;_SdY&=mgo%LgQ^@C|j1w1w-;6e2+kwl6EXh#uf)@Pk!0P+3g^ zi<^jN_^kF`%L&9f^Cx(3#Ll6!L-KxXHJF}MIy{sVdKL9^{7=!mGQVCAy)0ndX`dzV z-4tl&Y?={HHUUbGYN7dQf^d3EWO>R6n<8BWhj_CC>TX!VmmKmqCR=eJx# z>fgJ-RoAsj!W%AvJ~sJtZCPdj-w*M7{JLX5z8M^c#vI~hR~5;xFMIslvn}_YqxD3d zuu8c92qWJvoj{e{%Xyj`8IQ;O4qF|2(x-G&FM`(8l`oo_ zwZN~i1d*@;bi7HW4_j%zB+4ox^Wp2D<1@u56t7r6P=}Yj2h$%Z!zMiS-AT{ijOViD z+vUnbzFya06F2lw19{KeS;RS`35|c45_T?_>Bj8T6$xG=?=;Z&m!kWdSPviGAothn zB>da&#OMTcTwZ#=6tmuh?z^SiuRixl#c-E@t2mStZ9?jF0ugJ7waf4!4PJ8WI(1mWD)^Qqz*uJRxk~PQs$7#^n^HT1_VQk$L`0M>(-h}A| zFJ|@Qt7Mgd^QGQ^ZqXzEYx-TfcmMWJZTetHv?h1AU;r>W?-}GZ>JQ54TiV|#o5KFM zjy2i0$+r{iEPoNW;{}QzupGTQN1;C5iq=!Swd(U^Y?%mX`rd!_$2vFQ{XK5@uFQ3S z?}zxk#>-nrR;gWuYK6wRa)oGI$8xkk@6yf#QRsb?^%0G9fF}9zdGQT3JXJO*4ybFk znvm{)sPlcM?BiVJIxcubLX2W(;1yUn{!PhIaD1JKrguE}`WOh}#pt zxZ~6|j;oNyIdsF6FZuQs`i64)Bq4PCdJDerOfsVP?OSWaA~X(R-~BDe8^G{{2jti2 z*V?PtfeqYrQ*6pk1o^|cPYAG8WA;(J{Or_6l5efR?1c?C}b0x0ki8| z*rJ@jd4&A$OMUDmt$Q09PZ!=x)f4v)y~m&2D)NEf6uWnBx|8X~8A*QqR^e?$Z>jI2 zdep1ElCL9Qqj99~Kcw$AI*9EXR8+ed*p!U^dcSz#d*tG(P}F`)dwNCU%UCr2M%D3D zV~H8Ik7d{H+bn1E_qe2Z5;1wg*rkTX%^0)X&fU+1=CKz$zFiCUV7TubGRf?M)M%aY zzaCPvsyc z^Ni2>5@CCQrP{F;R&8q_AnsA0`8p6Ne~g&#lCpu49h?SNsW7`8dy4aS=GJhy;uu@Z z1Qmu)`ri4b>UfJIkiBZ8Stf_sC;hnUzALn2^TTi3nyQVP?7?ixeq)vsYQXkj63;qc z((Awew<&tz)u94wMJRD1Vt;|G4gA2mV+SXPHH;mwi0%mG2efPKJZV+Yy64ML=u55! zAjLuU|Fx~+)lja+ zb&eU0IJTnxR3R8vlN>>Qoss7`>#n~2%887}jOWcKYOUxv1vk3U+N}E_ zex^>~9Q|!kAbHfe?(u=+V3LyS;{z%)NZg)HlOSDKus$SiZ(>Ge3lGzAQ0I|4&!vIt zlgrW5t!7MLjL~(sTg)O(!~o3$0Rk@;754HG`j6}R)^e$TKdcw{`DO8gA>^}VTOXZb zLXba1vLK{A5Ie8&^3#MJJL9$++b_(D);>RSUI`xHrTaZ+gyBo+v_@Q+AAn@oU>L0|9BmVc!)j@Yo2ciDFgRil-t>N<`R z2g&s;5-zH&;s-etV>sDx{6q*Q(Cl1SenbN8L(RMx7V*_-D-5y8)@bMVyx-H(@>7f~ zF1X^St?FdMyM53$4}FRLQGnL4LWtVPCE89c1mCX}ePeIb5p;sd zJLZgz(Bp?9dOe;CPRh)tTloMT&ZP;rgX}k1l%c z<1i?A$g~$Z`mc8it|j{G;BdkldND3|?%O@^amP=2ykAc9avjqzWph$S)q#cJ-!{Iu zgH)JbRZCUKbxAu9DgYWQTk&=NVUDT~NO+R_f?e;6skX;A_t`kH8?=wCwxHGe^M>tf z7B^4*>f}IuZLBPuR_!r&MWU#34z3hli3<=CsaT+$?!IzqsPJZ|mkbDY&@Z zZ_fsuN@mQWt4_)23X8QE6n&oQOKE-{;xM2PZBKrK&Q;ce>X&>-LG!59mf{5SPVT#@ zYOMLN$B^VakKMK>S-)|2^+*~iyWXA#Tc5(O&l)VtpWi>UWV4d{(a_^S(N$}|@aIrv9nc^`e*iX=gu|nZUht<2etFf+V z&MX9#m{IZwsGq%{meIH9@zp@b;1ZTE!5$6uMClXq0tUs==h4#6xe=9~GO1cKkHCV? zy66VI*+Nx;z8oI5INw54ouoIp^tg{@7%MEMizm|+WDSO$7e!lOxJK-#d@Jty}GSeT2tVw~FQKJV#}8T9W1(U*&+_ zZRZgzOqCzG?t7TZ_GRIHb=nu<+kF=F_bwryZc>9;703MzKp)3pC=!N`qkX5{L@3SR z4+N0>SAgGYODQCs2LYN0ypRY#KH%hahxOZj#Qqb4jm*bvn9_f4Z zLS^cN_pRlaUdk3p2z;Z{$7`>uQAWrZiM7wF&98r`n+G!5Lh5kJ%V#RAvJ#Xe#G4u( z0OGVLZiHLCf)=G3A?gA1lOv`2i;)Y+A~+y-RQNX-h97oDKg_S!`O$2|{VAku92TGj zzq9phj4=W<9q?tl_pnTl4gBe85Y;z*5DWP1u%$c?!3^BzcqD5IRzr{Nilf1>IyG*% zADpW|l8!CIuYQ!AhZ4LjIF1P^w&#W&I(}c z&%z4h$eXsg4_fcPdwn>fXEpCD71M(9e-pozjH8@#V8S@?m$apX?!EPs_8$vfsGxB6 z&jaV!LQ*l#>%D{%%r|g9G0lVWr`Q6|y98vfKs66+)x8jhVOmDsTB*o380szjg?Mej z73FYu>y<=pwme_ku0dx#EP?ZO*@tCRX`*MSt7MU>`r8HN{J6M>Uxz>I__!Vf5&*)y zH3+x19jNywbMp%mVloKe`ery_5pt809HYgQDEyNMBm>uZE1-p!MRuZhbxLD?hF5B> z>ax!Jld2ScsV~O|+GoT`G>>061%~ zD4z-$t0QLNx4bs-b6T~HjiO(Mjc^pmQq{F(y*&PiC25QT((s_MCG6h)OIDM}j!wpv zvp!(!)@F|jD6kpIk0lg0FG^8nyZ&CSFBbI*b2Y4;S4GS|_}KNsX{TT@&8Van=$qW%;06HA1hw9E>f-}i2iNu+j(B${~48HlX4mvO>k!HVcw&JPw^S5}GcZwjo=Pm)-s&;rJto7!owji>hV!XNOkN$}a zFJVQK8%x4xU3Tif;i7GEM|Vzk*l+Zi(zVtpu$UC~4O-LwVqdC9Ss6??_c(qyzx2?4 ztTI3EIhVo&zRO;E<{>o~WuJk~!I|UW>%%GRgFB6fq&)Kvc6)eUsr^3g8PSoZ&;mwZ zr8D`$qV#I-AEa6#6zFGhMrV}jQ*_rmldy4-%x3Hd>|ot}v7v#&4lOY0P~UOKtlqry ziw@RUWoaPUC2;rm9S$;_jIIk$2@A@~D)(InYnR|`(aFPno%P`9;M2C1$3fAi4lxKB zyRYgp>T!yNRE%fvAOgA@rDAJ!$Oa(@Uv`xFI8#J$p_gc0P_VvDMIpO ztRXCh%2RzVU%HPU`dTBok^?rP-->&I+JcUJR2p3`jb0qFw=>O&rM&+4;P~I^Pv;x! ztR#zc^Ag>27=LHd-<)5Fc>X{*J~SEpq}CNRhjr1!-l}q?Jqvd#9CptYLdPsd*PP8) z*Qvb6w(Rx12I8?R6x!~RevinC;f4gJS^PWe@pjEN3_E{d*&Y=2*)|xG!gtMf1iQ7L zx_=P*Lr3`%ULqB|@lZT*Gci-eLX(Y2C#+PN;Yqomq5CE^^0W%4*}J^Q7eLL;hY+Tv z3!X-td#|kxh8NLCf5sW5fS5^5Y#i3Sz5=}(SP1&7@KEIZDt_?ZVE9@Vwadq@eqYCh zmyKstgOELg0Bygo^O)mhh)>V-2OlAmD-rRHyvsl}jAgF;;Ytpzh=Y<4+dUVIt?vCZ z)K$Y$>=&Z(1onFC8Gm+lW%Xn;VjV=9?HH-$GHo#Me^O&{DK(=mD`bbsQ~h?5lb_7y z*}BP-ry1D*}5B#S)c88P`&P+s(U*eDdA<$3J}g=Iq{F@IkiAU0l~l}9Ug zsT98T%??9*bJOI-nmMu&b9;O}(0Kdexx8GQ!(2zKAo0fjtk145PZauRBedbG%UV%? zRggz=8})R4F7j-J#Pyp`k4D?M+4PW0qpY6qMY&tV4UxWPj+X1JU7wOeb!Ke#$56hQ zH^`mjh8M=SX13_hmTjnRlP3$FgM82P zFk*Soy{aU;COQ~*G5OiMXQaMXq}Bm0lag+)9RxwQqD3 z(H5{;^JpTqpn+Wky&L1Lq~ku&AwtXBP$lI4pIz)uZm!Bz@_^_*>3_(7TUF~f(D<>un>y=`fSVn9 zpF;V|BkFfv&J)DhN>I#g1UgRXIt(%pV-x47&3bMFm2&uLAbO$Qrm9kvj@D5{^4}Wv zUaD|wQAz!PR-`cQopJCxRTd)VYVZ}uQvo6Zv6 zm0gLSO*BRTV2%zBg3Ov;-S6;)KKI`oOX!tXxpthtd4=^IxRMGq!#%_p#t+B)7sz)~ zr{Zxv?km(W6kj%DarpifT>Z9)K7R`v*);I`>}S>W2bXo0>_U{dKLP!R1e8^Ie^8c& zRZJcz04W}WUNXIzzOcG8b|R9{=Nfg^PQUtmz#KEWiW8bK{lK;FsbBniygK^L0 zFOZx7?)o#RAKPBhV%{MsjG^CJKH($1JRx_1dX$f~Y=^cN0eUX468gtDb=+5OuU5WL znMp{wW>w{`hFx;%lUg&}g?6p?nHRk_YLS(!;ucKf%&NAoTG(h9{ts1=p!pth)_V3_ zPb0F3Tx?E zf!x^?2wnp;(e5!?tSF}AQi zg)7{s#NI8>3#C-Omb+pm=n&1(kqg+7oR_=q*QkR_N*VE8DQpbi?ZZ!vESfxPHs3_|^dt3<#jDF)-cxc$ zWM>O;3Dh3{lT`5Hja=`2@l0dh1KvopnECzM^s@qtQW9&gr}f;u4a>M>oK%B{GFdUZ z(Vl8T9jX-%xi#nmM_>}(*Pj$TH4-Z+`}IU1j>!McM$|u+`hB^{nNE13*I?(&geEK|Qlu&$Bh`dTgpNK2uQ|{C6&HOo;3Ce4*DaS!Wm?(z6 zLZXlbKO4DXl~2&$OnM(g<5T$UkrZRZVV{)x|o?182KDdc^ zL9$p?5)f1dg zQRU0+ZsUYmjqjkR*`Xs_i)VK}H%O?j$k)uNQrvl|?8J%NVpuXxv0aOAUL@U=!x^!ySiJ?pU(J?L|MmzAZ8Q=t6l=1>AMp z@37<}Z|tyJ;kFSbw`^FL9Ax&-A$Sc9nF9cxeugu1=X(7dn%K$6UEP$q?yMVM@pZUU zy*!%3F^Cg|?BY@?bg`c3J zUrY@MJ%39n8IsH>f142GkU!yu_?;B|REkr2r*Jm#d5pMk)5cZ#w?+jDP6jc@@cp74 z3dSer2C4Uwfv~f8lk5U#e0lNPTg1l>AQ-9P&ws!Pi?N@WYB>+= zs2+0)Bxm!|`?^erCp8pa#K3TE=T#e8#?^>N&ZvFK(4&RmOMTra%U#`X&F}P`MU>slHUx(f%V$33DUao=kLlaYp$UfB-&A+23y z*Cx;7c30{K2mAKs)sA}dG9p^tdZVN3&yz=TF==bs8HYV!=@g7zkMA7IH1)y3y9n+_ zU5Ryy45@xXdVYB7&DyO?hSYufpu)|f`!TrJqDk><{dhiM7bx|ovQmdOXsahWlM9ljHl| zId1PGcX6rN%FH<@K?d=zky1AyJ_W&J(J@d$@zSH8sMh2oSOBG*?rLRL2l}F@ldigS zU@#E64N>(aED4e+WDGfYYV$X$js9sQw(C&$8Jncqgc{|m2lq)yfjGeaPDpa>DF(AX zZ@1E}q~whRa8`%s6YO{V8v@lz7d~Vwbu-IppAQGKJb?5_l`d_h+LV0MUEWGuR5BLXby;X}TdqLXt`~<=f4hnmX zVTF6GFh8y_ZG_-hCvB+_%oUw_e%*{o=jIhJ=!v?IWE`;jjl^Y-d}^cAg=mj}rssI! z(^?%P%gE%qoHD#b>wCcq#6Br|qwDGCm?j1F%QtU7^AuNUxEbE|qYNPX)OQICBCahB z#$I@`y>g_9d}?d{tu?d1c4!9?7=iU@iJ+K4eLaO1z0rB2*gCjse6fTY_60*vPS9B; zGbBG~Pv-Da;hafEzmW04bOtBAP5!juGO;$j5Scms_JtYD$q_OKhd7})%{Fi1CW{iGxY4sv_t&w zeunkrclCu=hIHf_?%+|hcz?G%1$SM}7t^dj#MkNrOti(Y&I~Tv^+5r5aSn=OTI;uM zpDhhNNwHwmrrzc#M?l|@0B5)#R$MrI*8RxD$y_IHkn~Gc&0b|+zg-)N4-WBB_+c2d z8L&Td!+PNM)Wx0p!|cwY#?jWdGfb$MR&1b`C+Ve-Y@b%q)1EHrUvf_L+pG(3nKpn~ zAhl=d*81~Aybx};Z*C(Ez_+yV6~#ZCg*z)m1`X8KeO%LbT>&dBu*%;f>STt7_bAuO zK(}6v-sSeRj+%#lzV+s~ zsypm=z@Yr-Akz}-LqO^$-`%Q#mhM!0vJoF(j;+30V!v%?+>z9R)q8#1NwCm2Yghk5%$Z+ z+jbqn6&`>60JuJF>D^1TI~lPzGydG4wqz94SlKpJ!KIo;QTq)x4C zJu%8RSu73#o844-gazp9LTqh@Gd_G9`2NXir-ZB1FJyr$eBX$=9!(XSzj%fMX(u~Y z`)439`~V1pQ?tNaImU2hjIS}_jPkz6e8Zsz+L7cR7oOuvaXsN#f6DOU(Y6KA^~!T2 zzR+`P^Orx7`bRyj#?hw1f-25v!*lA zJnFDcHg?>09%xw@qDT62SB>EP#ZTvVkpP%RQHc&=kEgU-w3{vaPGPFkfuDyY%Os$_^oJz(?sj$b zUJn7zAt)Lj(O(dwprBwqf9O$!f8GtY;y(X+-i3iejAG7h@92e!^6J0sc>V{W~-5JBBuXM@wf<;IpRJZ^84{4Og6M zulA}d>%yV&*{9Iv)_%9(N?P4HHz>$|&4?}p4j$#sj&_(oIyt*MXofx+fs)nN$S70y zog!6851eFMkb4#kwA<>gYVVTr8Tn7X^lHb`t#W^6+Gvs#@L-CiPT&MSqj5Gva##go=#ekhF1)@{hV^n5=1+AD*srP$hLrI&ib z+*TiU?gVbh$WWPHt)BO#JA|4}-1RhsyN*%{DciPu)aJ(S%hH=tlS|?=nLJL{o;oBx z&HtrbI%Roj?vNOC4|RHtsi3#aU*Zb)ZsHxjg<>Bjdv1Gh5m5dnZ}PHl6g zIJU(mnLdH`c(;C9Dj%3LKOTCa!xSWNciLX}AY$S59W>dPJnWVB!Sd6$;oS9$+4-kU zN1c;MFuz86%HlX}#SdWdb9e}XQ_+A0wIJ`$<;tCnLm-I7UmNeZ+jy0qeOb`BrTAfZx z`9I)Bz2+AQqZ?iKCZ}#OvVHgMm^A1N1u07X6Ie5j9J?dBhj>@MEh-$T9Al`gikq7K znK|RnPZg=4y{>&u&blhL=WZs~meAlmg{J>THA3L#<+Ic*@VX0RVoD(G3v)4%|z-d-1N8KfGX1gx;>8?t+OvdPhSDL%{ubEDM)1uVK z9~QJ;b4k;L;MU)hF@9pbPMloLVl%a*GR+m28z`^#V0W)RW>ypb(4 zBW8y4Sb>I^f+`@~%m8qUBagLM5*P5KK$w)nI)51F$PyFeDAaY@KCwW}Q>mWkd!NBP z#SchalCOhradx?eAh6$SS}9JYfMktSl8G`=^kE4S`-ys_o{66&`;p$#A}PubZ5K`L zg$OgI0@GJq`%%4k7yjNUS3|P8DRPMRSRQgv0f&$d7QcH%%KjDb`29hBYfLw{hv#u@ zYEXs-3YSzcD(UC+OkJ%1Galb51uP_=nK}3VDjrDgm-0PFU|S)YFH`qdnD?RH)V6J{ zSGLT}W3$kto>tOlzv_VIsQvt9A1)aNOog}Rj?)}n4bL9aG~VbeL=tsP4@~$A%S5^Q zNC-np-Lo1Nu}c>`w*q%TS}Uake~crKG?3$=#vN`>TVBHT?tqTBjYZiCn@sXnQ(4*o zcRQK1tVsQTV+1l+qTB(SGe-OOJ8}rmSB5OC%1Z`$}bRh}JJU-kl_CCfUjI~IE%Hhb@EW!D@|SSJD(>KISN2bK?XN8gQl zDf(I<^pNMPZ>`OmT0#f^u^g7T+C8EO6SAVJ0UTv86^KvBGdOCN8sA;xBIbLxn|S+y zRd0aRS50KQbH3+D=JjmGbzr(QlneR&IheCEqnvXPf~jjAQKM92;!-h`Gq*nEjUcZ| zrN&7#5{w0|W0mTEs4Sl?RC7npMO7Y2Ej&%Kl+xdbb^PKmydUhTW_$5ePBV=|d;7Qa zWbUkt;;eTxYjI>XYK@_VFK9~|!Q~Gl#e3Lup}`bpQpCKv;~wToqpMPm$q%|v=et*b zv7bE3DK0QBxE{^D1S!t8*>~rlzsG10tvegr7C7k<-P4{E|D93%ToCZ7Rulhzwej!) zBc9Z{Hs{{`DgetCRfMif)!ea%(D8c*#=yZ(Y!NDFC*f`77cI6p+u2PqIB3R*&ftgd zD4nB^dt&E_Xya8v=OEnn>HtLD4OI^azohvJP%iSfH(DbmTSmP|SL@gXo$fEH^h)MhQzW{4}jzjBQQY!F-T!p>s*a&kDrHM;fixZX+EuAEkHO-Ua$9U~Yc{QG@<%VIicWL5hK6R3?-cx*C9V=?3-%RP_Xc zJy5Hz{DIQrNax~geU2E1FuI(6nmV)sFF+0J`JOEL6wyzyf2J@ zzlIKT3PE^C!^`Q2gR&6c?iEM7&P1QOv{QY)NSNPw;O{S!y3%4i=@RezVs1mEwk=Ti zVXwBE-i^1QZil!&vp+{yx{-#`d$#b;IiMtDURO5iK4b-Xi@u5NoAE_gP*spAZbme= z8$kcqFzN%|dJr1zfaf#)WO(r(x!3Ni#i+ecXZi z93pxSfcd|ZhEH`9JU^8+H_24L14!w5kDrJ{_a$z!#aPQn0Vc?AcVtn3yen+t`0NGP z1IlGO@n!VueP7`7^^QMquaD`jXO|<{g22hB$SHqd=QvWVIQs@Yz#d><<)napjsSE& z#Rr`uexu#qQB)%v{YQaah=P|-I8|8_EtuODJpI`+{SJpQ5al<(?QWRc&j%6|1dtRq zg$-lHx)#T|ufl*mU_3&|59iQ<_rm`x;PFpo`o4zqKLL-~e+4}MS^UqInPMd|V@1_h zz@mvA9VQ=KSU(=q9ou#)Q_ECaz@_;sW%E}taiPlZTD5fE58+H!nl0iUmJ{~sOK-lX zi=L*;E$_~U@wVENR=6#_-)q{nuU_w6#Dufz}57h#b5=0Csw8F6PB+6$zH>8yT9X+4;ds0-dR=d_49 zd=UL)IM$<4QdxA-0~D+DlpgQhnbpTkCwV;$I(t<3_>iD~U1|gLAp2|m^}KMayxSjh zGf7Hy#MKvd4kGm}mFeCo_Col>jI2V!L1USA*BUfs@;s=Fn3=i{m_ zxZs%ZYtF2N+RIcHjMsd`+hU0gf%e_FAB3We*H|gWvt~`lnInjsvbSZd&?{q%`(Kt->s0 zx`ayklHybi9W@YVQhuz&(;pwcU~VRv66?rzyLZukU++u4RSOS%srVG1-0VNdR9`8? zb-v^A6R<~4oPUW5ZS>xGfpJlz$!*>CXS4aHKPbpXJ8*ytAgwF-XR0fSfLTb>YuWukm7No|#{bVX;>U;kR!IO@t6>rl8* z$A9-6WsR_v5|s1mm6QLrD{+3{!4bd_aY@yDE&cB5=3I0Iev26^I^}q|#B8(artTAx ze8605=*#gKA&rqKA-N`6^*aWWi#N1CCAsU!93~~^ZOAYD>p=9jkt_8Bwpiys?b0o$ zsKC?4RBZ(ks$=Wu#d3>tAS?)x2fn!_xLLxrwz9noc4-&LeoJvMfBn?{vByd?zQZ0S z$YH8~pDJj_DhttXmHVCz#GCMHD^)mU6W{(~V?qy&(TVI>uP)(@<#0PBEwaBfcYEv7 zKh^Wy_m-rsYxd!_^_+d}VO5&M;;oD*A5#BiQ!6#YtnJtLH&s-l=YlS#<1IG_q&Q;M zjvvSUJjJ?A#;GAcAA*q^|FNICR%zC^5hv3q!v;Ixh~-;$U^O?540 zqG@giY}N+(UR@dM$%U2VJ}8c7)`%1dh6MrVi22~VX^S7n=B4X~6&1QEe|^mpB?g*| zWNE>ElKe7ohNS`<7r5Kx*VoQ=3o5rlkr)mH`232BzbVSjp2xoVhWd(~bMq{TB-13Y zFV{#xSoxANz7}@e6PKM#(L;El|EKjH!bH$hX;>}8?=^>v_IzKTHT$aMfl+IU?Ll0? zwv_hOC1|4-Us{q<)(Tw``JYuWU+!jFaI9V?dE=MWiI9AGMXsrg(HO4i>jc))qW!m1 z(e?;8(dnxk!HzhR-o(V6rgv3~{XvE4zzCIa;~@+h2vgi)vwUZcPY&D6#C&eqqUJ~? za+mcIaD{{X3)}}DA{*>&`^j2fa(ulx&x!p57E(KUBw&S0S~a=%Vc8|hMkq-+jM%uC z4G?C=^|yPLaz5!z>XG&TOpnrRH978<9LxS?VB;Egm}cl@JD&Mr=?KtiJ*~PvCr=B? zahgxu6~id=ATKx5^b=bx5+HJYr!70KlgU1Vef?!52HCH^O|VOb2!V`4rg`H*H; zG=~DL24+tm$sbAvpx3fkdWd%!aFAc=3rr9Q~B;TI}9{UWmv|pD!l`S89`r=dJbUS5Lt~dAZ%dG_Oix^331VDQ27ax3q%TE>fo=Jwo~Z;FDui`$ zMNjfn173W+3X*tZFI9e(FV`Jo!#`}V7BUirY>NvZ8u%;r+_1jzwa58nx-#Y#vNM

    OubW9#YLo0*nDQ+wS&Kg$xIzmlNPR% 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 literal 0 HcmV?d00001 diff --git a/mints/h2o-dz-mints.npz b/mints/h2o-dz-mints.npz new file mode 100644 index 0000000000000000000000000000000000000000..d9fca01e9769b995f3afce489b619ad63d1d27e6 GIT binary patch literal 22655 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 literal 0 HcmV?d00001 diff --git a/mints/h2o-sto-3g-mints.npz b/mints/h2o-sto-3g-mints.npz new file mode 100644 index 0000000000000000000000000000000000000000..a69ef5a2a8cf5964d5745719e8c66daf817a309c GIT binary patch literal 4619 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', tdm, tdm, optimize=True)) + self.cache[cache_labels[i][1]] = properties + + self.cache[cache_labels[i][0]] = operator + + #cross-section + properties = [] + for root in range(self.ADC.roots): + properties.append(self.cache['oscillator:electric:length:CIS'][root] * 2 * getConstant('alpha') * (np.pi)**2) + self.cache['cross-section:CIS'] = properties + properties = [] + for root in range(self.ADC.roots): + properties.append(self.cache['oscillator:electric:length:ADC'][root] * 2 * getConstant('alpha') * (np.pi)**2) + self.cache['cross-section:ADC'] = properties + + def get_adc_transition_moments(self, type='d'): + #compute the transition dipole and oscillator strength at ADC(1) level + + transition_properties = [] + + + mu_mo = self.get_reference_dipole_components(type) + n, o, v = self.ADC.slice ; nocc, nvir, nrot = self.ADC.occupations + + #get MP2 properties + ds, dd ,td = adc.moller_plesset(silent=True) + + for root in range(self.ADC.roots): + + #ADC ph amplitude + u = self.cache['u'][:, root].reshape(nocc, nvir) + + #get ADC transition density + dm = np.zeros((nocc+nvir, nocc+nvir)) + dm[v, o] += u.transpose(1, 0) + dm[o, v] += np.einsum('ijab,jb->ia', td, u, optimize=True) + + #get transition dipole moment + tdm = np.einsum('ia,xia->x', dm, mu_mo, optimize=True) + + transition_properties.append(tdm) + + return transition_properties + + + def get_cis_transition_moments(self, type='d'): + #compute the transition dipole momemnts and oscilator strength at CIS level + + transition_properties = [] + + mu_mo = self.get_reference_dipole_components(type) + n, o, v = self.ADC.slice ; nocc, nvir, nrot = self.ADC.occupations + + for root in range(self.ADC.roots): + + #get CIS transition density + dm = self.cache['u'][:, root].reshape(nocc, nvir) + + #get transition dipole moment + tdm = np.einsum('ia,xia->x', dm, mu_mo[:, o, v], optimize=True) + + transition_properties.append(tdm) + + return transition_properties + + + def get_reference_dipole_components(self, type='d'): + #return the ground state dipole components + + #get components + if type == 'd': + from post import dipoleComponent + mu_component = [dipoleComponent(self.HF.atoms, self.HF.basis, x, 'nuclear charge') for x in ['x','y','z']] + + elif type == 'n': + from integral import buildNabla + mu_component = [buildNabla(self.HF.atoms, self.HF.basis, x) for x in ['x','y','z']] + + elif type == 'a': + from integral import buildAngular + mu_component = [0.5 * buildAngular(self.HF.atoms, self.HF.basis, x, 'origin') for x in ['x','y','z']] + + else: + print('property operator type[', type, ']not supported') + + #ao->mo + mu_mo = np.kron(np.einsum('rp,xrs,sq->xpq', self.HF.rhf.C, mu_component, self.HF.rhf.C, optimize=True), np.eye(2)) + + return mu_mo + + def adc_diagonal(self, ds, dd, td): + #compute the diagonal of the ADC matrix as a pre-conditioner for the davidson iterations + + n, o, v = self.ADC.slice ; nocc, nvir, nrot = self.ADC.occupations + + #initialize to fock diagonal + diagonal = -ds.ravel() + + adc_diagonal = diagonal[:nrot].reshape(nocc, nvir) + adc_diagonal -= np.einsum('aiai->ia', self.ADC.gs[v, o, v, o], optimize=True) + + return diagonal + + def adc_initial_guess(self, diagonal, f=1): + #initial vector to start Davidson + + #get largest absolute values on diagonal matrix as best guess + args = np.argsort(np.absolute(diagonal)) + + #we only have nocc*nvir roots available + if self.ADC.roots > len(args): + print('reducing requested roots - exceeded ', len(args)) + self.ADC.roots = len(args) + + guess_vectors = np.zeros((diagonal.size, self.ADC.roots * f)) + for root in range(self.ADC.roots * f): + guess_vectors[args[root], root] = 1.0 + + return guess_vectors + + def matvec(self, adc): + #construct the self blocks of EE-self first order matrix dot product with arbitary vector (r) + + n, o, v = self.ADC.slice ; nocc, nvir, nrot = self.ADC.occupations + ds, dd, td = self.ADC.moller_plesset(silent=True) + + adc = np.array(adc) + r = np.zeros_like(adc) + + adc_s = adc[:nrot].reshape(nocc, nvir) + r_s = r[:nrot].reshape(nocc, nvir) + + #singles - singles block + r_s -= np.einsum('ia,ia->ia', ds, adc_s, optimize=True) + r_s -= np.einsum('ajbi,jb->ia', self.ADC.gs[v, o, v, o], adc_s, optimize=True) + + return r + + def direct_solve(self): + #self(1) = CIS + + n, o, v = self.ADC.slice ; nocc, nvir, nrot = self.ADC.occupations + + #excitations + a = np.einsum('ab,ij->iajb',np.diag(np.diag(self.ADC.fs)[v]),np.diag(np.ones(nocc))) + a -= np.einsum('ij,ab->iajb',np.diag(np.diag(self.ADC.fs)[o]),np.diag(np.ones(nvir))) + a += np.einsum('ajib->iajb',self.ADC.gs[v,o,o,v], optimize=True) + + #reshape for solving + a = a.reshape(nrot, nrot) + + try: + e, u = np.linalg.eigh(a) + converged = True + except np.linalg.LinAlgError as e: + print('matrix solve error ', e) + converged = False + + return e, u, converged + + +if __name__ == '__main__': + + def get_excitation_labels(n, type, nocc): + #put HOMO/LUMO labels on excitation + + if type == 'o': + frontier = 'HOMO' if n == (nocc-1) else 'HOMO-' + str(nocc-1-n) + else: + frontier = 'LUMO' if n == 0 else 'LUMO+' + str(n) + + return frontier + + import rhf + molAtom, molBasis, molData = rhf.mol([]) + e_scf = rhf.scf(molAtom, molBasis, molData, []) + + from basis import electronCount + + charge, electrons = [molData['charge'], electronCount(molAtom, molData['charge'])] + + #call adc class with zero roots to initialise object then reset roots + adc = ADC('ee', rhf, electrons, roots=0, solve=[1, 10]) + adc.roots = 20 + + #create ground state class for acd + hf = hf_reference(rhf, molAtom, molBasis, molData) + + #create instance of adc(1) class + adc_1 = first_order_adc(adc, hf, solver='eigh') + energy, v, converged = adc_1.get() + + #instance of ground state RHF object + adc_1.get_transition_properties() + + + if converged: + + nocc, nvir , _ = adc.occupations + nocc_spatial, nvir_spatial = nocc//2, nvir//2 + + print('ADC(1) Excited States') + print('-----------------------------------------------------------------------------------------------') + print('root energy excitation osc. (CIS) (ADC)') + print('-----------------------------------------------------------------------------------------------') + current_energy = energy[0] ; current_root = 1 ; multiple = 0 + + state = [] + for i, e in enumerate(energy): + + if not np.isclose(current_energy, e): + multiplicity = '[' + str(multiple) + ']' + + eigenvector = (v[:, i-1]**2).reshape(nocc, nvir) + + compacted_to_spatial = (eigenvector[::2,::2].ravel() + eigenvector[1::2,1::2].ravel() + + eigenvector[::2,1::2].ravel() + eigenvector[1::2,::2].ravel())/np.sqrt(2) + + idx = np.argsort(compacted_to_spatial)[::-1] + maximum_excitations = compacted_to_spatial[idx] + ix = np.unravel_index(idx, (nocc_spatial, nvir_spatial)) + + oscillator_strength_cis = adc_1.cache['oscillator:electric:length:CIS'][i-1] + oscillator_strength_adc = adc_1.cache['oscillator:electric:length:ADC'][i-1] + + + print(' {:<2d} {:4s} {:>9.6f} {:>9.6f} {:>8.4f} {:>8s} -> {:8s}'. + format(current_root, multiplicity, current_energy, current_energy*getConstant('hartree->eV'), + maximum_excitations[0], get_excitation_labels(ix[0][0],'o', nocc_spatial), + get_excitation_labels(ix[1][0],'v', nocc_spatial)), end='') + + if not np.isclose(oscillator_strength_cis, 0.0) : + print(' {:<9.4f} {:<9.4f}'.format(oscillator_strength_cis, oscillator_strength_adc)) + else: + print() + current_energy = e ; current_root += 1 ; multiple = 1 + else: + multiple +=1 + + state.append(current_root) + + #get full properties for singlet state + root = 14 + print('\nExcited state ', state[root], ' root number ', root, ' energy ', round(adc_1.cache['e'][root], 6)) + print('------------------------------------ ------------------------------------------------------------------') + print(' type gauge CIS ADC ') + print(' dipole oscillator dipole oscillator') + print('------------------------------------------------------------------------------------------------------') + cis_edl = adc_1.cache['dipole:electric:length:CIS'][root] + adc_edl = adc_1.cache['dipole:electric:length:ADC'][root] + cis_osc = adc_1.cache['oscillator:electric:length:CIS'][root] ; adc_osc = adc_1.cache['oscillator:electric:length:ADC'][root] + print(' electric length [{:>7.4f} {:>7.4f} {:>7.4f}] {:>7.4f} [{:>7.4f} {:>7.4f} {:>7.4f}] {:>7.4f}'. + format(cis_edl[0], cis_edl[1], cis_edl[2], cis_osc, adc_edl[0], adc_edl[1], adc_edl[2], adc_osc)) + + cis_edv = adc_1.cache['dipole:electric:velocity:CIS'][root] + adc_edv = adc_1.cache['dipole:electric:velocity:ADC'][root] + cis_osc = adc_1.cache['oscillator:electric:velocity:CIS'][root] ; adc_osc = adc_1.cache['oscillator:electric:velocity:ADC'][root] + print(' electric velocity [{:>7.4f} {:>7.4f} {:>7.4f}] {:>7.4f} [{:>7.4f} {:>7.4f} {:>7.4f}] {:>7.4f}'. + format(cis_edv[0], cis_edv[1], cis_edv[2], cis_osc, adc_edv[0], adc_edv[1], adc_edv[2], adc_osc)) + + cis_mdl = adc_1.cache['dipole:magnetic:length:CIS'][root] + adc_mdl = adc_1.cache['dipole:magnetic:length:ADC'][root] + print(' magnetic length [{:>7.4f} {:>7.4f} {:>7.4f}] [{:>7.4f} {:>7.4f} {:>7.4f}] '. + format(cis_mdl[0], cis_mdl[1], cis_mdl[2], adc_mdl[0], adc_mdl[1], adc_mdl[2])) + + print('\nCross-sections CIS {:>9.6f} ADC {:>9.6f}'. + format(adc_1.cache['cross-section:CIS'][root], adc_1.cache['cross-section:ADC'][root]) ) + + else: + print('ADC(1) failed to converge') + + def lorentzian(e0, e, tau): + #Lorentzian broadening + + gamma = 1.0/tau + g = (gamma/2.0)**2.0/((e0-e)**2.0 + (gamma/2.0)**2.0) + + return g + + + bars = ['oscillator:electric:length:CIS', 'oscillator:electric:velocity:CIS'] + broad = ['oscillator:electric:length:ADC', 'oscillator:electric:velocity:ADC'] + + import matplotlib.pyplot as py + + fig, ax = py.subplots(2, 1, sharex=True) + fig.subplots_adjust(hspace=0.04) + + fig.suptitle('Oscillator Strengths') + + #bar plots + ax[0].bar(adc_1.cache['e']*getConstant('hartree->eV'), adc_1.cache[bars[0]], + width=0.05, color='orange', align='edge', label='length') + ax[0].bar(adc_1.cache['e']*getConstant('hartree->eV'), adc_1.cache[bars[1]], + width=-0.05, color='black', align='edge', label='velocity') + ax[0].get_xaxis().set_visible(False) + ax[0].set_ylabel('CIS') + + ax[0].legend(loc="upper left") + + tau, margin, n = [40, 0.5, 50 ] + + #broadening plots + for i, e in enumerate(adc_1.cache['e']): + + eV = e * getConstant('hartree->eV') + x = np.linspace(eV - margin, eV + margin, n) + if not np.isclose(adc_1.cache[broad[0]][i], 0): + lorentz = lorentzian(eV, x, tau) * adc_1.cache[broad[0]][i] + ax[1].plot(x, lorentz, color='orange') + if not np.isclose(adc_1.cache[broad[1]][i], 0): + lorentz = lorentzian(eV, x, tau) * adc_1.cache[broad[1]][i] + ax[1].plot(x, lorentz, color='black') + + ax[1].set_ylabel('ADC(1)') + ax[1].set_xlabel('Energy (eV)') + + py.show() \ No newline at end of file diff --git a/source/adc/adc.py b/source/adc/adc.py new file mode 100644 index 0000000..b3c44ef --- /dev/null +++ b/source/adc/adc.py @@ -0,0 +1,793 @@ +from __future__ import division +import numpy as np +from atom import getConstant +from cc.fcc import spinMO + +def davidson(matrix, guess_subspace, diagonal, cycles=None, sort_on_absolute=True, tol=1e-8, vectors_per_root=30): + #asymmetric Davidson iterator + #this code is based on O Backhouse's solver in psi4numpy (ADC_helper) + + converged = False + + if callable(matrix): + matvec = matrix + else: + matvec = lambda x: np.dot(matrix, x) + + if sort_on_absolute: + selector = lambda x: np.argsort(np.absolute(x))[:k] + else: + selector = lambda x: np.argsort(x)[:k] + + k = guess_subspace.shape[1] + b = guess_subspace.copy() + theta = np.zeros((k,)) + + if cycles is None: + cycles = k * 15 + + for cycle in range(cycles): + + #orthogonalize sub-space set + b, r = np.linalg.qr(b) + ex_theta = theta[:k] + + #solve sub-space Hamiltonian + s = np.zeros_like(b) + for i in range(b.shape[1]): + s[:,i] = matvec(b[:,i]) + + g = np.dot(b.T, s) + theta, S = np.linalg.eigh(g) + + #selected biggest eigenvalues (theta) and corresponding vectors (S) + idx = selector(theta) + theta = theta[idx] + S = S[:,idx] + + #augment sub-space + b_augment = [] + for i in range(k): + w = np.dot(s, S[:,i]) + w -= np.dot(b, S[:,i]) * theta[i] + q = w / (theta[i] - diagonal[i] + 1e-30) + b_augment.append(q) + + #check for converged roots + if np.linalg.norm(theta[:k] - ex_theta) < tol: + converged = True + b = np.dot(b, S) + break + + else: + #collapse sub-space if too large or augment sub-space + if b.shape[1] >= (k * vectors_per_root): + b = np.dot(b, S) + theta = ex_theta + else: + b = np.hstack([b, np.column_stack(b_augment)]) + + b = b[:, :k] + + return theta, b, converged + +class ADC(object): + #class for Algebraic Diagramatic Construction method for excited states + from cc.fcc import spinMO + + def __init__(self, mode, rhf, electrons, roots=3, tolerance=1e-8, solve=[1,20]): + + self.mode = mode + self.roots = roots + self.tol = tolerance + self.electrons = electrons + + self.guess_vector_factor, self.vectors_per_root = solve + + #check SCF has been computed + try: + rhf.e + except AttributeError: + print('SCF not performed - no integrals') + + self.rhf = rhf + + #set converged flag and do computation + self.converged = False + if self.mode == 'ee': + self.eig_energy, self.eig_vector = self.do_adc_ee() + elif self.mode in ['ea', 'ip']: + self.eig_energy, self.eig_vector = self.do_adc_ea_ip() + + def get(self, type): + #get quantities + + if type == 'e': return self.eig_energy + if type == 'v': return self.eig_vector + + def get_spin_quantities(self): + #from harpy globals get the spin eri and no energies + + spin = spinMO(self.rhf.e, self.rhf.ERI, self.rhf.C, self.rhf.fock) + + return spin.gs, np.kron(self.rhf.e, np.ones(2)), spin.fs + + def get_spin_metrics(self): + #compute the ocupations of spin orbitals + + nocc = self.electrons + nvir = self.rhf.S.shape[0] * 2 - nocc + + #occupation slices + n = np.newaxis + o = slice(None, nocc) + v = slice(nocc, None) + + return (nocc, nvir, nocc*nvir), (n, o, v) + + def moller_plesset(self, silent=False): + #do moller-plesset second order + + n, o, v = self.slice + + #d tensors - d singles and d doubles + ds = self.eps[o, n] - self.eps[n, v] + dd = self.eps[o, n, n, n] + self.eps[n, o, n, n] - self.eps[n, n, v, n] - self.eps[n, n, n, v] + + #doubles cluster amplitudes + td = self.gs[o, o, v, v] / dd + + #output the MP2 energy summary + mp2 = 0.25 * np.einsum('ijab,ijab->', td, self.gs[o, o, v, v]) + + if not silent: + print('\nmoller-plesset(2) energy summary') + print('rhf total energy {:>16.10f}'.format(self.rhf.SCFenergy)) + print('mp2 correlation energy {:>16.10f}'.format(mp2)) + print('mp2 corrected energy {:>16.10f}\n'.format(self.rhf.SCFenergy+mp2)) + + return ds, dd, td + + def do_adc_ee(self): + #shell for ADC computation + + def adc_diagonal(self, ds, dd, td): + #compute the diagonal of the ADC matrix as a pre-conditioner for the davidson iterations + + n, o, v = self.slice ; nocc, nvir, nrot = self.occupations + + #initialize to fock diagonal + diagonal = -np.concatenate([ds.ravel(), dd.swapaxes(1, 2).ravel()]) + + adc_diagonal = diagonal[:nrot].reshape(nocc, nvir) + + adc_diagonal -= np.einsum('aiai->ia', self.gs[v, o, v, o], optimize=True) + + adc_diagonal += 0.5 * np.einsum('acik,ikac->ia', self.gs[v, v, o, o], td, optimize=True) + adc_diagonal += 0.5 * np.einsum('ikac,ikac->ia', self.gs[o, o, v, v], td, optimize=True) + adc_diagonal -= 0.25 * np.einsum('cdik,ikcd->i', self.gs[v, v, o, o], td, optimize=True)[:, n] + adc_diagonal -= 0.25 * np.einsum('ikcd,ikcd->i', self.gs[o, o, v, v], td, optimize=True)[:, n] + adc_diagonal -= 0.25 * np.einsum('ackl,klac->a', self.gs[v, v, o, o], td, optimize=True)[n, :] + adc_diagonal -= 0.25 * np.einsum('klac,klac->a', self.gs[o, o, v, v], td, optimize=True)[n, :] + + return diagonal + + def adc_initial_guess(self, diagonal, f=1): + #initial vector to start Davidson + + #get largest absolute values on diagonal matrix as best guess + args = np.argsort(np.absolute(diagonal)) + guess_vectors = np.zeros((diagonal.size, self.roots * f)) + for root in range(self.roots * f): + guess_vectors[args[root], root] = 1.0 + + return guess_vectors + + def matvec(adc): + #construct the ADC blocks of EE-ADC second order matrix dot product with arbitary vector (r) + + adc = np.array(adc) + r = np.zeros_like(adc) + + adc_s = adc[:nrot].reshape(nocc, nvir) + r_s = r[:nrot].reshape(nocc, nvir) + + #singles - singles block + r_s -= np.einsum('ia,ia->ia', ds, adc_s, optimize=True) + + r_s -= np.einsum('ajbi,jb->ia', gs[v, o, v, o], adc_s, optimize=True) + + r_s += 0.5 * np.einsum('acik,jkbc,jb->ia', gs[v, v, o, o], td, adc_s, optimize=True) + r_s += 0.5 * np.einsum('jkbc,ikac,jb->ia', gs[o, o, v, v], td, adc_s, optimize=True) + + t = -np.einsum('cdik,jkcd->ij', gs[v, v, o, o], td, optimize=True) + t += -np.einsum('jkcd,ikcd->ij', gs[o, o, v, v], td, optimize=True) + r_s += 0.25 * np.einsum('ij,ja->ia', t, adc_s, optimize=True) + + t = -np.einsum('ackl,klbc->ab', gs[v, v, o, o], td, optimize=True) + t += -np.einsum('klbc,klac->ab', gs[o, o, v, v], td, optimize=True) + r_s += 0.25 * np.einsum('ab,ib->ia', t, adc_s, optimize=True) + + adc_d = adc[nrot:].reshape(nocc, nvir, nocc, nvir) + r_d = r[nrot:].reshape(nocc, nvir, nocc, nvir) + + #singles - doubles block + r_s += 0.5 * np.einsum('klid,kald->ia', gs[o, o, o, v], adc_d, optimize=True) + r_s -= 0.5 * np.einsum('klic,kcla->ia', gs[o, o, o, v], adc_d, optimize=True) + r_s -= 0.5 * np.einsum('alcd,icld->ia', gs[v, o, v, v], adc_d, optimize=True) + r_s += 0.5 * np.einsum('akcd,kcid->ia', gs[v, o, v, v], adc_d, optimize=True) + + #doubles - singles block + r_d += 0.5 * np.einsum('kbij,ka->iajb', gs[o, v, o, o], adc_s, optimize=True) + r_d -= 0.5 * np.einsum('kaij,kb->iajb', gs[o, v, o, o], adc_s, optimize=True) + r_d -= 0.5 * np.einsum('abcj,ic->iajb', gs[v, v, v, o], adc_s, optimize=True) + r_d += 0.5 * np.einsum('abci,jc->iajb', gs[v, v, v, o], adc_s, optimize=True) + + #doubles - doubles block + r_d -= np.einsum('ijab,iajb->iajb', dd, adc_d, optimize=True) + + return r + + #get spin versions of integrals + self.gs, self.eps, self.fs = self.get_spin_quantities() + + #get spin metrics + self.occupations, self.slice = self.get_spin_metrics() + + #do Moller-Plesset (2) + ds, dd, td = self.moller_plesset() + + #get diagonal preconditioner + diagonal = adc_diagonal(self, ds, dd, td) + + #generate initial guess from diagonal + guess_vectors = adc_initial_guess(self, diagonal, self.guess_vector_factor) + + #global for this routine + n, o, v = self.slice ; nocc, nvir, nrot = self.occupations + gs = self.gs ; tol = self.tol + + e, v, self.converged = davidson(matvec, guess_vectors, diagonal, tol=self.tol, + vectors_per_root = self.vectors_per_root ) + + return e, v + + def do_adc_ea_ip(self): + #shell for ADC computation + + def adc_diagonal(self, ds, dd, td): + #compute the diagonal of the ADC matrix as a pre-conditioner for the davidson iterations + + n, o, v = self.slice ; nocc, nvir, nrot = self.occupations + + #initialize to fock diagonal + if self.mode == 'ip': + + dh = self.eps[o, n, n] + ds[n] + + # Construct the single-singles (1h-1h) contribution + hh = np.diag(self.eps[o]) + hh += 0.25 * np.einsum('ikab,jkab->ij', td, self.gs[o, o, v, v], optimize=True) + hh += 0.25 * np.einsum('jkab,ikab->ij', td, self.gs[o, o, v, v], optimize=True) + + diagonal = np.concatenate([np.diag(hh), dh.ravel()]) + return diagonal, hh, dh + + elif self.mode == 'ea': + + dp = ds[:, :, n] - self.eps[n, n, v] + + # Construct the single-singles (1p-1p) contribution + pp = np.diag(self.eps[v]) + pp -= 0.25 * np.einsum('ijac,ijbc->ab', td, self.gs[o, o, v, v], optimize=True) + pp -= 0.25 * np.einsum('ijbc,ijac->ab', td, self.gs[o, o, v, v], optimize=True) + + diagonal = np.concatenate([np.diag(pp), -dp.ravel()]) + return diagonal, pp, dp + + def adc_initial_guess(self, diagonal, f=1): + #initial vector to start Davidson + + #get largest absolute values on diagonal matrix as best guess + args = np.argsort(np.absolute(diagonal)) + guess_vectors = np.zeros((diagonal.size, self.roots * f)) + for root in range(self.roots * f): + guess_vectors[args[root], root] = 1.0 + + return guess_vectors + + def matvec_ip(adc): + #construct the ADC blocks of IP-ADC second order matrix dot product with arbitary vector (r) + + r = np.zeros_like(adc) ; adc = np.array(adc) + r_i = r[:nocc] ; adc_i = adc[:nocc] + + adc_ija = adc[nocc:].reshape(nocc, nocc, nvir) ; r_ija = r[nocc:].reshape(nocc, nocc, nvir) + + r_i += np.dot(shp, adc_i) + r_i += np.sqrt(0.5) * np.einsum('ijak,ija->k', gs[o, o, v, o], adc_ija, optimize=True) + + r_ija += np.sqrt(0.5) * np.einsum('ijak,k->ija', gs[o, o, v, o], adc_i, optimize=True) + r_ija += np.einsum('ija,ija->ija', dhp, adc_ija, optimize=True) + + return r + + def matvec_ea(adc): + #construct the ADC blocks of EA-ADC second order matrix dot product with arbitary vector (r) + + r = np.zeros_like(adc) ; adc = np.array(adc) + r_a = r[:nvir] ; adc_a = adc[:nvir] + + adc_iab = adc[nvir:].reshape(nocc, nvir, nvir) ; r_iab = r[nvir:].reshape(nocc, nvir, nvir) + + r_a += np.dot(shp, adc_a) + r_a += np.sqrt(0.5) * np.einsum('abic,iab->c', gs[v, v, o, v], adc_iab, optimize=True) + + r_iab += np.sqrt(0.5) * np.einsum('abic,c->iab', gs[v, v, o, v], adc_a, optimize=True) + r_iab -= np.einsum('iab,iab->iab', dhp, adc_iab, optimize=True) + + return r + + #get spin versions of integrals + self.gs, self.eps, self.fs = self.get_spin_quantities() + + #get spin metrics + self.occupations, self.slice = self.get_spin_metrics() + + #do Moller-Plesset (2) + ds, dd, td = self.moller_plesset() + + #get diagonal preconditioner + diagonal, shp, dhp = adc_diagonal(self, ds, dd, td) + + #generate initial guess from diagonal + guess_vectors = adc_initial_guess(self, diagonal, self.guess_vector_factor) + + #global for this routine + n, o, v = self.slice ; nocc, nvir, nrot = self.occupations + gs = self.gs ; tol = self.tol + + matvec = matvec_ip if self.mode == 'ip' else matvec_ea + e, v, self.converged = davidson(matvec, guess_vectors, diagonal, tol=self.tol, + vectors_per_root = self.vectors_per_root) + + if self.mode == 'ip': + e = -e ; v = -v + + return e, v + +class adc_analyse(object): + #class to process results from adc calculation + + THRESHOLD = 0.1 + ORBITAL_ROOT = 1 + + def __init__(self, adc): + + self.adc = adc + self.root = -1 + + def adc_energy(self): + #ccompute the energies key is 'energy' [multiplicity, e(Hr), e(eV)] + + m = lambda x: len([n for n, i in enumerate(eigenvalue) if abs(i-x)<1e-6]) + eigenvalue = self.adc.eig_energy + + adc_energy = [] + for i in range(self.adc.roots): + multiplicity = m(eigenvalue[i]) + adc_energy.append([multiplicity, eigenvalue[i], eigenvalue[i]*getConstant('hartree->eV')]) + + return adc_energy[self.root] + + def adc_norm(self): + #compute the norms + + nocc, nvir, _ = self.adc.occupations + + blocks = {'ip':['1h', '2h-1p'] , 'ea':['1p', '2p-1h'], 'ee': ['1h-1p', '2h-2p']} + f = {'ip': nocc, 'ea': nvir, 'ee': nocc*nvir} + + mode = self.adc.mode + + #singles + v = self.adc.eig_vector[:f[self.adc.mode], self.root] + norm_single = np.einsum('i,i->', v, v, optimize=True) + + #doubles + v = self.adc.eig_vector[f[self.adc.mode]:, self.root] + norm_double = np.einsum('i,i->', v, v, optimize=True) + + adc_norm = [blocks[self.adc.mode], float(norm_single), float(norm_double)] + + return adc_norm + + def adc_state_ip_ea(self): + #compute the excitations + + has_block = [False, False, False] + dominant_state = [None, -1, None, -1] + state_cache = [] + + nocc, nvir, nrot = self.adc.occupations + s_block = {'ip': nocc, 'ea': nvir} + d_block = {'ip':(nocc, nocc, nvir), 'ea':(nocc, nvir, nvir)} + + spatial = [i//2 for i in d_block[self.adc.mode]] + + #singles excitation + u = (self.adc.eig_vector[:s_block[self.adc.mode], self.root]**2.0).reshape(s_block[self.adc.mode]) + + #aa and bb + blocks = [u[::2].ravel() , u[1::2].ravel()] + + x = np.sqrt(blocks[0] + blocks[1]) + idx = np.argsort(x)[::-1] + x = x[idx] + + dominant = np.count_nonzero(x > adc_analyse.THRESHOLD) + + if idx != [] and (self.adc.mode == 'ea'): + for n, i in enumerate(idx): + idx[n] += spatial[0] + + if idx != []: + dominant_state = [idx[0], x[0], None, -1] ; has_block[0] = True + state_cache.append([[i for i in idx[:dominant]], [i for i in x[:dominant]]]) + + #doubles excitation + u = (self.adc.eig_vector[s_block[self.adc.mode]:, self.root]**2.0).reshape(d_block[self.adc.mode]) + + #aaa, bbb, aba and baba + blocks = [u[::2,::2,::2].ravel(), u[1::2,1::2,1::2].ravel(), u[::2,1::2,::2].ravel(), u[1::2,::2,1::2].ravel()] + + for n, block in enumerate([[0,1],[2,3]]): + + x = np.sqrt(blocks[block[0]] + blocks[block[1]])*np.sqrt(2) + idx = np.argsort(x)[::-1] + x = x[idx] + + dominant = np.count_nonzero(x > adc_analyse.THRESHOLD) + ix = np.vstack(np.unravel_index(idx[:dominant], tuple(spatial))).transpose().tolist() + + #get proper sequence for virtual orbitals + if ix != []: + mask = [2] if self.adc.mode == 'ip' else [1,2] + for i in ix: + for j in mask: + i[j] += spatial[0] + + if x[0] > dominant_state[3]: dominant_state[2:] = [ix[0], x[0]] + has_block[n+1] = True + state_cache.append([ix, [i for i in x[:dominant]]]) + + return has_block, dominant_state, state_cache + + def adc_state_ee(self): + #compute the excitations + + has_block = [False, False] + dominant_state = [None, None] + state_cache = [] + + nocc, nvir, nrot = self.adc.occupations + s_block = {'ee':(nocc,nvir)} + d_block = {'ee':(nocc, nvir, nocc, nvir)} + + spatial = [i//2 for i in s_block[self.adc.mode]] + + #singles excitation + u = (self.adc.eig_vector[:nocc*nvir, self.root]**2.0).reshape(s_block[self.adc.mode]) + + blocks = [u[::2,::2].ravel(), u[1::2,1::2].ravel(), u[::2,1::2].ravel(), u[1::2,::2].ravel()] + + x = np.sqrt(blocks[0] + blocks[1] + blocks[2] + blocks[3])/np.sqrt(2) + idx = np.argsort(x)[::-1] + x = x[idx] + + dominant = np.count_nonzero(x > adc_analyse.THRESHOLD) + ix = np.vstack(np.unravel_index(idx[:dominant], tuple(spatial))).transpose().tolist() + + #get proper sequence for virtual orbitals + if ix != []: + mask = [1] + for i in ix: + for j in mask: + i[j] += spatial[0] + + has_block[0] = True + dominant_state = [ix[0], x[0]] + state_cache.append([ix, [i for i in x[:dominant]]]) + + return has_block, dominant_state, state_cache + + def summary(self): + #output to console + + if self.adc.mode == 'ip': head = ['1h','2h-1p','i','i j a'] + if self.adc.mode == 'ea': head = ['1p','2p-1h','a','i a b'] + if self.adc.mode == 'ee': head = ['1h-1p','2h-2p','i a',''] + + if self.adc.mode == 'ee': + print(' n m energy {:2s}:-----------------------> {:5s}:---->'. + format(head[0], head[1])) + print(' Hr eV norm {:1s} norm '. + format(head[2])) + print('--------------------------------------------------------------------------') + else: + print(' n m energy {:2s}:-----------------------> {:5s}:------------------------>'. + format(head[0], head[1])) + print(' Hr eV norm {:1s} norm {:7s} '. + format(head[2], head[3])) + print('-------------------------------------------------------------------------------------------') + + root = 1 ; cycle_energy = 0.0 + + #from cache and dominant root orbitals are numbered from base 0 + + for i in range(self.adc.roots): + + self.root = i + e = self.adc_energy() + n = self.adc_norm() + + #ignore 0.0000 single normed roots and only print 1 of each multiplicity + if np.isclose(n[1], 0.0000) : continue + if np.isclose(e[1], cycle_energy): + continue + else: cycle_energy = e[1] + + state = self.adc_state_ee if self.adc.mode == 'ee' else self.adc_state_ip_ea + + has_block, dominant_state, cache = state() + + print(' {:>2d} {:>2d} {:>10.6f}{:>10.6f}'. + format(root, e[0], e[1], e[2]), end='') + if self.adc.mode == 'ee' and has_block[0]: + print(' {:>8.4f} [{:>2d},{:>2d} ]{:>7.4f}'. + format(n[1], dominant_state[0][0] + adc_analyse.ORBITAL_ROOT, + dominant_state[0][1] + adc_analyse.ORBITAL_ROOT, + dominant_state[1]), end='') + elif has_block[0]: + print(' {:>8.4f} [{:>2d} ]{:>7.4f}'. + format(n[1], dominant_state[0] + adc_analyse.ORBITAL_ROOT, + dominant_state[1]), end='') + else: + print(' ', end='') + + if self.adc.mode != 'ee' and (has_block[1] or has_block[2]): + print(' {:>8.4f} [{:>2d},{:>2d},{:>2d} ]{:>7.4f}'. + format(n[2], dominant_state[2][0] + adc_analyse.ORBITAL_ROOT, + dominant_state[2][1] + adc_analyse.ORBITAL_ROOT, + dominant_state[2][2] + adc_analyse.ORBITAL_ROOT, + dominant_state[3])) + else: + print(' {:>8.4f}'.format(n[2])) + + root += 1 + + def detail(self, root): + #detailed list of excitations + + self.root = root + e = self.adc_energy() + n = self.adc_norm() + + print('\n-->state (root) {:>2d}'. + format(root)) + print(' polarization type = {:>2s} energy = {:<9.6f} eV'. + format(self.adc.mode.upper(), e[1])) + + HOMO = self.adc.occupations[0]//2 ; LUMO = HOMO + 1 + print(' multiplicity = {:>2d} homo->lumo {:>2d}->{:>2d}'.format(e[0], HOMO, LUMO)) + + state = self.adc_state_ee if self.adc.mode == 'ee' else self.adc_state_ip_ea + + block_label = {'ip':['1h','2h-1p'],'ea':['1p','2p-2h'],'ee':['1h-1p','2h-2p']} + idx_label = {'ip':['i','i j a'], 'ea':['a','i a b'], 'ee':['i a', '']} + sym_label = ['\u03B1->\u03B1','\u03B1\u03B1->\u03B2\u03B2', '\u03B1\u03B2->\u03B1\u03B2'] + + has_block, dominant_state, cache = state() + idx, x = zip(*cache) + + print('block type excitation\n--------------------------------------'.format()) + for n, block in enumerate(has_block): + + if block: + for m, i in enumerate(idx[n]): + if self.adc.mode in ['ip','ea']: + if n == 0: + print('{:<5s} {:<5s} [{:>2d} ] {:>7.4f}'. + format(block_label[self.adc.mode][min(n,1)], sym_label[n], i + adc_analyse.ORBITAL_ROOT, x[n][m])) + elif n == 1: + if (m//2)*2 == m:continue + print('{:<5s} {:<5s} [{:>2d},{:>2d},{:>2d} ] {:>7.4f}'. + format(block_label[self.adc.mode][min(n,1)], sym_label[n], i[0] + adc_analyse.ORBITAL_ROOT, + i[1] + adc_analyse.ORBITAL_ROOT, i[2] + adc_analyse.ORBITAL_ROOT, x[n][m])) + else: + print('{:<5s} {:<5s} [{:>2d},{:>2d},{:>2d} ] {:>7.4f}'. + format(block_label[self.adc.mode][min(n,1)], sym_label[n], i[0] + adc_analyse.ORBITAL_ROOT, + i[1] + adc_analyse.ORBITAL_ROOT, i[2] + adc_analyse.ORBITAL_ROOT, x[n][m])) + else: + print('{:<5s} {:<5s} [{:>2d},{:>2d} ] {:>7.4f}'. + format(block_label[self.adc.mode][min(n,1)], sym_label[n], i[0] + adc_analyse.ORBITAL_ROOT, + i[1] + adc_analyse.ORBITAL_ROOT, x[n][m])) + + def transition_density(self, root, mpdm, type='ee'): + #return the transition density for ee type + + if type != 'ee': + print('transition density only available for electron excitation') + return None + + #collect the properties needed for computation + nocc, nvir, nrot = self.adc.occupations ; n, o, v = self.adc.slice + ds, dd, td = self.adc.moller_plesset(silent=True) + + #get amplitude vectors + u1 = self.adc.eig_vector[:nocc*nvir, root].reshape(nocc, nvir) + u2 = self.adc.eig_vector[nocc*nvir:, root].reshape(nocc, nvir, nocc, nvir) + + gs, _, _ = self.adc.get_spin_quantities() + + t = np.einsum('ikac,kbjc->ijab', td, gs[o,v,o,v], optimize=True) + tD = t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,3,2) + tD -= 0.5 * np.einsum('ijcd,abcd->ijab', td, gs[v,v,v,v]) + 0.5 * np.einsum('klab,klij->ijab', td, gs[o,o,o,o], optimize=True) + tD /= dd + + #the transition density matrix + dm = np.zeros((nocc+nvir, nocc+nvir)) + + #0th order + dm[v, o] += u1.transpose(1, 0) + #1st order + dm[o, v] += np.einsum('ijab,jb->ia', td, u1, optimize=True) + + #2nd order + dm[o, o] -= np.einsum('ia,ja->ij', mpdm[o,v], u1, optimize=True) + dm[o, o] += np.einsum('iakb,jkab->ij', u2, td, optimize=True) + + dm[v, v] += np.einsum('ia,ib->ab', u1, mpdm[o,v], optimize=True) + dm[v, v] -= np.einsum('iajc,ijbc->ab', u2, td, optimize=True) + + dm[o, v] -= np.einsum('ijab,jb->ia', tD, u1, optimize=True) + + dm[v, o] += 0.5 * (np.einsum('ijab,jkbc,kc->ai', td, td, u1, optimize=True) + -np.einsum('ab,ib->ai', mpdm[v,v], u1, optimize=True) + +np.einsum('ja,ij->ai', u1, mpdm[o,o], optimize=True)) + + return dm + +class hf_reference(object): + #holder class for rhf, molAtom and molBasis structures + + def __init__(self, rhf, atoms, basis, data): + + self.rhf = rhf + self.atoms = atoms + self.basis = basis + self.data = data + +class mp2_properties(object): + #class to provide mp2 density and dipoles + + def __init__(self, hf, adc): + + self.hf = hf + self.adc = adc + + def mp2_density(self, type='unrelaxed'): + #compute the mp2 level density matrix in spin basis + + ds, dd, td = self.adc.moller_plesset(silent=True) + + #particle block and enforce symmetry + oo = -0.5* np.einsum('ikab,jkab->ij', td, td, optimize=True) + oo = 0.5 * (oo + np.transpose(oo)) + + #hole block and enforce symmetry + vv = 0.5 * np.einsum('ijac,ijbc->ab', td, td, optimize=True) + vv = 0.5 * (vv + np.transpose(vv)) + + #paticle-hole block needed for relaxed density + gs, _ , _ = self.adc.get_spin_quantities() + n, o, v = self.adc.slice + ov = -0.5 * (np.einsum('ijbc,jabc->ia', td, gs[o,v,v,v], optimize=True) + + np.einsum('jkib,jkab->ia', gs[o,o,o,v], td, optimize=True) + )/ds + + if type == 'unrelaxed': ov = np.zeros_like(ov) + + dm = np.block([[oo, ov] , [np.transpose(ov), vv]]) + + return dm + + def dipoles(self): + #compute dipoles at various levels + + spin_to_spatial = lambda x: (x[::2,::2] + x[1::2,1::2] + x[::2,1::2] + x[1::2,::2]) + + #get components + from post import dipoleComponent + mu_component = [dipoleComponent(self.hf.atoms, self.hf.basis, x, 'origin') for x in ['x','y','z']] + charges = [a.number for a in self.hf.atoms] + centers = [a.center for a in self.hf.atoms] + + #ao->mo + mu_mo = np.einsum('rp,xrs,sq->xpq', self.hf.rhf.C, mu_component, self.hf.rhf.C, optimize=True) + + #compute nuclear dipole contribution + nuclear_dipole = np.einsum('i,ix->x', charges, centers) + + #HF reference dipole + nocc, nvir, _ = self.adc.occupations + + dm = np.zeros((nocc+nvir, nocc+nvir)) + np.fill_diagonal(dm[:nocc, :nocc], 1.0) + + #contract density to spatial + dm = spin_to_spatial(dm) + mu_rhf = np.asarray([np.einsum("ij,ij->", mu_mo[k], dm) for k in range(3)]) + hf_reference_dipole = nuclear_dipole - mu_rhf + + #compute unrelaxed dipole at mp2 level + udm = self.mp2_density(type = 'unrelaxed') + udm = spin_to_spatial(udm) + dm + mu_mp2 = np.asarray([np.einsum("ij,ij->", mu_mo[k], udm) for k in range(3)]) + mu_mp2_unrelaxed = nuclear_dipole - mu_mp2 + + #compute relaxed dipole at mp2 level + rdm = self.mp2_density(type = 'relaxed') + rdm = spin_to_spatial(rdm) + dm + mu_mp2 = np.asarray([np.einsum("ij,ij->", mu_mo[k], rdm) for k in range(3)]) + mu_mp2_relaxed = nuclear_dipole - mu_mp2 + + return {'hf': hf_reference_dipole, 'mpu': mu_mp2_unrelaxed, 'mpr': mu_mp2_relaxed} + +if __name__ == '__main__': + + import rhf + molAtom, molBasis, molData = rhf.mol([]) + e_scf = rhf.scf(molAtom, molBasis, molData, []) + + from basis import electronCount + + charge, electrons = [molData['charge'], electronCount(molAtom, molData['charge'])] + + adc = ADC('ee', rhf, electrons, roots=6, solve=[2, 10]) + + adc_a = adc_analyse(adc) + adc_a.summary() + adc_a.detail(0) + adc_a.detail(3) + adc_a.detail(4) + + mp_prop = mp2_properties(hf_reference(rhf, molAtom, molBasis, molData), adc) + dipoles = mp_prop.dipoles() + + print() + caption = ['hf reference dipole', 'mp2 unrelaxed dipole', 'mp2 relaxed dipole'] + for i, mu in enumerate(['hf', 'mpu', 'mpr']): + x , y, z = dipoles[mu] * getConstant('au->debye') + print('{:<20s} x= {:<8.4f} y= {:<8.4f} z= {:<8.4f} D'.format(caption[i], x, y, z)) + + + adc = ADC('ee', rhf, electrons, roots=20, solve=[2, 10]) + adc_a = adc_analyse(adc) + root = 14 + dm = adc_a.transition_density(root, mp_prop.mp2_density(type='relaxed')) + + from post import dipoleComponent + mu_component = [dipoleComponent(mp_prop.hf.atoms, mp_prop.hf.basis, x, 'origin') for x in ['x','y','z']] + charges = [a.number for a in mp_prop.hf.atoms] + centers = [a.center for a in mp_prop.hf.atoms] + + #ao->mo + mu_mo = np.kron(np.einsum('rp,xrs,sq->xpq', mp_prop.hf.rhf.C, mu_component, mp_prop.hf.rhf.C, optimize=True), np.eye(2)) + + #get transition dipole moment + tdm = np.einsum('ia,xia->x', dm, mu_mo, optimize=True) + + os = (2/3) * adc.eig_energy[root] * np.einsum('x,x->', tdm, tdm, optimize=True) + print('electric length gauge oscillator strength = {:<8.6f} for excitation {:<8.6f} eV'. + format(os , adc.eig_energy[root]*getConstant('hartree->eV'))) diff --git a/source/aello.pyx b/source/aello.pyx new file mode 100644 index 0000000..26d04ac --- /dev/null +++ b/source/aello.pyx @@ -0,0 +1,491 @@ +#cython: boundscheck=False, wraparound=False, nonecheck=False, initializedcheck=False, cdivision=True +from libc.math cimport exp, pow, tgamma, sqrt, abs +from scipy.special.cython_special cimport hyp1f1 +from atom import gaugeCenter + +import numpy as np +cimport numpy as np + +cdef double pi = 3.141592653589793238462643383279 + +#from integral - e +cdef double cye(int ia,int ja,int type, double r, double ie, double je, int n = 0, double x = 0.0): + + cdef: + double p = ie + je + double q = ie*je / p + + if n == 0: + if (type < 0) or (type > (ia + ja)): + return 0.0 + elif (ia + ja + type) == 0: + return exp(-q*r*r) + elif ja == 0: + return (1/(2 * p)) * cye(ia-1,ja,type-1,r,ie,je) - (q*r/ie) * cye(ia-1,ja,type,r,ie,je) + \ + (type+1) * cye(ia-1,ja,type+1,r,ie,je) + else: + return (1/(2 * p)) * cye(ia,ja-1,type-1,r,ie,je) + (q*r/je) * cye(ia,ja-1,type,r,ie,je) + \ + (type+1) * cye(ia,ja-1,type+1,r,ie,je) + else: + return cye(ia+1,ja,type,r,ie,je,n-1,x) + x * cye(ia,ja,type,r,ie,je,n-1,x) + +cdef double ovlp(int ia0, int ia1, int ia2, int ja0, int ja1, int ja2, int type, \ + double r0, double r1, double r2, double ie, double je): + cdef double s + s = cye(ia0, ja0, type, r0, ie, je) + s *= cye(ia1, ja1, type, r1, ie, je) + s *= cye(ia2, ja2, type, r2, ie, je) + + return s * pow(pi/(ie+je),1.5) + +cdef double clmb(int l, int m, int n, int bf, double p, double r0, double r1, double r2): + + cdef double t, s, nm + nm = sqrt(r0*r0 + r1*r1 + r2*r2) + t = p * nm * nm + + s = 0.0 + if (l+m+n) == 0: + s += pow(-2*p, bf) * boys(bf, t) + elif (l+m) == 0: + if n > 1: + s +=(n-1) * clmb(l,m,n-2,bf+1,p,r0,r1,r2) + s += r2 * clmb(l,m,n-1,bf+1,p,r0,r1,r2) + elif l == 0: + if m > 1: + s +=(m-1) * clmb(l,m-2,n,bf+1,p,r0,r1,r2) + s += r1 * clmb(l,m-1,n,bf+1,p,r0,r1,r2) + else: + if l > 1: + s +=(l-1) * clmb(l-2,m,n,bf+1,p,r0,r1,r2) + s += r0 * clmb(l-1,m,n,bf+1,p,r0,r1,r2) + + return s + + +#boys function +cdef double boys(double m,double T): + return hyp1f1(m+0.5,m+1.5,-T)/(2.0*m+1.0) + +cdef double tei(int al0, int al1, int al2, int al3, short[:,:] aa, double[:,:] an, double[:,:] ac, \ + double[:,:] ae, double[:,:] ao, int i, int j, int k, int l): + + cdef: + double s = 0.0 + int mu, nu, vu, su, tu, psi, phi, chi, alpha, beta, gamma + double f, p, q, t1, s1, s2 + double t2[3] + + for mu in range(0, al0): + for nu in range(0, al1): + for vu in range(0, al2): + for su in range(0, al3): + f = an[i,mu] * an[j,nu] * an[k,vu] * an[l,su] * ac[i,mu] * ac[j,nu] * ac[k,vu] * ac[l,su] + p = ae[i,mu] + ae[j,nu] + q = ae[k,vu] + ae[l,su] + t1 = p*q/(p+q) + for tu in range(0, 3): + t2[tu] = (ae[i,mu]*ao[i,tu] + ae[j,nu]*ao[j,tu])/p - (ae[k,vu]*ao[k,tu] + ae[l,su]*ao[l,tu])/q + + s1 = 0.0 + for psi in range(0, aa[i,0]+aa[j,0]+1): + for phi in range(0, aa[i,1]+aa[j,1]+1): + for chi in range(0, aa[i,2]+aa[j,2]+1): + for alpha in range(0, aa[k,0]+aa[l,0]+1): + for beta in range(0, aa[k,1]+aa[l,1]+1): + for gamma in range(0, aa[k,2]+aa[l,2]+1): + + s2 = cye(aa[i,0],aa[j,0],psi, ao[i,0]-ao[j,0],ae[i,mu],ae[j,nu]) * \ + cye(aa[i,1],aa[j,1],phi, ao[i,1]-ao[j,1],ae[i,mu],ae[j,nu]) * \ + cye(aa[i,2],aa[j,2],chi, ao[i,2]-ao[j,2],ae[i,mu],ae[j,nu]) + s2*= cye(aa[k,0],aa[l,0],alpha, ao[k,0]-ao[l,0],ae[k,vu],ae[l,su]) * \ + cye(aa[k,1],aa[l,1],beta, ao[k,1]-ao[l,1],ae[k,vu],ae[l,su]) * \ + cye(aa[k,2],aa[l,2],gamma, ao[k,2]-ao[l,2],ae[k,vu],ae[l,su]) + s2*= pow(-1, alpha+beta+gamma) * clmb(psi+alpha, phi+beta, chi+gamma, 0, t1, \ + t2[0],t2[1],t2[2]) + s1 += s2 + s1 *= 2 * pow(pi, 2.5) / ((p*q) * sqrt(p+q)) + s += s1 * f + return s + +#|-------------------------------------dipole helper-------------------------------------| + +cdef double mu(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, double[3] kr, int direction): + # dipole moment + cdef: + double p = ie + je + double[3] q, ijr + int i + double u, v, t + + for i in range(3): + q[i] = ((ie*ir[i] + je*jr[i])/p) - kr[i] + ijr[i] = ir[i] - jr[i] + + if direction == 1: + u = cye(ia[0], ja[0], 1, ijr[0], ie, je) + q[0]* cye(ia[0], ja[0], 0, ijr[0], ie, je) + v = cye(ia[1], ja[1], 0, ijr[1], ie, je) + t = cye(ia[2], ja[2], 0, ijr[2], ie, je) + return u * v * t * pow(pi/p, 1.5) + if direction == 2: + u = cye(ia[0], ja[0], 0, ijr[0], ie, je) + v = cye(ia[1], ja[1], 1, ijr[1], ie, je) + q[1]* cye(ia[1], ja[1], 0, ijr[1], ie, je) + t = cye(ia[2], ja[2], 0, ijr[2], ie, je) + return u * v * t * pow(pi/p, 1.5) + if direction == 3: + u = cye(ia[0], ja[0], 0, ijr[0], ie, je) + v = cye(ia[1], ja[1], 0, ijr[1], ie, je) + t = cye(ia[2], ja[2], 1, ijr[2], ie, je) + q[2]* cye(ia[2], ja[2], 0, ijr[2], ie, je) + return u * v * t * pow(pi/p, 1.5) + +#|---------------------------------end dipole helper-------------------------------------| + +#|------------------------------------momentum helper------------------------------------| +cdef double ang(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, double[3] kr, int direction): + # angular momentum + cdef: + double p = ie + je + double[3] ijr + int i + double u, v, t + double sd[3][3] + + for i in range(3): + ijr[i] = ir[i] - jr[i] + + for i in range(3): + sd[0][i] = cye(ia[i], ja[i], 0, ijr[i], ie, je) + sd[1][i] = cye(ia[i], ja[i], 0, ijr[i], ie, je, 1, ir[i]-kr[i]) + sd[2][i] = (ja[i] * cye(ia[i], ja[i]-1, 0, ijr[i], ie, je)) - (2.0 * je * cye(ia[i], ja[i]+1, 0, ijr[i], ie, je)) + + if direction == 1: + return -sd[0][0] * (sd[1][1] * sd[2][2] - sd[1][2] * sd[2][1]) * pow(pi/p, 1.5) + elif direction == 2: + return -sd[0][1] * (sd[1][2] * sd[2][0] - sd[1][0] * sd[2][2]) * pow(pi/p, 1.5) + elif direction == 3: + return -sd[0][2] * (sd[1][0] * sd[2][1] - sd[1][1] * sd[2][0]) * pow(pi/p, 1.5) + +#|--------------------------------end momentum helper------------------------------------| + +#get the atom and basis classes +def aello(molAtom, molBasis, mode = 'scf', density = None, gauge = None): + + cdef: + int na = len(molAtom) + int nb = len(molBasis) + int ng = len(molBasis[0].co) + int i, j, k, l, m, n, p, q + + #get largest primative length + for i in range(nb): + j = len(molBasis[i].co) + if j > ng: + ng = j + + #convert atom class properties to c views + mx = np.empty([na,3], dtype = np.double) + mz = np.empty([na], dtype = np.short) + cdef: + double[:,:] alo_x = mx + short[:] alo_z = mz + for p in range(0, na): + for q in range(0, 3): + alo_x[p,q] = molAtom[p].center[q] + alo_z[p] = molAtom[p].number + + #convert basis class properties to c-variables + me = np.empty([nb,ng], dtype = np.double) + mc = np.empty([nb,ng], dtype = np.double) + mn = np.empty([nb,ng], dtype = np.double) + ma = np.empty([nb,3], dtype = np.short) + mo = np.empty([nb,3], dtype = np.double) + ml = np.empty([nb], dtype = np.short) + cdef: + double[:,:] alo_e = me + double[:,:] alo_c = mc + double[:,:] alo_n = mn + short[:,:] alo_a = ma + double[:,:] alo_o = mo + short[:] alo = ml + + for p in range(0, nb): + alo[p] = len(molBasis[p].co) + for q in range(0, len(molBasis[p].co)): + alo_e[p,q] = molBasis[p].ex[q] + alo_c[p,q] = molBasis[p].co[q] + alo_n[p,q] = molBasis[p].normal[q] + for q in range(0, 3): + alo_a[p,q] = molBasis[p].momentum[q] + alo_o[p,q] = molBasis[p].center[q] + + if mode == 'dipole': + return aelloDipole(alo_n, alo_c, alo_e, alo_a, alo_o, alo, alo_z, alo_x, na, nb, molAtom, density, gauge) + + if mode == 'angular': + return aelloAngular(alo_n, alo_c, alo_e, alo_a, alo_o, alo, alo_z, alo_x, na, nb, molAtom, gauge) + +#-------------------------------------Begin Overlap---------------------------------------| + S = np.empty([nb,nb], dtype = np.double) + cdef: + double [:,:] overlap = S + double s, f + + for p in range(0, nb): + for q in range(p, nb): + + s = 0.0 + for i in range(0, alo[p]): + for j in range(0, alo[q]): + f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j] + s += ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2], \ + 0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \ + alo_e[p,i], alo_e[q,j]) * f + + overlap[p,q] = s + if p != q: + overlap[q,p] = overlap[p,q] +#----------------------------------------End Overlap----------------------------------------| + +#---------------------------------------Begin Kinetic---------------------------------------| + K = np.empty([nb,nb], dtype = np.double) + cdef: + double[:,:] kinetic = K + double t1, t2, t3 + + for p in range(0, nb): + for q in range(p, nb): + + s = 0.0 + for i in range(0, alo[p]): + for j in range(0, alo[q]): + f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j] + t1 = alo_e[q,j] * (2*(alo_a[q,0] + alo_a[q,1] + alo_a[q,2]) + 3) * \ + ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2], \ + 0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \ + alo_e[p,i], alo_e[q,j]) + + t2 = -2 * alo_e[q,j] * alo_e[q,j] * ( \ + ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0]+2, alo_a[q,1], alo_a[q,2], \ + 0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \ + alo_e[p,i], alo_e[q,j]) + \ + ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1]+2, alo_a[q,2], \ + 0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \ + alo_e[p,i], alo_e[q,j]) + \ + ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2]+2, \ + 0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \ + alo_e[p,i], alo_e[q,j]) ) + + + t3 = alo_a[q,0] * (alo_a[q,0] - 1) * \ + ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0]-2, alo_a[q,1], alo_a[q,2], \ + 0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \ + alo_e[p,i], alo_e[q,j]) + t3 +=alo_a[q,1] * (alo_a[q,1] - 1) * \ + ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1]-2, alo_a[q,2], \ + 0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \ + alo_e[p,i], alo_e[q,j]) + t3 +=alo_a[q,2] * (alo_a[q,2] - 1) * \ + ovlp(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2]-2, \ + 0 ,alo_o[p,0] - alo_o[q,0], alo_o[p,1] - alo_o[q,1], alo_o[p,2] - alo_o[q,2], \ + alo_e[p,i], alo_e[q,j]) + + s += (t1 + t2 - 0.5*t3) * f + + kinetic[p,q] = s + if p != q: + kinetic[q,p] = kinetic[p,q] +#----------------------------------------End Kinetic----------------------------------------| + +#---------------------------------------Begin Coulomb---------------------------------------| + J = np.empty([nb,nb], dtype = np.double) + cdef: + double[:,:] coulomb = J + double r[3] + double cp + + for p in range(0, nb): + for q in range(p, nb): + + t1 = 0.0 + for k in range(0, na): + + s = 0.0 + for i in range(0, alo[p]): + for j in range(0, alo[q]): + f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j] + cp = alo_e[p,i] + alo_e[q,j] + for n in range(0, 3): + r[n] = ((alo_e[p,i] * alo_o[p,n]) + (alo_e[q,j] * alo_o[q,n]))/cp - alo_x[k,n] + + t2 = 0.0 + for l in range(0, alo_a[p,0]+alo_a[q,0]+1): + for m in range(0, alo_a[p,1]+alo_a[q,1]+1): + for n in range(0, alo_a[p,2]+alo_a[q,2]+1): + t2 += cye(alo_a[p,0], alo_a[q,0], l, alo_o[p,0]- alo_o[q,0], alo_e[p,i], alo_e[q,j]) * \ + cye(alo_a[p,1], alo_a[q,1], m, alo_o[p,1]- alo_o[q,1], alo_e[p,i], alo_e[q,j]) * \ + cye(alo_a[p,2], alo_a[q,2], n, alo_o[p,2]- alo_o[q,2], alo_e[p,i], alo_e[q,j]) * \ + clmb(l, m, n, 0, cp, r[0], r[1], r[2]) + + t2 = t2 * pi * 2.0 / cp + s += t2 * f + t1 -= s * alo_z[k] + coulomb[p,q] = t1 + if p != q: + coulomb[q,p] = coulomb[p,q] + +#----------------------------------------End Coulomb----------------------------------------| + +#----------------------------------Begin electron repulsion---------------------------------| + i = int(nb*(nb-1)/2 + nb) + j = (i*(i+1)/2) + I = np.empty([j], dtype=np.double) + cdef: + double[:] eri = I + int idx + for i in range(0, nb): + for j in range(0, i+1): + m = i * (i+1)/2 + j + for k in range(0, nb): + for l in range(0, k+1): + n = k*(k+1)/2 + l + if m >= n: + idx = int(m*(m+1)/2 + n) + I[idx] = tei(alo[i], alo[j], alo[k], alo[l], alo_a, alo_n, alo_c, alo_e, alo_o, i, j, k, l) +#|----------------------------------End electron repulsion----------------------------------| + + return S, K, J, I + +#---------------------------------------Begin Dipole----------------------------------------| +cpdef aelloDipole(double[:,:] alo_n, double[:,:] alo_c, double[:,:] alo_e, short[:,:] alo_a, double[:,:] alo_o, \ + short[:] alo, short[:] alo_z, double[:,:] alo_x, int na, int nb, object molAtom, double[:,:] density, str gauge): + + D = np.empty([nb,nb], dtype = np.double) + cdef: + double[:,:] dipole = D + double[3] gaugeOrigin = gaugeCenter(molAtom, gauge) + int direction, p, q, i, j + double s, f + double[3] dipoleComponent + + for direction in range(1,4): + #electronic component + for p in range(0, nb): + for q in range(p, -1, -1): + + s = 0.0 + for i in range(0, alo[p]): + for j in range(0, alo[q]): + f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j] + s += mu([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]], \ + alo_e[p,i], alo_e[q,j], \ + [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \ + gaugeOrigin, direction) * f + + dipole[p, q] = s + if p != q: + dipole[q,p] = dipole[p,q] + + s =0.0 + for p in range(0, nb): + for i in range(0, nb): + s += -2.0 * density[p,i] * dipole[i,p] + + #nuclear component and charge center adjustment + for i in range(0, na): + s += alo_z[i] * (alo_x[i, direction-1] - gaugeOrigin[direction-1]) + + dipoleComponent[direction-1] = s + + return dipoleComponent +#|-----------------------------------------End Dipole---------------------------------------| + +#----------------------------------------Begin Angular--------------------------------------| + +cpdef aelloAngular(double[:,:] alo_n, double[:,:] alo_c, double[:,:] alo_e, short[:,:] alo_a, double[:,:] alo_o, \ + short[:] alo, short[:] alo_z, double[:,:] alo_x, int na, int nb, object molAtom, str gauge): + + A = np.empty([3,nb,nb], dtype = np.double) + cdef: + double[:,:,:] angular = A + double[3] gaugeOrigin = gaugeCenter(molAtom, gauge) + int direction, p, q, i, j + double s, f + + for direction in range(0, 3): + #electronic component + for p in range(0, nb): + for q in range(0, p+1): + + s = 0.0 + for i in range(0, alo[p]): + for j in range(0, alo[q]): + f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j] + s += ang([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]], \ + alo_e[p,i], alo_e[q,j], \ + [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \ + gaugeOrigin, direction+1) * f + + angular[direction, p, q] = s + if p != q: + angular[direction,q,p] = -angular[direction,p,q] + + + + return A + +#|----------------------------------------End Angular---------------------------------------| + +#|---------------------------------------fock build-----------------------------------------| +cdef long iEri(long i, long j, long k, long l): + #eri indexing + cdef: + long p = max(i*(i+1)//2 + j, j*(j+1)//2 + i) + long q = max(k*(k+1)//2 + l, l*(l+1)//2 + k) + + return long(max(p*(p+1)//2 + q, q*(q+1)//2 + p)) + + +cpdef aelloFock(long n, double[:,:] H, double[:] eri, double[:,:] D): + #fast Fock build + fock = np.empty([n,n], dtype=np.double) + g = np.empty([n,n], dtype=np.double) + cdef: + long i, m, k, l + double[:,:] F = fock + double[:,:] G = g + + for i in range(0, n): + for m in range(0, n): + G[i,m] = 0.0 + for k in range(0, n): + for l in range(0, n): + G[i,m] += D[k,l] * ( 2* eri[iEri(i,m,k,l)] - eri[iEri(i,k,m,l)]) + F[i,m] = H[i,m] + G[i,m] + + return fock, G + +#|------------------------------------End Fock Build-------------------------------------| + +#|----------------------------------Complex Fock Build-----------------------------------| +cpdef tdhfFock(long n, double complex[:,:] D, double complex[:,:] H, double complex[:] eri): + #complex fock build for tdhf + fock = np.empty([n,n], dtype=np.cdouble) + g = np.empty([n,n], dtype=np.cdouble) + cdef: + long i, m, k, l + double complex[:,:] F = fock + double complex[:,:] G = g + + for i in range(0, n): + for m in range(0, n): + G[i,m] = 0.0 + for k in range(0, n): + for l in range(0, n): + G[i,m] = G[i,m] + D[k,l] * ( 2.0 * eri[iEri(i,m,k,l)] - eri[iEri(i,k,m,l)]) + F[i,m] = H[i,m] + G[i,m] + + return fock + + + + diff --git a/source/atom.py b/source/atom.py new file mode 100644 index 0000000..4f92b2e --- /dev/null +++ b/source/atom.py @@ -0,0 +1,445 @@ +from __future__ import division +from numpy import zeros, cross, dot, array, sqrt, pi, asarray, ndarray +from numpy.linalg import norm, eig +from math import asin, acos, atan2, cos, sin + +weight = array([1.00784, 4.002602, 6.938, 9.0121831, 10.806, 12.0096, 14.00643, 15.99903, 18.998403163, 20.1797, + 22.98976928, 24.304, 26.9815384, 28.084, 30.973761998, 32.059, 35.446, 39.792, 39.0983, 40.078, 44.955908, + 47.867, 50.9415, 51.9961, 54.938043, 55.845, 58.933194, 58.6934, 63.546, 65.38, 69.723, 72.630, 74.921595, + 78.971, 79.901, 83.798, 85.4678, 87.62, 88.90584, 91.224, 92.90637, 95.95, 98, 101.07, 102.90549, 106.42, + 107.8682, 112.414, 114.818, 118.710, 121.760, 127.60, 126.90447, 131.293, 132.90545196, 137.327, 138.90547, + 140.116, 140.90766, 144.242, 145, 150.36, 151.964, 157.25, 158.925354, 162.500, 164.930328, 167.259, 168.934218, + 173.045, 174.9668, 178.486, 180.94788, 183.84, 186.207, 190.23, 192.217, 195.084, 196.966570, 200.592, 204.382, + 207.2, 208.98040, 209, 210, 222]) + +covalentRadius = array([31, 28, 128, 96, 84, 73, 71, 66, 57, 58, 166, 141, 121, 111, 107, 105, 102, 106, + 203, 176, 170, 160, 153, 139, 139, 132, 126, 124, 132, 122, 122, 120, 119, 120, 120, 116, 220, 195, 190, + 175, 164, 154, 147, 146, 142, 139, 145, 144, 142, 139, 139, 138, 139, 140, 224, 215, 207, 204, 203, 201, + 199, 198, 198, 196, 194, 192, 192, 189, 190, 187, 187, 187, 175, 162, 151, 144, 141, 136, 136, 132, 145, + 146, 148, 140, 150, 150]) + +symbol = ['H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 'Al', 'Si', 'P', 'S', 'Cl', 'Ar', + 'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br', 'Kr', + 'Cs', 'Ba', 'La', 'Ce', 'Pr', 'Nd', 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 'Tm', 'Yb', 'Lu','Rb', + 'Sr', 'Y', 'Zr', 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 'Ag', 'Cd', 'In', 'Sn', 'Sb', 'Te', 'I', 'Xe', 'Hf', + 'Ta', 'W', 'Re', 'Os', 'Ir', 'Pt', 'Au', 'Hg', 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn'] + +class atom(object): + + def __init__(self,id,number,center=zeros(3)): + self.id = id + self.number = number + self.center = array(center) + +def seperation(atoms, i, j, unit='b'): + #length of vector ij + + d =0.0 + for dim in range(0,3): + d += (atoms[i].center[dim] - atoms[j].center[dim])**2 + d = sqrt(d) + + if unit == 'a': + return d * getConstant('bohr->angstrom') + else: + return d + +def angle(atoms,i,j,k): + #angle between vectors ij and jk + + u = zeros(3) + v = zeros(3) + + for dim in range(0,3): + u[dim] = atoms[j].center[dim] - atoms[i].center[dim] + v[dim] = atoms[j].center[dim] - atoms[k].center[dim] + + return acos(dot(u,v)/(norm(v)*norm(u)))*getConstant('radian->degree') + +def oopAngle(atoms, i, j, k, l): + #for i the angle between vector ik and normal to plane jkl + + u = zeros(3) + v = zeros(3) + w = zeros(3) + + for dim in range(0,3): + u[dim] = atoms[i].center[dim] - atoms[k].center[dim] + v[dim] = atoms[j].center[dim] - atoms[k].center[dim] + w[dim] = atoms[l].center[dim] - atoms[k].center[dim] + + u /= norm(u) + v /= norm(v) + w /= norm(w) + + vw = cross(v,w) + + angle = dot(vw,u)/norm(vw) + return asin(angle)*getConstant('radian->degree') + +def dihedral(atoms,i,j,k,l): + #angle between planes ijk and jkl + + u = zeros(3) + v = zeros(3) + w = zeros(3) + + + for dim in range(0,3): + u[dim] = atoms[i].center[dim] - atoms[j].center[dim] + v[dim] = atoms[j].center[dim] - atoms[k].center[dim] + w[dim] = atoms[k].center[dim] - atoms[l].center[dim] + + u /= norm(u) + v /= norm(v) + w /= norm(w) + + uv = cross(u,v) + vw = cross(v,w) + uvv = cross(uv,v) + + return atan2(dot(uvv,vw),dot(uv,vw))*getConstant('radian->degree') + +def massCenter(atoms): + #total mass of system + w = 0.0 + for i in range(0 , len(atoms)): + w += weight[atoms[i].number-1] + + com = zeros(3) + for dim in range(0,3): + for i in range(0, len(atoms)): + com[dim] += atoms[i].center[dim] * weight[atoms[i].number-1]/w + + return com + +def isBond(atoms,i,j): + #if sum of covalent radii of i and j is less than seperation + + if i == j: return False + + sumRadii = (covalentRadius[atoms[i].number-1] + covalentRadius[atoms[j].number-1]) * getConstant('picometre->bohr') + + if seperation(atoms,i,j) < 1.6 * sumRadii: + return True + else: + return False + +def bondMatrix(atoms): + # construct connection matrix for molecule + + joins = zeros([len(atoms), len(atoms)]) + + for i in range(0, len(atoms)): + for j in range(i+1, len(atoms)): + joins[i,j] = isBond(atoms,i,j) + #symmetrise + joins = joins + joins.T + + return joins + +def inertiaTensor(atoms): + #compute the moment of inertia tensor for molecule + + inertiaTensor = zeros([3,3]) + comFrame = zeros([len(atoms),3]) + + com = massCenter(atoms) + #transfer to center of mass frame + for i in range(0,len(atoms)): + for dim in range(0, 3): + comFrame[i,dim] = atoms[i].center[dim] - com[dim] + + for i in range(0,len(atoms)): + w = weight[atoms[i].number-1] + for dim in range(0,3): + #diagonal elements + inertiaTensor[dim,dim] += w * (comFrame[i, (dim+1) % 3]**2 + comFrame[i, (dim+2) % 3]**2) + #off-diagonal elements + inertiaTensor[dim, (dim+1) % 3] -= w * comFrame[i, dim]*comFrame[i, (dim+1) % 3] + #symmetrize + inertiaTensor[(dim+1) % 3, dim] = inertiaTensor[dim, (dim+1) % 3] + + return inertiaTensor + +def principalMoments(atoms): + #compute principal moments of inertia (amu bohr2) + + tensor = inertiaTensor(atoms) + + principalMoments, V = eig(tensor) + #order ascending + idx = principalMoments.argsort() + + return principalMoments[idx] + +def rotor(atoms): + #compute rotor type + + epsilon = 1e-8 + pm = principalMoments(atoms) + + type = '' + + if len(atoms) == 2: + return 'diatomic' + elif pm[0] < epsilon: + return 'linear' + elif (abs(pm[0] - pm[1]) < epsilon) and (abs(pm[1] - pm[2]) < epsilon): + return 'spherical top' + elif (abs(pm[0] - pm[1]) < epsilon) and (abs(pm[1] - pm[2]) < epsilon): + return 'spherical top' + elif (abs(pm[0] - pm[1]) < epsilon) and (abs(pm[1] - pm[2]) > epsilon): + return 'oblate spherical top' + elif (abs(pm[0] - pm[1]) > epsilon) and (abs(pm[1] - pm[2]) < epsilon): + return 'prolate spherical top' + else: + return 'asymmetric top' + +def rotationalConstants(atoms): + #compute the rotational constants (/cm) + + rotor = zeros(3) + + #principal moments + pm = principalMoments(atoms) + + for dim in range(0, 3): + rotor[dim] = getConstant('planck')/(8.0*pi*pi*getConstant('c') * \ + getConstant('bohr->cm') * getConstant('bohr->cm')) + if pm[dim] != 0: + rotor[dim] /= pm[dim]* getConstant('dalton->gm') + + return rotor + +def nuclearRepulsion(atoms): + #compute the repulsion of the nucleii + + energy = 0.0 + for i in range(0, len(atoms)): + for j in range(i+1 , len(atoms)): + energy += atoms[i].number*atoms[j].number/seperation(atoms,i,j) + + return energy + +def nuclearChargeCenter(atoms): + #compute the center of the nuclear charge + #total charge + charge = 0.0 + for i in range(0, len(atoms)): + charge += atoms[i].number + + chargeCenter = zeros(3) + for dim in range(0, 3): + for i in range(0, len(atoms)): + chargeCenter[dim] += atoms[i].center[dim] * atoms[i].number/charge + + return chargeCenter + +def getMass(molAtom, atom): + #return the atom weight + + return weight[molAtom[atom].number-1] + +def getNumber(atomicSymbol): + #get the atomic number from symbol + i = symbol.index(atomicSymbol) + + return i+1 + +def gaugeCenter(atoms, mode = 'origin'): + #set the gauge center + + if isinstance(mode, str): + if mode == 'origin': + return array([0,0,0]) + elif mode == 'mass': + return massCenter(atoms) + elif mode == 'nuclear charge': + return nuclearChargeCenter(atoms) + + elif isinstance(mode, ndarray): + return mode + +def getConstant(unit): + unitDict = {'bohr->angstrom' : 0.52917721092, 'picometre->bohr' : 0.018897261339213, 'radian->degree': 180.0/pi, \ + 'planck' : 6.62607015e-34, 'bohr->cm' : 0.529177249e-10, 'c' : 2.99792458e10 , 'dalton->gm' : 1.6605402e-27, \ + 'em2->amu' : 1822.8884850, 'atu->femtosecond' : 0.02418884254, 'hartree->eV' : 27.21138505, 'au->debye' : 2.541580253, \ + 'alpha' : 0.00729735256, 'eV[-1]->nm' : 1239.841701, 'Eh' : 4.359744722207e-18, 'avogadro' : 6.022140857e+23, \ + 'electric constant' : 8.854187817e-12 , 'e' : 1.6021766208e-19, 'bohr magneton' : 9.274009994e-24, 'rydberg->eV':13.6056980659} + + return unitDict[unit] + +def zMatrix(input): + #compute cartesians from z-matrix + + def rodriguez(axis, theta): + #rotation matrix generator + + axis /= norm(axis) + psi = cos(theta/2) + + i,j,k = -axis * sin(theta/2) + + return asarray([[psi*psi+i*i-j*j-k*k,2*(i*j-psi*k),2*(i*k+psi*j)], \ + [2*(i*j+psi*k), psi*psi+j*j-i*i-k*k, 2*(j*k-psi*i)], \ + [2*(i*k-psi*j),2*(j*k+psi*i),psi*psi+k*k-i*i-j*j]]) + + + def getSymbolValue(s, input): + #find numeric replacement for symbol + + stream = len(input) -1 + for i in range(stream, -1, -1): + data = input[i].split() + if len(data)==0:continue + if data[0] == s: + return data[1] + + return 'failed to find symbol [', s , ']' + + def isSymbol(s): + #check if arguement(s) is representation of number [false] or symbol [True] + + sym = False + try: + float(s) + except: + sym = True + + return sym + + def getValue(item, type, input): + #return numeric value of stretch, bend or dihedral + + if isSymbol(item): + val = getSymbolValue(item, input) + else: + val = item + #return as float and in radians for angular type + val = float(val) + if type in 'bt': val *= pi/180.0 + + return val + + def clean(val, mode): + #strip out 'X' dummy atoms and blank line at ends + + if mode == 1: + while True: + b = False + for i in range(len(val)): + if val[i][1] == -1: + del val[i] + b = True + if b: break + if not b:break + + if mode == 2: + for i in range(len(val)): + if len(val[i]) != 0: break + del val[i] + + for i in range(len(val)-1, -1): + if len(val[i]) != 0: break + del val[i] + + return val + + def processAtom(atom, input, geo=None): + #process the input line for each atom + + data = input[atom].split() + z = data[0] + + #non-general atoms + if atom >=1: + a = data[1] + stretch = getValue(data[2],'s', input) + if atom >= 2: + b = data[3] + bend = getValue(data[4],'b', input) + if atom >= 3: + t = data[5] + dihedral = getValue(data[6],'t', input) + + if atom == 0: return z, [0,0,0] + if atom == 1: return z, [stretch,0,0] + if atom == 2: + + a = int(data[1])-1 + b = int(data[3])-1 + + ap = coordinates[a,:] + bp = coordinates[b,:] + + u = bp - ap + + w = stretch*u/norm(u) + w = dot(rodriguez([0,0,1],bend),w) + + return z, w + ap + + #general atom processing + if atom >= 3: + + a = int(data[1])-1 + b = int(data[3])-1 + c = int(data[5])-1 + + ap = coordinates[a,:] + bp = coordinates[b,:] + cp = coordinates[c,:] + + u = bp-ap + v = bp-cp + + #vector a->b length s + w = stretch*u/norm(u) + + #normal to plane abc + n = cross(u, v) + #rotation of w by b about n + w = dot(rodriguez(n,bend),w) + #rotation of w by dihedral about u + w = dot(rodriguez(u,dihedral),w) + + #return atomic symbol and coordinates + return z, w + ap + + #strip control character '\t' and calculate number of atoms + bAtom = True + atoms = 0 + + input = clean(input,2) #strip leading and trailing blank lines + for i in range(len(input)): + input[i] = input[i].replace('\t',' ') + + #first blank line is start of symbols and end of atom definitions + if bAtom and (len(input[i]) == 0): + bAtom = False + atoms = i + #no symbols + if bAtom: atoms = len(input) + + #define array for geometry + coordinates = zeros((atoms,3)) + z = [] + + for i in range(atoms): + s, coordinates[i,:] = processAtom(i, input, coordinates) + if s != 'X': n = getNumber(s) + else: n = -1 + z.append([str(i+1), n, coordinates[i,0],coordinates[i,1],coordinates[i,2]]) + + #remove dummy atoms from final list and return [id, Z, x, y, z] + + return clean(z,1) + +def atomList(molAtom): + #generate a list of atom type for each atom in molecule + atoms = [] + for a in molAtom: + atoms.append(a.number) + + return atoms \ No newline at end of file diff --git a/source/basis.py b/source/basis.py new file mode 100644 index 0000000..fd06147 --- /dev/null +++ b/source/basis.py @@ -0,0 +1,283 @@ +from __future__ import division +from numpy import sqrt, sort, zeros, array +from math import sqrt, pi, pow +from atom import symbol +from scipy.special import factorial2 as df + +subshell = {'s': [[0, 0, 0]], \ + 'p': [[1, 0, 0], [0, 1, 0], [0, 0, 1]], \ + 'd': [[2, 0, 0], [1, 1, 0], [1, 0, 1], [0, 2, 0], [0, 1, 1], [0, 0, 2]], \ + 'f': [[3, 0, 0], [2, 1, 0], [2, 0, 1], [1, 2, 0], [1, 1, 1], [1, 0, 2], [0, 3, 0], [0, 2, 1], [0, 1, 2], [0, 0, 3]]} + +class basis(object): + + def __init__(self, atom, symbol, center= zeros(3), momentum = zeros(0), ex = zeros(0), co = zeros(0) , normal = zeros(0) ): + self.atom = atom + self.symbol = symbol + self.center = array(center) + self.momentum = array(momentum) + self.ex = ex + self.co = co + self.normal = normal + +def electronCount(atoms, charge): + #compute the number of electrons + + n = 0 + for i in range(0, len(atoms)): + n += atoms[i].number + + #adjust for change + n -= charge + + return n + +def species(atoms): + #get a list of different atom types + z = zeros(len(atoms)) + for i in range(0, len(atoms)): + z[i] = atoms[i].number + + #order + z = sort(z) + #unique list + unique = [] + unique.append(int(z[0])) + for i in range(1, len(z)): + if z[i] != unique[-1]: + unique.append(int(z[i])) + + return unique + +def checkBasis(name, atoms): + #is basis supported + f = open('../basis/' + name + '.gbf','r') + try: + f.close() + except FileNotFoundError: + return False + + #does basis support atom type, last types entry is greatest z + types = species(atoms) + if (name in ['sto-3g', '3-21g']) and (types[-1] > 54): + print('Atom not supported for ' + name + ' basis set') + return False + if (name == 'dz') and (types[-1] > 17): + print('Atom not supported for ' + name + ' basis set') + return False + if (name in ['6-31g','aug-cc-pvdz','cc-pvdz']) and (types[-1] > 36): + print('Atom not supported for ' + name + ' basis set') + return False + + return True + +def principalQuantumNumber(basis): + #compute principal quantum number of subshell + n = 1 + for i in range(0, 3): + n += basis.momentum[i] + + return n + +def basisNormalise(basis): + #normalise the primatives + + #get principal quantum number + n = principalQuantumNumber(basis) - 1 + + normalisedBasis = zeros(len(basis.ex)) + + for i in range(0, len(basis.ex)): + num = pow(2*basis.ex[i]/pi, 0.75) * pow(4*basis.ex[i], n/2) + den = sqrt(df(2*basis.momentum[0]-1) * df(2*basis.momentum[1]-1) * df(2*basis.momentum[2]-1)) + normalisedBasis[i] = num/den + + #normalise coefficients + prefactor = (pi ** 1.5) * df(2*basis.momentum[0] - 1) * \ + df(2*basis.momentum[1] - 1) * \ + df(2*basis.momentum[2] - 1) / (2 ** n) + + s = 0.0 + for i in range(0,len(basis.ex)): + for j in range(0,len(basis.ex)): + s += normalisedBasis[i] * normalisedBasis[j] * basis.co[i] * basis.co[j] \ + / pow( (basis.ex[i] + basis.ex[j]) , (n + 1.5)) + + s *= prefactor + s = 1/sqrt(s) + + for i in range(0, len(basis.co)): + basis.co[i] *= s + + basis.normal = normalisedBasis + + return basis + +def buildBasis(atoms,name): + #read basis information for each atom type in molecule + types = species(atoms) + + #molecular basis + molBasis = [] + + #open 'g'aussian 'b'asis 'f'ile + f = open('../basis/' + name + '.gbf', 'r') + data = [] + + #construct basis for atom type - construct atomic basis + atomBasis = [] + + #cycle through unique atoms list + for i in range(0, len(types)): + sym = symbol[types[i]-1] + + #find atomic symbol + while f: + line = f.readline().strip() + if line[:2].strip() == sym: + #S could be element or shell - element lines eg S 0 + data = line.split() + if data[1] == '0': + break + + momentum = [] + primatives = [] + exponents = [] + coefficients = [] + coefficientp = [] + + while True: + #get momentum header eg S 3 1.0 + data = f.readline().split() + if data[0] == '****': + break + momentum.append(data[0].lower()) + primatives.append(int(data[1])) + + #read primatives + for j in range(0, int(primatives[-1])): + data = f.readline().split() + + exponents.append(float(data[0].replace('D','e'))) + if 's,p,d,f'.rfind(momentum[-1]) >= 0: + coefficients.append(float(data[1].replace('D','e'))) + else: + coefficients.append(float(data[1].replace('D','e'))) + coefficientp.append(float(data[2].replace('D','e'))) + + start = 0 + pStart = 0 + for j in range(0, len(momentum)): + end = start + primatives[j] + if momentum[j] != 'sp': + for angular in range(0, len(subshell[momentum[j]])): + atomBasis.append(basis(types[i], orbitalType(subshell[momentum[j]][angular]), \ + [0,0,0] ,subshell[momentum[j]][angular], exponents[start:end], \ + coefficients[start:end])) + else: + atomBasis.append(basis(types[i], orbitalType(subshell['s'][0]) , \ + [0,0,0], subshell['s'][0], exponents[start:end], coefficients[start:end])) + + for angular in range(0, len(subshell['p'])): + atomBasis.append(basis(types[i], orbitalType(subshell['p'][angular]) , \ + [0,0,0], subshell['p'][angular], exponents[start:end], coefficientp[pStart:pStart+primatives[j]])) + pStart = primatives[j] + start = end + + #assign atomBasis to each atom of that type - construct molecular basis + for i in range(0, len(atoms)): + for j in range(0, len(atomBasis)): + if atoms[i].number == atomBasis[j].atom: + molBasis.append(basis(i, atomBasis[j].symbol, atoms[i].center, atomBasis[j].momentum, \ + atomBasis[j].ex, atomBasis[j].co)) + #add normalisation factor + molBasis[-1] = basisNormalise(molBasis[-1]) + + #prefix orbital type with shell and sort + orbitalShell(molBasis) + molBasis.sort(key=lambda b: (b.atom, 'spdf'.index(b.symbol[1]), b.symbol[0])) + + return molBasis + +def orbitalType(subShell): + #get the orbital symbol from momentum tuple + name = { '[000]' : 's' , \ + '[100]' : 'px', '[010]' : 'py' , '[001]' : 'pz' , \ + '[200]' : 'dxx', '[110]' : 'dxy', '[101]' : 'dxz', '[020]' : 'dyy', '[011]' : 'dyz', '[002]' : 'dzz' , \ + '[300]' : 'fxxx', '[210]' : 'fxxy' , '[201]' : 'fxxz' , '[120]' : 'fxyy' , '[111]' : 'fxyz' , '[102]' : 'fxzz' , \ + '[030]' : 'fyyy' , '[021]' : 'fyyz' , '[012]' : 'fyzz' , '[003]' : 'fzzz' } + + return name['[' + ''.join(str(e) for e in subShell) + ']'] + +def aufbau(atom): + #implementation to f-orbitals {s,p,d,f} so shells {K,L,M,N}, n {1,2,3,4} + + principal = [] # list principal quantum number + azimuthal = [] # list of azimuthal quantum numbers, n[i], l[i] give eg the 2, p respectively designation + # for orbital i + order = [] + for n in range(1, len(subshell)+1): + for a in range(0,n): + principal.append(n) + azimuthal.append(a) + #aufbau -> order is (n+l) and where (n+l)'s are equal then smallest n applies + order.append(n+a) + + #create hash of 10*(n+l) +n this is the correct aufbau order + for i in range(0 , len(order)): + order[i] = 10*order[i] + principal[i] + + #sort 'order' into ascending order and we have aufbau occupancy order + order.sort() + + #reverse hash to generate eg 1s, 2p etc + orbitalCode = ['s' , 'p', 'd', 'f'] + orbitals = [] + for i in range(0 , len(order)): + n = order[i] - (order[i]//10) * 10 + l = order[i]//10 - n + orbitals.append(str(n) + orbitalCode[l]) + + + orbitalCapacity = { 's' : 2 , 'p' : 2+4 , 'd' : 2+4+4 , 'f' : 2+4+4+4 } + + #loop over the orbitals in order accumulating total electrons until get to atomic number of 'atom' + electronCount = 0 + effectiveAN = atom.number + orbitalSequence = '' + + for i in range(0 , len(order)): + e = orbitalCapacity[orbitals[i][-1]] + electronCount += e + #build sequence + orbitalSequence += orbitals[i] + + if electronCount >= effectiveAN: + #enough orbitals + orbitalSequence += '' + str(effectiveAN) + '' + break + else: + # need (at least) another orbital + orbitalSequence += '' + str(e) + '' + effectiveAN -= e + electronCount = 0 + + return orbitalSequence + +def orbitalShell(molBasis): + #prefix orbital type with shell + + atom = -1 + lowest = {'s':1,'p':2,'d':3,'f':4} + + for mol in molBasis: + if mol.atom != atom: + atom = mol.atom + n = {} + sym = mol.symbol + if not sym in n.keys(): n[sym] = lowest[sym[0]] + mol.symbol = str(n[sym]) + sym + n[sym] += 1 + + + diff --git a/source/bomd.py b/source/bomd.py new file mode 100644 index 0000000..7267f55 --- /dev/null +++ b/source/bomd.py @@ -0,0 +1,428 @@ +from __future__ import division +from atom import getMass, getConstant +from force import forces +import numpy as np +import matplotlib.pyplot as plt +from math import acos +from scipy import signal +import rhf +import time + +def mdBornOppenheimer(timeIncrement, iterations, integrator = 'velocity-verlet', out=['plot','file']): + + #constants relative atomic masses to atomic units and atomic time units to (femto) seconds + em2amu = getConstant('em2->amu') + toFemtoSeconds =getConstant('atu->femtosecond') + + #initial scf calculation + molAtom, molBasis, molData = rhf.mol([]) + totalEnergy = rhf.scf(molAtom, molBasis, molData , []) + + #titles + name, basisName = [molData['name'], molData['basis']] + + #initial forces + force = [] + vis = forces(molAtom, molBasis, rhf.density, rhf.fock) + force.append(vis) + + #initial velocities - start at rest + velocity = np.zeros_like(vis) + + #initial geometry + geo = np.zeros_like(vis) + for a in range(vis.shape[0]): + geo[a,:] = molAtom[a].center[:] + + #output set-up + if 'file' in out: + #output to file - number of atoms, number of iterations + #file will be of length 1 + number of iterations * number of atoms + f = open('md.hdf','w') + f.write(name + ' ' + basisName + ' ' + integrator + '\n') + f.write("%2d" % vis.shape[0] + ' ' + "%4d" % iterations + ' ' + "%4d" % timeIncrement + '\n') + f.write("%.2f" % 0 + ' ' + "%12.8f" % totalEnergy + ' ' + "%8.3f" % 0 + '\n') + if 'plot' in out: + energy = [] + + #initial state + for a in range(vis.shape[0]): + if 'file' in out: + f.write('{0:10.6f} {1:10.6f} {2:10.6f} {3:10.6f} {4:10.6f} {5:10.6f} {6:10.6f} {7:10.6f} {8:10.6f} \n'.format(geo[a,0], geo[a,1],geo[a,2], \ + velocity[a,0], velocity[a,1], velocity[a,2], \ + force[0][a,0], force[0][a,1], force[0][a,2])) + if 'plot' in out: + energy.append(totalEnergy) + + + t = time.time() + for cycle in range(1, iterations): + + if (integrator == 'velocity-verlet') or ((integrator in ['beeman','adams-moulton']) and (cycle == 1)): + #update position + for a in range(vis.shape[0]): + for cart in range(3): + geo[a, cart] += velocity[a,cart] * timeIncrement + 0.5 * timeIncrement * timeIncrement * force[-1][a,cart] / (getMass(molAtom, a) * em2amu) + + #run scf for new position + molAtom, molBasis = rhf.rebuildCenters(molAtom, molBasis, geo) + totalEnergy = rhf.scf(molAtom, molBasis, molData , [], rhf.density) + + #get new forces + vis = forces(molAtom, molBasis, rhf.density, rhf.fock) + force.append(vis) + + #update velocity + for a in range(vis.shape[0]): + for cart in range(3): + velocity[a,cart] += 0.5 * timeIncrement * (force[-2][a,cart] + force[-1][a,cart]) / (getMass(molAtom, a) * em2amu) + + elif integrator in ['beeman','adams-moulton']: + #update position + for a in range(vis.shape[0]): + for cart in range(3): + geo[a, cart] += velocity[a, cart] * timeIncrement + timeIncrement* timeIncrement * (4.0 * force[-1][a, cart] - force[-2][a, cart] ) \ + / (getMass(molAtom, a) * em2amu * 6.0) + + #run scf for new position + molAtom, molBasis = rhf.rebuildCenters(molAtom, molBasis, geo) + totalEnergy = rhf.scf(molAtom, molBasis, molData , [], rhf.density) + + #get new forces + vis = forces(molAtom, molBasis, rhf.density, rhf.fock) + force.append(vis) + + #update velocity + if integrator == 'beeman': + for a in range(vis.shape[0]): + for cart in range(3): + velocity[a, cart] += timeIncrement * (2.0 * force[-1][a, cart] + 5.0 * force[-2][a, cart] - force[-3][a, cart]) \ + / (getMass(molAtom, a) * em2amu * 6.0) + elif integrator == 'adams-moulton': + for a in range(vis.shape[0]): + for cart in range(3): + velocity[a, cart] += timeIncrement * (5.0 * force[-1][a, cart] + 8.0 * force[-2][a, cart] - force[-3][a, cart]) \ + / (getMass(molAtom, a) * em2amu * 12.0) + + + elapsed = (cycle + 1) * timeIncrement + + if 'file' in out: + #write output file + f.write("%.2f" % elapsed + ' ' + "%12.8f" % totalEnergy + ' ' + "%8.3f" % (time.time() - t) + '\n') + for a in range(vis.shape[0]): + f.write('{0:10.6f} {1:10.6f} {2:10.6f} {3:10.6f} {4:10.6f} {5:10.6f} {6:10.6f} {7:10.6f} {8:10.6f} \n'.format(geo[a,0], geo[a,1],geo[a,2], \ + velocity[a,0], velocity[a,1], velocity[a,2], \ + force[-1][a,0], force[-1][a,1], force[-1][a,2])) + if 'plot' in out: + energy.append(totalEnergy) + + if 'file' in out: + f.close() + if 'plot' in out: + plt.title('[' + integrator + '][' + name + '][' + basisName + ']') + plt.xlabel('t') + plt.ylabel('E') + plt.plot( np.arange(0, timeIncrement*iterations, timeIncrement)*toFemtoSeconds, energy) + plt.grid(True) + plt.show() + +def mdVisualise(type): + + toFemtoSeconds = getConstant('atu->femtosecond') + + #get type and attribute either eg 'bond{0:2}' or 'angle{1:0:2}'' + if type.find('{') == 0: + type = type + '{' + attribute = type[type.find('{'):] + type = type[:type.find('{')] + if type == 'bond': + l = int(attribute[1:attribute.find(':')]) + r = int(attribute[attribute.find(':')+1:-1]) + if type == 'angle': + i = attribute.find(':') + l = int(attribute[1:i]) + m = int(attribute[i+1:attribute.find(':',i+1)]) + r = int(attribute[attribute.find(':',i+1)+1:-1]) + + + file = open('md.hdf', 'r') + + #time, force, velocity and energy + t = [] + E = [] + + #read molecule, basis and integrator + data = file.readline().split() + if len(data) != 3: + exit('data format error') + + title = '[' + data[0] + '][' + data[1] + '][' + data[2] + ']' + + #read nAtoms and number of steps + data = file.readline().split() + atoms = int(data[0]) + steps = int(data[1]) + + #coordinates and molecular attribute + q = [] + Q = [] + + #loop over file lines + for step in range(steps): + + #time and energy + data = file.readline().split() + t.append(float(data[0])*toFemtoSeconds) + E.append(float(data[1])) + + #coordinates + for a in range(atoms): + data = file.readline().split() + q.append([float(data[0]), float(data[1]), float(data[2])]) + + if type == 'bond': + Q.append(np.linalg.norm(np.array(q[-atoms+l])-np.array(q[-atoms+r]))) + if type == 'angle': + va = np.array(q[-atoms+l])-np.array(q[-atoms+m]) + vb = np.array(q[-atoms+m])-np.array(q[-atoms+r]) + Q.append(acos(np.dot(va,vb)/(np.linalg.norm(va)*np.linalg.norm(vb))) * getConstant('radian->degree')) + + #plot energy and attribute + plt.figure() + plt.subplot(211) + plt.xlabel('t (fs)') + plt.ylabel('E (Eh)') + plt.grid(True) + plt.title(title) + plt.plot(t,E) + + if type == 'bond': + plt.subplot(212) + plt.xlabel('t (fs)') + plt.ylabel('r (bohr)') + plt.grid(True) + plt.plot(t,Q) + + if type == 'angle': + plt.subplot(212) + plt.xlabel('t (fs)') + plt.ylabel('angle') + plt.grid(True) + plt.plot(t,Q) + + plt.show() + +def velocityAutocorrelation(options): + #get intensity spectrum from velocity autocorrelation function + + def BOMDfileRead(input): + #reads file for BOMD run parameters and geometry + + with open(input, 'r') as f: + + AVFdata = [] + count = 0 + for line in f: + + data = line.strip().replace(' ', ' ').replace(' ', ' ').split( ' ') + if count == 0: + title = data[0] + '/' + data[1] + ' [' + data[2] + ']' + elif count == 1: + nAtoms = int(data[0]) + steps = int(data[1]) + timeStep = float(data[2]) + elif len(data) == 9: + AVFdata.append(data[:3]) + + count += 1 + + return np.array(AVFdata, dtype = float).reshape(steps, nAtoms, 3), [timeStep, steps, nAtoms, title] + + def getVibrationMode(options, geometry): + #get the length or angular displacement required + + #get stretch + if options['mode'] == 's': + return np.linalg.norm(geometry[:, options['atoms'][0], :] - geometry[:, options['atoms'][1], :], axis=1) + #get bend + if options['mode'] == 'b': + u = geometry[:,options['atoms'][0],:] - geometry[:,options['atoms'][1],:] + v = geometry[:,options['atoms'][2],:] - geometry[:,options['atoms'][1],:] + theta = np.arccos((u*v).sum(axis=1)/(np.linalg.norm(v, axis=1)*np.linalg.norm(u, axis=1))) * getConstant('radian->degree') + return theta + #get dihedral + if options['mode'] == 'd': + #plane 1 defined by u,v and plane 2 by v,w + u = geometry[:,options['atoms'][1],:] - geometry[:,options['atoms'][0],:] + v = geometry[:,options['atoms'][2],:] - geometry[:,options['atoms'][1],:] + w = geometry[:,options['atoms'][3],:] - geometry[:,options['atoms'][2],:] + #normals to planes + normalToPlaneUV = np.cross(u,v) + normalToPlaneVW = np.cross(v,w) + #dot product of normals is cos.|a|.|b| + dotProduct = (normalToPlaneUV * normalToPlaneVW).sum(axis=1) + #get normal norms + normNormalToPlaneUV = np.linalg.norm(normalToPlaneUV,axis=1) + normNormalToPlaneVW = np.linalg.norm(normalToPlaneVW,axis=1) + + phi = np.arccos(dotProduct / (normNormalToPlaneUV * normNormalToPlaneVW)) + + return phi * getConstant('radian->degree') + + def getTimeDerivatives(vibrations, dt): + #get the derivatives of the displacements + + dy = np.gradient(vibrations) + + return np.divide(dy, dt) + + def getAutoCorrelation(f): + #compute the velocity auto-correlation function + + fUnbiased = f - np.mean(f) + fNormed = np.sum(fUnbiased * fUnbiased) + + autocorrelation = signal.fftconvolve(f, f[::-1], mode='full')[len(f)-1:] / fNormed + + return autocorrelation + + def getViewport(options, dataLength): + #define a window + + data = options['window'].split(',') + if len(data) == 1: + return signal.get_window(data[0], dataLength, False) + else: + return signal.get_window((data[0], float(data[1])), dataLength, False) + + def getPadding(dataLength): + #get next power of 2 beyond data length + + if (dataLength and not (dataLength & (dataLength - 1))) : return dataLength + n = 1 + while (n < dataLength): + n <<= 1 + + return n + + def autocorrelationFFT(ACF, window): + #perform a discrete fast Fourier Transform analysis of autocorrelation function + + dataLength = len(ACF) + #unbiased units: data/mean + w = window / (sum(window) / dataLength) + + #convolve data with window + convolvedSignal = ACF * w + + #get zero padding + padding = getPadding(dataLength) + + #do the FFT + FFT = np.fft.fft(convolvedSignal, padding) / dataLength + + #return square of absolute intensity + return np.absolute(FFT) * np.absolute(FFT) + + #retrieve the displacement vectors from BOMD file + displacements, bomdParameters = BOMDfileRead(options['file']) + timeStep, steps, atoms, title = bomdParameters + timeStep *= getConstant('atu->femtosecond') * 1e-15 + + #compute the stretches + vibrationMode = getVibrationMode(options, displacements) + + #get the derivatives of the mode displacements (velocities) + derivatives = getTimeDerivatives(vibrationMode, timeStep) + + #compute the auto-correlation function + vACF = getAutoCorrelation(derivatives) + + #define a viewport + window = getViewport(options, steps) + + #Wiener–Khinchin theorem: FFT of autocorrelation is power spectrum + spectrum = autocorrelationFFT(vACF, window) + + #get frequency (omega) and intensity + spectrumLength = len(spectrum) + + frequency = np.fft.fftfreq(spectrumLength, timeStep * getConstant('c') )[0:int(spectrumLength * 0.5)] + intensity = spectrum[0:int(spectrumLength * 0.5)] + + #visualisation + nPlot = len(options['plot']) + import matplotlib.pyplot as plt + + derivatives = derivatives * timeStep + xtick = np.arange(0, steps+1, int(steps * 0.25)) * timeStep * 1e15 + xlabel = [] + for x in xtick: + xlabel.append(str(int(x))) + + plotCount = 0 + if 'derivative' in options['plot']: + plotCount += 1 + plt.subplot(nPlot,1,plotCount) + plt.title(title, fontsize='small') + + dataPoints = np.arange(len(derivatives)) + plt.plot(dataPoints, derivatives, color="red", linewidth=1.5 ) + plt.axis([0, len(derivatives) , + 1.1 * np.min(derivatives), + 1.1 * np.max(derivatives)]) + #converts steps to femtoseconds for x axis + plt.xticks(np.arange(0, steps+1, int(steps * 0.25)), xlabel, fontsize = 'x-small') + plt.yticks(np.linspace(np.min(derivatives),np.max(derivatives),4), fontsize = 'x-small') + + plt.xlabel("Time (fs)", fontsize = 'x-small') + if options['mode'] == 's': plt.ylabel("Derivative of stretch (bohr)", fontsize = 'x-small') + if options['mode'] == 'b': plt.ylabel("Derivative of bend (degree)", fontsize = 'x-small') + if options['mode'] == 'd': plt.ylabel("Derivative of dihedral (degree)", {fontsize : 'x-small'}) + + if 'ACf' in options['plot']: + plotCount += 1 + plt.subplot(nPlot,1,plotCount) + dataPoints = np.arange(len(vACF)) + plt.plot(dataPoints, vACF, color='red', linewidth=1.5) + plt.axis([0, len(vACF), + 1.1 * np.min(vACF), + 1.1 * np.max(vACF)]) + plt.xticks(np.arange(0, steps+1, int(steps * 0.25)), xlabel, fontsize = 'x-small') + plt.yticks(np.linspace(np.min(vACF),np.max(vACF),4), fontsize = 'x-small') + plt.xlabel("Time (fs)", fontsize = 'x-small') + plt.ylabel("velocity ACF (au)", fontsize = 'x-small') + elif 'ACp' in options['plot']: + plotCount += 1 + plt.subplot(nPlot,1,plotCount) + plt.acorr(vACF, usevlines=True, normed=True, maxlags=len(dataPoints)//4, color='red') + + + if 'spectrum' in options['plot']: + plotCount += 1 + plt.subplot(nPlot,1,plotCount) + plt.plot(frequency, intensity, color="black", linewidth=1.5) + minIntensity = np.min(intensity) + maxIntensity = np.max(intensity) + plt.axis([0, len(frequency)//2, + 1.1 * minIntensity, + 1.1 * maxIntensity]) + if options['mode'] == 's': + attribute = 'stretch ' + str(options['atoms'][0]) + '-' + str(options['atoms'][1]) + elif options['mode'] == 'b': + attribute = 'bend ' + str(options['atoms'][1]) + '-' + str(options['atoms'][0]) + '-' + str(options['atoms'][2]) + elif options['mode'] == 'd': + attribute = 'dihedral ' + str(options['atoms'][1]) + '-' + str(options['atoms'][0]) + '-' + str(options['atoms'][2]) + \ + '-' + str(options['atoms'][2]) + plt.text(len(frequency)/100,maxIntensity - maxIntensity/6, attribute, fontsize = 'x-small' ) + plt.grid() + plt.xticks(np.linspace(0, len(frequency)//2, 10), fontsize = 'x-small') + plt.yticks(np.around(np.linspace(np.min(intensity),np.max(intensity),4), 3), fontsize = 'x-small') + plt.xlabel("wavenumber (cm$^{-1}$)", fontsize = 'x-small') + plt.ylabel("intensity (au)", fontsize = 'x-small') + plt.subplots_adjust(hspace = 0.5) + + plt.show() + + return frequency, intensity diff --git a/source/cc/cctn.py b/source/cc/cctn.py new file mode 100644 index 0000000..771519a --- /dev/null +++ b/source/cc/cctn.py @@ -0,0 +1,250 @@ +from __future__ import division +import numpy as np +import sys +sys.path.append('../../harpy/codes') +from cc.fcc import spinMO +from diis import diis_c + +''' +extra diagram to add to CCSD to implement CCSDT-n methods +''' +def cluster_triples_n_diagrams(name, d_tensor, f, g, o, v, t1=None, t2=None, t3=None): + #evaluate extra diagrams for ccsdt-n + + if name in ['ccsdt-1a', 'ccsdt-1b', 'ccsdt-2', 'ccsdt-3', 'ccsdt-4']: + #diagram S_{7} + singles = 0.25 * np.einsum('mnef,aefimn->ai', g[o,o,v,v], t3, optimize=True) + + #diagrams D_{10a-19c} + doubles = np.einsum('em,abeijm->abij', f[v,o], t3, optimize=True) + t = 0.5 * np.einsum('aefijm,bmef->abij', t3, g[v,o,v,v], optimize=True) + doubles += t - t.transpose(1,0,2,3) + t = -0.5 * np.einsum('abeimn,mnje->abij', t3, g[o,o,o,v], optimize=True) + doubles += t - t.transpose(0,1,3,2) + + #diagrams T_{1a-1b}, T_{2a-2b} + t = np.einsum('aeij,bcek->abcijk', t2, g[v,v,v,o], optimize=True) + t = t - t.transpose(0,1,2,5,4,3) - t.transpose(0,1,2,3,5,4) + triples = t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + t = -np.einsum('abim,mcjk->abcijk', t2, g[o,v,o,o], optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(2,1,0,3,4,5) - t.transpose(0,2,1,3,4,5) + t = np.einsum('ce,abeijk->abcijk', f[v,v], t3, optimize=True) + triples += t - t.transpose(2,1,0,3,4,5) - t.transpose(0,2,1,3,4,5) + t = -np.einsum('km,abcijm->abcijk', f[o,o], t3, optimize=True) + triples += t - t.transpose(0,1,2,5,4,3) - t.transpose(0,1,2,3,5,4) + + if name in ['ccsdt-1b', 'ccsdt-2', 'ccsdt-3', 'ccsdt-4']: + #diagrams D_{11a-11c} + doubles += np.einsum('mnef,em,fabnij->abij', g[o,o,v,v], t1, t3, optimize=True) + t = -0.5 * np.einsum('mnef,am,efbinj->abij', g[o,o,v,v], t1, t3, optimize=True) + doubles += t - t.transpose(1,0,2,3) + t = -0.5 * np.einsum('mnef,ei,afbmnj->abij', g[o,o,v,v], t1, t3, optimize=True) + doubles += t - t.transpose(0,1,3,2) + + if name in ['ccsdt-2', 'ccsdt-3', 'ccsdt-4']: + #diagrams T_{3a-3e} + t = -np.einsum('em,aeij,bcmk->abcijk', f[v,o], t2, t2, optimize=True) + t = t - t.transpose(0,1,2,5,4,3) - t.transpose(0,1,2,3,5,4) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + t = np.einsum('mbef,aeim,fcjk->abcijk',g[o,v,v,v], t2, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(0,2,1,3,4,5) + t.transpose(1,2,0,3,4,5) + t.transpose(2,0,1,3,4,5) - t.transpose(2,1,0,3,4,5) + t = -np.einsum('mnej,aeim,bcnk->abcijk', g[o,o,v,o], t2, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,3,5,4) + t.transpose(0,1,2,4,5,3) + t.transpose(0,1,2,5,3,4) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + t = -0.5 * np.einsum('mcef,abim,efjk->abcijk', g[o,v,v,v], t2, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(2,1,0,3,4,5) - t.transpose(0,2,1,3,4,5) + t = 0.5 * np.einsum('mnek,aeij,bcmn->abcijk', g[o,o,v,o], t2, t2, optimize=True) + t = t - t.transpose(0,1,2,5,4,3) - t.transpose(0,1,2,3,5,4) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + + if name in ['ccsdt-3', 'ccsdt-4']: + #diagrams T_{4a-4d} + t = np.einsum('abef,ei,fcjk->abcijk', g[v,v,v,v], t1, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(2,1,0,3,4,5) - t.transpose(0,2,1,3,4,5) + t = np.einsum('mnij,am,bcnk->abcijk', g[o,o,o,o], t1, t2, optimize=True) + t = t - t.transpose(0,1,2,5,4,3) - t.transpose(0,1,2,3,5,4) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + t = -np.einsum('amie,ej,bcmk->abcijk', g[v,o,o,v], t1, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,3,5,4) + t.transpose(0,1,2,4,5,3) + t.transpose(0,1,2,5,3,4) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + t = -np.einsum('amie,bm,ecjk->abcijk', g[v,o,o,v], t1, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(0,2,1,3,4,5) + t.transpose(1,2,0,3,4,5) + t.transpose(2,0,1,3,4,5) - t.transpose(2,1,0,3,4,5) + #diagram T_{7a-7d} + t = -np.einsum('mbef,ei,am,fcjk->abcijk', g[o,v,v,v], t1, t1, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(0,2,1,3,4,5) + t.transpose(1,2,0,3,4,5) + t.transpose(2,0,1,3,4,5) - t.transpose(2,1,0,3,4,5) + t = np.einsum('mnej,ei,am,bcnk->abcijk', g[o,o,v,o], t1, t1, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,3,5,4) + t.transpose(0,1,2,4,5,3) + t.transpose(0,1,2,5,3,4) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + t = -np.einsum('amef,ei,fj,bcmk->abcijk', g[v,o,v,v], t1, t1, t2, optimize=True) + t = t - t.transpose(0,1,2,5,4,3) - t.transpose(0,1,2,3,5,4) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + t = np.einsum('mnie,am,bn,ecjk->abcijk', g[o,o,o,v], t1, t1, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(2,1,0,3,4,5) - t.transpose(0,2,1,3,4,5) + #diagrams T_{8a-8e} + t = -np.einsum('mnef,em,abin,fcjk->abcijk', g[o,o,v,v], t1, t2, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(2,1,0,3,4,5) - t.transpose(0,2,1,3,4,5) + t = -np.einsum('mnef,fj,aeim,bcnk->abcijk', g[o,o,v,v], t1, t2, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,3,5,4) + t.transpose(0,1,2,4,5,3) + t.transpose(0,1,2,5,3,4) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + t = -np.einsum('mnef,bn,aeim,fcjk->abcijk', g[o,o,v,v], t1, t2, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(0,2,1,3,4,5) + t.transpose(1,2,0,3,4,5) + t.transpose(2,0,1,3,4,5) - t.transpose(2,1,0,3,4,5) + t = 0.5 * np.einsum('mnef,ei,abmn,fcjk->abcijk', g[o,o,v,v], t1, t2, t2, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(2,1,0,3,4,5) - t.transpose(0,2,1,3,4,5) + t = 0.5 * np.einsum('mnef,am,efij,bcnk->abcijk', g[o,o,v,v], t1, t2, t2, optimize=True) + t = t - t.transpose(0,1,2,5,4,3) - t.transpose(0,1,2,3,5,4) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + + if name in ['ccsdt-4']: + #diagrams T_{2c - 2e} + t = 0.5 * np.einsum('abef,efcijk->abcijk', g[v,v,v,v], t3, optimize=True) + triples += t - t.transpose(2,1,0,3,4,5) - t.transpose(0,2,1,3,4,5) + t = 0.5 * np.einsum('mnij,abcmnk->abcijk', g[o,o,o,o], t3, optimize=True) + triples += t - t.transpose(0,1,2,5,4,3) - t.transpose(0,1,2,3,5,4) + t = np.einsum('amie,ebcmjk->abcijk', g[v,o,o,v], t3, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + triples += t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + + return [singles * d_tensor[0], doubles * d_tensor[1], triples * d_tensor[2] + t3] + +''' +use the symbolically generated COGUS CCSD, CCSDT and CCSD(T) to get basic amplitudes +''' +def coupledClusterTriplesVariations(name, fock, eri, c, e, scfData, runData): + #execute symbolically generated cluster codes + + #check we can handle method + if not name in ['ccsd', 'ccsdt','ccsd(t)', 'ccsdt-1a', 'ccsdt-1b', 'ccsdt-2', 'ccsdt-3', 'ccsdt-4'] : return 0.0 + + #get code for correct method + if name == 'ccsdt': + from ccsdt import cc_energy, cc_singles, cc_doubles, cc_triples + else: + from ccsd_t import cc_energy, cc_singles, cc_doubles, cc_triples, cc_perturbation_energy + + #run and scf values + use_td_guess, iterations, tolerance, verbose = runData + charge, nuclearRepulsion, electrons = scfData + + #orbital occupations + spinOrbitals = (fock.shape[0]) * 2 + nocc = electrons + nvir = spinOrbitals - nocc + + #get two-electron repulsion integrals in MO basis + mo = spinMO(e, eri, c, fock) + gs = mo.gs + fs = mo.fs + + #slices + n = np.newaxis + o = slice(None,nocc) + v = slice(nocc, None) + + #D tensors + eps = np.kron(e, np.ones(2)) + + d = [np.reciprocal(-eps[v, n] + eps[n, o]), + np.reciprocal(-eps[v, n, n, n] - eps[n, v, n, n] + eps[n, n, o, n] + eps[n, n, n, o]), + np.reciprocal(- eps[ v, n, n, n, n, n] - eps[n, v, n, n, n, n] - eps[n, n, v, n, n, n] + + eps[n, n, n, o, n, n] + eps[n, n, n, n, o, n] + eps[n, n, n, n, n, o])] + + #HF energy3 + HFenergy = 1.0 * np.einsum('ii', fs[o, o]) -0.5 * np.einsum('ijij', gs[o, o, o, o]) + print('Hartree-Fock SCF electronic energy {:<14.10f} au\nTotal energy {:<14.10f} au\n'. + format(HFenergy, HFenergy + nuclearRepulsion)) + if verbose: + print('cycle energy \u0394E\n---------------------------------------------') + #amplitude initialisation + ts = np.zeros((nvir, nocc)) + td = np.zeros((nvir, nvir, nocc, nocc)) + tt = np.zeros((nvir, nvir, nvir, nocc, nocc, nocc)) + + #use initial guess + if use_td_guess: td = gs[v,v,o,o].copy()*d[1] + + #get initial cluster energy + cycleEnergy = [cc_energy(fs, gs, o, v, t1=ts, t2=td, t3=tt ) - HFenergy] + + #initiate DIIS + diis = diis_c(6, [ts, td, tt]) + + triples = np.zeros_like(tt) + + #iterations + for cycle in range(iterations): + + #update DIIS cache + diis.refresh_store([ts, td, tt]) + #update amplitudes + singles = cc_singles(fs, gs, o, v, t1=ts, t2=td, t3=tt) * d[0] + ts + doubles = cc_doubles(fs, gs, o, v, t1=ts, t2=td, t3=tt) * d[1] + td + if name in ['ccsdt', 'ccsd(t)']: + triples = cc_triples(fs, gs, o, v, t1=ts, t2=td, t3=tt) * d[2] + tt + + #additional diagrams + if name in ['ccsdt-1a', 'ccsdt-1b', 'ccsdt-2', 'ccsdt-3', 'ccsdt-4']: + triples_corrections = cluster_triples_n_diagrams(name, d, fs, gs, o, v, t1=ts, t2=td, t3=tt) + + singles += triples_corrections[0] + doubles += triples_corrections[1] + triples = triples_corrections[2] + + #recalculate energy + cycleEnergy.append(cc_energy(fs, gs, o, v, t1=singles, t2=doubles, t3=triples) - HFenergy) + deltaEnergy = np.abs(cycleEnergy[-2] - cycleEnergy[-1]) + + #convergence test + if deltaEnergy < tolerance: + + print('Final {:8} correction is {:<14.10f} au'.format(name, cycleEnergy[-1])) + print('Final energy with {:8} correction {:<14.10f} au'.format(name, cycleEnergy[-1] + HFenergy)) + break + else: + ts = singles + td = doubles + tt = triples + lastCycleEnergy = cycleEnergy + if verbose: print('{:>3d} {:>15.10f} {:>12.10f} '.format(cycle, cycleEnergy[-1], deltaEnergy)) + + #interpolated DIIS values + ts, td, tt = diis.build([ts, td, tt]) + del cycleEnergy[0] + else: + print("Did not converge") + exit('cc failed') + + perturbationEnergy = 0.0 + if name == 'ccsd(t)': + perturbativeTriples = cc_triples(fs, gs, o, v, t1=singles, t2=doubles, t3=triples) + triples = perturbativeTriples + np.reciprocal(d[2]) * triples + triples = triples * d[2] + l1, l2 = [singles.transpose(1,0) ,doubles.transpose(2,3,0,1)] + + perturbationEnergy = cc_perturbation_energy(fs, gs, o, v, l1, l2, triples) + print('\nccsd(t) (t) perturbative correction {:<14.10f} au'.format(perturbationEnergy)) + print('Final ccsd(t) energy with all corrections {:<14.10f} au'.format(cycleEnergy[-1] + HFenergy+ perturbationEnergy)) + +if __name__ == '__main__': + + import rhf + molAtom, molBasis, molData = rhf.mol([]) + eSCF = rhf.scf(molAtom, molBasis,molData, []) + + #get data for coupled-cluster + from atom import nuclearRepulsion ; from basis import electronCount + charge, nuclearRepulsion, electrons = [molData['charge'], nuclearRepulsion(molAtom), electronCount(molAtom, molData['charge'])] + f, c, e, eri = [rhf.fock, rhf.C, rhf.e, rhf.ERI] + + coupledClusterTriplesVariations('ccsdt-1a', f, eri, c, e, + [charge, nuclearRepulsion, electrons], + [True, 50, 1e-10, True]) \ No newline at end of file diff --git a/source/cc/fcc.py b/source/cc/fcc.py new file mode 100644 index 0000000..a7fb5e3 --- /dev/null +++ b/source/cc/fcc.py @@ -0,0 +1,988 @@ +from __future__ import division +import numpy as np +from diis import diis_c +from view import postSCF +from atom import getConstant + +class coupledCluster(object): + #class to provide coupled cluster facilities + #ccsd reference compute the F and W intermediates from J. Gauss and J. F. Stanton: Coupled-cluster calculations of + #Nuclear magnetic resonance chemical shifts - J. Chem. Phys., Vol. 103, No. 9, 1 September 1995 + + o = None ; v = None + d_tensors = [] + HFenergy = 0.0 + + def __init__(self, fs, gs, e, data): + #initialise with spin fock eris and amplitudes + + self.fs = fs + self.gs = gs + self.e = e + self.ts = None + self.td = None + self.method, self.electrons, self.cycle_limit, self.convergence, self.verbose = data.values() + self.converged = False + + #check method implemented + if not self.method in ['ccsd', 'ccsd(t)', 'ccd', 'cc2', 'lccd', 'lccsd', 'qcisd'] : return None + + func_amplitude = self.update_amplitudes if not self.method in ['lccd', 'lccsd'] else self.update_linear_amplitudes + + self.mp2 = 0.0 + + self.energy = self.iterator(func_amplitude) + if self.method == 'ccsd(t)': + self.perturbative_triples() + + def initialise_amplitudes(self): + #set initial amplitudes + + nocc = self.electrons + n = np.newaxis + o = slice(None, nocc) + v = slice(nocc, None) + + eps = np.kron(self.e, np.ones(2)) + + #d tensors + ds = 1.0 / (eps[o, n] - eps[n, v] ) + dd = 1.0 / (eps[o, n, n, n] + eps[n, o, n, n] - eps[n, n, v, n] - eps[n, n, n, v] ) + dt = 1.0 / (eps[o, n, n, n, n, n] + eps[n, o, n, n, n, n] + eps[n, n, o, n, n, n]- \ + eps[n, n, n, v, n, n] - eps[n, n, n, n, v, n] - eps[n, n, n, n, n, v] ) + + self.d_tensors = [ds, dd, dt] + + #initial amplitudes and mp2 energy + self.ts = np.zeros_like(self.fs[o,v]) ; self.td = self.gs[o, o, v, v]*dd + self.mp2 = 0.25 * np.einsum('ijab,ijab->', self.gs[o, o, v, v], self.td, optimize=True) + + #Hartree-Fock energy + self.HFenergy = np.einsum('ii', self.fs[o, o]) - 0.5 * np.einsum('ijij', self.gs[o, o, o, o]) + + #class variables + self.o = o ; self.v = v + + def tau(self, tilde=True): + #build the tau and tau-tilde Table III (d) + + tau = self.td.copy() + f = 0.5 if tilde else 1.0 + t = f * np.einsum('ia,jb->ijab', self.ts, self.ts, optimize=True) + + tau += t - t.transpose(0,1,3,2) + + return tau + + def intermediates(self, _slice, tilde=True): + #intermedates from Table III(a) + + if not _slice in ['oo','vv','ov','oooo','vvvv','ovvo']: + print('no pre-evaluated slice [', _slice, '] - transpose axes') + exit() + + o = self.o ; v = self.v + + if tilde: + if _slice == 'oo': + im = self.fs[o,o].copy() + np.fill_diagonal(im, 0.0) + im += 0.5 * np.einsum('ie,me->mi', self.ts, self.fs[o, v],optimize=True) + im += np.einsum('ne,mnie->mi', self.ts, self.gs[o, o, o, v], optimize=True) + im += 0.5 * np.einsum('inef,mnef->mi', self.tau(), self.gs[o, o, v, v], optimize=True) + + if _slice == 'vv': + im = self.fs[v,v].copy() + np.fill_diagonal(im, 0.0) + im -= 0.5 * np.einsum('ma,me->ae', self.ts, self.fs[o, v],optimize=True) + im += np.einsum('mf,mafe->ae', self.ts, self.gs[o, v, v, v], optimize=True) + im -= 0.5 * np.einsum('mnaf,mnef->ae', self.tau(), self.gs[o, o, v, v], optimize=True) + + if _slice == 'ov': + im = self.fs[o,v].copy() + im += np.einsum('nf,mnef->me', self.ts, self.gs[o, o, v, v], optimize=True) + + if _slice == 'oooo': + im = self.gs[o, o, o, o].copy() + t = np.einsum('je,mnie->mnij', self.ts, self.gs[o, o, o, v], optimize=True) + im += t - t.transpose(0,1,3,2) + im += 0.25 * np.einsum('ijef,mnef->mnij', self.tau(tilde=False), self.gs[o, o, v, v], optimize=True) + + if _slice == 'vvvv': + im = self.gs[v, v, v, v].copy() + t = -np.einsum('mb,amef->abef', self.ts, self.gs[v, o, v, v], optimize=True) + im += (t - t.transpose(1,0,2,3)) + im += 0.25 * np.einsum('mnab,mnef->abef', self.tau(tilde=False), self.gs[o, o, v, v], optimize=True) + + if _slice == 'ovvo': + im = self.gs[o, v, v, o].copy() + im += np.einsum('jf,mbef->mbej', self.ts, self.gs[o, v, v, v], optimize=True) + im -= np.einsum('nb,mnej->mbej', self.ts, self.gs[o, o, v, o], optimize=True) + im -= 0.5 * np.einsum('jnfb,mnef->mbej', self.td, self.gs[o, o, v, v], optimize=True) + im -= np.einsum('jf,nb,mnef->mbej', self.ts, self.ts, self.gs[o, o, v, v], optimize=True) + + return im + + def update_amplitudes(self): + #compute the next cycle amplitudes + + o = self.o ; v = self.v + + foo = self.intermediates('oo') ; fvv = self.intermediates('vv') ; fov = self.intermediates('ov') + + #singles amplitudes + if self.method in ['ccsd', 'ccsd(t)', 'cc2']: + + #single amplitudes Table I (a) + t1 = self.fs[o,v].copy() + t1 += np.einsum('ie,ae->ia', self.ts, fvv, optimize=True) + t1 -= np.einsum('ma,mi->ia', self.ts, foo, optimize=True) + t1 += np.einsum('imae,me->ia', self.td, fov, optimize=True) + t1 -= np.einsum('nf,naif->ia', self.ts, self.gs[o, v, o, v], optimize=True) + t1 -= 0.5 * np.einsum('imef,maef->ia', self.td, self.gs[o, v, v, v], optimize=True) + t1 -= 0.5 * np.einsum('mnae,nmei->ia', self.td, self.gs[o, o, v, o], optimize=True) + + elif self.method in ['ccd']: + t1 = self.ts.copy() + + elif self.method in ['qcisd']: + foo = self.fs[o,o] ; fvv = self.fs[v,v] + np.fill_diagonal(foo, 0.0) ; np.fill_diagonal(fvv, 0.0) + + t1 = np.einsum('ic,ac->ia', self.ts, fvv, optimize=True) + t1 -= np.einsum('ka,ki->ia', self.ts, foo, optimize=True) + t1 += np.einsum('kc,akic->ia', self.ts, self.gs[v,o,o,v], optimize=True) + + t1 += np.einsum('ikac,kc->ia', self.td, self.fs[o,v], optimize=True) + t1 += 0.5 * np.einsum('kicd,kacd->ia', self.td, self.gs[o,v,v,v], optimize=True) + t1 -= 0.5 * np.einsum('klca,klci->ia', self.td, self.gs[o,o,v,o], optimize=True) + + t1 -= 0.5 * np.einsum('ic,klda,lkcd->ia', self.ts, self.td, self.gs[o,o,v,v], optimize=True) + t1 -= 0.5 * np.einsum('ka,licd,lkcd->ia', self.ts, self.td, self.gs[o,o,v,v], optimize=True) + t1 += np.einsum('kc,lida,klcd->ia', self.ts, self.td, self.gs[o,o,v,v], optimize=True) + + #doubles amplitudes + t2 = self.gs[o, o, v, v].copy() + + if self.method in ['ccsd', 'ccsd(t)', 'ccd']: + + #doubles amplitudes Table I (b) + woooo = self.intermediates('oooo') ; wvvvv = self.intermediates('vvvv') ; wovvo = self.intermediates('ovvo') + + t2 += 0.5 * np.einsum('mnab,mnij->ijab', self.tau(tilde=False), woooo, optimize=True) + + t2 += 0.5 * np.einsum('ijef,abef->ijab', self.tau(tilde=False), wvvvv, optimize=True) + + t = np.einsum('abej,ie->ijab', self.gs[v, v, v, o], self.ts, optimize=True) + t2 += t - t.transpose(1,0,2,3) + + t = np.einsum('ma,mbij->ijab', self.ts, self.gs[o, v, o, o], optimize=True) + t2 += -(t - t.transpose(0,1,3,2)) + + t = np.einsum('imae,mbej->ijab', self.td, wovvo, optimize=True) + t -= np.einsum('ie,ma,mbej->ijab', self.ts, self.ts, self.gs[o, v, v, o], optimize=True) + t2 += t - t.transpose(0,1,3,2) - t.transpose(1,0,2,3) + t.transpose(1,0,2,3).transpose(0,1,3,2) + + t = np.einsum('ijae,be->ijab', self.td, fvv, optimize=True) + t -= 0.5 * np.einsum('ijae,mb,me->ijab', self.td, self.ts, fov, optimize=True) + t2 += t - t.transpose(0,1,3,2) + + t = np.einsum('imab,mj->ijab', self.td, foo, optimize=True) + t += 0.5 * np.einsum('imab,je,me->ijab', self.td, self.ts, fov, optimize=True) + t2 += -(t - t.transpose(1,0,2,3)) + + elif self.method in ['cc2']: + + foo = self.fs[o,o] ; fvv =self.fs[v,v] + np.fill_diagonal(foo, 0.0) ; np.fill_diagonal(fvv, 0.0) + + t = -np.einsum('mj,imab->ijab', foo, self.td, optimize=True) + t2 += t - t.transpose(1,0,2,3) + + t = -np.einsum('ijmb,ma->ijab', self.gs[o, o, o, v], self.ts, optimize=True) + t2 += t - t.transpose(0,1,3,2) + + t2 += np.einsum('efab,ie,jf->ijab', self.gs[v, v, v, v], self.ts, self.ts, optimize=True) + + t2 += np.einsum('ijmn,ma,nb->ijab', self.gs[o, o, o, o], self.ts, self.ts, optimize=True) + + t = np.einsum('be,ijae->ijab', fvv, self.td, optimize=True) + + t = np.einsum('ejab,ie->ijab', self.gs[v, o, v, v], self.ts, optimize=True) + t2 += t - t.transpose(1,0,2,3) + + t = np.einsum('ejmn,ma,nb,ie->ijab', self.gs[v, o, o, o], self.ts, self.ts, self.ts, optimize=True) + t2 += t - t.transpose(1,0,2,3) + + t2 += np.einsum('efmn,ma,nb,ie,jf->ijab', self.gs[v, v, o, o], self.ts, self.ts, self.ts, self.ts, optimize=True) + + t = -np.einsum('ejmb,ie,ma->ijab', self.gs[v, o, o, v], self.ts, self.ts, optimize=True) + t2 += t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,2,3).transpose(0,1,3,2) + + t = -np.einsum('efmb,ma,ie,jf->ijab', self.gs[v, v, o, v], self.ts, self.ts, self.ts, optimize=True) + t2 += t - t.transpose(0,1,3,2) + + elif self.method in ['qcisd']: + + t = np.einsum('ic,abcj->ijab', self.ts, self.gs[v,v,v,o], optimize=True) + t2 += t - t.transpose(1,0,2,3) + t = -np.einsum('ka,kbij->ijab', self.ts, self.gs[o,v,o,o], optimize=True) + t2 += t - t.transpose(0,1,3,2) + + t = np.einsum('ijac,bc->ijab', self.td, fvv, optimize=True) + t2 += t - t.transpose(0,1,3,2) + t = -np.einsum('ikab,kj->ijab', self.td, foo, optimize=True) + t2 += t - t.transpose(1,0,2,3) + t2 += 0.5 * np.einsum('ijcd,abcd->ijab', self.td, self.gs[v,v,v,v], optimize=True) + t2 += 0.5 * np.einsum('klab,klij->ijab', self.td, self.gs[o,o,o,o], optimize=True) + t = np.einsum('ikac,kbcj->ijab', self.td, self.gs[o,v,v,o]) + t2 += t - t.transpose(0,1,3,2) - t.transpose(1,0,2,3) + t.transpose(1,0,3,2) + + t2 += 0.25 * np.einsum('ijcd,klab,klcd->ijab', self.td, self.td, self.gs[o,o,v,v], optimize=True) + t = np.einsum('ikac,jlbd,klcd->ijab', self.td, self.td, self.gs[o,o,v,v], optimize=True) + t2 += t - t.transpose(1,0,2,3) + t = -0.5 * np.einsum('ikdc,ljab,klcd->ijab', self.td, self.td, self.gs[o,o,v,v], optimize=True) + t2 += t - t.transpose(1,0,2,3) + t = -0.5 * np.einsum('lkac,ijdb,klcd->ijab', self.td, self.td, self.gs[o,o,v,v], optimize=True) + t2 += t - t.transpose(0,1,3,2) + + #update amplitudes + self.ts = t1*self.d_tensors[0] + self.td = t2*self.d_tensors[1] + + def update_linear_amplitudes(self): + #linear coupled-cluster - only td and ts. + + o = self.o ; v = self.v + + #doubles amplitdes - no singles for linear + foo = self.fs[o,o] ; fvv = self.fs[v,v] + np.fill_diagonal(foo, 0.0) ; np.fill_diagonal(fvv, 0.0) + + t2 = self.gs[o, o, v, v].copy() + + t = np.einsum('be,ijae->ijab', fvv, self.td, optimize=True) + t2 += t - t.transpose(0,1,3,2) + + t = -np.einsum('mj,imab->ijab', foo, self.td, optimize=True) + t2 += t - t.transpose(1,0,2,3) + + t2 += 0.5 * np.einsum('abef,ijef->ijab', self.gs[v, v, v, v], self.td, optimize=True) + + t2 += 0.5 * np.einsum('mnij,mnab->ijab', self.gs[o, o, o, o], self.td, optimize=True) + + t = np.einsum('mbej,imae->ijab', self.gs[o, v, v, o], self.td, optimize=True) + t2 += t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,2,3).transpose(0,1,3,2) + + #block for adding 's' to lccd + if self.method == 'lccsd': + + t1 = self.fs[o,v].copy() + + t1 += np.einsum('me,imae->ia', self.fs[o,v], self.td, optimize=True) + + t1 += 0.5 * np.einsum('efam,imef->ia', self.gs[v, v, v, o], self.td, optimize=True) + + t1 -= 0.5 * np.einsum('iemn,mnae->ia', self.gs[o, v, o, o], self.td, optimize=True) + + t1 += np.einsum('ae,ie->ia', fvv, self.ts, optimize=True) + + t1 -= np.einsum('mi,ma->ia', foo, self.ts, optimize=True) + + t1 += np.einsum('ieam,me->ia', self.gs[o, v, v, o], self.ts, optimize=True) + + t = np.einsum('ejab,ie->ijab', self.gs[v, o, v, v], self.ts, optimize=True) + t2 += t - t.transpose(1,0,2,3) + + t = -np.einsum('ijmb,ma->ijab', self.gs[o, o, o, v], self.ts, optimize=True) + t2 += t - t.transpose(0,1,3,2) + + self.ts = t1*self.d_tensors[0] + + self.td = t2*self.d_tensors[1] + + + def cluster_energy(self): + #compute the coupled-cluster energy correction + + o = self.o ; v = self.v + + e = 1.0 * np.einsum('ia,ia->', self.fs[o,v], self.ts, optimize=True) + + e += 0.25 * np.einsum('ijab,ijab->', self.gs[o, o, v, v], self.td, optimize=True) + + #non-linear term + if not self.method in ['lccd', 'lccsd', 'qcisd']: + e += 0.5 * np.einsum('ijab,ia,jb->', self.gs[o, o, v, v], self.ts, self.ts, optimize=True) + + return e + + def perturbative_triples(self): + #compute the perturbative triples contribution + + o = self.o ; v = self.v + + #cyclic permutation list + cyclic = {'ijkbac':-1,'ijkcba':-1,'jikabc':-1,'jikbac':+1,\ + 'jikcba':+1,'kjiabc':-1,'kjibac':+1,'kjicba':+1} + + #disconnected triples amplitudes + t = np.einsum('ia,jkbc->ijkabc', self.ts, self.gs[o, o, v, v], optimize=True) + disconnected_tt = t.copy() + for i in cyclic: + disconnected_tt += cyclic[i] * np.einsum('ijkabc->' + i, t, optimize=True) + + #connected triples amplitudes + t = np.einsum('jkae,eibc->ijkabc', self.td, self.gs[v, o, v, v], optimize=True) + t -= np.einsum('imbc,majk->ijkabc', self.td, self.gs[o, v, o, o], optimize=True) + connected_tt = t.copy() + for i in cyclic: + connected_tt += cyclic[i] * np.einsum('ijkabc->' + i, t, optimize=True) + + tt = (disconnected_tt + connected_tt) * self.d_tensors[2] + + perturbation_energy = np.einsum('ijkabc,ijkabc->', connected_tt, tt) / 36.0 + + #add triples perturbation correction to energy dictionary + self.energy['pt'] = perturbation_energy + + + def iterator(self, func): + #consistent field iterations + + #initiate the amplitudes + self.initialise_amplitudes() + + #initialise diis buffers + diis = diis_c(6, [self.ts, self.td]) + + cycle_energy = [self.cluster_energy()] + + for cycle in range(self.cycle_limit): + + #store pre-update amplitudes + diis.refresh_store([self.ts, self.td]) + + func() + + #calculate current cycle energy + cycle_energy.append(self.cluster_energy()) + + #test convergence + delta_energy = np.abs(cycle_energy[-2] - cycle_energy[-1]) + if delta_energy < self.convergence: + self.converged = True + return {'cc': cycle_energy[-1], 'mp2': self.mp2, 'eHF':self.HFenergy} + break + else: + if self.verbose: print('cycle = {:>3d} energy = {:>15.10f} \u0394E = {:>12.10f} '.format(cycle, cycle_energy[-1], delta_energy)) + del cycle_energy[0] + + #diis build extrapolated amplitudes + self.ts, self.td = diis.build([self.ts, self.td]) + +class spinMO(object): + #class to provide integrals in the spin molecular basis + + def __init__(self, e, eri, c, f): + #instance variables + self.e = e + self.eri = eri + self.c = c + self.f = f + + self.gs = self.gMOspin(self.e, self.c, self.eri, self.c.shape[0]) + self.fs = self.fMOspin(self.f, self.c) + + def gMOspin(self, e, c, eri, nbf): + #construct MO spin eri - eri is linear array + + def iEri(i,j,k,l): + #index into the four-index eri integrals + p = max(i*(i+1)/2 + j, j*(j+1)/2 + i) + q = max(k*(k+1)/2 + l, l*(l+1)/2 + k) + return int(max(p*(p+1)/2 + q, q*(q+1)/2 + p)) + + #get 4 index eri and spinblock to spin basis + g = np.zeros((nbf,nbf,nbf,nbf)) + for i in range(nbf): + for j in range(nbf): + for k in range(nbf): + for l in range(nbf): + g[i,j,k,l] = eri[iEri(i,j,k,l)] + + spinBlock = np.kron(np.eye(2), np.kron(np.eye(2), g).T) + g = spinBlock.transpose(0,2,1,3) - spinBlock.transpose(0,2,3,1) + + #prepare orbital energies + eps = np.concatenate((e,e), axis=0) + cs = np.block([ + [c, np.zeros_like(c)], + [np.zeros_like(c), c]]) + cs = cs[:, eps.argsort()] + eps = np.sort(eps) + + #eri to MO + g = np.einsum('pQRS,pP->PQRS', np.einsum('pqRS,qQ->pQRS', np.einsum('pqrS,rR->pqRS', np.einsum('pqrs,sS->pqrS', \ + g, cs, optimize=True), cs, optimize=True), cs, optimize=True), cs, optimize=True) + + return g + + def fMOspin(self, f, c): + #construct MO spin fock + + cs = np.kron(c, np.eye(2)) + fs = np.dot(cs.T, np.dot(np.kron(f, np.eye(2)), cs)) + + return fs + +class ccsdLambda(object): + #class to provide coupled cluster facilities - lambda + #ccsd reference compute the F and W intermediates from J. Gauss and J. F. Stanton: Coupled-cluster calculations of + #Nuclear magnetic resonance chemical shifts - J. Chem. Phys., Vol. 103, No. 9, 1 September 1995 + + o = None ; v = None + d_tensors = [] + HFenergy = 0.0 + + def __init__(self, fs, gs, e, data): + #initialise with spin fock eris and amplitudes + + print('..running CCSD') + self.cc = coupledCluster(fs, gs, e, data) + print('--running Lambda') + self.method, self.electrons, self.cycle_limit, self.convergence, self.verbose = data.values() + self.converged = False + self.e = e + self.fs = fs + self.gs = gs + + #get the lambda initial amplitudes + self.energy = self.iterator() + + def initialise_amplitudes(self): + #initialisation + + nocc = self.electrons + n = np.newaxis + o = slice(None, nocc) + v = slice(nocc, None) + + eps = np.kron(self.e, np.ones(2)) + + #d tensors + ds = 1.0 / (eps[o, n] - eps[n, v] ) + dd = 1.0 / (eps[o, n, n, n] + eps[n, o, n, n] - eps[n, n, v, n] - eps[n, n, n, v] ) + + self.d_tensors = [ds.transpose(1,0), dd.transpose(2,3,0,1)] + + #initial amplitudes + self.ts = self.cc.ts ; self.td = self.cc.td + self.ls = np.zeros_like(self.ts).transpose(1,0) ; self.ld = self.td.transpose(2,3,0,1) + + #Hartree-Fock energy + self.HFenergy = np.einsum('ii', self.fs[o, o]) - 0.5 * np.einsum('ijij', self.gs[o, o, o, o]) + + #class variables + self.o = o ; self.v = v + + def intermediates(self, _slice, tilde=False): + #lambda intermedates from Table III(b) + + if not _slice in ['oo','vv','ov','oooo','vvvv','ovvo','ooov','vovv','ovoo','vvvo','OO','VV']: + print('no pre-evaluated slice [', _slice, '] - transpose axes') + exit() + + o = self.o ; v = self.v + + fov = self.cc.intermediates('ov', tilde=True).copy() + + if not tilde: + if _slice == 'vv': + im = self.cc.intermediates('vv', tilde=True) + im -= 0.5 * np.einsum('me,ma->ae', fov, self.ts, optimize=True) + + if _slice == 'oo': + im = self.cc.intermediates('oo', tilde=True) + im += 0.5 * np.einsum('me,ie->mi', fov, self.ts, optimize=True) + + if _slice == 'ov': + im = fov + + if _slice == 'oooo': + im = self.cc.intermediates('oooo', tilde=True) + im += 0.25 * np.einsum('ijef,mnef->mnij', self.cc.tau(tilde=False), self.gs[o, o, v, v], optimize=True) + + if _slice == 'vvvv': + im = self.cc.intermediates('vvvv', tilde=True) + im += 0.25 * np.einsum('mnab,mnef->abef', self.cc.tau(tilde=False), self.gs[o, o, v, v], optimize=True) + + if _slice == 'ovvo': + im = self.cc.intermediates('ovvo', tilde=True) + im -= 0.5 * np.einsum('jnfb,mnef->mbej', self.td, self.gs[o, o, v, v], optimize=True) + + if _slice == 'ooov': + im = self.gs[o, o, o, v].copy() + im += np.einsum('if,mnfe->mnie', self.ts, self.gs[o, o, v, v], optimize=True) + + if _slice == 'vovv': + im = self.gs[v, o, v, v].copy() + im += np.einsum('na,mnef->amef', self.ts, self.gs[o, o, v, v], optimize=True) + + if _slice == 'ovoo': + im = self.gs[o, v, o, o].copy() + im -= np.einsum('me,ijbe->mbij', fov, self.td, optimize=True) + im -= np.einsum('nb,mnij->mbij', self.ts, self.intermediates('oooo', tilde=False), optimize=True) + im += 0.5 * np.einsum('ijef,mbef->mbij', self.cc.tau(tilde=False), self.gs[o, v, v, v], optimize=True) + t = np.einsum('jnbe,mnie->mbij', self.td, self.gs[o, o, o, v], optimize=True) + im += t - t.transpose(0,1,3,2) + t = np.einsum('ie,mbej->mbij', self.ts, self.gs[o, v, v, o], optimize=True) + t -= np.einsum('ie,njbf,mnef->mbij', self.ts, self.td, self.gs[o, o, v, v], optimize=True) + im += t - t.transpose(0,1,3,2) + + if _slice == 'vvvo': + im = self.gs[v, v, v, o].copy() + im -= np.einsum('me,miab->abei', fov, self.td, optimize=True) + im += np.einsum('if,abef->abei', self.ts, self.intermediates('vvvv', tilde=False), optimize=True) + im += 0.5 * np.einsum('mnab,mnei->abei', self.cc.tau(tilde=False), self.gs[o, o, v, o], optimize=True) + t = -np.einsum('miaf,mbef->abei', self.td, self.gs[o, v, v, v], optimize=True) + im += t - t.transpose(1,0,2,3) + t = -np.einsum('ma,mbei->abei', self.ts, self.gs[o, v, v, o], optimize=True) + t += np.einsum('ma,nibf,mnef->abei', self.ts, self.td, self.gs[o, o, v, v], optimize=True) + im += t - t.transpose(1,0,2,3) + + if _slice == 'VV': + im = -0.5 * np.einsum('afmn,mnef->ae', self.ld, self.td, optimize=True) + + if _slice == 'OO': + im = 0.5 * np.einsum('efin,mnef->mi', self.ld, self.td, optimize=True) + + return im + + def update_amplitudes(self): + #compute the next cycle amplitudes + + o = self.o ; v = self.v + + #singles lambda Table II (a) + fov = self.intermediates('ov', tilde=False) ; foo = self.intermediates('oo', tilde=False) + fvv = self.intermediates('vv', tilde=False) ; wovvo = self.intermediates('ovvo', tilde=False) + wvvvo = self.intermediates('vvvo', tilde=False) ; wovoo = self.intermediates('ovoo', tilde=False) + wvovv = self.intermediates('vovv', tilde=False) ; wooov = self.intermediates('ooov', tilde=False) + woooo = self.intermediates('oooo', tilde=False) ; wvvvv = self.intermediates('vvvv', tilde=False) + goo = self.intermediates('OO', tilde=False) ; gvv = self.intermediates('VV', tilde=False) + + l1 = fov.copy().transpose(1,0) + l1 += np.einsum('ei,ae->ai', self.ls, fvv, optimize=True) + l1 -= np.einsum('am,im->ai', self.ls, foo, optimize=True) + l1 += np.einsum('em,ieam->ai', self.ls, wovvo, optimize=True) + l1 += 0.5 * np.einsum('efim,efam->ai', self.ld, wvvvo, optimize=True) + l1 -= 0.5 * np.einsum('aemn,iemn->ai', self.ld, wovoo, optimize=True) + l1 -= np.einsum('ef,eifa->ai', gvv, wvovv, optimize=True) + l1 -= np.einsum('mn,mina->ai', goo, wooov, optimize=True) + + #doubles lambda Table II (b) + + l2 = self.gs[v, v, o, o].copy() + + t = np.einsum('aeij,eb->abij', self.ld, fvv, optimize=True) + l2 += t - t.transpose(1,0,2,3) + + t = -np.einsum('abim,jm->abij', self.ld, foo, optimize=True) + l2 += t - t.transpose(0,1,3,2) + + l2 += 0.5 * np.einsum('abmn,ijmn->abij', self.ld, woooo, optimize=True) + + l2 += 0.5 * np.einsum('efab,efij->abij', wvvvv, self.ld, optimize=True) + + t = np.einsum('ei,ejab->abij', self.ls, wvovv, optimize=True) + l2 += t - t.transpose(0,1,3,2) + + t = -np.einsum('am,ijmb->abij', self.ls, wooov, optimize=True) + l2 += t - t.transpose(1,0,2,3) + + t = np.einsum('aeim,jebm->abij', self.ld, wovvo, optimize=True) + l2 += t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,2,3).transpose(0,1,3,2) + + t = np.einsum('ai,jb->abij', self.ls, fov) + l2 += t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,2,3).transpose(0,1,3,2) + + t = np.einsum('ijae,be->abij', self.gs[o, o, v, v], gvv, optimize=True) + l2 += t - t.transpose(1,0,2,3) + + t = -np.einsum('imab,mj->abij', self.gs[o, o, v, v], goo, optimize=True) + l2 += t - t.transpose(0,1,3,2) + + self.ls = l1*self.d_tensors[0] ; self.ld = l2*self.d_tensors[1] + + def oprdm(self): + #one-particle reduced density matrix + + n = sum(self.ls.shape) + gamma = np.zeros((n, n)) + o = self.o ; v = self.v + + gamma[v, o] = np.einsum('ai->ai', self.ls, optimize=True) + + gamma[o, v] = np.einsum('ia->ia', self.cc.ts, optimize=True) + gamma[o, v] += np.einsum('bj,ijab->ia', self.ls, self.cc.td, optimize=True) + gamma[o, v] -= np.einsum('bj,ja,ib->ia', self.ls, self.cc.ts, self.cc.ts, optimize=True) + gamma[o, v] -= 0.5 * np.einsum('bcjk,ikbc,ja->ia', self.ld, self.cc.td, self.cc.ts, optimize=True) + gamma[o, v] -= 0.5 * np.einsum('bcjk,jkac,ib->ia', self.ld, self.cc.td, self.cc.ts, optimize=True) + + gamma[v, v] = np.einsum('ai,ib->ab', self.ls, self.cc.ts, optimize=True) + gamma[v, v] += 0.5 * np.einsum('acij,ijbc->ab', self.ld, self.cc.td, optimize=True) + + gamma[o, o] = -np.einsum('aj,ia->ij', self.ls, self.cc.ts, optimize=True) + gamma[o, o] -= 0.5 * np.einsum('abjk,ikab->ij', self.ld, self.cc.td, optimize=True) + gamma[o, o] += np.einsum('ij->ij', np.eye(self.ls.shape[1]), optimize=True) + + return gamma + + def lambda_energy(self): + + o = self.o ; v = self.v + + e = np.einsum('ia,ai->', self.fs[o,v], self.ls, optimize=True) + + e += 0.25 * np.einsum('abij,abij->', self.ld, self.gs[v, v, o, o], optimize=True) + + return e + + def lagrangian_energy(self): + + o = self.o ; v = self.v + + #diagonals of Fock matrix + foo = np.diag(np.diag(self.cc.fs[o,o])) + fvv = np.diag(np.diag(self.cc.fs[v,v])) + + #singles amplitudes recalculated + t1 = self.cc.ts/self.cc.d_tensors[0] + t1 -= np.einsum('ma,mi->ia', self.ts, foo, optimize=True) + t1 += np.einsum('ie,ae->ia', self.ts, fvv, optimize=True) + + #doubles amplitudes recalculated + t2 = self.td/self.cc.d_tensors[1] + t = np.einsum('imab,mj->ijab', self.td, foo, optimize=True) + t2 += -(t - t.transpose(1,0,2,3)) + t = np.einsum('ijae,be->ijab', self.td, fvv, optimize=True) + t2 += t - t.transpose(0,1,3,2) + + lagrange = self.cc.energy['cc'] + lagrange += np.einsum('ai,ia->', self.ls, t1, optimize=True) + lagrange += np.einsum('abij,ijab->', self.ld, t2, optimize=True) + + return lagrange + + def lambda_perturbative_triples(self): + #perturbative triples correction to lambda CCSD + + o = self.o ; v = self.v + + #permutations are: i/jk a/bc, i/jk c/ab and k/ij a/bc + permutation_set = [{'ijkabc':+1,'ijkbac':-1,'ijkcba':-1,'jikabc':-1,'jikbac':+1,'jikcba':+1,'kjiabc':-1,'kjibac':+1,'kjicba':+1}, + {'ijkcab':+1,'ijkacb':-1,'ijkbac':-1,'jikcab':-1,'jikacb':+1,'jikbac':+1,'kjicab':-1,'kjiacb':+1,'kjibac':+1}, + {'kijabc':+1,'ikjabc':-1,'jikabc':-1,'kijbac':-1,'ikjbac':+1,'jikbac':+1,'kijcba':-1,'ikjcba':+1,'jikcba':+1}] + + #triples orbital energy divisor + dt = self.cc.d_tensors[2] + + #triples correction + lll = np.zeros_like(dt) + + #lambda triples + t = np.einsum('dkbc,adij->ijkabc', self.gs[v, o, v, v], self.ld, optimize=True) + for i in permutation_set[2]: + lll += permutation_set[2][i] * np.einsum('ijkabc->' + i, t, optimize=True) + + t = np.einsum('jklc,abil->ijkabc', self.gs[o, o, o, v], self.ld, optimize=True) + for i in permutation_set[1]: + lll -= permutation_set[1][i] * np.einsum('ijkabc->' + i, t, optimize=True) + + t = np.einsum('ai,bcjk->ijkabc', self.ls, self.gs[v, v, o, o], optimize=True) + for i in permutation_set[0]: + lll += permutation_set[0][i] * np.einsum('ijkabc->' + i, t, optimize=True) + + t = np.einsum('ia,bcjk->ijkabc', self.fs[o,v], self.ld, optimize=True) + for i in permutation_set[0]: + lll += permutation_set[0][i] * np.einsum('ijkabc->' + i, t, optimize=True) + + + #t triples + ttt = np.zeros_like(dt) + + t = np.einsum('bcdk,ijad->ijkabc', self.gs[v, v, v, o], self.cc.td, optimize=True) + for i in permutation_set[2]: + ttt += permutation_set[2][i] * np.einsum('ijkabc->' + i, t, optimize=True) + + t = np.einsum('lcjk,ilab->ijkabc', self.gs[o, v, o, o], self.cc.td, optimize=True) + for i in permutation_set[1]: + ttt -= permutation_set[1][i] * np.einsum('ijkabc->' + i, t, optimize=True) + + ttt *= dt + + lambda_correction = np.einsum('ijkabc,ijkabc->', lll, ttt, optimize=True)/36.0 + + return lambda_correction + + def iterator(self): + #iterate lambda amplitudes to convergence + + self.initialise_amplitudes() + + #initialise diis buffers + diis = diis_c(6, [self.ls, self.ld]) + + cycle_energy = [self.lambda_energy()] + + for cycle in range(self.cycle_limit): + + #store pre-update amplitudes + diis.refresh_store([self.ls, self.ld]) + + self.update_amplitudes() + cycle_energy.append(self.lambda_energy()) + + #test convergence + delta_energy = np.abs(cycle_energy[-2] - cycle_energy[-1]) + if delta_energy < self.convergence: + self.converged = True + return_energies = {'cc': cycle_energy[-1], 'eHF':self.HFenergy, 'lagrange':self.lagrangian_energy()} + if '(t)' in self.method: + return_energies['pt'] = self.cc.energy['pt'] + return_energies['pl'] = self.lambda_perturbative_triples() + return return_energies + break + else: + if self.verbose: print('cycle = {:>3d} energy = {:>15.10f} \u0394E = {:>12.10f} '.format(cycle, cycle_energy[-1], delta_energy)) + del cycle_energy[0] + + #diis build extrapolated amplitudes + self.ls, self.ld = diis.build([self.ls, self.ld]) + +def fastCoupledCluster(type, fock, eps, c, eri, nuclearRepulsion, data): + #einsum coupled-cluster + + #get fock and eri in molecular spin basis from spinMO class + mo = spinMO(eps, eri, c, fock) + gs = mo.gs + fs = mo.fs + + cc_data = {'method':type,'electrons':data['electrons'], 'cycle_limit': data['cycle_limit'], \ + 'precision':data['precision'], 'verbose':False} + + #call coupled-cluster class + if type in ['ccd', 'ccsd', 'ccsd(t)', 'cc2', 'lccd', 'lccsd', 'qcisd']: + cc = coupledCluster(fs, gs, eps, cc_data) + + if cc.converged: + cc.energy['nuclear'] = nuclearRepulsion + energy = cc.energy + postSCF([type, cc.energy], '+c') + + elif type in ['lambda']: + cc_data['method'] = 'ccsd' + l = ccsdLambda(fs, gs, eps, cc_data) + if l.converged: + l.energy['nuclear'] = nuclearRepulsion + energy = l.energy + postSCF([type, energy], '+c') + + return energy + +class eom_ccsd(object): + #class for equation of motion coupled-cluster singles and doubles + + def __init__(self, cc, roots=[1, 50], partitioned=False): + self.cc = cc + self.roots = roots + self.partitioned = partitioned + + self.e, self.v = self.do_eom_ccsd(cc) + + from ci import ciDegeneracy + e = np.sort( self.e * getConstant('hartree->eV')) + excitation_tuples = ciDegeneracy(e) + + self.excitations = [] + for excitation in excitation_tuples: + if excitation[0] > self.roots[0] and excitation[0] < self.roots[1]: + self.excitations.append(excitation) + + + def intermediates(self, cc, _slice, tilde=False): + #intermediates for EOM + + o = cc.o ; v = cc.v + fov = cc.intermediates('ov', tilde=True).copy() + + if not tilde: + + if _slice == 'vv': + im = cc.intermediates('vv', tilde=True) + np.diag(np.diag(cc.fs[v,v])) + im -= 0.5 * np.einsum('me,ma->ae', fov, cc.ts, optimize=True) + + if _slice == 'oo': + im = cc.intermediates('oo', tilde=True) + np.diag(np.diag(cc.fs[o,o])) + im += 0.5 * np.einsum('me,ie->mi', fov, cc.ts, optimize=True) + + if _slice == 'ov': + im = fov + + if _slice == 'oovv': + im = cc.gs[o,o,v,v] + + if _slice == 'oooo': + im = cc.intermediates('oooo', tilde=True) + im += 0.25 * np.einsum('ijef,mnef->mnij', cc.tau(tilde=False), cc.gs[o, o, v, v], optimize=True) + + if _slice == 'vvvv': + im = cc.intermediates('vvvv', tilde=True) + im += 0.25 * np.einsum('mnab,mnef->abef', cc.tau(tilde=False), cc.gs[o, o, v, v], optimize=True) + + if _slice == 'ovvo': + im = cc.intermediates('ovvo', tilde=True) + im -= 0.5 * np.einsum('jnfb,mnef->mbej', cc.td, cc.gs[o, o, v, v], optimize=True) + + if _slice == 'ooov': + im = cc.gs[o, o, o, v].copy() + im += np.einsum('if,mnfe->mnie', cc.ts, cc.gs[o, o, v, v], optimize=True) + + if _slice == 'vovv': + im = cc.gs[v, o, v, v].copy() + im += np.einsum('na,mnef->amef', cc.ts, cc.gs[o, o, v, v], optimize=True) + + if _slice == 'ovoo': + im = cc.gs[o, v, o, o].copy() + im -= np.einsum('me,ijbe->mbij', fov, cc.td, optimize=True) + im -= np.einsum('nb,mnij->mbij', cc.ts, self.intermediates(cc, 'oooo', tilde=False), optimize=True) + im += 0.5 * np.einsum('ijef,mbef->mbij', cc.tau(tilde=False), cc.gs[o, v, v, v], optimize=True) + t = np.einsum('jnbe,mnie->mbij', cc.td, cc.gs[o, o, o, v], optimize=True) + im += t - t.transpose(0,1,3,2) + t = np.einsum('ie,mbej->mbij', cc.ts, cc.gs[o, v, v, o], optimize=True) + t -= np.einsum('ie,njbf,mnef->mbij', cc.ts, cc.td, cc.gs[o, o, v, v], optimize=True) + im += t - t.transpose(0,1,3,2) + + if _slice == 'vvvo': + im = cc.gs[v, v, v, o].copy() + im -= np.einsum('me,miab->abei', fov, cc.td, optimize=True) + im += np.einsum('if,abef->abei', cc.ts, self.intermediates(cc, 'vvvv', tilde=False), optimize=True) + im += 0.5 * np.einsum('mnab,mnei->abei', cc.tau(tilde=False), cc.gs[o, o, v, o], optimize=True) + t = -np.einsum('miaf,mbef->abei', cc.td, cc.gs[o, v, v, v], optimize=True) + im += t - t.transpose(1,0,2,3) + t = -np.einsum('ma,mbei->abei', cc.ts, cc.gs[o, v, v, o], optimize=True) + t += np.einsum('ma,nibf,mnef->abei', cc.ts, cc.td, cc.gs[o, o, v, v], optimize=True) + im += t - t.transpose(1,0,2,3) + + return im + + def do_eom_ccsd(self, cc): + #construct the EOM Hamiltonian + + nocc, nvir = self.cc.ts.shape + nrot = nocc * nvir + + #kronecker delta + kd = np.eye(nocc + nvir) + + #short version variables + o = self.cc.o ; v = self.cc.v + fs, gs, ts, td = self.cc.fs, self.cc.gs, self.cc.ts, self.cc.td + + #get singles-singles block + + hss = np.einsum('ac,ik->iakc', self.intermediates(cc, 'vv'), kd[o,o], optimize=True) + hss -= np.einsum('ki,ac->iakc', self.intermediates(cc, 'oo'), kd[v,v], optimize=True) + hss += np.einsum('akic->iakc', self.intermediates(cc, 'ovvo').transpose(1,0,3,2)) + hss = hss.reshape(nrot, nrot).copy() + + #get singles-doubles + hsd = np.einsum('ld,ac,ik->iakcld', self.intermediates(cc, 'ov'), kd[v,v], kd[o,o], optimize=True) + hsd += 0.5 * np.einsum('alcd,ik->iakcld', self.intermediates(cc, 'vovv'), kd[o,o], optimize=True) + hsd -= 0.5 * np.einsum('klid,ac->iakcld', self.intermediates(cc, 'ooov'), kd[v,v], optimize=True) + hsd = hsd.reshape(nrot, nrot*nrot).copy() + + #get doubles-singles + t = np.einsum('kaij,bc->iajbkc', self.intermediates(cc, 'ovoo'), kd[v,v], optimize=True) + hds = t - t.transpose(0,3,2,1,4,5) + t = np.einsum('abcj,ik->iajbkc', self.intermediates(cc, 'vvvo'), kd[o,o], optimize=True) + hds += t - t.transpose(2,1,0,3,4,5) + t = np.einsum('bkec,ijae->iajbkc', self.intermediates(cc, 'vovv'), td, optimize=True) + hds += t - t.transpose(0,3,2,1,4,5) + t = -np.einsum('mkjc,imab->iajbkc', self.intermediates(cc, 'ooov'), td, optimize=True) + hds += t - t.transpose(2,1,0,3,4,5) + hds = hds.reshape(nrot*nrot, nrot).copy() + + if not self.partitioned: + + t = np.einsum('bc,ad,il,jk->iajbkcld', self.intermediates(cc, 'vv'), kd[v,v], kd[o,o], kd[o,o], optimize=True) + hdd = t - t.transpose(0,3,2,1,4,5,6,7) + t = -np.einsum('kj,ad,il,bc->iajbkcld', self.intermediates(cc, 'oo'), kd[v,v], kd[o,o], kd[v,v], optimize=True) + hdd += t - t.transpose(2,1,0,3,4,5,6,7) + hdd += 0.5 * np.einsum('abcd,ik,jl->iajbkcld', self.intermediates(cc, 'vvvv'), kd[o,o], kd[o,o], optimize=True) + hdd += 0.5 * np.einsum('klij,ac,bd->iajbkcld', self.intermediates(cc, 'oooo'), kd[v,v], kd[v,v], optimize=True) + t = np.einsum('akic,jl,db->iajbkcld', self.intermediates(cc, 'ovvo').transpose(1,0,3,2), kd[o,o], kd[v,v], optimize=True) + hdd += t - t.transpose(2,1,0,3,4,5,6,7) - t.transpose(0,3,2,1,4,5,6,7) + t.transpose(2,3,0,1,4,5,6,7) + t = -0.5 * np.einsum('lkec,ijeb,ad->iajbkcld', self.intermediates(cc, 'oovv'), td, kd[v,v], optimize=True) + hdd += t - t.transpose(0,3,2,1,4,5,6,7) + t = 0.5 * np.einsum('kmcd,miab,jl->iajbkcld', self.intermediates(cc, 'oovv'), td, kd[o,o], optimize=True) + hdd += t - t.transpose(2,1,0,3,4,5,6,7) + + else: + t = np.einsum('bc,jk,il,ad->iajbkcld', fs[v,v], kd[o,o], kd[o,o], kd[v,v], optimize=True) + hdd = t - t.transpose(0,3,2,1,4,5,6,7) + t = np.einsum('ki,jl,ad,bc->iajbkcld', fs[o,o], kd[o,o], kd[v,v], kd[v,v], optimize=True) + hdd += t - t.transpose(2,1,0,3,4,5,6,7) + + hdd = hdd.reshape(nrot*nrot, nrot*nrot).copy() + + #construct Hamiltonian from blocks + eom_matrix = np.bmat([[hss, hsd], + [hds, hdd]]) + + #solve dense Hamiltonian + from scipy.linalg import eig + e, v = eig(eom_matrix) + + return e.real, v.real + +if __name__ == '__main__': + + #do an SCF computation + import rhf + molAtom, molBasis, molData = rhf.mol([]) + eSCF = rhf.scf(molAtom, molBasis,molData, []) + + #get data for coupled-cluster + from atom import nuclearRepulsion ; from basis import electronCount + charge, nuclearRepulsion, electrons = [molData['charge'], nuclearRepulsion(molAtom), electronCount(molAtom, molData['charge'])] + f, c, e, eri = [rhf.fock, rhf.C, rhf.e, rhf.ERI] + + #get fock and eri in molecular spin basis from spinMO class + mo = spinMO(e, eri, c, f) + gs = mo.gs + fs = mo.fs + + #call coupled-cluster class + data = {'method':'ccsd','electrons':electrons, 'cycle_limit': 50, 'precision':1e-10, 'verbose':True} + cc = coupledCluster(fs, gs, e, data) + + if cc.converged: + cc.energy['nuclear'] = nuclearRepulsion + + print(cc.energy) + + data['method'] = 'ccsd(t)' + l = ccsdLambda(fs, gs, e, data) + if l.converged: + l.energy['nuclear'] = nuclearRepulsion + + print(l.energy) + + #EOM-CCSD + eom = eom_ccsd(cc, roots=[4, 41], partitioned=False) + + print('root energy (eV) multiplicity\n---------------------------------') + for i, root in enumerate(eom.excitations): + print('{:<2d} {:<10.5f} {:ijab', self.td, self.g[v,v,v,v], optimize=True) + t2 += np.einsum('mnab,ijmn->ijab', self.td, self.g[o,o,o,o], optimize=True) + t2 += np.einsum('mjae,infb,nmef->ijab', self.td, self.td, self.g[o,o,v,v],optimize=True) + t2 -= 2.0*np.einsum('ijae,mnbf,mnef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + t2 += np.einsum('ijae,nmbf,mnef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + t2 -= 2.0*np.einsum('miae,jnbf,mnef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + t2 += np.einsum('miae,njbf,mnef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + t2 += np.einsum('imae,njbf,nmef->ijab', self.td, self.td, self.g[o,o,v,v],optimize=True) + t2 += 4.0*np.einsum('imae,jnbf,mnef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + t2 -= 2.0*np.einsum('imae,njbf,mnef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + t2 += np.einsum('mnae,ijfb,mnef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + t2 -= 2.0*np.einsum('nmae,ijfb,mnef-> ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + t2 += np.einsum('ijfe,nmab,mnef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + t2 += np.einsum('miae,njfb,nmef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + t2 -= 2.0*np.einsum('imae,jnbf,nmef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + + t = np.einsum('eb,ijae->ijab', self.f[v,v], self.td, optimize=True) + t -= np.einsum('im,mjab->ijab', self.f[o,o], self.td, optimize=True) + t += 2.0*np.einsum('jmbe,miea->ijab', self.td, self.g[o,o,v,v], optimize=True) + t -= np.einsum('mjbe,miea->ijab', self.td, self.g[o,o,v,v], optimize=True) + t -= np.einsum('imeb,jema->ijab', self.td, self.g[o,v,o,v], optimize=True) + t -= np.einsum('imae,jemb->ijab', self.td, self.g[o,v,o,v], optimize=True) + t += np.einsum('jmef,inab,mnef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + t -= 2.0*np.einsum('mjef,inab,mnef->ijab', self.td, self.td, self.g[o,o,v,v], optimize=True) + + if self.method == 'ccd': t2 += t + t.transpose(1,0,3,2) + + if self.method in ['ccsd']: + + #singles CCSD + t1 = self.f[o,v].copy() + t1 -= np.einsum('im,ma->ia', self.f[o,o], self.ts, optimize=True) + t1 += np.einsum('ea,ie->ia', self.f[v,v], self.ts, optimize=True) + t1 -= np.einsum('me,ie,ma->ia', self.f[o,v], self.ts, self.ts, optimize=True) + t1 += 2.0*np.einsum('me,imae->ia', self.f[o,v], self.td, optimize=True) + t1 -= np.einsum('me,miae->ia', self.f[o,v], self.td, optimize=True) + t1 -= np.einsum('me,iema->ia', self.ts, self.g[o,v,o,v], optimize=True) + t1 += 2.0*np.einsum('me,miea->ia', self.ts, self.g[o,o,v,v], optimize=True) + t1 -= 2.0*np.einsum('me,na,nmie->ia', self.ts, self.ts, self.g[o,o,o,v], optimize=True) + t1 -= np.einsum('me,if,mafe->ia', self.ts, self.ts, self.g[o,v,v,v], optimize=True) + t1 += 2.0*np.einsum('me,if,maef->ia', self.ts, self.ts, self.g[o,v,v,v], optimize=True) + t1 += np.einsum('me,na,mnie->ia', self.ts, self.ts, self.g[o,o,o,v], optimize=True) + t1 += np.einsum('me,if,na,nmef->ia', self.ts, self.ts, self.ts, self.g[o,o,v,v], optimize=True) + t1 -= 2.0*np.einsum('me,if,na,mnef->ia', self.ts, self.ts, self.ts, self.g[o,o,v,v], optimize=True) + t1 -= np.einsum('mief,mafe->ia', self.td, self.g[o,v,v,v], optimize=True) + t1 += 2.0*np.einsum('imef,mafe->ia', self.td, self.g[o,v,v,v], optimize=True) + t1 -= 2.0*np.einsum('mnae,mnie->ia', self.td, self.g[o,o,o,v], optimize=True) + t1 += np.einsum('nmae,mnie->ia', self.td, self.g[o,o,o,v], optimize=True) + t1 -= 2.0*np.einsum('me,inaf,nmef->ia', self.ts, self.td, self.g[o,o,v,v], optimize=True) + t1 -= 2.0*np.einsum('me,niaf,mnef->ia', self.ts, self.td, self.g[o,o,v,v], optimize=True) + t1 += np.einsum('me,niaf,nmef->ia', self.ts, self.td, self.g[o,o,v,v], optimize=True) + t1 -= 2.0*np.einsum('ie,nmaf,nmef->ia', self.ts, self.td, self.g[o,o,v,v], optimize=True) + t1 += np.einsum('ie,nmaf,mnef->ia', self.ts, self.td, self.g[o,o,v,v], optimize=True) + t1 -= 2.0*np.einsum('na,imfe,mnef->ia', self.ts, self.td, self.g[o,o,v,v], optimize=True) + t1 += np.einsum('na,imef,mnef->ia', self.ts, self.td, self.g[o,o,v,v], optimize=True) + t1 += 4.0*np.einsum('me,inaf,mnef->ia', self.ts, self.td, self.g[o,o,v,v], optimize=True) + + #doubles CCSD + t2 += np.einsum('ie,jf,efab->ijab', self.ts, self.ts, self.g[v,v,v,v], optimize=True) + t2 += np.einsum('ma,nb,ijmn->ijab', self.ts, self.ts, self.g[o,o,o,o], optimize=True) + t2 -= np.einsum('ie,jf,ma,mbef->ijab', self.ts, self.ts, self.ts, self.g[o,v,v,v], optimize=True) + t2 -= np.einsum('ie,jf,mb,mafe->ijab', self.ts, self.ts, self.ts, self.g[o,v,v,v], optimize=True) + t2 += np.einsum('ie,ma,nb,nmje->ijab', self.ts, self.ts, self.ts, self.g[o,o,o,v], optimize=True) + t2 += np.einsum('je,ma,nb,mnie->ijab', self.ts, self.ts, self.ts, self.g[o,o,o,v], optimize=True) + t2 += np.einsum('ie,jf,ma,nb,mnef->ijab', self.ts, self.ts, self.ts, self.ts, self.g[o,o,v,v], optimize=True) + t2 += np.einsum('ie,jf,nmab,nmef->ijab', self.ts, self.ts, self.td, self.g[o,o,v,v], optimize=True) + t2 += np.einsum('ma,nb,ijfe,nmef->ijab', self.ts, self.ts, self.td, self.g[o,o,v,v], optimize=True) + + t -= np.einsum('mb,jima->ijab', self.ts, self.g[o,o,o,v], optimize=True) + t += np.einsum('je,ieab->ijab', self.ts, self.g[o,v,v,v], optimize=True) + t += np.einsum('me,ie,mjab->ijab', self.f[o,v], self.ts, self.td, optimize=True) + t -= np.einsum('me,ma,ijeb->ijab', self.f[o,v], self.ts, self.td, optimize=True) + t -= np.einsum('ie,ma,mjeb->ijab', self.ts, self.ts, self.g[o,o,v,v], optimize=True) + t -= np.einsum('ie,mb,jema->ijab', self.ts, self.ts, self.g[o,v,o,v], optimize=True) + t -= 2.0*np.einsum('nb,imae,nmje->ijab', self.ts, self.td, self.g[o,o,o,v], optimize=True) + t += np.einsum('nb,miae,nmje->ijab', self.ts, self.td, self.g[o,o,o,v], optimize=True) + t -= np.einsum('je,imfb,maef->ijab', self.ts, self.td, self.g[o,v,v,v], optimize=True) + t -= np.einsum('je,miaf,mbfe->ijab', self.ts, self.td, self.g[o,v,v,v], optimize=True) + t -= np.einsum('je,imaf,mbef->ijab', self.ts, self.td, self.g[o,v,v,v], optimize=True) + t += np.einsum('je,nmab,nmie->ijab', self.ts, self.td, self.g[o,o,o,v], optimize=True) + t += np.einsum('nb,imae,mnje->ijab', self.ts, self.td, self.g[o,o,o,v], optimize=True) + t -= np.einsum('ma,ijfe,mbfe->ijab', self.ts, self.td, self.g[o,v,v,v], optimize=True) + t += np.einsum('ma,ineb,nmje->ijab', self.ts, self.td, self.g[o,o,o,v], optimize=True) + t += 2.0*np.einsum('je,imaf,mbfe->ijab', self.ts, self.td, self.g[o,v,v,v], optimize=True) + t -= np.einsum('me,ijaf,mbfe->ijab', self.ts, self.td, self.g[o,v,v,v], optimize=True) + t += 2.0*np.einsum('me,ijaf,mbef->ijab', self.ts, self.td, self.g[o,v,v,v], optimize=True) + t += np.einsum('me,inab,mnje->ijab', self.ts, self.td, self.g[o,o,o,v], optimize=True) + t -= 2.0*np.einsum('me,inab,nmje->ijab', self.ts, self.td, self.g[o,o,o,v], optimize=True) + t -= 2.0*np.einsum('me,jf,inab,mnef->ijab', self.ts, self.ts, self.td, self.g[o,o,v,v], optimize=True) + t += np.einsum('me,jf,inab,nmef->ijab', self.ts, self.ts, self.td, self.g[o,o,v,v], optimize=True) + t -= 2.0*np.einsum('me,na,ijfb,mnef->ijab', self.ts, self.ts, self.td, self.g[o,o,v,v], optimize=True) + t += np.einsum('me,na,ijfb,nmef->ijab', self.ts, self.ts, self.td, self.g[o,o,v,v], optimize=True) + t += np.einsum('ie,ma,njbf,mnef->ijab', self.ts, self.ts, self.td, self.g[o,o,v,v], optimize=True) + t -= 2.0*np.einsum('ie,ma,jnbf,mnef->ijab', self.ts, self.ts, self.td, self.g[o,o,v,v], optimize=True) + t += np.einsum('ie,ma,njfb,nmef->ijab', self.ts, self.ts, self.td, self.g[o,o,v,v], optimize=True) + t += np.einsum('ie,nb,mjaf,mnef->ijab', self.ts, self.ts, self.td, self.g[o,o,v,v], optimize=True) + + t2 += t + t.transpose(1,0,3,2) + + self.ts = t1 * self.d_tensors[0] + self.td = t2 * self.d_tensors[1] + + def cluster_energy(self): + #compute the coupled-cluster energy correction + + o = self.o ; v = self.v + + e = np.einsum('nemf, mnef -> ', (2.0*self.td.transpose(1,2,0,3) - self.td.transpose(0,2,1,3)), self.g[o,o,v,v], optimize =True) + + if self.method in ['ccsd']: + e -= np.einsum('ne,mf,mnef->', self.ts, self.ts, self.g[o,o,v,v], optimize=True) + e += 2.0 * np.einsum('me,me->', self.f[o,v], self.ts, optimize=True) + e += 2.0 * np.einsum('ne,mf,nmef->', self.ts, self.ts, self.g[o,o,v,v], optimize=True) + + return e + + + def iterator(self, func): + #consistent field iterations + + #initiate the amplitudes + self.initialise_amplitudes() + + #initialise diis buffers + diis = diis_c(6, [self.ts, self.td]) + + cycle_energy = [self.cluster_energy()] + + for cycle in range(self.cycle_limit): + + #store pre-update amplitudes + diis.refresh_store([self.ts, self.td]) + + func() + + #calculate current cycle energy + cycle_energy.append(self.cluster_energy()) + + #test convergence + delta_energy = np.abs(cycle_energy[-2] - cycle_energy[-1]) + if delta_energy < self.convergence: + self.converged = True + return {'cc': cycle_energy[-1], 'mp2': self.mp2, 'eHF':self.HFenergy} + break + else: + if self.verbose: print('cycle = {:>3d} energy = {:>15.10f} \u0394E = {:>12.10f} '.format(cycle, cycle_energy[-1], delta_energy)) + del cycle_energy[0] + + #diis build extrapolated amplitudes + self.ts, self.td = diis.build([self.ts, self.td]) + +if __name__ == '__main__': + + #do an SCF computation + import rhf + molAtom, molBasis, molData = rhf.mol([]) + eSCF = rhf.scf(molAtom, molBasis,molData, []) + + #get data for coupled-cluster + from atom import nuclearRepulsion ; from basis import electronCount + charge, nuclearRepulsion, electrons = [molData['charge'], nuclearRepulsion(molAtom), electronCount(molAtom, molData['charge'])] + f, c, e, eri, d, ch = [rhf.fock, rhf.C, rhf.e, rhf.ERI, rhf.density, rhf.coreH] + + #Hartree-Fock electronic energy + eHF = float(np.einsum('pq,pq->',d , (f + ch), optimize=True)) + + def gMO(c, f, eri, nbf): + #construct MO eri and Fock - eri is linear array in Chemists notation + + from integral import buildEriMO, expandEri + + g = expandEri(buildEriMO(c, eri), nbf).reshape(nbf, nbf, nbf, nbf).swapaxes(1, 2) + f = np.einsum('rp,rs,sq->pq', c, f, c, optimize=True) + + return f, g + + #transform to molecular basis + f, g = gMO(c, f, eri, c.shape[0]) + + #call restricted coupled-cluster class + data = {'method':'ccd','electrons':electrons, 'cycle_limit': 50, 'precision':1e-10, 'verbose':True, 'scf energy':eHF} + cc = restrictedCoupledCluster(f, g, e, data) + + if cc.converged: + cc.energy['nuclear'] = nuclearRepulsion + + print(cc.energy) + diff --git a/source/cc/scc.py b/source/cc/scc.py new file mode 100644 index 0000000..d95f6c1 --- /dev/null +++ b/source/cc/scc.py @@ -0,0 +1,1096 @@ +from __future__ import division +import numpy as np +from integral import buildFockMOspin, buildEriMO, buildEriDoubleBar +from basis import electronCount +from math import sqrt +from view import postSCF +from diis import diis_c + +#'** references to Stanton et al +#'** J.Chem.Phys 94(6), 15 March 1991 + +def tauSpin(i, j, a, b, ts, td): + #equation (9) + return td[a,b,i,j] + 0.5 * (ts[a,i] * ts[b,j] - ts[b,i] * ts[a,j]) + +def tau(i, j, a, b, ts, td): + #equation (10) + return td[a,b,i,j] + ts[a,i] * ts[b,j] - ts[b,i] * ts[a,j] + +def updateIntermediates(fs, ts, td, eriMOspin, nElectrons): + #fs - fockSpin ts - tsingle cluster operator td - tdouble cluster operator + #eriMOspin - electron repulsion integrals in the MO spin + + def amplitudesT1(): + # equation (1) + TS = np.zeros((spinOrbitals, spinOrbitals)) + + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + TS[a,i] += fs[a,i] + for e in range(nElectrons, spinOrbitals): + TS[a,i] += ts[e,i] * fu[e,a] + for m in range(0, nElectrons): + TS[a,i] -= ts[a,m] * fo[i,m] + for e in range(nElectrons, spinOrbitals): + TS[a,i] += td[a,e,i,m] * fm[e,m] + for f in range(nElectrons, spinOrbitals): + TS[a,i] -= 0.5 * td[e,f,i,m] * eriMOspin[m,a,e,f] + for n in range(0, nElectrons): + TS[a,i] -= 0.5 * td[a,e,m,n] * eriMOspin[n,m,e,i] + + for n in range(0, nElectrons): + for f in range(nElectrons, spinOrbitals): + TS[a,i] -= ts[f,n] * eriMOspin[n,a,i,f] + TS[a,i] /= (fs[i,i] - fs[a,a]) + + return TS + + def amplitudesT2(): + # equation (2) + TD = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + TD[a,b,i,j] +=eriMOspin[i,j,a,b] + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += td[a,e,i,j] * fu[e,b] - td[b,e,i,j] * fu[e,a] + for m in range(0, nElectrons): + TD[a,b,i,j] += -0.5 * td[a,e,i,j] * ts[b,m] * fm[e,m] + 0.5 * td[b,e,i,j] * ts[a,m] * fm[e,m] + for f in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += 0.5 * wu[e,f,a,b] * tau(i,j,e,f,ts,td) + for m in range(0, nElectrons): + TD[a,b,i,j] -= td[a,b,i,m] * fo[j,m] - td[a,b,j,m] * fo[i,m] + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += -0.5 * td[a,b,i,m] * ts[e,j] * fm[e,m] + 0.5 * td[a,b,j,m] * ts[e,i] * fm[e,m] + for n in range(0, nElectrons): + TD[a,b,i,j] += 0.5 * tau(m,n,a,b,ts,td) * wo[i,j,m,n] + for m in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += td[a,e,i,m] * wm[e,j,m,b] - ts[e,i] * ts[a,m] * eriMOspin[m,b,e,j] + TD[a,b,i,j] -= td[a,e,j,m] * wm[e,i,m,b] - ts[e,j] * ts[a,m] * eriMOspin[m,b,e,i] + TD[a,b,i,j] -= td[b,e,i,m] * wm[e,j,m,a] - ts[e,i] * ts[b,m] * eriMOspin[m,a,e,j] + TD[a,b,i,j] += td[b,e,j,m] * wm[e,i,m,a] - ts[e,j] * ts[b,m] * eriMOspin[m,a,e,i] + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += eriMOspin[a,b,e,j] * ts[e,i] + TD[a,b,i,j] -= eriMOspin[a,b,e,i] * ts[e,j] + for m in range(0, nElectrons): + TD[a,b,i,j] -= eriMOspin[m,b,i,j] * ts[a,m] + TD[a,b,i,j] += eriMOspin[m,a,i,j] * ts[b,m] + TD[a,b,i,j] /= (fs[i,i] + fs[j,j] - fs[a,a] - fs[b,b]) + + return TD + + spinOrbitals = fs.shape[0] + + fo = np.zeros((spinOrbitals, spinOrbitals)) + fu = np.zeros((spinOrbitals, spinOrbitals)) + fm = np.zeros((spinOrbitals, spinOrbitals)) + + wo = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + wu = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + wm = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + #equation (3) + for a in range(nElectrons, spinOrbitals): + for e in range(nElectrons, spinOrbitals): + fu[e,a] += (1 - (a == e)) * fs[e,a] + for m in range(0, nElectrons): + fu[e,a] -= 0.5 * fs[e,m] * ts[a,m] + for f in range(nElectrons, spinOrbitals): + fu[e,a] += ts[f,m] * eriMOspin[m,a,f,e] + for n in range(0, nElectrons): + fu[e,a] -= 0.5 * tauSpin(m,n,a,f,ts,td) * eriMOspin[m,n,e,f] + #equation (4) + for m in range(0, nElectrons): + for i in range(0, nElectrons): + fo[i,m] += (1 - (m == i)) * fs[i,m] + for e in range(nElectrons, spinOrbitals): + fo[i,m] += 0.5 * fs[e,m] * ts[e,i] + for n in range(0, nElectrons): + fo[i,m] += ts[e,n] * eriMOspin[m,n,i,e] + for f in range(nElectrons, spinOrbitals): + fo[i,m] += 0.5 * tauSpin(i,n,e,f,ts,td) * eriMOspin[m,n,e,f] + #equation (5) + for m in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + fm[e,m] += fs[e,m] + for n in range(0, nElectrons): + for f in range(nElectrons, spinOrbitals): + fm[e,m] += ts[f,n] * eriMOspin[m,n,e,f] + #equation (6) + for m in range(0, nElectrons): + for n in range(0, nElectrons): + for i in range(0, nElectrons): + for j in range(0, nElectrons): + wo[i,j,m,n] +=eriMOspin[m,n,i,j] + for e in range(nElectrons, spinOrbitals): + wo[i,j,m,n] += ts[e,j] * eriMOspin[m,n,i,e] - ts[e,i] * eriMOspin[m,n,j,e] + for f in range(nElectrons, spinOrbitals): + wo[i,j,m,n] += 0.25 * tau(i,j,e,f,ts,td) * eriMOspin[m,n,e,f] + #equation (7) + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + for e in range(nElectrons, spinOrbitals): + for f in range(nElectrons, spinOrbitals): + wu[e,f,a,b] += eriMOspin[a,b,e,f] + for m in range(0, nElectrons): + wu[e,f,a,b] += -ts[b,m] * eriMOspin[a,m,e,f] + ts[a,m] * eriMOspin[b,m,e,f] + for n in range(0, nElectrons): + wu[e,f,a,b] += 0.25 * tau(m,n,a,b,ts,td) * eriMOspin[m,n,e,f] + #equation (8) + for m in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + for e in range(nElectrons, spinOrbitals): + for j in range(0, nElectrons): + wm[e,j,m,b] += eriMOspin[m,b,e,j] + for f in range(nElectrons, spinOrbitals): + wm[e,j,m,b] += ts[f,j] * eriMOspin[m,b,e,f] + for n in range(0, nElectrons): + wm[e,j,m,b] -= ts[b,n] * eriMOspin[m,n,e,j] + for f in range(nElectrons, spinOrbitals): + wm[e,j,m,b] -= (0.5 * td[f,b,j,n] + ts[f,j] * ts[b,n]) * eriMOspin[m,n,e,f] + + ts = amplitudesT1() + td = amplitudesT2() + + return ts, td + +def amplitudesT3(fs, ts, td, eriMOspin, nElectrons): + # perturbative triples correction + + spinOrbitals = fs.shape[0] + tttd = 0.0 + et = 0.0 + + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for k in range(0, nElectrons): + + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + for c in range(nElectrons, spinOrbitals): + + fockDenominator = fs[i,i] + fs[j,j] + fs[k,k] - fs[a,a] - fs[b,b] - fs[c,c] + + tttd = (ts[a,i] * eriMOspin[j,k,b,c] - ts[a,j] * eriMOspin[i,k,b,c] - ts[a,k] * eriMOspin[j,i,b,c] - \ + ts[b,i] * eriMOspin[j,k,a,c] + ts[b,j] * eriMOspin[i,k,a,c] + ts[b,k] * eriMOspin[j,i,a,c] - \ + ts[c,i] * eriMOspin[j,k,b,a] + ts[c,j] * eriMOspin[i,k,b,a] + ts[c,k] * eriMOspin[j,i,b,a]) + tttd /= fockDenominator + + tttc = 0.0 + for e in range(nElectrons, spinOrbitals): + tttc += (td[a,e,j,k] * eriMOspin[e,i,b,c] - td[a,e,i,k] * eriMOspin[e,j,b,c] - td[a,e,j,i] * eriMOspin[e,k,b,c] \ + - td[b,e,j,k] * eriMOspin[e,i,a,c] + td[b,e,i,k] * eriMOspin[e,j,a,c] + td[b,e,j,i] * eriMOspin[e,k,a,c] \ + - td[c,e,j,k] * eriMOspin[e,i,b,a] + td[c,e,i,k] * eriMOspin[e,j,b,a] + td[c,e,j,i] * eriMOspin[e,k,b,a]) + + for m in range(0, nElectrons): + tttc -= (td[b,c,i,m] * eriMOspin[m,a,j,k] - td[b,c,j,m] * eriMOspin[m,a,i,k] - td[b,c,k,m] * eriMOspin[m,a,j,i] \ + - td[a,c,i,m] * eriMOspin[m,b,j,k] + td[a,c,j,m] * eriMOspin[m,b,i,k] + td[a,c,k,m] * eriMOspin[m,b,j,i] \ + - td[b,a,i,m] * eriMOspin[m,c,j,k] + td[b,a,j,m] * eriMOspin[m,c,i,k] + td[b,a,k,m] * eriMOspin[m,c,j,i]) + tttc /= fockDenominator + + et += tttc * (tttc + tttd) * fockDenominator / 36.0 + + return et + +def ccsd(atoms, eigenVectors, charge, fock, ERI, iterations, convergence, SCFenergy, diisStatus): + #compute the charged coupled single and doubles + + spinOrbitals = (fock.shape[0]) * 2 + nElectrons = electronCount(atoms, charge) + + #get fock in MO spin basis + fockMOspin = buildFockMOspin(spinOrbitals, eigenVectors, fock) + + #get two-electron repulsion integrals in MO basis + eriMO = buildEriMO(eigenVectors, ERI) + + #transform eri from MO to spin basis + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + #amplitude array for singles and doubles + ts = np.zeros((spinOrbitals, spinOrbitals)) + td = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + #get mp2 + mp2 = 0.0 + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + Dijab = fockMOspin[i,i] + fockMOspin[j,j] - fockMOspin[a,a] - fockMOspin[b,b] + td[a,b,i,j] = eriMOspin[i,j,a,b] / Dijab + mp2 += 0.25 * eriMOspin[i,j,a,b] * td[a,b,i,j] + + #diis variables + if diisStatus == 'on': + diisCapacity = 6 + diis = diis_c(diisCapacity, [ts, td]) + + #start the convergence iterations + energy = 0.0 + rmsAmplitudes = 0.0 + for cycle in range(1 , iterations): + + diis.refresh_store([ts, td]) + ts,td = updateIntermediates(fockMOspin, ts, td, eriMOspin, nElectrons) + + energy = ccsdEnergy(fockMOspin, ts, td, eriMOspin, nElectrons) + + #test convergence + rms = max(sqrt(np.sum(ts*ts)) ,sqrt(np.sum(td*td))) + if cycle != 1: + deltaEnergy = abs(preEnergy - energy) + deltaAmplitudes = abs(rmsAmplitudes - rms) + postSCF([energy, deltaEnergy, deltaAmplitudes, cycle, diisStatus], 'diis-sd') + + if (deltaEnergy < convergence) and (deltaAmplitudes < convergence): + break + + preEnergy = energy + rmsAmplitudes = rms + #diis + if diisStatus == 'on': + ts, td = diis.build([ts, td]) + + postSCF([cycle,energy, amplitudesT3(fockMOspin, ts, td, eriMOspin, nElectrons), mp2, SCFenergy], 'ccsd(t)') + + return energy, ts, td + +def ccsdEnergy(fs, ts, td, eriMOspin, nElectrons): + #compute the ccsd energy + energy = 0.0 + mp2 = 0 + spinOrbitals = fs.shape[0] + + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + energy += fs[i,a] * ts[i,a] + for j in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + mp2 = 0.25 * eriMOspin[i,j,a,b] * td[a,b,i,j] + energy += mp2 + 0.5 * eriMOspin[i,j,a,b] * ts[a,i] * ts[b,j] + return energy + +def lccd(atoms, eigenVectors, charge, fock, ERI, iterations, convergence, SCFenergy): + #coupled electron pairs approximation zero order + + spinOrbitals = (fock.shape[0]) * 2 + nElectrons = electronCount(atoms, charge) + + #get fock in MO spin basis + fockMOspin = buildFockMOspin(spinOrbitals, eigenVectors, fock) + + #get two-electron repulsion integrals in MO basis + eriMO = buildEriMO(eigenVectors, ERI) + + #transform eri from MO to spin basis + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + #amplitude array for singles and doubles + td = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + #start the convergence iterations + energy = 0.0 + rmsAmplitudes = 0.0 + diisStatus = 'off' + + for cycle in range(1 , iterations): + + td = lccdAmplitudes(td, fockMOspin, eriMOspin, nElectrons, spinOrbitals) + + energy = ccdEnergy(td, eriMOspin, nElectrons, spinOrbitals) + + rms = sqrt(np.sum(td*td)) + if cycle != 1: + deltaEnergy = abs(preEnergy - energy) + deltaAmplitudes = abs(rmsAmplitudes - rms) + postSCF([energy, deltaEnergy, deltaAmplitudes, cycle, diisStatus], 'diis-ld') + + if (deltaEnergy < convergence) and (deltaAmplitudes < convergence): + break + + preEnergy = energy + rmsAmplitudes = rms + + + postSCF([cycle, energy, SCFenergy], 'lccd') + + return energy + + +def lccdAmplitudes(td, fs, eriMOspin, nElectrons, spinOrbitals): + #compute coupled electron pair approximation + + TD = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + + TD[a,b,i,j] = eriMOspin[i,j,a,b] #[D1] + + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += fs[e,b] * (1 - (b == e)) * td[a,e,i,j] - \ + fs[e,a] * (1 - (a == e)) * td[b,e,i,j] #[D2a] + + for f in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += 0.5 * eriMOspin[e,f,a,b] * td[e,f,i,j] #[D2c] + + + for m in range(0, nElectrons): + TD[a,b,i,j] += -fs[j,m] * (1 - (m == j)) *td[a,b,i,m] + \ + fs[i,m] * (1 - (m == i)) *td[a,b,i,m] #[D2b] + + for n in range(0, nElectrons): + TD[a,b,i,j] += 0.5 * eriMOspin[i,j,m,n] * td[a,b,m,n] #[D2d] + + for m in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += eriMOspin[e,j,m,b] * td[a,e,i,m] - \ + eriMOspin[e,i,m,b] * td[a,e,j,m] - \ + eriMOspin[e,j,m,a] * td[b,e,i,m] + \ + eriMOspin[e,i,m,a] * td[b,e,j,m] #[D2e] + + fockDenominator = fs[i,i] + fs[j,j] - fs[a,a] - fs[b,b] + + TD[a,b,i,j] /= fockDenominator + + return TD + +def ccdEnergy( td, eriMOspin, nElectrons, spinOrbitals): + + energy = 0.0 + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + energy += 0.25 * eriMOspin[a,b,i,j] * td[a,b,i,j] + + return energy + +def ccd(atoms, eigenVectors, charge, fock, ERI, iterations, convergence, SCFenergy): + #coupled cluster doubles + + spinOrbitals = (fock.shape[0]) * 2 + nElectrons = electronCount(atoms, charge) + + #get fock in MO spin basis + fockMOspin = buildFockMOspin(spinOrbitals, eigenVectors, fock) + + #get two-electron repulsion integrals in MO basis + eriMO = buildEriMO(eigenVectors, ERI) + + #transform eri from MO to spin basis + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + #amplitude array for singles and doubles + td = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + #start the convergence iterations + energy = 0.0 + rmsAmplitudes = 0.0 + diisStatus = 'off' + + for cycle in range(1 , iterations): + + td = ccdAmplitudes(td, fockMOspin, eriMOspin, nElectrons, spinOrbitals) + + #can reuse cepaEnergy as algorithm the same + energy = ccdEnergy(td, eriMOspin, nElectrons, spinOrbitals) + + rms = sqrt(np.sum(td*td)) + if cycle != 1: + deltaEnergy = abs(preEnergy - energy) + deltaAmplitudes = abs(rmsAmplitudes - rms) + postSCF([energy, deltaEnergy, deltaAmplitudes, cycle, diisStatus], 'diis-sd') + + if (deltaEnergy < convergence) and (deltaAmplitudes < convergence): + break + + preEnergy = energy + rmsAmplitudes = rms + + postSCF([cycle, energy, SCFenergy], 'ccd') + + return energy + + +def ccdAmplitudes(td, fs, eriMOspin, nElectrons, spinOrbitals): + #compute coupled electron pair approximation + + TD = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + + #linear + TD[a,b,i,j] = eriMOspin[i,j,a,b] #[D1] + + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += fs[e,b] * (1 - (b == e)) * td[a,e,i,j] - \ + fs[e,a] * (1 - (a == e)) * td[b,e,i,j] #[D2a] + + for f in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += 0.5 * eriMOspin[e,f,a,b] * td[e,f,i,j] #[D2c] + + + for m in range(0, nElectrons): + TD[a,b,i,j] += -fs[j,m] * (1 - (m == j)) *td[a,b,i,m] + \ + fs[i,m] * (1 - (m == i)) *td[a,b,i,m] #[D2b] + + for n in range(0, nElectrons): + TD[a,b,i,j] += 0.5 * eriMOspin[i,j,m,n] * td[a,b,m,n] #[D2d] + + for m in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += eriMOspin[e,j,m,b] * td[a,e,i,m] - \ + eriMOspin[e,i,m,b] * td[a,e,j,m] - \ + eriMOspin[e,j,m,a] * td[b,e,i,m] + \ + eriMOspin[e,i,m,a] * td[b,e,j,m] #[D2e] + + #quadratic + for m in range(0, nElectrons): + for n in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + for f in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += -0.5 * eriMOspin[e,f,m,n] * td[f,b,i,j] * td[a,e,n,m] + \ + 0.5 * eriMOspin[e,f,m,n] * td[f,a,i,j] * td[b,e,n,m] #[D3d] + + TD[a,b,i,j] += -0.5 * eriMOspin[e,f,m,n] * td[a,b,n,j] * td[f,e,i,m] + \ + 0.5 * eriMOspin[e,f,m,n] * td[a,b,n,i] * td[f,e,j,m] #[D3c] + + TD[a,b,i,j] += 0.25 * eriMOspin[e,f,m,n] * td[e,f,i,j] * td[a,b,m,n] #[D3a] + + TD[a,b,i,j] += eriMOspin[e,f,m,n] * td[a,e,i,m] * td[b,f,j,n] - \ + eriMOspin[e,f,m,n] * td[a,e,j,m] * td[b,f,i,n] #[D3a] + + + + fockDenominator = fs[i,i] + fs[j,j] - fs[a,a] - fs[b,b] + + TD[a,b,i,j] /= fockDenominator + + return TD + +def ccsd_lambda(fs, eriMOspin, ts, td, nElectrons, iterations, tolerance): + #CCSD lambda equations - Gauss and Stanton J. Chem. Phys.103(9), 1 September 1995 + + spinOrbitals = fs.shape[0] + + #initial guess from lambda amplitudes + ls = ts * 0.0 + ld = td.copy() + ld.transpose(2,3,0,1) + + def tauSpin(i, j, a, b, ts, td): + # table III(d) + return td[a,b,i,j] + 0.5 * (ts[a,i] * ts[b,j] - ts[b,i] * ts[a,j]) + + def tau(i, j, a, b, ts, td): + #table III(d) + return td[a,b,i,j] + ts[a,i] * ts[b,j] - ts[b,i] * ts[a,j] + + def buildLambdaIntermediates(type = ''): + #fs - fockSpin ts - tsingle cluster operator td - tdouble cluster operator + #eriMOspin - electron repulsion integrals in the MO spin + + + + fi = np.zeros((spinOrbitals, spinOrbitals)) + wi = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + if type == 'ae': + #table III(a)[1] (b)[1] F[ae] + fi[:,:] = 0.0 + for a in range(nElectrons, spinOrbitals): + for e in range(nElectrons, spinOrbitals): + fi[a,e] += (1 - (a == e)) * fs[a,e] + for m in range(0, nElectrons): + fi[a,e] -= fs[e,m] * ts[a,m] + for f in range(nElectrons, spinOrbitals): + fi[a,e] += ts[f,m] * eriMOspin[a,m,e,f] + for n in range(0, nElectrons): + fi[a,e] -= 0.5 * tauSpin(m,n,a,f,ts,td) * eriMOspin[m,n,e,f] + fi[a,e] -= 0.5 * ts[a,m] * ts[f,n] * eriMOspin[m,n,e,f] + return fi + + if type == 'mi': + #table III(a)[2] (b)[2] F[mi] + fi[:,:] = 0.0 + for m in range(0, nElectrons): + for i in range(0, nElectrons): + fi[m,i] += (1 - (m == i)) * fs[m,i] + for e in range(nElectrons, spinOrbitals): + fi[m,i] += fs[e,m] * ts[e,i] + for n in range(0, nElectrons): + fi[m,i] += ts[e,n] * eriMOspin[m,n,i,e] + for f in range(nElectrons, spinOrbitals): + fi[m,i] += 0.5 * tauSpin(i,n,e,f,ts,td) * eriMOspin[m,n,e,f] + fi[m,i] += 0.5 * ts[e,i] * ts[f,n] * eriMOspin[m,n,e,f] + return fi + + if type == 'me': + #table III(a)[3] (b)[3] F[me] + fi[:,:] = 0.0 + for m in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + fi[m,e] += fs[m,e] + for n in range(0, nElectrons): + for f in range(nElectrons, spinOrbitals): + fi[m,e] += ts[f,n] * eriMOspin[m,n,e,f] + return fi + + if type == 'mnij': + #table III(a)[4] (b)[4] W[mnij] + wi[:,:,:,:] = 0.0 + for m in range(0, nElectrons): + for n in range(0, nElectrons): + for i in range(0, nElectrons): + for j in range(0, nElectrons): + wi[m,n,i,j] +=eriMOspin[m,n,i,j] + for e in range(nElectrons, spinOrbitals): + wi[m,n,i,j] += ts[e,j] * eriMOspin[m,n,i,e] - ts[e,i] * eriMOspin[m,n,j,e] + for f in range(nElectrons, spinOrbitals): + wi[m,n,i,j] += 0.5 * tau(i,j,e,f,ts,td) * eriMOspin[m,n,e,f] + return wi + + if type == 'abef': + #table III(a)[5] (b)[5] W[abef] + wi[:,:,:,:] = 0.0 + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + for e in range(nElectrons, spinOrbitals): + for f in range(nElectrons, spinOrbitals): + wi[a,b,e,f] += eriMOspin[a,b,e,f] + for m in range(0, nElectrons): + wi[a,b,e,f] += -ts[b,m] * eriMOspin[a,m,e,f] + ts[a,m] * eriMOspin[b,m,e,f] + for n in range(0, nElectrons): + wi[a,b,e,f] += 0.5 * tau(m,n,a,b,ts,td) * eriMOspin[m,n,e,f] + return wi + + if type == 'mbej': + #table III(a)[6] (b)[6] W[mbej] + wi[:,:,:,:] = 0.0 + for m in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + for e in range(nElectrons, spinOrbitals): + for j in range(0, nElectrons): + wi[m,b,e,j] += eriMOspin[m,b,e,j] + for f in range(nElectrons, spinOrbitals): + wi[m,b,e,j] += ts[f,j] * eriMOspin[m,b,e,f] + for n in range(0, nElectrons): + wi[m,b,e,j] -= ts[b,n] * eriMOspin[m,n,e,j] + for f in range(nElectrons, spinOrbitals): + wi[m,b,e,j] -= (td[f,b,j,n] + ts[f,j] * ts[b,n]) * eriMOspin[m,n,e,f] + return wi + + if type == 'abei': + wu = buildLambdaIntermediates('abef') + fm = buildLambdaIntermediates('me') + #table III(b)[10] W[abei] + wi[:,:,:,:] = 0.0 + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + for e in range(nElectrons, spinOrbitals): + for i in range(0, nElectrons): + wi[a,b,e,i] += eriMOspin[a,b,e,i] + for m in range(0, nElectrons): + wi[a,b,e,i] -= td[a,b,m,i] * fm[m,e] + wi[a,b,e,i] += -ts[a,m] * eriMOspin[m,b,e,i] + ts[b,m] * eriMOspin[m,a,e,i] + for n in range(0, nElectrons): + wi[a,b,e,i] += 0.5 * tau(m,n,a,b,ts,td) * eriMOspin[m,n,e,i] + for f in range(nElectrons, spinOrbitals): + wi[a,b,e,i] += ts[a,m] * td[b,f,n,i] * eriMOspin[m,n,e,f] - ts[b,m] * td[a,f,n,i] * eriMOspin[m,n,e,f] + for f in range(nElectrons, spinOrbitals): + wi[a,b,e,i] += -td[a,f,m,i] * eriMOspin[m,b,e,f] + td[b,f,m,i] * eriMOspin[m,a,e,f] + for f in range(nElectrons, spinOrbitals): + wi[a,b,e,i] += ts[f,i] * wu[a,b,e,f] + return wi + + if type == 'mbij': + wo = buildLambdaIntermediates('mnij') + fm = buildLambdaIntermediates('me') + #table III(b)[9] W[mbij] + wi[:,:,:,:] = 0.0 + for m in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + for i in range(0, nElectrons): + for j in range(0, nElectrons): + wi[m,b,i,j] += eriMOspin[m,b,i,j] + for e in range(nElectrons, spinOrbitals): + wi[m,b,i,j] -= td[b,e,i,j] * fm[m,e] + wi[m,b,i,j] += ts[e,i] * eriMOspin[m,b,e,j] - ts[e,j] * eriMOspin[m,b,e,i] + for f in range(nElectrons, spinOrbitals): + wi[m,b,i,j] += 0.5 * tau(i,j,e,f,ts,td) * eriMOspin[m,b,e,f] + for n in range(0, nElectrons): + wi[m,b,i,j] += -ts[e,i] * td[b,f,n,j] * eriMOspin[m,n,e,f] + ts[e,j] * td[b,f,n,i] * eriMOspin[m,n,e,f] + for n in range(0, nElectrons): + wi[m,b,i,j] += td[b,e,j,n] * eriMOspin[m,n,i,e] - td[b,e,i,n] * eriMOspin[m,n,j,e] + for n in range(0, nElectrons): + wi[m,b,i,j] -= ts[b,n] * wo[m,n,i,j] + return wi + + if type == 'amef': + #table III(b)[8] W[amef] + wi[:,:,:,:] = 0.0 + for a in range(nElectrons, spinOrbitals): + for m in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + for f in range(nElectrons, spinOrbitals): + wi[a,m,e,f] += eriMOspin[a,m,e,f] + for n in range(0, nElectrons): + wi[a,m,e,f] -= ts[a,n] * eriMOspin[n,m,e,f] + return wi + + if type == 'mnie': + #table III(b)[7] W[mnie] + wi[:,:,:,:] = 0.0 + for m in range(0, nElectrons): + for n in range(0, nElectrons): + for i in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + wi[m,n,i,e] += eriMOspin[m,n,i,e] + for f in range(nElectrons, spinOrbitals): + wi[m,n,i,e] += ts[f,i] * eriMOspin[m,n,f,e] + return wi + + def buildGintermediates(type = ''): + #build the G lambda intermediates + + gi = np.zeros((spinOrbitals, spinOrbitals)) + + if type == 'ae': + #table III(c)[1] + gi[:,:] = 0.0 + for a in range(nElectrons, spinOrbitals): + for e in range(nElectrons, spinOrbitals): + for m in range(0, nElectrons): + for n in range(0, nElectrons): + for f in range(nElectrons, spinOrbitals): + gi[a,e] -= 0.5 * td[e,f,m,n] * ld[m,n,a,f] + return gi + + if type == 'mi': + #table III(c)[1] + gi[:,:] = 0.0 + for m in range(0, nElectrons): + for i in range(0, nElectrons): + for n in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + for f in range(nElectrons, spinOrbitals): + gi[m,i] += 0.5 * td[e,f,m,n] * ld[i,n,e,f] + return gi + + + #evaluate intermediates + fme = buildLambdaIntermediates('me') + fae = buildLambdaIntermediates('ae') + fmi = buildLambdaIntermediates('mi') + wmnij = buildLambdaIntermediates('mnij') + wabef = buildLambdaIntermediates('abef') + wmbej = buildLambdaIntermediates('mbej') + + wmnie = buildLambdaIntermediates('mnie') + wamef = buildLambdaIntermediates('amef') + wmbij = buildLambdaIntermediates('mbij') + wabei = buildLambdaIntermediates('abei') + + preLambdaCorrelationEnergy = 0.0 + + #start energy loop + for cycle in range(iterations): + + #build lambda intermediates + gae = buildGintermediates('ae') + gmi = buildGintermediates('mi') + + #make the lambda singles Table II(a) + LS = np.zeros_like(ls) + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + LS[i,a] += fme[i,a] + for e in range(nElectrons, spinOrbitals): + LS[i,a] += ls[i,e] * fae[e,a] + for f in range(nElectrons, spinOrbitals): + LS[i,a] -= gae[e,f] * wamef[e,i,f,a] + for m in range(0, nElectrons): + LS[i,a] -= ls[m,a] * fmi[i,m] + for n in range(0, nElectrons): + LS[i,a] -= gmi[m,n] * wmnie[m,i,n,a] + for e in range(nElectrons, spinOrbitals): + LS[i,a] += ls[m,e] * wmbej[i,e,a,m] + for f in range(nElectrons, spinOrbitals): + LS[i,a] += 0.5 * ld[i,m,e,f] * wabei[e,f,a,m] + for n in range(0, nElectrons): + LS[i,a] -= 0.5 * ld[m,n,a,e] * wmbij[i,e,m,n] + + LS[i,a] /= (fs[i,i] - fs[a,a]) + + #make the lambda doubles Table II(b) + LD = np.zeros_like(ld) + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for j in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + LD[i,j,a,b] += eriMOspin[i,j,a,b] + LD[i,j,a,b] += ls[i,a] * fme[j,b] - ls[i,b] * fme[j,a] - \ + ls[j,a] * fme[i,b] + ls[j,b] * fme[i,a] + for e in range(nElectrons, spinOrbitals): + LD[i,j,a,b] += ld[i,j,a,e] * fae[e,b] - ld[i,j,b,e] * fae[e,a] + LD[i,j,a,b] += ls[i,e] * wamef[e,j,a,b] - ls[j,e] * wamef[e,i,a,b] + LD[i,j,a,b] += eriMOspin[i,j,a,e] * gae[b,e] - eriMOspin[i,j,b,e] *gae[a,e] + for f in range(nElectrons, spinOrbitals): + LD[i,j,a,b] += 0.5 * ld[i,j,e,f] * wabef[e,f,a,b] + for m in range(0, nElectrons): + LD[i,j,a,b] += ld[i,m,a,e] * wmbej[j,e,b,m] - ld[i,m,b,e] * wmbej[j,e,a,m] -\ + ld[j,m,a,e] * wmbej[i,e,b,m] + ld[j,m,b,e] * wmbej[i,e,a,m] + for m in range(0, nElectrons): + LD[i,j,a,b] += -ld[i,m,a,b] * fmi[j,m] + ld[j,m,a,b] * fmi[i,m] + LD[i,j,a,b] += -ls[m,a] * wmnie[i,j,m,b] + ls[m,b] * wmnie[i,j,m,a] + LD[i,j,a,b] += -eriMOspin[i,m,a,b] * gmi[m,j] + eriMOspin[j,m,a,b] * gmi[m,i] + for n in range(0, nElectrons): + LD[i,j,a,b] += 0.5 * ld[m,n,a,b] * wmnij[i,j,m,n] + + LD[i,j,a,b] /= (fs[i,i] + fs[j,j] - fs[a,a] - fs[b,b]) + + ls = LS + ld = LD + + #compute lambda pseudo-energy + lambdaCorrelationEnergy = 0.0 + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + lambdaCorrelationEnergy += fs[a,i] * ls[i,a] + for j in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + lambdaCorrelationEnergy += 0.25 * eriMOspin[i,j,a,b] * ld[i,j,a,b] + + #convergence control + if abs(lambdaCorrelationEnergy - preLambdaCorrelationEnergy) < tolerance: + break + + preLambdaCorrelationEnergy = lambdaCorrelationEnergy + + #return lambda intermediates + ims = [fae, fmi, fme, wmnij, wabef, wmbej, wmnie, wamef, wmbij, wabei] + + return lambdaCorrelationEnergy, ls, ld, ims + +def cc2_updateIntermediates(fs, ts, td, eriMOspin, nElectrons): + #fs - fockSpin ts - single cluster operator td - double cluster operator + #eriMOspin - electron repulsion integrals in the MO spin + + def cc2_amplitudesT1(): + # equation (1) CC2 T1 amplitude (same as CCSD) + #diagram labels Shavitt & Bartlett (Many Body methods in Chemistry & Physics Table 10.1) + + TS = np.zeros((spinOrbitals, spinOrbitals)) + + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + TS[a,i] += fs[a,i] #[S1] + + for e in range(nElectrons, spinOrbitals): + TS[a,i] += ts[e,i] * (1 - (a == e)) * fs[e,a] #[S3a] + + for m in range(0, nElectrons): + TS[a,i] -= ts[e,i] * ts[a,m] * fs[e,m] #[S5a] + TS[a,i] += td[a,e,i,m] * fs[e,m] #[S2a] + TS[a,i] += ts[e,m] * eriMOspin[a,m,i,e] #[S3c] + + for n in range(0, nElectrons): + TS[a,i] -= ts[a,m] * ts[e,n] * eriMOspin[m,n,i,e] #[S5c] + TS[a,i] -= 0.5 * td[a,e,m,n] * eriMOspin[m,n,i,e] #[S2c] + + for f in range(nElectrons, spinOrbitals): + TS[a,i] += ts[e,i] * ts[f,m] * eriMOspin[a,m,e,f] #[S5b] + TS[a,i] += 0.5 * td[e,f,i,m] * eriMOspin[a,m,e,f] #[S2b] + + for n in range(0, nElectrons): + TS[a,i] -= 0.5 * ts[e,i] * td[a,f,m,n] * eriMOspin[m,n,e,f] #[S4b] + TS[a,i] -= ts[e,i] * ts[a,m] * ts[f,n] * eriMOspin[m,n,e,f] #[S6] + + TS[a,i] -= 0.5 * ts[a,m] * td[e,f,i,n] * eriMOspin[m,n,e,f] #[S4b] + TS[a,i] += td[a,e,i,m] * ts[f,n] * eriMOspin[m,n,e,f] #[S4c] + + for m in range(0, nElectrons): + TS[a,i] -= ts[a,m] *(1 - (m == i)) * fs[i,m] #[S3b] + + TS[a,i] /= (fs[i,i] - fs[a,a]) + + return TS + + def cc2_amplitudesT2(): + # equation (2) CC2 T2 amplitude (T1H + T2F) + #diagram labels Shavitt & Bartlett (Many Body methods in Chemistry & Physics Table 10.2) + TD = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + TD[a,b,i,j] +=eriMOspin[i,j,a,b] #[D1] + + for m in range(0, nElectrons): + TD[a,b,i,j] += -ts[a,m] * eriMOspin[m,b,i,j] + ts[b,m] * eriMOspin[m,a,i,j] #[D4b] + TD[a,b,i,j] += -td[a,b,i,m] * fs[j,m] * (1 - (m == j)) + td[a,b,j,m] * fs[i,m] * (1 - (m == i)) #[D2b] + + for n in range(0, nElectrons): + TD[a,b,i,j] += ts[a,m] * ts[b,n] * eriMOspin[m,n,i,j] #[D6b] + + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += ts[a,m] * ts[b,n] * ts[e,i] * eriMOspin[m,n,e,j] - \ + ts[a,m] * ts[b,n] * ts[e,j] * eriMOspin[m,n,e,i] #[D8b] + + for f in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += ts[a,m] * ts[b,n] * ts[e,i] * ts[f,j] * eriMOspin[m,n,e,f] #[D9] + + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += ts[e,i] * eriMOspin[a,b,e,j] - ts[e,j] * eriMOspin[a,b,e,i] #[D4a] + TD[a,b,i,j] += td[a,e,i,j] * fs[e,b] * (1 - (b == e)) #[D2a] + + for m in range(0, nElectrons): + TD[a,b,i,j] += -ts[e,i] * ts[a,m] * eriMOspin[m,b,e,j] + \ + ts[e,i] * ts[b,m] * eriMOspin[m,a,e,j] + \ + ts[e,j] * ts[a,m] * eriMOspin[m,b,e,i] - \ + ts[e,j] * ts[b,m] * eriMOspin[m,a,e,i] #[D6c] + + for f in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += ts[e,i] * ts[f,j] * eriMOspin[a,b,e,f] #[D6a] + + for m in range(0, nElectrons): + TD[a,b,i,j] += -ts[e,i] * ts[f,j] * ts[a,m] * eriMOspin[m,b,e,f] + \ + ts[e,i] * ts[f,j] * ts[b,m] * eriMOspin[m,a,e,f] #[D8a] + + TD[a,b,i,j] /= (fs[i,i] + fs[j,j] - fs[a,a] - fs[b,b]) + + return TD + + spinOrbitals = fs.shape[0] + + ts = cc2_amplitudesT1() + td = cc2_amplitudesT2() + + return ts, td + + +def cc2(atoms, eigenVectors, charge, fock, ERI, iterations, convergence, SCFenergy, diisStatus): + #compute the charged coupled single and doubles + + spinOrbitals = (fock.shape[0]) * 2 + nElectrons = electronCount(atoms, charge) + + #get fock in MO spin basis + fockMOspin = buildFockMOspin(spinOrbitals, eigenVectors, fock) + + #get two-electron repulsion integrals in MO basis + eriMO = buildEriMO(eigenVectors, ERI) + + #transform eri from MO to spin basis + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + #amplitude array for singles and doubles + ts = np.zeros((spinOrbitals, spinOrbitals)) + td = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + # #previous iteration amplitudes needed for diis + # preTs = np.zeros_like(ts) + # preTd = np.zeros_like(td) + + #get mp2 + mp2 = 0.0 + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + Dijab = fockMOspin[i,i] + fockMOspin[j,j] - fockMOspin[a,a] - fockMOspin[b,b] + td[a,b,i,j] = eriMOspin[i,j,a,b] / Dijab + mp2 += 0.25 * eriMOspin[i,j,a,b] * td[a,b,i,j] + + diisCapacity = 6 + diis = diis_c(diisCapacity, [ts, td]) + + #start the convergence iterations + energy = 0.0 + rmsAmplitudes = 0.0 + for cycle in range(1 , iterations): + + diis.refresh_store([ts, td]) + ts,td = cc2_updateIntermediates(fockMOspin, ts, td, eriMOspin, nElectrons) + + energy = ccsdEnergy(fockMOspin, ts, td, eriMOspin, nElectrons) + + #test convergence + rms = max(sqrt(np.sum(ts*ts)) ,sqrt(np.sum(td*td))) + if cycle != 1: + deltaEnergy = abs(preEnergy - energy) + deltaAmplitudes = abs(rmsAmplitudes - rms) + postSCF([energy, deltaEnergy, deltaAmplitudes, cycle, diisStatus], 'diis-c2') + + if (deltaEnergy < convergence) and (deltaAmplitudes < convergence): + break + + preEnergy = energy + rmsAmplitudes = rms + #diis + if diisStatus == 'on': + ts, td = diis.build([ts, td]) + + postSCF([cycle, energy, mp2, SCFenergy], 'cc2') + + return energy, ts, td + +def lccsd(atoms, eigenVectors, charge, fock, ERI, iterations, convergence, diisStatus, SCFenergy): + #coupled electron pairs approximation zero order + + spinOrbitals = (fock.shape[0]) * 2 + nElectrons = electronCount(atoms, charge) + + #get fock in MO spin basis + fockMOspin = buildFockMOspin(spinOrbitals, eigenVectors, fock) + + #get two-electron repulsion integrals in MO basis + eriMO = buildEriMO(eigenVectors, ERI) + + #transform eri from MO to spin basis + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + #amplitude array for singles and doubles + ts = np.zeros((spinOrbitals, spinOrbitals)) + td = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + #previous iteration amplitudes needed for diis + preTs = np.zeros_like(ts) + preTd = np.zeros_like(td) + + #diis variables + if diisStatus == 'on': + diisCapacity = 6 + diis = diis_c(diisCapacity, [ts, td]) + + #start the convergence iterations + energy = 0.0 + rmsAmplitudes = 0.0 + for cycle in range(1 , iterations): + + diis.refresh_store([ts, td]) + ts, td = lccsd_updateIntermediates(ts, td, fockMOspin, eriMOspin, nElectrons, spinOrbitals) + + energy = lccsdEnergy(fockMOspin, ts, td, eriMOspin, nElectrons, spinOrbitals) + + #test convergence + rms = max(sqrt(np.sum(ts*ts)) ,sqrt(np.sum(td*td))) + if cycle != 1: + deltaEnergy = abs(preEnergy - energy) + deltaAmplitudes = abs(rmsAmplitudes - rms) + postSCF([energy, deltaEnergy, deltaAmplitudes, cycle, diisStatus], 'diis-ls') + + if (deltaEnergy < convergence) and (deltaAmplitudes < convergence): + break + + preEnergy = energy + rmsAmplitudes = rms + + #diis + if diisStatus == 'on': + ts, td = diis.build([ts, td]) + + postSCF([cycle, energy, SCFenergy], 'lccsd') + + return energy, ts, td + + +def lccsd_updateIntermediates(ts, td, fs, eriMOspin, nElectrons, spinOrbitals): + #fs - fockSpin ts - tsingle cluster operator td - double cluster operator + #eriMOspin - electron repulsion integrals in the MO spin + + def lccsd_amplitudesT1(): + # using S1, S2a, S2b, S2c, S3a, S3b and S3c + TS = np.zeros((spinOrbitals, spinOrbitals)) + + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + TS[a,i] += fs[a,i] #[S1] + + for e in range(nElectrons, spinOrbitals): + TS[a,i] += ts[e,i] * (1 - (a == e)) * fs[e,a] #[S3a] + + for m in range(0, nElectrons): + TS[a,i] += td[a,e,i,m] * fs[e,m] #[S2a] + TS[a,i] += ts[e,m] * eriMOspin[a,m,i,e] #[S3c] + + for n in range(0, nElectrons): + TS[a,i] -= 0.5 * td[a,e,m,n] * eriMOspin[m,n,i,e] #[S2c] + + for f in range(nElectrons, spinOrbitals): + TS[a,i] += 0.5 * td[e,f,i,m] * eriMOspin[a,m,e,f] #[S2b] + + for m in range(0, nElectrons): + TS[a,i] -= ts[a,m] *(1 - (m == i)) * fs[i,m] #[S3b] + + TS[a,i] /= (fs[i,i] - fs[a,a]) + + return TS + + def lccsd_amplitudesT2(): + # using D1, D2a, D2b, D2c, D2d, D2e, D4a, D4b + + TD = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + + TD[a,b,i,j] = eriMOspin[i,j,a,b] #[D1] + + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += fs[e,b] * (1 - (b == e)) * td[a,e,i,j] - \ + fs[e,a] * (1 - (a == e)) * td[b,e,i,j] #[D2a] + TD[a,b,i,j] += ts[e,i] * eriMOspin[a,b,e,j] - ts[e,j] * eriMOspin[a,b,e,i] #[D4a] + + for f in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += 0.5 * eriMOspin[e,f,a,b] * td[e,f,i,j] #[D2c] + + + for m in range(0, nElectrons): + TD[a,b,i,j] += -fs[j,m] * (1 - (m == j)) *td[a,b,i,m] + \ + fs[i,m] * (1 - (m == i)) *td[a,b,j,m] #[D2b] + TD[a,b,i,j] += -ts[a,m] * eriMOspin[m,b,i,j] + ts[b,m] * eriMOspin[m,a,i,j] #[D4b] + + for n in range(0, nElectrons): + TD[a,b,i,j] += 0.5 * eriMOspin[i,j,m,n] * td[a,b,m,n] #[D2d] + + for m in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + TD[a,b,i,j] += eriMOspin[e,j,m,b] * td[a,e,i,m] - \ + eriMOspin[e,i,m,b] * td[a,e,j,m] - \ + eriMOspin[e,j,m,a] * td[b,e,i,m] + \ + eriMOspin[e,i,m,a] * td[b,e,j,m] #[D2e] + + fockDenominator = fs[i,i] + fs[j,j] - fs[a,a] - fs[b,b] + + TD[a,b,i,j] /= fockDenominator + + return TD + + ts = lccsd_amplitudesT1() + td = lccsd_amplitudesT2() + + return ts, td + +def lccsdEnergy(fs, ts, td, eriMOspin, nElectrons, spinOrbitals): + + energy = 0.0 + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + energy += fs[a,i] * ts[a,i] + for j in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + energy += 0.25 * eriMOspin[a,b,i,j] * td[a,b,i,j] + + return energy diff --git a/source/cc/ucc.py b/source/cc/ucc.py new file mode 100644 index 0000000..3ec0752 --- /dev/null +++ b/source/cc/ucc.py @@ -0,0 +1,385 @@ +from __future__ import division +import numpy as np +from diis import diis_c +from view import postSCF +from atom import getConstant +from adc.adc import davidson +from cc.fcc import spinMO + +class unitaryCoupledCluster(object): + #Unitary Coupled Cluster CC2 + + o = None ; v = None + d_tensors = [] + HFenergy = 0.0 + + def __init__(self, fs, gs, e, data): + + self.fs = fs + self.gs = gs + self.e = e + self.ss = None + self.sd = None + self.method, self.electrons, self.cycle_limit, self.convergence, self.verbose, self.roots = data.values() + self.converged = False + + self.guess_vector_factor = 1 + + #check method implemented + if not self.method in ['ucc2', 'ucc2-ee', 'ucc2-s-ee', 'ucc3', 'ucc(4)'] : return None + + self.mp2 = 0.0 + + self.energy = self.iterator(self.update_amplitudes) + + if self.method in ['ucc2-ee', 'ucc2-s-ee']: self.excitations() + + def initialise_amplitudes(self): + #set initial amplitudes + + nocc = self.electrons + n = np.newaxis + o = slice(None, nocc) + v = slice(nocc, None) + + eps = np.kron(self.e, np.ones(2)) + + #d tensors + ds = 1.0 / (eps[o, n] - eps[n, v] ) + dd = 1.0 / (eps[o, n, n, n] + eps[n, o, n, n] - eps[n, n, v, n] - eps[n, n, n, v] ) + dt = 1.0 / (eps[o, n, n, n, n, n] + eps[n, o, n, n, n, n] + eps[n, n, o, n, n, n]- \ + eps[n, n, n, v, n, n] - eps[n, n, n, n, v, n] - eps[n, n, n, n, n, v] ) + + self.d_tensors = [ds, dd, dt] + + #initial amplitudes and mp2 energy + self.ss = np.zeros_like(self.fs[o,v]) ; self.sd = self.gs[o, o, v, v]*dd ; self.st = np.zeros_like(dt) + self.mp2 = 0.25 * np.einsum('ijab,ijab->', self.gs[o, o, v, v], self.sd, optimize=True) + self.td = self.sd.copy() + + #Hartree-Fock energy + self.HFenergy = np.einsum('ii', self.fs[o, o]) - 0.5 * np.einsum('ijij', self.gs[o, o, o, o]) + + #class variables + self.o = o ; self.v = v + + def update_amplitudes(self, iterative=True): + #compute the next cycle amplitudes + + o = self.o ; v = self.v + + if self.method in ['ucc2', 'ucc2-s-ee', 'ucc2-ee']: + if not iterative: + s1 = 0.5 * np.einsum('ajbc,ijbc->ia', self.gs[v,o,v,v], self.sd, optimize=True) + s1 -= 0.5 * np.einsum('jkib,jkab->ia', self.gs[o,o,o,v], self.sd, optimize=True) + + self.ss = s1 * self.d_tensors[0] + + s2 = self.gs[o,o,v,v].copy() + s2 += 0.5 * np.einsum('abcd,ijcd->ijab', self.gs[v,v,v,v], self.sd, optimize=True) + s2 += 0.5 * np.einsum('klij,klab->ijab', self.gs[o,o,o,o], self.sd, optimize=True) + + t = np.einsum('kbcj,ikac->ijab', self.gs[o,v,v,o], self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,3,2) + + self.sd = s2 * self.d_tensors[1] + + if self.method == 'ucc3': + s1 = 0.5 * np.einsum('ajbc,ijbc->ia', self.gs[v,o,v,v], self.sd, optimize=True) + s1 -= 0.5 * np.einsum('jkib,jkab->ia', self.gs[o,o,o,v], self.sd, optimize=True) + s1 += np.einsum('ajib,jb->ia', self.gs[v,o,o,v], self.ss, optimize=True) + s1 += 0.5 * np.einsum('abij,jb->ia', self.gs[v,v,o,o], self.ss, optimize=True) + s1 -= 0.5 * np.einsum('alik,ljcb,kjcb->ia', self.gs[v,o,o,o], self.sd, self.sd, optimize=True) + s1 += 0.5 * np.einsum('adic,kjcb,kjdb->ia', self.gs[v,v,o,v], self.sd, self.sd, optimize=True) + s1 -= 0.25* np.einsum('bcid,jkad,jkbc->ia', self.gs[v,v,o,v], self.sd, self.sd, optimize=True) + s1 += 0.25* np.einsum('aljk,ilbc,jkbc->ia', self.gs[v,o,o,o], self.sd, self.sd, optimize=True) + s1 -= np.einsum('acjd,ikbd,jkbc->ia', self.gs[v,v,o,v], self.sd, self.sd, optimize=True) + s1 += np.einsum('blik,jlac,jkbc->ia', self.gs[v,o,o,o], self.sd, self.sd, optimize=True) + s1 -= 0.25*np.einsum('bljk,ilac,jkbc->ia', self.gs[v,o,o,o], self.sd, self.sd, optimize=True) + s1 += 0.25*np.einsum('bdjc,ikac,jkbd->ia', self.gs[v,v,o,v], self.sd, self.sd, optimize=True) + + self.ss = s1 * self.d_tensors[0] + + s2 = self.gs[o,o,v,v].copy() + s2 += 0.5 * np.einsum('abcd,ijcd->ijab', self.gs[v,v,v,v], self.sd, optimize=True) + s2 += 0.5 * np.einsum('klij,klab->ijab', self.gs[o,o,o,o], self.sd, optimize=True) + + t = np.einsum('kbcj,ikac->ijab', self.gs[o,v,v,o], self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,3,2) + + t = np.einsum('abcj,ic->ijab', self.gs[v,v,v,o], self.ss, optimize=True) + s2 += t - t.transpose(1,0,2,3) + + t = -np.einsum('kbij,ka->ijab', self.gs[o,v,o,o], self.ss, optimize=True) + s2 += t - t.transpose(0,1,3,2) + + t = (1/3) * np.einsum('klcd,ikac,ljdb->ijab', self.gs[o,o,v,v], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,3,2) + + s2 += (1/6) * np.einsum('klcd,ijcd,klab->ijab', self.gs[o,o,v,v], self.sd, self.sd, optimize=True) + + t = -(1/3) * np.einsum('klcd,ijac,klbd->ijab', self.gs[o,o,v,v], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(0,1,3,2) + + t = -(1/3) * np.einsum('klcd,ikab,jlcd->ijab', self.gs[o,o,v,v], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) + + t = (1/3) * np.einsum('acik,ljdb,klcd->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,3,2) + + s2 += (1/12) * np.einsum('cdij,klab,klcd->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += (1/12) * np.einsum('abkl,ijcd,klcd->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + + t = -(1/6) * np.einsum('cdki,ljab,klcd->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) + + t = -(1/6) * np.einsum('cakl,ijdb,klcd->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(0,1,3,2) + + t = -(1/6) * np.einsum('acij,klbd,klcd->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(0,1,3,2) + + t = -(1/6) * np.einsum('abik,jlcd,klcd->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) + + self.sd = s2 * self.d_tensors[1] + + if self.method == 'ucc(4)': + s1 = 0.5 * np.einsum('ajbc,ijbc->ia', self.gs[v,o,v,v], self.sd, optimize=True) + s1 -= 0.5 * np.einsum('jkib,jkab->ia', self.gs[o,o,o,v], self.sd, optimize=True) + + self.ss = s1 * self.d_tensors[0] + + s2 = self.gs[o,o,v,v].copy() + s2 += 0.5 * np.einsum('abcd,ijcd->ijab', self.gs[v,v,v,v], self.sd, optimize=True) + s2 += 0.5 * np.einsum('klij,klab->ijab', self.gs[o,o,o,o], self.sd, optimize=True) + + t = np.einsum('kbcj,ikac->ijab', self.gs[o,v,v,o], self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,3,2) + t = np.einsum('abcj,ic->ijab', self.gs[v,v,v,o], self.ss, optimize=True) + s2 += t - t.transpose(1,0,2,3) + t = -np.einsum('kbij,ka->ijab', self.gs[o,v,o,o], self.ss, optimize=True) + s2 += t - t.transpose(0,1,3,2) + + t = 0.25 * np.einsum('klcd,ikac,jlbd->ijab', self.gs[o,o,v,v], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,3,2) + t = -0.25 * np.einsum('klcd,ikab,jlcd->ijab', self.gs[o,o,v,v], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) + t = -0.25 * np.einsum('klcd,ijac,klbd->ijab', self.gs[o,o,v,v], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(0,1,3,2) + s2 += 0.125 * np.einsum('klcd,ijcd,klab->ijab', self.gs[o,o,v,v], self.sd, self.sd, optimize=True) + + t = 0.5 * np.einsum('dblj,ikac,klcd->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) - t.transpose(0,1,3,2) + t.transpose(1,0,3,2) + s2 += 0.125 * np.einsum('abkl,klcd,ijcd->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += 0.125 * np.einsum('cdij,klcd,klab->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + t = -0.25 * np.einsum('bdkl,klcd,ijac->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(0,1,3,2) + t = -0.25 * np.einsum('cdjl,klcd,ikab->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) + t = -0.25 * np.einsum('dbij,klca,klcd->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(0,1,3,2) + t = -0.25 * np.einsum('ablj,ikdc,klcd->ijab', self.gs[v,v,o,o], self.sd, self.sd, optimize=True) + s2 += t - t.transpose(1,0,2,3) + + t = 0.5 * np.einsum('bkcd,ijkacd->ijab', self.gs[v,o,v,v], self.st, optimize=True) + s2 += t - t.transpose(0,1,3,2) + t = -0.5 * np.einsum('kljc,iklabc->ijab', self.gs[o,o,o,v], self.st, optimize=True) + s2 += t - t.transpose(1,0,2,3) + + self.sd = s2 * self.d_tensors[1] + + t = np.einsum('bcdk,ijad->ijkabc', self.gs[v,v,v,o], self.sd, optimize=True) + t = t - t.transpose(0,1,2,4,3,5) - t.transpose(0,1,2,5,4,3) + s3 = t - t.transpose(2,1,0,3,4,5) - t.transpose(0,2,1,3,4,5) + t = -np.einsum('lcjk,ilab->ijkabc', self.gs[o,v,o,o], self.sd, optimize=True) + t = t - t.transpose(0,1,2,5,4,3) - t.transpose(0,1,2,3,5,4) + s3 += t - t.transpose(1,0,2,3,4,5) - t.transpose(2,1,0,3,4,5) + + self.dt = s3 * self.d_tensors[2] + + def cluster_energy(self): + #compute the coupled-cluster energy correction + + o = self.o ; v = self.v + + e = 1.0 * np.einsum('ia,ia->', self.fs[o,v], self.ss, optimize=True) + + e += 0.25 * np.einsum('ijab,ijab->', self.gs[o, o, v, v], self.sd, optimize=True) + + if self.method == 'ucc3': + e += (1/6) * np.einsum('ijab,ia,jb->', self.gs[o,o,v,v], self.ss, self.ss, optimize=True) + if self.method == 'ucc(4)': + t = 0.5 * np.einsum('dblj,ikac,klcd,ijab->', self.gs[v,v,o,o], self.sd, self.sd, self.sd, optimize=True) + t += 0.0625 * np.einsum('abkl,ijab,klcd,ijcd->', self.gs[v,v,o,o], self.sd, self.sd, self.sd, optimize=True) + t -= 0.25 * np.einsum('ablj,klcd,ijab,ikdc->', self.gs[v,v,o,o], self.sd, self.sd, self.sd, optimize=True) + t -= 0.25 * np.einsum('dbij,klcd,ijab,klca->', self.gs[v,v,o,o], self.sd, self.sd, self.sd, optimize=True) + e -= 0.5 * t + + return e + + def iterator(self, func): + #consistent field iterations + + #initiate the amplitudes + self.initialise_amplitudes() + + #initialise diis buffers + amplitudes = [self.ss, self.sd] if self.method != 'ucc(4)' else [self.ss, self.sd, self.st] + diis = diis_c(6, amplitudes) + + cycle_energy = [self.cluster_energy()] + + for cycle in range(self.cycle_limit): + + #store pre-update amplitudes + amplitudes = [self.ss, self.sd] if self.method != 'ucc(4)' else [self.ss, self.sd, self.st] + diis.refresh_store(amplitudes) + + func() + + #calculate current cycle energy + cycle_energy.append(self.cluster_energy()) + + #test convergence + delta_energy = np.abs(cycle_energy[-2] - cycle_energy[-1]) + if delta_energy < self.convergence: + self.converged = True + break + else: + if self.verbose: print('cycle = {:>3d} energy = {:>15.10f} \u0394E = {:>12.10f} '.format(cycle, cycle_energy[-1], delta_energy)) + del cycle_energy[0] + + #diis build extrapolated amplitudes + amplitudes = [self.ss, self.sd] if self.method != 'ucc(4)' else [self.ss, self.sd, self.st] + amplitudes = diis.build(amplitudes) + if self.method != 'ucc(4)': + self.ss, self.sd = amplitudes + else: + self.ss, self.sd, self.st = amplitudes + + if self.converged: + self.update_amplitudes(iterative=False) + return {self.method: cycle_energy[-1], 'mp2': self.mp2, 'eHF':self.HFenergy} + + + def excitations(self): + #UCC2 secular matrix + + o, v, n = self.o, self.v, np.newaxis + nocc, nvir = self.ss.shape + nrot = nocc * nvir + + ds, dd = np.reciprocal(self.d_tensors[0]), np.reciprocal(self.d_tensors[1]) + sd = self.sd if not self.method == 'ucc2-s-ee' else self.td + + def ucc_diagonal(self): + #compute the diagonal of the ADC matrix as a pre-conditioner for the davidson iterations + + #initialize to fock diagonal + diagonal = -np.concatenate([ds.ravel(), dd.swapaxes(1, 2).ravel()]) + + ucc_diagonal = diagonal[:nrot].reshape(nocc, nvir) + + ucc_diagonal -= np.einsum('aiai->ia', self.gs[v, o, v, o], optimize=True) + + ucc_diagonal += 0.5 * np.einsum('acik,ikac->ia', self.gs[v, v, o, o], sd, optimize=True) + ucc_diagonal += 0.5 * np.einsum('ikac,ikac->ia', self.gs[o, o, v, v], sd, optimize=True) + ucc_diagonal -= 0.25 * np.einsum('cdik,ikcd->i', self.gs[v, v, o, o], sd, optimize=True)[:, n] + ucc_diagonal -= 0.25 * np.einsum('ikcd,ikcd->i', self.gs[o, o, v, v], sd, optimize=True)[:, n] + ucc_diagonal -= 0.25 * np.einsum('ackl,klac->a', self.gs[v, v, o, o], sd, optimize=True)[n, :] + ucc_diagonal -= 0.25 * np.einsum('klac,klac->a', self.gs[o, o, v, v], sd, optimize=True)[n, :] + + return diagonal + + def ucc_initial_guess(self, diagonal, f=1): + #initial vector to start Davidson + + #get largest absolute values on diagonal matrix as best guess + args = np.argsort(np.absolute(diagonal)) + guess_vectors = np.zeros((diagonal.size, self.roots * f)) + for root in range(self.roots * f): + guess_vectors[args[root], root] = 1.0 + + return guess_vectors + + def matvec(ucc): + #construct the UCC2 blocks of second order matrix dot product with arbitary vector (r) + + ucc = np.array(ucc) + r = np.zeros_like(ucc) + + ucc_s = ucc[:nrot].reshape(nocc, nvir) + r_s = r[:nrot].reshape(nocc, nvir) + + #singles - singles block + r_s -= np.einsum('ia,ia->ia', ds, ucc_s, optimize=True) + + r_s -= np.einsum('ajbi,jb->ia', gs[v, o, v, o], ucc_s, optimize=True) + + r_s += 0.5 * np.einsum('acik,jkbc,jb->ia', gs[v, v, o, o], sd, ucc_s, optimize=True) + r_s += 0.5 * np.einsum('jkbc,ikac,jb->ia', gs[o, o, v, v], sd, ucc_s, optimize=True) + + t = -np.einsum('cdik,jkcd->ij', gs[v, v, o, o], sd, optimize=True) + t += -np.einsum('jkcd,ikcd->ij', gs[o, o, v, v], sd, optimize=True) + r_s += 0.25 * np.einsum('ij,ja->ia', t, ucc_s, optimize=True) + + t = -np.einsum('ackl,klbc->ab', gs[v, v, o, o], sd, optimize=True) + t += -np.einsum('klbc,klac->ab', gs[o, o, v, v], sd, optimize=True) + r_s += 0.25 * np.einsum('ab,ib->ia', t, ucc_s, optimize=True) + + ucc_d = ucc[nrot:].reshape(nocc, nvir, nocc, nvir) + r_d = r[nrot:].reshape(nocc, nvir, nocc, nvir) + + #singles - doubles block + r_s += 0.5 * np.einsum('klid,kald->ia', gs[o, o, o, v], ucc_d, optimize=True) + r_s -= 0.5 * np.einsum('klic,kcla->ia', gs[o, o, o, v], ucc_d, optimize=True) + r_s -= 0.5 * np.einsum('alcd,icld->ia', gs[v, o, v, v], ucc_d, optimize=True) + r_s += 0.5 * np.einsum('akcd,kcid->ia', gs[v, o, v, v], ucc_d, optimize=True) + + #doubles - singles block + r_d += 0.5 * np.einsum('kbij,ka->iajb', gs[o, v, o, o], ucc_s, optimize=True) + r_d -= 0.5 * np.einsum('kaij,kb->iajb', gs[o, v, o, o], ucc_s, optimize=True) + r_d -= 0.5 * np.einsum('abcj,ic->iajb', gs[v, v, v, o], ucc_s, optimize=True) + r_d += 0.5 * np.einsum('abci,jc->iajb', gs[v, v, v, o], ucc_s, optimize=True) + + #doubles - doubles block + r_d -= np.einsum('ijab,iajb->iajb', dd, ucc_d, optimize=True) + + return r + + #get diagonal preconditioner + diagonal = ucc_diagonal(self) + + #generate initial guess from diagonal + guess_vectors = ucc_initial_guess(self, diagonal, self.guess_vector_factor) + + self.tol = 1e-8 ; sort_on_absolute=True ; self.vectors_per_root=30 + e, v, self.converged = davidson(matvec, guess_vectors, diagonal, tol=self.tol, + vectors_per_root = self.vectors_per_root ) + + print(e) + +if __name__ == '__main__': + + #do an SCF computation + import rhf + molAtom, molBasis, molData = rhf.mol([]) + eSCF = rhf.scf(molAtom, molBasis,molData, []) + + #get data for coupled-cluster + from atom import nuclearRepulsion ; from basis import electronCount + charge, nuclearRepulsion, electrons = [molData['charge'], nuclearRepulsion(molAtom), electronCount(molAtom, molData['charge'])] + f, c, e, eri = [rhf.fock, rhf.C, rhf.e, rhf.ERI] + + #get fock and eri in molecular spin basis from spinMO class + mo = spinMO(e, eri, c, f) + gs = mo.gs + fs = mo.fs + + data = {'method':'ucc(4)', 'electrons':electrons, 'cycle_limit': 50, 'precision':1e-10, 'verbose':True, 'roots':5} + cc = unitaryCoupledCluster(fs, gs, e, data) + if cc.converged: + cc.energy['nuclear'] = nuclearRepulsion + + print(cc.energy) diff --git a/source/ci.py b/source/ci.py new file mode 100644 index 0000000..85cff92 --- /dev/null +++ b/source/ci.py @@ -0,0 +1,664 @@ +from __future__ import division +from integral import buildFockMOspin, buildEriMO, buildEriDoubleBar +from numpy import zeros, sort, real, dot, sqrt, eye, append, block +from basis import electronCount +from numpy.linalg import eigh, eigvals, eig, qr, norm +from scipy.linalg import sqrtm +from view import postSCF +from integral import iEri + +def cis(atoms, charge, bases, eigenVectors, fock, ERI): + #compute Configuration Interaction Singles + + spinOrbitals = len(bases) * 2 + #get fock matrix in MO spin basis + fockMOspin = buildFockMOspin(spinOrbitals, eigenVectors, fock) + + #get two-electron repulsion integrals in MO basis + eriMO = buildEriMO(eigenVectors, ERI) + + #transform eri from MO to spin basis + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + #orbital occupation + nElectrons = electronCount(atoms, charge) + nOccupied = int(nElectrons/2) + nVirtual = len(bases) - nOccupied + + #build singly excited determinant basis Hamiltonian + ciHamiltonian = zeros( (nOccupied*nVirtual*4,nOccupied*nVirtual*4) ) + + ia = 0 + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + + jb = 0 + for j in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + + if (i == j): + ciHamiltonian[ia,jb] += fockMOspin[a,b] + if (a == b): + ciHamiltonian[ia,jb] -= fockMOspin[i,j] + + ciHamiltonian[ia,jb] += eriMOspin[a,j,i,b] + + jb += 1 + ia += 1 + + #diagonalise Hamiltonian + e, ccis = eigh(ciHamiltonian) + + #excitations + jumps = excitations(e, ccis, nElectrons, nOccupied, nVirtual) + + #detect degeneracy + postSCF(ciDegeneracy(e), 'ci') + + #Davidson + n = min(5, len(ciHamiltonian)//2) + postSCF(blockDavidson(n, ciHamiltonian),'bd') + + #output jumps + postSCF(jumps, 'ju') + + return e, ccis + +def ciDegeneracy(e): + #from sorted [low->high] produce [value, degeneracy] tuples + + count = 0 + ciEnergy = [] + energy = e[count] + degeneracy = 0 + + #search forward for equal energies + while True: + + #loop until new energy value + while True: + degeneracy += 1 + count += 1 + if count == len(e): #got to end of list + break + if abs(energy - e[count]) > 1e-12: #same to within tolerence + break + + if degeneracy == 3: + ciEnergy.append([energy, 't']) + elif degeneracy == 2: + ciEnergy.append([energy, 'd']) + elif degeneracy == 1: + ciEnergy.append([energy, 's']) + else: + ciEnergy.append([energy, '(' + str(degeneracy) + ')']) + + if count >= len(e): + break + + energy = e[count] + degeneracy = 0 + + return ciEnergy + +def ciSpinAdaptedSingles(atoms, charge, bases, eigenVectors, fock, ERI): + #configuration interaction spin-adapted singles + + spinOrbitals = len(bases) * 2 + #get fock matrix in MO basis + fockMO = dot(eigenVectors.T , dot(fock, eigenVectors)) + + #get two-electron repulsion integrals in MO basis + eriMO = buildEriMO(eigenVectors, ERI) + + #orbital occupation + nElectrons = electronCount(atoms, charge) + nOccupied = int(nElectrons/2) + nVirtual = len(bases) - nOccupied + n = len(bases) + + #build singly excited determinant basis Hamiltonian + ciHamiltonian = zeros( (nOccupied*nVirtual, nOccupied*nVirtual) ) + + ia = 0 + for i in range(0, nOccupied): + for a in range(nOccupied, n): + + jb = 0 + for j in range(0, nOccupied): + for b in range(nOccupied, n): + + sum = 0.0 + if (i == j) and (a == b): + sum += fockMO[a,a] - fockMO[i,i] + + sum += 2.0 * eriMO[iEri(a,i,j,b)] - eriMO[iEri(a,b,j,i)] + ciHamiltonian[ia,jb] = sum + + jb += 1 + ia += 1 + + #diagonalise Hamiltonian + e = eigvals(ciHamiltonian) + + #order eigenvalues + e.sort() + + postSCF(e, 'cisas') + + return e + +def ciSpinAdaptedTriples(atoms, charge, bases, eigenVectors, fock, ERI): + #configuration interaction spin-adapted singles + + spinOrbitals = len(bases) * 2 + #get fock matrix in MO basis + fockMO = dot(eigenVectors.T , dot(fock, eigenVectors)) + + #get two-electron repulsion integrals in MO basis + eriMO = buildEriMO(eigenVectors, ERI) + + #orbital occupation + nElectrons = electronCount(atoms, charge) + nOccupied = int(nElectrons/2) + nVirtual = len(bases) - nOccupied + n = len(bases) + + #build singly excited determinant basis Hamiltonian + ciHamiltonian = zeros( (nOccupied*nVirtual, nOccupied*nVirtual) ) + + ia = 0 + for i in range(0, nOccupied): + for a in range(nOccupied, n): + + jb = 0 + for j in range(0, nOccupied): + for b in range(nOccupied, n): + + sum = 0.0 + if (i == j) and (a == b): + sum += fockMO[a,a] - fockMO[i,i] + + sum -= eriMO[iEri(a,b,j,i)] + ciHamiltonian[ia,jb] = sum + + jb += 1 + ia += 1 + + #diagonalise Hamiltonian + e = eigvals(ciHamiltonian) + + #order eigenvalues + e.sort() + + postSCF(e, 'cisat') + + return e + +def randomPhaseApproximation(atoms, charge, bases, eigenVectors, fock, ERI, type = 'tamm-dancoff'): + #time-dependent Hartree-Fock (TDHF) random phase approximation (RPA) + + spinOrbitals = len(bases) * 2 + + #get fock matrix in MO spin basis + fockMOspin = buildFockMOspin(spinOrbitals, eigenVectors, fock) + + #get two-electron repulsion integrals in MO basis + eriMO = buildEriMO(eigenVectors, ERI) + + #transform eri from MO to spin basis + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + #orbital occupation + nElectrons = electronCount(atoms, charge) + nOccupied = int(nElectrons/2) + nVirtual = len(bases) - nOccupied + + A = zeros((nOccupied*nVirtual*4, nOccupied*nVirtual*4)) + B = zeros((nOccupied*nVirtual*4, nOccupied*nVirtual*4)) + + ia = 0 + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + + jb = 0 + for j in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + + if (i == j): + A[ia,jb] += fockMOspin[a,b] + if (a == b): + A[ia,jb] -= fockMOspin[i,j] + + A[ia,jb] += eriMOspin[b,i,j,a] + B[ia,jb] += eriMOspin[b,a,j,i] + + jb += 1 + ia += 1 + + if type == 'linear': + HA = A + B + HB = A - B + ciHamiltonian = dot(HA, HB) + elif type == 'block': + ciHamiltonian = block([ [A, B], + [-B, -A] ]) + elif type == 'hermitian': + sqm = sqrtm(A-B) + ciHamiltonian = dot(sqm, dot(A+B, sqm)) + + elif type == 'tamm-dancoff': + ciHamiltonian = A + e, v = eigh(ciHamiltonian) + + #sort eigen solutions + idx = e.argsort() + e = e[idx].real + v = v[:,idx].real + + return e, v + + elif type == 'raw': + return A, B + + #diagonalise Hamiltonian + e = eigvals(ciHamiltonian) + + #order eigenvalues + e.sort() + + #'hermitian' and 'linear' gives square of eigenvalues + if type in 'hermitian, linear' : + e = sqrt(real(e)) + else: + e = e[nOccupied*nVirtual*4:].real + + #detect degeneracy + postSCF(ciDegeneracy(e), 'rpa') + + return e + + +def excitations(ecis, ccis, nElectrons, nOccupied, nVirtual): + #calculate the jumps and contributions + + levels = [] + for i in range(0, nOccupied*2): + for j in range(nOccupied*2, (nOccupied+nVirtual)*2): + levels.append(str(i) + ' -> ' + str(j)) + + contributions = [] + #loop over energies and find contributions > 10% + for i in range(0, ccis.shape[1]): + #loop down levels + for j in range(0, ccis.shape[0]): + percent = round(ccis[j,i] * ccis[j,i] * 100) + if percent > 10: + contributions.append([i , round(ecis[i],6), percent, levels[j]]) + + return contributions + +def blockDavidson(nLowestEigen, h): + #simplistic implementation of block Davidson algorithm for finding n lowest eigenvalues, real symmetric + + tolerence = 1e-8 + n = h.shape[0] + iterations = n + + #sub-space can't be greater than dimension of h + if nLowestEigen > n//2: nLowestEigen = n//2 + + #initial sub-space guess + nInitialGuessVectors = 2 * nLowestEigen + t = eye(n, nInitialGuessVectors) + + V = zeros((n, 0)) + V = append(V, t, axis=1) + + I = eye(n) + + #begin algorithm + m = nInitialGuessVectors + cycle = 0 + tau = 0 + preTheta = 1 + + while True: + if m > nInitialGuessVectors: + preTheta = theta[:nLowestEigen] + + T = dot(V[:,:m].T,dot(h,V[:,:m])) + rho,S = eig(T) + idx = rho.argsort() + theta = rho[idx] + s = S[:,idx] + for j in range(0,nInitialGuessVectors): + w = dot((h - theta[j]*I),dot(V[:,:m],s[:,j])) + #refresh the sub-space block + t[:, j] = real(w/(theta[j]-h[j,j] + 1e-14)) + #append new block + V = append(V , t, axis=1) + #orthogonalise + V, a = qr(V) + + #check convergence + delta = norm(theta[:nLowestEigen] - preTheta) + if delta < tolerence: + break + + m += nInitialGuessVectors + cycle += 1 + if cycle == iterations: + break + + if (cycle < iterations): + return real(theta[:nLowestEigen]) + else: + return [] + +import numpy as np +class cis_d(object): + #class for CIS(D) + + def __init__(self, hf, roots=5, solver='eigh', method='cis(d)'): + + self.hf = hf + self.roots = roots + self.solver = solver + self.method = method + + self.fs, self.gs, self.eps = self.get_spin_quantities() + self.get_spin_metrics() + + self.cache = {} + if self.method == 'cis-mp2': + self.cache['cis-mp2'] = self.get_perturbative_doubles_mp2() + else: + self.cache['cisd'] = self.get_perturbative_doubles_cis() + + def get_spin_quantities(self): + #return the eri, Fock and orbital energies in spin MO basis + + from cc.fcc import spinMO + + spin = spinMO(self.hf.rhf.e, self.hf.rhf.ERI, self.hf.rhf.C, self.hf.rhf.fock) + + return spin.fs, spin.gs, np.kron(self.hf.rhf.e, np.ones(2)) + + def get_spin_metrics(self): + #get the dimensions of spin quantities + + from basis import electronCount + charge = self.hf.data['charge'] + nocc = electronCount(self.hf.atoms, charge) + nvir = 2*len(self.hf.basis) - nocc + + self.occupations = (nocc, nvir, nocc*nvir) + + #get the orbital slices + n = np.newaxis + o = slice(None, nocc) + v = slice(nocc, None) + + self.slice = (n, o, v) + + def check_scf_energy(self, e_scf): + #check that Harpy energy equals spin quantities version + + from atom import nuclearRepulsion + from math import isclose + + n, o, v = self.slice + hf_energy = np.einsum('ii', self.fs[o, o]) - 0.5 * np.einsum('ijij', self.gs[o, o, o, o]) + nuclearRepulsion(self.hf.atoms) + + return isclose(hf_energy, e_scf, rel_tol=1e-8) + + def get_mp2_energy(self): + #compute the MP2 energy correction + + n, o, v = self.slice + + #orbital energy denominator + dd = 1.0 / (self.eps[v, n, n, n] + self.eps[n, v, n, n] + - self.eps[n, n, o, n] - self.eps[n, n, n, o] ) + + #mp2 energy + e_mp2 = -0.25 * np.einsum('ijab,abij->', self.gs[o,o,v,v]**2, dd, optimize=True) + + self.cache['mp2'] = e_mp2 + + return e_mp2 + + def cis_solve_direct(self): + #solve the CIS eigenvalue problem with eigh + + nocc, nvir, nrot = self.occupations + n, o, v = self.slice + + a = np.einsum('ab,ij->iajb',np.diag(np.diag(self.fs)[v]),np.diag(np.ones(nocc)), optimize=True) + a -= np.einsum('ij,ab->iajb',np.diag(np.diag(self.fs)[o]),np.diag(np.ones(nvir)), optimize=True) + a += np.einsum('ajib->iajb', self.gs[v,o,o,v], optimize=True) + + #reshape for solving + a = a.reshape(nrot, nrot) + + #direct solve + try: + e_cis, u = np.linalg.eigh(a) + converged = True + except np.linalg.LinAlgError as e: + print('matrix solve error ', e) + converged = False + + self.cache['cis'] = e_cis + self.cache['u'] = u + + return e_cis, u, converged + + def cis_solve_davidson(self): + #davidson solve for cis + + def cis_diagonal(self): + #diagonal pre-conditioner for cis Davidson + + n, o, v = self.slice ; nocc, nvir, nrot = self.occupations + + ds = self.eps[o, n] - self.eps[n, v] + + #initialize to fock diagonal + diagonal = -ds.ravel() + + cis_diagonal = diagonal.reshape(nocc, nvir) + cis_diagonal -= np.einsum('aiai->ia', self.gs[v, o, v, o], optimize=True) + + return diagonal + + def cis_initial_guess(self, diagonal, f=1): + #guess vector for cis Davidson + + #get largest absolute values on diagonal matrix as best guess + args = np.argsort(np.absolute(diagonal)) + + #we only have nocc*nvir roots available + if self.roots > len(args): + print('reducing requested roots - exceeded ', len(args)) + self.roots = len(args) + + guess_vectors = np.zeros((diagonal.size, self.roots * f)) + for root in range(self.roots * f): + guess_vectors[args[root], root] = 1.0 + + return guess_vectors + + def cis_matvec(cis): + + #construct the cis matrix dot product with arbitary vector (r) + + n, o, v = self.slice ; nocc, nvir, nrot = self.occupations + + ds = self.eps[o, n] - self.eps[n, v] + + cis = np.array(cis) + r = np.zeros_like(cis) + + cis_s = cis.reshape(nocc, nvir) + r_s = r.reshape(nocc, nvir) + + #sconfiguration interaction singles + r_s -= np.einsum('ia,ia->ia', ds, cis_s, optimize=True) + r_s -= np.einsum('ajbi,jb->ia', self.gs[v, o, v, o], cis_s, optimize=True) + + return r + + guess_vector_factor, tol, vectors_per_root = 1, 1e-8, 20 + + #get diagonal preconditioner + diagonal = cis_diagonal(self) + + #generate initial guess from diagonal + guess_vectors = cis_initial_guess(self, diagonal, guess_vector_factor) + + + from adc.adc import davidson + e_cis, u, converged = davidson(cis_matvec, guess_vectors, diagonal, tol=tol, + vectors_per_root = vectors_per_root ) + + self.cache['cis'] = e_cis + self.cache['u'] = u + + return e_cis, u, converged + + def get_perturbative_doubles_cis(self): + #get the cis(d) corrected roots + + nocc, nvir, _ = self.occupations + n, o, v = self.slice + + #orbital energy denominator + dd = 1.0 / (self.eps[v, n, n, n] + self.eps[n, v, n, n] + - self.eps[n, n, o, n] - self.eps[n, n, n, o] ) + + #get CIS solution + if self.solver == 'eigh': + e_cis, u_cis, converged = self.cis_solve_direct() + if self.solver == 'davidson': + e_cis, u_cis, converged = self.cis_solve_davidson() + + #not converged exit + if not converged: exit('cis failed to converge') + + cisd_correction = [] + + print('***CIS(D)***\n root CIS CIS(D) \u0394 \n---------------------------------------------') + for root in range(self.roots): + + #get amplitude vector and clean + b = u_cis[:, root] + + b[abs(b)<1e-14] = 0 + + #re-shape amplitude vector + b = b.reshape(nocc, nvir).T + + #a tensor + a = -self.gs[v,v,o,o]*dd + + #u tensor + u = np.einsum('icab,cj->abij', self.gs[o,v,v,v], b, optimize=True) + u -= np.einsum('jcab,ci->abij', self.gs[o,v,v,v], b, optimize=True) + u += np.einsum('ijka,bk->abij', self.gs[o,o,o,v], b, optimize=True) + u -= np.einsum('ijkb,ak->abij', self.gs[o,o,o,v], b, optimize=True) + + #v tensor + V = 0.5 * np.einsum('jkbc,bi,cajk->ai', self.gs[o,o,v,v], b, a, optimize=True) + V += 0.5 * np.einsum('jkbc,aj,cbik->ai', self.gs[o,o,v,v], b, a, optimize=True) + V += np.einsum('jkbc,bj,acik->ai', self.gs[o,o,v,v], b, a, optimize=True) + + #double excitations - correlation term electrons not involved in excitation + e_cisd = np.einsum('ai,ai->', b, V, optimize=True) + + #shifted denominator + d_abij_omega = 1.0 / (self.eps[v, n, n, n] + self.eps[n, v, n, n] + - self.eps[n, n, o, n] - self.eps[n, n, n, o] - e_cis[root]) + + e_cisd_direct = -0.25 * np.einsum('abij,abij->', u*u, d_abij_omega, optimize=True) + + e_mp2 = self.get_mp2_energy() + print(' {:>2d} {:>10.6f} {:>10.6f} ({:>10.6f} )'. + format(root+1, e_cis[root], e_cisd_direct + e_cisd + e_mp2 + e_cis[root], + e_cisd_direct + e_cisd + e_mp2 )) + + cisd_correction.append(e_cisd_direct + e_cisd + e_mp2) + + return cisd_correction + + def get_perturbative_doubles_mp2(self): + #get the cis-mp2 corrected roots + + nocc, nvir, _ = self.occupations + n, o, v = self.slice + + #orbital energy denominator + dd = 1.0 / (self.eps[v, n, n, n] + self.eps[n, v, n, n] + - self.eps[n, n, o, n] - self.eps[n, n, n, o] ) + dt = 1.0 / (self.eps[v, n, n, n, n, n] + self.eps[n, v, n, n, n, n] + + self.eps[n, n, v, n, n, n] - self.eps[n, n, n, o, n, n] + - self.eps[n, n, n, n, o, n] - self.eps[n, n, n, n, n, o]) + + #get CIS solution + if self.solver == 'eigh': + e_cis, u_cis, converged = self.cis_solve_direct() + if self.solver == 'davidson': + e_cis, u_cis, converged = self.cis_solve_davidson() + + #not converged exit + if not converged: exit('cis failed to converge') + + cis_mp2_correction = [] + + print('***CIS-MP2***\n root CIS CIS-MP2 \u0394 \n---------------------------------------------') + for root in range(self.roots): + + #get amplitude vector and clean + b = u_cis[:, root] + + b[abs(b)<1e-14] = 0 + + #re-shape amplitude vector + b = b.reshape(nocc, nvir).T + + #shifted denominators + d_abij_omega = 1.0 / (self.eps[v, n, n, n] + self.eps[n, v, n, n] + - self.eps[n, n, o, n] - self.eps[n, n, n, o] - e_cis[root]) + + d_abcijk_omega = 1.0 / (self.eps[v, n, n, n, n, n] + self.eps[n, v, n, n, n, n] + + self.eps[n, n, v, n, n, n] - self.eps[n, n, n, o, n, n] + - self.eps[n, n, n, n, o, n] - self.eps[n, n, n, n, n, o] - e_cis[root]) + + #u tensor + u = np.einsum('icab,cj->abij', self.gs[o,v,v,v], b, optimize=True) + u -= np.einsum('jcab,ci->abij', self.gs[o,v,v,v], b, optimize=True) + u += np.einsum('ijka,bk->abij', self.gs[o,o,o,v], b, optimize=True) + u -= np.einsum('ijkb,ak->abij', self.gs[o,o,o,v], b, optimize=True) + e_cis_mp2 = -0.25 * np.einsum('abij,abij->', u*u, d_abij_omega, optimize=True) + + #u tensor + u = np.einsum('jkbc,ai->abcijk', self.gs[o,o,v,v], b, optimize=True) + u += np.einsum('jkca,bi->abcijk', self.gs[o,o,v,v], b, optimize=True) + u += np.einsum('jkab,ci->abcijk', self.gs[o,o,v,v], b, optimize=True) + u += np.einsum('kibc,aj->abcijk', self.gs[o,o,v,v], b, optimize=True) + u += np.einsum('kica,bj->abcijk', self.gs[o,o,v,v], b, optimize=True) + u += np.einsum('kiab,cj->abcijk', self.gs[o,o,v,v], b, optimize=True) + u += np.einsum('ijbc,ak->abcijk', self.gs[o,o,v,v], b, optimize=True) + u += np.einsum('ijca,bk->abcijk', self.gs[o,o,v,v], b, optimize=True) + u += np.einsum('ijab,ck->abcijk', self.gs[o,o,v,v], b, optimize=True) + e_cis_mp2 += -(1/36) * np.einsum('abcijk,abcijk->', u*u, d_abcijk_omega, optimize=True) + + print(' {:>2d} {:>10.6f} {:>10.6f} ({:>10.6f} )'. + format(root+1, e_cis[root], e_cis_mp2 + e_cis[root], + e_cis_mp2 )) + + cis_mp2_correction.append(e_cis_mp2) + + return cis_mp2_correction + diff --git a/source/cogus.py b/source/cogus.py new file mode 100644 index 0000000..aa40d4e --- /dev/null +++ b/source/cogus.py @@ -0,0 +1,471 @@ +from __future__ import division +import numpy as np + +internalLambdaCode =""" +#declarations +import numpy as np + +def spatialTospin(eriMO, nbf): + #openfermion style transformation + + import numpy as np + + spin = np.zeros((2*nbf, 2*nbf, 2*nbf, 2*nbf)) + + eriMO = eriMO.transpose(0,2,3,1) + for p in range(nbf): + for q in range(nbf): + for r in range(nbf): + for s in range(nbf): + #anti-spin + spin[2*p, 2*q+1, 2*r+1, 2*s], spin[2*p+1, 2*q, 2*r, 2*s+1] = [eriMO[p,q,r,s]] * 2 + #syn-spin + spin[2*p, 2*q, 2*r, 2*s], spin[2*p+1, 2*q+1, 2*r+1, 2*s+1] = [eriMO[p,q,r,s]] * 2 + + return spin + +def gMOspin(e, c, eri, nbf): + #construct MO spin eri + + import numpy as np + + def iEri(i,j,k,l): + #index into the four-index eri integrals + p = max(i*(i+1)/2 + j, j*(j+1)/2 + i) + q = max(k*(k+1)/2 + l, l*(l+1)/2 + k) + return int(max(p*(p+1)/2 + q, q*(q+1)/2 + p)) + + #get 4 index eri and spinblock to spin basis + g = np.zeros((nbf,nbf,nbf,nbf)) + for i in range(nbf): + for j in range(nbf): + for k in range(nbf): + for l in range(nbf): + g[i,j,k,l] = eri[iEri(i,j,k,l)] + + #eri to MO + g = np.einsum('pQRS,pP->PQRS', np.einsum('pqRS,qQ->pQRS', np.einsum('pqrS,rR->pqRS', np.einsum('pqrs,sS->pqrS', \ + g, c, optimize=True), c, optimize=True), c, optimize=True), c, optimize=True) + + return g, np.kron(e, np.ones(2)) + +iterations = 50 +tolerance = 1e-10 + +charge, nuclearRepulsion, electrons = scfData + +#orbital occupations +spinOrbitals = (fock.shape[0]) * 2 +nsocc = electrons +nsvir = spinOrbitals - nsocc + +#get one electron operators +h1 = np.dot(c.T, np.dot(hcore, c)) +hcSpin = np.kron(h1, np.eye(2)) +nbf = h1.shape[0] + +#get fock in MO spin basis +cSpin = np.kron(c, np.eye(2)) +fock = np.dot(cSpin.T, np.dot(np.kron(fock, np.eye(2)), cSpin)) + +#get two-electron repulsion integrals in MO basis +eriMO, eps = gMOspin(e, c, eri, spinOrbitals//2) +eriMOspin = spatialTospin(eriMO, spinOrbitals//2) +g = (np.einsum('ijkl', eriMOspin) - np.einsum('ijlk', eriMOspin)).transpose(0, 1, 3, 2) + +#slices +n = np.newaxis +o = slice(None,nsocc) +v = slice(nsocc, None) + +#D tensors +d_ai = 1.0 / (-eps[v, n] + eps[n, o]) +d_abij = 1.0 / (-eps[v, n, n, n] - eps[n, v, n, n] + eps[n, n, o, n] + eps[n, n, n, o]) +d_abcijk = 1.0 / (- eps[ v, n, n, n, n, n] - eps[n, v, n, n, n, n] - eps[n, n, v, n, n, n] + + eps[n, n, n, o, n, n] + eps[n, n, n, n, o, n] + eps[n, n, n, n, n, o] ) + +#HF energy +HFenergy = 1.0 * np.einsum('ii', fock[o, o]) -0.5 * np.einsum('ijij', g[o, o, o, o]) + +#amplitude initialisation +ts = np.zeros((nsvir, nsocc)) +td = np.zeros((nsvir,nsvir,nsocc,nsocc)) + +#get initial cluster energy +lastCycleEnergy = cc_energy(fock, g, o, v, t1=ts, t2=td, t3=None ) + +#dummies +triples = None + +#iterations +for cycle in range(iterations): + + #update amplitudes + singles = cc_singles(fock, g, o, v, t1=ts, t2=td, t3=None) * d_ai + ts + doubles = cc_doubles(fock, g, o, v, t1=ts, t2=td, t3=None) * d_abij + td + + #recalculate energy + cycleEnergy = cc_energy(fock, g, o, v, t1=singles, t2=doubles, t3=None) + deltaEnergy = np.abs(lastCycleEnergy - cycleEnergy) + + #convergence test + if deltaEnergy < tolerance: + + cycleEnergy = cc_energy(fock, g, o, v, t1=singles, t2=doubles, t3=None) - HFenergy + ts = singles + td = doubles + break + else: + ts = singles + td = doubles + lastCycleEnergy = cycleEnergy +else: + print("Did not converge") + exit('cc failed') + +#for lagrange amplitudes l are transposes of t +d_ia = d_ai.transpose(1,0) +d_ijab = d_abij.transpose(2,3,0,1) + +#initial values for lagrange amplitudes +ls = ts.transpose(1,0) +ld = td.transpose(2,3,0,1) + +lastCycleEnergy = cc_lambda_lagrangian_energy(fock, g, o, v, t1=ts, t2=td, l1=ls, l2=ld) + +#iterations +for cycle in range(iterations): + + singlesResidual = cc_lambda_singles(fock, g, o, v, ts, td, ls, ld) + doublesResidual = cc_lambda_doubles(fock, g, o, v, ts, td, ls, ld) + + lambdaResidual = np.linalg.norm(singlesResidual) + np.linalg.norm(doublesResidual) + + singles = singlesResidual * d_ia + ls + doubles = doublesResidual * d_ijab + ld + + lambdaCycleEnergy = cc_lambda_lagrangian_energy(fock, g, o, v, ts, td, singles, doubles) + pseudoEnergy = 0.25 * np.einsum('jiab,jiab', g[o, o, v, v], ld) + + energyDelta = np.abs(lastCycleEnergy - lambdaCycleEnergy) + + if energyDelta < 1e-10 and lambdaResidual < 1e-10: + ls = singles + ld = doubles + lambdaCycleEnergy = cc_lambda_lagrangian_energy(fock, g, o, v, ts, td, ls, ld) - HFenergy + break + else: + ls = singles + ld = doubles + lastCycleEnergy = lambdaCycleEnergy +else: + print("Did not converge") + exit('lambda failed') + +#response density matrices +opdm = cc_oprdm(o, v, ts, td, ls, ld) +tpdm = cc_tprdm(o, v, ts, td, ls, ld) + +rdmEnergy = np.einsum('ij,ij', hcSpin, opdm) + 0.25 * np.einsum('ijlk,ijlk',tpdm, g)- HFenergy +""" + +internalSpinClusterCode = """ +#declarations +import numpy as np + +g = eri +eps = e + +iterations = 50 +tolerance = 1e-10 + +charge, nuclearRepulsion, electrons = scfData + +#orbital occupations +spinOrbitals = (fock.shape[0]) +nsocc = electrons +nsvir = spinOrbitals - nsocc + +#slices +n = np.newaxis +o = slice(None,nsocc) +v = slice(nsocc, None) + +#D tensors +eps = np.kron(e, np.ones(2)) + +d_ai = 1.0 / (-eps[v, n] + eps[n, o]) +d_abij = 1.0 / (-eps[v, n, n, n] - eps[n, v, n, n] + eps[n, n, o, n] + eps[n, n, n, o]) +d_abcijk = 1.0 / (- eps[ v, n, n, n, n, n] - eps[n, v, n, n, n, n] - eps[n, n, v, n, n, n] + + eps[n, n, n, o, n, n] + eps[n, n, n, n, o, n] + eps[n, n, n, n, n, o] ) + +#HF energy +HFenergy = 1.0 * np.einsum('ii', fock[o, o]) -0.5 * np.einsum('ijij', g[o, o, o, o]) + +#amplitude initialisation +ts = np.zeros((nsvir, nsocc)) +td = np.zeros((nsvir,nsvir,nsocc,nsocc)) +tt = np.zeros((nsvir,nsvir,nsvir,nsocc,nsocc,nsocc)) + +#reciprocal D tensors +fock_d_ai = np.reciprocal(d_ai) +fock_d_abij = np.reciprocal(d_abij) +fock_d_abcijk = np.reciprocal(d_abcijk) + +#get initial cluster energy +lastCycleEnergy = cc_energy(fock, g, o, v, t1=ts, t2=td, t3=tt ) + +#dummies + +if not 'S' in level: singles = None +if not 'D' in level: doubles = None +if not (('T' in level) or ('t' in level)): triples = None + +#iterations +for cycle in range(iterations): + + #update amplitudes + if 'S' in level: singles = cc_singles(fock, g, o, v, t1=ts, t2=td, t3=tt) * d_ai + ts + if 'D' in level: doubles = cc_doubles(fock, g, o, v, t1=ts, t2=td, t3=tt) * d_abij + td + if (('T' in level) or ('t' in level)) : triples = cc_triples(fock, g, o, v, t1=ts, t2=td, t3=tt) * d_abcijk + tt + + #recalculate energy + cycleEnergy = cc_energy(fock, g, o, v, t1=singles, t2=doubles, t3=triples ) + deltaEnergy = np.abs(lastCycleEnergy - cycleEnergy) + + #convergence test + if deltaEnergy < tolerance: + + cycleEnergy = cc_energy(fock, g, o, v, t1=singles, t2=doubles, t3=triples ) - HFenergy + break + else: + ts = singles + td = doubles + tt = triples + lastCycleEnergy = cycleEnergy +else: + print("Did not converge") + exit('cc failed') + +perturbationEnergy = 0.0 +if 't' in level: + perturbativeTriples = cc_triples(fock, g, o, v, t1=singles, t2=doubles, t3=triples) + triples = perturbativeTriples + fock_d_abcijk * triples + triples = triples * d_abcijk + l1, l2 = [singles.transpose(1,0) ,doubles.transpose(2,3,0,1)] + + perturbationEnergy = cc_perturbation_energy(fock, g, o, v, l1, l2, triples) + +""" +internalClusterCode = """ +#declarations +import numpy as np + +def gMOspin(e, c, eri, nbf): + #construct MO spin eri + + import numpy as np + + def iEri(i,j,k,l): + #index into the four-index eri integrals + p = max(i*(i+1)/2 + j, j*(j+1)/2 + i) + q = max(k*(k+1)/2 + l, l*(l+1)/2 + k) + return int(max(p*(p+1)/2 + q, q*(q+1)/2 + p)) + + #get 4 index eri and spinblock to spin basis + g = np.zeros((nbf,nbf,nbf,nbf)) + for i in range(nbf): + for j in range(nbf): + for k in range(nbf): + for l in range(nbf): + g[i,j,k,l] = eri[iEri(i,j,k,l)] + + spinBlock = np.kron(np.eye(2), np.kron(np.eye(2), g).T) + g = spinBlock.transpose(0,2,1,3) - spinBlock.transpose(0,2,3,1) + + #prepare orbital energies + eps = np.concatenate((e,e), axis=0) + C = np.block([ + [c, np.zeros_like(c)], + [np.zeros_like(c), c]]) + C =C[:, eps.argsort()] + eps = np.sort(eps) + + #eri to MO + g = np.einsum('pQRS,pP->PQRS', np.einsum('pqRS,qQ->pQRS', np.einsum('pqrS,rR->pqRS', np.einsum('pqrs,sS->pqrS', \ + g, C, optimize=True), C, optimize=True), C, optimize=True), C, optimize=True) + + return g + + +iterations = 50 +tolerance = 1e-10 + +charge, nuclearRepulsion, electrons = scfData + +#orbital occupations +spinOrbitals = (fock.shape[0]) * 2 +nsocc = electrons +nsvir = spinOrbitals - nsocc + +#get fock in MO spin basis +cSpin = np.kron(c, np.eye(2)) +fock = np.dot(cSpin.T, np.dot(np.kron(fock, np.eye(2)), cSpin)) + +#get two-electron repulsion integrals in MO basis +g = gMOspin(e, c, eri, spinOrbitals//2) + +#slices +n = np.newaxis +o = slice(None,nsocc) +v = slice(nsocc, None) + +#D tensors +eps = np.kron(e, np.ones(2)) + +d_ai = 1.0 / (-eps[v, n] + eps[n, o]) +d_abij = 1.0 / (-eps[v, n, n, n] - eps[n, v, n, n] + eps[n, n, o, n] + eps[n, n, n, o]) +d_abcijk = 1.0 / (- eps[ v, n, n, n, n, n] - eps[n, v, n, n, n, n] - eps[n, n, v, n, n, n] + + eps[n, n, n, o, n, n] + eps[n, n, n, n, o, n] + eps[n, n, n, n, n, o] ) + +#HF energy +HFenergy = 1.0 * np.einsum('ii', fock[o, o]) -0.5 * np.einsum('ijij', g[o, o, o, o]) + +#amplitude initialisation +ts = np.zeros((nsvir, nsocc)) +td = np.zeros((nsvir,nsvir,nsocc,nsocc)) +tt = np.zeros((nsvir,nsvir,nsvir,nsocc,nsocc,nsocc)) + +#reciprocal D tensors +fock_d_ai = np.reciprocal(d_ai) +fock_d_abij = np.reciprocal(d_abij) +fock_d_abcijk = np.reciprocal(d_abcijk) + +#get initial cluster energy +lastCycleEnergy = cc_energy(fock, g, o, v, t1=ts, t2=td, t3=tt ) + +#dummies + +if not 'S' in level: singles = None +if not 'D' in level: doubles = None +if not (('T' in level) or ('t' in level)): triples = None + +#iterations +for cycle in range(iterations): + + #update amplitudes + if 'S' in level: singles = cc_singles(fock, g, o, v, t1=ts, t2=td, t3=tt) * d_ai + ts + if 'D' in level: doubles = cc_doubles(fock, g, o, v, t1=ts, t2=td, t3=tt) * d_abij + td + if (('T' in level) or ('t' in level)) : triples = cc_triples(fock, g, o, v, t1=ts, t2=td, t3=tt) * d_abcijk + tt + + #recalculate energy + cycleEnergy = cc_energy(fock, g, o, v, t1=singles, t2=doubles, t3=triples ) + deltaEnergy = np.abs(lastCycleEnergy - cycleEnergy) + + #convergence test + if deltaEnergy < tolerance: + + cycleEnergy = cc_energy(fock, g, o, v, t1=singles, t2=doubles, t3=triples ) - HFenergy + break + else: + ts = singles + td = doubles + tt = triples + lastCycleEnergy = cycleEnergy +else: + print("Did not converge") + exit('cc failed') + +perturbationEnergy = 0.0 +if 't' in level: + perturbativeTriples = cc_triples(fock, g, o, v, t1=singles, t2=doubles, t3=triples) + triples = perturbativeTriples + fock_d_abcijk * triples + triples = triples * d_abcijk + l1, l2 = [singles.transpose(1,0) ,doubles.transpose(2,3,0,1)] + + perturbationEnergy = cc_perturbation_energy(fock, g, o, v, l1, l2, triples) + +""" + +def symbolicGeneratedCoupledCluster(name, fock, eri, c, e, scfData): + #execute symbolically generated cluster codes + + if not name in ['ccd','ccsd','ccsdt','ccsd_t','lccd','lccsd','cc2','cc3'] : return 0.0 + + levelDictionary = {'ccd':['C','D'], 'ccsd':['C','SD'], 'ccsdt':['C','SDT'], 'ccsd_t':['C', 'SDt'], \ + 'cc2':['A','2'], 'cc3':['A','3'], \ + 'lccd':['L','D'], 'lccsd':['L','SD']} + + #get external code + type, level = levelDictionary[name] + file = '../codes/' + name + '.py' + f = open(file, 'r') + externalCode = f.read() + cycleEnergy = 0.0 + + if type == 'A': + if level == '2': level = 'SD' + if level == '3': level = 'SDT' + + #exec dictionary + data = {'level':level, 'fock':fock, 'c':c, 'eri':eri, 'e':e, 'scfData':scfData} + exec(externalCode + internalClusterCode,{},data) + + #prepare return values + coupledClusterCorrection = data['cycleEnergy'] + perturbationCorrection = data['perturbationEnergy'] + + return name, coupledClusterCorrection, perturbationCorrection + + +def symbolicGeneratedLambda(name, fock, eri, c, e, hcore, scfData): + #execute symbolically generated lambda equation codes + + if not name in ['ccsd'] : return 0.0 + + #get external code + files = ['../codes/ccsd.py', '../codes/ccsd_lambda.py', '../codes/cc_rdm.py'] + + externalCode = """global cc_energy, cc_singles, cc_doubles """ + + for f in files: + input = open(f, 'r') + externalCode += input.read() + + data = {'fock':fock, 'c':c, 'eri':eri, 'e':e, 'hcore': hcore, 'scfData':scfData} + exec(externalCode + internalLambdaCode,{},data) + + #prepare return values + lambdaLagrangeEnergy = data['lambdaCycleEnergy'] + pseudoEnergy = data['pseudoEnergy'] + rdmEnergy = data['rdmEnergy'] + + return name, lambdaLagrangeEnergy, pseudoEnergy, rdmEnergy + +def symbolicAmplitudes(name, fock, eri, c, e, scfData, spinned = False): + #execute symbolically generated cluster codes for amplitudes + + if not name in ['ccd','ccsd','ccsdt','ccsd_t'] : return 0.0 + + levelDictionary = {'ccd':['C','D'], 'ccsd':['C','SD'], 'ccsdt':['C','SDT'], 'ccsd_t':['C', 'SDt']} + + #get external code + type, level = levelDictionary[name] + file = '../codes/' + name + '.py' + f = open(file, 'r') + externalCode = f.read() + cycleEnergy = 0.0 + + #exec dictionary + data = {'level':level, 'fock':fock, 'c':c, 'eri':eri, 'e':e, 'scfData':scfData} + if not spinned: + exec(externalCode + internalClusterCode,{},data) + else: + exec(externalCode + internalSpinClusterCode,{},data) + + #prepare return values + singlesAmplitudes = data['ts'] + doublesAmplitudes = data['td'] + triplesAmplitudes = data['tt'] + + return name, singlesAmplitudes, doublesAmplitudes, triplesAmplitudes diff --git a/source/diis.py b/source/diis.py new file mode 100644 index 0000000..686a3ae --- /dev/null +++ b/source/diis.py @@ -0,0 +1,135 @@ +from __future__ import division +import numpy as np +from numpy.linalg import solve, LinAlgError + +class diis_f(object): + #direct inversion of iterative subspace class + + def __init__(self, size): + self.size = size + self.fock_vector = [] + self.error_vector = [] + self.norm = 0.0 + + def append(self, f, d, s, x): + #update the subspaces respecting capacity of buffer + + self.fock_vector.append(f) + if f.ndim == 2: + fds = np.einsum('im,mn,nj->ij',f, d, s, optimize=True) + self.error_vector.append(np.einsum('mi,mn,nj->ij', x, (fds - fds.T), x, optimize=True)) + elif f.ndim == 3: + fds = np.einsum('xim,xmn,nj->xij',f, d, s, optimize=True) + self.error_vector.append(np.vstack(np.einsum('mi,xmn,nj->xij', x, (fds - fds.transpose(0,2,1)), x, optimize=True))) + + self.norm = np.linalg.norm(self.error_vector[-1]) + + #check capacity + if len(self.fock_vector) > self.size: + del self.fock_vector[0] + del self.error_vector[0] + + + def build(self, f, d, s, x): + #compute extrapolated Fock + + #update buffers + self.append(f, d, s, x) + + #construct B matrix + nSubSpace = len(self.fock_vector) + + #start diis after cache full + if nSubSpace < self.size: return f + + b = -np.ones((nSubSpace+1,nSubSpace+1)) + b[:-1,:-1] = 0.0 ; b[-1,-1] = 0.0 + for i in range(nSubSpace): + for j in range(nSubSpace): + b[i,j] = b[j,i] = np.einsum('ij,ij->',self.error_vector[i], self.error_vector[j], optimize=True) + + + #solve for weights + residuals = np.zeros(nSubSpace+1) + residuals[-1] = -1 + + try: + weights = np.linalg.solve(b, residuals) + except np.linalg.LinAlgError as e: + if 'Singular matrix' in str(e): exit('diis failed with singular matrix') + + #weights should sum to +1 + sum = np.sum(weights[:-1]) + assert np.isclose(sum, 1.0) + + #construct extrapolated Fock + f = np.zeros_like(f , dtype='float') + for i in range(nSubSpace): + f += self.fock_vector[i] * weights[i] + + if f.ndim == 3: + f = f.reshape(d.shape) + + return f + +''' +Modified diis class to handle three amplitudes for triples +''' +class diis_c(object): + + def __init__(self, capacity, amplitudes): + + self.buffer = [amplitudes] + self.errors = [] + self.store = [] + self.size = 0 + self.capacity = capacity + + def refresh_store(self, amplitudes): + #store current amplitude proir to update + + self.store = amplitudes + + def build(self, amplitudes): + #build the new amplitudes + + self.buffer.append([i.copy() for i in amplitudes]) + n_amplitudes = len(amplitudes) + error = [(self.buffer[-1][i] - self.store[i]).ravel() for i in range(n_amplitudes)] + self.errors.append(np.concatenate(error)) + + if (len(self.buffer) > self.capacity): + del self.buffer[0] + del self.errors[0] + self.size = len(self.buffer) - 1 + + #construct b-matrix + b = -np.ones((self.size + 1, self.size + 1)) + b[-1, -1] = 0 + + n = self.size + b = np.zeros((n+1,n+1)) + for i in range(0, n): + for j in range(0, i+1): + b[j,i] = np.dot(self.errors[i], self.errors[j]) + b[i,j] = b[j,i] + for i in range(0, n): + b[n, i] = -1 + b[i, n] = -1 + + # Build residual vector + residual = np.zeros(self.size + 1) + residual[-1] = -1 + + # Solve Pulay equations for weights + try: + w = np.linalg.solve(b, residual) + except np.linalg.LinAlgError as e: + if 'Singular matrix' in str(e): exit('diis failed with singular matrix') + + # Calculate new amplitudes + amplitudes = [amplitudes[i]*0.0 for i in range(n_amplitudes)] + for num in range(self.size): + for i in range(n_amplitudes): amplitudes[i] += w[num] * self.buffer[num + 1][i] + + return amplitudes diff --git a/source/eom.py b/source/eom.py new file mode 100644 index 0000000..e06e2c9 --- /dev/null +++ b/source/eom.py @@ -0,0 +1,589 @@ +from __future__ import division +import numpy as np +import scipy as sp +import cc.scc +import rhf +from basis import electronCount +from integral import buildEriMO, buildEriDoubleBar, buildFockMOspin, iEri +from atom import getConstant +import time +import os + +def maximumAmplitudes(t, top = 5, mode = 0): + #return the biggest 'top' amplitudes, mode is '+'|'-'|'abs' + #for biggest +ve, -ve or absolute value + + #sort and get indexes + if mode == 0: + idx = np.unravel_index(np.argsort(np.abs(t), axis=None)[::-1][:top], t.shape) + else: + idx = np.unravel_index(np.argsort(t, axis=None)[::-mode][:top], t.shape) + + #convert tuple to list + ampInformation = [] + for i in range(t.ndim): + ampInformation.append(np.array(idx)[i,:top]) + ampInformation.append(t[idx][:top]) + + #make an information string 'value (index)'' + sInfo = [] + for i in range(top): + s = str(round(ampInformation[t.ndim][i],6)) + ' (' + for j in range(t.ndim): + s += str(ampInformation[j][i]) + ', ' + + sInfo.append(s[:-2] + ')') + + return sInfo + +def eomccsd(fockMOspin, eriMOspin, ts, td, nOccupied, nVirtual, spinOrbitals, partitioned = False, dialog = True): + #EOM-CCSD calculation - right eigenvectors + + #get singles-singles block + nRotate = nOccupied * nVirtual + + start=time.time() + + hss = np.zeros((nRotate, nRotate)) + ia = 0 + for i in range(0,nOccupied): + for a in range(nOccupied, spinOrbitals): + + kc = 0 + for k in range(nOccupied): + for c in range(nOccupied, spinOrbitals): + + hss[ia,kc] += fockMOspin[a,c]*(i==k) #[1] + hss[ia,kc] -= fockMOspin[k,i]*(a==c) #[6] + hss[ia,kc] += eriMOspin[a,k,i,c] #[11] + for e in range(nOccupied, spinOrbitals): + hss[ia,kc] += eriMOspin[a,k,e,c]*ts[e,i] #[12] + hss[ia,kc] -= (a==c)*fockMOspin[k,e]*ts[e,i] #[7] + for m in range(nOccupied): + hss[ia,kc] -= eriMOspin[m,k,i,c]*ts[a,m] #[13] + hss[ia,kc] -= (i==k)*fockMOspin[m,c]*ts[a,m] #[2] + for e in range(nOccupied, spinOrbitals): + hss[ia,kc] += eriMOspin[m,a,e,c]*ts[e,m]*(i==k) #[3] + hss[ia,kc] -= eriMOspin[k,m,i,e]*ts[e,m]*(a==c) #[8] + hss[ia,kc] -= eriMOspin[m,k,e,c]*td[e,a,i,m] #[14] + hss[ia,kc] += -eriMOspin[m,k,e,c]*ts[e,i]*ts[a,m] #[15] + for n in range(nOccupied): + hss[ia,kc] -= 0.5*(i==k)*eriMOspin[m,n,c,e]*td[e,a,n,m] #[4] + for f in range(nOccupied, spinOrbitals): + hss[ia,kc] -= 0.5*(a==c)*eriMOspin[k,m,e,f]*td[e,f,i,m] #[9] + hss[ia,kc] -= (a==c)*eriMOspin[k,m,e,f]*ts[e,i]*ts[f,m] #[10] + for n in range(nOccupied): + for f in range(nOccupied, spinOrbitals): + hss[ia,kc] -= (i==k)*eriMOspin[m,n,c,f]*ts[a,m]*ts[f,n] #[5] + + kc += 1 + ia += 1 + + if dialog: print('finished Hss block in : {:>8.3f} s'.format(time.time()-start)) + start = time.time() + + #get singles-doubles + hsd = np.zeros((nRotate, nRotate*nRotate)) + + ia = 0 + for i in range(nOccupied): + for a in range(nOccupied, spinOrbitals): + + kcld = 0 + for k in range(nOccupied): + for c in range(nOccupied, spinOrbitals): + for l in range(nOccupied): + for d in range(nOccupied, spinOrbitals): + + hsd[ia,kcld] += (i==k)*(a==c)*fockMOspin[l,d] #[16] + hsd[ia,kcld] += 0.5*eriMOspin[a,l,c,d]*(i==k) #[18] + hsd[ia,kcld] -= 0.5*eriMOspin[k,l,i,d]*(a==c) #[20] + for e in range(nOccupied, spinOrbitals): + hsd[ia,kcld] -= 0.5*eriMOspin[k,l,e,d]*ts[e,i]*(a==c) #[21] + for m in range(nOccupied): + hsd[ia,kcld] -= 0.5*eriMOspin[m,l,c,d]*ts[a,m]*(i==k) #[19] + for e in range(nOccupied, spinOrbitals): + hsd[ia,kcld] += eriMOspin[m,l,e,d]*ts[e,m]*(i==k)*(a==c) #[17] + + kcld += 1 + + ia += 1 + + if dialog: print('finished Hsd block in : {:>8.3f} s'.format(time.time()-start)) + start = time.time() + + #get doubles-singles + hds = np.zeros((nRotate*nRotate, nRotate)) + + iajb = 0 + for i in range(nOccupied): + for a in range(nOccupied, spinOrbitals): + for j in range(nOccupied): + for b in range(nOccupied, spinOrbitals): + + kc = 0 + for k in range(nOccupied): + for c in range(nOccupied, spinOrbitals): + + hds[iajb,kc] += (i==k)*eriMOspin[a,b,c,j] - (j==k)*eriMOspin[a,b,c,i] #[33] + hds[iajb,kc] += (b==c)*eriMOspin[k,a,i,j] - (a==c)*eriMOspin[k,b,i,j] #[22] + + for e in range(nOccupied, spinOrbitals): + + hds[iajb,kc] += (i==k)*eriMOspin[a,b,c,e]*ts[e,j] - (j==k)*eriMOspin[a,b,c,e]*ts[e,i] #[37] + + hds[iajb,kc] += (b==c)*eriMOspin[k,a,e,j]*ts[e,i] - (b==c)*eriMOspin[k,a,e,i]*ts[e,j] - \ + (a==c)*eriMOspin[k,b,e,j]*ts[e,i] + (a==c)*eriMOspin[k,b,e,i]*ts[e,j] #[30] + + hds[iajb,kc] += (b==c)*fockMOspin[k,e]*td[e,a,i,j] - (a==c)*fockMOspin[k,e]*td[e,b,i,j] #[32] + + hds[iajb,kc] += eriMOspin[k,a,c,e]*td[e,b,i,j] - eriMOspin[k,b,c,e]*td[e,a,i,j] #[43] + + for f in range(nOccupied, spinOrbitals): + + hds[iajb,kc] += 0.5*td[e,f,i,j]*( (b==c)*eriMOspin[k,a,e,f] - (a==c)*eriMOspin[k,b,e,f]) #[24] + hds[iajb,kc] += ts[e,i]*ts[f,j]*(-(a==c)*eriMOspin[k,b,e,f] + (b==c)*eriMOspin[k,a,e,f]) #[25] + + for m in range(nOccupied): + + hds[iajb,kc] += (a==c)*eriMOspin[k,m,i,j]*ts[b,m] - (b==c)*eriMOspin[k,m,i,j]*ts[a,m] #[26] + + hds[iajb,kc] += (j==k)*eriMOspin[m,b,c,i]*ts[a,m] - (j==k)*eriMOspin[m,a,c,i]*ts[b,m] - \ + (i==k)*eriMOspin[m,b,c,j]*ts[a,m] + (i==k)*eriMOspin[m,a,c,j]*ts[b,m] #[41] + + hds[iajb,kc] += (j==k)*fockMOspin[m,c]*td[a,b,m,i] - (i==k)*fockMOspin[m,c]*td[a,b,m,j] #[47] + + hds[iajb,kc] += eriMOspin[k,m,c,j]*td[a,b,m,i] - eriMOspin[k,m,c,i]*td[a,b,m,j] #[45] + + for n in range(nOccupied): + hds[iajb,kc] += 0.5*td[a,b,m,n]*((i==k)*eriMOspin[m,n,c,j] - (j==k)*eriMOspin[m,n,c,i]) #[35] + hds[iajb,kc] += ts[a,m]*ts[b,n]*((i==k)*eriMOspin[m,n,c,j] - (j==k)*eriMOspin[m,n,c,i]) #[36] + + for e in range(nOccupied, spinOrbitals): + + hds[iajb,kc] += (i==k)*eriMOspin[a,m,c,e]*td[e,b,m,j] - (i==k)*eriMOspin[b,m,c,e]*td[e,a,m,j] - \ + (j==k)*eriMOspin[a,m,c,e]*td[e,b,m,i] + (j==k)*eriMOspin[b,m,c,e]*td[e,a,m,i] #[34] + + hds[iajb,kc] += (b==c)*eriMOspin[k,m,i,e]*td[e,a,m,j] - (b==c)*eriMOspin[k,m,j,e]*td[e,a,m,i] - \ + (a==c)*eriMOspin[k,m,i,e]*td[e,b,m,j] + (a==c)*eriMOspin[k,m,j,e]*td[e,b,m,i] #[23] + + hds[iajb,kc] += (j==k)*ts[e,i]*(ts[a,m]*eriMOspin[m,b,c,e] - ts[b,m]*eriMOspin[m,a,c,e]) - \ + (i==k)*ts[e,j]*(ts[a,m]*eriMOspin[m,b,c,e] - ts[b,m]*eriMOspin[m,a,c,e]) #[38] + + hds[iajb,kc] += ts[e,i]*eriMOspin[k,m,e,j]*(ts[b,m]*(a==c) - ts[a,m]*(b==c)) - \ + ts[e,j]*eriMOspin[k,m,e,i]*(ts[b,m]*(a==c) - ts[a,m]*(b==c)) #[27] + + hds[iajb,kc] += eriMOspin[k,m,c,e]*(ts[e,j]*td[a,b,m,i] - ts[e,i]*td[a,b,m,j]) #[46] + + hds[iajb,kc] += eriMOspin[k,m,c,e]*(ts[b,m]*td[e,a,i,j] - ts[a,m]*td[e,b,i,j]) #[44] + + for n in range(nOccupied): + + hds[iajb,kc] += 0.5*td[a,b,m,n]*eriMOspin[m,n,c,e]*((i==k)*ts[e,j] - (j==k)*ts[e,i]) #[39] + + hds[iajb,kc] += eriMOspin[m,n,c,e]*ts[a,m]*((j==k)*td[e,b,n,i] - (i==k)*td[e,b,n,j]) - \ + eriMOspin[m,n,c,e]*ts[b,m]*((j==k)*td[e,a,n,i] - (i==k)*td[e,a,n,j]) #[42] + + hds[iajb,kc] += ts[e,m]*eriMOspin[m,n,e,c]*((j==k)*td[a,b,n,i] - (i==k)*td[a,b,n,j]) #[49] + + hds[iajb,kc] += ts[a,m]*ts[b,n]*eriMOspin[m,n,e,c]*((j==k)*ts[e,i] - (i==k)*ts[e,j]) #[40] + + for f in range(nOccupied, spinOrbitals): + + hds[iajb,kc] += 0.5*td[e,f,i,j]*eriMOspin[k,m,e,f]*((a==c)*ts[b,m] - (b==c)*ts[a,m]) #[28] + + hds[iajb,kc] += ts[e,i]*eriMOspin[k,m,e,f]*((b==c)*td[f,a,m,j] - (a==c)*td[f,b,m,j]) - \ + ts[e,j]*eriMOspin[k,m,e,f]*((b==c)*td[f,a,m,i] - (a==c)*td[f,b,m,i]) #[31] + + hds[iajb,kc] += ts[e,m]*eriMOspin[m,k,e,f]*((b==c)*td[f,a,i,j] - (a==c)*td[f,b,i,j]) #[48] + + hds[iajb,kc] += ts[e,i]*ts[f,j]*eriMOspin[m,k,e,f]*((b==c)*ts[a,m] - (a==c)*ts[b,m]) #[29] + + + kc += 1 + + iajb += 1 + + if dialog: print('finished Hds block in : {:>8.3f} s'.format(time.time()-start)) + start = time.time() + + #get doubles-doubles + hdd = np.zeros((nRotate*nRotate, nRotate*nRotate)) + + if not partitioned: + iajb = 0 + for i in range(nOccupied): + for a in range(nOccupied, spinOrbitals): + for j in range(nOccupied): + for b in range(nOccupied, spinOrbitals): + + kcld = 0 + for k in range(nOccupied): + for c in range(nOccupied, spinOrbitals): + for l in range(nOccupied): + for d in range(nOccupied, spinOrbitals): + + hdd[iajb,kcld] += (j==k)*(i==l)*(a==d)*fockMOspin[b,c] - \ + (j==k)*(i==l)*(b==d)*fockMOspin[a,c] #[50] + hdd[iajb,kcld] += (j==l)*(a==d)*(b==c)*fockMOspin[k,i] - \ + (i==l)*(a==d)*(b==c)*fockMOspin[k,j] #[55] + hdd[iajb,kcld] += 0.5*(i==k)*(j==l)*eriMOspin[a,b,c,d] #[60] + hdd[iajb,kcld] += 0.5*(a==c)*(b==d)*eriMOspin[k,l,i,j] #[64] + hdd[iajb,kcld] += (i==l)*(a==d)*eriMOspin[k,b,c,j] - \ + (j==l)*(a==d)*eriMOspin[k,b,c,i] - \ + (i==l)*(b==d)*eriMOspin[k,a,c,j] + \ + (j==l)*(b==d)*eriMOspin[k,a,c,i] #[68] + for e in range(nOccupied, spinOrbitals): + hdd[iajb,kcld] += (a==c)*(i==l)*(b==d)*fockMOspin[k,e]*ts[e,j] - \ + (a==c)*(j==l)*(b==d)*fockMOspin[k,e]*ts[e,i] #[56] + hdd[iajb,kcld] += (j==l)*(b==d)*eriMOspin[a,k,e,c]*ts[e,i] - \ + (i==l)*(b==d)*eriMOspin[a,k,e,c]*ts[e,j] - \ + (j==l)*(a==d)*eriMOspin[b,k,e,c]*ts[e,i] + \ + (i==l)*(a==d)*eriMOspin[b,k,e,c]*ts[e,j] #[69] + hdd[iajb,kcld] += 0.5*(b==d)*(a==c)*eriMOspin[k,l,e,j]*ts[e,i] - \ + 0.5*(b==d)*(a==c)*eriMOspin[k,l,e,i]*ts[e,j] #[65] + hdd[iajb,kcld] += 0.5*(b==d)*eriMOspin[k,l,c,e]*td[e,a,i,j] - \ + 0.5*(a==d)*eriMOspin[k,l,c,e]*td[e,b,i,j] #[73] + for f in range(nOccupied, spinOrbitals): + hdd[iajb,kcld] += 0.25*(a==c)*(b==d)*eriMOspin[k,l,e,f]*td[e,f,i,j] #[66] + hdd[iajb,kcld] += 0.5*(a==c)*(b==d)*eriMOspin[k,l,e,f]*ts[e,i]*ts[f,j] #[67] + for m in range(nOccupied): + hdd[iajb,kcld] += (i==k)*(j==l)*(a==d)*fockMOspin[m,c]*ts[b,m] - \ + (i==k)*(j==l)*(b==d)*fockMOspin[m,c]*ts[a,m] #[51] + hdd[iajb,kcld] += (i==l)*(b==d)*eriMOspin[m,k,j,c]*ts[a,m] - \ + (j==l)*(b==d)*eriMOspin[m,k,i,c]*ts[a,m] - \ + (i==l)*(a==d)*eriMOspin[m,k,j,c]*ts[b,m] + \ + (j==l)*(a==d)*eriMOspin[m,k,i,c]*ts[b,m] #[70] + hdd[iajb,kcld] += 0.5*(j==l)*(i==k)*eriMOspin[m,a,c,d]*ts[b,m] - \ + 0.5*(j==l)*(i==k)*eriMOspin[m,b,c,d]*ts[a,m] #[61] + hdd[iajb,kcld] += 0.5*(j==l)*eriMOspin[k,m,c,d]*td[a,b,m,i] - \ + 0.5*(i==l)*eriMOspin[k,m,c,d]*td[a,b,m,j] #[74] + for n in range(nOccupied): + hdd[iajb,kcld] += 0.25*(i==k)*(j==l)*eriMOspin[m,n,c,d]*td[a,b,m,n] #[62] + hdd[iajb,kcld] += 0.5*(i==k)*(j==l)*eriMOspin[m,n,c,d]*ts[a,m]*ts[b,n] #[63] + for e in range(nOccupied, spinOrbitals): + hdd[iajb,kcld] += (i==k)*(j==l)*(b==d)*eriMOspin[m,a,e,c]*ts[e,m] - \ + (i==k)*(j==l)*(a==d)*eriMOspin[m,b,e,c]*ts[e,m] #[52] + hdd[iajb,kcld] += (a==c)*(i==l)*(b==d)*eriMOspin[m,k,e,j]*ts[e,m] - \ + (a==c)*(j==l)*(b==d)*eriMOspin[m,k,e,i]*ts[e,m] #[57] + hdd[iajb,kcld] += (j==l)*(b==d)*eriMOspin[k,m,c,e]*td[e,a,m,i] - \ + (i==l)*(b==d)*eriMOspin[k,m,c,e]*td[e,a,m,j] - \ + (j==l)*(a==d)*eriMOspin[k,m,c,e]*td[e,b,m,i] + \ + (i==l)*(a==d)*eriMOspin[k,m,c,e]*td[e,b,m,j] #[71] + hdd[iajb,kcld] += (l==j)*(a==d)*eriMOspin[m,k,e,c]*ts[e,i]*ts[b,m] - \ + (l==j)*(b==d)*eriMOspin[m,k,e,c]*ts[e,i]*ts[a,m] - \ + (l==i)*(a==d)*eriMOspin[m,k,e,c]*ts[e,j]*ts[b,m] + \ + (l==i)*(b==d)*eriMOspin[m,k,e,c]*ts[e,j]*ts[a,m] #[72] + for n in range(nOccupied): + hdd[iajb,kcld] += 0.5*(i==k)*(j==l)*(a==d)*eriMOspin[m,n,e,c]*td[b,e,n,m] - \ + 0.5*(i==k)*(j==l)*(b==d)*eriMOspin[m,n,e,c]*td[a,e,n,m] #[53] + hdd[iajb,kcld] += (i==k)*(j==l)*(a==d)*eriMOspin[m,n,e,c]*ts[e,m]*ts[b,n] - \ + (i==k)*(j==l)*(b==d)*eriMOspin[m,n,e,c]*ts[e,m]*ts[a,n] #[54] + for f in range(nOccupied, spinOrbitals): + hdd[iajb,kcld] += 0.5*(a==c)*(i==l)*(b==d)*eriMOspin[m,k,e,f]*td[f,e,j,m] - \ + 0.5*(a==c)*(j==l)*(b==d)*eriMOspin[m,k,e,f]*td[f,e,i,m] #[58] + hdd[iajb,kcld] += (a==c)*(i==l)*(b==d)*eriMOspin[m,k,e,f]*ts[f,j]*ts[e,m] - \ + (a==c)*(j==l)*(b==d)*eriMOspin[m,k,e,f]*ts[f,i]*ts[e,m] #[59] + kcld += 1 + iajb += 1 + + else: + + iajb = 0 + for i in range(nOccupied): + for a in range(nOccupied, spinOrbitals): + for j in range(nOccupied): + for b in range(nOccupied, spinOrbitals): + + kcld = 0 + for k in range(nOccupied): + for c in range(nOccupied, spinOrbitals): + for l in range(nOccupied): + for d in range(nOccupied, spinOrbitals): + + hdd[iajb,kcld] += (j==k)*(i==l)*(a==d)*fockMOspin[b,c] - \ + (j==k)*(i==l)*(b==d)*fockMOspin[a,c] #[50] + hdd[iajb,kcld] += (j==l)*(a==d)*(b==c)*fockMOspin[k,i] - \ + (i==l)*(a==d)*(b==c)*fockMOspin[k,j] #[55] + kcld += 1 + iajb += 1 + + + if dialog: print('finished Hdd block in : {:>8.3f} s'.format(time.time()-start)) + + eomMatrix = np.bmat([[hss,hsd],[hds,hdd]]) + + if dialog: + print("begin full diagonalization") + print("matrix dimension: ", str(len(eomMatrix)) + "x" + str(len(eomMatrix)) ) + + eomEVal,eomEVec = sp.linalg.eig(eomMatrix) + + return eomEVal.real, eomEVec + + +def eommbpt2(fockMOspin, eriMOspin, nOccupied, nVirtual, spinOrbitals, partitioned = False, dialog = True): + #EOM-MBPT(2) calculation - right eingenvectors + + #get second-order td amplitudes + td = np.zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + for a in range(nOccupied, spinOrbitals): + for b in range(nOccupied, spinOrbitals): + for i in range(nOccupied): + for j in range(nOccupied): + td[a,b,i,j] += eriMOspin[a,b,i,j]/(fockMOspin[i,i]+fockMOspin[j,j]-fockMOspin[a,a]-fockMOspin[b,b]) + + #get singles-singles block + nRotate = nOccupied * nVirtual + + start=time.time() + + hss = np.zeros((nRotate, nRotate)) + ia = 0 + for i in range(0,nOccupied): + for a in range(nOccupied, spinOrbitals): + + kc = 0 + for k in range(nOccupied): + for c in range(nOccupied, spinOrbitals): + + hss[ia,kc] += fockMOspin[a,c]*(i==k) #[1] + hss[ia,kc] -= fockMOspin[k,i]*(a==c) #[6] + hss[ia,kc] += eriMOspin[a,k,i,c] #[11] + for m in range(nOccupied): + for e in range(nOccupied, spinOrbitals): + hss[ia,kc] -= eriMOspin[m,k,e,c]*td[e,a,i,m] #[14] + for n in range(nOccupied): + hss[ia,kc] -= 0.5*(i==k)*eriMOspin[m,n,c,e]*td[e,a,n,m] #[4] + for f in range(nOccupied, spinOrbitals): + hss[ia,kc] -= 0.5*(a==c)*eriMOspin[k,m,e,f]*td[e,f,i,m] #[9] + + kc += 1 + ia += 1 + + if dialog: print('finished Hss block in : {:>8.3f} s'.format(time.time()-start)) + start = time.time() + + #get singles-doubles + hsd = np.zeros((nRotate, nRotate*nRotate)) + + ia = 0 + for i in range(nOccupied): + for a in range(nOccupied, spinOrbitals): + + kcld = 0 + for k in range(nOccupied): + for c in range(nOccupied, spinOrbitals): + for l in range(nOccupied): + for d in range(nOccupied, spinOrbitals): + + hsd[ia,kcld] += 0.5*eriMOspin[a,l,c,d]*(i==k) #[18] + hsd[ia,kcld] -= 0.5*eriMOspin[k,l,i,d]*(a==c) #[20] + + kcld += 1 + + ia += 1 + + if dialog: print('finished Hsd block in : {:>8.3f} s'.format(time.time()-start)) + start = time.time() + + #get doubles-singles + hds = np.zeros((nRotate*nRotate, nRotate)) + + iajb = 0 + for i in range(nOccupied): + for a in range(nOccupied, spinOrbitals): + for j in range(nOccupied): + for b in range(nOccupied, spinOrbitals): + + kc = 0 + for k in range(nOccupied): + for c in range(nOccupied, spinOrbitals): + + hds[iajb,kc] += (i==k)*eriMOspin[a,b,c,j] - (j==k)*eriMOspin[a,b,c,i] #[33] + hds[iajb,kc] += (b==c)*eriMOspin[k,a,i,j] - (a==c)*eriMOspin[k,b,i,j] #[22] + + for e in range(nOccupied, spinOrbitals): + hds[iajb,kc] += eriMOspin[k,a,c,e]*td[e,b,i,j] - eriMOspin[k,b,c,e]*td[e,a,i,j] #[43] + + for f in range(nOccupied, spinOrbitals): + hds[iajb,kc] += 0.5*td[e,f,i,j]*( (b==c)*eriMOspin[k,a,e,f] - (a==c)*eriMOspin[e,f,k,b]) #[24] + + for m in range(nOccupied): + hds[iajb,kc] += eriMOspin[k,m,c,j]*td[a,b,m,i] - eriMOspin[k,m,c,i]*td[a,b,m,j] #[45] + + for n in range(nOccupied): + hds[iajb,kc] += 0.5*td[a,b,m,n]*((i==k)*eriMOspin[m,n,c,j] - (j==k)*eriMOspin[m,n,c,i]) #[35] + + for e in range(nOccupied, spinOrbitals): + hds[iajb,kc] += (i==k)*eriMOspin[a,m,c,e]*td[e,b,m,j] - (i==k)*eriMOspin[b,m,c,e]*td[e,a,m,j] - \ + (j==k)*eriMOspin[a,m,c,e]*td[e,b,m,i] + (j==k)*eriMOspin[b,m,c,e]*td[e,a,m,i] #[34] + + hds[iajb,kc] += (b==c)*eriMOspin[k,m,i,e]*td[e,a,m,j] - (b==c)*eriMOspin[k,m,j,e]*td[e,a,m,i] - \ + (a==c)*eriMOspin[k,m,i,e]*td[e,b,m,j] + (a==c)*eriMOspin[k,m,j,e]*td[e,b,m,i] #[23] + + kc += 1 + + iajb += 1 + + if dialog: print('finished Hds block in : {:>8.3f} s'.format(time.time()-start)) + start = time.time() + + #get doubles-doubles + hdd = np.zeros((nRotate*nRotate, nRotate*nRotate)) + + if not partitioned: + iajb = 0 + for i in range(nOccupied): + for a in range(nOccupied, spinOrbitals): + for j in range(nOccupied): + for b in range(nOccupied, spinOrbitals): + + kcld = 0 + for k in range(nOccupied): + for c in range(nOccupied, spinOrbitals): + for l in range(nOccupied): + for d in range(nOccupied, spinOrbitals): + + hdd[iajb,kcld] += (j==k)*(i==l)*(a==d)*fockMOspin[b,c] - \ + (j==k)*(i==l)*(b==d)*fockMOspin[a,c] #[50] + hdd[iajb,kcld] += (j==l)*(a==d)*(b==c)*fockMOspin[k,i] - \ + (i==l)*(a==d)*(b==c)*fockMOspin[k,j] #[55] + hdd[iajb,kcld] += 0.5*(i==k)*(j==l)*eriMOspin[a,b,c,d] #[60] + hdd[iajb,kcld] += 0.5*(a==c)*(b==d)*eriMOspin[k,l,i,j] #[64] + hdd[iajb,kcld] += (i==l)*(a==d)*eriMOspin[k,b,c,j] - \ + (j==l)*(a==d)*eriMOspin[k,b,c,i] - \ + (i==l)*(b==d)*eriMOspin[k,a,c,j] + \ + (j==l)*(b==d)*eriMOspin[k,a,c,i] #[68] + for e in range(nOccupied, spinOrbitals): + hdd[iajb,kcld] += 0.5*(b==d)*eriMOspin[k,l,c,e]*td[e,a,i,j] - \ + 0.5*(a==d)*eriMOspin[k,l,c,e]*td[e,b,i,j] #[73] + for f in range(nOccupied, spinOrbitals): + hdd[iajb,kcld] += 0.25*(a==c)*(b==d)*eriMOspin[k,l,e,f]*td[e,f,i,j] #[66] + for m in range(nOccupied): + hdd[iajb,kcld] += 0.5*(j==l)*eriMOspin[k,m,c,d]*td[a,b,m,i] - \ + 0.5*(i==l)*eriMOspin[k,m,c,d]*td[a,b,m,j] #[74] + for n in range(nOccupied): + hdd[iajb,kcld] += 0.25*(i==k)*(j==l)*eriMOspin[m,n,c,d]*td[a,b,m,n] #[62] + for e in range(nOccupied, spinOrbitals): + hdd[iajb,kcld] += (j==l)*(b==d)*eriMOspin[k,m,c,e]*td[e,a,m,i] - \ + (i==l)*(b==d)*eriMOspin[k,m,c,e]*td[e,a,m,j] - \ + (j==l)*(a==d)*eriMOspin[k,m,c,e]*td[e,b,m,i] + \ + (i==l)*(a==d)*eriMOspin[k,m,c,e]*td[e,b,m,j] #[71] + for n in range(nOccupied): + hdd[iajb,kcld] += 0.5*(i==k)*(j==l)*(a==d)*eriMOspin[m,n,e,c]*td[b,e,n,m] - \ + 0.5*(i==k)*(j==l)*(b==d)*eriMOspin[m,n,e,c]*td[a,e,n,m] #[53] + for f in range(nOccupied, spinOrbitals): + hdd[iajb,kcld] += 0.5*(a==c)*(i==l)*(b==d)*eriMOspin[m,k,e,f]*td[f,e,j,m] - \ + 0.5*(a==c)*(j==l)*(b==d)*eriMOspin[m,k,e,f]*td[f,e,i,m] #[58] + + kcld += 1 + iajb += 1 + + else: + + iajb = 0 + for i in range(nOccupied): + for a in range(nOccupied, spinOrbitals): + for j in range(nOccupied): + for b in range(nOccupied, spinOrbitals): + + kcld = 0 + for k in range(nOccupied): + for c in range(nOccupied, spinOrbitals): + for l in range(nOccupied): + for d in range(nOccupied, spinOrbitals): + + hdd[iajb,kcld] += (j==k)*(i==l)*(a==d)*fockMOspin[b,c] - \ + (j==k)*(i==l)*(b==d)*fockMOspin[a,c] #[50] + hdd[iajb,kcld] += (j==l)*(a==d)*(b==c)*fockMOspin[k,i] - \ + (i==l)*(a==d)*(b==c)*fockMOspin[k,j] #[55] + kcld += 1 + iajb += 1 + + if dialog: print('finished Hdd block in : {:>8.3f} s'.format(time.time()-start)) + + eomMatrix = np.bmat([[hss,hsd],[hds,hdd]]) + + if dialog: + print("begin full diagonalization") + print("matrix dimension: ", str(len(eomMatrix)) + "x" + str(len(eomMatrix)) ) + + eomEVal,eomEVec = sp.linalg.eig(eomMatrix) + + return eomEVal.real, eomEVec + + +if __name__ == '__main__': + + #generate a scf calculation + fileName = '../test/h2.hpf' + f = open(fileName, 'w') + hpf = 'name=h2\nmatrix=c\ndiis=off\nunits=angstrom\npost={}\nbasis=3-21g\n\nH1 1 0.00000000 0.00000000 0.00000000000\nH2 1 0.00000000 0.00000000 0.74\nend' + f.write(hpf) + f.close() + + molAtom, molBasis, molData = rhf.mol([], fileName) + eSCF = rhf.scf(molAtom, molBasis, molData, []) + + #clean up file + if os.path.exists(fileName): + os.remove(fileName) + + #occupations + charge = molData['charge'] + nOccupied = electronCount(molAtom, charge) + spinOrbitals = len(molBasis) * 2 + nVirtual = spinOrbitals - nOccupied + + #build eriMO spin tensor in physisist notation + eriMO = buildEriMO(rhf.C, rhf.ERI) + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + #build FockMO in spin formalism + fockMOspin = buildFockMOspin(spinOrbitals, rhf.C, rhf.fock) + + #get ccsd singles and doubles amplitudes + iterations = 30 + convergence = 1e-8 + diisStatus = 'on' + ccsdEnergy, ts, td = cc.scc.ccsd(molAtom, rhf.C, charge, rhf.fock, rhf.ERI, iterations, convergence, rhf.SCFenergy, diisStatus) + + #most significant amplitudes + maxts = maximumAmplitudes(ts, 5) + maxtd = maximumAmplitudes(td, 5) + + #do eom-ccsd computation + eomEVal, eomEVec = eomccsd(fockMOspin, eriMOspin, ts, td, nOccupied, nVirtual, spinOrbitals, partitioned=False) + + from ci import ciDegeneracy + eomEVal = np.sort(eomEVal * getConstant('hartree->eV')) + ccsdExcitations = ciDegeneracy(eomEVal) + + #Gaussian reference (from JJ Goings) + eomTest = [] + for excitation in eomEVal: + if excitation > 1.0 and excitation < 50.0: eomTest.append(excitation) + gaussianReference = [10.8527,10.8527,10.8527,15.8984,26.4712,26.4712,26.4712,30.5216,31.8814,40.4020,40.4020,40.4020] + assert np.allclose(eomTest[:12], gaussianReference), 'EOM-CCSD Gaussian check failed - H2' + + #do eom-mbpt(2) computation + eomEVal, eomEVec = eommbpt2(fockMOspin, eriMOspin, nOccupied, nVirtual, spinOrbitals, partitioned = False) + + eomEVal = np.sort(eomEVal * getConstant('hartree->eV')) + mbptExcitations = ciDegeneracy(eomEVal) + + #Gaussian reference (from JJ Goings) + eomTest = [] + for excitation in eomEVal: + if excitation > 1.0 and excitation < 50.0: eomTest.append(excitation) + gaussianReference = [10.6572, 10.6572, 10.6572, 15.7087, 26.2655, 26.2655, 26.2655, 30.2223, 31.6785, 40.2073, 40.2073, 40.2073] + assert np.allclose(eomTest[:12], gaussianReference) , 'EOM-MBPT2 Gaussian check failed - H2' + + #write results to HTML file + from view import pre, postSCF, post + pre('h2','rhf') + postSCF([[eSCF, ccsdEnergy], [maxts, maxtd], ccsdExcitations, mbptExcitations, [1.0, 50.0]], 'eom') + post() + diff --git a/source/ep.py b/source/ep.py new file mode 100644 index 0000000..20e5a87 --- /dev/null +++ b/source/ep.py @@ -0,0 +1,512 @@ +from __future__ import division +from numpy import zeros, power +from integral import eriTransform, buildEriMO, iEri, buildEriDoubleBar, expandEri +from view import postSCF +from atom import getConstant + +def electronPropagator2(molBasis, c, ERI, eps, nOccupied, startOrbital = 2, nOrbitals = 4): + #electron propagator (2) + + eV = getConstant('hartree->eV') + threshold = 1e-4 + iterations = 20 + + nBasis = len(molBasis) + + #get 2-electron integral tensor in AO basis + eri = buildEriMO(c, ERI) + eriMO = expandEri(eri, nBasis) + + #physists notation + eriMO = eriTransform(eriMO) + + #get occupied and virtual span + nVirtual = c.shape[0] - nOccupied + + if nOrbitals > nOccupied: + nOrbitals = nOccupied + + ep2 = [] + for orbital in range(startOrbital + 1, startOrbital + nOrbitals + 1): + + e = eps[orbital] + converged = False + + for cycle in range(0, iterations): + ePre = e + + # Compute sigmas - first term + sigmaA = 0.0 + dSigmaA = 0.0 + for r in range(nOccupied, nBasis): + for s in range(nOccupied, nBasis): + for a in range(0, nOccupied): + sigmaA += eriMO[r,s,orbital,a] \ + * (2*eriMO[orbital,a,r,s]-eriMO[a,orbital,r,s]) / (e+eps[a]-eps[r]-eps[s]) + dSigmaA += sigmaA/ (e+eps[a]-eps[r]-eps[s]) + + #second term + sigmaB = 0.0 + dSigmaB = 0.0 + for r in range(nOccupied, nBasis): + for a in range(0, nOccupied): + for b in range(0, nOccupied): + sigmaB += eriMO[a,b,orbital,r] \ + * (2*eriMO[orbital,r,a,b]-eriMO[r,orbital,a,b])/ (e+eps[r]-eps[a]-eps[b]) + dSigmaB += sigmaB/ (e+eps[r]-eps[a]-eps[b]) + + #new sigma total + eNow = eps[orbital] + sigmaA + sigmaB + + # Break if below threshold + if abs(eNow - ePre) < threshold: + converged= True + ep2.append(eNow * eV) + break + + dSigma = -1 * (dSigmaA + dSigmaB) + e = ePre - (ePre - eNow) / (1-dSigma) + + if not converged: + ep2.append(eNow * eV) + print('warn: ep2 for orbital HOMO - %d did not converged' % (nOccupied/2 - orbital/2 - 1)) + + postSCF([startOrbital, ep2, eps, eV, nOccupied], 'ep') + + return ep2 + +def electronPropagator2spin(molBasis, c, ERI, eigenValues, nOccupied, nOrbitals = 5): + #spin version of electron propagator 2 + + eV = getConstant('hartree->eV') + threshold = 1e-4 + iterations = 50 + + nBasis = len(molBasis) + spinOrbitals = nBasis * 2 + + #compute eri in molecular spin basis + eriMO = buildEriMO(c, ERI) + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + #recalculate occupation with respect to spin basis + nOccupied = nOccupied * 2 + nVirtual = spinOrbitals - nOccupied + + #spin eps tensor + eps = zeros(2*len(eigenValues)) + for p in range(0, spinOrbitals): + eps[p] = eigenValues[p//2] + + if nOrbitals > nOccupied: + nOrbitals = nOccupied + + ep2 = [] + for orbital in range(nOccupied-nOrbitals*2, nOccupied, 2): + e = eps[orbital] + converged = False + + for cycle in range(iterations): + ePre = e + + # Compute sigmas - first term + sigmaA = 0.0 + for r in range(nOccupied, spinOrbitals): + for s in range(nOccupied, spinOrbitals): + for a in range(0, nOccupied): + sigmaA += 0.5 * eriMOspin[r,s,orbital,a] * eriMOspin[orbital,a,r,s] / (e+eps[a]-eps[r]-eps[s]) + #second term + sigmaB = 0.0 + for r in range(nOccupied, spinOrbitals): + for a in range(0, nOccupied): + for b in range(0, nOccupied): + sigmaB += 0.5 * eriMOspin[a,b,orbital,r] * eriMOspin[orbital,r,a,b] / (e+eps[r]-eps[a]-eps[b]) + + #new sigma total + eNow = eps[orbital] + sigmaA + sigmaB + + # Break if below threshold + if abs(eNow - ePre) < threshold: + converged= True + ep2.append(eNow * eV) + break + + # Build derivatives + dSigmaA = 0.0 + for r in range(nOccupied, spinOrbitals): + for s in range(nOccupied, spinOrbitals): + for a in range(0, nOccupied): + dSigmaA += eriMOspin[r,s,orbital,a] * eriMOspin[orbital,a,r,s] / \ + (power((e+eps[a]-eps[r]-eps[s]), 2)) + dSigmaB = 0.0 + for r in range(nOccupied, spinOrbitals): + for a in range(0, nOccupied): + for b in range(0, nOccupied): + dSigmaB += eriMOspin[a,b,orbital,r] * eriMOspin[orbital,r,a,b] / \ + (power((e+eps[r]-eps[a]-eps[b]), 2)) + + dSigma = 1 + (dSigmaA + dSigmaB) + e = ePre - (ePre - eNow) / dSigma + + if not converged: + ep2.append(eNow * eV) + print('warn: ep2 for orbital HOMO - %d did not converged' % (nOccupied - orbital/2 - 1)) + + postSCF([ep2, eps, eV ], 'eps') + + return ep2 + + +def electronPropagator3spin(molBasis, c, ERI, eigenValues, nOccupied, nOrbitals = 5): + #electron propagator 3 + eV = getConstant('hartree->eV') + threshold = 1e-4 + iterations = 50 + + nBasis = len(molBasis) + spinOrbitals = nBasis * 2 + + #compute eri in molecular spin basis + eriMO = buildEriMO(c, ERI) + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + # Update nOccupied and nvirt + nOccupied = nOccupied * 2 + nVirtual = spinOrbitals - nOccupied + + #spin eps tensor + eps = zeros(2*len(eigenValues)) + for p in range(0, spinOrbitals): + eps[p] = eigenValues[p//2] + + if nOrbitals > nOccupied: + nOrbitals = nOccupied + + ep2 = [] + ep3 = [] + for orbital in range(nOccupied - nOrbitals * 2, nOccupied, 2): + e = eps[orbital] + converged = False + + #electron propagator (2) + for cycle in range(iterations): + ePre = e + + # Compute sigmas - first term + sigmaA = 0.0 + for r in range(nOccupied, spinOrbitals): + for s in range(nOccupied, spinOrbitals): + for a in range(0, nOccupied): + sigmaA += 0.5 * eriMOspin[r,s,orbital,a] \ + * eriMOspin[orbital,a,r,s] / (e+eps[a]-eps[r]-eps[s]) + #second term + sigmaB = 0.0 + for r in range(nOccupied, spinOrbitals): + for a in range(0, nOccupied): + for b in range(0, nOccupied): + sigmaB += 0.5 * eriMOspin[a,b,orbital,r] \ + * eriMOspin[orbital,r,a,b] / (e+eps[r]-eps[a]-eps[b]) + + #new sigma total + eNow = eps[orbital] + sigmaA + sigmaB + + # Break if below threshold + if abs(eNow - ePre) < threshold: + converged= True + ep2.append(eNow * eV) + break + + # Build derivatives + dSigmaA = 0.0 + for r in range(nOccupied, spinOrbitals): + for s in range(nOccupied, spinOrbitals): + for a in range(0, nOccupied): + dSigmaA += eriMOspin[r,s,orbital,a] * eriMOspin[orbital,a,r,s] / \ + (power((e+eps[a]-eps[r]-eps[s]), 2)) + dSigmaB = 0.0 + for r in range(nOccupied, spinOrbitals): + for a in range(0, nOccupied): + for b in range(0, nOccupied): + dSigmaB += eriMOspin[a,b,orbital,r] * eriMOspin[orbital,r,a,b] / \ + (power((e+eps[r]-eps[a]-eps[b]), 2)) + + dSigma = 1 + (dSigmaA + dSigmaB) + e = ePre - (ePre - eNow) / dSigma + + if not converged: + ep2.append(eNow * eV) + print('warn: ep2 for orbital HOMO - %d did not converged' % (nOccupied/2 - orbital/2 - 1)) + + #ep2 value for orbital + orbitalEp2 = e + + #electron propagator (3) + f = 0.0 + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + for r in range(nOccupied, spinOrbitals): + f += 0.5 * eriMOspin[orbital,p,orbital,a] * eriMOspin[q,r,p,b] * eriMOspin[a,b,q,r] / \ + ((eps[a]-eps[p])*(eps[a]+eps[b]-eps[q]-eps[r])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for c in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + f -= 0.5 * eriMOspin[orbital,p,orbital,b] * eriMOspin[b,q,a,c] * eriMOspin[a,c,p,q] / \ + ((eps[b]-eps[p])*(eps[a]+eps[c]-eps[p]-eps[q])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + for r in range(nOccupied, spinOrbitals): + f += 0.5 * eriMOspin[p,r,a,b] * eriMOspin[orbital,q,orbital,p] * eriMOspin[a,b,q,r] / \ + ((eps[a]+eps[b]-eps[p]-eps[r])*(eps[a]+eps[b]-eps[q]-eps[r])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for c in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + f -= 0.5 * eriMOspin[p,q,b,c] * eriMOspin[orbital,b,orbital,a] * eriMOspin[a,c,p,q] / \ + ((eps[b]+eps[c]-eps[p]-eps[q])*(eps[a]+eps[c]-eps[p]-eps[q])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + for r in range(nOccupied, spinOrbitals): + f += 0.5 * eriMOspin[p,r,a,b] * eriMOspin[q,b,p,r] * eriMOspin[orbital,a,orbital,q] / \ + ((eps[a]+eps[b]-eps[p]-eps[r])*(eps[a]-eps[q])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for c in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + f -= 0.5 * eriMOspin[p,q,b,c] * eriMOspin[b,c,a,q] * eriMOspin[orbital,a,orbital,p] / \ + ((eps[b]+eps[c]-eps[p]-eps[q])*(eps[a]-eps[p])) + + #koopman-ep2 average guess for ep3 calculation + e = (orbitalEp2 + eps[orbital]) / 2 + + converged = False + for cycle in range(iterations): + ePre = e + + eNow = eps[orbital] + f + de = 0 + + #ep3 - quadratic eri terms + for a in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + termA = 0.5 * eriMOspin[orbital,a,p,q] * eriMOspin[p,q,orbital,a] + termB = (e+eps[a]-eps[p]-eps[q]) + eNow += termA/termB + de += -1.0 * termA/(termB*termB) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + termA = 0.5 * eriMOspin[orbital,p,a,b] * eriMOspin[a,b,orbital,p] + termB = (e+eps[p]-eps[a]-eps[b]) + eNow += termA/termB + de += -1.0 * termA/(termB*termB) + + #ep3 - cubic eri terms(1) + for a in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + for r in range(nOccupied, spinOrbitals): + for s in range(nOccupied, spinOrbitals): + termA = 0.25 * eriMOspin[orbital,a,q,s] * eriMOspin[q,s,p,r] * eriMOspin[p,r,orbital,a] + termB = (e+eps[a]-eps[p]-eps[r]) * (e+eps[a]-eps[q]-eps[s]) + eNow += termA/termB + de += -termA/(termB * (e+eps[a]-eps[p]-eps[r])) -termA/(termB * (e+eps[a]-eps[q]-eps[s])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + for r in range(nOccupied, spinOrbitals): + termA = eriMOspin[orbital,a,q,r] * eriMOspin[q,b,p,a] * eriMOspin[p,r,orbital,b] + termB = (e+eps[b]-eps[p]-eps[r]) * (e+eps[a]-eps[q]-eps[r]) + eNow -= termA/termB + de += termA/(termB * (e+eps[b]-eps[p]-eps[r])) + termA/(termB * (e+eps[a]-eps[q]-eps[r])) + #(2) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + for r in range(nOccupied, spinOrbitals): + termA = eriMOspin[orbital,r,a,q] * eriMOspin[a,b,p,r] * eriMOspin[p,q,orbital,b] + termB = (e+eps[b]-eps[p]-eps[q]) * (eps[a]+eps[b]-eps[p]-eps[r]) + eNow -= termA/termB + de += termA/(termB * (e+eps[b]-eps[p]-eps[r])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for c in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + termA = 0.25 * eriMOspin[orbital,c,a,b] * eriMOspin[a,b,p,q] * eriMOspin[p,q,orbital,c] + termB = (e+eps[c]-eps[p]-eps[q]) * (eps[a]+eps[b]-eps[p]-eps[q]) + eNow += termA/termB + de -= termA/(termB * (e+eps[c]-eps[p]-eps[q])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + for r in range(nOccupied, spinOrbitals): + termA = eriMOspin[orbital,b,p,r] * eriMOspin[p,q,a,b] * eriMOspin[a,r,orbital,q] + termB = (e+eps[b]-eps[p]-eps[r]) * (eps[a]+eps[b]-eps[p]-eps[q]) + eNow -= termA/termB + de += termA/(termB * (e+eps[c]-eps[p]-eps[q])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for c in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + termA = 0.25 * eriMOspin[orbital,b,p,q] * eriMOspin[p,q,a,c] * eriMOspin[a,c,orbital,b] + termB = (e+eps[b]-eps[p]-eps[q]) * (eps[a]+eps[c]-eps[p]-eps[q]) + eNow += termA/termB + de -= termA/(termB * (e+eps[c]-eps[p]-eps[q])) + + #(3) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + for r in range(nOccupied, spinOrbitals): + termA = 0.25 * eriMOspin[orbital,q,a,b] * eriMOspin[a,b,p,r] * eriMOspin[p,r,orbital,q] + termB = (e+eps[q]-eps[a]-eps[b]) * (eps[p]+eps[r]-eps[a]-eps[b]) + eNow -= termA/termB + de += termA/(termB * (e+eps[q]-eps[a]-eps[b])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for c in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + termA = eriMOspin[orbital,q,a,c] * eriMOspin[a,b,p,q] * eriMOspin[p,c,orbital,b] + termB = (e+eps[q]-eps[a]-eps[c]) * (eps[p]+eps[q]-eps[a]-eps[b]) + eNow += termA/termB + de -= termA/(termB * (e+eps[q]-eps[a]-eps[c])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + for r in range(nOccupied, spinOrbitals): + termA = 0.25 * eriMOspin[orbital,r,p,q] * eriMOspin[p,q,a,b] * eriMOspin[a,b,orbital,r] + termB = (e+eps[r]-eps[a]-eps[b]) * (eps[p]+eps[q]-eps[a]-eps[b]) + eNow -= termA/termB + de += termA/(termB * (e+eps[r]-eps[a]-eps[b])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for c in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + termA = eriMOspin[orbital,c,p,b] * eriMOspin[p,q,a,c] * eriMOspin[a,b,orbital,q] + termB = (e+eps[q]-eps[a]-eps[b]) * (eps[p]+eps[q]-eps[a]-eps[c]) + eNow += termA/termB + de -= termA/(termB * (e+eps[q]-eps[a]-eps[b])) + #(4) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for c in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + for q in range(nOccupied, spinOrbitals): + termA = eriMOspin[orbital,p,b,c] * eriMOspin[b,q,a,p] * eriMOspin[a,c,orbital,q] + termB = (e+eps[p]-eps[b]-eps[c]) * (e+eps[q]-eps[a]-eps[c]) + eNow += termA/termB + de -= termA/(termB * (e+eps[p]-eps[b]-eps[c])) + de -= termA/(termB * (e+eps[q]-eps[a]-eps[c])) + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for c in range(0, nOccupied): + for d in range(0, nOccupied): + for p in range(nOccupied, spinOrbitals): + termA = 0.25 * eriMOspin[orbital,p,b,d] * eriMOspin[b,d,a,c] * eriMOspin[a,c,orbital,p] + termB = (e+eps[p]-eps[b]-eps[d]) * (e+eps[p]-eps[a]-eps[c]) + eNow -= termA/termB + de += termA/(termB * (e+eps[p]-eps[b]-eps[d])) + de += termA/(termB * (e+eps[p]-eps[a]-eps[c])) + + # Break if below threshold + if abs(eNow - ePre) < 1.e-4: + ep3.append(eNow * 27.21138505) + converged = True + break + + # Newton-Raphson update + e = ePre - (ePre - eNow) / (1 - de) + + if converged is False: + ep3.append(e) + print('warn: ep3 for orbital HOMO - %d did not converged' % (nOccupied/2 - orbital/2 - 1)) + + postSCF([ep3, eps, eV ], 'ep3') + + return ep3 + +def koopmanAGFcorrection(molBasis ,c ,ERI, eigenValues, nOccupied, nOrbitals = 5): + #Approximate Green's function approximation correction to koopman IP + + eV = getConstant('hartree->eV') + threshold = 1e-4 + iterations = 50 + + nBasis = len(molBasis) + spinOrbitals = nBasis * 2 + + #compute eri in molecular spin basis + eriMO = buildEriMO(c, ERI) + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + #recalculate occupation with respect to spin basis + nOccupied = nOccupied * 2 + nVirtual = spinOrbitals - nOccupied + + #spin eps tensor + eps = zeros(2*len(eigenValues)) + for p in range(0, spinOrbitals): + eps[p] = eigenValues[p//2] + + if nOrbitals > nOccupied: + nOrbitals = nOccupied + + agf = [] + #starts at nOrbitals below HOMO + cycleControl = -1 + for orbital in range(nOccupied-nOrbitals*2, nOccupied, 2): + + #orbital relaxation component + orx = 0.0 + for a in range(0, nOccupied): + for r in range(nOccupied, spinOrbitals): + orx += power(eriMOspin[a,orbital,orbital,r],2) / (eps[r]-eps[a]) + + #pair relaxation component + prx = 0.0 + for a in range(0, nOccupied): + for b in range(0, nOccupied): + for r in range(nOccupied, spinOrbitals): + if (a != orbital) and (b != orbital): + prx += 0.5 * power(eriMOspin[a,b,orbital,r],2) / (eps[orbital]+eps[r]-eps[a]-eps[b]) + + #pair removal component + prm = 0.0 + for a in range(0, nOccupied): + for r in range(nOccupied, spinOrbitals): + for s in range(nOccupied, spinOrbitals): + prm += 0.5 * power(eriMOspin[r,s,orbital,a],2) / (eps[a]+eps[orbital]-eps[r]-eps[s]) + + deltaIP = -orx - prx + prm + + #IP -ve of orbital energy + koopman = -eps[orbital] + + #send results to postSCF for output - cycleControl [-1] first,[0] :, [1] last + if (orbital + 2 == nOccupied): + cycleControl = 1 + + postSCF([cycleControl, orbital/2, koopman*eV, orx*eV ,prx*eV, prm*eV, deltaIP*eV, (koopman+deltaIP)*eV],'gfa') + agf.append([koopman*eV, deltaIP*eV]) + cycleControl = 0 + + return agf \ No newline at end of file diff --git a/source/fci.py b/source/fci.py new file mode 100644 index 0000000..81b3171 --- /dev/null +++ b/source/fci.py @@ -0,0 +1,627 @@ +from __future__ import division +from integral import buildEriDoubleBar, buildEriMO, buildFockMOspin +from atom import nuclearRepulsion +from basis import electronCount +import numpy as np +import rhf +from view import postSCF + +from scipy.special import comb +from itertools import combinations + + +def determinantCount(m, k): + #compute number of combinations of n things taken k at a time + + def fact(n): + #compute factorial + + f = 1 + if n < 0: + return -1 + elif n == 0: + return 1 + else: + for i in range(1,n + 1): + f *= i + return f + + return int(fact(m)/(fact(k)*fact(m-k))) + +def combinationList(combs, group, start, stop, level): + #compute the combinations for taking n things k at a time + + for i in range(start, stop+1): + + if level == 0: + s = (group + ',' + str(i))[1:] + combs.append(list(map(int, s.split(',')))) + + combinationList(combs, group + ',' + str(i), i+1, stop, level-1) + + return combs + +def binaryString(comb, nOrbitals): + #compute a binary string representation of combination as list + + sbinary = '' + for i in range(max(comb)+1): + if i in comb: sbinary = sbinary + '1' + else: sbinary = sbinary + '0' + + return sbinary + '0' * (nOrbitals - len(sbinary)) + +def buildFCIhamiltonian(determinants, eriMOspin, Hp, singles=False): + #compute the full FCI Hamiltonian + + nH = len(determinants) + fciH = np.zeros((nH, nH)) + + for i in range(len(determinants)): + for j in range(0, i+1): + + da = determinants[i] + db = determinants[j] + + element = hamiltonianElement(da, db, eriMOspin, Hp, singles) + fciH[i,j] = fciH[j,i] = element + + return fciH + +def excitations(da, db): + #compute the total excitations + + excite = 0 + for i in range(len(da)): + if (da[i] == '1') and (db[i] == '0') : excite += 1 + + return excite + +def phase(da, db): + #compute the phase between the determinants + + t = db + ld = len(da) + occupied = 0 + + for i in range(ld): + if da[i] == '1' and db[i] == '0': + + #hole has appeared + for j in range(ld): + if db[j] == '1' and da[j] == '0': + + #particle has appeared - get occupied between + #hole and particle + m = min(i,j) + n = max(j,i) + occupied += db.count('1', m+1, n) + + db = db[:j] + '0' + db[j+1:] + break + + db = t + + return pow(-1,occupied) + +def levels(da, db): + #compute the jumps + + ld = len(da) + jumps = [] + t = db + + for i in range(ld): + if da[i] == '1' and db[i] == '0': + + #hole has appeared + for j in range(ld): + if db[j] == '1' and da[j] == '0': + + #particle has appeared + jumps.append([i,j]) + + #set excited state to zero so don't count again + db = db[:j] + '0' + db[j+1:] + break + db = t + + return jumps + +def commonStates(da, db): + #compute common states between determinants + ld = min(len(da), len(db)) + + common = [] + for i in range(ld): + if da[i] == '1' and db[i] == '1': common.append(i) + + return common + +def hamiltonianElement(da, db, eriMOspin, coreH, singles): + #compute an individual Hamiltonian element + + #get number of excitions + excites = excitations(da, db) + + if excites > 2 : return 0.0 + + theta = phase(da, db) + jump = levels(da, db) + if excites == 2: + if singles: + #alpha must come before beta + if (jump[0][0] % 2) == 1 and (jump[1][0] % 2) != 1: jump[0][0], jump[1][0] = jump[1][0], jump[0][0] + if (jump[0][1] % 2) == 1 and (jump[1][1] % 2) != 1: jump[0][1], jump[1][1] = jump[1][1], jump[0][1] + + return theta * eriMOspin[jump[0][0], jump[1][0], jump[0][1], jump[1][1]] + + elif excites == 1: + common = commonStates(da, db) + f = coreH[jump[0][0],jump[0][1]] + for i in common: + f += eriMOspin[jump[0][0], i, jump[0][1], i] + + return theta * f + + elif excites == 0: + common = commonStates(da, db) + f = 0.0 + for i in common: + f += coreH[i, i] + for i in common: + for j in common: + f += 0.5 * eriMOspin[i, j, i, j] + + return theta * f + +def configurations(nElectrons, nOrbitals, type = 'S'): + + determinants = [] + pad = nOrbitals - nElectrons + + def subDeterminant(n, k, bit): + #components of full determinant + + sub = [] + comb = [] + combinationList(comb, '', 0, n-1, k) + + for i in comb: + s = bit[0] * n + for j in range(k+1): + s = s[:i[j]] + bit[1] + s[i[j]+1:] + sub.append(s) + + return sub + + #groundstate + if 'G' in type: + determinants.append('1' * nElectrons + '0' * pad) + + #generate groundstate single excitations + if ('S' in type) and (nElectrons > 0): + + pre = subDeterminant(nElectrons, 0, '10') + post = subDeterminant(pad, 0, '01') + + for i in pre: + for j in post: + determinants.append(i+j) + + #generate groundstate double excitations + if ('D' in type) and (nElectrons > 1): + + pre = subDeterminant(nElectrons, 1, '10') + post = subDeterminant(pad, 1, '01') + + for i in pre: + for j in post: + determinants.append(i+j) + + #generate groundstate triple excitations + if ('T' in type) and (nElectrons > 2): + + pre = subDeterminant(nElectrons, 2, '10') + post = subDeterminant(pad, 2, '01') + + for i in pre: + for j in post: + determinants.append(i+j) + + #generate groundstate quadruples excitations + if ('Q' in type) and (nElectrons > 3): + + pre = subDeterminant(nElectrons, 3, '10') + post = subDeterminant(pad, 3, '01') + + for i in pre: + for j in post: + determinants.append(i+j) + + #sort determinants into major alpha order + determinants.sort() + + return determinants + +def fci(molAtom, molBasis, charge, c, ERI, coreH): + #compute a full configuration interaction + + nElectrons = electronCount(molAtom, charge) + nBasis = len(molBasis) + nOrbitals = nBasis * 2 + + #get all combinations of orbitals taken electrons at a time + combinations = [] + combinations = combinationList(combinations, '', 0, nOrbitals-1, nElectrons-1) + + #convert combinations to determinant binary strings + binary = [] + for det in combinations: + binary.append(binaryString(det, nOrbitals)) + binary.sort() + + #spin molecular integrals + coreMOspin = buildFockMOspin(nOrbitals, c, coreH) + eriMO = buildEriMO(c, ERI) + eriMOspin = buildEriDoubleBar(nOrbitals, eriMO) + + Hp = buildFCIhamiltonian(binary, eriMOspin, coreMOspin) + + e, _ = np.linalg.eigh(Hp) + + postSCF([nElectrons, nOrbitals, determinantCount(nOrbitals, nElectrons), rhf.SCFenergy, e[0], nuclearRepulsion(molAtom)],'fci') + + return e + +def cisd(molAtom, molBasis, charge, c, ERI, coreH): + #compute configuration up to doubles + + nElectrons = electronCount(molAtom, charge) + nBasis = len(molBasis) + nOrbitals = nBasis * 2 + + coreMOspin = buildFockMOspin(nOrbitals, c, coreH) + eriMO = buildEriMO(c, ERI) + eriMOspin = buildEriDoubleBar(nOrbitals, eriMO) + + determinants = configurations(nElectrons, nOrbitals, 'GSD') + + Hp = buildFCIhamiltonian(determinants, eriMOspin, coreMOspin) + + e, _ = np.linalg.eigh(Hp) + + postSCF([nElectrons, nOrbitals, determinantCount(nOrbitals, nElectrons), rhf.SCFenergy, e[0], nuclearRepulsion(molAtom)],'cisd') + + return e + + +def ciss(molAtom, molBasis, charge, c, ERI, coreH): + #compute configuration single using slater determinants + + nElectrons = electronCount(molAtom, charge) + nBasis = len(molBasis) + nOrbitals = nBasis * 2 + + coreMOspin = buildFockMOspin(nOrbitals, c, coreH) + eriMO = buildEriMO(c, ERI) + eriMOspin = buildEriDoubleBar(nOrbitals, eriMO) + + determinants = configurations(nElectrons, nOrbitals, 'S') + + determinants = list(zip(*(iter(determinants),) * (nOrbitals - nElectrons))) + determinants = sum([list(i)[::-1] for i in determinants], []) + + Hp = buildFCIhamiltonian(determinants, eriMOspin, coreMOspin, singles=True) + Hp -= np.eye(Hp.shape[0]) * (rhf.SCFenergy - nuclearRepulsion(molAtom)) + + e , v = np.linalg.eigh(Hp) + + postSCF([nElectrons, nOrbitals, len(determinants), e],'cis') + + return e, v + +def spinStates(da, nBasis): + #get the alpha and beta spin states + + alpha = da[0::2] + beta = da[1::2] + + return alpha + '0'*(nBasis - len(alpha)) , beta + '0'*(nBasis - len(beta)) + +def occupancy(da, nBasis): + #get the unoccupied, singe and double occupancy (spatial) orbitals + + alpha , beta = spinStates(da, nBasis) + + occupancy = '' + for i in range(len(alpha)): + occupancy += str(int(alpha[i]) + int(beta[i])) + + return occupancy + +def bString(da, spinOrbitals): + #convert determinant to a bit string integer + + bits = '0b' + for i in range(spinOrbitals-1, -1, -1): + if i in da: bits += '1' + else: bits += '0' + + return int(bits,2) + +def bCombinationList(spinOrbitals, nElectrons): + #create list of all combinations of nElectrons in spinOrbital orbitals + + nVirtual = spinOrbitals - nElectrons + determinantList = [] + + for determinant in combinations(range(spinOrbitals), nElectrons): + + determinantList.append(bString(determinant, spinOrbitals)) + + return determinantList + + +def bRightZeros(n): + #compute the number of rightmost zero bits + + return (n & -n).bit_length() - 1 + + +def bSetZero(da, n): + #set the nth bit to zero 0-based + + return ~(1 << n) & da + +def bOccupancy(da, db, type = 'h'): + #compute the holes or particles between determinants + + k = 0 + hp = [] + if type == 'h': h = (da ^ db) & da + else: h = (da ^ db) & db + + while h != 0: + p = bRightZeros(h) + hp.append(p) + + h = bSetZero(h, p) + k += 1 + + return hp + +def bExcitations(da, db): + #the number of excitation between the two determinants + + return (bin(da ^ db).count('1')) >> 1 + +def bSingleExcitations(da, db): + #compute the single excitation da->db + + excite = np.zeros((2,2), dtype=object) + + if da == db: return excite, 0 + + #get hole and particle + aorb = da ^ db + hole = aorb & da + particle = aorb & db + + #get positions and excitation degree=1 + excite[0,0] = 1 + excite[1,0] = bRightZeros(hole) + excite[0,1] = 1 + excite[1,1] = bRightZeros(particle) + + #get phase + lo = min(excite[1,0], excite[1,1]) + hi = max(excite[1,0], excite[1,1]) + + nPerm = bin(da & (~(1 << lo+1)+1 & (1 << hi)-1)).count('1') + phases = [1, -1] + phase = phases[nPerm & 1] + + return excite, phase + +def bDoubleExcitations(da, db): + #compute the double excitation da->db + + excite = np.zeros((3,2), dtype=object) + + if da == db: return excite, 0 + + aorb = da ^ db + hole = aorb & da + particle = aorb & db + + #the holes + iHole = 0 + while hole != 0: + iHole += 1 + excite[iHole,0] = bRightZeros(hole) + excite[0,0] += 1 + + hole = hole & (hole - 1) + + #the particles + iParticle = 0 + while particle != 0: + iParticle += 1 + excite[iParticle,1] = bRightZeros(particle) + excite[0,1] += 1 + + particle = particle & (particle - 1) + + #phase + nPerm = 0 + for excitation in [1,2]: + lo = min(excite[excitation,0],excite[excitation,1]) + hi = max(excite[excitation,0],excite[excitation,1]) + + nPerm += bin(da & (~(1 << lo+1)+1 & (1 << hi)-1)).count('1') + + #orbital crossings + i = min(excite[1,0], excite[1,1]) + a = max(excite[1,0], excite[1,1]) + j = min(excite[2,0], excite[2,1]) + b = max(excite[2,0], excite[2,1]) + + if (j>i) and (ja) : + nPerm += 1 + + phases = [1,-1] + phase = phases[nPerm & 1] + + return excite, phase + +def bBuildFCIhamiltonian(determinants, eriMOspin, coreH): + #compute the full FCI Hamiltonian + + nH = len(determinants) + fciH = np.zeros((nH, nH)) + + for i in range(len(determinants)): + for j in range(0, i+1): + + da = determinants[i] + db = determinants[j] + + element = bHamiltonianElement(da, db, eriMOspin, coreH) + fciH[i,j] = fciH[j,i] = element + + return fciH + +def bFci(molAtom, molBasis, charge, c, ERI, coreH): + #bit version of fci + + nElectrons = electronCount(molAtom, charge) + nBasis = len(molBasis) + spinOrbitals = nBasis * 2 + + #get all combinations of orbitals taken electrons at a time + combinations = [] + combinations = bCombinationList(spinOrbitals, nElectrons) + + #spin molecular integrals + coreMOspin = buildFockMOspin(spinOrbitals, c, coreH) + eriMO = buildEriMO(c, ERI) + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + Hp = bBuildFCIhamiltonian(combinations, eriMOspin, coreMOspin) + + e, c = np.linalg.eigh(Hp) + + return e, c, comb(spinOrbitals, nElectrons, exact=True) + +def bCommonStates(da, db): + #get the common orbitals + + common = [] + ab = da & db + + for i in range(ab.bit_length()): + idx = ab & (1 << i) + if idx: common.append(bRightZeros(1< 2 : return 0.0 + + if excites == 2: + + jump, phase = bDoubleExcitations(da, db) + + return phase * eriMOspin[jump[1,0], jump[2,0], jump[1,1], jump[2,1]] + + elif excites == 1: + + common = bCommonStates(da, db) + jump, phase = bSingleExcitations(da, db) + + f = coreH[jump[1,0], jump[1,1]] + + for i in common: + f += eriMOspin[jump[1,0], i, jump[1,1], i] + + return phase * f + + elif excites == 0: + + common = bCommonStates(da, db) + f = 0.0 + for i in common: + f += coreH[i, i] + for i in common: + for j in common: + f += 0.5 * eriMOspin[i, j, i, j] + + return f + +def bResidues(da, spinOrbitals): + #get the residues of determinant da + + residues = [] + occupancy = bin(da).count('1') + + for i in range(spinOrbitals): + mask1 = 1 << i + for j in range(i): + mask2 = 1 << j + reducedOccupancy = da & ~(mask1 ^ mask2) + + if bin(reducedOccupancy).count('1') == (occupancy - 2): + residues.append(reducedOccupancy) + + return residues + +def bSetResidue(residues, spinOrbitals): + #populate residues with two particles + + determinants = [] + + for residue in residues: + + for i in range(spinOrbitals): + mask1 = 1 << i + if not bool(residue & mask1): + p = residue | mask1 + + for j in range(i): + mask2 = 1 << j + if not bool(p & mask2): + q = p | mask2 + + determinants.append(q) + + return list(set(determinants)) + +def bCisd(molAtom, molBasis, charge, c, ERI, coreH): + #compute configuration up to doubles + + nElectrons = electronCount(molAtom, charge) + nBasis = len(molBasis) + spinOrbitals = nBasis * 2 + + coreMOspin = buildFockMOspin(spinOrbitals, c, coreH) + eriMO = buildEriMO(c, ERI) + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + groundState = (2**nElectrons-1) + + residueList = bResidues(groundState, spinOrbitals) + + particles = bSetResidue(residueList, spinOrbitals) + + Hp = bBuildFCIhamiltonian(particles, eriMOspin, coreMOspin) + + e, c = np.linalg.eigh(Hp) + + return e, len(particles) + \ No newline at end of file diff --git a/source/force.py b/source/force.py new file mode 100644 index 0000000..f7d8f0f --- /dev/null +++ b/source/force.py @@ -0,0 +1,515 @@ +from __future__ import division +from math import pow, pi, sqrt +from numpy import zeros, ones, dot, array +from numpy.linalg import norm +from view import postSCF +import integral + +def e(ia, ja, type, r, ie, je, n, x): + #recursive definition of Hermite Gaussian for derivative at x + # i,j - Gaussian 'i' 'j' , a - angular momentum , e - exponent + #type number of Hermite node + + if n == 0: + return integral.e(ia, ja, type, r, ie, je) + else: + return e(ia+1, ja, type, r, ie, je, n-1, x) + x * e(ia, ja, type, r, ie, je, n-1, x) + +def efx(ia, ja, type, r, ie, je, n, x, p, s): + + if p == 1: + return 2.0 * ie * e(ia+1, ja, type, r, ie, je, n, x) - ia * e(ia-1, ja, type, r, ie, je, n, x) + elif s == 1: + return 2.0 * je * e(ia, ja+1, type, r, ie, je, n, x) - ja * e(ia, ja-1, type, r, ie, je, n, x) + +def overlapfx(ia, ja, ie, je, ir, jr, n, origin, x, center): + #ia, ja momentum vectors, ie, je exponent values, ir, jr center vectors + + pa = 0 + if center == 'a': + pa = 1 + pb = (pa+1) % 2 + + t = 0.0 + + if x == 0: + t = efx(ia[0], ja[0] , 0, ir[0] - jr[0], ie, je, n[0], ir[0] - origin[0],pa ,pb ) + t *= e(ia[1], ja[1] , 0, ir[1] - jr[1], ie, je, n[1], ir[1] - origin[1]) + t *= e(ia[2], ja[2] , 0, ir[2] - jr[2], ie, je, n[2], ir[2] - origin[2]) + elif x == 1: + t = e(ia[0], ja[0] , 0, ir[0] - jr[0], ie, je, n[0], ir[0] - origin[0]) + t *= efx(ia[1], ja[1] , 0, ir[1] - jr[1], ie, je, n[1], ir[1] - origin[1],pa ,pb ) + t *= e(ia[2], ja[2] , 0, ir[2] - jr[2], ie, je, n[2], ir[2] - origin[2]) + elif x == 2: + t = e(ia[0], ja[0] , 0, ir[0] - jr[0], ie, je, n[0], ir[0] - origin[0]) + t *= e(ia[1], ja[1] , 0, ir[1] - jr[1], ie, je, n[1], ir[1] - origin[1]) + t *= efx(ia[2], ja[2] , 0, ir[2] - jr[2], ie, je, n[2], ir[2] - origin[2],pa ,pb ) + + return t * pow(pi/(ie+je), 1.5) + +def sfx(iBasis, jBasis, center, x = 0, n = [0,0,0] , origin = [0,0,0]): + #derivatives of generalised overlap for basis centered on 'center' + #iBasis, jBasis are basis objects + sum = 0.0 + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + sum += iBasis.normal[i]*jBasis.normal[j]*iBasis.co[i]*jBasis.co[j]*overlapfx(iBasis.momentum, jBasis.momentum, \ + iBasis.ex[i], jBasis.ex[j], iBasis.center, jBasis.center, n , origin, x, center) + + return sum + +def buildOverlapfx(atom, direction, bases): + #overlap derivative for 'atom' in 'direction' + + n = len(bases) + Sx = zeros((n,n)) + + for i in range(0, len(bases)): + for j in range(0, (i+1)): + sum = 0.0 + if bases[i].atom == bases[j].atom: continue + + #use translational invariance - only need calculate one center + f = sfx(bases[i], bases[j], 'a', direction) + + if bases[i].atom == atom: sum += f + if bases[j].atom == atom: sum -= f + + Sx[i,j] = Sx[j,i] = sum + + return Sx + +def kineticfx(ia, ja, ie, je, ir, jr, n, origin, x, center): + #ia, ja momentum vectors, ie, je exponent values, ir, jr center vectors + + #cases for center 'a' and center 'b' + pa = 0 + if center == 'a': + pa = 1 + pb = (pa+1) % 2 + + mu = (2*ja + 1) * je + nu = -2*pow(je,2) * ones(3) + vu = -0.5 * ja* (ja-1) + + t = zeros(3) + for i in range(0, 3): + + if i == x: + t[x] = mu[x] * efx(ia[x], ja[x] , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + \ + nu[x] * efx(ia[x], ja[x] + 2 , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + \ + vu[x] * efx(ia[x], ja[x] - 2, 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + + else: + t[i] = mu[i] * e(ia[i], ja[i] , 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + \ + nu[i] * e(ia[i], ja[i] + 2, 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + \ + vu[i] * e(ia[i], ja[i] - 2, 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + + for i in range(0, 3): + + if i == x: + t[(x+1) % 3] *= efx(ia[x], ja[x] , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + t[(x+2) % 3] *= efx(ia[x], ja[x] , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + else: + t[(i+1) % 3] *= e(ia[i], ja[i], 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + t[(i+2) % 3] *= e(ia[i], ja[i], 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + + return (t[0] + t[1] + t[2]) * pow(pi/(ie+je), 1.5) + +def kfx(iBasis, jBasis, center, x = 0, n = [0,0,0] , origin = [0,0,0]): + #derivatives of generalised exchange integral for basis centered on 'center' + #iBasis, jBasis are basis objects + sum = 0.0 + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + sum += iBasis.normal[i]*jBasis.normal[j]*iBasis.co[i]*jBasis.co[j] * kineticfx(iBasis.momentum, jBasis.momentum, \ + iBasis.ex[i], jBasis.ex[j], iBasis.center, jBasis.center, n , origin, x, center) + + return sum + +def buildKineticfx(atom, direction, bases): + #overlap derivative for 'atom' in 'direction' + + n = len(bases) + Kx = zeros((n,n)) + + for i in range(0, len(bases)): + for j in range(0, (i+1)): + sum = 0.0 + if bases[i].atom == bases[j].atom: continue + + #use translational invariance - only need calculate one center + f = kfx(bases[i], bases[j], 'a', direction) + + if bases[i].atom == atom: sum += f + if bases[j].atom == atom: sum -= f + + Kx[i,j] = Kx[j,i] = sum + + return Kx + +def coulombfxs(ia, ja, ie, je, ir, jr, nucleus, n, origin, x, center): + #generalised coulomb derivatives dV(ab^(0,0,0))/dx terms + + #center of four Gaussians + p = ie + je + q = (ie*ir + je*jr)/p + r = q - nucleus + + #loop limits + tau = ia + ja + n + 1 + tau[x] += 1 + + pa = 0 + if center == 'a': + pa = 1 + pb = (pa+1) % 2 + + sum = 0.0 + val = 1.0 + + for mu in range(0, tau[0]): + for nu in range(0, tau[1]): + for vu in range(0, tau[2]): + val = 1.0 + xi = [mu,nu,vu] + for i in range(0, 3): + if i == x: + val *= efx(ia[x], ja[x], xi[x], ir[x]-jr[x], ie, je, n[x], ir[x]-nucleus[x], pa, pb) + else: + val *= e(ia[i], ja[i], xi[i], ir[i]-jr[i], ie, je, n[i], ir[i]-nucleus[i]) + + sum += val * integral.j(xi, 0, p, r, norm(r)) + + return sum * 2 * pi/p + +def jfx(iBasis, jBasis, nucleus, center = 'a', x = 0, n = [0,0,0] , origin = [0,0,0]): + #derivatives of generalised coulomb integral for basis centered on 'center' + #iBasis, jBasis are basis objects + sum = 0.0 + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + sum += iBasis.normal[i]*jBasis.normal[j]*iBasis.co[i]*jBasis.co[j] * coulombfxs(iBasis.momentum, jBasis.momentum, \ + iBasis.ex[i], jBasis.ex[j], iBasis.center, jBasis.center, nucleus, n , origin, x, center) + + return sum + +def buildCoulombfx(atom, direction, molAtom, bases): + #coulomb derivative for 'atom' in 'direction' + + n = len(bases) + Jx = zeros((n,n)) + + for i in range(0, len(bases)): + for j in range(0, (i+1)): + sum = 0.0 + for k in range(0, len(molAtom)): + if bases[i].atom == atom: + sum -= molAtom[k].number * jfx(bases[i], bases[j], molAtom[k].center, 'a', direction) + if bases[j].atom == atom: + sum -= molAtom[k].number * jfx(bases[i], bases[j], molAtom[k].center, 'b', direction) + + Jx[i,j] = Jx[j,i] = sum + + return Jx + +def coulombfxh(ia, ja, ie, je, ir, jr, nucleus, n, origin, x): + #generalised coulomb derivatives dV(ab^(0,0,0))/dx terms + + #center of two Gaussians + p = ie + je + q = (ie*ir + je*jr)/p + r = q - nucleus + + #loop limits + tau = ia + ja + n + 1 + + sum = 0.0 + val = 1.0 + + for mu in range(0, tau[0]): + for nu in range(0, tau[1]): + for vu in range(0, tau[2]): + val = 1.0 + xi = [mu,nu,vu] + for i in range(0, 3): + val *= e(ia[i], ja[i], xi[i], ir[i]-jr[i], ie, je, n[i], ir[i]-nucleus[i]) + + xi[x] += 1 + sum -= val * integral.j(xi, 0, p, r, norm(r)) + + + return sum * 2 * pi/p + +def jfh(iBasis, jBasis, nucleus, x = 0, n = [0,0,0] , origin = [0,0,0]): + #derivatives of generalised coulomb integral for basis centered on 'center' + #iBasis, jBasis are basis objects + sum = 0.0 + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + + sum += iBasis.normal[i]*jBasis.normal[j]*iBasis.co[i]*jBasis.co[j] * coulombfxh(iBasis.momentum, jBasis.momentum, \ + iBasis.ex[i], jBasis.ex[j], iBasis.center, jBasis.center, nucleus, n , origin, x) + + return sum + +def buildCoulombfh(atom, direction, molAtom, bases): + #coulomb derivative for 'atom' in 'direction' - Hellman-Feynmann term + + n = len(bases) + Fx = zeros((n,n)) + + for i in range(0, len(bases)): + for j in range(0, (i+1)): + Fx[j,i] = Fx[i,j] = -molAtom[atom].number * jfh(bases[i], bases[j], molAtom[atom].center, direction) + + + return Fx + +def buildNuclearfx(atom, direction, molAtom): + #nuclear repulsion derivative + + sum = 0.0 + for i in range(0, len(molAtom)): + r = norm(molAtom[atom].center - molAtom[i].center) + #vector component i-atom in 'direction' + vr = molAtom[atom].center[direction] - molAtom[i].center[direction] + if r != 0: + sum -= vr * molAtom[i].number * molAtom[atom].number / (r * r * r) + + return sum + +def electronRepulsionfx(ia, ja, ka, la, ie, je, ke, le, ir, jr, kr, lr, ra, rb, origin, x = 0, center = 'a'): + + p = ie + je + q = ke + le + rho = p*q/(p + q) + P = (ie*ir + je*jr)/p + Q = (ke*kr + le*lr)/q + r = P - Q + + tau = ia + ja + 1 + ra + sigma = ka + la + 1 + rb + if (center == 'a') or (center == 'b'): + tau[x] += 1 + else: + sigma[x] += 1 + + pa = 0 + if (center == 'a') or (center == 'c'): + pa = 1 + pb = (pa+1) % 2 + + val = 0.0 + for mu in range(tau[0]): + for nu in range(tau[1]): + for vu in range(tau[2]): + for psi in range(sigma[0]): + for phi in range(sigma[1]): + for chi in range(sigma[2]): + xia = [mu, nu, vu] + xib = [psi, phi, chi] + term = 1.0 + for i in range(0, 3): + if (i == x): + if (center == 'a' or center == 'b'): + term *= efx(ia[x],ja[x],xia[x],ir[x]-jr[x],ie,je,ra[x],ir[x] - origin[x], pa, pb) + term *= e(ka[x],la[x],xib[x],kr[x]-lr[x],ke,le,rb[x],kr[x] - origin[x]) + elif (center == 'c' or center == 'd'): + term *= e(ia[x],ja[x],xia[x],ir[x]-jr[x],ie,je,ra[x],ir[x] - origin[x]) + term *= efx(ka[x],la[x],xib[x],kr[x]-lr[x],ke,le,rb[x],kr[x] - origin[x], pa, pb) + + else: + term *= e(ia[i],ja[i],xia[i],ir[i]-jr[i],ie,je,ra[i],ir[i] - origin[i]) + term *= e(ka[i],la[i],xib[i],kr[i]-lr[i],ke,le,rb[i],kr[i] - origin[i]) + + term *= pow(-1, (psi+phi+chi)) * integral.j([mu+psi,nu+phi,vu+chi],0, rho,r,norm(r)) + val += term + + return val*2*pow(pi,2.5)/(p*q*sqrt(p+q)) + +def ERIfx(iBasis, jBasis, kBasis, lBasis, center, x = 0, n = [0,0,0], nu = [0,0,0], origin = [0,0,0]): + #2-electrons derivative + sum = 0.0 + + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + for k in range(0, len(kBasis.co)): + for l in range(0, len(lBasis.co)): + sum += iBasis.normal[i]*jBasis.normal[j]*kBasis.normal[k]*lBasis.normal[l] * \ + iBasis.co[i]*jBasis.co[j]*kBasis.co[k]*lBasis.co[l] * \ + electronRepulsionfx(iBasis.momentum, jBasis.momentum, kBasis.momentum, lBasis.momentum, \ + iBasis.ex[i], jBasis.ex[j], kBasis.ex[k], lBasis.ex[l], \ + iBasis.center, jBasis.center, kBasis.center, lBasis.center, \ + n, nu, origin, x, center) + + return sum + +def buildERIfx(atom, direction, molAtom, bases): + #derivatives of 2-electron repulsion integrals + + n = len(bases) + ERIx = zeros((n,n,n,n)) + + for i in range(0, len(bases)): + for j in range(0, (i+1)): + ij = i*(i+1)/2 + j + for k in range(0, len(bases)): + for l in range(0, (k+1)): + kl = k*(k+1)/2 + l + if ij >= kl: + sum = 0.0 + if bases[i].atom == atom: + sum += ERIfx(bases[i], bases[j], bases[k], bases[l], 'a', direction) + if bases[j].atom == atom: + sum += ERIfx(bases[i], bases[j], bases[k], bases[l], 'b', direction) + if bases[k].atom == atom: + sum += ERIfx(bases[i], bases[j], bases[k], bases[l], 'c', direction) + if bases[l].atom == atom: + sum += ERIfx(bases[i], bases[j], bases[k], bases[l], 'd', direction) + + ERIx[i,j,k,l] = ERIx[i,j,l,k] = ERIx[j,i,l,k] = ERIx[j,i,k,l] = \ + ERIx[k,l,i,j] = ERIx[k,l,j,i] = ERIx[l,k,j,i] = ERIx[l,k,i,j] = sum + + return ERIx + +def buildFockfx(atom, direction, molAtom, molBasis, density): + #compute the derivative of the fock matrix + + #core hamiltonian + hfx = buildKineticfx(atom , direction, molBasis) + \ + buildCoulombfx(atom, direction, molAtom, molBasis) + \ + buildCoulombfh(atom, direction, molAtom, molBasis) + + ERIx = buildERIfx(atom, direction, molAtom, molBasis) + + #get g-matrix jx+kx + n = len(molBasis) + jx = zeros((n,n)) + for p in range(0, n): + for q in range(0, n): + sum = 0.0 + for r in range(0, n): + for s in range(0, n): + sum += ERIx[p,q,r,s] * density[s, r] + + jx[p,q] = sum + + kx = zeros((n,n)) + for p in range(0, n): + for q in range(0, n): + sum = 0.0 + for r in range(0, n): + for s in range(0, n): + sum += ERIx[p,s,q,r] * density[s, r] + + kx[p,q] = sum + + fockfx = hfx + 2.0 * jx - kx + + return fockfx , hfx + +def gradient(molAtom, molBasis, molData): + import rhf + #compute gradient + gfx = zeros((len(molAtom), 3)) + + #equilibrium geometry - restore after each perturbation + referenceGeometry = zeros((len(molAtom), 3)) + for i in range(0, referenceGeometry.shape[0]): + referenceGeometry[i,:] = molAtom[i].center + + for atom in range(0, gfx.shape[0]): + for direction in range(0 , gfx.shape[1]): + gfx[atom,direction] = -1.0 * efxNumeric(atom, direction, molAtom, molBasis, molData) + rhf.rebuildCenters(molAtom, molBasis, referenceGeometry) + + return gfx + +def efxNumeric(atom, direction, molAtom, molBasis, molData): + #derivative of energy in 'direction' using central difference + #after changing centers must update molAtom and molBasis + import rhf + dq = 1e-4 + + #make copy of coordinates for perturbation + geo = zeros((len(molAtom), 3)) + for i in range(0, geo.shape[0]): + geo[i,:] = molAtom[i].center + + #perturb -> + + geo[atom, direction] += dq + molAtom, molBasis = rhf.rebuildCenters(molAtom, molBasis, geo) + ep = rhf.scf(molAtom, molBasis, molData, []) + + #perturb -> - + geo[atom, direction] -= 2 * dq + molAtom, molBasis = rhf.rebuildCenters(molAtom, molBasis, geo) + em = rhf.scf(molAtom, molBasis, molData, []) + + deltaE = (ep - em)/ (2 * dq) + + return deltaE + +def forces(molAtom, molBasis, density, fock, engine = 'aello', type = 'analytic'): + #get force aor all atoms in all direction + n = len(molBasis) + + if ('analytic,both'.find(type)) != -1 : + + molForces = zeros((len(molAtom), 3)) + if engine != 'aello': + for atom in range(0, len(molAtom)): + for direction in range(0, 3): + fx, hx = buildFockfx(atom, direction, molAtom, molBasis, density ) + + ex = fx + hx + force = 0.0 + for p in range(0, n): + for q in range(0, n): + force -= density[p,q] * ex[q,p] + + #density weighted energy and overlap derivative + eWeighted = dot(density, dot(fock, density)) + sx = buildOverlapfx(atom, direction, molBasis) + + for p in range(0, n): + for q in range(0, n): + force += 2.0 * sx[p,q] * eWeighted[q,p] + + #nuclear repulsion term + force -= buildNuclearfx(atom, direction, molAtom) + #F = -dE/dx + molForces[atom, direction] = force + else: + + from ocypete import ocypete + molForces = ocypete(molAtom, molBasis, density, fock) + + postSCF([molForces, molAtom], 'fa') + + if type == 'both' : + import rhf + #numeric derivatives + _, _, molData = rhf.mol([]) + postSCF([gradient(molAtom, molBasis, molData), molAtom], 'fn') + + return molForces + + +def optimiseGeometry(f, q, text): + #optimise geometry using Nelder-Mead + from scipy.optimize import minimize + import rhf + + molAtom, molBasis, molData = rhf.mol([]) + + optimumGeometry = minimize(f, q, method="Nelder-Mead", args = (molAtom, molBasis, molData)) + + for i in range(0, len(text)): + print(text[i],' : ', optimumGeometry.x[i]) + + print("Optimal energy : ", optimumGeometry.fun) + print("Cycles : ", optimumGeometry.nit) + print(optimumGeometry.success) + diff --git a/source/h.py b/source/h.py new file mode 100644 index 0000000..8bbcc9d --- /dev/null +++ b/source/h.py @@ -0,0 +1,812 @@ +from __future__ import division +import numpy as np +from atom import getConstant +from scipy.special import genlaguerre, sph_harm, assoc_laguerre +import math +import matplotlib.pyplot as py +import matplotlib.colors as pcolors +from matplotlib import cm + +#reduced bohr radius +a = 1.0 + +def transform(mode, i, j, k): + #coordinate system transforms + + if mode == 'cartesian->spherical': + x, y, z = i, j, k + r = np.sqrt(x**2 + y**2 + z**2) + with np.errstate(divide='ignore', invalid='ignore'): + theta = np.arccos(z/r) + phi = np.arctan2(y,x) + + return r, theta, phi + + elif mode == 'spherical->cartesian': + r, theta, phi = i, j, k + x, y, z = [r*np.sin(theta)*np.cos(phi), r*np.sin(theta)*np.sin(phi), r*np.cos(theta)] + + return x, y, z + +def angularSolution(m, l, theta, phi): + #angular hydrogenic solution + + return sph_harm(m, l, phi, theta) + +def angularSolutionPlot(ax, m, l, parameters): + #plot the spherical harmonic Y[ml] + + #construct a theta, phi grid + theta_extent = np.linspace(0, np.pi, parameters['points']) + phi_extent = np.linspace(0, 2*np.pi, parameters['points']) + (theta, phi) = np.meshgrid(theta_extent, phi_extent) + + point = np.array(transform('spherical->cartesian', 1.0, theta, phi)) + + Y = angularSolution(abs(m), l, theta, phi) + if m < 0: Y = np.sqrt(2) * (-1)**m * Y.imag + elif m > 0: Y = np.sqrt(2) * (-1)**m * Y.real + + x, y, z = np.abs(Y) * point + + color_map = py.cm.ScalarMappable(cmap = py.get_cmap(parameters['color_map'])) + color_map.set_clim(-0.5, 0.5) + + surface = ax.plot_surface(x, y, z, facecolors = color_map.to_rgba(Y.real), rstride = 2, cstride = 2, alpha = parameters['alpha']) + + py.title(r'$Y_{{{},{}}}$'.format(l, m)) + + extent = parameters['extent'] + ax.plot([0,0], extent, [0,0], c='0.5', lw=1, zorder=10) + ax.plot([0,0], [0,0], extent, c='0.5', lw=1, zorder=10) + ax.plot(extent, [0,0], [0,0], c='0.5', lw=1, zorder=10) + ax.set_xlim(extent) + ax.set_ylim(extent) + ax.set_zlim(extent) + ax.axis(parameters['axes']) + + if parameters['bar'] == 'on': py.colorbar(color_map, shrink=0.5, aspect=30, orientation='horizontal') + + return + +def angularSolutionPlotProjection(m, l, parameters= {'points':70,'extent':[-0.5,0.5], 'alpha':0.3, 'color_map':'coolwarm', \ + 'axes':'off','levels':20}): + + #construct a theta, phi grid + theta_extent = np.linspace(0, np.pi, parameters['points']) + phi_extent = np.linspace(0, 2*np.pi, parameters['points']) + (theta, phi) = np.meshgrid(theta_extent, phi_extent) + + point = np.array(transform('spherical->cartesian', 1.0, theta, phi)) + + Y = angularSolution(abs(m), l, theta, phi) + if m < 0: Y = np.sqrt(2) * (-1)**m * Y.imag + elif m > 0: Y = np.sqrt(2) * (-1)**m * Y.real + + x, y, z = np.abs(Y) * point + + fig = py.figure(figsize=(5,5)) + ax = fig.add_subplot(111, projection='3d') + + color_map = py.cm.ScalarMappable(cmap = py.get_cmap(parameters['color_map'])) + color_map.set_clim(-0.5, 0.5) + ax.plot_surface(x, y, z, facecolors = color_map.to_rgba(Y.real), alpha=parameters['alpha']) + + cset = ax.contour(x, y, z, parameters['levels'], zdir='z', offset=-1, cmap='summer', alpha=parameters['alpha']*0.5) + cset = ax.contour(x, y, z, parameters['levels'], zdir='y', offset= 1, cmap='winter', alpha=parameters['alpha']*0.5) + cset = ax.contour(x, y, z, parameters['levels'], zdir='x', offset=-1, cmap='autumn', alpha=parameters['alpha']*0.5) + + ax.set_xlim(-1, 1) + ax.set_ylim(-1, 1) + ax.set_zlim(-1, 1) + ax.axis(parameters['axes']) + + py.title(r'$Y_{{{},{}}}$'.format(l, m)) + + py.show() + +def angularSolutionPlotSingle(m, l, parameters = {'points':70,'extent':[-0.5,0.5],'color_map':'coolwarm', \ + 'bar':'on','axes':'off','alpha':0.8}): + + fig = py.figure(figsize = py.figaspect(1.0)) + ax = fig.add_subplot(projection='3d') + + angularSolutionPlot(ax, m, l, parameters) + + py.show() + + return + +def angularSolutionPlotFamily(l_maximum, parameters = {'points':70,'extent':[-0.5,0.5],'color_map':'coolwarm', \ + 'bar':'off','axes':'off','alpha':1.0}): + #plot a family of spherical harmonics + import matplotlib.gridspec as gridspec + + figsize_size, DPI = 500, 100 + figsize_inches = figsize_size/DPI + + fig = py.figure(figsize=(figsize_inches, figsize_inches), dpi=DPI) + spec = gridspec.GridSpec(ncols = 2*l_maximum+1, nrows = l_maximum+1, figure = fig) + + for l in range(l_maximum + 1): + for m in range(-l, l+1): + ax = fig.add_subplot(spec[l, m + l_maximum], projection='3d') + angularSolutionPlot(ax, m, l, parameters) + + py.tight_layout() + py.show() + + return + +def angularVerify(): + #compare analytic solution with sympy + + from random import randint + l = randint(0, 4) + m, theta, phi = [randint(-l, l), randint(0, 5000) * np.pi * 1e-4, randint(0, 20000) * np.pi * 1e-4] + + analytic = sph_harm(m, l, phi, theta) + + from sympy import Ynm, evalf + values = {'l':l, 'm':m, 'theta':theta, 'phi':phi} + symbolic = Ynm(l, m, theta, phi).evalf(subs=values) + + return ((analytic-complex(symbolic)) < (1e-15 + 1e-15j)) + +def radialSolution(n, l, r): + #radial hydrogenic wavefunction + + rho = (2*r/(n*a)) + L = genlaguerre(n-l-1, 2*l+1)(rho) + normalization = np.sqrt(((2/(n*a))**3.0)*math.factorial(n-l-1)/(2*n*math.factorial(n+l))) + psi = (rho**l) * np.exp(-rho/2) * L * normalization + + return psi + +def radialVerify(): + #compare analytic solution with sympy + + from random import randint + n = randint(1, 5) + l, r = [randint(0, n-1), randint(0, 20000) * 1e-3] + + from sympy.physics.hydrogen import R_nl + analytic = radialSolution(n, l, r) + symbolic = R_nl(n, l, r, 1) + + return ((analytic - symbolic) < 1e-15) + +def radialSolutionType(n, l, r, psi_type = 'radial distribution'): + #return either radial distribution, radial probability density or radial probability distribution + + psi = radialSolution(n, l, r) + + if psi_type == 'radial distribution' : return psi + elif psi_type == 'probability density' : return psi * psi + elif psi_type == 'probability distribution': return (4.0*np.pi*r*r) * (psi*psi) + else: + exit(psi_type, ' not implemented') + +def radialSolutionPlot(n, l, psi_type = 'radial distribution', psi_normal = False,\ + parameters = {'points':100, 'size':[7,5], 'extent':[20,0.2], 'equal':False}): + #plot either for given n range of l, of for given l range of n + + subshell = ['s', 'p', 'd', 'f', 'g'] + + yLabel = {'radial distribution':'$\psi(r)$', 'probability density':'$\psi(r)^2$',\ + 'probability distribution':'$4\pi{r}^2\psi(r)$'} + + points = parameters['points'] + + f = py.figure() + f.set_figheight(parameters['size'][1]) + f.set_figwidth(parameters['size'][0]) + ax = py.subplot() + ax.grid() + py.title(psi_type + ' for hydrogenic $\Psi$') + + r = np.linspace(0, parameters['extent'][0], points) + + #plot all the shells and subshell in lists + for i in range(len(n)): + + if l[i] >= n[i]: continue + psi = radialSolutionType(n[i], l[i], r, psi_type) + if psi_normal: psi /= np.max(psi) + py.plot(r, psi, label= str(n[i]) + subshell[l[i]]) + + + py.ylim(parameters['extent'][1]) + if parameters['equal']: ax.set_box_aspect(1) + py.xlabel('r($[a]$)') + ax.legend(loc='upper right') + py.ylabel(yLabel[psi_type]) + + py.show() + + return + +def wavefunction(n, l, m, r, theta, phi, grid): + #evaluate the radial and angular components from full psi + + if grid == 'cartesian': + #if cartesian transform to r, theta, phi + r, theta, phi = transform('cartesian->spherical', r, theta, phi) + + #get radial solution + radial = radialSolution(n, l, r) + + #get angular solution + angular = angularSolution(abs(m), l, theta, phi) + + return radial * angular + +def wavefunctionContour(n, l, m, parameters={'points':100, 'extent':[-20, 20], 'color_map':'coolwarm', \ + 'plane':'xy', 'elevation':0.0, 'contour': False}): + #plot contour map of wavefunction + + extent = parameters['extent'] + points = parameters['points'] + + step = (extent[1] - extent[0])/points + grid = np.linspace(extent[0], extent[1], points) + + x, y, z = np.meshgrid(grid, grid, grid) + r, theta, phi = transform('cartesian->spherical', x, y, z) + Y = angularSolution(abs(m), l, theta, phi) + if m < 0: Y = np.sqrt(2) * (-1)**m * Y.imag + elif m > 0: Y = np.sqrt(2) * (-1)**m * Y.real + + data = np.nan_to_num(Y * radialSolution(n, l, r)) + data = abs(data)**2 + + fig, ax = py.subplots() + + slice = max(min(parameters['elevation'], extent[1]) , extent[0]) + slice = (-extent[0] + parameters['elevation']) + + switch = {'xy':(2,0,1),'yz':(1,2,0),'zx':(0,1,2)} + data = data.transpose(switch[parameters['plane']]) + + im = py.imshow(data[int((-extent[0]+parameters['elevation'])/step),:,:], vmin= 0.0, vmax = np.max(data), \ + extent = (extent + extent), cmap = parameters['color_map']) + + py.colorbar(shrink=0.5, aspect=30, orientation = 'horizontal') + ax.set_title('hydrogen orbital ' + parameters['plane'] + '-slice at displacement ' + str(parameters['elevation']) + \ + '\nn=' + str(n) + ', l=' + str(l) + ', m=' + str(m), fontsize=10) + py.xlabel(parameters['plane'][0]) + py.ylabel(parameters['plane'][1]) + + if parameters['contour']: + levels = [0.0000001, 0.000001, 0.00001, 0.0001, 0.001, 0.1] + cs = ax.contour(data[int((-extent[0]+parameters['elevation'])/step),:,:] , levels, origin='lower', cmap='gray', extend='both', + linewidths=0.2, extent=(extent + extent)) + + py.show() + + return + +def wavefunctionVerify(): + #compare analytic solution with sympy + + from random import randint + n = randint(1, 5) + l, r, theta, phi = [randint(0, n-1), randint(0, 20000) * 1e-3, randint(0, 5000) * np.pi * 1e-4, randint(0, 20000) * np.pi * 1e-4] + m = randint(-l, l) + + from sympy.physics.hydrogen import Psi_nlm + analytic = wavefunction(n, l, m, r, theta, phi, 'spherical polar') + values = {'n':n,'l':l, 'm':m,'r':r, 'theta':theta, 'phi':phi} + symbolic = Psi_nlm(n, l, m, r, phi, theta, 1).evalf(subs=values) + + return ((analytic-complex(symbolic)) < (1e-15 + 1e-15j)) + +def numerov(g, u_zero, du, dh): + #Numerov method for integrating ode + + #array for wavefunction values + u = np.zeros_like(g) + u[0] = u_zero + u[1] = u[0] + dh*du + + h = (dh*dh)/12. + f = [u[0]*(1.0 - h*g[0]), u[1]*(1.0 - h*g[1]), 0.0] + + #current cycle values + cycle_value = [u[1], g[1]] + + for i in range(2, g.size): + + f[2] = 2*f[1] - f[0] + dh*dh * cycle_value[0] * cycle_value[1] + cycle_value[1] = g[i] + + cycle_value[0] = f[2]/(1.0 - h* cycle_value[1]) + u[i]=cycle_value[0] + + f[0] = f[1] + f[1] = f[2] + + return u + +def numerovBoundEnergy(r, l, n_range, energy_range): + + from scipy.optimize import brentq + + def shootingMethod(E, r, l): + #boundary value by 'shooting' method + from scipy.integrate import simps + + g = l*(l+1.)/r**2 - 2./r - E + u = numerov(g, 0.0,-1e-8 ,-r[-2] + r[-1]) + + #normalize wavefunction + u /= np.sqrt(abs(simps(u**2,x = r))) + u /= r**l + + #interpolate back to zero + f_zero = u[-1] + (u[-2] - u[-1])*(0.0-r[-1])/(r[-2]-r[-1]) + + return f_zero + + n = l + bound_energy = [] + u_zero = shootingMethod(energy_range[0],r,l) + + for i in range(1, len(energy_range)): + u = shootingMethod(energy_range[i],r,l) + if u_zero * u < 0: + e = brentq(shootingMethod, energy_range[i-1], energy_range[i], xtol=1e-16, args=(r,l)) + bound_energy.append((n+1, l, e)) + + n += 1 + + if len(bound_energy) >= n_range: break + + u_zero = u + + return bound_energy + +def numerovHydrogenicEnergies(parameters = {'points':2000, 'extent':[1e-8, 100], 'n_range': 5}): + #compute the bound energies using Numerov + + energy_range = -1.2/(np.arange(1,20,0.2)**2.0) + + r = np.linspace(parameters['extent'][0],parameters['extent'][1],parameters['points'])[::-1] + + n_range = parameters['n_range'] + + bound_states = [] + for l in range(n_range): + bound_states += numerovBoundEnergy(r, l, n_range-l, energy_range) + + bound_states.sort(key = lambda x: x[2]) + + return bound_states + +def numerovEnergyVerify(boundEnergies): + #check bound energies against theoretical values + + valid = [] + for n,l,e in boundEnergies: + theoretical = -1.0/(n * n) + valid.append((e - theoretical) <= 1e-4) + + return np.all(valid), valid + +def numerovHydrogenicRadialDensity(parameters = {'points':2000, 'extent':[1e-8, 100], 'n_range': 5, \ + 'radius':[0,15],'occupied': [1, True, False]}): + #numerov wavefunction densities + + from scipy.integrate import simps + r = np.linspace(parameters['extent'][0],parameters['extent'][1],parameters['points'])[::-1] + + #get the bound energies for the states + bound_states = numerovHydrogenicEnergies(parameters) + + electrons = 0 + total_rho = np.zeros_like(r) + Z = parameters['occupied'][0] + states = [] + + ax = py.subplot() + subshell = ['s', 'p', 'd', 'f', 'g'] + + for (n, l, e) in bound_states: + + #solve Numerov for bound energies + g = l*(l+1.)/r**2 - 2./r - e + u = numerov(g, 0.0,-1e-8 ,-r[-2]+r[-1]) + u /= np.sqrt(abs(simps(u*u, x = r))) + + occupation = 2*(2*l + 1) + + #fermi level at atomic number + if (electrons + occupation) <= Z: + fermi =1.0 + else: + fermi = (Z - electrons)/float(occupation) + + #compute current orbital contribution to total + if parameters['occupied'][1] : + rho = u*u * fermi * occupation/(4*np.pi*r*r) + else: + rho = u*u / (4*np.pi*r*r) + + total_rho += rho + + #new atomic occupation + electrons += occupation + + states.append((n,l,e,fermi)) + + py.plot(r, rho*(4*np.pi*r*r), label= str(n) + subshell[l]) + + if electrons >= Z: break + + py.xlim(parameters['radius']) + py.xlabel('r($[a]$)') + ax.legend(loc='upper right') + ax.grid() + py.ylabel(r'$\rho(\psi)$') + py.title('Hydrogenic Wavefuntions (z=' + str(Z) + ')') + py.show() + + if parameters['occupied'][2]: + py.plot(r, total_rho*(4*np.pi*r*r)) + py.xlabel('r($[a]$)') + ax.grid() + py.ylabel(r'$\rho(\psi)$') + py.title('charge density') + py.xlim(parameters['radius']) + py.show() + + return states + +def numerovRadialVerify(): + + #compare Numerov and sympy wavefunction profiles + + quantum_numbers = [[1,0],[2,0],[2,1],[3,0],[3,1],[3,2]] + parameters = {'points':1000, 'extent':[1e-8, 100], 'z': 1} + + #sample points + r_points = np.linspace(parameters['extent'][0],parameters['extent'][1],parameters['points'])[::-1] + + #compute analytic solution + from sympy import lambdify + from sympy.abc import r, z + from sympy.physics.hydrogen import R_nl + + u_symbolic = [lambdify((r, z), r * R_nl(n, l, r, z), 'numpy')(r_points, 1) for n, l in quantum_numbers] + + #compute Numerov solution + u_numerov = [] + i = 0 + for n, l in quantum_numbers: + e = -parameters['z']/(n*n) + g = l*(l+1.)/r_points**2 - 2./r_points - e + + #correct start from above or below y=0 + asymptote = [1, -1, 1, 1, -1, 1] + + u = numerov(g, 0.0,-1e-8 , asymptote[i]*(-r_points[-2] + r_points[-1])) + i += 1 + + from scipy.integrate import simps + u /= np.sqrt(abs(simps(u**2,x = r_points))) + u_numerov.append(u) + + #plot wavefunctions + fig = py.figure(figsize=(8, 4), dpi=100) + for i in range(len(quantum_numbers)): + + ax = py.subplot(2, 3, i+1) + + ax.plot(r_points, u_symbolic[i], lw=0.6, color = 'black', label = r'sympy') + ax.plot(r_points, u_numerov[i], markersize = 4, lw=0, color = 'orange', marker = 'o', markevery=0.1, label = r'numerov') + + ax.set_xlim(-2, 16 + i * 8) + ax.set_xlabel(r'$r$[$a$]', labelpad=5) + ax.set_ylabel(r'$u_{{ {}{} }}(r)$'.format(*quantum_numbers[i]), labelpad=5) + py.xticks(fontsize=8) + py.yticks(fontsize=8) + ax.legend(loc='best', fontsize='x-small', ncol=1) + + fig.suptitle('Numerov-Actual Comparison') + py.tight_layout() + py.show() + + return + +def finiteDifferenceRadial(parameters = {'l': 0, 'points': 4000, 'extent':[0, 40], 'levels':25, 'show':5}): + #matrix finite difference solution + + #parameters + l = parameters['l'] + + #constants + hbar = getConstant('planck')/(2.0*np.pi) + e = getConstant('e') + epsilon_zero = getConstant('electric constant') + electron_mass = 9.1093837015e-31 + + from scipy import sparse + + def potentialMatrix(r): + #1/r schroedinger term + + v = e*e/(4.0*np.pi*epsilon_zero*r) + + return sparse.diags(v) + + def angularMatrix(r, l): + #1/r*r angular momentum term + + a = l*(l+1)/(r*r) + + return sparse.diags(a) + + def kineticMatrix(r): + #Laplace matrix kinetic term + + step = r[1] - r[0] + mainDiagonal = (-2.0/(step*step))*np.ones(len(r)) + offDiagonal = ( 1.0/(step*step))*np.ones(len(r)-1) + + return sparse.diags([mainDiagonal, offDiagonal, offDiagonal], (0, -1, 1)) + + r = np.linspace(parameters['extent'][1]*1.0e-10, parameters['extent'][0], parameters['points'], endpoint=False) + + #construct Hamiltonian + h = (-hbar*hbar/(2.0*electron_mass))*(kineticMatrix(r) - angularMatrix(r, l)) - potentialMatrix(r) + + from scipy.sparse.linalg import eigs + e_levels = parameters['levels'] + E, c = eigs(h, k=e_levels, which='SM') + + #sort the eigensolution + eigenvectors = np.array([x for _, x in sorted(zip(E, c.T), key=lambda pair: pair[0])]) + eigenvalues = np.sort(E).real/e + + #plot radial density + radial_density = [pow(np.absolute(eigenvectors[i,:]),2) for i in range(e_levels)] + + rydberg = getConstant('hartree->eV')/2.0 + legend = ['{: >5.2f} eV [{: >5.2f}]'.format(eigenvalues[i], -rydberg/pow(i+1+l,2)) for i in range(parameters['show'])] + for i in range(parameters['show']): + py.plot(r*1.0e10, radial_density[i], label=legend[i]) + + py.xlabel('r ($\\mathrm{\AA}$)') + py.ylabel('$\psi(r)^2$') + py.xlim([0, 20]) + py.grid() + py.legend() + py.title('radial wavefunctions for l=' + str(l)) + py.show() + +def hydrogenSpectralLines(type): + #compute and plot Hydrogen spectrum series + + lineDictionary = {} + + wavenumberFactor = getConstant('eV[-1]->nm') + energyFactor = getConstant('rydberg->eV') + + def series(n): + + baseEnergy = boundEnergies[n][2] * energyFactor + lines = [] + for i in boundEnergies[(n+1):]: + energy = i[2] * energyFactor - baseEnergy + lines.append([energy , wavenumberFactor/energy, str(i[0])+'->'+str(n+1)]) + + return lines + + boundEnergies = numerovHydrogenicEnergies({'points':4000, 'extent':[1e-8, 200], 'n_range': 8}) + boundEnergies = [i for i in boundEnergies if i[1] == 0] + + if 'lyman' in type: lineDictionary['lyman'] = series(0) + if 'balmer' in type: lineDictionary['balmer'] = series(1) + if 'paschen' in type: lineDictionary['paschen'] = series(2) + + return lineDictionary + +def monteCarloHydrogen(n, l, m, view='xy', plot=True): + '''a Monte-Carlo approach to hydrogenic orbitals see + 'A smooth path to plot hydrogen atom via Monte Carlo Method' - + Pedro Henrique Fernandes Lobo, Everaldo Arashiro, Alcides Castro e Silva, Carlos Felipe and Saraiva Pinheiro + ''' + import random + + def unlinspace(l, u, delta, spacing=1.1): + #custom linspace + + return [l + (i/(delta-1))**spacing*(u-l) for i in range(delta)] + + def angularDensity(t, l, m): + #get the angular density + + wavefunction = sph_harm(m, l, 0.0, t) + + return (wavefunction * wavefunction).real + + def radialDensity(r, n, l): + #get the radial wavefunction density + + factor = np.sqrt(((2.0/n)**3.0) * math.factorial(n-l-1) / (2.0 * n * math.factorial(n+l))) + laguerre = assoc_laguerre(2.0*r/n, n-l-1, 2.0*l+1) + + wavefunction = factor * np.exp(-r/n) * ((2.0*r/n)**l) * laguerre + + return (wavefunction * wavefunction).real + + def get_wavefunction_maximum(L, n, l, m, nr, nt, plot=True): + #get the maximum value of the wavefunction + + #maximum radial is half diagonal of cube + maxL = np.linalg.norm(L) * 0.5 + + #recalculate radial and angular increments + dr, dt = maxL/nr, math.pi/nt + + x = [] ; y = []; z = [] + + max_value = 0.0 + for i in range(nr): + r = i * dr + + for j in range(nt): + t = j * dt + + angular_density = angularDensity(t, l, m) + radial_density = radialDensity(r, n, l) + + density = angular_density * radial_density + x.append(r) ; y.append(t) ; z.append(density) + + if density > max_value: max_value = density + + if plot: + fig = py.figure(figsize=(4,4)) + ax = fig.add_subplot(111, projection='3d') + + ax.scatter(x, y, z, s=0.002) + + py.title(r'$\Phi_{{{},{},{}}}$'.format(n, l, m)) + for axis in [ax.xaxis, ax.yaxis, ax.zaxis]: + axis.set_ticklabels([]) + axis._axinfo['axisline']['linewidth'] = 1 + axis._axinfo['axisline']['color'] = (0, 0, 0) + axis._axinfo['grid']['linewidth'] = 0.5 + axis._axinfo['grid']['linestyle'] = "-" + axis._axinfo['grid']['color'] = (0, 0, 0) + axis._axinfo['tick']['inward_factor'] = 0.0 + axis._axinfo['tick']['outward_factor'] = 0.0 + axis.set_pane_color((0.95, 0.95, 0.95)) + ax.yaxis.labelpad=-15 + ax.xaxis.labelpad=-15 + + ax.set_xlabel(r'$r(a_0)$') + ax.set_ylabel(r'$\theta$') + + py.show() + + return max_value.real + + #decode view + view = view.replace('x','0',1).replace('y','1',1).replace('z','2',1) + + #define the view - viewport is dependent on n + plane = [int(view[0]), int(view[1])] + L = [0, 0, 0] + for i in plane: + L[i] = n*25.0 + dx, dy, dz = L + + dr, dt, icr = 0.1, 0.1, 1.05 + + nr = math.ceil(np.linalg.norm(L)/dr) + nt = math.ceil(2 * math.pi/dt) + + if plot: + fig = py.figure(figsize=(4,4)) + ax = fig.add_subplot(111) + r = np.array(unlinspace(0, np.linalg.norm(L)*0.5, 1000, spacing=4)) + + R = radialDensity(r, n, l) + py.plot(r, np.sqrt(R), '.k', markersize=2) + ax.set_yticks([]) + ax.set_xlabel(r'$r(a_0)$') + py.title(r'$\Phi_{{{},{},{}}}$'.format(n, l, m)) + py.show() + + wf_maximum = get_wavefunction_maximum(L, n, l, m, nr, nt, plot) + + cycle, cycles = 1, n*2000 + + mc_points = np.zeros((cycles+1,3)) + while cycle < cycles: + + #generate random value less than maximum of wavefunction + (icr-1)% + random_wavefunction = random.random() * wf_maximum * icr + + #generate random point in cube space + v = [dx * (random.random() - 0.5), dy * (random.random() - 0.5), dz * (random.random() - 0.5)] + r = np.linalg.norm(v) + + t = math.acos(v[2]/r) + + wavefunction = radialDensity(r, n, l) * angularDensity(t, l, m) + + if random_wavefunction < wavefunction: + cycle += 1 + mc_points[cycle] = v + + fig = py.figure(figsize=(4,4)) + ax = fig.add_subplot(111) + + py.plot(mc_points[:,plane[0]], mc_points[:,plane[1]], 'ok', markersize=1) + ax.set_xlabel(r'$x(a_0)$') + ax.set_ylabel(r'$y(a_0)$') + py.title(r'$\Phi_{{{},{},{}}}$'.format(n, l, m)) + py.show() + +if __name__ == '__main__': + + import sys + args = '' + for arg in sys.argv: + args += arg + + #get svf type + if 'rp' in args: + radialSolutionPlot([1,2,3,2,3,3], [0,0,0,1,1,2], 'radial distribution', False, {'points':100,'size':[7,5],'extent':[20,[-0.15,0.2]],'equal':False}) + elif 'rv' in args: + print('Radial verify returned ', radialVerify()) + elif 'as' in args: + angularSolutionPlotSingle(0, 3, {'points':100,'extent':[-0.5,0.5],'color_map':'coolwarm','axes':'off','bar':'on','alpha':0.2}) + elif 'av' in args: + print('Angular verify returned ', angularVerify()) + elif 'ap' in args: + angularSolutionPlotProjection(1, 3) + elif 'af' in args: + angularSolutionPlotFamily(3) + elif 'wc' in args: + wavefunctionContour(3, 2, 0, {'points':80, 'extent':[-30, 30], 'color_map':'gist_yarg', 'plane':'zx', 'elevation':0, 'contour': True}) + elif 'wv' in args: + print('Wavefunction verify returned ', wavefunctionVerify()) + elif 'ne' in args: + boundEnergies = numerovHydrogenicEnergies({'points':2000, 'extent':[1e-8, 100], 'n_range': 5}) + print(' n l Numerov Energy (E/E\N{SUBSCRIPT ZERO}) Actual') + print('---------------------------------------------------------------') + for e in boundEnergies: + print(' {:1n} {:1n} {:<5.4f} {:<5.4f}'.format(e[0], e[1], e[2], -1.0/(e[0]*e[0]))) + elif 'Nev' in args: + boundEnergies = numerovHydrogenicEnergies({'points':2000, 'extent':[1e-8, 100], 'n_range': 5}) + overall_validity, valid_list = numerovEnergyVerify(boundEnergies) + print('Numerov energy verify returned an overall ',overall_validity) + print('Numerov energy verify returned individuals ', valid_list) + elif 'NRv' in args: + numerovRadialVerify() + elif 'Nw' in args: + numerovHydrogenicRadialDensity({'points':2000, 'extent':[1e-8, 100], 'n_range': 5, \ + 'radius':[0,25],'occupied': [28, True, True]}) + elif 'fr' in args: + finiteDifferenceRadial() + elif 'se' in args: + lines = hydrogenSpectralLines(['lyman', 'balmer', 'paschen']) + print('transition energy (eV) wavelength (nm)') + + print('Lyman series\n------------') + for i in lines['lyman'][:5]: + print(' {:<6s} {:>8.3f} {:>6.1f}'.format(i[2], i[0], i[1])) + print('Balmer series\n-------------') + for i in lines['balmer'][:5]: + print(' {:<6s} {:>8.3f} {:>6.0f}'.format(i[2], i[0], i[1])) + print('Paschen series\n--------------') + for i in lines['paschen'][:5]: + print(' {:<6s} {:>8.3f} {:>6.0f}'.format(i[2], i[0], i[1])) + elif 'mc' in args: + monteCarloHydrogen(6, 3, 1, view='yz', plot=True) + else: + print('key not recognized') diff --git a/source/harpy.py b/source/harpy.py new file mode 100644 index 0000000..5658672 --- /dev/null +++ b/source/harpy.py @@ -0,0 +1,75 @@ +#main program +''' +if you change geometry you must rebuild molAtom and molBasis +with molAtom, molBasis = rebuildCenters(molAtom, molBasis, geo) +where geo is a (nAtoms, 3) array of the new geometry. + +if you don't want output then either replace lists with [] or +change the name of the item(s) to say 'mintsx'. +''' + +import rhf +import uhf +import rohf +import time +import sys +from numpy import load + +t = time.time() + +#concatenate arguments harpy.py-rhf.-v.-m.-LiH. +hfType = 'rhf' +args = '' +for arg in sys.argv: + args += arg + '.' + +#get hf type, remove fom args list once processed +if '-uhf.' in args: hfType = 'uhf' +if '-rohf.' in args: hfType = 'rohf' +args = args.replace('-uhf.','').replace('-rhf.','').replace('-rohf.','').replace('harpy.py.','') + +#verbose or minimal +molList, scfList = [[],['SCF', 'postSCF']] +if '-v.' in args: + molList = ['geometry', 'orbitals'] + scfList = [ 'preSCF', 'SCF', 'postSCF'] + +if '-m.' in args: scfList.append('mints') +args = args.replace('-v.','').replace('-m.','') + +#get project file +molFile = 'project.hpf' +if '.hpf' in args: + sgra = args[::-1] + i = sgra.find('fph.') + j = sgra.find('-', i) + molFile = sgra[i:j][::-1] + args = args.replace('-'+molFile+'.','') + +#only thing left in args is molecule +molecule = '' +if '-' in args: + molecule = args[1:-1] + +#set up geometry and basis +if hfType == 'rhf': + molAtom, molBasis, molData = rhf.mol(molList, file=molFile, molecule=molecule) + #check if there is a density matrix for this molecule in the basis + name, basisName = [molData['name'], molData['basis']] + mints = '../mints/' + name + '-' + basisName + '-mints.npz' + try: + data = load(mints) + density = data['d'] + except FileNotFoundError: + density = None + +elif hfType in ['uhf', 'rohf']: + molAtom, molBasis, molData = rhf.mol(molList, file=molFile, molecule=molecule, method=hfType) + +#do scf calculation +if hfType == 'rhf': + print(rhf.scf(molAtom, molBasis, molData , scfList, density), ' in ',round(time.time()-t,3),'s') +elif hfType == 'uhf': + print(uhf.scf(molAtom, molBasis, molData , scfList), ' in ',round(time.time()-t,3),'s') +elif hfType == 'rohf': + print(rohf.scf(molAtom, molBasis, molData , scfList), ' in ',round(time.time()-t,3),'s') \ No newline at end of file diff --git a/source/integral.py b/source/integral.py new file mode 100644 index 0000000..89c6267 --- /dev/null +++ b/source/integral.py @@ -0,0 +1,659 @@ +from __future__ import division +from numpy import zeros, dot, all +from numpy.linalg import norm +from math import exp, pow, pi, sqrt +from scipy.special import hyp1f1 +from atom import gaugeCenter + +def e(ia, ja, type, r, ie, je, n = 0, x = 0.0): + #recursive definition of Hermite Gaussian + # i,j - Gaussian 'i' 'j' , a - angular momentum , e - exponent + #type number of Hermite node + + p = ie + je + q = ie * je / p + #check bound of type + if n == 0: + if (type < 0) or (type > (ia + ja)): + return 0.0 + elif (ia + ja + type) == 0: + return exp(-q*r*r) + elif ja == 0: + return (1/(2 * p)) * e(ia-1,ja,type-1,r,ie,je) - (q*r/ie) * e(ia-1,ja,type,r,ie,je) + \ + (type+1) * e(ia-1,ja,type+1,r,ie,je) + else: + return (1/(2 * p)) * e(ia,ja-1,type-1,r,ie,je) + (q*r/je) * e(ia,ja-1,type,r,ie,je) + \ + (type+1) * e(ia,ja-1,type+1,r,ie,je) + else: + return e(ia+1,ja,type,r,ie,je,n-1,x) + x * e(ia,ja,type,r,ie,je,n-1,x) + +def overlap(ia, ja, ie, je, ir, jr): + #overlap between two Gaussians + # i,j - Gaussian 'i' 'j' , a - angular momentum , e - exponent, r - seperation + #0 type number of Hermite node + s = zeros(3) + for dim in range(0,3): + s[dim] = e(ia[dim], ja[dim], 0, ir[dim]-jr[dim], ie, je) + + return s[0]*s[1]*s[2] * pow(pi/(ie+je),1.5) + +def s(iBasis, jBasis): + #overlap between contracted Gaussians (S) + + sum = 0.0 + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + sum += iBasis.normal[i]*jBasis.normal[j]*iBasis.co[i]*jBasis.co[j]*overlap(iBasis.momentum, jBasis.momentum, \ + iBasis.ex[i], jBasis.ex[j], iBasis.center, jBasis.center) + + return sum + +def buildOverlap(bases): + #compute the overlap matrix + n = len(bases) + overlap = zeros((n,n)) + + for iBasis in range(0, n): + for jBasis in range(0, iBasis+1): + overlap[iBasis,jBasis] = s(bases[iBasis], bases[jBasis]) + #symmetrize + if iBasis != jBasis: + overlap[jBasis, iBasis] = overlap[iBasis, jBasis] + + return overlap + +def kinetic(ia, ja, ie, je, ir, jr): + #kinetic between two Gaussians + # i,j - Gaussian 'i' 'j' , a - angular momentum , e - exponent, r - seperation + + t = zeros(3) + + t[0] = je * (2*(ja[0] + ja[1] + ja[2]) + 3) * overlap(ia,ja,ie,je,ir,jr) + t[1] = -2 * je * je * (overlap(ia, [ja[0]+2, ja[1], ja[2]], ie, je, ir, jr) + \ + overlap(ia, [ja[0], ja[1]+2, ja[2]], ie, je, ir, jr) + \ + overlap(ia, [ja[0], ja[1], ja[2]+2], ie, je, ir, jr)) + t[2] = ja[0] * (ja[0] - 1) * overlap(ia, [ja[0]-2, ja[1], ja[2]], ie, je, ir, jr) + t[2] += ja[1] * (ja[1] - 1) * overlap(ia, [ja[0], ja[1]-2, ja[2]], ie, je, ir, jr) + t[2] += ja[2] * (ja[2] - 1) * overlap(ia, [ja[0], ja[1], ja[2]-2], ie, je, ir, jr) + + return t[0] + t[1] - 0.5*t[2] + +def k(iBasis, jBasis): + #kinetic between contracted Gaussians (K) + + sum = 0.0 + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + sum += iBasis.normal[i]*jBasis.normal[j]*iBasis.co[i]*jBasis.co[j]*kinetic(iBasis.momentum, jBasis.momentum, \ + iBasis.ex[i], jBasis.ex[j], iBasis.center, jBasis.center) + + return sum + + +def buildKinetic(bases): + #compute the kinetic (eN) matrix + n = len(bases) + kinetic = zeros((n,n)) + + for iBasis in range(0, n): + for jBasis in range(0, iBasis+1): + kinetic[iBasis,jBasis] = k(bases[iBasis], bases[jBasis]) + #symmetrize + if iBasis != jBasis: + kinetic[jBasis, iBasis] = kinetic[iBasis, jBasis] + + return kinetic + +def j(v, n, p, r, rnorm): + #Coulomb auxillary integrals + #v[] - order of Coulomb Hermite derivatives + #n Boys function order , p sum of exponents + #r distance between Gaussians composite center and nuclear center, + #rnorm - norm of r + + t = p * rnorm * rnorm + sum =0.0 + if (v[0]+v[1]+v[2]) == 0: + sum += pow(-2*p, n) * boys(n, t) + elif (v[0]+v[1]) == 0: + if v[2] > 1: + sum +=(v[2]-1) * j([v[0],v[1],v[2]-2],n+1,p,r,rnorm) + sum += r[2] * j([v[0],v[1],v[2]-1],n+1,p,r,rnorm) + elif v[0] == 0: + if v[1] > 1: + sum +=(v[1]-1) * j([v[0],v[1]-2,v[2]],n+1,p,r,rnorm) + sum += r[1] * j([v[0],v[1]-1,v[2]],n+1,p,r,rnorm) + else: + if v[0] > 1: + sum +=(v[0]-1) * j([v[0]-2,v[1],v[2]],n+1,p,r,rnorm) + sum += r[0] * j([v[0]-1,v[1],v[2]],n+1,p,r,rnorm) + + return sum + + + +def coulomb(ia, ja, ie, je, ir, jr, kr): + #Coulomb energy between two Gaussians + # i,j - Gaussian 'i' 'j' , a - angular momentum , e - exponent, r - seperation + + #p is composite center + p = ie + je + q = (ie*ir + je*jr)/p + + r = q - kr + + sum = 0.0 + for i in range(0, ia[0]+ja[0]+1): + for k in range(0, ia[1]+ja[1]+1): + for l in range(0, ia[2]+ja[2]+1): + sum += e(ia[0], ja[0], i, ir[0]-jr[0], ie, je) * \ + e(ia[1], ja[1], k, ir[1]-jr[1], ie, je) * \ + e(ia[2], ja[2], l, ir[2]-jr[2], ie, je) * \ + j([i,k,l], 0, p, r, norm(r)) + + return sum * pi * 2 / p + + +def v(iBasis, jBasis, r): + #contracted Gaussian + sum = 0.0 + + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + sum += iBasis.normal[i]*jBasis.normal[j]*iBasis.co[i]*jBasis.co[j]*coulomb(iBasis.momentum, jBasis.momentum, \ + iBasis.ex[i], jBasis.ex[j], iBasis.center,jBasis.center, r) + + return sum + +def buildCoulomb(atoms, bases): + #compute the Coulomb (eN) matrix + n = len(bases) + coulomb = zeros((n,n)) + + for iBasis in range(0,n): + for jBasis in range(0, iBasis+1): + + sum = 0.0 + for i in range(0, len(atoms)): + r = atoms[i].center + sum -= atoms[i].number * v(bases[iBasis], bases[jBasis], r) + coulomb[iBasis, jBasis] = sum + + if iBasis != jBasis: + coulomb[jBasis, iBasis] = coulomb[iBasis, jBasis] + + return coulomb + +def er(ie, je, ke, le, ia, ja, ka, la, ir, jr, kr, lr): + #two electron repulsion integral Gaussians + + p = ie + je + q = ke + le + + alpha = p*q/(p+q) + beta = (ie*ir + je*jr)/p - \ + (ke*kr + le*lr)/q + betaNorm = norm(beta) + + sum = 0.0 + + for a in range(0, ia[0] + ja[0] + 1): + for b in range(0, ia[1] + ja[1] + 1): + for c in range(0, ia[2] + ja[2] + 1): + + for t in range(0, ka[0] + la[0] + 1): + for u in range(0, ka[1] + la[1] + 1): + for v in range(0, ka[2] + la[2] + 1): + factor = e(ia[0],ja[0], a, ir[0]-jr[0], ie, je) * \ + e(ia[1],ja[1], b, ir[1]-jr[1], ie, je) * \ + e(ia[2],ja[2], c, ir[2]-jr[2], ie, je) + factor *= e(ka[0],la[0], t, kr[0]-lr[0], ke, le) * \ + e(ka[1],la[1], u, kr[1]-lr[1], ke, le) * \ + e(ka[2],la[2], v, kr[2]-lr[2], ke, le) + factor *= pow(-1, t+u+v) * j([a+t,b+u,c+v], 0, alpha, beta, betaNorm) + + sum += factor + + sum *= 2 * pow(pi, 2.5) / ((p*q) * sqrt(p+q)) + + return sum + +def eri(iBasis, jBasis, kBasis, lBasis): + #two electron repulsion integrals + sum = 0.0 + + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + for k in range(0, len(kBasis.co)): + for l in range(0, len(lBasis.co)): + factor = iBasis.normal[i]*jBasis.normal[j]*kBasis.normal[k]*lBasis.normal[l] * \ + iBasis.co[i]*jBasis.co[j]*kBasis.co[k]*lBasis.co[l] + factor *= er(iBasis.ex[i], jBasis.ex[j], kBasis.ex[k], lBasis.ex[l], \ + iBasis.momentum, jBasis.momentum, kBasis.momentum, lBasis.momentum, \ + iBasis.center, jBasis.center, kBasis.center, lBasis.center) + + sum += factor + return sum + +def buildEri(bases): + #build all the two electron integrals into linear array + #using symmetry only store upper triangle of ij,kl matrix + + #get dimension of array + n = len(bases) * (len(bases) - 1)/2 + len(bases) + n = n*(n+1)/2 + + linearEri = zeros(int(n)) + for i in range(0, len(bases)): + for j in range(0, i+1): + ij = i * (i + 1)/2 + j + for k in range(0, len(bases)): + for l in range(0, k+1): + kl = k * (k + 1)/2 + l + if ij >= kl: + ijkl = ij * (ij + 1)/2 + kl + linearEri[int(ijkl)] = eri(bases[i], bases[j], bases[k], bases[l]) + + return linearEri + +def iEri(i,j,k,l): + #index into the four-index eri integrals + p = max(i*(i+1)/2 + j, j*(j+1)/2 + i) + q = max(k*(k+1)/2 + l, l*(l+1)/2 + k) + + return int(max(p*(p+1)/2 + q, q*(q+1)/2 + p)) + + +def buildHamiltonian(type, S, K, J): + #build the intial Hamiltonian guess either + #core H = K + J + if type == 'core': + return (K + J), (K + J) + + #generalised Wolfberg-Helmholtz + if type == 'gwh': + n = S.shape[0] + H = zeros((n,n)) + for i in range(0, n): + for j in range( i, n): + H[i,j] = 1.75 * S[i,j] * ((K+J)[i,i] + (K+J)[j,j])/2 + if i != j: + H[j,i] = H[i,j] + + return (K + J), H + +def buildDensity(n, occupiedOrbitals, C): + density = zeros(( n, n)) + #initial density matrix + for i in range(0, n): + row = zeros(n) + for j in range(0, n): + for l in range(0, occupiedOrbitals): + row[j] += C[i,l] * C[j,l] + density[i,:] = row[:] + + return density + +def buildFock(H, eri, D, engine = 'aello'): + #build the fock matrix + n = H.shape[0] + fock = zeros((n,n)) + G = zeros((n,n)) + + if (all(D==0)): + #initially set Fock to core Hamiltonian + fock = H + else: + #subsequently Fock is core Hamiltonian + G ->[D.(2. - )] + if engine == 'native': + for i in range(0, n): + for m in range(0, n): + G[i,m] = 0.0 + for k in range(0, n): + for l in range(0, n): + G[i,m] += D[k,l] * ( 2* eri[iEri(i,m,k,l)] - eri[iEri(i,k,m,l)]) + fock[i,m] = H[i,m] + G[i,m] + elif engine == 'aello': + from aello import aelloFock + fock, G = aelloFock(n, H, eri, D) + + return fock, G + +def boys(n,T): + return hyp1f1(n+0.5 ,n+1.5, -T)/(2.0*n + 1.0) + +def mu(iBasis, jBasis, kr, direction): + #collects dipole values + + sum = 0.0 + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + sum += iBasis.normal[i] * jBasis.normal[j] * iBasis.co[i] * jBasis.co[j] * \ + dipole(iBasis.momentum, jBasis.momentum, iBasis.ex[i], jBasis.ex[j], iBasis.center, jBasis.center, kr, direction) + + return sum + +def dipole(ia, ja, ie, je, ir, jr, kr, direction): + # dipole moment + p = ie + je + q = ((ie*ir + je*jr)/p) - kr + ijr = ir - jr + + if direction == 'x': + u = e(ia[0], ja[0], 1, ijr[0], ie, je) + q[0]* e(ia[0], ja[0], 0, ijr[0], ie, je) + v = e(ia[1], ja[1], 0, ijr[1], ie, je) + t = e(ia[2], ja[2], 0, ijr[2], ie, je) + return u * v * t * pow(pi/p, 1.5) + if direction == 'y': + u = e(ia[0], ja[0], 0, ijr[0], ie, je) + v = e(ia[1], ja[1], 1, ijr[1], ie, je) + q[1]* e(ia[1], ja[1], 0, ijr[1], ie, je) + t = e(ia[2], ja[2], 0, ijr[2], ie, je) + return u * v * t * pow(pi/p, 1.5) + if direction == 'z': + u = e(ia[0], ja[0], 0, ijr[0], ie, je) + v = e(ia[1], ja[1], 0, ijr[1], ie, je) + t = e(ia[2], ja[2], 1, ijr[2], ie, je) + q[2]* e(ia[2], ja[2], 0, ijr[2], ie, je) + return u * v * t * pow(pi/p, 1.5) + +def buildEriMO( eigenVectors, ERI): + #transform eri from AO basis to MO basis + n = eigenVectors.shape[0] + eriMatrix_a = zeros((n,n)) + eriMatrix_b = zeros((n,n)) + eriMatrix_t = zeros((int(n*(n+1)/2), int(n*(n+1)/2))) + eriMO = zeros(len(ERI)) + + ij = 0 + for i in range(0, n): + for j in range(0 , i+1): + kl = 0 + for k in range(0, n): + for l in range(0, k+1): + eriMatrix_a[l,k] = ERI[iEri(i,j,k,l)] + eriMatrix_a[k,l] = eriMatrix_a[l,k] + kl += 1 + + #transform eriMatrix_a to MO basis + eriMatrix_b = dot(eigenVectors.T, dot(eriMatrix_a, eigenVectors)) + + kl = 0 + for k in range(0, n): + for l in range(0, k+1): + eriMatrix_t[kl,ij] = eriMatrix_b[k,l] + kl += 1 + + ij += 1 + + kl = 0 + for k in range(0, n): + for l in range(0, k+1): + #reset eriMatrix_a and _b + eriMatrix_a = zeros((n,n)) + eriMatrix_b = zeros((n,n)) + + ij = 0 + for i in range(0, n): + for j in range(0, i+1): + eriMatrix_a[j,i] = eriMatrix_t[kl,ij] + eriMatrix_a[i,j] = eriMatrix_a[j,i] + ij += 1 + + #transform eriMatrix_a to MO basis + eriMatrix_b = dot(eigenVectors.T, dot(eriMatrix_a, eigenVectors)) + + for i in range(0, n): + for j in range(0, i+1): + eriMO[iEri(k,l,i,j)] = eriMatrix_b[i,j] + + kl += 1 + + return eriMO + +def buildFockMOspin(spinOrbitals, eigenVectors, fock): + #transform Fock -> MO -> spin basis + + fockspin = zeros((spinOrbitals, spinOrbitals)) + eigenspin = zeros((spinOrbitals, spinOrbitals)) + + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + fockspin[p,q] = fock[int(p/2), int(q/2)] * ((p % 2) == (q % 2)) + eigenspin[p,q] = eigenVectors[int(p/2), int(q/2)] * ((p % 2) == (q % 2)) + + return dot(eigenspin.T, dot(fockspin, eigenspin)) + +def buildEriSingleBar(spinOrbitals, eriMO): + #construct the spin two-electron repulsion integrals - < | > + moSpinSingle = zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + for r in range(0, spinOrbitals): + for s in range(0, spinOrbitals): + moSpinSingle[p,q,r,s] = eriMO[iEri(int(p/2),int(q/2),int(r/2),int(s/2))] * \ + ((p % 2) == (q % 2)) * ((r % 2) == (s % 2)) + + return moSpinSingle + +def buildEriDoubleBar(spinOrbitals, eriMO): + #construct the spin two-electron repulsion integrals - < || > + moSpinDouble = zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + #get the sigle bar integrals + moSpinSingle = buildEriSingleBar(spinOrbitals, eriMO) + + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + for r in range(0, spinOrbitals): + for s in range(0, spinOrbitals): + moSpinDouble[p,q,r,s] = moSpinSingle[p,r,q,s] - moSpinSingle[p,s,q,r] + + return moSpinDouble + +def eriTransform(eri): + #transform between chemist [ij|kl] -> physicist notation + return eri.transpose(0, 2, 1, 3) + +def expandEri(erimo, nBasis): + #convert linear eri in MO basis to tensor form + tensor = zeros((nBasis, nBasis, nBasis, nBasis)) + + for p in range(0, nBasis): + for q in range(0, nBasis): + for r in range(0, nBasis): + for s in range(0, nBasis): + tensor[p,q,r,s] = erimo[iEri(p,q,r,s)] + return tensor + +def d(iBasis, jBasis, direction): + #construct Nabla + + sum = 0.0 + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + sum += iBasis.normal[i] * jBasis.normal[j] * iBasis.co[i] * jBasis.co[j] * \ + nabla(iBasis.momentum, jBasis.momentum, iBasis.ex[i], jBasis.ex[j], iBasis.center, jBasis.center, direction) + + return sum + +def nabla(ia, ja, ie, je, ir, jr, direction): + #Nabla + p = ie + je + ijr = ir - jr + + sx = e(ia[0], ja[0], 0, ijr[0], ie, je) + sy = e(ia[1], ja[1], 0, ijr[1], ie, je) + sz = e(ia[2], ja[2], 0, ijr[2], ie, je) + + dx = ja[0]*e(ia[0], ja[0]-1, 0, ijr[0], ie, je) - 2*je*e(ia[0], ja[0]+1, 0, ijr[0], ie, je) + dy = ja[1]*e(ia[1], ja[1]-1, 0, ijr[1], ie, je) - 2*je*e(ia[1], ja[1]+1, 0, ijr[1], ie, je) + dz = ja[2]*e(ia[2], ja[2]-1, 0, ijr[2], ie, je) - 2*je*e(ia[2], ja[2]+1, 0, ijr[2], ie, je) + + if direction == 'x': + return dx * sy * sz * pow(pi/p , 1.5) + if direction == 'y': + return sx * dy * sz * pow(pi/p , 1.5) + if direction == 'z': + return sx * sy * dz * pow(pi/p , 1.5) + +def buildNabla(atoms, bases, direction): + #build Nabla matrix + n = len(bases) + delOperator = zeros((n,n)) + + for iBasis in range(0,n): + for jBasis in range(0, iBasis+1): + delOperator[iBasis,jBasis] = d(bases[iBasis], bases[jBasis], direction) + + if iBasis != jBasis: + delOperator[jBasis, iBasis] = -delOperator[iBasis, jBasis] + + return delOperator + +def ang(ia, ja, ie, je, ir, jr, kr, direction): + # angular momentum + p = ie + je + ijr = ir - jr + + sd = zeros((3,3)) + for i in range(3): + sd[0,i] = e(ia[i], ja[i], 0, ijr[i], ie, je) + sd[1,i] = e(ia[i], ja[i], 0, ijr[i], ie, je, 1, ir[i]-kr[i]) + sd[2,i] = (ja[i] * e(ia[i], ja[i]-1, 0, ijr[i], ie, je)) - (2.0 * je * e(ia[i], ja[i]+1, 0, ijr[i], ie, je)) + + if direction == 'x': + return -sd[0,0] * (sd[1,1] * sd[2,2] - sd[1,2] * sd[2,1]) * pow(pi/p, 1.5) + elif direction == 'y': + return -sd[0,1] * (sd[1,2] * sd[2,0] - sd[1,0] * sd[2,2]) * pow(pi/p, 1.5) + elif direction == 'z': + return -sd[0,2] * (sd[1,0] * sd[2,1] - sd[1,1] * sd[2,0]) * pow(pi/p, 1.5) + +def a(iBasis, jBasis, kr, direction): + #construct angular momentum + sum = 0.0 + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + sum += iBasis.normal[i] * jBasis.normal[j] * iBasis.co[i] * jBasis.co[j] * \ + ang(iBasis.momentum, jBasis.momentum, iBasis.ex[i], jBasis.ex[j], iBasis.center, jBasis.center, kr, direction) + + return sum + + +def buildAngular(atoms, bases, direction, gaugeOrigin): + #build the angular momentum integrals + n = len(bases) + angular = zeros((n,n)) + + #get gauge center + gauge = gaugeCenter(atoms, gaugeOrigin) + + for iBasis in range(0,n): + for jBasis in range(0, iBasis+1): + angular[iBasis,jBasis] = a(bases[iBasis], bases[jBasis], gauge, direction) + + if iBasis != jBasis: + angular[jBasis, iBasis] = -angular[iBasis, jBasis] + + return angular + +def quadrupole(ia, ja, ie, je, ir, jr, kr, direction): + # quadrupole moment + p = ie + je + q = ((ie*ir + je*jr)/p) - kr + ijr = ir - jr + + sx = e(ia[0], ja[0], 0, ijr[0], ie, je) + sy = e(ia[1], ja[1], 0, ijr[1], ie, je) + sz = e(ia[2], ja[2], 0, ijr[2], ie, je) + + tx = e(ia[0], ja[0], 1, ijr[0], ie, je) + q[0]* e(ia[0], ja[0], 0, ijr[0], ie, je) + ty = e(ia[1], ja[1], 1, ijr[1], ie, je) + q[1]* e(ia[1], ja[1], 0, ijr[1], ie, je) + tz = e(ia[2], ja[2], 1, ijr[2], ie, je) + q[2]* e(ia[2], ja[2], 0, ijr[2], ie, je) + + if direction == 'xx': + u = 2.0 * e(ia[0], ja[0], 2, ijr[0], ie, je) + 2.0 * q[0]* e(ia[0], ja[0], 1, ijr[0], ie, je) \ + + (q[0]*q[0] + (0.5 / p)) * e(ia[0], ja[0], 0, ijr[0], ie, je) + return u * sy * sz * pow(pi/p, 1.5) + if direction == 'yy': + u = 2.0 * e(ia[1], ja[1], 2, ijr[1], ie, je) + 2.0 * q[1]* e(ia[1], ja[1], 1, ijr[1], ie, je) \ + + (q[1]*q[1] + (0.5 / p)) * e(ia[1], ja[1], 0, ijr[1], ie, je) + return sx * u * sz * pow(pi/p, 1.5) + if direction == 'zz': + u = 2.0 * e(ia[2], ja[2], 2, ijr[2], ie, je) + 2.0 * q[2]* e(ia[2], ja[2], 1, ijr[2], ie, je) \ + + (q[2]*q[2] + (0.5 / p)) * e(ia[2], ja[2], 0, ijr[2], ie, je) + return sx * sy * u * pow(pi/p, 1.5) + if direction == 'xy': + return tx * ty * sz * pow(pi/p, 1.5) + if direction == 'yz': + return sx * ty * tz * pow(pi/p, 1.5) + if direction == 'zx': + return tx * sy * tz * pow(pi/p, 1.5) + +def q(iBasis, jBasis, kr, direction): + #collects quadrupole values + + sum = 0.0 + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + sum += iBasis.normal[i] * jBasis.normal[j] * iBasis.co[i] * jBasis.co[j] * \ + quadrupole(iBasis.momentum, jBasis.momentum, iBasis.ex[i], jBasis.ex[j], iBasis.center, jBasis.center, kr, direction) + + return sum + +def electricField(atoms, bases, direction, gauge): + #compute components of the electric field + + n = len(bases) + electric = zeros((n,n)) + + #get gauge center + gaugeOrigin = gaugeCenter(atoms, gauge) + + for iBasis in range(0,n): + for jBasis in range(0, iBasis+1): + electric[iBasis,jBasis] = ef(bases[iBasis], bases[jBasis], gaugeOrigin, direction) + + if iBasis != jBasis: + electric[jBasis, iBasis] = electric[iBasis, jBasis] + + return electric + +def ef(iBasis, jBasis, kr, direction): + #construct electric field + sum = 0.0 + for i in range(0, len(iBasis.co)): + for j in range(0, len(jBasis.co)): + sum += iBasis.normal[i] * jBasis.normal[j] * iBasis.co[i] * jBasis.co[j] * \ + electric(iBasis.momentum, jBasis.momentum, iBasis.ex[i], jBasis.ex[j], iBasis.center, jBasis.center, kr, direction) + + return sum + +def electric(ia, ja, ie, je, ir, jr, kr, direction): + # electric field + #Coulomb energy between two Gaussians + # i,j - Gaussian 'i' 'j' , a - angular momentum , e - exponent, r - seperation + + #p is composite center + p = ie + je + q = (ie*ir + je*jr)/p + + r = q - kr + + #component + if direction == 'x': ix, iy, iz = [1,0,0] + if direction == 'y': ix, iy, iz = [0,1,0] + if direction == 'z': ix, iy, iz = [0,0,1] + #potential + if direction == 'p': ix, iy, iz = [0,0,0] + + sum = 0.0 + for i in range(0, ia[0]+ja[0]+1): + for k in range(0, ia[1]+ja[1]+1): + for l in range(0, ia[2]+ja[2]+1): + sum += e(ia[0], ja[0], i, ir[0]-jr[0], ie, je) * \ + e(ia[1], ja[1], k, ir[1]-jr[1], ie, je) * \ + e(ia[2], ja[2], l, ir[2]-jr[2], ie, je) * \ + j([i+ix,k+iy,l+iz], 0, p, r, norm(r)) + + sign = pow(-1, (ix+iy+iz)) + return sign* sum * pi * 2 / p diff --git a/source/mbpt.py b/source/mbpt.py new file mode 100644 index 0000000..de33b9d --- /dev/null +++ b/source/mbpt.py @@ -0,0 +1,621 @@ +from __future__ import division +import numpy as np + +diagrams_hh = [] + +def nodalPairCount_hh(order): + #return the number of pairs of nodes in Hugenholtz diagrams of 'order' + + return int(0.5 * order * (order- 1)) + +def nodalLineCount_hh(order): + #return the total number of line connecting nodes in the diagram + + return 2 * order + +def nodalPairs_hh(order): + #return the nodal pairs in diagram of 'order' + + pairs = [] + + for p in range(order): + for q in range(p+1, order): + pairs.append([p, q]) + + return pairs + +def validDiagrams_hh(diagrams, order): + #perform checks on diagrams for validity + + verified = [] + passed = False + + #get list of nodal pairs + nodalPair = nodalPairs_hh(order) + pairCount = nodalPairCount_hh(order) + + #number of lines + for d in diagrams: + + if sum(d) == 2 * order: + + #check line count for diagram + vertex = [0] * order + + #accummulate lines to each node + for i in range(pairCount): + vertex[nodalPair[i][0]] += d[i] + vertex[nodalPair[i][1]] += d[i] + + #check correct number of lines at node + if vertex == [4] * order: + + #number of lines at nodes verified check connected + route = [0,1] + node = 1 + tested = [False] * pairCount + tested[0] = True + + #loop over nodes to be found + while True: + + #loop over nodal pairs + for i in range(pairCount): + + pair = nodalPair[i] + + #has pair been checked + if not tested[i]: + + #is current node in nodal pair + if node == pair[0]: + route.append(pair[1]) + node = pair[1] + elif node == pair[1]: + route.append(pair[0]) + node = pair[0] + tested[i] = True + + #all nodes tested leave while loop + if all(t == True for t in tested): break + + #have we got all nodes, make unique and sort + route = list(set(route)) + route.sort() + passed = True + for i in range(order): + if i != route[i]: passed = False + + if passed: verified.append(d) + + return verified + +def nodalPairConnectionsCombinations_hh(connections, nodePair, pairCount, order): + #generate all combinations of connections between pairs + + #recursive return + + if nodePair == pairCount: + return validDiagrams_hh(connections,order) + + #define maximum number of connections + limit = 3 + + #adjust for special case order 2 + if order == 2: limit += 1 + + #make copy of connections as we are modifying it and don't want to processed appended elements + c = connections.copy() + + #loop over all elements in original connection list + for connection in connections: + + #loop over all possible connection types, + for i in range(1, limit+1): + + #make copy of current connection + t = connection.copy() + t[nodePair] = i + + #if sum of elements is less than or equal to allowed lines in diagram save + if sum(t) <= 2 * order: + c.append(t) + + #don't need original list now + del connections + + #increment the nodePair + nodePair += 1 + + #recurse + node = nodalPairConnectionsCombinations_hh(c, nodePair, pairCount, order) + + return node + +def verifyArrow_hh(up, pairs, diagram, order): + #check up arrow combination compatible with original diagram + + nodes = np.zeros(order) + + #loop over all pairs of nodes + for n, pair in enumerate(pairs): + i = pair[0] + j = pair[1] + + #sum up arrows at each node + if i < j: + nodes[j] += up[n] + nodes[i] += diagram[n] - up[n] + else: + nodes[i] += up[n] + nodes[j] += diagram[n] - up[n] + + passed = True + for i in range(order): + if nodes[i] != 2: passed = False + + return passed + + +def upArrow_hh(up, nodePair, diagram, pairs, pairCount, order): + #up arrow combinations for diagram + + if nodePair == pairCount-1: + + passed = verifyArrow_hh(up, pairs, diagram, order) + if passed: diagrams_hh.append([diagram,up.copy()]) + + return + + nodePair += 1 + + #get limits of up connections + lo = max(diagram[nodePair] - 2, 0) + hi = min(diagram[nodePair],2) + + #generate combination within range + for i in range(lo, hi+1): + + up[nodePair] = i + upArrow_hh(up, nodePair, diagram, pairs, pairCount, order) + + nodePair -= 1 + + return + +def upArrowCombinations_hh(diagramCombinations,order): + #get all combinations of up arrows + + for i in diagramCombinations: + + nodePair = -1 + pairCount = nodalPairCount_hh(order) + + arrows = [0] * pairCount + upArrow_hh(arrows, nodePair, i, nodalPairs_hh(order), pairCount, order) + + + return len(diagrams_hh) + +def downArrow_hh(diagram, arrow, pairs): + #compute the down arrows from an up arrow specification + + down = [0] * pairs + for pair in range(pairs): + down[pair] = abs(diagram[pair] - arrow[pair]) + + + return down + +def connectionFlow_hh(up, down, order): + #determine characteristics of each node + + #special case order 2 + if order == 2: return [[0,1,'d','i','a'],[0,1,'d','i','b'],[0,1,'u','o','r'], [0,1,'u','o','s'], \ + [0,1,'d','o','a'],[0,1,'d','o','b'],[0,1,'u','i','r'], [0,1,'u','i','s']] + + def nodalFlow(pair, p, a, d, id, flows): + #assign flow list element + + i, j= pair + la = [i, j, a, d, id] + id += 1 + + #allow for two lines in same direction between same pair + if p == 2: + lb = [i, j, a, d, id] + id += 1 + flows.append(la) + flows.append(lb) + else: flows.append(la) + + return id, flows + + pairs = nodalPairs_hh(order) + id = 1 + flowPattern = [] + + for node in range(order): + for i, pair in enumerate(pairs): + + #determine defining attributes of each line + if node == pair[0] and up[i] != 0: + id, flowPattern = nodalFlow(pair, up[i], 'u', 'o', id, flowPattern) + if node == pair[0] and down[i] != 0: + id, flowPattern = nodalFlow(pair, down[i], 'd', 'i', id, flowPattern) + if node == pair[1] and up[i] != 0: + id, flowPattern = nodalFlow(pair, up[i], 'u', 'i', id, flowPattern) + if node == pair[1] and down[i] != 0: + id, flowPattern = nodalFlow(pair, down[i], 'd', 'o', id, flowPattern) + + #rationalize numbering so each line has unique number + connection = 0 + processed = [] + while connection != 2 * nodalLineCount_hh(order) : + + #current connection + i,j,a,d,id = flowPattern[connection] + + #see if match in other direction + for f in range(connection+1, len(flowPattern)): + if flowPattern[f][:3] == [i,j,a] and flowPattern[f][3] != d : + + #if not already changed re-label and mark as changed + if not f in processed: + flowPattern[f][4] = id + processed += [f] + break + + connection += 1 + + #change to symbols + holes = ['a','b','c','d','e','f','g','h'] + particles = ['r','s','t','u','v','w','x','y'] + + for i, line in enumerate(flowPattern): + + #get id and if digit translate to letter + ID = line[4] + if str(ID).isdigit(): + + #determine if hole or particle + if line[2] == 'd': id = holes[0] + else: id = particles[0] + + #replace all occurences + for j in range(i, len(flowPattern)): + if flowPattern[j][4] == ID: flowPattern[j][4] = id + + #remove letter from pool + if id in holes: del holes[0] + else: del particles[0] + + return flowPattern + +def rules_hh(flows, order): + #evaluate rules + + rules = {} + + #rule 1 - in and out lines at each node + eri = '' + + for i in range(order): + + #get this node values + nodalFlow = flows[4*i: 4*i+4] + + #sort to get 'in' lines first + nodalFlow.sort(reverse = False, key=lambda i :i[3]) + + eri += nodalFlow[0][4] + nodalFlow[1][4] + nodalFlow[2][4] + nodalFlow[3][4] + ',' + + rules['doubleBars'] = eri[:-1] + + #rule 2 - mid-points of nodes + + levels = [] + + for level in range(order-1): + + e = '' + for f in flows: + i,j,a,d,id = f + + #stop double counting by just taking 'in' + if d == 'o': continue + if i <= level and j > level: + + if a == 'd': e += '+' + id + else: e += '-' + id + + levels.append(e[1:]) + + rules['orbitalEnergies'] = levels + + #rule 3 - down lines (h) and closed loops(l) + + h = 0 + for f in flows: + if f[2] == 'd': h += 1 + + #get string of labels + eri = rules['doubleBars'].replace(',','') + + labels = [] + cycles = [] + + current = 0 + + while True: + + #target of cycle + target = eri[current] + + labels.append(target) + cycle = target + '->' + + #search string cyclically + while True: + + current += 2 + next = eri[current] + labels.append(next) + + cycle += next + '->' + if target == next: break + + if next in eri[current+1:]: + current = eri.index(next, current+1) + else: + current = 0 + current = eri.index(next, current+1) + + #cycle finished + cycles.append(cycle[:-2]) + cycle = '' + + #see if we've done all labels + visited = True + for i, a in enumerate(eri): + if a not in labels: + visited = False + break + + if visited: break + + #start where label still not visited + current = i + + rules['sign'] = [h//2, len(cycles)] + rules['cycles'] = cycles + + #rule 5 - equivalent lines + + equivalent = [] + for f in flows: + if f[3] == 'i': equivalent.append(f) + equivalent.sort() + + count = 0 + for i in range(len(equivalent)-1): + if equivalent[i][:3] == equivalent[i+1][:3]: + count += 1 + + rules['powerTwo'] = -count + + return rules + +def codeDiagrams_hh(molAtom, molBasis, molData, order): + #produce python statements for diagrams of order + + diagrams_hh.clear() + + def getDenominators(rule, h): + #generate reshapes for denominators + + code = '\nf = []' + #get denominator strings + f = [] + for r in rule.split(','): + a = '' + for s in r: + if not s in '+-': a += s + f.append(a) + + #for each denominator expression generate reshape code + for i, denominator in enumerate(f): + + d = '' + for j, a in enumerate(denominator): + l = len(denominator) + + #occupied or virtual + if a in h: d += '+ eocc' + else: d += '- evir' + + if j != l-1: + d += '.reshape(-1' + ',1' * (l-j+-1) +') ' + + d = '\nf.append( 1/(' + d[2:] + '))' + + code += d + + return code + + code = """ +import rhf + +eSCF = rhf.scf(molAtom, molBasis, molData, []) + +from integral import buildFockMOspin +import numpy as np +ns = 2 * rhf.C.shape[0] +fs = buildFockMOspin(ns, rhf.C, rhf.fock) +efs = np.diag(fs) + +from basis import electronCount +charge = molData['charge'] +nsbf = len(molBasis)*2 +nocc = int(electronCount(molAtom, charge)) +nvir = nsbf - nocc + +from integral import buildEriMO, buildEriDoubleBar +eriMO = buildEriMO(rhf.C, rhf.ERI) +MO = buildEriDoubleBar(nsbf, eriMO) + +eocc = efs[:nocc] +evir = efs[nocc:] + +o = slice(0,nocc) +v = slice(nocc, nsbf) + +mp = 0.0 + """ + holes = ['a','b','c','d','e','f','g','h'] + particles = ['r','s','t','u','v','w','x','y'] + + #get combinations of diagrams + connections = [[0] * nodalPairCount_hh(order)] + nodePair = 0 + pairCount = nodalPairCount_hh(order) + + diagramCombinations = nodalPairConnectionsCombinations_hh(connections, nodePair, pairCount, order) + + #up arrow diagrams + nDiagrams = upArrowCombinations_hh(diagramCombinations, order) + + for i, diagrams in enumerate(diagrams_hh): + + diagram, up = diagrams + + #down arrows + down = downArrow_hh(diagram, up, pairCount) + + #arrow flow + flows = connectionFlow_hh(up, down, order) + + #get rules + rules = [] + rules.append(rules_hh(flows, order)) + + #enumerate rules for diagrams + + for rule in rules: + + d = '' + for a in rule['orbitalEnergies']: + d += a.replace('+','') + d = d.replace('-','') + ',' + + auto = getDenominators(d[:-1], holes) + + #sign and power of 1/2 + auto += '\nmp += ' + h = pow(-1, int(rule['sign'][0]) + int(rule['sign'][1])) + if h<0: auto += '-1 * ' + auto += 'pow(1/2, ' + str(abs(rule['powerTwo'])) + ') * np.einsum(\'' + + #double bar integrals and occupations + auto += rule['doubleBars'] + + d = ',' + d + auto += d[:-1] + '\', MO[' + for a in rule['doubleBars']: + if a in holes: auto += 'o,' + elif a in particles: auto += 'v,' + else :auto = auto[:-1] + '],MO[' + auto = auto[:-1] + '], ' + + for i in range(order-1): + auto += 'f[' + str(i) + '],' + auto = auto[:-1] + ')' + + code += auto + '\n' + + data = {'molAtom':molAtom,'molBasis':molBasis,'molData':molData} + + exec(code, {}, data) + + return data['mp'] + +def HTMLDiagrams_hh(order, filename): + #produce an HTML file for diagrams of order + + diagrams_hh.clear() + + #get combinations of diagrams + connections = [[0] * nodalPairCount_hh(order)] + nodePair = 0 + pairCount = nodalPairCount_hh(order) + + diagramCombinations = nodalPairConnectionsCombinations_hh(connections, nodePair, pairCount, order) + + #up arrow diagrams + nDiagrams = upArrowCombinations_hh(diagramCombinations, order) + + #open file and write header + f = open(filename, 'w') + f.write('\n\n\t\n\t\t

    order of diagrams ' + str(order) + '
    ') + + for i, diagrams in enumerate(diagrams_hh): + + diagram, up = diagrams + + #down arrows + down = downArrow_hh(diagram, up, pairCount) + + #arrow flow + flows = connectionFlow_hh(up, down, order) + + #get rules + rules = [] + rules.append(rules_hh(flows, order)) + + #enumerate rules for diagrams + for rule in rules: + + f.write('\n\t\t

      diagram ' + str(diagram) + '

    ') + f.write('\n\t\t

        sub-diagram ' + str(up) + \ + '⮝' + ' ' + str(down) + '⮟

    ') + + h = str(rule['sign'][0]) + '+' + str(rule['sign'][1]) + f.write('\n\t\t

    \n\t\t\t\n\t\t\t\t    (-1)' + h + '') + + h = str(rule['powerTwo']) + f.write('\n\t\t\t\t (2)' + h + ' ') + + f.write('\n\t\t\t\t\n\t\t\t\t\t') + eris = rule['doubleBars'].split(',') + for eri in eris: + f.write('\n\t\t\t\t\t\t<' + eri[:2] + '||' + eri[2:] + '>') + f.write('\n\t\t\t\t\t\n\t\t\t\t\t') + + es = rule['orbitalEnergies'] + for e in es: + s = '' + for i in e: + if i.isalpha(): s += 'ε' + i + '' + if i in '+-': s += '' + i + '' + f.write('\n\t\t\t\t\t\t(' + s + ')' ) + + f.write('\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t

    ') + + f.write('\n\t\n') + f.close() + +def mbptEvaluateMPn(molAtom, molBasis, molData, scf, mp = [2, 3, 4]): + #evalute mbpt diagrams for mp2, mp3 and mp4 + from view import postSCF + + if not isinstance(mp, list): mp = [mp] + + mbpt = [] + for m in mp: + mbpt.append(codeDiagrams_hh(molAtom, molBasis, molData, m)) + + if mp == [2, 3, 4]: + mp2, mp3, mp4 = mbpt + postSCF([mp2,mp3,mp4,scf,scf+mp2+mp3+mp4], 'mbpt') + + return mbpt diff --git a/source/mp.py b/source/mp.py new file mode 100644 index 0000000..61a3451 --- /dev/null +++ b/source/mp.py @@ -0,0 +1,500 @@ +from __future__ import division +from integral import buildEriMO, iEri, buildEriDoubleBar, buildFockMOspin, expandEri +from numpy.polynomial.laguerre import laggauss as quadrature +from basis import electronCount +from view import postSCF +from numpy import zeros, exp, diag, ones, einsum, newaxis, fill_diagonal +from numpy.linalg import eigh + +def mollerPlesset(atoms, charge, bases, eigenVectors, eigenValues, fock, ERI, e): + #compute mp2 and mp3 + ps = aps = mp = 0.0 + ps , aps = mp2(atoms, charge, bases, eigenVectors, eigenValues, ERI) + mp = mp3(atoms, charge, bases, eigenVectors, fock, ERI) + + postSCF([ps, aps, mp, e], 'mp') + + +def mp2(atoms, charge, bases, eigenVectors, eigenValues, ERI, type = 'p-ap'): + #moller-plesset perturbation theory 2nd order + eriMO = buildEriMO(eigenVectors, ERI) + + nOccupied = int(electronCount(atoms, charge)/2) + n = len(bases) + + mpParallel = mpAntiParallel = 0 + for i in range(0, nOccupied): + for a in range(nOccupied, n): + + for j in range(0, nOccupied): + for b in range(nOccupied, n): + u = eigenValues[i] + eigenValues[j] - eigenValues[a] - eigenValues[b] + v = eriMO[iEri(i,a,j,b)] + + mpParallel += (v*(v- eriMO[iEri(i,b,j,a)]))/u + mpAntiParallel += (v*v)/u + + if type == 'p-ap': + + #parallel and anti-parallel components + return mpParallel , mpAntiParallel + + elif type == 'scs': + + #do a spin-component scaled mp2 correction + + scs = mpParallel/3.0 + 1.2 * mpAntiParallel + return scs + + elif type == 'no': + + #get mp2 natural orbitals + + nVirtual = n - nOccupied + ga = zeros((nOccupied, nVirtual, nOccupied, nVirtual)) + gb = zeros((nOccupied, nVirtual, nOccupied, nVirtual)) + + for i in range(nOccupied): + for a in range(nOccupied, n): + for j in range(nOccupied): + for b in range(nOccupied, n): + ga[i,a-nOccupied,j,b-nOccupied] = eriMO[iEri(i,a,j,b)] + (eriMO[iEri(i,a,j,b)] - eriMO[iEri(i,b,j,a)]) + gb[i,a-nOccupied,j,b-nOccupied] = eriMO[iEri(i,a,j,b)] / (eigenValues[i] + eigenValues[j] - eigenValues[a] - eigenValues[b]) + + co = zeros((nOccupied, nOccupied)) + for i in range(nOccupied): + for j in range(nOccupied): + for a in range(nOccupied, n): + for k in range(nOccupied): + for b in range(nOccupied, n): + co[i,j] += ga[i,a-nOccupied,k,b-nOccupied] * gb[j,a-nOccupied,k,b-nOccupied] + + cv = zeros((nVirtual, nVirtual)) + for i in range(nOccupied): + for c in range(nOccupied, n): + for a in range(nOccupied, n): + for j in range(nOccupied): + for b in range(nOccupied, n): + cv[c-nOccupied,a-nOccupied] += ga[i,a-nOccupied,j,b-nOccupied] * gb[i,c-nOccupied,j,b-nOccupied] + + #construct symmetric mp2 density matrix + mp2Density = zeros((n, n)) + po = 0.25 * (co + co.T) + diag(ones(nOccupied)) * 2 + pv = -0.25 * (cv + cv.T) + + mp2Density[:nOccupied, :nOccupied] = po + mp2Density[nOccupied:, nOccupied:] = pv + + #diagonalise + noE, noC = eigh(mp2Density) + + return noE, noC + +def mp3(atoms, charge, bases, eigenVectors, fock, ERI): + #moller-plesset perturbation theory 3rd order - spin orbitals + + nElectrons = int(electronCount(atoms, charge)) + spinOrbitals = len(bases) * 2 + + #spin MO eris + eriMO = buildEriMO(eigenVectors, ERI) + eriMOspin = buildEriDoubleBar(spinOrbitals, eriMO) + + + #spin MO fock + fs = buildFockMOspin(spinOrbitals, eigenVectors, fock) + + mp3 = 0.0 + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for k in range(0, nElectrons): + for l in range(0, nElectrons): + for a in range(nElectrons,spinOrbitals): + for b in range(nElectrons,spinOrbitals): + u = (fs[i,i] + fs[j,j] - fs[a,a] - fs[b,b]) * \ + (fs[k,k] + fs[l,l] - fs[a,a] - fs[b,b]) + + mp3 += 0.125 * eriMOspin[i,j,a,b] * eriMOspin[k,l,i,j] * eriMOspin[a,b,k,l] / u + + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for a in range(nElectrons,spinOrbitals): + for b in range(nElectrons,spinOrbitals): + for c in range(nElectrons,spinOrbitals): + for d in range(nElectrons,spinOrbitals): + u = (fs[i,i] + fs[j,j] - fs[a,a] - fs[b,b]) * \ + (fs[i,i] + fs[j,j] - fs[c,c] - fs[d,d]) + + mp3 += 0.125 * eriMOspin[i,j,a,b] * eriMOspin[a,b,c,d] * eriMOspin[c,d,i,j] / u + + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for k in range(0, nElectrons): + for a in range(nElectrons,spinOrbitals): + for b in range(nElectrons,spinOrbitals): + for c in range(nElectrons,spinOrbitals): + u = (fs[i,i] + fs[j,j] - fs[a,a] - fs[b,b]) * \ + (fs[i,i] + fs[k,k] - fs[a,a] - fs[c,c]) + + mp3 += eriMOspin[i,j,a,b] * eriMOspin[k,b,c,j] * eriMOspin[a,c,i,k] / u + + return mp3 + +def orbitalOptimisedMP2(eigenVectors, h, e, molBasis, eNuclear, ERI, nElectrons): + import scipy.linalg as la + from numpy import zeros, dot, zeros_like, append + + def hSpinBlock(h, spinOrbitals, nBasis): + #spin blocking a square matrix + sb = zeros((spinOrbitals, spinOrbitals)) + + for p in range(0, nBasis): + for q in range(0, nBasis): + sb[p,q] = sb[p+nBasis,q+nBasis] = h[p,q] + + return sb + + def eriSpinBlock(eri, spinOrbitals, nBasis): + #spin blocking the eri + sbEri = zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + + for p in range(0, nBasis): + for q in range(0, nBasis): + for r in range(0, nBasis): + for s in range(0, nBasis): + sbEri[p,q,r,s] = sbEri[p,q,r+nBasis, s+nBasis] = eri[iEri(p,q,r,s)] + + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + for r in range(0, nBasis): + for s in range(0, nBasis): + sbEri[p,q,r,s] = sbEri[p,q,r+nBasis, s+nBasis] = sbEri[s,r,q,p] + + aoSpinDoubleBar = zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + for r in range(0, spinOrbitals): + for s in range(0, spinOrbitals): + aoSpinDoubleBar[p,q,r,s] = sbEri[p,r,q,s] - sbEri[p,s,q,r] + + return aoSpinDoubleBar + + def eriSpinMO(gao, eigenVectors): + #change eri from spin AO to spin MO + gmoA = zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + gmo = zeros_like(gmoA) + for a in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + for r in range(0, spinOrbitals): + for s in range(0, spinOrbitals): + for p in range(0, spinOrbitals): + gmoA[a,q,r,s] += eigenVectors[p,a] * gao[p,q,r,s] + for a in range(0, spinOrbitals): + for b in range(0, spinOrbitals): + for r in range(0, spinOrbitals): + for s in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + gmo[a,b,r,s] += eigenVectors[q,b] * gmoA[a,q,r,s] + gmoA = zeros_like(gmoA) + for a in range(0, spinOrbitals): + for b in range(0, spinOrbitals): + for c in range(0, spinOrbitals): + for s in range(0, spinOrbitals): + for r in range(0, spinOrbitals): + gmoA[a,b,c,s] += eigenVectors[r,c] * gmo[a,b,r,s] + gmo = zeros_like(gmo) + for a in range(0, spinOrbitals): + for b in range(0, spinOrbitals): + for c in range(0, spinOrbitals): + for d in range(0, spinOrbitals): + for s in range(0, spinOrbitals): + gmo[a,b,c,d] += eigenVectors[s,d] * gmoA[a,b,c,s] + + return gmo + + #loop control + iterations = 40 + tolerance = 1.0e-8 + + #metrics + nBasis = len(molBasis) + nOccupied = nElectrons + spinOrbitals = 2 * nBasis + nVirtual = spinOrbitals - nOccupied + + #eri in spin atomic basis and double bar + gao = eriSpinBlock(ERI,spinOrbitals, nBasis) + #h in spin atomic basis + hao = hSpinBlock(h,spinOrbitals, nBasis) + + #get orbital energies (o,v)+(o,v) + eps = append(e, e) + + #get orbital coefficients, block (not spin block), and sort by eps (oo,vv) + c = zeros((spinOrbitals, spinOrbitals)) + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + c[p,q] = eigenVectors[p % nBasis, q % nBasis] + if ((p < nBasis) and (q >= nBasis)) or ((p >= nBasis) and (q < nBasis)): + c[p,q] = 0.0 + + c = c[:, eps.argsort()] + + # Transform gao and hao into MO basis + hmo = dot(c.T, dot(hao,c)) + gmo = eriSpinMO(gao, c) + + #initialise the fock matrix, amplitudes, correlation and reference + #one-particle density matrix and energy, two-particle density matrix + fock = zeros((spinOrbitals, spinOrbitals)) + td = zeros((nOccupied, nOccupied, nVirtual, nVirtual)) + tpdmCor = zeros((spinOrbitals, spinOrbitals, spinOrbitals, spinOrbitals)) + preOMP = 0.0 + + # Build the reference one particle density matrix + opdmRef = zeros((spinOrbitals, spinOrbitals)) + for i in range(0, nOccupied): + opdmRef[i,i] = 1.0 + + # Initialize the rotation matrix parameter + rot = zeros((spinOrbitals, spinOrbitals)) + + for cycle in range(0, iterations): + + # Build the Fock matrix + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + fock[p,q] = hmo[p,q] + for i in range(0, nOccupied): + fock[p,q] += gmo[p,i,q,i] + + # Build off-diagonal Fock Matrix and orbital energies + fprime = zeros((spinOrbitals, spinOrbitals)) + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + if p != q: + fprime[p,q] = fock[p,q] + else: + eps[p] = fock[p,p] + + # Update t amplitudes + t = zeros_like(td) + for i in range(0, nOccupied): + for j in range(0, nOccupied): + for a in range(0, nVirtual): + for b in range(0, nVirtual): + t[i,j,a,b] = gmo[i,j,a+nOccupied,b+nOccupied] + for d in range(0, nVirtual): + t[i,j,a,b] += fprime[a+nOccupied,d+nOccupied] * td[i,j,d,b] - \ + fprime[b+nOccupied,d+nOccupied] * td[i,j,d,a] + for k in range(0, nOccupied): + t[i,j,a,b] += -fprime[k,i] * td[k,j,a,b] + fprime[k,j] * td[k,i,a,b] + t[i,j,a,b] /= (eps[i] + eps[j] - eps[a+nOccupied] - eps[b+nOccupied]) + td = t.copy() + + #build one particle density matrix + opdmCor = zeros((spinOrbitals, spinOrbitals)) + for i in range(0, nOccupied): + for j in range(0, nOccupied): + for a in range(0, nVirtual): + for b in range(0, nVirtual): + for d in range(0, nVirtual): + opdmCor[b+nOccupied, a+nOccupied] += 0.5 * td[j,i,d,a] * td[i,j,b,d] + for k in range(0, nOccupied): + opdmCor[j,i] -= 0.5 * td[k,j,b,a] * td[i,k,a,b] + opdm = opdmCor + opdmRef + + #build two particle density matrix + tpdm = zeros_like(tpdmCor) + tpdm1 = zeros_like(tpdmCor) + for i in range(0, nOccupied): + for j in range(0, nOccupied): + for a in range(0, nVirtual): + for b in range(0, nVirtual): + tpdmCor[a+nOccupied,b+nOccupied,i,j] = td[i,j,a,b] + tpdmCor[i,j,a+nOccupied,b+nOccupied] = td[j,i,b,a] + for r in range(0, spinOrbitals): + for s in range(0, spinOrbitals): + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + tpdm[r,s,p,q] += opdmCor[r,p] * opdmRef[s,q] + tpdm[s,r,q,p] = tpdm[r,s,p,q] + tpdm[s,r,p,q] = tpdm[r,s,q,p] = -tpdm[r,s,p,q] + + tpdm1[r,s,p,q] += opdmRef[r,p] * opdmRef[s,q] + tpdm1[s,r,p,q] = - tpdm1[r,s,p,q] + tpdm += tpdmCor + tpdm1 + + # Newton-Raphson step + generalFock = zeros_like(fock) + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + for r in range(0, spinOrbitals): + generalFock[p,q] += hmo[p,r] * opdm[r,q] + for s in range(0, spinOrbitals): + for t in range(0, spinOrbitals): + generalFock[p,q] += 0.5 * gmo[p,r,s,t] * tpdm[s,t,q,r] + + for i in range(0, nOccupied): + for a in range(0, nVirtual): + rot[a+nOccupied,i] = (generalFock - generalFock.T)[a+nOccupied, i]/(eps[i] - eps[a+nOccupied]) + + # Build Newton-Raphson orbital rotation matrix + U = la.expm(rot - rot.T) + + # Rotate spin-orbital coefficients + c = c.dot(U) + + # Transform one and two electron integrals using new C + hmo = dot(c.T, dot(hao,c)) + gmo = eriSpinMO(gao, c) + + # Compute the energy + omp = eNuclear + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + omp += hmo[p,q] * opdm[q,p] + for p in range(0, spinOrbitals): + for q in range(0, spinOrbitals): + for r in range(0, spinOrbitals): + for s in range(0, spinOrbitals): + omp += 0.25 * gmo[p,q,r,s] * tpdm[r,s,p,q] + + if (abs(omp - preOMP)) < tolerance: + break + + # Updating values + preOMP = omp + + postSCF([cycle, omp, omp-preOMP],'omp') + + return omp + +def eriMOpartition(eri, co, cv, nBasis, no, nv): + #split eri [:no,:nv,:,no,:nv] + #[no,:,:,:] + eriReduced = zeros((nBasis, nBasis, nBasis, nBasis)) + for p in range(0, nBasis): + for q in range(0, nBasis): + for r in range(0, nBasis): + for s in range(0, nBasis): + for i in range(0, no): + eriReduced[i,q,r,s] += co[p,i] * eri[p,q,r,s] + eriReduced = eriReduced[:no,:,:,:] + #[no,nv,:,:] + eriIntermediate = zeros((no, nBasis, nBasis, nBasis)) + for p in range(0, no): + for q in range(0, nBasis): + for r in range(0, nBasis): + for s in range(0, nBasis): + for a in range(0, nv): + eriIntermediate[p,a,r,s] += cv[q,a] * eriReduced[p,q,r,s] + eriReduced = eriIntermediate[:,:nv,:,:] + #[no,nv,no,:] + eriIntermediate = zeros((no, nv, nBasis, nBasis)) + for p in range(0, no): + for q in range(0, nv): + for r in range(0, nBasis): + for s in range(0, nBasis): + for j in range(0, no): + eriIntermediate[p,q,j,s] += co[r,j] * eriReduced[p,q,r,s] + eriReduced = eriIntermediate[:,:,:no,:] + #[no,nv,no,nv] + eriIntermediate = zeros((no, nv, no, nBasis)) + for p in range(0, no): + for q in range(0, nv): + for r in range(0, no): + for s in range(0, nBasis): + for b in range(0, nv): + eriIntermediate[p,q,r,b] += cv[s,b] * eriReduced[p,q,r,s] + eriReduced = eriIntermediate[:,:,:,:nv] + + return eriReduced + +def mp2LaplaceTransform(molBasis, c, ERI, eps, nOccupied, eSCF, meshSize=40): + #Laplace transform Moller-Plesset (2) - restricted reference implementation + + #metrics + nBasis = len(molBasis) + nVirtual = nBasis - nOccupied + + #slices of orbital eigens + epsOccupied = eps[:nOccupied] + epsVirtual = eps[nOccupied:] + cOccupied = c[:,:nOccupied] + cVirtual = c[:,nOccupied:] + + #sliced eri in MO basis + eriTensor = expandEri(ERI, nBasis) + eriMOslice = eriMOpartition(eriTensor, cOccupied, cVirtual, nBasis, nOccupied, nVirtual) + + #Gauss-Leguerre quadrature + mesh, weights = quadrature(meshSize) + #use exponential weights + weights *= exp(mesh) + #energies for mp2 parallel and anti-parallel spins + eMP = [0.0,0.0] + + #cycle over mesh + for cycle in range(0, meshSize): + + #compute amplitudes + ampOccupied = exp(mesh[cycle] * epsOccupied) + ampVirtual = exp(-mesh[cycle] * epsVirtual) + ampEri = zeros((nOccupied, nVirtual, nOccupied, nVirtual)) + for i in range(0, nOccupied): + for a in range(0, nVirtual): + for j in range(0, nOccupied): + for b in range(0, nVirtual): + ampEri[i,a,j,b] = ampOccupied[i] * ampVirtual[a] * ampOccupied[j] * ampVirtual[b] * eriMOslice[i,a,j,b] + + #mp2 energies + eMPcontraction = [0.0,0.0] + for i in range(0, nOccupied): + for a in range(0, nVirtual): + for j in range(0, nOccupied): + for b in range(0, nVirtual): + eMPcontraction[0] += ampEri[i,a,j,b] * eriMOslice[i,a,j,b] + eMPcontraction[1] += ampEri[i,a,j,b] * (eriMOslice[i,a,j,b] - eriMOslice[i,b,j,a]) + + for e in range(0, 2): + eMP[e] -= eMPcontraction[e] * weights[cycle] + + postSCF([eMP, eSCF], 'mplp') + + return eMP + +def mp2UnrelaxedDensity(c, e, eri, nbf, nOccupied): + #compute the mp2 level unrelaxed density matrix + + #transform to mo basis + eriMO = buildEriMO(c, eri) + g = expandEri(eriMO, nbf) + + #slices + o = slice(None, nOccupied) ; v = slice(nOccupied, None) ; n = newaxis + + #energy denominator + dd = 1.0/(e[o, n, n, n] + e[n, o, n, n] - e[n, n, v, n] - e[n, n, n, v]) + + #doubles amplitudes + t2 = -einsum('iajb,ijab->ijab', g[o,v,o,v], dd, optimize=True) + + #double Lagrange multipliers + l2 = -2.0 * einsum('iajb,ijab->ijab', 2.0*g[o,v,o,v] - g[o,v,o,v].swapaxes(3, 1), dd, optimize=True) + + oo = -einsum('kiab,kjab->ij', l2, t2, optimize=True) + vv = einsum('ijbc,ijac->ab', l2, t2, optimize=True) + + #enforce symmetry + oo = 0.5 * (oo + oo.T) + vv = 0.5 * (vv + vv.T) + + #HF and mp2 contributions + mp2Density = zeros((nbf, nbf)) + fill_diagonal(mp2Density[:nOccupied, :nOccupied], 2.0) + mp2Density[:nOccupied, :nOccupied] += oo + mp2Density[nOccupied:, nOccupied:] += vv + + return mp2Density + \ No newline at end of file diff --git a/source/ocypete.pyx b/source/ocypete.pyx new file mode 100644 index 0000000..80b7c98 --- /dev/null +++ b/source/ocypete.pyx @@ -0,0 +1,508 @@ +#cython: boundscheck=False, wraparound=False, nonecheck=False, initializedcheck=False, cdivision=True +from libc.math cimport exp, pow, tgamma, sqrt, abs +from scipy.special.cython_special cimport hyp1f1 + +import numpy as np +cimport numpy as np + +cdef double pi = 3.141592653589793238462643383279 + +#---------------------------------------Shared Routines -----------------------------------| + +cdef double cye(int ia,int ja,int type, double r, double ie, double je, int n = 0, double x = 0.0): + + cdef: + double p = ie + je + double q = ie*je / p + + if n == 0: + if (type < 0) or (type > (ia + ja)): + return 0.0 + elif (ia + ja + type) == 0: + return exp(-q*r*r) + elif ja == 0: + return (1/(2 * p)) * cye(ia-1,ja,type-1,r,ie,je) - (q*r/ie) * cye(ia-1,ja,type,r,ie,je) + \ + (type+1) * cye(ia-1,ja,type+1,r,ie,je) + else: + return (1/(2 * p)) * cye(ia,ja-1,type-1,r,ie,je) + (q*r/je) * cye(ia,ja-1,type,r,ie,je) + \ + (type+1) * cye(ia,ja-1,type+1,r,ie,je) + else: + return cye(ia+1,ja,type,r,ie,je,n-1,x) + x * cye(ia,ja,type,r,ie,je,n-1,x) + + +cdef double efx(int ia,int ja,int type, double r, double ie, double je, int n = 0, double x = 0.0, int p = 0, int s = 0): + if p == 1: + return 2.0 * ie * cye(ia+1, ja, type, r, ie, je, n, x) - ia * cye(ia-1, ja, type, r, ie, je, n, x) + elif s == 1: + return 2.0 * je * cye(ia, ja+1, type, r, ie, je, n, x) - ja * cye(ia, ja-1, type, r, ie, je, n, x) + +cdef double ovlpfx(int ia0, int ia1, int ia2, int ja0, int ja1, int ja2, double ie, double je, \ + double ir0, double ir1, double ir2, double jr0, double jr1, double jr2, int[3] n, double[3] origin, int x, int center): + + cdef: + int pa = 0 + int pb + double t = 0.0 + double r0, r1, r2 + + if center == 0: + pa = 1 + pb = (pa+1) % 2 + + r0 = ir0 - jr0 + r1 = ir1 - jr1 + r2 = ir2 - jr2 + + if x == 0: + t = efx(ia0, ja0 , 0, r0, ie, je, n[0], ir0 - origin[0],pa ,pb ) + t *= cye(ia1, ja1 , 0, r1, ie, je, n[1], ir1 - origin[1]) + t *= cye(ia2, ja2 , 0, r2, ie, je, n[2], ir2 - origin[2]) + elif x == 1: + t = cye(ia0, ja0 , 0, r0, ie, je, n[0], ir0 - origin[0]) + t *= efx(ia1, ja1 , 0, r1, ie, je, n[1], ir1 - origin[1],pa ,pb ) + t *= cye(ia2, ja2 , 0, r2, ie, je, n[2], ir2 - origin[2]) + elif x == 2: + t = cye(ia0, ja0 , 0, r0, ie, je, n[0], ir0 - origin[0]) + t *= cye(ia1, ja1 , 0, r1, ie, je, n[1], ir1 - origin[1]) + t *= efx(ia2, ja2 , 0, r2, ie, je, n[2], ir2 - origin[2],pa ,pb ) + + return t * pow(pi/(ie+je), 1.5) + +cdef double kntcfx(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, \ + int[3] n, double[3] origin, int x, int center): + + #cases for center 'a' and center 'b' + cdef: + int pa = 0 + int pb, i + double[3] t + double[3] mu, nu, vu + + if center == 0: + pa = 1 + pb = (pa+1) % 2 + + for i in range(0, 3): + mu[i] = (2*ja[i] + 1) * je + nu[i] = -2*pow(je,2) + vu[i] = -0.5 * ja[i]* (ja[i]-1) + t[i] = 0.0 + + for i in range(0, 3): + + if i == x: + t[x] = mu[x] * efx(ia[x], ja[x] , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + \ + nu[x] * efx(ia[x], ja[x] + 2 , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + \ + vu[x] * efx(ia[x], ja[x] - 2, 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + + else: + t[i] = mu[i] * cye(ia[i], ja[i] , 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + \ + nu[i] * cye(ia[i], ja[i] + 2, 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + \ + vu[i] * cye(ia[i], ja[i] - 2, 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + + for i in range(0, 3): + + if i == x: + t[(x+1) % 3] *= efx(ia[x], ja[x] , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + t[(x+2) % 3] *= efx(ia[x], ja[x] , 0, ir[x] - jr[x], ie, je, n[x], ir[x] - origin[x],pa ,pb ) + else: + t[(i+1) % 3] *= cye(ia[i], ja[i], 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + t[(i+2) % 3] *= cye(ia[i], ja[i], 0, ir[i] - jr[i], ie, je, n[i], ir[i] - origin[i]) + + return (t[0] + t[1] + t[2]) * pow(pi/(ie+je), 1.5) + +cdef double boys(double m,double T): + return hyp1f1(m+0.5,m+1.5,-T)/(2.0*m+1.0) + +cdef double clmb(int l, int m, int n, int bf, double p, double r0, double r1, double r2): + + cdef double t, s, nm + nm = sqrt(r0*r0 + r1*r1 + r2*r2) + t = p * nm * nm + + s = 0.0 + if (l+m+n) == 0: + s += pow(-2*p, bf) * boys(bf, t) + elif (l+m) == 0: + if n > 1: + s +=(n-1) * clmb(l,m,n-2,bf+1,p,r0,r1,r2) + s += r2 * clmb(l,m,n-1,bf+1,p,r0,r1,r2) + elif l == 0: + if m > 1: + s +=(m-1) * clmb(l,m-2,n,bf+1,p,r0,r1,r2) + s += r1 * clmb(l,m-1,n,bf+1,p,r0,r1,r2) + else: + if l > 1: + s +=(l-1) * clmb(l-2,m,n,bf+1,p,r0,r1,r2) + s += r0 * clmb(l-1,m,n,bf+1,p,r0,r1,r2) + + return s + +cdef double clmbsfx(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, \ + double[:] nucleus, int[3] n, double[3] origin, int x, int center): + #generalised coulomb derivatives dV(ab^(0,0,0))/dx terms + + cdef: + double p = ie + je + double[3] q, r + int i, mu, nu, vu, pa, pb + int tau[3] + double sum, val + int[3] xi + + for i in range(0, 3): + q[i] = (ie*ir[i] + je*jr[i])/p + tau[i] = ia[i] + ja[i] + n[i] + 1 + r[i] = q[i] - nucleus[i] + + tau[x] += 1 + + pa = 0 + if center == 0: + pa = 1 + pb = (pa+1) % 2 + + sum = 0.0 + val = 1.0 + + for mu in range(0, tau[0]): + for nu in range(0, tau[1]): + for vu in range(0, tau[2]): + val = 1.0 + xi = [mu,nu,vu] + for i in range(0, 3): + if i == x: + val *= efx(ia[x], ja[x], xi[x], ir[x]-jr[x], ie, je, n[x], ir[x]-nucleus[x], pa, pb) + else: + val *= cye(ia[i], ja[i], xi[i], ir[i]-jr[i], ie, je, n[i], ir[i]-nucleus[i]) + + sum += val * clmb(mu,nu,vu, 0, p, r[0], r[1], r[2] ) + + return sum * 2 * pi/p + +cdef double clmbhfx(int[3] ia, int[3] ja, double ie, double je, double[3] ir, double[3] jr, \ + double[:] nucleus, int[3] n, double[3] origin, int x): + #generalised coulomb derivatives dV(ab^(0,0,0))/dx terms + + cdef: + double p = ie + je + double[3] q, r + int i, mu, nu, vu, pa, pb + int[3] tau + double sum, val + int[3] xi + + for i in range(0, 3): + q[i] = (ie*ir[i] + je*jr[i])/p + tau[i] = ia[i] + ja[i] + n[i] + 1 + r[i] = q[i] - nucleus[i] + + sum = 0.0 + val = 1.0 + + for mu in range(0, tau[0]): + for nu in range(0, tau[1]): + for vu in range(0, tau[2]): + val = 1.0 + xi = [mu,nu,vu] + for i in range(0, 3): + val *= cye(ia[i], ja[i], xi[i], ir[i]-jr[i], ie, je, n[i], ir[i]-nucleus[i]) + + xi[x] += 1 + + sum -= val * clmb(xi[0],xi[1],xi[2], 0, p, r[0], r[1], r[2] ) + + return sum * 2 * pi/p + +cdef double teifx(short[:] ia, short[:] ja, short[:] ka, short[:] la, double ie, double je, double ke, double le, \ + double[:] ir, double[:] jr, double[:] kr, double[:] lr, int[3] ra, int[3] rb, double[3] origin, int x, int center): + + cdef: + double p = ie + je + double q = ke + le + double rho = p*q/(p + q) + double[3] P, Q, r + int i, pa, pb, mu, nu, vu, psi, phi, chi + int[3] xia, xib, tau, sigma + double val = 0.0 + double term + + for i in range(0, 3): + P[i] = (ie*ir[i] + je*jr[i])/p + Q[i] = (ke*kr[i] + le*lr[i])/q + r[i] = P[i] - Q[i] + + tau[i] = ia[i] + ja[i] + 1 + ra[i] + sigma[i] = ka[i] + la[i] + 1 + rb[i] + + if (center == 0) or (center == 1): + tau[x] += 1 + else: + sigma[x] += 1 + + pa = 0 + if (center == 0) or (center == 2): + pa = 1 + pb = (pa+1) % 2 + + for mu in range(tau[0]): + for nu in range(tau[1]): + for vu in range(tau[2]): + for psi in range(sigma[0]): + for phi in range(sigma[1]): + for chi in range(sigma[2]): + xia = [mu, nu, vu] + xib = [psi, phi, chi] + term = 1.0 + for i in range(0, 3): + if (i == x): + if (center == 0 or center == 1): + term *= efx(ia[x],ja[x],xia[x],ir[x]-jr[x],ie,je,ra[x],ir[x] - origin[x], pa, pb) + term *= cye(ka[x],la[x],xib[x],kr[x]-lr[x],ke,le,rb[x],kr[x] - origin[x]) + elif (center == 2 or center == 3): + term *= cye(ia[x],ja[x],xia[x],ir[x]-jr[x],ie,je,ra[x],ir[x] - origin[x]) + term *= efx(ka[x],la[x],xib[x],kr[x]-lr[x],ke,le,rb[x],kr[x] - origin[x], pa, pb) + + else: + term *= cye(ia[i],ja[i],xia[i],ir[i]-jr[i],ie,je,ra[i],ir[i] - origin[i]) + term *= cye(ka[i],la[i],xib[i],kr[i]-lr[i],ke,le,rb[i],kr[i] - origin[i]) + + term *= pow(-1, (psi+phi+chi)) * clmb(mu+psi,nu+phi,vu+chi,0, rho,r[0], r[1], r[2]) + val += term + + return val*2*pow(pi,2.5)/(p*q*sqrt(p+q)) + + +cdef double erifx(short[:] ng, int p, int q, int r, int s, double[:,:] im, double[:,:] ic, double[:,:] ie, short[:,:] ia, double[:,:] io, \ + int x, int center): + + cdef: + double sum = 0.0 + int i, j, k, l + + for i in range(0, ng[p]): + for j in range(0, ng[q]): + for k in range(0, ng[r]): + for l in range(0, ng[s]): + sum += im[p,i]*im[q,j]*im[r,k]*im[s,l] * ic[p,i]*ic[q,j]*ic[r,k]*ic[s,l] * \ + teifx(ia[p], ia[q], ia[r], ia[s], ie[p,i], ie[q,j], ie[r,k], ie[s,l], \ + io[p], io[q], io[r], io[s], [0,0,0], [0,0,0], [0,0,0], x, center) + + return sum + +#-----------------------------------End Shared Routines -----------------------------------| + + +cpdef ocypete(object molAtom,object molBasis, double[:,:] density, double[:,:] fock): + + cdef: + int na = len(molAtom) + int nb = len(molBasis) + int ng = len(molBasis[0].co) + int i, j, k, l, m, n, p, q, r, s + +#get largest primative length + for i in range(nb): + j = len(molBasis[i].co) + if j > ng: + ng = j + + #convert atom class properties to c views + mx = np.empty([na,3], dtype = np.double) + mz = np.empty([na], dtype = np.short) + cdef: + double[:,:] alo_x = mx + short[:] alo_z = mz + for p in range(0, na): + for q in range(0, 3): + alo_x[p,q] = molAtom[p].center[q] + alo_z[p] = molAtom[p].number + + #convert basis class properties to c-variables + me = np.empty([nb,ng], dtype = np.double) + mc = np.empty([nb,ng], dtype = np.double) + mn = np.empty([nb,ng], dtype = np.double) + ma = np.empty([nb,3], dtype = np.short) + mo = np.empty([nb,3], dtype = np.double) + ml = np.empty([nb], dtype = np.short) + mp = np.empty([nb], dtype = np.short) + + cdef: + double[:,:] alo_e = me + double[:,:] alo_c = mc + double[:,:] alo_n = mn + short[:,:] alo_a = ma + double[:,:] alo_o = mo + short[:] alo = ml + short[:] ala = mp + + for p in range(0, nb): + alo[p] = len(molBasis[p].co) + ala[p] = molBasis[p].atom + for q in range(0, len(molBasis[p].co)): + alo_e[p,q] = molBasis[p].ex[q] + alo_c[p,q] = molBasis[p].co[q] + alo_n[p,q] = molBasis[p].normal[q] + for q in range(0, 3): + alo_a[p,q] = molBasis[p].momentum[q] + alo_o[p,q] = molBasis[p].center[q] + + #matrix definitions + cdef: + double ss, sk, sj, sh, si, sf, f, ra, rb, force + int cart + Sx = np.zeros([nb,nb], dtype = np.double) + Ix = np.zeros([nb,nb,nb,nb], dtype = np.double) + Hx = np.zeros([nb,nb], dtype = np.double) + Fx = np.zeros([nb,nb], dtype = np.double) + Wx = np.zeros([nb,nb], dtype = np.double) + Ex = np.zeros([nb,nb], dtype = np.double) + + Vx = np.zeros([na,3], dtype = np.double) + cdef: + double[:,:] overlapfx = Sx + double[:,:,:,:] teifx = Ix + double[:,:] oeifx = Hx + double[:,:] fockfx= Fx + double[:,:] weightedEnergy = Wx + double[:,:] energy = Ex + double[:,:] vires = Vx + + #----------------------------------------Begin derivatives ------------------------------------| + + #---------------------------------------Begin one electron-------------------------------------| + #don't need overlapfx for fock but included anyway for completeness + for atom in range(0, na): + for cart in range(0, 3): + + for p in range(0, nb): + for q in range(0, p+1): + + ss = 0.0 + sk = 0.0 + sj = 0.0 + sh = 0.0 + for i in range(0, alo[p]): + for j in range(0, alo[q]): + + f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j] + if ala[p] == atom: + ss += ovlpfx(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2], \ + alo_e[p,i], alo_e[q,j], alo_o[p,0], alo_o[p,1], alo_o[p,2], alo_o[q,0], alo_o[q,1], alo_o[q,2], \ + [0,0,0], [0,0,0], cart, 0 ) * f + + sk += kntcfx([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]], \ + alo_e[p,i], alo_e[q,j], [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \ + [0,0,0], [0,0,0], cart, 0 ) * f + + if ala[q] == atom: + ss += ovlpfx(alo_a[p,0], alo_a[p,1], alo_a[p,2], alo_a[q,0], alo_a[q,1], alo_a[q,2], \ + alo_e[p,i], alo_e[q,j], alo_o[p,0], alo_o[p,1], alo_o[p,2], alo_o[q,0], alo_o[q,1], alo_o[q,2], \ + [0,0,0], [0,0,0], cart, 1 ) * f + + sk += kntcfx([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]], \ + alo_e[p,i], alo_e[q,j], [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \ + [0,0,0], [0,0,0], cart, 1 ) * f + + sh -= clmbhfx([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]], \ + alo_e[p,i], alo_e[q,j], [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \ + alo_x[atom], [0,0,0], [0,0,0], cart ) * f * alo_z[atom] + + for r in range(0, na): + for i in range(0, alo[p]): + for j in range(0, alo[q]): + f = alo_n[p,i] * alo_n[q,j] * alo_c[p,i] * alo_c[q,j] + if ala[p] == atom: + sj -= clmbsfx([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]], \ + alo_e[p,i], alo_e[q,j], [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \ + alo_x[r], [0,0,0], [0,0,0], cart, 0 ) * f * alo_z[r] + + if ala[q] == atom: + sj -= clmbsfx([alo_a[p,0], alo_a[p,1], alo_a[p,2]], [alo_a[q,0], alo_a[q,1], alo_a[q,2]], \ + alo_e[p,i], alo_e[q,j], [alo_o[p,0], alo_o[p,1], alo_o[p,2]], [alo_o[q,0], alo_o[q,1], alo_o[q,2]], \ + alo_x[r], [0,0,0], [0,0,0], cart, 1 ) * f * alo_z[r] + + + oeifx[p,q] = oeifx[q,p] = sk + sj + sh + overlapfx[p,q] = overlapfx[q,p] = ss + + #----------------------------------------End one electron--------------------------------------| + + #---------------------------------------Begin two electron-------------------------------------| + + for p in range(0, nb): + for q in range(0, p+1): + + si = 0.0 + + i = p*(p+1)//2 + q + for r in range(0, nb): + for s in range(0, r+1): + + j = r*(r+1)//2 + s + + if i >= j: + si = 0.0 + if ala[p] == atom: + si += erifx(alo , p ,q ,r ,s ,alo_n ,alo_c ,alo_e ,alo_a , alo_o, cart, 0) + if ala[q] == atom: + si += erifx(alo , p ,q ,r ,s ,alo_n ,alo_c ,alo_e ,alo_a , alo_o, cart, 1) + if ala[r] == atom: + si += erifx(alo , p ,q ,r ,s ,alo_n ,alo_c ,alo_e ,alo_a , alo_o, cart, 2) + if ala[s] == atom: + si += erifx(alo , p ,q ,r ,s ,alo_n ,alo_c ,alo_e ,alo_a , alo_o, cart, 3) + + teifx[p,q,r,s] = teifx[p,q,s,r] = teifx[q,p,s,r] = teifx[q,p,r,s] = \ + teifx[r,s,p,q] = teifx[r,s,q,p] = teifx[s,r,q,p] = teifx[s,r,p,q] = si + + #----------------------------------------End two electron--------------------------------------| + + #-------------------------------------------build Fock-----------------------------------------| + + for p in range(0, nb): + for q in range(0, nb): + sf = 0.0 + for r in range(0, nb): + for s in range(0, nb): + sf += (2.0 * teifx[p,q,r,s] - teifx[p,s,q,r]) * density[s,r] + + fockfx[p,q] = oeifx[p,q] + sf + + #|----------------------------------------build energy-----------------------------------------| + + force = 0.0 + for p in range(0, nb): + for q in range(0, nb): + force -= density[p,q] * (fockfx[q,p] + oeifx[q,p]) + + #|-----------------------------------density weighted energy-----------------------------------| + for p in range(0, nb): + for q in range(0, nb): + energy[p,q] = 0.0 + for r in range(0, nb): + energy[p,q] += fock[p,r] * density[r,q] + for p in range(0, nb): + for q in range(0, nb): + weightedEnergy[p,q] = 0.0 + for r in range(0, nb): + weightedEnergy[p,q] += density[p,r] * energy[r,q] + + #|-------------------------------------overlap contribution------------------------------------| + + for p in range(0, nb): + for q in range(0, nb): + force += 2.0 * overlapfx[p,q] * weightedEnergy[q,p] + + #|---------------------------------------nuclear repulsion-------------------------------------| + + for i in range(0, na): + ra = sqrt((alo_x[atom,0] - alo_x[i,0])*(alo_x[atom,0] - alo_x[i,0]) + (alo_x[atom,1] - alo_x[i,1])*(alo_x[atom,1] - alo_x[i,1]) + \ + (alo_x[atom,2] - alo_x[i,2])*(alo_x[atom,2] - alo_x[i,2])) + rb = alo_x[atom,cart] - alo_x[i,cart] + if ra != 0: + force += rb * alo_z[i] * alo_z[atom]/(ra*ra*ra) + #|------------------------------------------final forces---------------------------------------| + if abs(force) > 1e-12: + vires[atom,cart] = force + + return Vx diff --git a/source/post.py b/source/post.py new file mode 100644 index 0000000..50cd273 --- /dev/null +++ b/source/post.py @@ -0,0 +1,504 @@ +from __future__ import division +from scipy.linalg import fractional_matrix_power as fractPow +from numpy.linalg import solve, eigvals, norm +from numpy import zeros, dot, trace, eye, mean, asarray, sqrt, zeros_like, round, einsum, argsort +from view import postSCF +from mp import mp2UnrelaxedDensity +from atom import gaugeCenter, getConstant +from integral import mu, buildEriMO, q, electricField, iEri, expandEri + +def charges(D, S, atoms, bases): + #currently Mulliken -m , Lowdin - l + + #Mulliken charges + mulliken(D, S, atoms, bases) + + #Lowdin charges + lowdin(D, S, atoms, bases) + +def mulliken(D, S, atoms, bases): + #compute a mulliken population analysis + n = D.shape[0] + orbitalPopulation = zeros(n) + + #orbital populations + for i in range(0, n): + for j in range(0, n): + orbitalPopulation[i] += 2.0 * D[i,j] * S[i,j] + + #gross atomic population - orbital reduced to atoms + m = len(atoms) + grossAtomicPopulation = zeros(m) + for i in range(0, n): + grossAtomicPopulation[bases[i].atom] += orbitalPopulation[i] + + #write results to output file + postSCF([orbitalPopulation, bases, grossAtomicPopulation, atoms], 'mulliken') + + return grossAtomicPopulation + +def lowdin(D, S, atoms, bases): + #compute the lowdin population analysis + n = D.shape[0] + m = len(atoms) + grossAtomicPopulation = zeros(m) + + U = fractPow(S, 0.5) + + #gross atomic population - orbital reduced to atoms + for i in range(0, n): + grossAtomicPopulation[bases[i].atom] += 2.0 * dot(dot(U, D) ,U)[i,i] + + + #write results to output file + postSCF([grossAtomicPopulation, atoms], 'lowdin') + + return grossAtomicPopulation + +def bondOrder(D, S, atoms, basis): + #compute Mayer bond orders + + beta_density = alpha_density = D + alpha_mayer = dot(alpha_density, S) ; beta_mayer = dot(beta_density, S) + + nBasis = D.shape[0] + nAtoms = len(atoms) + + bond_orders = zeros((nAtoms, nAtoms)) + valence = zeros(nAtoms) + + for mu in range(nBasis): + for nu in range(mu): + + atom_mu = basis[mu].atom + atom_nu = basis[nu].atom + + if atom_mu == atom_nu: continue + + alpha = alpha_mayer[mu,nu] * alpha_mayer[nu,mu] + beta = beta_mayer[mu,nu] * beta_mayer[nu,mu] + + bond_orders[atom_mu, atom_nu] += 2 * (alpha + beta) + bond_orders[atom_nu, atom_mu] += 2 * (alpha + beta) + + for i in range(nAtoms): + for j in range(nAtoms): + + valence[i] += bond_orders[i,j] + + postSCF([atoms, round(bond_orders,4), round(valence,2)],'bonds') + + +def energyPartition(E, N, D, T, V, G, e, en): + #energy partitioning + partition = {'e' : [E, 'electronic', 't+v + g'], 'n' : [N, 'nuclear', 'n'], 'k' : [0.0, 'kinetic', 't'], 'j' : [0.0, 'coulomb', 'v'], \ + '1' : [0.0, 'one electron', 't+v'], '2' : [0.0, 'two electron', 'g'] ,'t' : [0.0, 'total', 't+v + 2g + n'] , \ + 'p' : [0.0, ' total potential', 'v + g + n'], 'tk' : [0.0, ' total kinetic', 't'], 'v' : [0.0, 'viral ratio', '(v+g+n)/t'], \ + 'b' : [0.0, 'bare hamiltonian', 't+v'] , 'e~' : [0.0, 'orbital', '2ε']} + n = D.shape[0] + + k = v = g = 0 + for i in range(0, n): + for j in range(0, n): + d = 2*D[i,j] + k += d*T[i,j] + v += d*V[i,j] + g += d*G[i,j] + + partition['k'][0] = k + partition['j'][0] = v + partition['1'][0] = v+k + partition['2'][0] = g*0.5 + partition['t'][0] = k + v + g*0.5 + partition['n'][0] + partition['p'][0] = v + g*0.5 + partition['n'][0] + partition['tk'][0] = k + partition['v'][0] = partition['p'][0] / k + partition['b'][0] = k+v + #orbital energies doubly occupied + sum = 0.0 + for i in range(0, int(en/2)): + sum += e[i] + partition['e~'][0] = 2*sum + + postSCF(partition, 'energy') + +def dipoleComponent(atoms, bases, type, gauge): + #compute dipole matrices + n = len(bases) + dipole = zeros((n,n)) + + gaugeOrigin = gaugeCenter(atoms, gauge) + + for i in range(0, n): + for j in range(i, -1, -1): + dipole[i,j] = mu(bases[i], bases[j], gaugeOrigin, type) + if i != j: + dipole[j,i] = dipole[i,j] + + return dipole + + +def buildDipole(atoms, bases, density, gauge, engine = 'aello'): + #compute the components of the dipole moment + + dipoles = zeros(4) + + if engine == 'aello': + import aello + dipoles[:3] = aello.aello(atoms, bases, 'dipole', density, gauge) + + dipoles[3] = dipoles[0]*dipoles[0] + dipoles[1]*dipoles[1] + dipoles[2]*dipoles[2] + + elif engine == 'native': + gaugeOrigin = gaugeCenter(atoms, gauge) + cartesians = ('x', 'y', 'z') + + for dim in range(0, 3): + for i in range(0, len(atoms)): + #nuclear and gauge displacement + dipoles[dim] += atoms[i].number * (atoms[i].center[dim] - gaugeOrigin[dim]) + + #electronic + dipoles[dim] += -2.0 * trace(dot(density, dipoleComponent(atoms, bases, cartesians[dim], gauge))) + dipoles[3] += dipoles[dim]*dipoles[dim] + + #dipoles has [0,1,2] = electron dipole, [3]=square of resultant + postSCF(dipoles, 'dipole') + + return dipoles + +def buildMp2Dipole(atoms, bases, gauge, c, e, eri, nOccupied): + #compute the mp2 level dipole from the unrelaxed mp2 density matrix + + #get electric and nuclear dipole components + hfDipoleElectric = asarray([dipoleComponent(atoms, bases, type ,gauge) for type in ['x','y','z']]) + charges = [a.number for a in atoms] + centers = [a.center for a in atoms] + hfDipoleNuclear = einsum('i,ix->x', charges, centers, optimize=True) + + #ao to mo basis + mu_mo = einsum('rp,xrs,sq->xpq', c, hfDipoleElectric, c, optimize=True) + + #get unrelaxed mp2 density + nbf = len(bases) + mp2Density = mp2UnrelaxedDensity(c, e, eri, nbf, nOccupied) + + mp2DipoleElectric = einsum('xij,ij->x', mu_mo, mp2Density, optimize=True) + mp2Dipole = list(hfDipoleNuclear - mp2DipoleElectric) + + mp2Dipole.append(norm(mp2Dipole)**2) + + postSCF(mp2Dipole, 'mp2-dipole') + + return mp2Dipole + +def quadrupoleComponent(atoms, bases, direction, gauge): + #compute quadrupole matrices + n = len(bases) + qupole = zeros((n,n)) + + gaugeOrigin = gaugeCenter(atoms, gauge) + for i in range(0, n): + for j in range(i, -1, -1): + qupole[i,j] = -q(bases[i], bases[j], gaugeOrigin, direction) + if i != j: + qupole[j,i] = qupole[i,j] + + return qupole + +def buildQuadrupole(atoms, bases, density, gauge): + #build the quadrupole + + + quadrupoleMoments = zeros(14) + cartesians = {0 : ['xx',0,0], 1 : ['yy',1,1], 2 : ['zz',2,2], 3 : ['xy',0,1], 4 : ['yz',1,2], 5 : ['zx',2,0]} + + for axis in range(len(cartesians)): + + #nuclear + for atom in range(len(atoms)): + quadrupoleMoments[axis] += atoms[atom].center[cartesians[axis][1]]*atoms[atom].center[cartesians[axis][2]]*atoms[atom].number + + quadrupoleMoments[axis] += 2.0 * trace(dot(density, quadrupoleComponent(atoms, bases, cartesians[axis][0], gauge))) + + #quadrupoles has [xx,yy,zz,xy,yz,zx] + quadrupoleMoments = quadrupoleMoments * getConstant('bohr->angstrom') * getConstant('au->debye') + + #traceless + traceless = (quadrupoleMoments[0]+quadrupoleMoments[1]+quadrupoleMoments[2])/3.0 + for i in range(3): + quadrupoleMoments[6+i] = quadrupoleMoments[i] - traceless + + #eigenvalues -construct traceless tensor + quad = zeros((3,3)) + quad[0,1] = quadrupoleMoments[3] + quad[0,2] = quadrupoleMoments[5] + quad[1,2] = quadrupoleMoments[4] + quad = quad + quad.T + for i in range(3): + quad[i,i] = quadrupoleMoments[i+6] + + q = eigvals(quad) + q = q[argsort(q)][::-1] + + for i in range(3): + quadrupoleMoments[9+i] = q[i] + + #amplitude and asymmetry + quadrupoleMoments[12] = sqrt(q[0]*q[0]+q[1]*q[1]+q[2]*q[2]) + quadrupoleMoments[13] = (q[1]-q[2])/q[0] + + #[0-5 are quadrupole, 6-8 traceless diagonals, 9-11 eigenvalues of traceless, 12 amplitude, 13 asymmetry] + postSCF(quadrupoleMoments, 'quad') + + return quadrupoleMoments + + +def polarizabilities(atoms, bases, c, f, ERI, nOccupied, gauge): + + nBasis = c.shape[0] + nVirtual = nBasis - nOccupied + nRotation = nOccupied * nVirtual + + #fock to molecular basis + f = dot(c.T, f).dot(c) + + #2-electron repulsion integrals to molecular basis tensor + eri = buildEriMO(c, ERI) + eriMO = expandEri(eri, nBasis) + + unit = eye(nBasis) + #construct orbital rotation matrices + alpha = zeros((nBasis, nBasis, nBasis, nBasis)) + for i in range(0, nBasis): + for j in range(0, nBasis): + for a in range(0, nBasis): + for b in range(0, nBasis): + alpha[i,a,j,b] += unit[i,j] * f[a,b] - unit[a,b] * f[i,j] \ + + 2.0 * eriMO[a,i,j,b] - eriMO[j,i,a,b] + + beta = zeros((nBasis, nBasis, nBasis, nBasis)) + for i in range(0, nBasis): + for j in range(0, nBasis): + for a in range(0, nBasis): + for b in range(0, nBasis): + beta[i,a,j,b] += 2.0 * eriMO[a,i,j,b] - eriMO[a,j,b,i] + + #electronic Hessian + hessian = alpha + beta + + #transform Hessian to square form + h = zeros((nRotation, nRotation)) + for i in range(0, nOccupied): + for a in range(nOccupied, nBasis): + for j in range(0, nOccupied): + for b in range(nOccupied, nBasis): + h[i*(nVirtual)+(a-nOccupied),j*(nVirtual)+(b-nOccupied)] = hessian[i,a,j,b] + + #get dipole tensors + dipoleTensor = [] + cartesianDict = {0:'x', 1:'y', 2:'z'} + for direction in range(0, 3): + dipoleTensor.append(-2.0 * dipoleComponent(atoms, bases, cartesianDict[direction], gauge)) + + #responses + responseTensor = [] + for p in range(0, len(dipoleTensor)): + dipoleTensor[p] = dot(c.T, dipoleTensor[p]).dot(c) + i = 0 + ravelTensor= zeros(nOccupied*nVirtual) + for r in range(0, nOccupied): + for s in range(0, nVirtual): + ravelTensor[i] = dipoleTensor[p][r,s+nOccupied] + i += 1 + responseTensor.append(ravelTensor) + + responses = [] + for perturbation in responseTensor: + responses.append(solve(h, -perturbation)) + + #polarizabilities + polarizabilities = zeros((3, 3)) + for i in range(3): + for j in range(3): + polarizabilities[i, j] = -dot(responseTensor[i], responses[j]) + + principalComponents = eigvals(polarizabilities) + isotropicPolarizability = mean(principalComponents) + + postSCF([principalComponents, isotropicPolarizability], 'po') + + return principalComponents, isotropicPolarizability, asarray(responses), asarray(dipoleTensor)*0.5 + +def electricFieldNuclear(atoms, gauge): + #compute the nuclear contribution to electric field + + gaugeOrigin = gaugeCenter(atoms, gauge) + n = len(atoms) + + coordinates = zeros((n,3)) + field = zeros(4) + + for atom in range(n): + for axis in range(3): + coordinates[atom, axis] = atoms[atom].center[axis] - gaugeOrigin[axis] + + r2 = coordinates[atom,0]*coordinates[atom,0] + coordinates[atom,1]*coordinates[atom,1] + \ + coordinates[atom,2]*coordinates[atom,2] + r = sqrt(r2) + + if r < 1e-10: continue + + #field + field[0] += atoms[atom].number * coordinates[atom,0] / (r2 * r) + field[1] += atoms[atom].number * coordinates[atom,1] / (r2 * r) + field[2] += atoms[atom].number * coordinates[atom,2] / (r2 * r) + #potential + field[3] += atoms[atom].number / r + + return field + +def buildElectricField(atoms, bases, density, gauge): + #compute expectation values for electric field components and electric potential + + electrics = zeros(8) + + cartesians = ('x', 'y', 'z', 'p') + for dim in range(0, 4): + + electrics[dim] = 2.0 * trace(dot(density, electricField(atoms, bases, cartesians[dim], gauge))) + + #get nuclear contributions + electrics[4:] = electricFieldNuclear(atoms, gauge) + + return electrics + +def hyperPolarizabilities(atoms, bases, c, eri, e, f, nOccupied, gauge): + + #get responses and dipole tensors + _, _, responses , dipoles_mo = polarizabilities(atoms, bases, c, f, eri, nOccupied, gauge) + + #number of components + nComponents = responses.shape[0] + + nOrbitals = c.shape[0] + nVirtual = nOrbitals - nOccupied + + #reshape responses (3, vo) -> (3,o+v,o+v) compatible with dipoles + u = zeros_like(dipoles_mo) + uv = zeros((nComponents, nOccupied, nVirtual)) + for comp in range(nComponents): + k = 0 + for p in range(nOccupied): + for q in range(nVirtual): + u[comp, p, nOccupied+q] = 0.5 * responses[comp, k] + uv[comp, p, q] = responses[comp, k] + u[comp, q + nOccupied, p] = -0.5 * responses[comp, k] + k += 1 + + #get occupied and virtual c matrices + co = zeros((nOrbitals, nOccupied)) + co = c[:, :nOccupied] + cv = zeros((nOrbitals, nVirtual)) + cv = c[:,nOccupied:] + + #define matrices needed for fock build + r = zeros((nOrbitals, nOccupied)) + V = zeros_like(c) + T = zeros_like(c) + G = zeros_like(u) + + for comp in range(nComponents): + + #build right density component from responses + r = dot(uv[comp], cv.T).T + #build density + d = dot(co, r.T) + + #build new V and T with response density + for i in range(0, nOrbitals): + for m in range(0, nOrbitals): + V[i,m] = 0.0 + T[i,m] = 0.0 + for k in range(0, nOrbitals): + for l in range(0, nOrbitals): + V[i,m] += 0.5 * d[k,l] * eri[iEri(i,m,k,l)] + T[i,m] += 0.5 * d[k,l] * eri[iEri(i,k,m,l)] + + #build response Fock + F = (c.T).dot(4 * V - T.T - T).dot(c) + + #add dipole field + G[comp,...] = F + dipoles_mo[comp] + + #epsilon + epsilon = G.copy() + + #static case + omega = 0.0 + + #left multiply by orbital energies + eUl = zeros((nOrbitals, nOrbitals)) + eUr = zeros((nOrbitals, nOrbitals)) + for comp in range(nComponents): + for p in range(nOrbitals): + for q in range(nOrbitals): + eUl[p,q] = (e[p] + omega) * u[comp,p,q] + #right multiply by orbital energies + for p in range(nOrbitals): + for q in range(nOrbitals): + eUr[p,q] = u[comp,p,q] * e[q] + + epsilon[comp, :,:] += (eUl - eUr) + + #use Kleinman symmetry to reduce calculations + syma = [0,1,2,0,0,1] + symb = [0,1,2,1,2,2] + + #define tensor for final results + hyperpolarizability = zeros((6, 3)) + + ''' + hyperpolarizability tensor is + [xxx xxy xxz] + [yyx yyy yyz] + [zzx zzy zzz] + [xyx xyy xyz] + [xzx xzy xzz] + [yzx yzy yzz] + ''' + for r in range(6): + b = syma[r] + c = symb[r] + for a in range(3): + + traceLeft = 2.0 * trace(dot(u[a,:,:], dot(G[b,:,:], u[c,:,:]))[:nOccupied, :nOccupied]) + \ + 2.0 * trace(dot(u[a,:,:], dot(G[c,:,:], u[b,:,:]))[:nOccupied, :nOccupied]) + \ + 2.0 * trace(dot(u[c,:,:], dot(G[a,:,:], u[b,:,:]))[:nOccupied, :nOccupied]) + + traceRight = trace(dot(u[c,:,:], dot(u[b,:,:], epsilon[a,:,:]))[:nOccupied, :nOccupied]) + \ + trace(dot(u[b,:,:], dot(u[c,:,:], epsilon[a,:,:]))[:nOccupied, :nOccupied]) + \ + trace(dot(u[c,:,:], dot(u[a,:,:], epsilon[b,:,:]))[:nOccupied, :nOccupied]) + \ + trace(dot(u[a,:,:], dot(u[c,:,:], epsilon[b,:,:]))[:nOccupied, :nOccupied]) + \ + trace(dot(u[b,:,:], dot(u[a,:,:], epsilon[c,:,:]))[:nOccupied, :nOccupied]) + \ + trace(dot(u[a,:,:], dot(u[b,:,:], epsilon[c,:,:]))[:nOccupied, :nOccupied]) + + hyperpolarizability[r, a] = -2.0 * (traceLeft - traceRight) + + #calculate defined propeties + beta = zeros(3) + #beta[i] = ixx+iyy+izz + beta[0] = (hyperpolarizability[0,0]+hyperpolarizability[1,0]+hyperpolarizability[2,0]) + beta[1] = (hyperpolarizability[0,1]+hyperpolarizability[1,1]+hyperpolarizability[2,1]) + beta[2] = (hyperpolarizability[1,2]+hyperpolarizability[1,2]+hyperpolarizability[2,2]) + + #magnitude + amplitude = sqrt(beta[0]*beta[0] + beta[1]*beta[1] + beta[2]*beta[2]) + + #parallel and perpendicular components wrt z axis + parallel = 0.2 * beta[2] + perpendicular = 0.6 * beta[2] + + postSCF([beta, amplitude, parallel, perpendicular], 'hyper') + + return [beta, amplitude, parallel, perpendicular], hyperpolarizability diff --git a/source/project.hpf b/source/project.hpf new file mode 100644 index 0000000..e9a8dd7 --- /dev/null +++ b/source/project.hpf @@ -0,0 +1,173 @@ +name=h2o +matrix=c +basis=dz +diis=on +post={} +cogus={} +#Crawford geometry + +O1 8 0.000000000000 -0.143225816552 0.000000000000 +H1 1 1.638036840407 1.136548822547 0.000000000000 +H2 1 -1.638036840407 1.136548822547 0.000000000000 + +end +#---------------------------------------------- +name=moxy +matrix=c +basis=sto-3g +post={} +units=angstrom +#Psi4 +C1 6 0.152133 -0.035800 0.485797 +C2 6 -1.039475 0.615938 -0.061249 +C3 6 1.507144 0.097806 -0.148460 +O1 8 -0.828215 -0.788248 -0.239431 +H1 1 0.153725 -0.249258 1.552136 +H2 1 -1.863178 0.881921 0.593333 +H3 1 -0.949807 1.214210 -0.962771 +H4 1 2.076806 -0.826189 -0.036671 +H5 1 2.074465 0.901788 0.325106 +H6 1 1.414895 0.315852 -1.212218 + +end +#--------------------------------------------- +name=nwchem +matrix=c +basis=6-31g +units=angstrom +post={rp} +#nwchem water coordinates + +O1 8 0.00000000 -0.00001441 -0.34824012 +H1 1 -0.00000000 0.76001092 -0.93285191 +H2 1 0.00000000 -0.75999650 -0.93290797 + +end +#---------------------------------------------- +name=h2 +matrix=c +diis=off +units=angstrom +post={} +basis=3-21g +#h2 in angstroms + +H1 1 0.00000000 0.00000000 0.00000000000 +H2 1 0.00000000 0.00000000 0.74 + +end +#---------------------------------------------- +name=h2 +matrix=c +diis=off +basis=sto-3g +post={} +#h2 in bohr + +H1 1 0.00000000000000 0.00000000 0.00000000000 +H2 1 1.39838996182773 0.00000000 0.00000000000 + +end +#---------------------------------------------- +name=hf +units=angstrom +matrix=c +#hf in angstrom + +H1 1 0.0 0.0 0.0 +F1 9 0.0 0.0 0.96 + +end +#---------------------------------------------- +name=ch4 +matrix=c +#methane Crawford coordinates + +C1 6 -0.000000000000 0.000000000000 0.000000000000 +H1 1 1.183771681898 -1.183771681898 -1.183771681898 +H2 1 1.183771681898 1.183771681898 1.183771681898 +H3 1 -1.183771681898 1.183771681898 -1.183771681898 +H4 1 -1.183771681898 -1.183771681898 1.183771681898 + +end +#--------------------------------------------- +name=methylamine +matrix=z +basis=sto-3g +units=bohr +post={ch} +#methylamine z-file + +C +N 1 R1 +H 1 H1 2 109.4712 +H 1 H1 2 109.4712 3 120 +H 1 H1 2 109.4712 3 240 +H 2 H2 1 109.4712 3 60 +H 2 H2 1 109.4712 3 300 + +R1 2.77788276200915 +H1 2.05979061944896 +H2 1.90861332627839 + +end +#----------------------------------------------- +name=h2o +matrix=z +basis=sto-3g +units=angstrom +post={ch} +#h2o z file format + +O +H 1 0.9435 +H 1 0.9435 2 105.9443 + +end +#---------------------------------------------- +name=acetaldehyde +matrix=c +#acetaldehyde Crawford + +C1 6 0.000000000000 0.000000000000 0.000000000000 +C2 6 0.000000000000 0.000000000000 2.845112131228 +O1 8 1.899115961744 0.000000000000 4.139062527233 +H1 1 -1.894048308506 0.000000000000 3.747688672216 +H2 1 1.942500819960 0.000000000000 -0.701145981971 +H3 1 -1.007295466862 -1.669971842687 -0.705916966833 +H4 1 -1.007295466862 1.669971842687 -0.705916966833 + +end +#---------------------------------------------- +name=h +matrix=c +diis=off +multiplicity=2 +#hydrogen uhf test + +H1 1 0.00000000000000 0.00000000 0.00000000000 + +end +#---------------------------------------------- +name=ch2 +basis=dz +charge=0 +multiplicity=3 +matrix=c + +C1 6 0.0 0.0 -0.11431662956154022 +H1 1 0.0 -1.8694696463993394 0.6805742619435168 +H2 1 0.0 1.8694696463993394 0.6805742619435168 + +end +#---------------------------------------------- +name=oh- +basis=dz +multiplicity=2 +matrix=c + +O 8 0.000000000 0.000000000 0.000000000 +H 1 1.85192184133943 0.0000 0.000000000 + +end +#---------------------------------------------- diff --git a/source/rESP.py b/source/rESP.py new file mode 100644 index 0000000..fe7ae48 --- /dev/null +++ b/source/rESP.py @@ -0,0 +1,443 @@ +from __future__ import division +import rhf +from numpy import zeros,pi, asarray, trace, dot, savez, load, all, sqrt +from numpy.linalg import norm, solve +from atom import getConstant, getNumber, bondMatrix +from post import buildElectricField +from view import pre, post, postSCF +import os + +def writerESP(mData, rData, qc, qr, metrics, stage): + #write results to 'harpy.html' + + if stage == '1': + name = mData['name'] + pre(name, 'rhf') + postSCF([mData, rData, qc, qr, metrics, stage], 'resp') + if stage == '2': + postSCF([mData, rData, qc, qr, metrics, stage], 'resp') + + +def deltaRMS(esp, qr , invRadii): + #calculate root mean square difference between classical restrained charges + #and qm derived charges + + rms = 0.0 + for p in range(invRadii.shape[0]): + + # q/r classical + q = 0.0 + for atom in range(invRadii.shape[1]): + q += qr[atom] * invRadii[p, atom] + + rms += pow(q - esp[p],2) + + return sqrt(rms/esp.shape[0]) + + + +def equiDistribution(points=45, variant='con'): + + from math import cos, sin, pi, sqrt + + surfacePoints = [] + + if variant == 'fib': + #based on fibonacci sphere algorithm + + dTheta = pi*(3.0-sqrt(5.0)) + dZ = 2.0/points + theta = 0.0 + z = 1.0 - dZ/2.0 + + for i in range(points): + + r = sqrt(1.0 - z*z) + p = (cos(theta)*r, sin(theta)*r, z) + surfacePoints.append(p) + + #update positions + z = z - dZ + theta += dTheta + + elif variant == 'con': + #connolly algorithm + + nxy = int(sqrt(pi*points)) + nz = int(nxy/2) + + tol = 1e-10 + nu = 0 + + for i in range(nz + 1): + + phi = pi*i/nz + z = cos(phi) + xy = sin(phi) + nh = int(nxy * xy + tol) + + if nh < 1: nh = 1 + + for j in range(nh): + + psi = 2*pi*j/nh + x = cos(psi)*xy + y = sin(psi)*xy + + if nu >= points: return surfacePoints + + nu += 1 + surfacePoints.append((x , y , z )) + + return surfacePoints + +def surfaceView(distribution): + #plot the molecular VdW surface + + import pylab as p + import mpl_toolkits.mplot3d.axes3d as p3 + + fig=p.figure() + ax = p3.Axes3D(fig) + x_s=[];y_s=[]; z_s=[] + + for i in range(len(distribution)): + x_s.append( distribution[i][0]); y_s.append( distribution[i][1]); z_s.append( distribution[i][2]) + + ax.scatter3D( asarray( x_s), asarray( y_s), asarray( z_s)) + + ax.set_xlabel('X'); ax.set_ylabel('Y'); ax.set_zlabel('Z') + ax.view_init(azim=60, elev=60) + p.show() + +def respData(molAtom, molBasis, molData, options): + #restrained electrostatic potentials + + vdwRadius = [1.20, \ + 1.20, 1.37, 1.45, 1.45, 1.50, 1.50, 1.40, 1.35, + 1.30, 1.57, 1.36, 1.24, 1.17, 1.80, 1.75, 1.70 ] + + if 'points' not in options: options['points'] = ['density', 1.0] + if 'shell' not in options : options['shell'] = [1, 0.0, 1.0] + if 'file' not in options : options['file'] = ['w', 'esp.npz', 'clear'] + if 'constrain' not in options: options['constrain'] = [] + if 'radii' not in options: options['radii'] = [] + if 'sphere' not in options: options['sphere'] = 'con' + if 'view' not in options: options['view'] = False + + #work in Angstroms + charge = [molData['charge']] + nAtoms = len(molAtom) + if options['radii'] != []: + for i in options['radii'] : + vdwRadius[getNumber(i[0])-1] = i[1] + + #geometry and Van der Waals scaled to bohr + geo = zeros((nAtoms,3)) + radii = zeros(nAtoms) + + for i in range(nAtoms): + geo[i,:] = molAtom[i].center[:] * getConstant('bohr->angstrom') + radii[i] = vdwRadius[molAtom[i].number - 1] + + distribution = [] + esp = [] + + #number of points to evaluate if not function of radius + if options['points'][0] == 'atom': + nPoints = int(options['points'][1]) + + for iShell in range(options['shell'][0]): + + scaleFactor = options['shell'][2] + (iShell * options['shell'][1]) + + for i in range(nAtoms): + + #effective shell radius accounting for scale factor + shellRadius = radii[i] * scaleFactor + + #density depends on radius - recalculate for scaling + if options['points'][0] == 'density': + nPoints = int(4.0 * pi * shellRadius * shellRadius * options['points'][1]) + + surface = asarray(equiDistribution(points = nPoints, variant = options['sphere']) ) + + #translate to atom center + for j in range(len(surface)): + surface[j][:] = surface[j][:] * shellRadius + geo[i,:] + + #remove points inside other atoms + for j in range(len(surface)): + + valid = True + + for k in range(nAtoms): + + if i == k: continue + + if (norm(surface[j][:] - geo[k,:])) < (radii[k] * scaleFactor): + valid = False + break + + if valid: + distribution.append(surface[j]) + + if options['view']: surfaceView(distribution) + + #build [points, atoms] matrix of inverse distances for each point to each atom + #switch to bohr for electrostatic calculation + invRadii = zeros((len(distribution), nAtoms)) + for p in range(len(distribution)): + for atom in range(nAtoms): + invRadii[p, atom] = 1.0/norm(distribution[p][:] - geo[atom][:]) + invRadii[p, atom] *= getConstant('bohr->angstrom') + + #we need density so do a scf calculation + e = rhf.scf(molAtom, molBasis, molData,[]) + + #compute the electrostatic potentials + for p in range(len(distribution)): + + x, y, z = distribution[p] / getConstant('bohr->angstrom') + t = buildElectricField(molAtom, molBasis, rhf.density, asarray([x, y, z])) + + #build return electric components [0-3] and nuclear [4-7], field first then potential + esp.append(t[7]-t[3]) + + if options['file'][0] == 'w': + savez(options['file'][1], distribution = distribution, esp = esp, inv = invRadii, n = nPoints) + + +def buildmatrix(invRadii, constraintLength, nAtoms): + + n = nAtoms + 1 + constraintLength + a = zeros((n,n)) + + for i in range(nAtoms): + for j in range(nAtoms): + for k in range(invRadii.shape[0]): + a[i,j] += invRadii[k,i] * invRadii[k,j] + + a[:nAtoms, nAtoms] = 1.0 + a[nAtoms, :nAtoms] = 1.0 + + return a + +def buildvector(invRadii, esp, constraintLength, nAtoms, charge): + + n = nAtoms + 1 + constraintLength + b = zeros(n) + for i in range(nAtoms): + for j in range(invRadii.shape[0]): + b[i] += esp[j] * invRadii[j,i] + + b[nAtoms] = charge + + return b + + +def doRestraint(q, a, parameters, z): + #apply hyperbolic restraints + + A = a.copy() + + for atom in range(len(z)): + + if not parameters['h'] or z[atom] != 1 : + A[atom, atom] = a[atom, atom] + (parameters['a'] / sqrt(q[atom]*q[atom] + parameters['b']*parameters['b'])) + + return A + +def carbonGroups(molAtom): + #get all groups with hydrogen attached to carbon + + groups = [] + for atom in range(len(molAtom)): + + if molAtom[atom].number == 6: + group = [] + #get connections + row = bondMatrix(molAtom)[atom,:] + for i in range(row.shape[0]): + if (row[i] == 1) and (molAtom[i].number == 1): group.append(i+1) + + groups.append([atom+1, group]) + + return groups + +def stageTwoConstraints(options, groups, nAtoms, q): + #translate groups into constraints + + if 'a' in options['stage two']: options['restrain']['a'] = options['stage two']['a'] + else: options['restrain']['a'] = 0.001 + if 'b' in options['stage two']: options['restrain']['b'] = options['stage two']['b'] + + #build new constraints + options['constrain'] = [] + atomlist = list(range(1, nAtoms+1)) + + #for each CH grouping constrain hydrogens to be equal [0, [-n,m,..]] + for group in groups: + options['constrain'].append([0, group[1]]) + for i in group[1]: atomlist.remove(i) + atomlist.remove(group[0]) + options['constrain'][-1][1][0] *= -1 + + #other atoms take restained charge + for i in atomlist: + options['constrain'].append([q[i-1],[i]]) + + return options + +def doRestraintIteration(q, a, b, parameters, z): + #main loop for restraints + + Q = q.copy() + nAtoms = len(z) + iteration = 0 + + while iteration < parameters['cycles'] : + + iteration += 1 + A = doRestraint(q, a, parameters, z) + + q = solve(A, b) + + if sqrt( max(pow(q[:nAtoms] - Q[:nAtoms],2))) < parameters['tol'] : return q[:nAtoms], iteration + + Q = q.copy() + + return -1, iteration + +def processConstraints(option): + #expand equal charge constraints + + if option == [] : return [], [] + + chargeGroup = [] + indexGroup = [] + + for i in option: + if i[1][0] > 0: + chargeGroup.append(i[0]) + indexGroup.append(i[1]) + else: + for j in range(len(i[1])-1): + chargeGroup.append(0) + group = [] + group.append(-abs(i[1][j])) + group.append((i[1][j+1])) + indexGroup.append(group) + + return chargeGroup, indexGroup + +def rESPsolve(molAtom, nAtoms, charge, options, invRadii, esp): + #do the constraint and restraint solve + + #process constraints + conCharge, conIndex = processConstraints(options['constrain']) + + constraintLength = len(conCharge) + + #construct a-matrix with total charge constraints + a = buildmatrix(invRadii, constraintLength, nAtoms) + b = buildvector(invRadii, esp, constraintLength, nAtoms, charge) + + #add applied constraints + for i in range(constraintLength): + b[nAtoms +1+i] = conCharge[i] + + for j in conIndex[i] : + if j > 0: + a[nAtoms+1+i, j-1] = 1 + a[j-1, nAtoms+1+i] = 1 + else: + a[nAtoms+1+i, -j-1] = -1 + a[-j-1, nAtoms+1+i] = -1 + + #remove zero rows or columns from a + a = a[~all(a == 0, axis=1)] + a = a[~all(a == 0, axis=0)] + + #solve + try: + q = solve(a,b) + except: + print('solve failure in rESP') + exit('solve') + + constrainedCharges = q[:nAtoms] + + #atoms types + z = zeros(nAtoms) + for atom in range(nAtoms): + z[atom] = molAtom[atom].number + + if 'restrain' in options: + q, nCycles = doRestraintIteration(q, a, b, options['restrain'], z) + if q[0] == -1: + print ('restraint iteration failure in rESP') + exit('iteration') + + restrainedCharges = q[:nAtoms] + + rms = deltaRMS(esp, restrainedCharges, invRadii) + + else: rms = deltaRMS(esp, constrainedCharges, invRadii) + + return constrainedCharges, restrainedCharges, nCycles, rms + +def restrainedESP(molAtom, molBasis, molData, options): + + #get molecular objects and options - passed values + + nAtoms = len(molAtom) + charge = molData['charge'] + + if options['file'][0] == 'w': + + respData(molAtom, molBasis, molData, options ) + options['file'][0] = 'r' + + + if options['file'][0] == 'r': + #get data from npz file + data = load(options['file'][1]) + distribution = data['distribution'] + esp = data['esp'] + invRadii = data['inv'] + nPoints = data['n'] + + #restraint options (set defaults if necessary) + if 'restrain' not in options: options['restrain'] = {} + else: + if 'a' not in options['restrain']: options['restrain']['a'] = 5e-4 + if 'b' not in options['restrain']: options['restrain']['b'] = 0.1 + if 'h' not in options['restrain']: options['restrain']['h'] = True + if 'tol' not in options['restrain']: options['restrain']['tol'] = 1e-6 + if 'cycles' not in options['restrain']: options['restrain']['cycles'] = 30 + + #solve the system (stage one) + constrainedCharges, restrainedCharges, nCycles, rms = rESPsolve(molAtom, nAtoms, charge, options, invRadii, esp) + + stagetwo = 'stage two' in options + + writerESP(molData, options, constrainedCharges, restrainedCharges, [nPoints, nCycles, rms], '1') + + #solve for stage two if selected + if stagetwo: + + groups = carbonGroups(molAtom) + if groups == []: exit('no stage two') + + options = stageTwoConstraints(options, groups, nAtoms, restrainedCharges) + + constrainedCharges, restrainedCharges, nCycles, rms = rESPsolve(molAtom, nAtoms, charge, options, invRadii, esp) + writerESP(molData, options, constrainedCharges, restrainedCharges, [nCycles, rms], '2') + + #html Output file exit and clear data file + post() + if options['file'][2] == 'clear': os.remove(options['file'][1]) + + return constrainedCharges, restrainedCharges + diff --git a/source/rhf.py b/source/rhf.py new file mode 100644 index 0000000..81acc2e --- /dev/null +++ b/source/rhf.py @@ -0,0 +1,378 @@ +from __future__ import division +#import system modules +from scipy.linalg import fractional_matrix_power as fractPow +import sys + +#import class modules +from atom import atom, nuclearRepulsion, zMatrix, getConstant, atomList +from basis import checkBasis, buildBasis, electronCount +#import user modules +from view import geometry, orbitals, pre, preSCF, SCF, post, postSCF +from integral import buildOverlap, buildKinetic, buildCoulomb, buildEri, \ + buildHamiltonian, buildFock, buildDensity +from diis import diis_f +from post import charges, energyPartition, buildDipole, polarizabilities, buildQuadrupole, hyperPolarizabilities, \ + bondOrder, buildMp2Dipole +from mp import mollerPlesset, orbitalOptimisedMP2, mp2LaplaceTransform +from mbpt import mbptEvaluateMPn +from ci import cis, ciSpinAdaptedSingles, ciSpinAdaptedTriples, randomPhaseApproximation +from cc.scc import ccsd, lccd, ccd, cc2, lccsd +from force import forces +from ep import electronPropagator2, electronPropagator2spin, electronPropagator3spin, koopmanAGFcorrection +from fci import fci, cisd, ciss +from cc.fcc import fastCoupledCluster +from cc.cctn import coupledClusterTriplesVariations +import numpy as np + + +def rmsDensity(Da, Db): + #compute rms difference of last two cycles of density matrix + n = Da.shape[0] + sum = 0.0 + + for i in range(0, n): + for j in range(0, n): + sum += pow((Da[i,j] - Db[i,j]),2) + + return np.sqrt(sum) + +def mol(show, file = 'project.hpf', molecule='', method='rhf'): + #read input file + + coordinates = [] + cartesian = False + + #loop over input file + with open(file,'r') as data: + f = data.read().split('\n') + + #commands, options and check flags + valid = {'name':[False,'string'],'basis':[False,'string'],'diis':[False,'on','off'],'engine':[False,'aello','native'], \ + 'gauge':[False,'origin','nuclear','mass'],'guess':[False,'core','gwh'],'charge':[False,'int'],'multiplicity':[False,'int'], \ + 'cycles':[False,'int'],'capacity':[False,'init'],'tolerance':[False,'float'],'uhfmix':[False, 'float'],'post':[False,'string'],'cogus':[False,'string'], \ + 'matrix':[False,'c','z'],'units':[False,'bohr','angstrom'],'no_mint_density':[False]} + values = {'name':'','basis':'sto-3g','diis':'on','engine':'aello','gauge':'origin','guess':'core','charge':0,'multiplicity':1, \ + 'cycles':100,'capacity':8,'tolerance':1e-8,'uhfmix':0.0,'post':'','cogus':'{}','matrix':'','units':'bohr','no_mint_density':False} + + for nline, line in enumerate(f): + + line = line.strip() + + #find requested molecule + if molecule != '': + if not ('name=' + molecule) == line: + continue + else: + molecule = '' + + if line.strip() == 'end': break + + if (len(line.split()) != 0) and (line.split()[0][0] == '#'): continue + + if '=' in line: + + #string commands + if any(element in line for element in ['diis','engine','gauge','guess', 'matrix','units']): + + data = line.split('=') + key = data[0] + value = data[1] + if value in valid[key]: + values[key] = value + valid[key][0] = True + if value == 'c': cartesian = True + + #integer commands + if any(element in line for element in ['charge', 'multiplicity','cycles','capacity']): + + data = line.split('=') + key = data[0] + if data[1].replace('-','',1).replace('+','',1).isnumeric(): + values[key] = int(data[1]) + valid[key][0] = True + + #float command + if any(element in line for element in ['tolerance', 'uhfmix']): + + data = line.split('=') + key = data[0] + if data[1].replace('e','',1).replace('-','',1).replace('.','').isnumeric(): + values[key] = float(data[1]) + valid[key][0] = True + + if any(element in line for element in['name','basis','post','cogus']): + + data = line.split('=') + key = data[0] + values[key] = data[1] + valid[key][0] = True + + elif 'no_mint_density' in line: + data = line.split('=') + key = data[0] + values[key] = True + valid[key][0] = True + else: + + #process atom definitions - 'cartesian' flags cartesian or z-matrix + data = line.split() + if (len(data) != 0): + if cartesian: + coordinates.append([data[0], int(data[1]), float(data[2]), float(data[3]), float(data[4])]) + if not cartesian: + coordinates.append(line) + + #check options and defaults [no default for matrix - critical error] + for i in valid: + if i[0] == 'False': + exit('critical input error') + + #construct atom object array + molAtom = [] + + #convert to bohr if necessary + conversion = 1.0 + if values['units'] == 'angstrom': + conversion = 1.0/getConstant('bohr->angstrom') + + if cartesian: + for i in range(len(coordinates)): + molAtom.append(atom(coordinates[i][0], coordinates[i][1], [coordinates[i][2]*conversion, \ + coordinates[i][3]*conversion, \ + coordinates[i][4]*conversion])) + else: + z = zMatrix(coordinates) + for i in range(len(z)): + molAtom.append(atom(z[i][0], int(z[i][1]), [float(z[i][2])*conversion, \ + float(z[i][3])*conversion, \ + float(z[i][4])*conversion])) + + #check to see if valid basis + basisName = values['basis'] + if not checkBasis(basisName,molAtom): + exit('basis not in library') + + #get charge + charge = values['charge'] ; multiplicity = values['multiplicity'] + + #build molecular basis + molBasis = buildBasis(molAtom, basisName) + + #write output if requested + name = values['name'] + if show != []: + pre(name, method) + if 'geometry' in show: + geometry(molAtom) + #output orbital and basis information + if 'orbitals' in show: + orbitals(molAtom, charge, multiplicity, basisName, molBasis, method) + + #return atom object array, basis object array and [name,basis,diis,integral engine,gauge origin, + # initial hamiltonian guess,charge,multiplicity,cycles,tolerance,,units] + + return molAtom, molBasis, values + +def rebuildCenters(molAtom, molBasis, geo): + #a change of geometry means atom.center and basis.center need updating + for atom in range(0, len(molAtom)): + molAtom[atom].center = geo[atom, :] + + for basis in range(0, len(molBasis)): + if molBasis[basis].atom == atom: + molBasis[basis].center = geo[atom, :] + + return molAtom, molBasis + +def scf(molAtom, molBasis, run, show, cptDensity = None): + + global gaugeOrigin + + #options + name, basisName, diisStatus, integralEngine, gaugeOrigin, hamiltonianGuess, charge, multiplicity, \ + iterations, diisCapacity, convergence, uhfmix, p, cogus, matrix, units, no_mint_density = run.values() + cogus = cogus.replace('{','').replace('}','') + + if gaugeOrigin == 'nuclear': gaugeOrigin = 'nuclear charge' + + #check closed shell + if (electronCount(molAtom, charge) % 2) != 0: + exit('open shell molecule') + + #globals so molecular dynamics can be run seperately + global C, fock, density, S, ERI, coreH, SCFenergy, e + + #pre-SCF matrices - S{overlap} T{1e kinetic/exchange/resonance} V{1e Coulomb} ERI(2e electron repulsion) + if integralEngine == 'native': + S = buildOverlap(molBasis) + T = buildKinetic(molBasis) + V = buildCoulomb(molAtom, molBasis) + ERI = buildEri(molBasis) + elif integralEngine == 'aello': + from aello import aello + S, T, V, ERI = aello(molAtom, molBasis) + + #orthogonalising matrix X + X = fractPow(S, -0.5) + + #initial core guess + coreH, _ = buildHamiltonian(hamiltonianGuess,S,T,V) + e, orthogonalC = np.linalg.eigh(np.dot(X.T, np.dot(coreH, X))) + + C = np.dot(X, orthogonalC) + + occupiedOrbitals = electronCount(molAtom, charge)//2 + basisFunctions = len(molBasis) + + #check-point density - use if there + if (type(cptDensity) != np.ndarray) or (cptDensity.shape[0] != S.shape[0]) or not no_mint_density: + density = buildDensity(basisFunctions, occupiedOrbitals, C) + else: + density = cptDensity + + #define storage for diis + if diisStatus == 'on': + diis = diis_f(diisCapacity) + + + #the SCF loop + for cycle in range(0 , iterations): + + #build initial fock matrix as core Hamiltonian + fock, G = buildFock(coreH, ERI, density, integralEngine) + + #do diis if selected + if (cycle != 0) and (diisStatus == 'on'): + fock = diis.build(fock, density, S, X) + + #compute SCF energy + energy = 0.0 + for i in range(0, basisFunctions): + for k in range(0, basisFunctions): + energy += density[i,k] * (fock[i,k] + coreH[i,k]) + + #orthogonalise Fock + orthogonalFock = np.dot(X.T , np.dot(fock , X)) + + #diagonalise Fock + e, orthogonalC = np.linalg.eigh(orthogonalFock) + + #transform eigenvalues back to non-orthogonal AO basis + C = np.dot(X,orthogonalC) + + #build density matrix + density = buildDensity(basisFunctions, occupiedOrbitals, C) + + #convergence control + if cycle != 0: + deltaEnergy = np.abs(preEnergy - energy) + deltaDensity = rmsDensity(preDensity, density) + if 'SCF' in show: + SCF(energy, deltaEnergy, deltaDensity, cycle, diisStatus, iterations, convergence) + if (deltaEnergy < convergence) and (deltaDensity < convergence) : + break + + preEnergy = energy + preDensity = density + + #output pre-SCF details + if cycle==0 and ('preSCF' in show): + preSCF(S, T, V, ERI, X, orthogonalFock, density, energy, hamiltonianGuess) + + #if failed to converge exit with messages + if (cycle + 1) == (iterations): + print('SCF failed to converge in ' + str(cycle + 1) + ' iterations') + if diisStatus == 'off': print('Try diis = \'on\'') + + post(False) + sys.exit('convergence failure') + + #final eigensolution of final Fock matrix are orbital energies (e) and MO coefficients(C) + SCFenergy = energy + nuclearRepulsion(molAtom) + + if 'SCF' in show: + postSCF([SCFenergy, cycle, C, e, density],'eigen') + + if 'postSCF' in show: + + if 'ch' in p: charges(density ,S, molAtom, molBasis) + if 'bo' in p: bondOrder(density, S, molAtom, molBasis) + if 'en' in p: energyPartition(energy, nuclearRepulsion(molAtom), density, T, V, G, e, \ + electronCount(molAtom,charge)) + if 'di' in p: + buildDipole(molAtom, molBasis, density, gaugeOrigin, integralEngine) + buildMp2Dipole(molAtom, molBasis, gaugeOrigin, C, e, ERI, occupiedOrbitals) + if 'qu' in p: buildQuadrupole(molAtom, molBasis, density, gaugeOrigin) + + if 'mp' in p: mollerPlesset(molAtom, charge, molBasis, C, e, fock, ERI, SCFenergy) + if 'om' in p: orbitalOptimisedMP2(C, coreH, e, molBasis, nuclearRepulsion(molAtom), ERI, electronCount(molAtom,charge)) + if 'ml' in p: mp2LaplaceTransform(molBasis, C, ERI, e, occupiedOrbitals, SCFenergy) + if 'mb' in p: mbptEvaluateMPn(molAtom, molBasis, run, SCFenergy) + + if 'ci' in p: cis(molAtom,charge,molBasis,C,fock,ERI) + if 'ss' in p: ciSpinAdaptedSingles(molAtom,charge,molBasis,C,fock,ERI) + if 'st' in p: ciSpinAdaptedTriples(molAtom,charge,molBasis,C,fock,ERI) + if 'rp' in p: randomPhaseApproximation(molAtom,charge,molBasis,C,fock,ERI,type='block') + if 'fc' in p: fci(molAtom, molBasis, charge, C, ERI, coreH) + if 'sd' in p: cisd(molAtom, molBasis, charge, C, ERI, coreH) + if 'cs' in p: ciss(molAtom, molBasis, charge, C, ERI, coreH) + + if 'ct' in p: ccsd(molAtom, C, charge, fock, ERI, iterations, convergence, SCFenergy, diisStatus) + if 'c2' in p: cc2(molAtom, C, charge, fock, ERI, iterations, convergence, SCFenergy, diisStatus) + if 'lc' in p: lccd(molAtom, C, charge, fock, ERI, iterations, convergence, SCFenergy) + if 'cd' in p: ccd(molAtom, C, charge, fock, ERI, iterations, convergence, SCFenergy) + if 'ld' in p: lccsd(molAtom, C, charge, fock, ERI, iterations, convergence, diisStatus, SCFenergy) + + if 'fo' in p: forces(molAtom, molBasis, density, fock, integralEngine, 'both') + + if 'ep' in p: electronPropagator2(molBasis ,C ,ERI ,e , occupiedOrbitals ,2 ,4 ) + if 'e2' in p: electronPropagator2spin(molBasis, C, ERI, e, occupiedOrbitals, 5) + if 'e3' in p: electronPropagator3spin(molBasis, C, ERI, e, occupiedOrbitals, 5) + if 'ko' in p: koopmanAGFcorrection(molBasis ,C ,ERI, e, occupiedOrbitals, 5) + + if 'po' in p: polarizabilities(molAtom, molBasis, C, fock, ERI, occupiedOrbitals, gaugeOrigin) + if 'hy' in p: hyperPolarizabilities(molAtom, molBasis, C, ERI, e, fock, occupiedOrbitals, gaugeOrigin) + + #symbolic generated code + if cogus != '': + from cogus import symbolicGeneratedCoupledCluster + + repertoire = {'d':'ccd','sd':'ccsd','sd(t)':'ccsd_t','2':'cc2','ld':'lccd','lsd':'lccsd','3':'cc3', 'sdt':'ccsdt'} + cogusList = cogus.split(',') + results = [] + + for cogusItem in cogusList: + name, cluster, perturbation = symbolicGeneratedCoupledCluster(repertoire[cogusItem], fock, ERI, C, e, \ + [charge, nuclearRepulsion(molAtom), electronCount(molAtom,charge)]) + results.append([('CC'+cogusItem.upper()).replace('(t)','(T)').replace('CCL','LCC'), cluster, perturbation]) + + postSCF(results, 'cogus') + + #process any fast coupled-cluster + if '+' in p: + repertoire = {'+d':'ccd','+s':'ccsd','+t':'ccsd(t)','+2':'cc2','+l':'lccd','+L':'lccsd','+^':'lambda', '+q':'qcisd'} + data = {'cycle_limit': 50, 'precision':1e-10, 'electrons': electronCount(molAtom,charge)} + for key in repertoire.keys(): + method = repertoire[key] + if key in p: fastCoupledCluster(method, fock, e, C, ERI, nuclearRepulsion(molAtom), data) + + #process triples and triples approximations + if '-' in p: + repertoire = {'-T':'ccsdt','-t':'ccsd(t)','-1a':'ccsdt-1a','-1b':'ccsdt-1b','-2':'ccsdt-2','-3':'ccsdt-3','-4':'ccsdt-4'} + for key in repertoire.keys(): + method = repertoire[key] + if key in p: coupledClusterTriplesVariations(method, fock, ERI, C, e, + [charge, nuclearRepulsion(molAtom), electronCount(molAtom,charge)], + [True, 50, 1e-10, True]) + + #save molecular integrals to zip archive + if 'mints' in show: + np.savez_compressed('../mints/' + name + '-' + basisName + '-mints.npz', s=S, k=T, j=V, i=ERI, \ + f=fock, d=density, c=C, e=e, E=SCFenergy, m=[charge, name, basisName, nuclearRepulsion(molAtom)], \ + a=atomList(molAtom)) + + #clean up outfile + if show != []: post() + + return SCFenergy + diff --git a/source/rohf.py b/source/rohf.py new file mode 100644 index 0000000..b8c02d8 --- /dev/null +++ b/source/rohf.py @@ -0,0 +1,294 @@ +from __future__ import division +import numpy as np +import scipy + +from integral import buildOverlap, buildKinetic, buildCoulomb, buildEri, \ + buildHamiltonian, iEri, expandEri +from basis import electronCount +from atom import nuclearRepulsion +from view import geometry, orbitals, pre, preSCF, SCF, postSCF, post, uhfOrbitals +from post import buildDipole + +from diis import diis_f + +def rmsDensity(density, preDensity): + #compute RMS of density matrix + + return np.sqrt(np.mean(np.square(density - preDensity))) + +def get_occupations(eps_list, atoms, charge, multiplicity): + #compute the orbital occupancies from orbital energies + + if len(eps_list) == 1: + eps = eps_list[0] + eps_alpha = eps_beta = eps + else: + eps, eps_alpha, eps_beta = eps_list + + nmo = len(eps) + + mo_occupied = np.zeros(nmo) + ne = electronCount(atoms, charge) + + #spin (unpaired electrons) + spin = multiplicity - 1 + electrons = ((ne-spin)//2 + spin, (ne-spin)//2) + + #fill occupancies + mo_occupancy = np.zeros((nmo)) + eps_sorted = np.argsort(eps) + core_indices = eps_sorted[:electrons[1]] + + if spin != 0: + open_indices = eps_sorted[electrons[1]:] + open_indices = open_indices[np.argsort(eps_alpha[open_indices])[:spin]] + mo_occupancy[open_indices] = 1 + + mo_occupancy[core_indices] = 2 + + return mo_occupancy + +def get_densities(c, occupations): + #get the one-particle density matrices for closed and open + + alpha = occupations > 0 + beta = occupations == 2 + + dm_alpha = np.einsum('pr,r,qr', c, alpha, c, optimize=True) + dm_beta = np.einsum('pr,r,qr', c, beta, c, optimize=True) + + return np.array([dm_alpha, dm_beta]) + + +def get_coulomb_exchange(density, eri): + #form the coulomb and exchange HF integrals + + j = np.zeros_like(density) ; k = np.zeros_like(density) + for spin in range(density.shape[0]): + j[spin] = np.einsum('ijkl,ji->kl', eri, density[spin], optimize=True) + k[spin] = np.einsum('ikjl,ji->kl', eri, density[spin], optimize=True) + + return j, k + +def make_fock(h, v, dm, s): + #construct the rohf Roothaan effective fock matrix components + + #uhf fock operators + f_alpha = h + v[0] ; f_beta = h + v[1] + + #Roothaan effective Fock + + nbf = s.shape[0] + + f_core = (f_alpha + f_beta) * 0.5 + + #project uhf focks - alpha all non-zero , beta - all doubly occupied + core = np.einsum('pr,rq->pq', dm[1], s, optimize=True) + open = np.einsum('pr,rq->pq', dm[0] - dm[1], s, optimize=True) + virtual = np.eye(nbf) - np.einsum('pr,rq->pq', dm[0], s, optimize=True) + + #make fock + fock = 0.5 * np.einsum('sp,sr,rq->pq', core, f_core, core, optimize=True) + fock += 0.5 * np.einsum('sp,sr,rq->pq', open, f_core, open, optimize=True) + fock += 0.5 * np.einsum('sp,sr,rq->pq', virtual, f_core, virtual, optimize=True) + + fock += np.einsum('sp,sr,rq->pq', open, f_beta, core, optimize=True) + fock += np.einsum('sp,sr,rq->pq', open, f_alpha, virtual, optimize=True) + fock += np.einsum('sp,sr,rq->pq', virtual, f_core, core, optimize=True) + + roothaan_fock = fock + fock.transpose(1,0) + + return f_alpha, f_beta, roothaan_fock + +def eigensolution(fock, x): + #solve the fock, S system + + fock_prime = np.einsum('rp,rs,sq->pq', x, fock[2], x, optimize=True) + e , c =np.linalg.eigh(fock_prime) + c = np.einsum('pr,rq->pq',x, c, optimize=True) + + e_alpha = np.einsum('pi,ps,si->i', c, fock[0], c, optimize=True) + e_beta = np.einsum('pi,ps,si->i', c, fock[1], c, optimize=True) + + return e, e_alpha, e_beta, c + +def get_rohf_energy(density, h1e, v): + #compute the rohf energy + + e = np.einsum('ij,ji->', h1e, density[0], optimize=True) + e += np.einsum('ij,ji->', h1e, density[1], optimize=True) + + e_coulomb = (np.einsum('ij,ji->', v[0], density[0]) + np.einsum('ij,ji->', v[1], density[1])) * 0.5 + + return (e, e_coulomb) + +def scf(molAtom, molBasis, run, show): + + global density_total + + #options + name, basisName, diisStatus, integralEngine, gaugeOrigin, hamiltonianGuess, charge, multiplicity, \ + iterations, diisCapacity, convergence, uhfmix, p, _, _, _, _ = run.values() + + #pre-SCF matrices - s{overlap} t{1e kinetic/exchange/resonance} v{1e Coulomb} ERI(2e electron repulsion) + if integralEngine == 'native': + s = buildOverlap(molBasis) + t = buildKinetic(molBasis) + v = buildCoulomb(molAtom, molBasis) + eri = buildEri(molBasis) + elif integralEngine == 'aello': + from aello import aello + s, t, v, eri = aello(molAtom, molBasis) + + #get nuclear repulsion energy + nuclear_repulsion = nuclearRepulsion(molAtom) + + #get eri to tensor from linear form + nbf = s.shape[0] + eri = expandEri(eri, nbf) + + #get one-electron hamiltonian + one_electron_h = t + v + eps, c = scipy.linalg.eigh(one_electron_h, s) + + #determine the alpha and beta occupancies + mo_occupancy = get_occupations([eps], molAtom, charge, multiplicity) + + #check we have right number of electrons + if electronCount(molAtom, charge) != np.sum(mo_occupancy): + exit('charge and multiplicity incompatible') + + #report if requested + if 'orbitals' in show: + uhfOrbitals(sum(i > 0 for i in mo_occupancy), sum(i == 2 for i in mo_occupancy), multiplicity) + + #get alpha and beta density matrices + dm = get_densities(c, mo_occupancy) + + #coulomb and exchange integrals + j, k = get_coulomb_exchange(dm, eri) + jk = j - k + + #rohf energy components + rohf_energy = get_rohf_energy(dm, one_electron_h, jk) + + #symmetric orthogonalization + x = scipy.linalg.fractional_matrix_power(s, -0.5) + + #convergence buffers + scf_energy = [np.sum(rohf_energy)] + scf_density = [dm] + + #define storage for diis + if diisStatus == 'on': + diis = diis_f(diisCapacity) + + for cycle in range(iterations): + + #get cycle fock's and solve for orbital energies and coefficients + f_alpha, f_beta, fock = make_fock(one_electron_h, jk, dm, s) + + #do diis if selected + if (cycle != 0) and (diisStatus == 'on'): + fock = diis.build(fock, dm[0]+dm[1], s, x) + + e, e_alpha, e_beta, c = eigensolution((f_alpha, f_beta, fock), x) + + mo_occupancy = get_occupations([e, e_alpha, e_beta], molAtom, charge, multiplicity) + + dm = get_densities(c, mo_occupancy) + + #recalculate jk and get new energy for this cycle + j, k = get_coulomb_exchange(dm, eri) + jk = j[0] + j[1] - k + + rohf_energy = get_rohf_energy(dm, one_electron_h, jk) + + #update buffers + scf_energy.append(np.sum(rohf_energy)) + scf_density.append(dm) + + #convergence control + if cycle != 0: + rms_alpha = rmsDensity(scf_density[-1][0], scf_density[-2][0]) ; rms_beta = rmsDensity(scf_density[-1][1], scf_density[-2][1]) + if (abs(scf_energy[1] - scf_energy[0]) < convergence) and (rms_alpha < convergence) and (rms_beta < convergence): + break + else: + SCF(scf_energy[-1], abs(scf_energy[1] - scf_energy[0]), (rms_alpha + rms_beta)*0.5, cycle, 'off', iterations, convergence) + + del scf_energy[0] + del scf_density[0] + + if cycle == iterations: + print('SCF failed to converge in ' + str(cycle) + ' iterations') + if diisStatus == 'off': print('Try diis = \'on\'') + post(False) + sys.exit('convergence failure') + + if 'SCF' in show: + postSCF([scf_energy[-1 ] + nuclear_repulsion, cycle, scf_energy[-1 ]],'uhf') + + if 'postSCF' in show: + def spin_analysis(c, occupancy, s): + #spin contamination and spin statistics + + alpha = (occupancy > 0).astype(np.int) ; beta = (occupancy == 2).astype(np.int) + + #get occupied molecular eigenvectors + c_occ = [c[0]*alpha, c[1]*beta] + mo_occ = [c_occ[0][:,~np.all(c_occ[0]==0, axis=0)], c_occ[1][:,~np.all(c_occ[1]==0, axis=0)]] + nalpha, nbeta = [mo_occ[0].shape[1], mo_occ[1].shape[1]] + + #components of total spin + spin = np.einsum('rp,rs,sq->pq',mo_occ[0], s, mo_occ[1], optimize=True) + spin_xy = (nalpha + nbeta) * 0.5 - np.einsum('ij,ij->', spin, spin, optimize=True) + spin_z = (nalpha - nbeta)**2 * 0.25 + spin_total = (spin_xy + spin_z) + + multiplicity = np.sqrt(spin_total + 0.25) - 0.5 + + return spin_total, multiplicity*2 + 1, nalpha, nbeta + + spin_total, spin_multiplicity, nalpha, nbeta = spin_analysis([c,c], mo_occupancy, s) + + spin_matrix = np.einsum('rp,rs,sq->pq', c[:, :nbeta], s, c[:, :nalpha], optimize=True) + spin_contamination = nbeta - np.einsum('pq,pq->',spin_matrix, spin_matrix, optimize=True) + density_total = dm[0] + dm[1] ; spin_density = dm[0] - dm[1] + postSCF([e_alpha, e_beta, density_total, spin_density, spin_total, spin_contamination, spin_multiplicity], 'uhf-post') + + #if requested Mulliken populations + if 'ch' in p: + population = [] + population.append(np.einsum('ij,ji->i', dm[0], s, optimize=True)) + population.append(np.einsum('ij,ji->i', dm[1], s, optimize=True)) + + mulliken = [] + atom_charge = np.zeros((2,len(molAtom))) + atom_spin_charge = np.zeros(atom_charge.shape[1]) + total_charge = np.zeros(2) + + for spin in range(2): + for i in range(population[spin].shape[0]): + mulliken.append([molBasis[i].symbol, molAtom[molBasis[i].atom].id, round(population[spin][i],6)]) + atom_charge[spin][molBasis[i].atom] += round(population[spin][i],6) + total_charge[spin] += population[spin][i] + + spin_population = np.einsum('ij,ji->i', spin_density, s) + for i in range(spin_population.shape[0]): + atom_spin_charge[molBasis[i].atom] += spin_population[i] + + atoms = [] + for atom in molAtom: + atoms.append([atom.id, atom.number]) + + postSCF([nbf, mulliken, total_charge, atom_charge, atoms, spin_population, atom_spin_charge], 'uhf-mull') + + #if requested dipole moment + if 'di' in p: + import aello + dipoles = buildDipole(molAtom, molBasis, density_total*0.5, gaugeOrigin) + + #clean up outfile + post() + + return scf_energy[-1 ] + nuclear_repulsion \ No newline at end of file diff --git a/source/setup.py b/source/setup.py new file mode 100644 index 0000000..a685953 --- /dev/null +++ b/source/setup.py @@ -0,0 +1,9 @@ +from distutils.core import setup +from distutils.extension import Extension +from Cython.Build import cythonize + +ext_modules=[Extension("aello",["aello.pyx"],libraries=["m"],extra_compile_args=["-ffast-math"])] +ext_modules=[Extension("ocypete",["ocypete.pyx"],libraries=["m"],extra_compile_args=["-ffast-math"])] +setup(name='aello',ext_modules = cythonize('aello.pyx',language_level=3)) +setup(name='ocypete',ext_modules = cythonize('ocypete.pyx',language_level=3)) + diff --git a/source/tdhf.py b/source/tdhf.py new file mode 100644 index 0000000..d638d36 --- /dev/null +++ b/source/tdhf.py @@ -0,0 +1,795 @@ +from __future__ import division +from scipy.linalg import expm, norm +from numpy import dot, conjugate, zeros, pi, zeros_like, sin, array, hstack, trace, kron +from numpy import arange, where, all, sqrt, sum, log, max, min, linspace, exp, eye +import rhf +from scipy.linalg import fractional_matrix_power as fractPow +from post import buildDipole, dipoleComponent +from integral import iEri, buildAngular, buildNabla, buildFockMOspin +from atom import nuclearRepulsion, getConstant +from aello import tdhfFock +from numpy.linalg import solve +from ci import randomPhaseApproximation, ciDegeneracy + +def tdhf(do, run, shape, units ): + #time-dependent Hartree-Fock by Magnus expansion + + #arguments + timeIncrement, iterations, direction = run + + #pulse definition + if len(shape) == 2: + pulseType, fieldStrength = shape + rho = 0.1 + elif len(shape) == 3: + pulseType, fieldStrength, rho = shape + + #initial molecule properties + molAtom, molBasis, molData = rhf.mol([]) + + SCFenergy = rhf.scf(molAtom, molBasis, molData, []) + S = rhf.S + density = rhf.density + ERI = rhf.ERI + fock = rhf.fock + coreH = rhf.coreH + + reset = False + + #transform AO <-> AO orthogonal + X = fractPow(S, -0.5) + U = fractPow(S, 0.5) + + #initial AO orthogonal matrices + orthoDensity = dot(U, dot(density, U.T)) + orthoFock = dot(X.T , dot(fock , X)) + + h = -1j * timeIncrement + + #|---------------------------------subroutines----------------------------------| + + def initialise(): + #ground state initialiation + + rhf.scf(molAtom, molBasis, molData, []) + + S = rhf.S + density = rhf.density + ERI = rhf.ERI + fock = rhf.fock + coreH = rhf.coreH + + def pulse(t, type = 'gaussian'): + + if type == 'kick': + if t == 0: return 1.0 + else: return 0.0 + elif type == 'gaussian': + return exp(-(t**2)/ (2 * rho * rho)) + + def commutator(a, b): + #commutator bracket of a,b + + return dot(a,b) - dot(b,a) + + def orthoField(t): + #add dipole field to fock - in orthogonal basis + + axis = ['x','y','z'].index(direction) + + profile = pulse(t, type=pulseType) * fieldStrength + + dp = dipoleComponent(molAtom, molBasis, direction, 'nuclear charge') + + fockCorrection = profile * dp + + return dot(X.T , dot(fockCorrection , X)) + + def updateFock(density, engine = 'aello'): + #updating Fock complex version + n = density.shape[0] + fock = zeros((n,n), dtype=complex) + + if engine == 'aello': + fock = tdhfFock(n, density, coreH.astype('complex'), ERI.astype('complex')) + + elif engine == 'native': + G = zeros((n,n), dtype=complex) + + for i in range(0, n): + for m in range(0, n): + G[i,m] = 0.0 + for k in range(0, n): + for l in range(0, n): + G[i,m] += density[k,l] * ( 2* ERI[iEri(i,m,k,l)].astype('complex') - ERI[iEri(i,k,m,l)].astype('complex')) + fock[i,m] = coreH[i,m].astype('complex') + G[i,m] + + return fock + + def updateState(u, cycleDensity): + #propagate time U(t) -> U(t+timeIncrement) + + orthoDensity = dot(u, dot(cycleDensity, conjugate(u).T)) + + #build fock in non-orthogonal ao basis + density = dot(X, dot(orthoDensity, X.T)) + fock = updateFock(density) + + #orthogonalize for next step + orthoFock = dot(X.T, dot(fock, X)) + + return orthoFock, orthoDensity + + def updateEnergy(molAtom, molBasis, fock, density): + #compute SCF energy + + energy = 0.0 + for i in range(0, len(molBasis)): + for k in range(0, len(molBasis)): + energy += density[i,k] * (fock[i,k] + coreH[i,k]) + + return energy + nuclearRepulsion(molAtom) + + def magnus2(h, orthoFock, orthoDensity, density): + #second order Magnus expansion + + time = [] + HFenergy = [] + dipole = [] + field = [] + + axis = ['x','y','z'].index(direction) + nbf = orthoDensity.shape[0] + energy = SCFenergy + + for cycle in range(iterations): + + k = zeros((2,nbf,nbf)).astype('complex') + + dipole.append(buildDipole(molAtom, molBasis, density.real,'nuclear charge', 'aello')[axis]) + + time.append(cycle * timeIncrement) + HFenergy.append(energy) + field.append(pulse(cycle * timeIncrement, type=pulseType)) + + cycleDensity = orthoDensity.copy() + + #equation (13) + k[0] = h * (orthoFock + orthoField(cycle * timeIncrement)) + l = k[0] + u = expm(l) + + orthoFock, orthoDensity = updateState(u, cycleDensity) + k[1] = h * (orthoFock + orthoField((cycle+1) * timeIncrement)) + l = 0.5*(k[0] + k[1]) + u = expm(l) + orthoFock, orthoDensity = updateState(u, cycleDensity) + + #unorthogonalise for energy calculation + fock = dot(U.T, dot(orthoFock, U)) + density = dot(X, dot(orthoDensity, X.T)) + energy = updateEnergy(molAtom, molBasis, fock, density) + + return time, HFenergy, dipole, field + + def magnus4(h, orthoFock, orthoDensity, density): + #second order Magnus expansion + + #reset plotted quantities and return to ground state + time = [] + HFenergy = [] + dipole = [] + field = [] + + axis = ['x','y','z'].index(direction) + nbf = orthoDensity.shape[0] + energy = SCFenergy + + for cycle in range(iterations): + + k = zeros((6,nbf,nbf)).astype('complex') + q = zeros_like(k).astype('complex') + + dipole.append(buildDipole(molAtom, molBasis, density.real,'nuclear charge', 'aello')[axis]) + + time.append(cycle * timeIncrement) + HFenergy.append(energy) + field.append(pulse(cycle * timeIncrement, type=pulseType)) + + cycleDensity = orthoDensity.copy() + + #equation (14) - with reordering of terms, [] is line in (14), <> line in 15 + k[0] = h * (orthoFock + orthoField(cycle * timeIncrement)) + q[0] = k[0] + l = k[0] * 0.5 + u = expm(l) #[2] + orthoFock, orthoDensity = updateState(u, cycleDensity) + + k[1] = h * (orthoFock + orthoField((cycle+0.5) * timeIncrement)) + q[1] = k[1] - k[0] #[4] + l = 0.5 * q[0] + 0.25 * q[1] #[3] + u = expm(l) + orthoFock, orthoDensity = updateState(u, cycleDensity) + + k[2] = h * (orthoFock + orthoField((cycle+0.5) * timeIncrement)) + q[2] = k[2] - k[1] #[2] + l = q[0] + q[1] + u = expm(l) + orthoFock, orthoDensity = updateState(u, cycleDensity) + + k[3] = h * (orthoFock + orthoField((cycle+1.0) * timeIncrement)) + q[3] = k[3] -2.0 * k[1] + k[0] #[6] + l = 0.5 * q[0] + 0.25 * q[1] + q[2]/3.0 - q[3]/24.0 - commutator(q[0], q[1])/48.0 #<1> + u = expm(l) + orthoFock, orthoDensity = updateState(u, cycleDensity) + + k[4] = h * (orthoFock + orthoField((cycle+0.5) * timeIncrement)) + q[4] = k[4] - k[1] + l = q[0] + q[1] + 2.0 * q[2]/3.0 + q[3]/6.0 - commutator(q[0], q[1]) /6.0 #[7] + u = expm(l) + orthoFock, orthoDensity = updateState(u, cycleDensity) + + k[5] = h * (orthoFock + orthoField((cycle+1.0) * timeIncrement)) + q[5] = k[5] - 2.0 * k[1] + k[0] #<3> + l = q[0] + q[1] + 2.0 * q[4]/3.0 + q[5]/6.0 - commutator(q[0], q[1]-q[2]+q[4]+0.5*q[5])/6.0 #<4> + u = expm(l) + orthoFock, orthoDensity = updateState(u, cycleDensity) + + #unorthogonalise for energy calculation + fock = dot(U.T, dot(orthoFock, U)) + density = dot(X, dot(orthoDensity, X.T)) + energy = updateEnergy(molAtom, molBasis, fock, density) + + return time, HFenergy, dipole, field + + def tdhfFile(ft,fe, fd, ff, fs): + #write time and dipole to file + + from numpy import savez + fileName = molData['name'] + '-' + molData['basis'] + '-tdhf.npz' + savez(fileName, p =[fs, units[0], units[1], pulseType, fieldStrength, timeIncrement, iterations, direction], \ + t = ft,e = fe, d = fd, f= ff) + + #|-------------------------------------main-------------------------------------| + + if not 'noplot' in do: + import matplotlib.pyplot as plt + plt.grid() + plt.title(molData['name'] + ' (' + molData['basis'] + ')') + plt.xlabel('time (' + units[0] + ')') + plt.ylabel(direction + '-dipole (' + units[1] + ')') + + #call Magnus 2nd order + if '2' in do: + if reset: initialise() + reset = not reset + + t, e, d, f = magnus2(h, orthoFock, orthoDensity, density) + if units[0] == 'fs': t = array(t) * getConstant('atu->femtosecond') + if units[1] == 'debye': d = array(d) * getConstant('au->debye') + if not 'noplot' in do: plt.plot(t,d,'r',label='Magnus2', linewidth=0.1) + + if 'file[2]' in do: tdhfFile(t, e, d, f, '2') + + #call Magnus 4th order + if '4' in do: + if reset: initialise() + reset = not reset + + t, e, d, f = magnus4(h, orthoFock, orthoDensity, density) + if units[0] == 'fs': t = array(t) * getConstant('atu->femtosecond') + if units[1] == 'debye': d = array(d) * getConstant('au->debye') + if not 'noplot' in do: plt.plot(t,d,'k',label='Magnus4', linewidth=0.2) + + if 'file[4]' in do: tdhfFile(t, e, d, f, '4') + + if not 'noplot' in do: + plt.legend(loc=1) + plt.show() + + return array(t), array(e), array(d), array(f) + +#reference for Pade: Accelerated Broadband Spectra Using Transition Dipole Decomposition +#and Pade Approximants - Bruner, LaMaster and Lopata + +def pade(a, b, w): + #Compute Pade approximant via extended Euclidean algorithm for + #polynomial greatest common divisor - ref equations (28)(29) + + sp = 0.0 + sq = 0.0 + n = len(a) + + #evaluate power series + for i in range(n): + sp += a[i] * pow(w, n-1-i) + for i in range(n): + sq += b[i] * pow(w, n-1-i) + + return sp / sq + + +def toeplitz(type, col, row = 0): + #Toeplitz manipulations - 'make' and 'lower triangular' + + n = len(col) + toeplitz = zeros((n,n)) + + if all(row) == 0: row = col + + if type == 'make': + for i in range(n): + for j in range(n-i): + toeplitz[j, i+j] = row[i] + toeplitz[i+j, j] = col[i] + + if type == 'Ltri': + for i in range(1,n): + for j in range(n-i): + toeplitz[i+j, j] = col[i] + + return toeplitz + +def solveSpectrum(x, y, options): + #solve for spectrum, ref equations (30)-(35) + + dampFactor, maxPoints, elimit, eticks = options + + #zero at t=0, y[0] = 0 ! + y -= y[0] + + #apply damping - Lorentzian shape + step = x[1] - x[0] + damping = exp(-(step*arange(len(y)))/float(dampFactor)) + y *= damping + + #diagonal Pade scheme + n = len(y)//2 + if n > maxPoints: n = maxPoints + + #generate vector and limit points + X = -y[n+1:2*n] + + #compute Toeplitz matrix [n-1, n-1] and solve + A = toeplitz('make', y[n:2*n-1], y[n:1:-1]) + try: + b = solve(A,X) + except: + exit('singular matrix - no field') + + #[1, [n-1]] -> [n] column vector + b = hstack((1.0,b)) + + #v[n]*toeplitz[n,n] a strictly lower triangular matrix + a = dot(toeplitz('Ltri',y[0:n]),b) + + #frequency range + frequency = arange(0.0 ,elimit ,eticks) + + w = exp(-1j*frequency*step) + + #Pade approximant via extended Euclidean algorithm + fw = pade(a, b, w) + + return fw, frequency + +def getSpectrum(time, dipole, options): + #solve from spectra + + spd , frequency = solveSpectrum(time, dipole, options[:4]) + + #get return spectrum type real, imaginary or absolute + type = options[4] + if type == 'r': + omega = spd.real + elif type == 'i': + omega = spd.imag + elif type == 'a': + omega = abs(spd) + + #absorption formula + field = options[5] + spectrum = (4.0*pi*getConstant('alpha')*frequency*(omega))/field + + return spectrum, frequency + +def getPeaks(spectrum, frequency, tolerance): + #find the peaks in the spectrum aove tolerance + + from scipy.signal import argrelmax as pks + + extrema = pks(abs(spectrum)) + + #apply tolerance + idx = where((abs(spectrum[extrema]) >= tolerance)) + jdx = extrema[0][idx[0]] + + nPeaks = len(jdx) + peaks = zeros(nPeaks) + for i in range(nPeaks): + peaks[i] = frequency[jdx][i] + + return peaks + +def TDHFproperties(molAtom, molBasis, charge, c, fock, ERI, method, TDHFdata): + #compute a dictionary of TD properties + + def integral(type, molAtom, molBasis, co, cv): + #compute the required property integral + + a = zeros((3, nBasis, nBasis)) + axes = ['x', 'y', 'z'] + + if type == 'dipole': + #electric transition dipole in length gauge + for i, axis in enumerate(axes): + a[i] = -dipoleComponent(molAtom, molBasis, axis, 'nuclear charge') + + elif type == 'nabla': + #electric transition dipole in velocity gauge + for i, axis in enumerate(axes): + a[i] = buildNabla(molAtom, molBasis, axis) + + elif type == 'angular': + #magnetic transition dipole in length gauge + for i, axis in enumerate(axes): + a[i] = buildAngular(molAtom, molBasis, axis, 'origin') + + aMO = [] + for i in range(3): + aMO.append(kron(dot(co.T, dot(a[i], cv)), eye(2))) + + return array(aMO) + + #only tamm-dancoff at moment + if method != 'tamm-dancoff': return {} + + [nOccupied, nVirtual, roots] = TDHFdata + + #get excited states + e, v = randomPhaseApproximation(molAtom, charge, molBasis, c, fock, ERI, method) + + #get shaping matrices + co = c[:,:nOccupied] + cv = c[:,nOccupied:] + + #get singlets + ciMultiplicity = ciDegeneracy(e) + i = 0 + for j, mult in enumerate(ciMultiplicity): + if 's' in mult: + v[:,i] = v[:, where(e == mult[0])[0][0]] + e[i] = mult[0] + + i +=1 + + properties = [] + responses = {'excitation energy' : 0, 'electric transition dipole (length gauge)' : [], 'oscillator strength (length gauge)' : 0, \ + 'electric transition dipole (length gauge)' : [], 'oscillator strength (length gauge)' : 0 ,\ + 'magnetic transition dipole (length gauge)' : [], 'rotatory strength (length gauge)' : 0, 'rotatory strength (velocity gauge)' : 0 } + + nBasis = c.shape[0] + + muMO = integral('dipole', molAtom, molBasis, co, cv) + nabMO = integral('nabla', molAtom, molBasis, co, cv) + angMO = integral('angular', molAtom, molBasis, co, cv) + + #get properties for each root + for root in range(roots): + + responses['excitation energy'] = e[root] + + alpha = v[:, root].reshape(2*nOccupied, 2*nVirtual) + + #electric transition dipole (length) + tdm = [] + for i in range(3): + tdm.append(sum(alpha * muMO[i])) + + responses['electric transition dipole (length gauge)'] = tdm + + #oscillator strength (length) + responses['oscillator strength (length gauge)'] = 2 * e[root] * sum(array(tdm)**2)/3 + + #electric transition dipole (velocity) + tdm = [] + for i in range(3): + tdm.append(sum(alpha * nabMO[i])) + responses['electric transition dipole (velocity gauge)'] = tdm + + #oscillator strength (length) + responses['oscillator strength (velocity gauge)'] = 2 / (3 * e[root]) * sum(array(tdm)**2) + + #magnetic transition dipole (velocity) + tdm = [] + for i in range(3): + tdm.append(0.5 * sum(alpha * angMO[i])) + responses['magnetic transition dipole (length gauge)'] = tdm + + #rotatory strengths + responses['rotatory strength (length gauge)'] = sum(array(responses['electric transition dipole (length gauge)']) * \ + array(responses['magnetic transition dipole (length gauge)'])) + + responses['rotatory strength (velocity gauge)'] = -sum(array(responses['electric transition dipole (velocity gauge)']) * \ + array(responses['magnetic transition dipole (length gauge)']) ) / \ + responses['excitation energy'] + + properties.append(responses.copy()) + + return properties + +def TDHFspectrum(spectrum): + #compute the opa or ecd convolutions and bars + + def profile(p, d = None, mode = 'wave'): + #compute the waveform profile + + if spectrum['units'] == 'nm': + g = lambda x : (x * x * spectrum['gamma'] * getConstant('Eh')) / (getConstant('planck') * getConstant('c') * 1e7) + elif spectrum['units'] == 'eV': + g = lambda x: spectrum['gamma'] * getConstant('hartree->eV') + + if spectrum['shape'] == 'gaussian': + + if mode == 'max': return 2.0 / (g(p) * sqrt(2.0 * pi)) + + factor = 2.0 / (g(p) * sqrt(2.0 * pi)) + exponent = -2.0 * ((d - p) / g(p))**2 + + return factor * exp(exponent) + + elif spectrum['shape'] == 'lorentzian': + + if mode == 'max': return 2.0 / (pi * g(p)) + + factor = 1.0 / pi + + return factor * g(p) * 0.5 / ((d - p)**2 + (g(p) * 0.5)**2) + + def prefactor(): + #calculate the prefactor for the residue expression + + + units = {'au to Coulomb cm' : getConstant('e') * getConstant('bohr->cm') * 100, \ + 'au to Joules inverse Tesla' : 2.0 * getConstant('bohr magneton') * 100 } + + if spectrum['type'] == 'opa': + conversion = units['au to Coulomb cm'] * units['au to Coulomb cm'] + return 8.0 * pow(pi, 3.0) * getConstant('avogadro') * conversion / \ + (3.0 * 1000 * log(10) * (4.0 * pi * getConstant('electric constant')) * \ + (getConstant('c')/100) * getConstant('planck')) + + if spectrum['type'] == 'ecd': + conversion = units['au to Coulomb cm'] * units['au to Joules inverse Tesla'] + return 32.0 * pow(pi, 3.0) * getConstant('avogadro') * conversion/ \ + (3.0 * 1000 * log(10) * (4.0 * pi * getConstant('electric constant')) * \ + pow(getConstant('c')/100, 2.0) * getConstant('planck')) + + #set defaults + defaults = [['type','opa'],['shape','gaussian'],['units','nm'],['points',5000],['gamma',0.02]] + for default in defaults: + spectrum.setdefault(default[0],default[1]) + + #get poles and residues + poles = array([sub['excitation energy'] for sub in spectrum['data']]) + if spectrum['type'] == 'opa': + residues = array([norm(sub['electric transition dipole (length gauge)'])**2 for sub in spectrum['data']]) + transform = lambda x: x*x + elif spectrum['type'] == 'ecd': + residues = array([sub['rotatory strength (length gauge)'] for sub in spectrum['data']]) + transform = lambda x: x + + #units - 'c' in cm, m->nm + units = spectrum['units'] + if units == 'nm': + unitFactor = getConstant('c') * getConstant('planck') * 1e7 / getConstant('Eh') + poles = unitFactor/poles + if units == 'eV': + unitFactor = getConstant('hartree->eV') + poles *= unitFactor + + #pole axis + margin = (max(poles) - min(poles)) * 0.2 + x = linspace(min(poles) - margin, max(poles) + margin, spectrum['points']) + + #get prefactors + multiplier = prefactor() + + #residues axis + y = multiplier * x * sum([transform(r) * profile(p, d=x, mode='wave') for p, r in zip(poles, residues)], axis=0) + + #bars + bars = multiplier * array([p * transform(r) * profile(p, mode='max') for p, r in zip(poles, residues)]) + + return {'x' : x, 'y' : y, 'poles' : poles, 'bars' : bars} + +def td_ccsd(molAtom, molBasis, ts, td, ls, ld, ims, fockMOspin, eriMOspin, run, metrics): + #time-dependent coupled-cluster singles and doubles Nascimento-2016 (see md file) + + interval, cycles, polarization = run + spinOrbitals, nElectrons = metrics + + #get spin MO dipole + from post import dipoleComponent + + mu = dipoleComponent(molAtom, molBasis, polarization, 'origin') + muMOspin = buildFockMOspin(spinOrbitals, rhf.C, mu) + + #we have full spin dimensioned arrays rather than sliced o,v + dipoleTrace = trace(muMOspin[:nElectrons, :nElectrons]) + + #right dipole function #[18] + rightHandFunction = [] + rightHandFunction.append(dipoleTrace) + rightHandFunction.append(muMOspin) + rightHandFunction.append(zeros_like(ld)) + + #left dipole function + leftHandFunction = [] + lhf = dipoleTrace + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + lhf += muMOspin[i,a] * ls[i,a] + leftHandFunction.append(lhf) + + lhf = muMOspin + dipoleTrace *ls + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for e in range(nElectrons, spinOrbitals): + lhf[i,a] += muMOspin[e,a] * ls[i,e] + for m in range(0, nElectrons): + lhf[i,a] -= muMOspin[i,m] * ls[m,a] + for e in range(nElectrons, spinOrbitals): + lhf[i,a] += ld[i,m,a,e] * muMOspin[e,m] + leftHandFunction.append(lhf) + + lhf = dipoleTrace * ld + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for j in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + lhf[i,j,a,b] += ls[i,a] * muMOspin[j,b] - ls[i,b] * muMOspin[j,a] - \ + ls[j,a] * muMOspin[i,b] + ls[j,b] * muMOspin[i,a] + for e in range(nElectrons, spinOrbitals): + lhf[i,j,a,b] += ld[i,j,e,b] * muMOspin[e,a] - ld[i,j,e,a] * muMOspin[e,b] + for m in range(0, nElectrons): + lhf[i,j,a,b] += -muMOspin[i,m] * ld[m,j,a,b] + muMOspin[j,m] * ld[m,i,a,b] + leftHandFunction.append(lhf) + + #get explicit lambda intermediates - put back diagonals + fae, fmi, fme, wmnij, wabef, wmbej, wmnie, wamef, wmbij, wabei = ims + fae += fockMOspin[:, :] + fmi += fockMOspin[:, :] + + def dtRightDipoleFunction0(mr1, mr2): + #time derivative of rightHandFunction[0] #[24] + + dt = 0.0 + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + dt += mr1[i,a] * fae[i,a] + for j in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + dt += 0.25 * mr2[i,j,a,b] * eriMOspin[i,j,a,b] + return dt * -1j + + def dtRightDipoleFunction1(mr1, mr2): + #time derivative of rightHandFunction[1] #[25] + #x is offset because dipole function is [o,v] not [s,s] + + dt = zeros_like(mr1, dtype=complex) + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + dt[i,a] += mr1[i,b] * fae[a,b] + for j in range(0, nElectrons): + dt[i,a] += mr1[j,b] * wmbej[j,a,b,i] + dt[i,a] += mr2[i,j,a,b] * fme[j,b] + for k in range(0, nElectrons): + dt[i,a] -= 0.5 * wmnie[j,k,i,b] * mr2[j,k,a,b] + for c in range(nElectrons, spinOrbitals): + dt[i,a] += 0.5 * mr2[i,j,b,c] * wamef[a,j,b,c] + for j in range(0, nElectrons): + dt[i,a] -= fmi[j,i] * mr1[j,a] + return dt * -1j + + def dtRightDipoleFunction2(mr1, mr2): + #time derivative of rightHandFunction[2] #[26]+ccsd terms + + #intermediates + ia = zeros_like(mr1) + ic = zeros_like(mr1) + for m in range(0, nElectrons): + for n in range(0, nElectrons): + for i in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + ia[i,m] += mr1[n,e] * wmnie[m,n,i,e] + for f in range(nElectrons, spinOrbitals): + ic[i,m] += 0.5 * mr2[i,n,e,f] * eriMOspin[m,n,e,f] + + ib = zeros_like(mr1) + id = zeros_like(mr1) + for a in range(nElectrons, spinOrbitals): + for m in range(0, nElectrons): + for e in range(nElectrons, spinOrbitals): + for f in range(nElectrons, spinOrbitals): + ib[a,e] -= mr1[m,f] * wamef[a,m,e,f] + for n in range(0, nElectrons): + id[a,e] += 0.5 * mr2[m,n,a,f] * eriMOspin[m,n,e,f] + + dt = zeros_like(mr2, dtype=complex) + for i in range(0, nElectrons): + for j in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + for b in range(nElectrons, spinOrbitals): + for m in range(0, nElectrons): + dt[i,j,a,b] += mr1[m,b] * wmbij[m,a,i,j] - mr1[m,a] * wmbij[m,b,i,j] + dt[i,j,a,b] += mr2[j,m,a,b] * fmi[m,i] - mr2[i,m,a,b] * fmi[m,j] + dt[i,j,a,b] += ic[i,m] * td[a,b,j,m] - ic[j,m] * td[a,b,i,m] + dt[i,j,a,b] += ia[i,m] * td[a,b,j,m] - ia[j,m] * td[a,b,i,m] + for n in range(0, nElectrons): + dt[i,j,a,b] += 0.5 * mr2[m,n,a,b] * wmnij[m,n,i,j] + for e in range(nElectrons, spinOrbitals): + dt[i,j,a,b] += -mr1[j,e] * wabei[a,b,e,i] + mr1[i,e] * wabei[a,b,e,j] + dt[i,j,a,b] += mr2[i,j,a,e] * fae[b,e] - mr2[i,j,b,e] * fae[a,e] + dt[i,j,a,b] += ib[a,e] * td[b,e,i,j] - ib[b,e] * td[a,e,i,j] + dt[i,j,a,b] += id[a,e] * td[b,e,i,j] - id[b,e] * td[a,e,i,j] + for m in range(0, nElectrons): + dt[i,j,a,b] += mr2[m,j,a,e] * wmbej[m,b,e,i] - mr2[m,j,b,e] * wmbej[m,a,e,i] - \ + mr2[m,i,a,e] * wmbej[m,b,e,j] + mr2[m,i,b,e] * wmbej[m,a,e,j] + for f in range(nElectrons, spinOrbitals): + dt[i,j,a,b] += 0.5 * mr2[i,j,e,f] * wabef[a,b,e,f] + + return dt * -1j + + + M = [] + for i in range(3): + M.append(rightHandFunction[i] + 1j * 0.0) + dt = [dtRightDipoleFunction0, dtRightDipoleFunction1, dtRightDipoleFunction2] + + #list of results + time = [] + dipoles = [] + + #begin time propogation using Runge-Kutta(4th order) + for cycle in range(cycles): + + t = cycle * interval + + #step 1 + k = [[], [], [], []] + for i in range(3): + k[0].append(dt[i](M[1], M[2])) + + next = [] + for i in range(3): + next.append(M[i] + 0.5 * interval * k[0][i]) + + #steps 2,3,4 + for j in range(1,4): + f = 0.5 + for i in range(3): + k[j].append(dt[i](next[1], next[2])) + if j == 3 : break + if j == 2 : f = 1.0 + for i in range(3): + next[i] = M[i] + f * interval * k[j][i] + + #re-compute dipole function at time + interval + for j in range(3): + M[j] += (interval/6) * (k[0][j] + 2.0 * k[1][j] + 2.0 * k[2][j] + k[3][j]) + + #compute autocorrelation function for this step [13] + autoCorrelation = leftHandFunction[0] * M[0] + for i in range(0, nElectrons): + for a in range(nElectrons, spinOrbitals): + autoCorrelation += leftHandFunction[1][i,a] * M[1][i,a] + for j in range(0, nElectrons): + for b in range(nElectrons, spinOrbitals): + autoCorrelation += 0.25 * leftHandFunction[2][i,j,a,b] * M[2][i,j,a,b] + + time.append(t) + dipoles.append(autoCorrelation) + + return time, dipoles diff --git a/source/uhf.py b/source/uhf.py new file mode 100644 index 0000000..1f6577d --- /dev/null +++ b/source/uhf.py @@ -0,0 +1,255 @@ +from __future__ import division +#import system modules +import numpy as np +from scipy.linalg import fractional_matrix_power as fractPow +from numpy.linalg import eigh, solve, LinAlgError +import sys +#import class modules +from atom import atom, nuclearRepulsion, getConstant +from basis import checkBasis, buildBasis, electronCount +#import user modules +from post import buildDipole +from view import geometry, orbitals, pre, preSCF, SCF, postSCF, post, uhfOrbitals +from integral import buildOverlap, buildKinetic, buildCoulomb, buildEri, \ + buildHamiltonian, iEri, expandEri +from diis import diis_f + +def getOccupancy(e, orbitals, nBasis): + #make occupancy lists + + occupancy = np.zeros((2,nBasis)) + + for spin in range(2): + idx = np.argsort(e[spin]) + + occupancy[spin][idx[:orbitals[spin]]] = 1 + + return occupancy + +def buildUnrestrictedFock(H, eri, cycle, density): + #the unrestricted spin Fock matrices + + nBasis = H.shape[0] + n = nBasis + fock = np.array([H, H]) + + #initial guess for each spin is core Hamiltonian + if cycle == 0: + return fock + + fock[0] += np.einsum('rs,pqrs->pq', density[0], eri, optimize=True) - np.einsum('rs,psrq->pq', density[0], eri, optimize=True) + fock[0] += np.einsum('rs,pqrs->pq', density[1], eri, optimize=True) + fock[1] += np.einsum('rs,pqrs->pq', density[1], eri, optimize=True) - np.einsum('rs,psrq->pq', density[1], eri, optimize=True) + fock[1] += np.einsum('rs,pqrs->pq', density[0], eri, optimize=True) + + return fock + +def buildUnrestrictedDensity(c, orbitals): + #alpha and beta spin density matrices + + nBasis = c[0].shape[0] + density = np.zeros((2, nBasis, nBasis)) + + for spin in range(2): + density[spin] = np.einsum('pr,qr->pq', c[spin][:, :orbitals[spin]], c[spin][:, :orbitals[spin]], optimize=True) + return density + +def rmsDensity(density, preDensity): + #compute RMS of density matrix + + return np.sqrt(np.mean(np.square(density - preDensity))) + + +def rebuildCenters(molAtom, molBasis, geo): + #a change of geometry means atom.center and basis.center need updating + for atom in range(0, len(molAtom)): + molAtom[atom].center = geo[atom, :] + + for basis in range(0, len(molBasis)): + if molBasis[basis].atom == atom: + molBasis[basis].center = geo[atom, :] + + return molAtom, molBasis + +def scf(molAtom, molBasis, run, show): + + global density_total, c, occupancy + + #options + name, basisName, diisStatus, integralEngine, gaugeOrigin, hamiltonianGuess, charge, multiplicity, \ + iterations, diisCapacity, convergence, uhfmix, p, _, _, _, _ = run.values() + + #pre-SCF matrices - S{overlap} T{1e kinetic/exchange/resonance} V{1e Coulomb} ERI(2e electron repulsion) + if integralEngine == 'native': + S = buildOverlap(molBasis) + T = buildKinetic(molBasis) + V = buildCoulomb(molAtom, molBasis) + ERI = buildEri(molBasis) + elif integralEngine == 'aello': + from aello import aello + S, T, V, ERI = aello(molAtom, molBasis) + + coreH, initialFock = buildHamiltonian(hamiltonianGuess,S,T,V) + + nBasis = S.shape[0] + ERI = expandEri(ERI, nBasis) + + density = np.zeros((2, nBasis, nBasis)) + + #orthogonalise matrix X + X = np.zeros((nBasis, nBasis)) + X = fractPow(S, -0.5) + + #check multiplicity valid for electron count + electrons = electronCount(molAtom, charge) + + unpaired = (multiplicity - 1) + paired = electrons - unpaired + + if ((paired + unpaired) != electrons): + print('multiplicity not compatible') + post(False) + sys.exit('multiplicity not compatible') + + #alpha and beta spin orbital counts + orbitals = [(electrons - unpaired)//2 + unpaired, (electrons - unpaired)//2] + if 'orbitals' in show: + uhfOrbitals(orbitals[0], orbitals[1], multiplicity) + + #define storage for diis + if diisStatus == 'on': + diis = diis_f(diisCapacity) + + #SCF loop + for cycle in range(iterations): + + #build fock matrices and orthogonalise + if cycle == 0: + fock = buildUnrestrictedFock(initialFock, ERI, cycle , density) + else: + fock = buildUnrestrictedFock(coreH, ERI, cycle , density) + + #do diis if selected + if (cycle != 0) and (diisStatus == 'on'): + fock = diis.build(fock, density, S, X) + + #compute SCF energy + energy = 0.0 + for i in range(0, len(molBasis)): + for j in range(0, len(molBasis)): + energy += 0.5 * density[0][i,j] * (fock[0][i,j] + coreH[i,j]) + for i in range(0, len(molBasis)): + for j in range(0, len(molBasis)): + energy += 0.5 * density[1][i,j] * (fock[1][i,j] + coreH[i,j]) + + #orthogonalise fock matrix + e = np.zeros((2, nBasis)) + c = np.zeros_like(density) + for spin in range(2): + orthogonal_fock = np.dot(X.T, np.dot(fock[spin], X)) + e[spin] , orthogonal_c = eigh(orthogonal_fock) + c[spin] = np.dot(X, orthogonal_c) + + #break symmetry + if (orbitals[0] == orbitals[1]) and (cycle == 0): + #mix the AOs (rows) + cHOMO = c[0][orbitals[0]-1,:] + cLUMO = c[0][orbitals[0],:] + c[0][orbitals[0]-1,:] = 1.0/((1 + uhfmix**2))**0.5*(cHOMO + uhfmix*cLUMO) + c[0][orbitals[0],:] = 1.0/((1 + uhfmix**2))**0.5*(-uhfmix*cHOMO + cLUMO) + + #calculate densities over occupied MO + occupancy = getOccupancy(e, orbitals, nBasis) + density = buildUnrestrictedDensity(c, orbitals) + + #convergence control + if cycle != 0: + deltaEnergy = abs(preEnergy - energy) + if 'SCF' in show: + SCF(energy, deltaEnergy, (rmsDensity(density[0], preDensity[0]) + rmsDensity(density[1], preDensity[1]))*0.5 ,\ + cycle, diisStatus, iterations, convergence) + + if (deltaEnergy < convergence) and (rmsDensity(density[0], preDensity[0]) < convergence) \ + and (rmsDensity(density[1], preDensity[1]) < convergence) : + break + + preEnergy = energy + preDensity = density + + #if failed to converge exit with messages + if cycle == iterations: + print('SCF failed to converge in ' + str(cycle) + ' iterations') + if diisStatus == 'off': print('Try diis = \'on\'') + + post(False) + sys.exit('convergence failure') + + #final eigensolution of final Fock matrix are orbital energies (e) and MO coefficients(C) + totalEnergy = energy + nuclearRepulsion(molAtom) + + #spin analysis + spinMatrix = np.dot(c[1][:, :orbitals[1]].T, np.dot(S, c[0][:, :orbitals[0]])) + spinContamination = orbitals[1] - np.vdot(spinMatrix, spinMatrix) + density_total = density[0] + density[1] + spin_density = density[0] - density[1] + + def spinSquare(c, occupancy, S): + #compute + + #get occupied molecular eigenvectors + cOccupied = [c[0]*occupancy[0], c[1]*occupancy[1]] + moOccupied = [cOccupied[0][:,~np.all(cOccupied[0]==0, axis=0)], cOccupied[1][:,~np.all(cOccupied[1]==0, axis=0)]] + nOccupied = [moOccupied[0].shape[1], moOccupied[1].shape[1]] + + #components of total spin + spin = np.dot(moOccupied[0].T, np.dot(S, moOccupied[1])) + spin_xy = (nOccupied[0] + nOccupied[1]) * 0.5 - np.einsum('ij,ij->', spin, spin) + spin_z = (nOccupied[0] - nOccupied[1])**2 * 0.25 + spin_total = (spin_xy + spin_z) + + multiplicity = np.sqrt(spin_total + 0.25) - 0.5 + + return spin_total, multiplicity*2 + 1 + + total_spin, multiplicity = spinSquare(c, occupancy, S) + + if 'SCF' in show: + postSCF([totalEnergy, cycle, energy],'uhf') + + if 'postSCF' in show: + postSCF([e[0], e[1], density_total, spin_density, total_spin, spinContamination, multiplicity], 'uhf-post') + + if 'ch' in p: + population = [] + population.append(np.einsum('ij,ji->i', density[0], S, optimize=True)) + population.append(np.einsum('ij,ji->i', density[1], S, optimize=True)) + + mulliken = [] + atomCharge = np.zeros((2,len(molAtom))) + atomSpinCharge = np.zeros(atomCharge.shape[1]) + totalCharge = np.zeros(2) + + for spin in range(2): + for i in range(population[spin].shape[0]): + mulliken.append([molBasis[i].symbol, molAtom[molBasis[i].atom].id, round(population[spin][i],6)]) + atomCharge[spin][molBasis[i].atom] += round(population[spin][i],6) + totalCharge[spin] += population[spin][i] + + spinPopulation = np.einsum('ij,ji->i', spin_density, S) + for i in range(spinPopulation.shape[0]): + atomSpinCharge[molBasis[i].atom] += spinPopulation[i] + + atoms = [] + for atom in molAtom: + atoms.append([atom.id, atom.number]) + + postSCF([nBasis, mulliken, totalCharge, atomCharge, atoms, spinPopulation, atomSpinCharge], 'uhf-mull') + + if 'di' in p: + import aello + dipoles = buildDipole(molAtom, molBasis, density_total*0.5, gaugeOrigin) + + #clean up outfile + post() + + return totalEnergy \ No newline at end of file diff --git a/source/view.py b/source/view.py new file mode 100644 index 0000000..1e2a7fb --- /dev/null +++ b/source/view.py @@ -0,0 +1,1051 @@ +from __future__ import division +from atom import weight, seperation, angle, oopAngle, dihedral, massCenter, bondMatrix, \ + inertiaTensor, principalMoments, rotor, rotationalConstants, symbol, \ + nuclearRepulsion, getConstant, isBond, covalentRadius +from basis import electronCount, orbitalType, aufbau +from integral import iEri +from numpy import sqrt, zeros, linspace, sum +import math +import matplotlib.pyplot as py + +def delimiter(f): + #horizontal line + f.write('

    ') + +def pre(name, type): + + # open HTML output file and write and \n\n') + # start + f.write('\n') + f.write('\t

    ') + f.write('\tHARPY ' + type.upper() + ' output for ' + name + '

    ') + f.close() + +def geometry(atoms): + + f = open('harpy.html','a') + # start ATOMS section======================================================================================================== + f.write('\n\t

    atoms

    \n') + f.write('\t

    number of atoms is ' + str(len(atoms)) + '

    ') + # list in input data + f.write('\n\n\t\n\t\t') + f.write('\n\t\t') + for i in range(0, len(atoms)): + f.write('\n\t\t',) + for j in range(0,3): + f.write('',) + f.write('') + f.write('\n\t
    atomic input data
    idnumberxyzweight
    ' + str(i+1) + '' + atoms[i].id + '' + str(atoms[i].number) + '' + str(atoms[i].center[j]) + '' + str(weight[atoms[i].number-1]) + '
    ') + + # bond lengths + if len(atoms) != 1: + f.write('\n\t
    \n\t\n\t\t\n\t\t') + for i in range(0, len(atoms)): + for j in range(i+1, len(atoms)): + # only seperation under 4 bohr + if isBond(atoms, i, j): + d = seperation(atoms,i,j) + f.write('\n\t\t') + f.write('\n\t
    interatom seperations
    atomsd (bohr)
    ' + atoms[i].id + '-' + atoms[j].id + '' + str(round(d,3)) + '
    ') + + # angles + if len(atoms) > 2: + f.write('\n\t
    \n\t\n\t\t\n\t\t') + for i in range(0, len(atoms)): + if sum(bondMatrix(atoms)[i,:]) <= 1: + continue + for j in range(i+1, len(atoms)): + if isBond(atoms,i,j): + for k in range(j+1, len(atoms)): + if k!=j and isBond(atoms,i,k): + f.write('\n\t\t') + f.write('\n\t
    interatom angles
    atomsangle
    ' + atoms[j].id + '-' + atoms[i].id + '-' + atoms[k].id + \ + '' + str(round(angle(atoms,j,i,k),2)) + '
    ') + + #out-of-plane angles + if len(atoms) > 3: + f.write('\n\t
    \n\t\n\t\t\n\t\t') + for i in range(0, len(atoms)): + for k in range(0, len(atoms)): + for j in range(0, len(atoms)): + for l in range(0, j): + if (i!=j) and (i!=k) and (i!=l) and (j!=k) and (k!=l): + if isBond(atoms,i,k) and isBond(atoms,k,j) and isBond(atoms,k,l) : + f.write('\n\t\t
    out-of-plane angles
    atomsangle
    ' + atoms[i].id + '-' + atoms[j].id + '-' + atoms[k].id + '-' + atoms[l].id + \ + '' + str(round(oopAngle(atoms,i,j,k,l),2)) + '') + f.write('\n\t
    ') + + #dihedral + f.write('\n\t
    \n\t\n\t\t\n\t\t') + for i in range(0, len(atoms)): + for j in range(0, i): + for k in range(0, j): + for l in range(0, k): + if (seperation(atoms,i,j) < 4) and (seperation(atoms,k,j) < 4) and (seperation(atoms,k,l) < 4): + f.write('\n\t\t
    dihedral angles
    atomsangle
    ' + atoms[i].id + '-' + atoms[j].id + '-' + atoms[k].id + '-' + atoms[l].id + \ + '' + str(round(dihedral(atoms,i,j,k,l),2)) + '') + f.write('\n\t
    ') + + #center of mass + f.write('\n\t
    \n\t\n\t\t\n\t\t',) + com = massCenter(atoms) + for i in range(0, 3): + f.write('',) + f.write('\n\t
    center of mass
    xyz
    ' + str(round(com[i],3)) + '
    ') + + #connection matrix + f.write('\n\t
    \n\t\n\t\t\n\t\t') + for i in range(0,len(atoms)): + f.write('',) + f.write('') + bonds = bondMatrix(atoms) + for i in range(0, len(atoms)): + f.write('') + for j in range(0, len(atoms)): + if bonds[i,j] == 1: + f.write('') + else: + f.write('') + f.write('') + f.write('\n\t
    inferred bonds
    ' + atoms[i].id + '
    ' + atoms[i].id + 'X
    ') + + #inertia tensor + tensor = inertiaTensor(atoms) + + f.write('\n\t
    \n\t\n\t\t\n\t\t') + for i in range(0,3): + f.write('\n\t\t') + f.write('\n\t
    inertia tensor
    xyz
    ' + str(round(tensor[i,0],6)) + '' + str(round(tensor[i,1],6)) + '' \ + + str(round(tensor[i,2],6))+ '
    ') + + #principal moments + pm = principalMoments(atoms) + + f.write('\n\t
    \n\t\n\t\t') + f.write('\n\t\t\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    principal moments (amu bohr2)
    IaIbIc
    ' + str(round(pm[0],6)) + '' + str(round(pm[1],6)) + '' \ + + str(round(pm[2],6))+ '
    ') + + #rotor type + f.write('\n\t
    \n\t
    rotor type' + rotor(atoms) + '
    ') + + #rotational constants + rc = rotationalConstants(atoms) + + f.write('\n\t
    \n\t\n\t\t') + f.write('\n\t\t\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    rotational constants (g cm-1)
    ABC
    ' + str(round(rc[0],4)) + '' + str(round(rc[1],4)) + '' \ + + str(round(rc[2],4))+ '
    ') + + #nuclear repulsion energy + f.write('\n\t
    \n\t
    nuclear repulsion energy' + str(round(nuclearRepulsion(atoms),8)) \ + + '
    ') + f.close() + +def orbitals(atoms, charge, multiplicity, name, bases, method): + f = open('harpy.html','a') + # start ORBITALS section======================================================================================================== + f.write('\n\t
    \n\t

    orbitals

    \n') + + #number of electrons + f.write('\n\t
    \n\t
    number of electrons' + str(electronCount(atoms,charge)) + '
    ') + + #selected basis + f.write('\n\t
    \n\t
    basis set' + name + '
    ') + + #basis set information + h = open('../basis/' + name + '.gbf', 'r') + text='' + while True: + line = h.readline() + if line.strip() == '' or line[:2] == '!-' : + continue + if line.strip() == '****': + break + text += line[1:].lstrip() + '
    ' + h.close() + if text[0] == 'a': + text = 'C' + text + elif text[0] == 'p': + text = 'S' + text + + f.write('\n\t
    \n\t
    ' + text + '
    ') + + if method == 'rhf': + #orbital information + f.write('\n\t
    \n\t\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    orbital occupancy
    number of basis functions' + str(len(bases)) + '
    number doubly occupied orbitals' + str(int(electronCount(atoms,charge)/2)) + '
    number of virtual orbitals' + str(len(bases) - int(electronCount(atoms,charge)/2)) + '
    ') + else: + alpha = electronCount(atoms,charge) - (multiplicity-1) + f.write('\n\t
    \n\t\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    orbital spin occupancy
    number of alpha orbitals' + str(alpha//2+(multiplicity-1)) + '
    number of beta orbitals' + str(alpha//2) + '
    multiplicity' + str(multiplicity) + '
    ') + + #atomic orbitals + f.write('\n\t
    \n\t\n\t\t\n\t\t',) + if (i+1) % 4 == 0: + f.write('\n\t\t\n\t
    atomic orbitals
    ') + for i in range(0, len(bases)): + type = orbitalType(bases[i].momentum) + + f.write('\n\t\t' + str(i+1) + '' + atoms[bases[i].atom].id + '' + \ + symbol[atoms[bases[i].atom].number-1] + '' + type[0] + '' + type[1:] + '
    ') + f.write('\n\t\t
    ') + + #aufbau occupancy + f.write('\n\t
    \n\t\n\t\t') + f.write('\n\t\t') + for i in range(0 , len(atoms)): + f.write('\n\t\t') + f.write('\n\t\t\n\t
    aufbau atomic occupancies
    idorbitals
    ' + str(i+1) + '' + atoms[i].id + '' + aufbau(atoms[i]) + '
    ') + + f.close() + +def uhfOrbitals(alpha, beta, multiplicity): + f = open('harpy.html','a') + f.write('\n\t
    \n\t\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    orbital spin occupancy
    number of alpha orbitals' + str(alpha) + '
    number of beta orbitals' + str(beta) + '
    multiplicity' + str(multiplicity) + '
    ') + f.close() + +def preSCF(S,K,J,ERI,U, FO, D, IE, guess): + f = open('harpy.html','a') + # start PRE-SCF section======================================================================================================== + f.write('\n\t
    \n\t

    pre-scf

    \n') + f.write('\n\t
    \n\t\n\t\t\n\t
    initial fock guess',) + if guess == 'core': + f.write('core hamiltonian
    ') + elif guess == 'gwh': + f.write('generalised wolfsberg-helmholtz\n\t') + + showMatrix('overlap', S, f) + showMatrix('kinetic', K, f) + showMatrix('Coulomb', J, f) + + f.write('\n\t\n\t
    ') + f.write('\t\n\t\t') + f.write('\t\t\n\t\t') + + n = S.shape[0] + resume = True + count = 0 + totalEri = n*(n+1)*(n*n + n + 2)/8 + for i in range(0 , n): + for j in range(0 , n): + for k in range(0 , n): + for l in range(0 , n): + value = ERI[iEri(i,j,k,l)] + if abs(value) >= 1e-15: + f.write('\n\t\t\t') + count += 1 + if count == 30: + resume = False + break + if not resume: + break + if not resume: + break + if not resume: + break + f.write('\n\t\t\n\t
    two electron repulsion integrals *
    < i j | k l >
    < ' + str(i+1) + ' ' + str(j+1) + ' | ' + str(k+1) + ' ' + str(l+1) + \ + ' >' + str(round(value, 6)) + '
    ') + f.write('\n\t\t

    * non-zero integrals (total ' \ + + str(int(totalEri)) + ') first 30 shown

    ') + + showMatrix('S', U, f) + showMatrix('orthogonal initial Fock', FO , f) + showMatrix('initial density', D ,f) + + f.write('\n\t
    \n\t
    initial SCF electronic energy' + str(round(IE,8)) + '
    ') + + f.close() + +def SCF(e, de, dd, cycle, diis, iterations, convergence): + f = open('harpy.html','a') + # start SCF section======================================================================================================== + if cycle == 1: + f.write('\n\t
    \n\t

    scf

    \n') + f.write('\n\t\t
    iteration limit' + str(iterations) + '
    convergence criterion' \ + + str(convergence) + '
    ') + f.write('\n\t

    direct inversion of the iterative sub-space (diis) is ' \ + + diis + '

    ') + f.write('\n\t\n\t\t') + f.write('\n\t\t') + + else: + f.write('\n\t\t') + +def postSCF(data, type): + f = open('harpy.html','a') + # start post-SCF section======================================================================================================== + #close table from SCF section + if type == 'uhf': + f.write('\n\t
    electronic energy (E)Δ(E)rms(D)
    ' + "%.10f" % (de - e) + '00
    ' + "%.10f" % (e) + '' + "%.6e" % (de) + '' + "%.6e" % (dd) + '
    ') + f.write('\n\t

    SCF converged in ' + str(data[1]) + ' cycles

    ') + f.write('\n\t
    \n\t',) + f.write('\n\t
    \n\t
    final scf electronic energy' + "%.10f" % (data[2]) + '
    final scf total energy' + "%.10f" % (data[0]) + '
    ') + + if type == 'eigen': + f.write('\n\t') + f.write('\n\t

    SCF converged in ' + str(data[1]) + ' cycles

    ') + + f.write('\n\t
    \n\t

    post-scf

    \n') + f.write('\n\t
    \n\t
    final scf total energy' + "%.10f" % (data[0]) + '
    ') + f.write('\n\t
    \n\t\n\t\t') + + for i in range(0, data[2].shape[0]): + f.write('\n\t\t') + f.write('') + for i in range(0, data[2].shape[0]): + f.write('\n\t\t') + f.write('\n\t
    final orbital energies
    ' + str(i+1) + '
    ' + "%.6f" % (data[3][i]) + '
    ') + showMatrix('orbital coeffiecients', data[2], f, '%.6f') + showMatrix('final density matrix', data[4], f, '%.6f') + + if type == 'uhf-post': + f.write('\n\t
    \n\t') + f.write('\n\t\t\n\t\t') + for i in range(0, data[0].shape[0]): + f.write('\n\t\t') + f.write('') + for i in range(0, data[0].shape[0]): + f.write('\n\t\t') + f.write('\n\t\t\n\t\t') + for i in range(0, data[1].shape[0]): + f.write('\n\t\t') + f.write('') + for i in range(0, data[1].shape[0]): + f.write('\n\t\t') + + f.write('\n\t
    final orbital energies
    alpha
    ' + str(i+1) + '
    ' + "%.6f" % (data[0][i]) + '
    beta
    ' + str(i+1) + '
    ' + "%.6f" % (data[1][i]) + '
    ') + showMatrix('total density matrix',data[2],f, '%.6f') + showMatrix('spin density matrix',data[3 ],f, '%.6f') + + f.write('\n\t

    <S2> is ' \ + + str(round(data[4],6))) + f.write('\n\t

    spin contamination is ' \ + + "%.6f" % data[5]) + f.write('\n\t

    multiplicity is ' \ + + "%.6f" % data[6]) + + if type == 'uhf-mull': + f.write('\n\t

    \n\t') + f.write('\n\t\t') + for i in range(data[0]): + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    mulliken population analysis
    atomorbitalαβspin density
    ' + data[1][i][1] + '' + data[1][i][0] + '' + str(data[1][i][2]) + \ + '' + str(data[1][i+data[0]][2]) + '' + str(round(data[5][i],6)) + '
    Σ' + str(round(data[2][0])) + '' + str(round(data[2][1])) + '' + \ + str(round(sum(data[5]),6)) + '
    ') + + f.write('\n\t

    \n\t') + f.write('\n\t\t') + for i in range(data[3].shape[1]): + f.write('\n\t\t') + f.write('\n\t
    reduced to atomic centers
    atomαβα+βchargespin density
    ' + data[4][i][0] + '' + str(round(data[3][0][i],6)) + '' + str(data[3][1][i]) + \ + '' + str(round(data[3][0][i]+data[3][1][i],6)) + '' + str(round(data[4][i][1] - \ + data[3][0][i]-data[3][1][i],6)) + '' + str(round(data[6][i],6)) +'
    ') + + + if type == 'mulliken': + delimiter(f) + f.write('\n\t') + f.write('\n\t') + f.write('') + for i in range(0, len(data[1])): + f.write('',) + f.write('') + for i in range(0, len(data[3])): + f.write('',) + f.write('') + for i in range(0, len(data[3])): + f.write('',) + + if type == 'lowdin': + f.write('') + for i in range(0, len(data[0])): + f.write('',) + f.write('') + for i in range(0, len(data[0])): + f.write('',) + + f.write('\n\t
    charge analysis
    orbitalatomdensity
    Mulliken
    ' + str(i+1) + '' + data[3][data[1][i].atom].id + '' \ + + str(round(data[0][i], 4)) + '
    reduced To atoms centers
    ' + data[3][i].id + '' \ + + str(round(data[2][i], 4)) + '
    corrected for charge
    ' + data[3][i].id + '' \ + + str(round(-data[2][i] + data[3][i].number, 4)) + '
    ' + type[0].upper() + type[1:] + '
    ' + data[1][i].id + '' \ + + str(round(data[0][i], 4)) + '
    corrected for charge
    ' + data[1][i].id + '' \ + + str(round(-data[0][i] + data[1][i].number, 4)) + '
    ') + + if type == 'bonds': + delimiter(f) + f.write('\n\t') + f.write('\n\t',) + for i in range(1,len(data[0])): + f.write('',) + f.write('') + for i in range(len(data[0])): + f.write('\n\t\t',) + if i != 0: f.write('',) + for j in range(1,len(data[0])): + if j > i: + f.write('',) + f.write('') + + f.write('\n\t
    Mayer bond orders and valence
    ' + data[0][i].id + 'valence
    ' + data[0][i].id + '' + str(data[1][i,j]) + '' + str(data[2][i]) + '
    ') + + if type == 'energy': + delimiter(f) + f.write('\n\t') + f.write('\n\t') + lookup = ['k','n', 'j','1','2','t','p','tk','v','b','e~'] + for i in range(0, len(lookup)): + f.write('\t\t') + f.write('\n\t
    energy partition
    descriptioncomponentsenergy
    ' + data[lookup[i]][1] + '' + data[lookup[i]][2] + '' + \ + str(round( data[lookup[i]][0], 6)) + '
    ') + + if type == 'dipole': + delimiter(f) + f.write('\n\t') + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t
    dipoles
    xyz(au)(debye)
    ' + str(round(data[0], 4)) + '' + \ + str(round(data[1], 4)) + '' + str(round(data[2], 4)) + '' + \ + str(round( sqrt(data[3]), 4)) + '' + str(round( sqrt(data[3])* getConstant('au->debye'), 4) ) + '
    ') + + if type == 'mp2-dipole': + f.write('\n\t') + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t
    mp2 dipoles
    xyz(au)(debye)
    ' + str(round(data[0], 4)) + '' + \ + str(round(data[1], 4)) + '' + str(round(data[2], 4)) + '' + \ + str(round( sqrt(data[3]), 4)) + '' + str(round( sqrt(data[3])* getConstant('au->debye'), 4) ) + '
    ') + + if type == 'quad': + delimiter(f) + f.write('\n\t') + f.write('\n\t' + \ + '') + f.write('\n\t\t' + \ + '') + f.write('\n\t\t') + + f.write('\n\t\t' + '') + f.write('\n\t\t') + f.write('\n\t\t') + + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + + f.write('\n\t
    quadrupoles (debye Å)
    x2y2z2xyyzzx
    ' + str(round(data[0], 4)) + '' + str(round(data[1], 4)) + '' + str(round(data[2], 4)) + '' + str(round(data[3], 4)) + '' + str(round(data[4], 4)) + '' + str(round(data[5], 4)) + '
    traceless
    ' + str(round(data[6], 4)) + '' + str(round(data[7], 4)) + '' + \ + str(round(data[8], 4)) + '' + str(round(data[3], 4)) + '' + str(round(data[4], 4)) + '' + \ + str(round(data[5], 4)) + '
    eigenvalues
    ' + str(round(data[9], 4)) + '' + str(round(data[10], 4)) + '' + \ + str(round(data[11], 4)) +'
    trace is close to zero' + str((data[9]+data[10]+data[11]) < 1e-8) + '
    amplitude' + str(round(data[12], 4)) + '
    asymmetry' + str(round(data[13], 4)) + '
    ') + + if type == 'mp': + delimiter(f) + f.write('\n\t') + f.write('\n\t') + f.write('\n\t') + f.write('\n\t') + + f.write('') + f.write('\n\t') + f.write('') + f.write('\n\t') + f.write('') + f.write('\n\t') + f.write('\n\t
    moller-plesset
    {mp2} parallel spin' + "%.8f" % round(data[0], 8) + '
    {mp2} anti-parallel spin' + "%.8f" % round(data[1], 8) + '
    {mp2} total' + "%.8f" % round(data[0]+data[1], 8)+ '
    {mp3} total' + "%.8f" % round(data[2], 8) + '
    {mp2+mp3} total' + "%.8f" % round(data[0]+data[1]+data[2], 8) + '
    {total energy + mp correction} total' + "%.8f" % \ + round(data[0]+data[1]+data[2]+data[3], 8) + '
    ') + + if type == 'omp': + delimiter(f) + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    orbital optimised mp2
    cycletotal energyΔ(E)
    ' + str(data[0]) + '' + "%15.8f" % data[1] + '' + "%2.5e" % data[2] + '
    ') + + if type == 'mbpt': + delimiter(f) + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    many-body perturbation diagrams
    mp2 correlation' + "%10.8f" % data[0] + '
    mp3 correlation' + "%10.8f" % data[1] + '
    mp4 correlation' + "%10.8f" % data[2] + '
    SCF energy' + "%10.8f" % data[3] + '
    Total corrected energy' + "%10.8f" % data[4] + '
    ') + + if type == 'mplp': + delimiter(f) + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    Laplace transform generated mp2
    method
    reference scf energy' + "%10.8f" % data[1] + '
    parallel spin correlation' + "%10.8f" % (data[0][1]) + '
    anti-parallel spin correlation' + "%10.8f" % (data[0][0]) + '
    total spin correlation' + "%10.8f" % (data[0][0]+data[0][1]) + '
    corrected scf energy' + "%10.8f" % (data[0][0]+data[0][1]+data[1]) + '
    total spin-component scaled' + "%10.8f" % (data[0][0]*1.2+data[0][1]/3) + '
    corrected spin-component scaled' + "%10.8f" % (data[0][0]*1.2+data[0][1]/3+data[1]) + '
    ') + + if (type == 'ci') or (type == 'rpa'): + if type == 'ci': + title = 'configuration interaction' + if type == 'rpa': + title = 'random phase approximation' + delimiter(f) + f.write('\n\t\n\t\t') + for i in range(0, len(data)): + f.write('\n\t\t') + if ((i % 6) == 5) and (i != len(data)): + f.write('\n\t\t\n\t\t') + f.write('\n\t\t\n\t
    ' + title + ' *
    ' + "%.6f" % round(data[i][0], 6) + ' (' + data[i][1] + ')
    ') + f.write('\n\t\t

    * s -singlet, t -triplet

    ') + + if type[:4] == 'cisa': + if type[4] == 's': + degeneracy = 'singles' + elif type[4] == 't': + degeneracy = 'triplets' + + delimiter(f) + f.write('\n\t\n\t\t') + for i in range(0, len(data)): + f.write('\n\t\t') + if ((i % 6) == 5) and (i != len(data)): + f.write('\n\t\t\n\t\t') + f.write('\n\t\t\n\t
    configuration interaction spin-adapted ' + degeneracy + \ + '
    ' + "%.6f" % round(data[i], 6) + '
    ') + + if type == 'fci': + delimiter(f) + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    full configuration interaction
    number of electrons' + str(data[0]) + '
    number of spin orbitals' + str(data[1]) + '
    number of determinants' + str(data[2]) + '
    SCF energy' + "%10.6f" % data[3] + '
    FCI energy' + "%10.6f" % (data[4] + data[5]) + '
    FCI correction' + "%10.6f" % (data[4] + data[5] - data[3]) + '
    ') + + if type == 'cisd': + delimiter(f) + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    ci singles and doubles
    number of electrons' + str(data[0]) + '
    number of spin orbitals' + str(data[1]) + '
    number of determinants' + str(data[2]) + '
    SCF energy' + "%10.6f" % data[3] + '
    CISD energy' + "%10.6f" % (data[4] + data[5]) + '
    CISD correction' + "%10.6f" % (data[4] + data[5] - data[3]) + '
    ') + + if type == 'cis': + delimiter(f) + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + for i in range(0, len(data[3])): + f.write('\n\t\t') + if ((i % 6) == 5) and (i != len(data)): + f.write('\n\t\t\n\t\t') + f.write('\n\t\t\n\t
    ci singles (slater determinants)
    number of electrons' + str(data[0]) + '
    number of spin orbitals' + str(data[1]) + '
    number of determinants' + str(data[2]) + '
    ' + "%.6f" % round(data[3][i]*getConstant('hartree->eV'), 6) + '
    ') + + if type == 'bd': + if len(data) == 0: + f.write('\n\t\t

    block Davidson failed

    ') + else: + f.write('\n\t
    \n\t\n\t\t') + for i in range(0, len(data)): + f.write('\n\t\t') + f.write('\n\t\t\n\t
    block Davidson
    ' + "%.6f" % round(data[i], 6) + '
    ') + + if type == 'ju': + state = -1 + count = 0 + f.write('\n\t
    \n\t\n\t\t') + f.write('\n\t\t') + for i in range(0, len(data)): + if count == 10: + break + if data[i][0] != state: + f.write('\n\t\t') + f.write('\n\t\t\n\t
    CIS significant excitations
    stateenergy(%) excitation
    ' + str(data[i][0]) + '' + "%.6f" % round(data[i][1], 6) + '(' + str(data[i][2]) + \ + ') ' + data[i][3] + '') + state = data[i][0] + count += 1 + else: + f.write('\n\t\t(' + str(data[i][2]) + ') ' + data[i][3] + '
    ') + + f.write('\n\t\t

    contributions over 10% of 10 lowest energy levels

    ') + + + if 'diis' in type: + if data[3] == 2: + delimiter(f) + f.write('

    direct inversion of the iterative sub-space (diis) is ' \ + + data[4] + '

    ') + f.write('\n\t\n\t\t\n\t\t \ + \n\t\t') + f.write('\n\t\t') + else: + f.write('\n\t\t') + + if type == 'ccsd(t)': + f.write('\n\t
    coupled-cluster interations
    ccsd energyΔ(E)Δrms(amplitudes)
    ' + "%.10f" % (data[0] - data[1]) + '00
    ' + "%.10f" % data[0] + '' + "%.6e" % data[1] + '' + "%.6e" % data[2] + '
    ') + f.write('\n\t

    ccsd converged in ' + str(data[0]) + ' cycles

    ') + f.write('\n\t') + f.write('\n\t\t') + f.write('') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('') + f.write('\n\t\t') + f.write('\n\t
    coupled cluster
    mp2 correction' + "%.8f" % round(data[3], 8) + '
    singles and doubles CCSD' + "%.8f" % round(data[1], 8) + '
    perturbative triples CCSD(T)' + "%.8f" % round(data[2], 8) + '
    total ccsd correction' + "%.8f" % round(data[2]+data[1], 8) + '
    total energy ccsd corrected' + "%.8f" % round(data[4]+data[1]+data[2], 8) + '
    ') + + if type == 'lccd': + f.write('\n\t') + f.write('\n\t

    lccd converged in ' + str(data[0]) + ' cycles

    ') + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    linear coupled cluster doubles *
    lccd correction' + "%.8f" % round(data[1], 8) + '
    corrected energy' + "%.8f" % round(data[2]+data[1], 8) + '
    ') + f.write('\n\t\t

    *coupled electron pair approximation (zero)

    ') + + if type == 'ccd': + f.write('\n\t') + f.write('\n\t

    ccd converged in ' + str(data[0]) + ' cycles

    ') + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    coupled cluster doubles
    ccd correction' + "%.8f" % round(data[1], 8) + '
    corrected energy' + "%.8f" % round(data[2]+data[1], 8) + '
    ') + + if type == 'cc2': + f.write('\n\t') + f.write('\n\t

    cc2 converged in ' + str(data[0]) + ' cycles

    ') + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    coupled cluster CC2
    cc2 correction' + "%.8f" % round(data[1], 8) + '
    corrected energy' + "%.8f" % round(data[3]+data[1], 8) + '
    ') + + if type == 'lccsd': + f.write('\n\t') + f.write('\n\t

    lccsd converged in ' + str(data[0]) + ' cycles

    ') + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    linear coupled-cluster singles and doubles
    lccsd correction' + "%.8f" % round(data[1], 8) + '
    corrected energy' + "%.8f" % round(data[2]+data[1], 8) + '
    ') + + if type == '+c': + f.write('\n\t
    ') + if data[0] in ['ccd','ccsd','cc2','lccd','lccsd']: + f.write('\n\t\t') + elif data[0] in ['ccsd(t)']: + f.write('\n\t\t') + else: + f.write('\n\t\t') + + eTotal = data[1]['eHF'] + data[1]['cc'] + f.write('\n\t\t') + if data[0] in ['ccsd(t)']: + f.write('\n\t\t') + eTotal += data[1]['pt'] + if data[0] != 'lambda': f.write('\n\t\t') + f.write('') + f.write('\n\t
    methodcorrectionmp2total electronictotal
    methodsd correctiont perturbationmp2total electronictotal
    methodcorrectiontotal electronictotal
    ' + 'fast ' + data[0] + '' + "%.8f" % round(data[1]['cc'], 8) + '' + "%.8f" % round(data[1]['pt'],8) + '' + "%.8f" % round(data[1]['mp2'], 8) + '' + "%.8f" % round(eTotal, 8) + \ + '' + "%.8f" % round(eTotal+data[1]['nuclear'], 8) + '
    ') + + if type == 'fa': + delimiter(f) + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + for i in range(0, len(data[1])): + f.write('\n\t\t') + f.write('\n\t
    molecular forces (Eha0-1)
    atomxyz
    analytic
    ' + data[1][i].id + '' + "%.6f" % data[0][i,0] + '' + "%.6f" % data[0][i,1] + '' \ + + "%.6f" % data[0][i,2] + '
    ') + + if type == 'fn': + f.write('\n\t') + f.write('\n\t\t') + for i in range(0, len(data[1])): + f.write('\n\t\t') + f.write('\n\t
    molecular forces (Eha0-1)
    numeric
    ' + data[1][i].id + '' + "%.6f" % data[0][i,0] + '' + "%.6f" % data[0][i,1] + '' \ + + "%.6f" % data[0][i,2] + '
    ') + + if type == 'ep': + delimiter(f) + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + koopman = data[2] * data[3] + + for orbital in range(0, len(data[1])): + kpOrbital = data[0] + orbital + 1 + f.write('\n\t\t\t') + if type == 'eps': + f.write('\n\t') + koopman = zeros(len(data[0])) + for i in range(0, len(data[0])): + koopman[i] = data[1][i*2] * getConstant('hartree->eV') + for orbital in range(0, len(data[0])): + f.write('\n\t\t\t') + if type == 'ep3': + f.write('\n\t') + koopman = zeros(len(data[0])) + for i in range(0, len(data[0])): + koopman[i] = data[1][i*2] * getConstant('hartree->eV') + for orbital in range(0, len(data[0])): + f.write('\n\t\t\t') + f.write('\n\t
    electron propogator - Koopman\'s theorem
    HOMO - nKoopman (eV)EP2 (eV)
    ep2 spatial
    ' + "% 4d" % (kpOrbital - data[4] + 1) + '' + "%.4f" % koopman[kpOrbital] + \ + '' + "%.4f" % data[1][orbital] + '
    ep2 spin
    ' + "% 4d" % (len(data[0])-orbital-1) + '' + "%.4f" % koopman[orbital] + \ + '' + "%.4f" % data[0][orbital] + '
    ep3 spin
    ' + "% 4d" % (len(data[0])-orbital-1) + '' + "%.4f" % koopman[orbital] + \ + '' + "%.4f" % data[0][orbital] + '
    ') + + if type == 'gfa': + if data[0] == -1: + delimiter(f) + f.write('\n\t') + f.write('\n\t\t' + \ + '') + f.write('\n\t\t
    Approximate Greens function correction to Koopmans theorem (eV)
    HOMO - nKoopmanorbital relaxationpair relaxationpair removalcorrectionKP + correction
    ' + "% 2d" % data[1] + '' + "%.4f" % data[2] + '' + "%.4f" % data[3] + \ + '' + "%.4f" % data[4] + '' + "%.4f" % data[5] + '' + "%.4f" % data[6] \ + + '' + "%.4f" % data[7] ) + if data[0] == 1: + f.write('\n\t
    ') + + if type == 'po': + delimiter(f) + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t
    polarizability (α) (coupled-perturbed SCF)
    principal polarizabilities
    ' + "%.4f" % data[0][0] + '' + "%.4f" % data[0][1] + '' \ + + "%.4f" % data[0][2] + '
    isotropic' + "%.4f" % data[1] + '
    ') + + if type == 'hyper': + delimiter(f) + f.write('\n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + + f.write('\n\t
    static hyperpolarizability (β) (au)
    xyz
    ' + "%.4f" % data[0][0] + ''+ "%.4f" % data[0][1] + ''+ "%.4f" % data[0][2] + '
    amplitude' + "%.4f" % data[1] + '
    z' + "%.4f" % data[2] + '
    z' + "%.4f" % data[3] + '
    ') + + if type == 'resp': + delimiter(f) + if data[5] == '1': + f.write('

    ') + f.write('\trestrained electrostatic potential charges

    ') + + f.write('
    \n\t') + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + if data[1]['sphere'] == 'con' : s = 'Connolly' + else: s = 'Fibonacci' + f.write('\n\t\t') + if data[1]['points'][0] == 'density': + f.write('\n\t\t') + else: f.write('\n\t\t') + f.write('\n\t\t') + if data[1]['shell'][0] == 1: + f.write('\n\t\t') + f.write('\n\t\t') + else: + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + + f.write('\n\t\t') + f.write('\n\t\t') + + for i in range(len(data[1]['constrain'])): + s = data[1]['constrain'][i] + t = '' + for j in range(len(s[1])): t += str(abs(s[1][j])) + ' ' + if s[1][0] < 0 : + f.write('\n\t\t') + else: + f.write('\n\t\t') + + f.write('\n\t\t') + s = data[1]['restrain'] + f.write('\n\t\t') + f.write('\n\t\t') + if s['h'] : f.write('\n\t\t') + else: f.write('\n\t\t') + + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + for i in range(len(data[2])): + f.write('\n\t\t') + f.write('\n\t\t') + + t = len(data[2]) + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + for i in range(len(data[3])): + f.write('\n\t\t') + f.write('\n\t\t') + if data[5] == '2': + t = len(data[2]) + f.write('\n\t\t') + f.write('\n\t\t') + for i in range(len(data[1]['constrain'])): + s = data[1]['constrain'][i] + t = '' + for j in range(len(s[1])): t += str(abs(s[1][j])) + ' ' + if s[1][0] < 0 : + f.write('\n\t\t') + else: + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + for i in range(len(data[2])): + f.write('\n\t\t') + f.write('\n\t\t') + + t = len(data[2]) + f.write('\n\t\t') + f.write('\n\t\t') + f.write('\n\t\t') + for i in range(len(data[3])): + f.write('\n\t\t') + f.write('\n\t\t') + + if type == 'eom': + delimiter(f) + f.write('\n\t

    equation of motion

    ') + f.write('\n\t

    coupled-cluster singles and doubles calculation
    ') + f.write('\n\t

    molecular basis' + data[0]['basis']+ 'molecular charge' + str(data[0]['charge']) + '
    spherical distribution model' + s + 'surface density' + str(data[1]['points'][1]) + '
    specified points' + str(data[1]['points'][1]) + '
    number of shells' + str(data[1]['shell'][0]) + 'VdW scaling factor' + str(data[1]['shell'][2]) + '
    shell increment' + str(data[1]['shell'][1]) + 'base shell' + str(data[1]['shell'][2]) + '
    effective evaluation points' + str(data[4][0]) + 'restrained iterations' + \ + str(data[4][1]) + 'Δrms (resp - classical)' + str(round(data[4][2],4)) + '
    constrained charges on atoms ' + t + ' are equal
    constrained charges on atoms ' + t + ' sum to ' + str(round(s[0],4)) + '
    A scaling' + str(s['a']) + 'b scaling' + str(s['b']) + 'convergence tolerance' + str(s['tol']) + 'iteration limit' + str(s['cycles']) + '
    hydrogens are restrained
    hydrogens are not restrained
    constrained electrostatic potential charges
    ' + str(round(data[2][i],4)) + '
    restrained electrostatic potential charges
    ' + str(round(data[3][i],4)) + '
    stage two constraints
    restrained iterations' + str(data[4][0]) + 'Δrms (resp - classical)' + \ + str(round(data[4][1],4)) + '
    constrained charges on atoms ' + t + ' are equal
    constrained charges on atoms ' + t + ' sum to ' + str(round(s[0],5)) + '
    constrained electrostatic potential charges
    ' + str(round(data[2][i],4)) + '
    restrained electrostatic potential charges
    ' + str(round(data[3][i],4)) + '
    ') + f.write('\n\t') + f.write('\n\t
    scf energy   ' + str(round(data[0][0],10)) \ + + '
    ccsd energy' + str(round(data[0][1],10)) \ + + '
    total energy' + str(round(data[0][0]+data[0][1],10)) \ + + '
    ') + + f.write('\n\t

            most significant amplitudes
    ') + f.write('\n\t
    \n\t\t\t') + for i in data[1][0]: + if not '0.0 ' in i: f.write('\n\t\t\t') + f.write('\n\t\t\t') + for i in data[1][1]: + if not '0.0 ' in i: f.write('\n\t\t\t') + f.write('\n\t
    tai
    ' + i + '
    tabij
    ' + i + '
    ') + f.write('\n\t') + l = data[4][0] + u = data[4][1] + n = 0 + for i,e in enumerate(data[2]): + if e[0] > l and e[0] < u: + f.write('\n\t\t') + n += 1 + if ((n % 6) == 5) and (n != len(data[2])): + f.write('\n\t\t\n\t\t') + f.write('\n\t\t\n\t
    eom-ccsd
    ' + "%.6f" % round(e[0], 6) + ' (' + e[1] + ')
    ') + f.write('\n\t
    ') + n = 0 + for i,e in enumerate(data[3]): + if e[0] > l and e[0] < u: + f.write('\n\t\t') + n += 1 + if ((n % 6) == 5) and (n != len(data[3])): + f.write('\n\t\t\n\t\t') + f.write('\n\t\t\n\t
    eom-mbpt(2)
    ' + "%.6f" % round(e[0], 6) + ' (' + e[1] + ')
    ') + + if type == 'cogus': + delimiter(f) + f.write('\n\t') + for cluster in data: + if cluster[2] != 0.0: + f.write('\n\t\t') + else: + f.write('\n\t\t') + + f.write('\n\t
    Cluster Operator Generator Using Sympy
    ' + cluster[0] + '' + str(round(cluster[1],10)) + '' + \ + str(round(cluster[2],10)) + '
    ' + cluster[0] + '' + str(round(cluster[1],10)) + '' + \ + '' + '
    ') + f.close() + +def post(exit = True): + f = open('harpy.html','a') + if not exit: + f.write('\n\t

    SCF failed to converged in maximum cycles

    ') + f.write('\n') + f.close() + +def showMatrix(title, matrix, f, precision = '%.4f'): + f.write('\n\t
    \n\t\n\t\t\n\t\t') + for i in range(0, matrix.shape[1]): + f.write('\n\t\t',) + f.write('') + for i in range(0, matrix.shape[0]): + f.write('\n\t\t',) + for j in range(0, matrix.shape[1]): + f.write('\n\t\t',) + f.write('') + f.write('\n\t\t\n\t
    ' + title + '
    ' + str(i+1) + '
    ' + str(i+1) + '' + precision % round(matrix[i,j],int(precision[2])) + '
    ') + + +def matrixHeatPlot(a, title=''): + #display a heat map of matrix 'a' + + py.title(title) + py.imshow(a, interpolation = 'nearest', cmap='jet', alpha=0.5) + py.colorbar() + py.show() + +def evaluateGaussian(iBasis, x ,y , plane, z, normal): + #compute electron distribution due to a Gaussian wavefunction + + planes = { 'xy' : (0,1,2), 'yz' : (1,2,0), 'zx' : (2,0,1)} + axes = planes[plane] + + density = 0.0 + + r = (x - iBasis.center[axes[0]])*(x - iBasis.center[axes[0]]) + \ + (y - iBasis.center[axes[1]])*(y - iBasis.center[axes[1]]) + \ + (z - iBasis.center[axes[2]])*(z - iBasis.center[axes[2]]) + + c = (x - iBasis.center[axes[0]])**(iBasis.momentum[axes[0]]) * \ + (y - iBasis.center[axes[1]])**(iBasis.momentum[axes[1]]) * \ + (z - iBasis.center[axes[2]])**(iBasis.momentum[axes[2]]) + + for i in range(0, len(iBasis.co)): + prims = iBasis.co[i] + exp = math.exp(-iBasis.ex[i]*r) + + if normal: density += prims * c * exp * iBasis.normal[i] + else: density += prims * c * exp + + return density + + +def plotGaussianOverlap(iBasis, jBasis, plane, z, extent, grid, atoms, options = [False, 20]): + #make matrix of plotting points and plot contours + # plane = 'xy'|'yz'|'zx' z displacement from plane, limits [min, max, min, max] + + planes = { 'xy' : (0,1,2), 'yz' : (1,2,0), 'zx' : (2,0,1)} + planeAxes = planes[plane] + + normalise, nContours = options + + fig = py.figure(figsize=(5,5)) + ax = fig.gca() + + if jBasis == None: + ax.set_title('atom ' + atoms[iBasis.atom].id + ' orbitals ' + iBasis.symbol) + else: + ax.set_title(atoms[iBasis.atom].id + '(' + iBasis.symbol + ') ' + atoms[jBasis.atom].id + '(' + jBasis.symbol + ')') + + for i in range(0, len(atoms)): + c = py.Circle(([atoms[i].center[planeAxes[0]], atoms[i].center[planeAxes[1]]]), \ + covalentRadius[atoms[i].number-1]/500, color = '0') + ax.add_artist(c) + for j in range(i+1, len(atoms)): + if isBond(atoms,i,j): + py.plot([atoms[i].center[planeAxes[0]],atoms[j].center[planeAxes[0]]], \ + [atoms[i].center[planeAxes[1]],atoms[j].center[planeAxes[1]]], color = 'k') + + #grid is mesh size, generate grid points + x = linspace(extent[0], extent[1], grid) + y = linspace(extent[2], extent[3], grid) + + #get values + Z = zeros((grid, grid)) + for i in range(0, len(x)): + for j in range(0, len(y)): + Z[j,i] = evaluateGaussian(iBasis, x[i], y[j], plane, z, normalise) + if jBasis != None: Z[j,i] *= evaluateGaussian(jBasis, x[i], y[j], plane, z, normalise) + + heights = linspace(min([min(i) for i in Z]), max([max(i) for i in Z]), nContours) + + if iBasis == jBasis: + map = 'Reds' + else: + map = 'seismic' + + try: + cs = py.contour(x, y, Z, heights, cmap = map) + py.text(extent[0]+0.4, extent[2]+0.4, 'plane is ' + str(plane) + ', elevation ' + str(z)) + py.show() + except: + print('no density') + +def plotMO(C, orbital, plane, z, extent, grid, atoms, bases, options = [True, 60, 1e-8]): + #make matrix of plotting points and plot contours + # plane = 'xy'|'yz'|'zx' z displacement from plane, limits [min, max, min, max] + + planes = { 'xy' : (0,1,2), 'yz' : (1,2,0), 'zx' : (2,0,1)} + planeAxes = planes[plane] + + #options + normalise, nContours, cutoff = options + + fig = py.figure(figsize=(5,5)) + ax = fig.gca() + ax.set_title('molecular orbital ' + str(orbital)) + + #draw molecule + for i in range(0, len(atoms)): + c = py.Circle(([atoms[i].center[planeAxes[0]], atoms[i].center[planeAxes[1]]]), \ + covalentRadius[atoms[i].number-1]/500, color = '0') + ax.add_artist(c) + for j in range(i+1, len(atoms)): + if isBond(atoms,i,j): + py.plot([atoms[i].center[planeAxes[0]],atoms[j].center[planeAxes[0]]], \ + [atoms[i].center[planeAxes[1]],atoms[j].center[planeAxes[1]]], color = 'k') + + #grid is mesh size, generate grid points + x = linspace(extent[0], extent[1], grid) + y = linspace(extent[2], extent[3], grid) + + mo = C[:, orbital] + + #get values + Z = zeros((grid, grid)) + for i in range(0, len(x)): + for j in range(0, len(y)): + Z[j,i] = 0.0 + for m in range(0, len(mo)): + amplitude = evaluateGaussian(bases[m], x[i], y[j], plane, z, normalise) * mo[m] + if abs(amplitude) > cutoff: Z[j,i] += amplitude + + heights = linspace(min([min(i) for i in Z]), max([max(i) for i in Z]),nContours) + + try: + cs = py.contourf(x, y, Z, heights, cmap = 'seismic') + py.text(extent[0]+0.4, extent[2]+0.4, 'plane is ' + str(plane) + ', elevation ' + str(z)) + py.show() + except: + print('no density') + \ No newline at end of file diff --git a/test/ch4-sto-3g.md b/test/ch4-sto-3g.md new file mode 100644 index 0000000..039f98d --- /dev/null +++ b/test/ch4-sto-3g.md @@ -0,0 +1,82 @@ +# Methane in STO-3G basis + +Reference is Crawford project #3 [see](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2303/output/ch4/STO-3G/output.txt). Crawford first and harpy second. + +| Nuclear repulsion | | +|--------------------|----------------| +| | 13.4973044620 | +| | 13.4973044620 | + +| Overlap (1st row) | | | | | | | | | | +|--------------------|-------------|-------------|-------------|-------------|------------|------------|------------|-----------|-----------| +| | 1.0000000 | 0.2483624 | 0.0000000 | 0.0000000 | 0.0000000 | 0.0630068 | 0.0630068 | 0.0630068 | 0.0630068 | +| | 1. | 0.2483624 | 0. | 0. | 0. | 0.0630068 | 0.0630068 | 0.0630068 | 0.0630068 | + +| Kinetic (diagonal) | | | | | | | | | | +|--------------------|-------------|-------------|-------------|-------------|------------|------------|------------|-----------|-----------| +| | 15.8911236 | 0.4722500 | 1.4777281 | 1.4777281 | 1.4777281 | 0.7600318 | 0.7600318 | 0.7600318 | 0.7600318 | +| | 15.8911218 | 0.4722500 | 1.4777281 | 1.4777281 | 1.4777281 | 0.7600319 | 0.7600319 | 0.7600319 | 0.7600319 | + +| Coulomb (diagonal) | | | | | | | | | | +|--------------------|-------------|-------------|-------------|-------------|------------|------------|------------|-----------|-----------| +| | -35.6036270 | -7.0845291 | -7.0427086 | -7.0427086 | -7.0427086 | -4.9835182 | -4.9835182 |-4.9835182 |-4.9835182 | +| | -35.6036251 | -7.0845291 | -7.0427085 | -7.0427085 | -7.0427085 | -4.9835183 | -4.9835183 |-4.9835183 |4.9835183 | + +| Core Hamiltonian | | | | | | | | | | +|--------------------|-------------|-------------|-------------|-------------|------------|------------|------------|-----------|-----------| +| | -19.7125033 | -6.6122791 | -5.5649805 | -5.5649805 | -5.5649805 | -4.2234865 | -4.2234865 |-4.2234865 |-4.2234865 | +| | -19.7125033 | -6.6122791 | -5.5649804 | -5.5649804 | -5.5649804 | -4.2234865 | -4.2234865 |4.2234865 |-4.2234865 | + +| Initial electronic energy | | +|----------------------------|------------------| +| | -85.245230708238 | +| | -85.245230223581 | + +| Final electronic energy | | +|----------------------------|------------------| +| | -53.224154786383 | +| | -53.224154775919 | + + +| Final total energy | | +|----------------------------|------------------| +| | -39.726850324347 | +| | -39.726850313886 | + +| Final density trace | | | | | | | | | | +|---------------------|-------------|-------------|-------------|-------------|------------|------------|------------|-----------|-----------| +| | 1.0329323 | 0.3960228 | 0.3268651 | 0.3268651 | 0.3268651 | 0.3045239 | 0.3045239 | 0.3045239 | 0.3045239 | +| | 1.0329323 | 0.3960228 | 0.3268651 | 0.3268651 | 0.3268651 | 0.3045239 | 0.3045239 | 0.3045239 | 0.3045239 | + +| Dipole | x | y | z | resultant | +|---------------------|-----------------|-----------------|-----------------|----------------| +| | 0.000000000000 | 0.000000000000 | 0.000000000000 | 0.000000000000 | +| | 0.000000000000 | 0.000000000000 | 0.000000000000 | 0.000000000000 | + +| Charges (Mulliken) | C | H | H | H | H | +|---------------------|-------------------|-----------------|-----------------|----------------|----------------| +| | -0.260430681332 | 0.065107670333 | 0.065107670333 | 0.065107670333 | 0.065107670333 | +| | -0.2604308 | 0.0651077 | 0.0651077 | 0.0651077 | 0.0651077 | + +| moller-plesset 2 | | +|----------------------------|------------------| +| | -0.056046676165 | +| | -0.056046675156 | + + + +| CIS | | | | | | +|---------------------|----------------|----------------|----------------|----------------|----------------| +| | 0.6020603967 | 0.6546366260 | 0.7925534416 | 0.8104989266 | 0.8170915540 | +| | 0.60206043 | 0.65463667 | 0.7925535 | 0.81049898 | 0.81709161 | + + +| RPA | | | | | | +|---------------------|----------------|----------------|----------------|----------------|----------------| +| | 0.5656719613 | 0.6390526798 | 0.7914475213 | 0.8103245505 | 0.8167562952 | +| | 0.565672 | 0.63905272 | 0.79144758 | 0.81032461 | 0.81675635 | + +| Coupled cluster | mp2 | sd | t | +|---------------------|------------------|------------------|------------------| +| | -0.056046676165 | -0.078335022658 | -0.000136278738 | +| | -0.056046675157 | -0.078335022268 | -0.000136278714 | diff --git a/test/conformation.md b/test/conformation.md new file mode 100644 index 0000000..d2a2eca --- /dev/null +++ b/test/conformation.md @@ -0,0 +1,166 @@ +# molecular conformation + +One important question is 'what conformation does an individual molecule adopt?'. For example in acetaldehyde H3C-CH-O what conformation does the methyl group adopt with respect to the plane of the aldehyde group? + +![image](https://user-images.githubusercontent.com/73105740/120186892-025d5800-c20c-11eb-8796-3b6501894e85.png) + +There are two logical answers, either 1) a methyl hydrogen lies in the plane and adjacent to the oxygen or 2) it lies in the plane adjacent to the aldehyde hydrogen. Intuition tells us that the (+) hydrogen will be attracted to the (-) oxygen so we expect case 1). This is backed-up by the geometry of the reference acetaldehyde molecule in project.hpf which has geometry 1. But let's assume we don't know the answer and see how to do a conformational analysis. + +We will need some imports + + import rhf + import math + import numpy as np + import atom + + +First we need to know how to rotate a point in space about an arbitrary axis. [This is good site to explain the procedure](https://sites.google.com/site/glennmurray/Home/rotation-matrices-and-formulas/rotation-about-an-arbitrary-axis-in-3-dimensions). A python('ish') version of the algorithm is + + def rotate( a, molAtom, theta): + #rotate by angle theta about axis a + + #radians + theta *= np.pi/180.0 + + #get axis + i = int(a[:a.find('-')]) + j = int(a[a.find('>')+1:]) + + #vector along axis + a,b,c = molAtom[i].center[:] + d,e,f = molAtom[j].center[:] + + #normalise axis + axis = molAtom[j].center[:] - molAtom[i].center[:] + axis /= np.linalg.norm(axis) + u,v,w = axis[:] + + #evaluate trigonmetric functions + s = math.sin(theta) + c = math.cos(theta) + + #tranformation matrix + T = np.eye(4) + T[0,0] = u*u + (v*v+w*w)*c + T[0,1] = u*v*(1.0-c) - w*s + T[0,2] = u*w*(1.0-c) + v*s + T[0,3] = (a*(v*v+w*w) - u*(b*v+c*w))*(1.0-c) + (b*w-c*v)*s + + T[1,0] = u*v*(1.0-c) + w*s + T[1,1] = v*v + (w*w+u*u)*c + T[1,2] = v*w*(1.0-c) - u*s + T[1,3] = (b*(u*u+w*w) - v*(a*u+c*w))*(1.0-c) + (c*u-a*w)*s + + T[2,0] = u*w*(1.0-c) - v*s + T[2,1] = v*w*(1.0-c) + u*s + T[2,2] = w*w + (u*u+v*v)*c + T[2,3] = (c*(u*u+v*v) - w*(a*u+b*v))*(1.0-c) + (a*v-b*u)*s + + return T + +This takes a definition of the rotation axis given as eg '0->1' the arrow points towards the rotated atoms. So in out example C1 (atom 0) is the methyl carbon (and has the atoms to be rotated) and C2 (atom 1) is the aldehyde carbon, so out rotor will be '1->0'. *molAtom* is the molecular atom object containing the geometry and *theta* is the angle to be rotated through in **degrees**. The routine returns a transformation matrix which has dimension [**4**, **4**]. + +Next we can define the conformation analysis by + + #define conformation range + angles = {'start' : 0, 'increment' : 5, 'number' : 25, 'rotor' : '1->0'} + + +We need to know which subset of the atoms to rotate, we could give them as a manually prepared list or write an automatic procedure along the lines of + + def rotationGroup(i, group, rotor): + #get the atoms to be rotated + + #atom connections + bond = atom.bondMatrix(molAtom) + row = bond[i,:] + + #recurse connections of this atom + for j in range(bond.shape[1]): + + if rotor == j: continue + if (i != j) and (row[j] == 1) and not (j in group): + group.append(j) + rotationGroup(j, group, rotor) + + return group + +This takes *i* the atom who's connected atoms are required, *group* is a list of the atoms in the rotated group found so far and *rotor* is the atom i in the axis definition 'i->k. The connections of the atom i are found from the bond matrix row (i), if the atom is the *rotor* we go on the the next atom as we don't want any atoms connected to that end of the axis of rotation. Now if the atom is not the atom i and there is a connection (bond matrix element is 1) and we don't already have the atom in our group, then add it to the group and see whats connected to that atom. Thus we end up with a list of atoms to be rotated, in our case the list is + + [4, 0, 5, 6] + +We finally have to remove the k end of 'i->k' when group is returned. This is done by + + #get axis + a = angles['rotor'] + i = int(a[:a.find('-')]) + j = int(a[a.find('>')+1:]) + + #get matrix of column vectors of atoms to be rotated + group = [] + group = rotationGroup(j, group, i) + group.remove(j) + +We now have our group of atom to rotate + + [4, 5, 6] + +get the molecular geometry, define a matrix of the geometry of the atoms to be rotated, and a matrix to hold the transformed molecular geometry after rotation. Note the column vector must be [x, y, z, 1] to be compatible which transformation matrix which is why we initialise rotationGroup matrix to ones not zeros. + + nRotate = len(group) + rotationGroup = np.ones((4, nRotate)) + + for p in range(nRotate): + rotationGroup[:3, p] = molAtom[group[p]].center[:] + + geo = np.zeros((nAtoms,3)) + + +Now the main loop + + for theta in range(angles['number']): + + #get rotation matrix + phi = angles['start'] + angles['increment'] * theta + T = rotate(angles['rotor'], molAtom, phi) + + #rotate about axis + for p in range(nAtoms): + if p in group: + idx = group.index(p) + geo[p,:] = np.dot(T, rotationGroup)[:3,idx] + else: + geo[p,:] = molAtom[p].center[:] + + #update geometry + molAtom, molBasis = rhf.rebuildCenters(molAtom, molBasis, geo) + +Calulate the angle to be rotated through, get transformation matrix for that rotation, update rotated atom positions, rebuild the atomic centers and we're ready to do the scf calculation. + +Finally if we initialise a list for the energies before the loop + + e = [] + +and after the rebuild add + + #solve + e.append(rhf.scf(molAtom, molBasis, molData, [])) + +then we can finish up with + + import matplotlib.pyplot as pl + + pl.figure() + pl.title('acetaldehyde methyl rotation') + pl.xlabel('angle (degrees)') + pl.yLabel('energy (au)') + pl.plot(range(0, 121,5), e) + pl.show() + +If we run the above code we get + +![](../media/ch3coh.png) + +This shows that scenario 1. is the minimum energy conformation and scenario 2 is, in fact, a maximum. (the geometry is not quite symmetrical so the energy curve is slightly asymmetric). This is the basic idea of how you can explore conformational energy curves and surfaces. + + diff --git a/test/h2-ccsd-eom.md b/test/h2-ccsd-eom.md new file mode 100644 index 0000000..0d30650 --- /dev/null +++ b/test/h2-ccsd-eom.md @@ -0,0 +1,53 @@ +### CCSD +These are the results for H2 in a 3-21g basis + +scf energy is -1.1229402577 Hartree\ +CCSD correction is -0.0248728759 Hartree + +most significant amplitudes +| | +|----------------------------| +|                tai | +|-0.005758 (0, 4) | +|-0.005758 (1, 5) | +|                tabij| +|-0.084054 (1, 0, 3, 2) | +|-0.084054 (0, 1, 2, 3)| +|-0.047829 (0, 1, 4, 5)| +|-0.047829 (1, 0, 5, 4)| +|-0.043512 (1, 0, 3, 6)| + +### EOM-CCSD +| | | | | +|---|---|---|---| +|10.852655 (t)| 15.898409 (s) | 26.471206 (t) | 30.521616 (s) | +|31.881401 (s)| 40.401958 (t) | 41.140826 (s) | 43.232126 (t) | + +results from Gaussian +| | | | | +|---|---|---|---| +|10.8527|10.8527|10.8527|15.8984| +|26.4712|26.4712|26.4712|30.5216| +|31.8814|40.4020|40.4020|40.4020| + +### EOM-MBPT(2) +| | | | | +|---|---|---|---| +|10.657194 (t) | 15.708727 (s) | 26.265493 (t) |30.222336 (s) | +|31.678520 (s) | 40.207311 (t) |40.912816 (s) |43.016807 (t) | + +results from Gaussian +| | | | | +|---|---|---|---| +|10.6572| 10.6572| 10.6572| 15.7087| +| 26.2655| 26.2655| 26.2655| 30.2223| +|31.6785| 40.2073| 40.2073| 40.2073| + +*Gaussian results from JJ Goings* + +### Λ-CCSD +| | | +|-------|----------| +|pseudo-energy | -0.02451418 | + +*agrees with psi4numpy* diff --git a/test/h2-dissociation.md b/test/h2-dissociation.md new file mode 100644 index 0000000..a5b9c85 --- /dev/null +++ b/test/h2-dissociation.md @@ -0,0 +1,27 @@ +# H2 dissociation - a comparison of RHF and UHF + +This follows the study in Szabo & Ostlund on pages 165-167. The idea is to see what happens to a hydrogen molecule as the bond length is moved through the range 0.5 to 12 bohr. With RHF we see an improvement in the energy to a minimum (~-1.2 at ~1.5 bohr) and then a gradual increase asymptotically to a level of ~-5.5 au. Logically one would expect the final energy of the system to be the energy of two individual hydrogen atoms. The energy of a single hydrogen atom is ~0.4666 au so one would expect the total energy of the system given by RHF to be ~-0.9332 not ~-5.5! + +With UHF we see initially a similar behaviour, the curves follow each other through the minimum but then the behaviour changes. Although again the curve tends asymptotically to a value this time it's the expected energy of 2 hydrogen atoms. + +![](../media/h2-dissociation.png) + +In the UHF case for the dissociated molecules there are two MO's so each hydrogen has one to accomodate it's electron, however in the RHF case both electrons must occupy the same MO, this leads to a H+ - H- configuration rather than H - H. This means in the RHF case in addition to the two isolated hydrogen atoms there is still a extra contribution from the one-center electron repulsions due to the fact there are still two electrons sharing an MO. This contribution is half the [00|00] contribution in the H2 case. + +You can run this (given the directory structure here from harpy/source) as + + python3 ../test/h2-dissociation.py + +These plots are using the following molecule definition +``` +name=h2 +matrix=c +diis=off +basis=sto-3g +post={} + +H1 1 0.00000000000000 0.00000000 0.00000000000 +H2 1 1.39838996182773 0.00000000 0.00000000000 + +end +``` \ No newline at end of file diff --git a/test/h2-dissociation.png b/test/h2-dissociation.png new file mode 100644 index 0000000000000000000000000000000000000000..278fd6b865bc27c3ae1afe27c5fa8823abd00f4c GIT binary patch literal 22629 zcmdSBbySw^*DZPj3eu7iB1(sZbc29^fOMC1Nw<_3lz>Qwgn)F2bb}xw4FXaUO1F|y zve)ze_E-Dc=bUlkpTltAczEi*uUKoYIp?~<)l}s1aj0+*1i`w{`Z| z!Dy90kekST*}GakX`3^TjkK2jV*T1lL9@mTyLSl-+}iOJCpS`1{PzP^=E_m4WmH0ZP#oj8}wX1lI{p z#RE_F?V7h-U0rEJy%rf52WTV%{kvls;m3&CT*J|EYvO}NL`1}RiT>Wf_`}eU5IR~H zmIAM#k_Q=L^+iQ58|64eNEZf?HwH*{>tj=L`27b{!B2^_g?3qoxgtK)#ffAePe5~ zGGFhu({zoafkEnQv9E6H_Dti^H$&&(;NWoC?4Y2a{0!gq&B;pZn##b7^CKd9IiJUm zAN%?eQ1UD;cE>d|eii_F8gz3 zMbK+gZ%auj@%Hib++R7=EAcwYcX*ndY?$y5*>qJ@R5UbVqobp1Yma)lT8;Ge?bbs- ze}35Hiw;@y9tSj>rrb+f3 zQsUw6J~HiTZN2<^p^I5L`DTLRlH2i0=93%Ou6h6ddC%MX2p;@>-}?7tyK(1RiT+51 zl@i_V(b2eH<1wG!!sjSlLPFIC55)ZrH}f96K}ScII9a9Vm5lme(It29Ua8&(>73zY zXUmiQwNk@clMm*d)Xq)Al{Tt5l8gD7fm0(R?p?2F9B9lP=USR&LJ6W;u0L82TaP2; z6Qx41_LhP!tqx_~eGqj++~79(!$z;D0AIMW!_CaumNJv(9*Kj)!wg~fJTuX} zn#x8OclX}@eyhycI@g5{T{o!tY_Fbr^u)8GKfTGzt9is>Up?hAo{*5xaEDnX?PfMy zRE4VK-#->JrX96!R4so0?3Cs6T-Vx~?uw*bSXr^z53Bl3!mPsg-L{A*MOjW(^6c01 zLIHlN{!if~80hFQLlgOzFJDG~I)8pNCrFi+oJ>JQWuGi19$g@DELHi8H)Z~<#OY=w zM)dmkdiUoBYK2;o=ldh8!#UGcb{$T3b1eb>{!J;hfByWjw6y$Q=bDo-t<5$zD0v~~ zyT2M1cEw9cO>OAi{kT_f`#L&#I>p{Qv*Pxn1rrl`Gu~_IuPp8}5Fg%!4Vy0NO-D}; zpXM=`lq#vgYiHYG5^$isweS=JYqs89{zzM<;dhji>^N-Nh?g$|&kuAD*I-4B*&o1P zHjceEm@xYBi)e%jOqzZ11LD2(j6FRMMhi9JLKl{n#`0BZYp5+(zm*zlYip~kt2a>R zgij=sLWxatVJ zox`Atg@Hkqfw$`XFs;a6acK9=5gB)c z5*{5M&b9=Io_d@fZov``IQ!l8pRPKyp`oF?yc~8#Vtjnl!8gMkxhOU+u3E)jSfq_^ zOFa#q8_%9Uhq+!Lpb^=et{v?2V)s2i7*FDQDB<+I4&vb1+1?-)!S!Ezdz!^#I^TnT zP^d%=To#s@+P2oD8fGL8my5p9{Aj!kzUl1j%%ba6%Gw0wVURXk0$JSCWy~>xwCK># zuIzgeQ&o2KSFbQBC(kc0Cnh9VQ7rH5aK$K8R91QlQbmoDk&^O39GYqLe%S0gHaO^f zyt`ywb9#E(*x0yH{rGs->Z#OKV&b1WJ3C8DRvv9xSunRuOiX14)$5(t9{R5r=40Yf zycKO6SnXDwq34g23pjKVTf#nDj%V$A!&;SE_6`+q z-s;4c$9&2(T+AT^G*d7pTac4rE$F^CkyA~qn5uC!G%z@6y*Q5!Fi=w~e>BeNmy0d- zg7V7zr=p@F6W_Jm%edq|ety*WdJP_Hf6q^0VuWDOVC+3NzIm<=-95crv@+Z5r%|{M zW3u@*HzGfOg{$=}HYKIrevD0XdeS@K*GDXP8wIy%TO=i~k&)5YuV0Ibi*?J4x?38| zJ6}Rzd;DwuBP%N_TpSk*%by>iw6M+Wg*J{;Y%-2dHr_WkH(QvStE372h79oM_}K2@ z)^H9M(K+07Cb!wM;^K`0^_=}#CkgznAM5KUuzsFEMj|64%k)l|O1>}>P#GGk88Kl0RwUeJ4N7sZi$Rn$1I!YB5&ax2CGg%eg=3mCyvWzzTtA<@SaQ5#rGjMUZ*PJ}JOWe`TsM{+HhiKUN*9 z4fFvcGBS3<%O5F5uajy3)$c>K==C&bE!KFA9(r0JMgyLL!78!}x@ujDy z=YAYhz~Q9L)2C0ZsY=SqI7iIl-u1Ih7`gE5FVd?1b>-Q&{J4yM$_&GA?V`DbgNqC4 zu1eL|$jG3|R$Wiemg4wu+WBZ>e5ZaTgLlr<-oEGvPc8;a6RA3j33=``}pi~F5%+R5IE-xrhXv{4uE32!U_+_*NALQol4wu#H1?xF@3HmEf{uVg^d^QHF zwFI0((ntdk0r*qaV|D0OwE@IN=jQU`y_MG89`>pHbP-R3O6z{u?hf(pIpL@G?(x32 zwwq-lCN9iQ;s4n}U8e%|%8j4a%GQvcLJ4Ul9H*-AsRc&AeH%#Sf7Jd0do!pHvc@f$ z5QmwDY6ycc^1d`J0*+HJLPOnSD}^=ehCbhEVa3*7mkNKYme!J%>aY12LCWa{wvAgH zr)%^pt??;&WN%(=`qhpLfr7QMxu!;doxQlCBDVMw6|1oRby}{0?yN5g@gfK!-(kx~ zRpwq^QBlF;?7Z{!s|FVrSD8B+67;$9=aKNYZdiu@n{D;qH`@Qd{<2UqMRx5PGXn#Z z1W;QrFf%75B~jx;C1c^ybh2LTH9&$OK5fCpH1HZyQqt=}E^ljU4gqJX+`o@n&{1+K zZv?gg%h}LEn4G>N53vQ?sb~hGF$BrXloU#8Y9-l?Z>7}2Zi~#B{>0a>J5X$HZ{MJx zusymC!z)=Q9QXL=Cu~|;+L}?K;h`*<%jkFI4qq z*P-(m0||2fndhvlr$=%1>Mw5WYf0oB2BhTVRB|e*e5`zYd_qEho?M*HH9g*g`3yY! zE#FZ-Iyws1G{tR!ATHMb+FTc_Inj|V9+1pWYU5&K+a*>3y#acBeM<)R2c&@FYc-}H zpTXX%jPC8}k(QRG%HTneUx}pymIEogE3w!_L`1MG@7=pMH4lmQ=TGy9Yb(A-+Ye-g zg@r@7!e!~WXugS)=f@=^jI})ddI6BM<8#0afdF^lo5-oDrwcXnVXJ0HK52O>31cQdQ8aaYdRoi-vA@3*QU?^T zHUnv9&k1Qn-su!inp=N{lp4mu!tzB^u zIk1eg3>I z@CPsf9*xLoSC`Gv_6!tm58=L`yivc%K@jdw{VWNGThkB-`~eQ;tE7u~ZBCTvR{|<* zBlyw>sBgS%25u;fMNrTih6AoVrgsU-s1zQnp0{_Oi+FGM-5*e4fY}!jNe#=+$$=^3 zql)sJ-hrYXezp@KDda5Jg%ca);jvaO_j}H29)Hycrvoy+uzrws@WUQPYyOnn3U)F_}u~D z5IPpgR>4IR zE+e)qB{=;uYzg*IbpbGevYTSOo{z$B_*EDi8(W6ocD;77j_2Cf;Ei`k+gjGt?;%)x z1UJNz6BEAy(NSjH2uVY)_Izz5|7dIa=xFXql434Q;H_*zi9b?o39}8JN^A*#7icer z@CSN&0MSA5*Z~a1!q1;!1r-$`E~fML>dw%gmA#MOE<>j#s% z1#|65h=!z6e_qEp6w=kvS>D<*HZXV@?yUm>!V7AJ4|+y}K8GF!DaUxei*Cm+ut_9f z4&c3|Ce01%!sy7H-tW`v0ip%ho;@D2}&;a$(?%p1?kjqU)8e{@pu28Dk z(%M>p#l#!u>AephKIm~=MjUX)2pqES0w8Mp=E4M_^AFHR{|CPZgo34S#dVY7TpkZc z5FtkSQ}Rx{OY{QHvuUxh**e9S(LVxoCnh1OhU!Cl%a;yda>x$Zl}p6o?=sL}0z)26 za^o#*Z<`DT6&0~n8#vZoBP5LW#bilPOi&yPL%hAc4^=LYjg5JFdPZG&t-!DuuwxHD zj~-DI-6W3)mNpAOhX=57@GxZQVj?1x0#NliAbxy|@87>q_#NouLHVti`<1&5J_TZi z1e$$y1C$#?Xq=p!bTMIJd{p>;qNO32dS{CZsxr7wsATuYbRRYYoY<_j_4W02bE`1J zJC-0)%oiac_85_~@%aFq%gb!u(>%BVY>qP!8j8 zd!`rD|9B}$4g*5YM@%54I&9kj-gjee&NPnOw!vndL{gNk`Ang9cR>6|EMy|Caam(P zY&7LF-Tq$h&^A`A8-)pV%X54dHZ~rr*U8CWFym2~)aQ5SwQ5@I9JD_pL+zO%H?q`{ zlali7;+X<7H`-H_1E9u~yXeG1kf^sBg>G(cbpz%AqndM!47hfj3uWjImxHlLvK%va4U z(4xti13} zgLVBn)BwU$wJdUlfMzeUrT|s`Kl&{t!$Qgs7ju}m*r0k~;>MuIOoF^kQDN7D7p?K^c?=tz*Joo&EZzoy5Pzfa!j z7Jt#Bw4k7)a~!*RB`hp*_OAg8Lw#Cm6C2<59}9va8bl~6#H-SyQRkpg)i+x5?Dg`X zph>1j3aiBdbDX-7QJjHPH7{yQ*4acjC7O&Y>WXi~Nezus=?tc4JKJCtcp;__1VjvN z2jSW04<=bVUQ0=_kzohNC(6n41)QAcb2ZD(`S1N=d}LHxxqMU~LJuK5h0pG*MYK3X z8gb9{Q6LyoUWx^t{UK2m`?0p}o5zxwy)=H|+385r1a#iIp1+}-61C9vDw zjT9S`n60``f7LdO5B;h2NS=HK6BE^wCby;YuH}njRps*wk}K@N8eFrZ&eE#dD2XhJ1J>@jSyFJHcdlQ2`^iw2(6 zB_-+F+ph-$vHGy3Dd5yASHrHwN=r0odBDIb(u@ypWd5bb1&_|)H;)dAypIR>xs)v$ zBql#Zj>V1WHo}4@R=2ihI`ses4zFWzWrbP}HqI&JxJPOWFmC<9>AiZ-eGLTGt=BwD z*Yz`ninJfB?2kF^E%!q~HI-joT`isUtBdx@C~o89Jtm?6NT9&K;9t2y!Dl-ZLoXjG zP@u)8MEj+;7cjJolU#4|ti@^4o#IT6QNE%#V`)MG)rKwp#|zPtWsRM4a~Dw3hnh^l z?S&OUwtVRSyAzPwobLvQpkOWVuf63TJ0q@b7)Q&(r+MJBSwuAoeB0;A^IIMwx552* zo4LRXE{&I;bNOqo(m{zA@T&CLK%&^zdaRGy{XIJlX_T2GXuF%z@WQ(2oxXRN{7A3f zIhNJi$jKnG;`CA-f;YT2D9U>{35qOq3=AL%s|+E4zKn>#z`!`5d;aWM7z-1VTw^ZW z=J@-Ef)1Jt#K6es<>MndrmhLBGmkCo`2!Bd&IOCc4yfV>s2 zQ9k*q#QFSld6Tc{f=me#{`Tv4gl-sWi$3}1NAo?vrP_Dz79qcj`|jV&2H;XSwhk1} z25{!Vm$9&HtgP&6&p?i#my0Y{A3%l>@@uC<>~^fIN3^zrR91PBYs5G^gSwS6lo)}w zzDMP*A%wKEKzc+*MglJge6*d-O%~FZtE;O}1s|?KT?RZ>AkaRWo12htRd188EG{NH zQ(Ew#IduN4lW)FD7xib5O-3w;D{a0Z{T^y>2)SnG=jSISjRX2CNjDBWSl6bD?Y5ly zGCHbNsI|VmJzMMiP}73P6T%E%cqhAKR7SAQ;A0CaBkJd;u%urlbRch^>Q1c>_A&A` z??vHs(lb+_gBmR07 z+62XbC3?^+xwPz24xiPkySzd6So3MAZZ9>Q?FGu<@y&S=G{m;9{|zf&e1?DQR8^MU z$aa$8Ua!*~JnUdukJhICbR{?8ZcBzFO*fwVxun-Zi@rIWL#2(^5g#8<5x_4lE)Jyb z&8sEGjo${s^@&crkb&o0gO7b@cly*vRMfLaFb~vpbOauKD}nsd3aE2-cGf6=#0Rz; zLEq?QVNDxWYLA!1^G{P#sWiEaTLYoOJp{7II%&<@L?{k>zMv|fT}EbYA^O4Lipxu4 zDn?FDClDo^n-6q)6FC+Z7XCqp0A9AYw;>l=BrVK=UIE}cjD?QwnHfdB(SYN?gQsxk zrldHr-7LI&W{-J&@4iaMVp{bmZVdrK&A4vTx6*~~l937B z!+t?92J^?mx^EHXoo<=66TgbIV-^0b5+Vj^A333d87Ph7>Pg(_(05wL(U4t64 ziYXv2cHTI*9REGtQB4=o*3`@ywxtM(QOxZK!B@I}e=WR~FDP%wYdK8WAf2_ZZxPuQ96l**KswbK|(Ob`^M+u8Q=hcC7*?oK|M#V`Ez`xd#{ww4EGBCC%@%U4 z&{fALWva9bHn)SN%~!ay+R-S==ftl9zTt&z2GQjXUR-)Q4G~dHTH5BuMx*^$5z{tB z&_!QKV7BPlCCw{{!(jX7ZtYy)bZ6%hfF@W}n~9*4?aZ~#9fqR`2?w_?nkr?zR>|M#6nya3pxGbnpaA^>FMz*O zCN#x$b$SfMlRS(_ey(WsdUQq8!k^(Q*#!apqvVB#ih)PGaHb-Wa)(c4jnu_`H4UREz|qZ z&RLHp#LyA$LGcoO{?~1-Mku6AVcCLuIXa7-4OA$Up4Bh}1R*p&-5G78;(mq0L*8>{ zMM6Q(D_xj)+1Vcry}jFD*woytq^RhSLL9VkM>3|&`Ju-$ay>1$#n{x;XD|?mx_@~A zOjT4~Z6~5qgRJZXOaWGo-}={8SrH)6LT$2~1%bj71auU^)nZDq{5gsmB*SEoO<~b* z#a&0bA_bj7&O) z%Z+90q++ci;D9{0zfaE0h%+2N4HLTPPY1hdb}}LNG=DN2u`<7 z!VPXW>j*J!@aXR9VrF8>3-?2JA&?t1slebmKX+XxZo9896gLTiD=Yxu5~rD|kyk0g ze&J7(kb%Bk|3)A|U}|gMzJ04KKjIBCNZRYy^FT~5EX1Xy8JU9K zVEW?NZh^%U-r8O?g#Pi|?F%>FsZ`D|H(riLVQSq1$nC(Jz01uV`}Pf0tAg@-2D|#e zT#IcCQf-wg+z3i!d-e={Z=Aq&hJflmQw|Vimc6fNg#57EZm|bu8Wwl~Ln_b^0P4$w z$qnGK%+1YtczG=>EW&L;cA%GkrNu%DLB@I(^_g(>&a+LE{s7B{xThMUNW^(~E(_j4 z=2OqNpI(KSMNFK%H9-_3m($(b`{<{MYMRiGg@ukp5jrXnj{>Qi02(QHts@I-f#F>S z6*e>AFlAV`xVU)IN-X>f8?!-H{g5#Oqj>t)5xbN9Pzx^gb>vUGTQxfi3ph-MoLD(I zVJ$oVOzCTHm!1*$4+?yl1JoTS0FbSL=aDU`si`1Uea(A!sXu0xj&&qI&ghlh0@7q@ z7LVhXpyI9c_;J17?V5@0v*SH{tmJZlt>1@k7Z(+^oF7hGj>M&r-_}z*ks4{t7&2Nd z-6_#fS0T8cTNjRoTqJK!gVORQj3Pw8&Lyj{QM6G#SHsHE(qn6C%)HTkx$i#ESSK2? zva+V8rt0c3UP=(e!Q5eL`nK?!*Y@1GgH#?%WIhI z!}YO``}X}hBU z#jZXYclz@B7ObA@+@?~#z71aaaO1!%Onrf}TAD3^fLfrB+-@RFBddwMu~>_xUgZ)V zg-LO7LEAsqIaC`F7B*4+NEhmj%|x{k*V$V338U8uvG?rh(C+2SV=-d6#$v9Hm=te} zV8yK?Y0uJ6ykz%}03XbF&w<^->8DdFVXkxv{}#`Oxm^1m#rnt_88Q=1Dbg})-OPom zw5ej0O3%>v1j(1DOCPpMFf%g?2?_D>jdpa%G@gT{ML?xbUz?^?g(_W`+CFdnljrY= zuKM09c*|n}d-!EzsCO34faV z?&pG^&a<;qbSwFsNwCAUhWn^o=kSe~$BgW*wMD*cZxRWz9%%OzwdF44vt3A*c=m#G zUx)UtG-wb)x}Wj4f*Xd^PS%(eRlBN1f|mQ*la&(`tAQ{C^2`WuSzex8<4jCfsfz?t zT$n;un?ZyTPns5U5(!ZtD>Bd-Xu$(x*Z_1Xq|2nl!~u{ALF~GA`9z^6 zGu`g~{%sBp#%!C6$IFrz$I;>%7`B&!pIP$IwZl{nS!GRu;0Gay&VIUP3v#luY)VQ> z-83S^G84lp%a9bOEaxVi(xOX>@R7ifCf~6DVoyO9<#U1Po|B!Or<}qAK9I&m%%Q6x zwbqQNk2Td#c0K})xPtI=H0>Pl!f>s!_wGee@%I26;Co#d!-^o}#pz|h6GAOB?p28J zVduTZ2(n`;p2-mR>ucJYw8^Z#%Y#H^8}mZE$y4nr)kkZ4-EE)WD9zL%#)F-1MvNplIVUzW>5q|Qy#m0hgm!*UFYqu; z;pm!}K#3&ybbys!zGZ>%SK92&zD3JeMfDY=O)PHA3AWc^AI4h~JS?-%T{)v@LHC%7 zjm^!o#rKecYqtq80owV;zdWW+#c;uV&W-j~9Y7lxEc`(S=jZ2_d)PlP5V%!6UWF@% zF+qrFhAx%EE!XIZMR+3(LO=q$E{bcPn3w=X^Mjs0@aRyO-+=ND<}8i>(Ko<<8(UkB z7m*y`CfPeY#(C%hnon8Q30aeY;m^s5fNNLHbNeotkOjC*%5u$WcZ~us{~R?n+g1A7-I(6tVhmdXRIOF5 z)%L^ejxu5k8nlZKMJP7%AjBSvfDrY*?)7RFCPc7mf%^jm6T*k`%dq8an4u$lFN1kg zo?{UL>-$JsJ0YL~t!~goTsipJMjFx<4tQ^-!Sju%w-YD|u)P0S+i3_l0SQvlD_v~} zOm7smAS$0`XJ_Aij@kL?lmBivGYnCcs@ssi*>xsFFJb9U3TzM*!fgF}!1XUO8|aUa z7cU}jh@XJc^k5QVzN@tKGZ4L^qg8=^gOoE|-rn90j5-!3rmv5W2M9JO^rh*Aqk;i9 z)K;`Eitz(#8W?wzYI|)dsWvbY0DXDf$2-`UE?PS*s-mFq2fPP_K>C392n-+`jEtSO z6Y;E?AVz^(!5z2-Fg66j7H+-x>zCt=Gr%C6vgj7ut-#r(VTKH8QB^w4HXU~}XM(f} zTFqAQHIs>2=S+iA>xUw4i(#Rmp~tmv+`!aD*VET$nYle(8*P?+cIMxq00c1P1pCYy z+hKF?@hnqwp>{n$&Cg4iMm@bF*G1lS_b!MKA}&{871R#Z#wq5$5pYygRt5k8Q0=;e zzfcGFrV><2+rXwQC~gA30wRgIg~en(lmI|KQ&Lif#6Yn)-4fvE>iWT;^e^N=*o1(S z%=Cb2PI>j&>hksJ{~5%gI2LeT7NJJw$#D0!AZQ4I>n?{242a#96`!|IR)(85=go*Y zIZ+;`+qd~5zXLJ@gVp)j89*vXV?Z{}If zHbtZQd{6%Re|`Znz<6sq%rNK-urj!S0fi`X2+lT0(asboE$=H90C%b+UKeal;OG-? z?{5Leo+s|vZB8L~n_ON_j){>`{P!o4yjdX-n85y*!*x$q_7Wy0IT@Ka&~K5WKI0z*#vcFEW`=(U-4Ni7rVU)kq|}A;>oi zfXM!TegW+C@$nIZZ&4Nd{USf##>vTPFhd*{2M4S_Ctw}w9i=`$Kc7wkH`F%}^kQRU zd2I&DKZX*}XcUiuY2(`?K+UmXmqhl;UPxyd)M6n`Pg$`LQ_W?p4^1G{?X+IBY$pO? z-V6_@qO6Cr??HsH-T#&Rqa)ON;~NJ({Q@LK@T5UNwyb6UH-;xlPE%78NMSHWwgCl{ zmX@X}as0w8`QmIva@p{6vNCgGQhrP~HwYVgsMVvk1#}R~q*ZHaW8?Suu^nG3cyPd3 zD&X7ozfwQ`JG0_m;P=%HS73_!pn3rX59|Snn>X8LW}3m7(NIaGe7D-2C)pE0m_UH} z4!ITr+}R)38MD`2(X`hhI%QEJB~}zF)q(xvn~R^GUNZQFC8A!wY(HW3xAw^a(+hRE z+Lp-^@ajDbH~?a7bF=~6AP?RMpsH|LKva@YVvgMqMt^Ab4Go#V&6$qjft2S6LfBwW z4_!7;T_}tMhE-WDZSBrigH`gW`0D?rBCRhib$W7|CMwIRN))zsPOPILLt^@Hu|{)X zu5jvnNv4^v@<2g>+h3b5hR=0w==(q45>Zci1p*Pwdr5I|rJ=x3lPT)UBZ4=)WJ2(S z{r|YYofyYHU1k##8x5OQ@L^TSC8vJzJ!Ps|RW{4=g%&+;Q1M3!_{YHLzX{ zxO{sm{n1keX?t?e>|L)>SY>x($Y|aK3u(KIJEoGW!C_ca0%BxFMg|zaZe_!Ea{8Pu zkTpD^k7a=RJTJ4XDUOFN{y-qX9RcXIsP)*Ka2?5eP@{_HgHs7+AY6b5;H84fhJ={- z#pXDPI-naW4^bT?pu78jf{Bml8l$_zU*je^o!@65VL3 zrq5^)m;PPxtFNvL??Q;W_}xVdRUFF0S7kd~Zq~6GXS87IRc`@$1mAv4Zsw9(+UH9_ zC*>pJSM^X5CaP~eubUb|rMt)Oz7*u)Mfc*i{oio@y zu)$bI%rY0->doYY5ur%mnSSk~m+1@98Xx^dLxU)nkRi*%H_ps)-KljLwy*Gjy&wf@VU&}gVy#@uf_WqKmf`^7#^hz08Zq=;$N`1|Stm%gUHgX@!hkXM$1C#h}iL9TB3y9ov3RC;?Wu4k-Rnv>35-)0VaXN=26L!k4SEp$2bUSn|HeA}x@;Yf5!6vWREvv;2er)bjNAU|FqnA_^DYhG zxo^Tn10aAE=C{``$jie+5mN8E@EPbeFwdV(J$gUMEbPMbMo`n1Mf{i{IOOYczmW|F z^6Pc*NQ6(daPAZ-E^5&*1xh>nmtW8>m_dwZiomX?=aQSyGCo12588*)DitGH+AWc9_*8FOe_ z_tdL=`pn%$fLtfD8RNWl>j&T#Sb}Z9=RY~!s*R5)?MMdR5}1uUcosA6s^wt#cYw|Um+R6q9-CJ|5lDxdUP+^9__7wz^BqRU^At60M&_pfV>d!#4w|TD`crd05 zSQzpV@C7W)c7o4%G&2qoXk%W7g}u;!cziq%AK@1=>Dy}l;SX>@VXt0+Y_khiFvt~- z&EOD{|NOr<+BKJh5hKJ*mX7FD>oz&=CG?y}8oIi=qRai(#jlJ4)YkRdi!9tkHwFKT z$zz>&wg|*_VM0)nz_Nd3YW0>ii81@F{#y*+^C) zKvddw#+(4cMPdWTTV_KKEHuie07b2{s;a72zyQ!MxR>PIOv+8~u3-Ss(GiblB09p0 zP-)tGJ71VhvNQ36FAwF2_6b{N)VhhibGdUVFOARffU z$6M~_hJ}T-wY6nu(`_aG%V#uWMrr^=A6WOB15Rtet_AQF$ctfZk$ZG8hcEJTu%~zi zyz`pYla0Q%me#FYZQQCYDcJ<;pO z4}+Qn@-2*jBU=kV2?sr(Njy&&4;i;9tp_=2hzhleU=Kb3rxNVh>;|6!Q18~Tydb3ui2gzEL)o4| z<{$a`bpqE@p#DC|KObB$E|OBCW@ID=S_sP71^oj6ivK`DpCl7na(nFKQ>V-X!$6-6 z4n*h4irl(7q1(4N!Hf_9n};&w&K%FT?ke`+XKrpRJjA&KNXfu#v9#zllxa4w{J$Ce zo`-atup;vgYFlrgmIMDO1m(EFqdbEk`VmT=xqvg} zfxeP*mKyM8p8+b4P~7;ju6S|u_JyBI*{2hIN>^kk z+J*2cduj``TL$&Nf1exp=s4RX%*c4JR0sFcGswh@OicCKO_ejsjHj)F?lL= zGe%*ZQVm*cgyv$*D4^@a7ZdObWpi_BXsEn6M!aIKVs4Rh(0i^@L;3fuD)!ZlQf=>Y zW3&t)D(mXnOguwzVx&QZNVsf!*>7XOeTIfgvOWG*+A0YQ8gxz^Omxcxn(2ld;j!P( z2Kyu48#CY&$)J&7yli1Nr}b9cU?9CxsZn7+R_&>rzOA%rAsF>W?PjD(bXjTf`Chdo zzTxW@hUUsGg2KXAg}4uCRb-#^gCZNO6K6Ox;hQ6;DT628^4E2y{2Ny_=d6yhy~Z83 z%y5aR#A>rLD&1>OBb;y>u*KjN*Rp!YD0T4-heGPPIcWsF7_yZ{IJF-Y9T;3mrcgUG z{!sim;Sy=}Ek*s}QPE3ZU%w^_QO2%6K6nsikYgF|8+w)d&isJ4_jf)ghPOdU=w$%` z4|cA47~bU9zN76MDkWQA={8Aj@W6?2j!p1PUH%CHJ1S1SgBhZ(s)nwBSVOAKb11oHXI-H+j~~0s#D)sYu?%Uz~Q61 z&v{le^h<#e9eY|jszI)^056(v=RmCHa^`)B%hNb`(N#*m*FwxHG%D~6O=%iLDdXL=z`q;7uG zjy1vLB!(1$x2tJ4&q|N0Qw=(zbKgW5Za=Eu%naF)eFzV!7sxB`goJUbG}`|8C?UA^ z-EXeBD=;E2KOYD+>OhQ%HzD4NN=o4c&{N{-JlNaI>-*;NH?U4u$4tfMJOZ#Vg?K$y z6$hPgDrjg(ts@BKHI!0Tjx>|9wJi{k@{5)-2G}@?iFZS6f*TOMF*Uc_qC$>*(Ler| zD9m^ps}E=m7gR&qT3Vk_J{d6BEG;DQQ$5f&87pzEjKuW+=zohoB{GIF_P4SBfIlb6 z7fXgWDkD*tC0YDDvE7#{1d|0LF-zW(!2<<>=w(WLJ>`hWpw6lZ+cvS(F4Qw}7_)B$ zCxZB^KHIi=Sc_2q5)N?UyBR}lg`T2(^YmE@Hx+lr=SmL$E`J-od12pI_!IXUBQZZ| zic$Z1c=CQY=p$b;{_B`NTPf%DQv9oN6WnicJiYXfx!-(13ZAd*7+(3aDcE1FF^}%P|?J-O|Ci*8vvilF0TQ_4q zYc>rB8COM!e_dG>&Ow_S_TJ?DJmQms_HgK$Lr}LQ{z)2s`LF!D6@p(rWnyYZOX5FO zX5v21&tfFS0m~HCQSkRqJMPA-(`&s00|HZ&=mC(RKRlf~y(r7bZh_@zxNi8Fo=@aL zkW4MJI_Ub@kzJ>Z%ddo(b$3#Nzr96-{G+WZCm5&< zhx7S2&Gnhxqh`Nla|NVY?v{xgleFAETW>Gkq>T-eMJK+h&N22aCWibrX5AepX*mV^ z5wt}nhFjPLDw?{*h5VFKTJoON${aC&Y3l`~?iEoL-J&zUW*=~MS+R_BaaRG^xSQM^ zgk{FL__N3rUcD&IS%$7l2Nms@mZMmZQMf{XL2=>KFF!>EX+bx7I()nMcd(=B(V}lW zb3%x;)e~lKU5!z*5D5wkyA&z)DQsd#egTc)YD^f7aK08hKW6C1t2tZzY?Qen`!XIF zMTG_r>^tZaUN6QV&*{f7N7bTU-Z)?6m6auqT0`jQhcPq;y^4tm&6bG{^dcz9h$an>6;962?iJLes7$Z zHL?%K=}B=Q11%KM=nz!iD%48N$lxT!30Ght&CAUd2W965p{)`P(PN67Qp*Eu7jJJt zydm+s_IIS{Vkl;m&M`ijyEdb5&mIVQ_AG20I|g|@c8XE3tO{N~TW_pr%uUJNO>qmC zqq`L@OV4Vg<#Tc8{v|?*z_P_2r^kOXrRa!OFL9Rh$ zVwo@3hv;AihFieJdrwS!w8i}x{*i%!&W)(SV`idy<8zsup>4v1A`5B7^g+7;b4}jq z(bKEzH6{4&x2`pl@3)IMZQ52{-m=imdgS5j;o(~)#lr1y>-L>K?NvothIfb5)6_Sf zyaGo z>L8!!q9gv$TC%!t`$5fNLfY1x<f+@RXO@AuC<#)>wR=Gl_Vz9>PpT8jWBCB}% zi=!@eH3O>Y51MT8gre^DJ%;H=U-H9mZFQclR@v@k%(l3;6xbteWcyohZ^Xv2N@Spr zRqQ*B!%eIH(o}g7cl+3Z1h#K1%Em7+kol`cG^5d4Jzi@!C|_oa&T1%p70iWyd7SNN zKt%$invbbWO2x`&r}bD?`+>9p$8Z-z%Su<=?NCEztM$>&@=nM|0<bk1zvAeozePWalq2hYotWds0J*bNu0ATvK93d{=7{Md`E~G^aeQY=c1(U z_0eu{?E(z<8Yo(Wrmuilmhf3pH#{XYgf3Ow&kMZN;GkYvTkH1Z#1CnqSyf|EU?LfD zM7=-;N>ixX-f6KN{QmtzBneZd`Z<<>vrf&L>rwY)kAV2I)z*N;fQBy(`!Pq@iUbvB zCWwmwm}kJDJthI_#Rl}GPILhZzX2L>W22vz)+n&3VG5i{yuz9R?-1nLJnCEkJXB9L zSW$9>~h}EKKUB)>hY24}NVb6^rR`1;#1{ z`d)#LmXnhM^Fwx1(;1W!(plWx+^@|jplPSAO)C7;aoJMN6dI8_S#=<)USz{rhT)yp zf{UHR0_ht%&7fW5`?3XDnsy^Ni=ZKEaAs!aY)mCeuF`fm8;F^3SsvisH#Z#`ttLto zPO5Lo*#x*emHS$Y@4bcu^`H)1?V>bt~>n8S=$Y`EZ~H|ZHMX`qenGh*VvEQLq!iYRk>q}-^v{`tU2o-6F zuq#`3QB+A^m+65`F8a7ET2Q9LSnYo{Vy;grn3~=snrV8>%d#4nxd2XR@b>dZl0r95 zOu?P-DfO|K;**@S=x$-LOgoPQn>1+cGO5t6-aA75IGfYM!3IE-fZ}G!4u=@%LoZUN zSsH;74|f`iZvK2B!}+vZO0*4Y%zBK!m}0oUurfB%CMWdfsSAiAuqnWXXPm2n5>S9S z04`}$2{zSq^`mPAzJ-Zo3YauYMAhWuv3hxW_#E z!|UzKx-)ye(!gZGQgYod!hJx`dI?eIR=^Skx82Kt?*RW$K1$d`vhfKC+6D$aEhuVG zOG^tj3HS@~pp6%-A?6=QGVO8y7c$^gW%x@R;>{!N%%bdX#68z=cQh=ix>$je#>^2s z3&DbRN0cK-NvXN1scxY2hvTd=xHA;*N#DxNRd?eV$3{cMEP+)H&3K9kB%vhIe+;V( z32y25NKon9DSp3yT;#uQY(E{^WFhMTAd_r>h4kZ`c=h9wtD*%hV+S-^Uy8^_q$-2$ z$0I3>#eypx5R^HyjPh~0&r9+~A8;Lk>71WlPwX<1$`Pqyr&11onGio(1W1&8K?>TQuKl(TLK5K#i(Z8sg9$B6Ko%T=5 zSGMHhU&hqTCjZoU2>V5 z*>8!QVXNG{7eNN#rl{eq5-gs#&BpH3S5wt`vR+19L<+pV1JgC0xj!S>XAm`A6_1Vx z(QAo1h53cR%6lxdCi?po+557|e|uu!k|X8#iqu~Z1$Or!% z*HUTdt0KpSKP8kGeKQNUc})KG)hbuKZEGy#ZA7KLuBIk0G!bp&-SiO@j&?li2f_@QnvT(mz>A{18K$O?@zdTW? zUHwM#iG)QvWS`QOMu@EO60ehzYz__`OaJ}dmH)Mew|%{l1Qox&toKhv)!FEI{4B&` z=AHE0$GbyTqQz2NQOxk;$8cZC?f&VbxpugS8PmZuG$bvov?#sxpPwkImE5-+3;s40 zN2_*^@&7X9uWqsSPFVPt^`TPbzvYGMTc&%UV zSNdc`slT@FqkZ|jFONQ1EC?x)!YZ4eT_TWAVU?U@*R=^_6780fdiRpzY&@YOdZX#x zdZkR5Jr?3`1pzCgPimgz`Q(*nSglMy;A#0Gxe~A|45`(H@pJwD!r^3`Y;Hj@qiE0{?iYuR6)T#GF zBP^bQydDN;guK|0g>#c|fP-Gy+M4+!=i}2wTWt^kUVyF}evxL$a)STr;Ezp8>WZGm z{NZx_`rxZ8p$qeAtI*B$A4dY1crTdEsocD(Q0h^s39Zmw7ks0%1YIA0Z-%)D5e(?R zDp+e4A^*<}LfA>S_1irO2%wz&+}T-Q_iNFT>)+q->WRE15utn`^b@VZAfiqx_}6&_ z|MfRL>gbn$PB-`tu593sUDH+K-sRj3mxIIR)kivq3RWKXcWCrBb2Ed=8!F>&kzdSrVVq#)H7Zwr}8JQ^s;)m&r zN=n24Zh%n%JO-!GJY#KTB@Ux(WM#`t<)ii9q}h5Pty@B;Pz(H{AcuU|2;7}Kr^e}w> zobdevSCCqvaS~3C+DZgiYuw_W(h*+*G<++Zj`J@ijUF0ayFmnd0t*smv5e%yGtj{O z{~oWvG6+1H@dov5&SwE1I*>knk}cb_Zvr_205*s{DlDW$T161^QNxrTPX^tn#4)pi z7>zMl@rp~(sSZuktE3UKf>cGu?sveV3VmAF|3@F^9?$gt$MGp;Y57edgGO1A%a_QiwQf}q<@;m?k z{@dfhWBcyA&-Z8yM$p{DHdM$b;X88(_3!CicX!m90&sodXw~UQMtg$k) zv$diA_w{;!brn|aXpo>VMSB8qIxw=RkE`z;U$SJ0Wl*CI!@|yvH{wTK-dR7h95ZHv zjLEOVzPI|JR{{rNbwjEPo@nvn#aP(ThWuUFhDJtMH1R4b)~D762)uFNyQ)v%H5#gG zG~rh=*9nM>RL_A7F=T?(2i_7szx?TJCND;z^N2y1w4%=sA6u6P!R=hq%JEh*{NY?&ae0 z7vAz`I=tADPn|kowbCGiaV&ILSw%%UvtE}|{kE+wQykss#bR~Ml;*h^v<6zVT-ve; zY7u-fY0f+7qCqMQy$oLXrChp#l#J6sOmeJh9b|{EEib}pD=wz6SS%=uF>5zv{Q+Vu zd*r$-3|4Ybf&y4lBg#*hCsbG4rPmeG%A%GM<(sb1WUpQklOB&u>sx@Cl@@QsV~X2c ziJOjA7+U-{jGTQyR$$B%Ab9oW&380;Xg|`p+^e*bnr&WQ-+Jqpb;dv{?_3zcW~-#u zg57{iRfgN#&ERsmz%O|g`xL87L@i4D^J=5T>S9Z+GVP$8!ue14+M(Fj*9vaZUfajm3MZ; ztz)QS(-*uSYl{-hV%TdtxZP*y$RozuwiN(=c25?}=~M4U&zS@gyzPN%%>8XHuMo2S z1xYA@(4a6U!j9`p2vy+RX(`-v>@EK}ytra%?ao0#LD|(_*qH**7w&5Sk`Bc;Hfg$v z2vFkPW{86lhQMUkLz{r7#D+^-N$l15oV(-?(iUvw@B5jYccEGpcHu0Si$oBu55;>E zJa9ph*0%O`Z7MqivC^N+zj{?pS4B$;(R9Rws6fC(ZlGnQh6eck;o)Ikem+#*CEPC% zWA``a^mKRs+5Z{HQ<#~0IQ@?pF!DS;hLkp?rL_csLI13u>Q05R6tAS2>_r}eE`Y`Y024l6^_KU6XXy^~Ok&}~ag6o+O>!R!igj|ZL>CGuj zEWqadqIuRy4^oOvpZ#MrK<1x*v>U!OkRBer?-$Kj5Ay&pBIqVX(M|+5DYt)6KF%I# z246-o$&uf-iWZgjynowgi!GOJb97Q5TM4nsl}IGm|ISW~CFnCSF*$U|4uw08GrC-5 zd2{Gr9yS0@(9+aIwq8Y#u?>4`i+yNzL+p}Up6hTsBc_oLqN1VzFoXHPuxBYZ5Xtwr zs$+5N><>I;3lsJro#GmRd+0OpdrM_94j>VqQfsJ7VDLq}3U>h<&YML=`1ciOu=<;r z{2Y8iA634VmKH{D!Di~v=^upNtSvOweLvm~KaN!IvePA<6y!_H4&3r>w(6blegghd zc<-L;=FKk$*{($w>Uy?jq|JI6+fLtg(lew`j>EVE?Ah4Y=H})sD~DeuX8(6cLHEY% zxEULG=X^@V-yy`eU1dtAUzxi(Tr%fV@1kA8urB-H;NVW!Hv(mQ zGMt>83}ca5fh;L85ycae50kESOS$11x=H~)m#yFg*GQ;}5PgwPZDtkTX?DTu+y=~i*o-qKFE*J9u;VO%N0_K7p zzE64*A1(_%sRfv?dG1#zSo|l?O;Wf(UfxWd)Tu-wS*eo{N+97fRyzP$awUtR0>I$k z*RIVo{WLiPfcKrqMITNaT8;zoWpge(FH5QoKoI_6K84Jik&$sIHWxM~Eg`qd%IXf- z+1W)r5sSsm%}NR{2H8--ONqcRN>3Fm++(JWNPPU98v2)KeMfxR%(8WnZ1#1f8qgCI zN{Y+?B9+*H*tGGFHy`zk6|Y`^Ywhrpo1ndX`O-7*k=aMyPC%>-1_QX!fwv6R%W5ZO z-!i|8Nbh@lJ$-#U&OYi`)gTt%s1@Ucj6x?g=^z)fx>7XXPKMcBaTJ5Wbu-v&kt6S5 zWo^ym<7s76d3kxhMm?`OI#QkVLbGw<0D+_IC&jMqR7$*I1qLrf$)kVA#JGKk!upGvF`{Bh_hO2_Rxc5r_C zO}N^ZAXAtNFDOctwYAGy2SGKXS}F9PkR2^@+)T2O8D}vRgL_PRO3DEIGW<-!ey1ck z3P5?F;@&TmK{j2{*Zvykl8!AdY-&(R!Qlf2HBc_ zfQG24V!+mM3XrK<_A%Ict;@Ux)fSa1tFK=)%Z!14A8bU>lW?kkzzqjc z(O(d-v19&LS65dXO{K_kl{gbZo6?sMltGhI z5Tn9k@i2U)hT4+jm^BNx&fFdAc-Lc;D{iMp@lsX8F}dUX(AnjWn z&Bvq=WehwbDq^&Szj}Ik^-K!@W0vog+i)_hgdl198>&edv!ZNl8$#h!Cl=?@KftYo zwD1Y)6&M=s{t;4&m@BJ^rC+2zX0uKXurT_o{ literal 0 HcmV?d00001 diff --git a/test/h2-dissociation.py b/test/h2-dissociation.py new file mode 100644 index 0000000..a9ffb20 --- /dev/null +++ b/test/h2-dissociation.py @@ -0,0 +1,101 @@ +import sys +sys.path.append('../source') + +import rhf +import uhf +from integral import iEri +import numpy as np +import os +''' +This illustrates the difference in RHF and UHF when dealing +with the dissociation of the hydrogen molecule as the bond +length is increased from 0.5-12 bohr. Compare with Szabo & +Ostlund pg 166 fig.3.5 + +Molecule is aligned along x-axis with H1 at [0,0,0]. +''' +mol = """name=h2 +matrix=c +diis=off +basis=sto-3g +uhfmix=0.02 +post={} + +H1 1 0.00000000000000 0.00000000 0.00000000000 +H2 1 1.39838996182773 0.00000000 0.00000000000 + +end +""" +fileName = 'h2.hpf' +f = open(fileName, 'w') +f.write(mol) +f.close() + +#create molecular atom and basis objects +molAtom, molBasis, molData = rhf.mol([], file = fileName) + +#clean up file +if os.path.exists(fileName): + os.remove(fileName) + +#solve base geometry for <00|00> +rhf.scf(molAtom, molBasis, molData, []) +Heri = rhf.ERI[iEri(0,0,0,0)] * 0.5 + +#initial position of H2 +a = molAtom[1].center[:] + +#definition of range +start = 0.5 +points = 100 + +nAtoms = len(molAtom) + +erhf = [] +euhf = [] +separation = [] + +#set geo to original geometry +geo = np.zeros((nAtoms,3)) +for atom in range(nAtoms): + geo[atom,:] = molAtom[atom].center + +for i in range(points): + + #update geometry and rebuild centers with it + geo[1,0] = start + i * 0.125 + molAtom, molBasis = rhf.rebuildCenters(molAtom, molBasis, geo) + + #calculate energies + separation.append(geo[1,0]) + erhf.append(rhf.scf(molAtom, molBasis, molData, [])) + euhf.append(uhf.scf(molAtom, molBasis, molData, [])) + +#get single hydrogen atom energy +molAtom = molAtom[:1] +molBasis = molBasis[:1] +molAtom, molBasis = rhf.rebuildCenters(molAtom, molBasis, geo) +molData['multiplicity'] = 2 +H = uhf.scf(molAtom, molBasis, molData, []) + +#plot results +import matplotlib.pyplot as pl + +pl.plot(separation, erhf, '.r') +pl.plot(separation, euhf, '.m') + +pl.plot([0,13], [2*H, 2*H], 'k.--') +pl.plot([0,13], [2*H + Heri,2*H + Heri], 'k.--') + +pl.text(12, -0.65, 'rhf') +pl.text(12, -1.00, 'uhf') +pl.text(1.8,-0.52,'2H + <11|11>/2', size='x-small') +pl.text(1.8,-0.91,'2H', size='x-small') + +pl.xlabel('bond length (bohr)') +pl.ylabel('energy (Hartree)') + +pl.title('H$_2$' + ' dissociation rhf v uhf') + +pl.show() + diff --git a/test/h2-eom.md b/test/h2-eom.md new file mode 100644 index 0000000..19c6b96 --- /dev/null +++ b/test/h2-eom.md @@ -0,0 +1,45 @@ +## CCSD +These are the results for H2 in a 3-21g basis + +scf energy is -1.1229402577 Hartree +CCSD correction is -0.0248728759 Hartree + +most significant amplitudes +| tai | +|----------------------------| +|-0.005758 (0, 4) | +|-0.005758 (1, 5) | +| tabij| +|-0.084054 (1, 0, 3, 2) | +|-0.084054 (0, 1, 2, 3)| +|-0.047829 (0, 1, 4, 5)| +|-0.047829 (1, 0, 5, 4)| +|-0.043512 (1, 0, 3, 6)| + +## EOM-CCSD +| | | | | +|---|---|---|---| +|10.852655 (t)| 15.898409 (s) | 26.471206 (t) | 30.521616 (s) | +|31.881401 (s)| 40.401958 (t) | 41.140826 (s) | 43.232126 (t) | + +results from Gaussian +| | | | | +|---|---|---|---| +|10.8527|10.8527|10.8527|15.8984| +|26.4712|26.4712|26.4712|30.5216| +|31.8814|40.4020|40.4020|40.4020| + +## EOM-MBPT(2) +| | | | | +|---|---|---|---| +|10.657194 (t) | 15.708727 (s) | 26.265493 (t) |30.222336 (s) | +|31.678520 (s) | 40.207311 (t) |40.912816 (s) |43.016807 (t) | + +results from Gaussian +| | | | | +|---|---|---|---| +|10.6572| 10.6572| 10.6572| 15.7087| +| 26.2655| 26.2655| 26.2655| 30.2223| +|31.6785| 40.2073| 40.2073| 40.2073| + +*Gaussian results from JJ Goings. \ No newline at end of file diff --git a/test/h2o-dz.html b/test/h2o-dz.html new file mode 100644 index 0000000..a7831df --- /dev/null +++ b/test/h2o-dz.html @@ -0,0 +1,2549 @@ + + + + +

    HARPY RHF output for h2o

    +

    atoms

    +

    number of atoms is 3

    + + + + + + + +
    atomic input data
    idnumberxyzweight
    1O180.0-0.1432258165520.015.99903
    2H111.6380368404071.1365488225470.01.00784
    3H21-1.6380368404071.1365488225470.01.00784
    +
    + + + + + +
    interatom seperations
    atomsd (bohr)
    O1-H12.079
    O1-H22.079
    +
    + + + + +
    interatom angles
    atomsangle
    H1-O1-H2104.0
    +
    + + + +
    center of mass
    xyz
    0.0-0.00.0
    +
    + + + +
    inferred bonds
    O1H1H2
    O1XX
    H1X
    H2X
    +
    + + + + + + +
    inertia tensor
    xyz
    2.9319390.00.0
    0.05.4084010.0
    0.00.08.340341
    +
    + + + + + +
    principal moments (amu bohr2)
    IaIbIc
    2.9319395.4084018.340341
    +
    +
    rotor typeasymmetric top
    +
    + + + + + +
    rotational constants (g cm-1)
    ABC
    20.532411.13087.2179
    +
    +
    nuclear repulsion energy8.00236706
    +
    +

    orbitals

    + +
    +
    number of electrons10
    +
    +
    basis setdz
    +
    +
    Cartesian +
    DZ (Dunning) EMSL Basis Set Exchange Library 2/9/11 8:30 AM +
    T.H. DUNNING, JR., J. CHEM. PHYS. 53, 2823 (1970). +
    T.H. DUNNING, JR. AND P.J. HAY, IN METHODS OF ELECTRONIC STRUCTURE THEORY, +
    VOL. 2, H.F. SCHAEFER III, ED., PLENUM PRESS (1977). +

    +
    + + + + + +
    orbital occupancy
    number of basis functions14
    number doubly occupied orbitals5
    number of virtual orbitals9
    +
    + + + + + + + + + + + + + + + + + +
    atomic orbitals
    + 1O1Os2O1Os3O1Os4O1Os
    + 5O1Opx6O1Opy7O1Opz8O1Opx
    + 9O1Opy10O1Opz11H1Hs12H1Hs
    + 13H2Hs14H2Hs
    +
    + + + + + + + +
    aufbau atomic occupancies
    idorbitals
    1O11s22s22p4
    2H11s1
    3H21s1
    +
    +

    pre-scf

    + +
    + + +
    initial fock guesscore hamiltonian
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    overlap
    1234567891011121314
    11.00000.83810.33940.16100.00000.00000.00000.00000.00000.00000.01800.05530.01800.0553
    20.83811.00000.43220.19440.00000.00000.00000.00000.00000.00000.02000.06530.02000.0653
    30.33940.43221.00000.77640.00000.00000.00000.00000.00000.00000.15960.32790.15960.3279
    40.16100.19440.77641.00000.00000.00000.00000.00000.00000.00000.33960.59820.33960.5982
    50.00000.00000.00000.00001.00000.00000.00000.50600.00000.00000.20710.1605-0.2071-0.1605
    60.00000.00000.00000.00000.00001.00000.00000.00000.50600.00000.16180.12540.16180.1254
    70.00000.00000.00000.00000.00000.00001.00000.00000.00000.50600.00000.00000.00000.0000
    80.00000.00000.00000.00000.50600.00000.00001.00000.00000.00000.42360.4491-0.4236-0.4491
    90.00000.00000.00000.00000.00000.50600.00000.00001.00000.00000.33100.35090.33100.3509
    100.00000.00000.00000.00000.00000.00000.50600.00000.00001.00000.00000.00000.00000.0000
    110.01800.02000.15960.33960.20710.16180.00000.42360.33100.00001.00000.68310.02090.1482
    120.05530.06530.32790.59820.16050.12540.00000.44910.35090.00000.68311.00000.14820.3856
    130.01800.02000.15960.3396-0.20710.16180.0000-0.42360.33100.00000.02090.14821.00000.6831
    140.05530.06530.32790.5982-0.16050.12540.0000-0.44910.35090.00000.14820.38560.68311.0000
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    kinetic
    1234567891011121314
    152.614915.66100.83400.13070.00000.00000.00000.00000.00000.0000-0.02240.0144-0.02240.0144
    215.661014.29831.10920.16120.00000.00000.00000.00000.00000.0000-0.02830.0170-0.02830.0170
    30.83401.10921.40970.50880.00000.00000.00000.00000.00000.0000-0.03910.0837-0.03910.0837
    40.13070.16120.50880.42690.00000.00000.00000.00000.00000.00000.08460.13440.08460.1344
    50.00000.00000.00000.00003.63500.00000.00000.43230.00000.00000.10890.0876-0.1089-0.0876
    60.00000.00000.00000.00000.00003.63500.00000.00000.43230.00000.08510.06850.08510.0685
    70.00000.00000.00000.00000.00000.00003.63500.00000.00000.43230.00000.00000.00000.0000
    80.00000.00000.00000.00000.43230.00000.00000.53420.00000.00000.24990.1813-0.2499-0.1813
    90.00000.00000.00000.00000.00000.43230.00000.00000.53420.00000.19520.14170.19520.1417
    100.00000.00000.00000.00000.00000.00000.43230.00000.00000.53420.00000.00000.00000.0000
    11-0.0224-0.0283-0.03910.08460.10890.08510.00000.24990.19520.00001.41570.2926-0.0302-0.0012
    120.01440.01700.08370.13440.08760.06850.00000.18130.14170.00000.29260.2664-0.00120.0375
    13-0.0224-0.0283-0.03910.0846-0.10890.08510.0000-0.24990.19520.0000-0.0302-0.00121.41570.2926
    140.01440.01700.08370.1344-0.08760.06850.0000-0.18130.14170.0000-0.00120.03750.29260.2664
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Coulomb
    1234567891011121314
    1-82.4990-47.8120-12.5270-5.44910.0000-0.01870.00000.0000-0.00310.0000-0.5421-1.8162-0.5421-1.8162
    2-47.8120-40.3767-13.0408-5.68490.0000-0.02180.00000.0000-0.00210.0000-0.5621-1.8920-0.5621-1.8920
    3-12.5270-13.0408-13.3380-8.50190.0000-0.14100.00000.0000-0.07670.0000-1.4779-3.3425-1.4779-3.3425
    4-5.4491-5.6849-8.5019-7.74710.0000-0.16040.00000.0000-0.20040.0000-2.2377-3.9493-2.2377-3.9493
    50.00000.00000.00000.0000-11.75870.00000.0000-3.88670.00000.0000-1.5650-1.18771.56501.1877
    6-0.0187-0.0218-0.1410-0.16040.0000-11.72470.00000.0000-3.85380.0000-1.2381-0.9928-1.2381-0.9928
    70.00000.00000.00000.00000.00000.0000-11.67140.00000.0000-3.80230.00000.00000.00000.0000
    80.00000.00000.00000.0000-3.88670.00000.0000-4.85750.00000.0000-2.3210-2.02492.32102.0249
    9-0.0031-0.0021-0.0767-0.20040.0000-3.85380.00000.0000-4.78080.0000-1.8322-1.6873-1.8322-1.6873
    100.00000.00000.00000.00000.00000.0000-3.80230.00000.0000-4.66070.00000.00000.00000.0000
    11-0.5421-0.5621-1.4779-2.2377-1.5650-1.23810.0000-2.3210-1.83220.0000-5.8164-3.6035-0.1505-0.9123
    12-1.8162-1.8920-3.3425-3.9493-1.1877-0.99280.0000-2.0249-1.68730.0000-3.6035-4.5176-0.9123-2.1255
    13-0.5421-0.5621-1.4779-2.23771.5650-1.23810.00002.3210-1.83220.0000-0.1505-0.9123-5.8164-3.6035
    14-1.8162-1.8920-3.3425-3.94931.1877-0.99280.00002.0249-1.68730.0000-0.9123-2.1255-3.6035-4.5176
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    two electron repulsion integrals *
    < i j | k l >
    < 1 1 | 1 1 >6.35419
    < 1 1 | 1 2 >4.387899
    < 1 1 | 1 3 >1.241928
    < 1 1 | 1 4 >0.54541
    < 1 1 | 1 11 >0.054861
    < 1 1 | 1 12 >0.182287
    < 1 1 | 1 13 >0.054861
    < 1 1 | 1 14 >0.182287
    < 1 1 | 2 1 >4.387899
    < 1 1 | 2 2 >4.238794
    < 1 1 | 2 3 >1.437384
    < 1 1 | 2 4 >0.628974
    < 1 1 | 2 11 >0.062423
    < 1 1 | 2 12 >0.20952
    < 1 1 | 2 13 >0.062423
    < 1 1 | 2 14 >0.20952
    < 1 1 | 3 1 >1.241928
    < 1 1 | 3 2 >1.437384
    < 1 1 | 3 3 >1.515598
    < 1 1 | 3 4 >0.9563
    < 1 1 | 3 11 >0.15855
    < 1 1 | 3 12 >0.371485
    < 1 1 | 3 13 >0.15855
    < 1 1 | 3 14 >0.371485
    < 1 1 | 4 1 >0.54541
    < 1 1 | 4 2 >0.628974
    < 1 1 | 4 3 >0.9563
    < 1 1 | 4 4 >0.845781
    < 1 1 | 4 11 >0.218496
    < 1 1 | 4 12 >0.415693
    +

    * non-zero integrals (total 5565) first 30 shown

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    S
    1234567891011121314
    11.6168-0.8736-0.0169-0.04010.00000.0008-0.00000.0000-0.0067-0.00000.00290.00630.00290.0063
    2-0.87361.7127-0.34260.1530-0.0000-0.00370.0000-0.00000.02050.0000-0.0007-0.0255-0.0007-0.0255
    3-0.0169-0.34261.7188-1.0454-0.00000.0196-0.0000-0.0000-0.1493-0.00000.05710.13620.05710.1362
    4-0.04010.1530-1.04542.39900.0000-0.04680.00000.00000.47530.0000-0.1529-0.6090-0.1529-0.6090
    50.0000-0.00000.00000.00001.1353-0.00000.0000-0.3602-0.00000.0000-0.05110.08690.0511-0.0869
    60.0008-0.00370.0196-0.0468-0.00001.1253-0.0000-0.0000-0.3202-0.0000-0.03360.0388-0.03360.0388
    7-0.0000-0.0000-0.00000.00000.0000-0.00001.11880.00000.0000-0.3040-0.0000-0.00000.0000-0.0000
    8-0.0000-0.0000-0.0000-0.0000-0.36020.0000-0.00001.70170.0000-0.0000-0.1330-0.61280.13300.6128
    9-0.00670.0205-0.14930.47530.0000-0.32020.00000.00001.37450.0000-0.1600-0.2764-0.1600-0.2764
    10-0.00000.00000.0000-0.0000-0.0000-0.0000-0.3040-0.00000.00001.1188-0.00000.00000.0000-0.0000
    110.0029-0.00070.0571-0.1529-0.0511-0.0336-0.0000-0.1330-0.1600-0.00001.3434-0.41770.02780.0503
    120.0063-0.02550.1362-0.60900.08690.03880.0000-0.6128-0.27640.0000-0.41771.91270.0503-0.3714
    130.0029-0.00070.0571-0.15290.0511-0.03360.00000.1330-0.16000.00000.02780.05031.3434-0.4177
    140.0063-0.02550.1362-0.6090-0.08690.0388-0.00000.6128-0.2764-0.00000.0503-0.3714-0.41771.9127
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    orthogonal initial Fock
    1234567891011121314
    18.7602-31.3929-0.9828-1.81710.00000.0021-0.00000.0000-0.1702-0.00000.02810.01070.02810.0107
    2-31.392914.3617-3.94270.7833-0.0000-0.04120.0000-0.00000.17980.0000-0.0054-0.3547-0.0054-0.3547
    3-0.9828-3.9427-0.2298-1.56240.00000.0140-0.00000.0000-0.0003-0.0000-0.1189-0.2036-0.1189-0.2036
    4-1.81710.7833-1.56240.38110.0000-0.03000.0000-0.00000.1373-0.0000-0.2508-0.2494-0.2508-0.2494
    50.0000-0.00000.00000.00000.1539-0.0000-0.0000-0.5966-0.00000.0000-0.2965-0.03140.29650.0314
    60.0021-0.04120.0140-0.0300-0.00000.0847-0.00000.0000-0.6085-0.0000-0.2219-0.0438-0.2219-0.0438
    7-0.00000.0000-0.00000.0000-0.0000-0.0000-0.03670.0000-0.0000-0.6468-0.0000-0.00000.00000.0000
    80.0000-0.00000.0000-0.0000-0.59660.00000.00000.56970.0000-0.0000-0.2222-0.13580.22220.1358
    9-0.17020.1798-0.00030.1373-0.0000-0.6085-0.00000.00000.4722-0.0000-0.2104-0.0641-0.2104-0.0641
    10-0.00000.0000-0.0000-0.00000.0000-0.0000-0.6468-0.0000-0.00000.4024-0.00000.00000.0000-0.0000
    110.0281-0.0054-0.1189-0.2508-0.2965-0.2219-0.0000-0.2222-0.2104-0.00000.6554-0.50640.0585-0.0180
    120.0107-0.3547-0.2036-0.2494-0.0314-0.0438-0.0000-0.1358-0.06410.0000-0.50640.2499-0.0180-0.1305
    130.0281-0.0054-0.1189-0.25080.2965-0.22190.00000.2222-0.21040.00000.0585-0.01800.6554-0.5064
    140.0107-0.3547-0.2036-0.24940.0314-0.04380.00000.1358-0.0641-0.0000-0.0180-0.1305-0.50640.2499
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    initial density
    1234567891011121314
    10.35730.2952-0.0775-0.0748-0.00000.0149-0.0000-0.00000.00910.0000-0.00770.0023-0.00770.0023
    20.29520.2503-0.1072-0.1042-0.00000.0205-0.0000-0.00000.01290.0000-0.01060.0033-0.01060.0033
    3-0.0775-0.10720.30460.30040.0000-0.0669-0.00000.0000-0.0428-0.00000.0273-0.01130.0273-0.0113
    4-0.0748-0.10420.30040.29930.0000-0.09890.00000.0000-0.05960.00000.0175-0.01660.0175-0.0166
    5-0.0000-0.00000.00000.00000.30920.00000.00000.12070.00000.00000.12850.0874-0.1285-0.0874
    60.01490.0205-0.0669-0.09890.00000.37850.00000.00000.20220.00000.09870.06230.09870.0623
    7-0.0000-0.0000-0.00000.00000.00000.00000.5364-0.00000.00000.2963-0.00000.00000.0000-0.0000
    8-0.0000-0.00000.00000.00000.12070.0000-0.00000.04710.0000-0.00000.05020.0341-0.0502-0.0341
    90.00910.0129-0.0428-0.05960.00000.20220.00000.00000.10820.00000.05170.03330.05170.0333
    100.00000.0000-0.00000.00000.00000.00000.2963-0.00000.00000.1637-0.00000.00000.0000-0.0000
    11-0.0077-0.01060.02730.01750.12850.0987-0.00000.05020.0517-0.00000.08600.0525-0.0208-0.0201
    120.00230.0033-0.0113-0.01660.08740.06230.00000.03410.03330.00000.05250.0350-0.0201-0.0145
    13-0.0077-0.01060.02730.0175-0.12850.09870.0000-0.05020.05170.0000-0.0208-0.02010.08600.0525
    140.00230.0033-0.0113-0.0166-0.08740.0623-0.0000-0.03410.0333-0.0000-0.0201-0.01450.05250.0350
    +
    +
    initial SCF electronic energy-83.98024604
    +
    +

    scf

    + +
    iteration limit100
    convergence criterion1e-08
    +

    direct inversion of the iterative sub-space (diis) is on

    + + + +
    electronic energy (E)Δ(E)rms(D)
    83.980246037200
    +
    +
    +

    post-scf

    + +
    +
    final scf total energy-75.9778789754
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    final orbital energies
    1234567891011121314
    -20.584168-1.298253-0.643919-0.545852-0.5002150.1750500.2592010.8658460.9090540.9779871.0887331.1076691.63622843.282673
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    orbital coeffiecients
    1234567891011121314
    10.5811320.1329270.000000-0.0436490.0000000.047750-0.000000-0.0000000.0174210.0000000.051310-0.000000-0.140459-1.731226
    20.4612750.1838900.000000-0.0610700.0000000.064150-0.000000-0.0000000.0256740.0000000.080604-0.000000-0.2454571.875412
    3-0.000573-0.518188-0.0000000.190046-0.000000-0.1152920.0000000.000000-0.097095-0.000000-0.4303270.0000001.890290-0.381402
    40.001897-0.4922790.0000000.238642-0.000000-0.9786790.000000-0.000000-0.253072-0.0000000.515208-0.000000-2.4912170.311474
    50.000000-0.0000000.556054-0.0000000.000000-0.000000-0.4417130.000000-0.0000000.633531-0.0000000.730348-0.000000-0.000000
    60.001490-0.093918-0.000000-0.6080020.000000-0.3263450.0000000.0000000.9289010.000000-0.120819-0.0000000.118636-0.009629
    7-0.000000-0.0000000.000000-0.000000-0.7323850.0000000.0000000.898755-0.000000-0.0000000.000000-0.000000-0.0000000.000000
    8-0.000000-0.0000000.2171320.0000000.000000-0.000000-0.866497-0.0000000.000000-1.4446320.000000-0.9627590.000000-0.000000
    9-0.000425-0.0373080.000000-0.3267520.000000-0.5223990.000000-0.000000-1.244406-0.000000-0.229739-0.000000-0.6769190.060523
    100.000000-0.0000000.000000-0.000000-0.4046210.0000000.000000-1.0864760.0000000.000000-0.0000000.0000000.0000000.000000
    110.000041-0.1062220.231020-0.1459890.0000000.0896160.0851500.000000-0.0406780.5704070.941064-0.7806140.364598-0.011644
    12-0.000153-0.0148830.157227-0.1002040.0000000.9216081.2219270.0000000.3556730.125559-0.6980241.2521090.495288-0.068134
    130.000041-0.106222-0.231020-0.145989-0.0000000.089616-0.085150-0.000000-0.040678-0.5704070.9410640.7806140.364598-0.011644
    14-0.000153-0.014883-0.157227-0.1002040.0000000.921608-1.221927-0.0000000.355673-0.125559-0.698024-1.2521090.495288-0.068134
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    final density matrix
    1234567891011121314
    10.3572890.295171-0.077509-0.0747510.0000000.014920-0.000000-0.0000000.0090560.000000-0.0077240.002306-0.0077240.002306
    20.2951710.250319-0.107160-0.1042240.0000000.020547-0.000000-0.0000000.0128980.000000-0.0105990.003312-0.0105990.003312
    3-0.077509-0.1071600.3046370.300445-0.000000-0.066882-0.0000000.000000-0.042765-0.0000000.027298-0.0113310.027298-0.011331
    4-0.074751-0.1042240.3004450.2992920.000000-0.0988580.0000000.000000-0.0596110.0000000.017452-0.0165870.017452-0.016587
    50.0000000.000000-0.0000000.0000000.3091960.0000000.0000000.1207370.0000000.0000000.1284600.087427-0.128460-0.087427
    60.0149200.020547-0.066882-0.0988580.0000000.378489-0.000000-0.0000000.202169-0.0000000.0987380.0623220.0987380.062322
    7-0.000000-0.000000-0.0000000.0000000.000000-0.0000000.536388-0.0000000.0000000.296338-0.0000000.0000000.000000-0.000000
    8-0.000000-0.0000000.0000000.0000000.120737-0.000000-0.0000000.047146-0.000000-0.0000000.0501620.034139-0.050162-0.034139
    90.0090560.012898-0.042765-0.0596110.0000000.2021690.000000-0.0000000.1081590.0000000.0516650.0332970.0516650.033297
    100.0000000.000000-0.0000000.0000000.000000-0.0000000.296338-0.0000000.0000000.163718-0.0000000.0000000.000000-0.000000
    11-0.007724-0.0105990.0272980.0174520.1284600.098738-0.0000000.0501620.051665-0.0000000.0859660.052532-0.020775-0.020113
    120.0023060.003312-0.011331-0.0165870.0874270.0623220.0000000.0341390.0332970.0000000.0525320.034983-0.020113-0.014458
    13-0.007724-0.0105990.0272980.017452-0.1284600.0987380.000000-0.0501620.0516650.000000-0.020775-0.0201130.0859660.052532
    140.0023060.003312-0.011331-0.016587-0.0874270.062322-0.000000-0.0341390.033297-0.000000-0.020113-0.0144580.0525320.034983


    + + +
    charge analysis
    orbitalatomdensity
    Mulliken
    1O11.1326
    2O10.8623
    3O10.9332
    4O10.9846
    5O10.9031
    6O11.0567
    7O11.3727
    8O10.3628
    9O10.5361
    10O10.6273
    11H10.4186
    12H10.1958
    13H20.4186
    14H20.1958
    reduced To atoms centers
    O18.7713
    H10.6143
    H20.6143
    corrected for charge
    O1-0.7713
    H10.3857
    H20.3857
    Lowdin
    O18.6269
    H10.6866
    H20.6866
    corrected for charge
    O1-0.6269
    H10.3134
    H20.3134


    + + +
    energy partition
    descriptioncomponentsenergy
    kinetict75.615449
    nuclearn8.002367
    coulombv-196.431128
    one electront+v-120.815679
    two electrong36.835433
    totalt+v + 2g + n-75.977879
    total potentialv + g + n-151.593328
    total kinetict75.615449
    viral ratio(v+g+n)/t-2.004793
    bare hamiltoniant+v-120.815679
    orbital-47.144813


    + + + +
    dipoles
    xyz(au)(debye)
    0.01.071-0.01.0712.722


    + + + + + + + +
    moller-plesset
    {mp2} parallel spin-0.03315064
    {mp2} anti-parallel spin-0.11955924
    {mp2} total-0.15270988
    {mp3} total0.00025664
    {mp2+mp3} total-0.15245323
    {total energy + mp correction} total-76.13033221


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    configuration interaction *
    0.252173 (t)0.292974 (s)0.295141 (t)0.317586 (t)0.337254 (t)0.346602 (s)
    0.384421 (s)0.412976 (t)0.438247 (s)0.448240 (t)0.491233 (s)0.612842 (s)
    0.760997 (t)0.853591 (t)0.888961 (t)0.899729 (s)0.917223 (t)0.919604 (s)
    0.936062 (s)0.990091 (t)1.019664 (s)1.020829 (t)1.043013 (t)1.043521 (t)
    1.058933 (s)1.068390 (t)1.081822 (s)1.084000 (s)1.096696 (t)1.104538 (s)
    1.142910 (t)1.160842 (s)1.177555 (s)1.178873 (t)1.180255 (t)1.186421 (t)
    1.190928 (t)1.199287 (s)1.205015 (s)1.270942 (s)1.284893 (s)1.302587 (t)
    1.304810 (t)1.341793 (s)1.392391 (s)1.501521 (t)1.561657 (s)1.599884 (t)
    1.630092 (s)1.670463 (t)1.695862 (s)1.705389 (s)1.708690 (t)1.719396 (t)
    1.746895 (s)1.796183 (s)1.840066 (t)1.849445 (s)1.951492 (t)1.958594 (t)
    1.991704 (s)2.007458 (s)2.351602 (t)2.526316 (s)20.108470 (t)20.130558 (t)
    20.181686 (s)20.196648 (s)20.619273 (t)20.689382 (s)20.697142 (t)20.760728 (s)
    20.908614 (t)20.942497 (s)21.152755 (t)21.206037 (s)21.228055 (t)21.230269 (s)
    21.439050 (t)21.521817 (s)42.762168 (t)42.798125 (s)42.886230 (t)42.940321 (s)
    43.114239 (t)43.136053 (s)43.552387 (t)43.685736 (s)59.394414 (t)61.499744 (s)
    +

    * s -singlet, t -triplet

    +
    + + + + + + + + +
    block Davidson (first 5 eigenvalues)
    0.2521730.2521730.2929740.2951410.295141
    +
    + + + + + + + + + +
    CIS significant excitations
    stateenergy(%) excitation
    00.252173(96) 9 -> 10 +
    10.252173(96) 8 -> 11 +
    20.252173(48) 8 -> 10 + (48) 9 -> 11
    30.292974(49) 8 -> 10 + (49) 9 -> 11
    40.295141(76) 6 -> 11 + (12) 7 -> 10
    50.295141(44) 6 -> 10 + (44) 7 -> 11
    60.295141(12) 6 -> 11 + (76) 7 -> 10
    70.317586(96) 8 -> 13 +
    80.317586(96) 9 -> 12 +
    90.317586(48) 8 -> 12 +
    +

    contributions over 10% of 10 lowest energy levels



    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    configuration interaction spin-adapted singles
    0.2929740.3466020.3844210.4382470.4912330.612842
    0.8997290.9196040.9360621.0196641.0589331.081822
    1.0840001.1045381.1608421.1775551.1992871.205015
    1.2709421.2848931.3417931.3923911.5616571.630092
    1.6958621.7053891.7468951.7961831.8494451.991704
    2.0074582.52631620.18168620.19664820.68938220.760728
    20.94249721.20603721.23026921.52181742.79812542.940321
    43.13605343.68573661.499744


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    configuration interaction spin-adapted triplets
    0.2521730.2951410.3175860.3372540.4129760.448240
    0.7609970.8535910.8889610.9172230.9900911.020829
    1.0430131.0435211.0683901.0966961.1429101.178873
    1.1802551.1864211.1909281.3025871.3048101.501521
    1.5998841.6704631.7086901.7193961.8400661.951492
    1.9585942.35160220.10847020.13055820.61927320.697142
    20.90861421.15275521.22805521.43905042.76216842.886230
    43.11423943.55238759.394414


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    random phase approximation *
    0.245831 (t)0.263757 (t)0.289646 (s)0.307353 (t)0.311168 (t)0.342772 (s)
    0.380074 (s)0.407038 (t)0.428448 (t)0.433407 (s)0.487321 (s)0.600841 (s)
    0.743211 (t)0.845371 (t)0.878914 (t)0.896751 (s)0.911610 (t)0.914765 (s)
    0.931575 (s)0.986155 (t)1.014289 (t)1.018321 (s)1.036387 (t)1.039801 (t)
    1.054386 (s)1.060941 (t)1.079128 (s)1.079834 (s)1.091055 (t)1.101729 (s)
    1.138872 (t)1.147556 (s)1.175309 (t)1.175833 (s)1.179273 (t)1.181460 (t)
    1.190586 (t)1.199034 (s)1.204741 (s)1.269937 (s)1.283532 (s)1.301091 (t)
    1.303941 (t)1.327288 (s)1.386351 (s)1.480753 (s)1.495241 (t)1.595762 (t)
    1.629635 (s)1.668132 (t)1.694286 (s)1.698233 (s)1.705230 (t)1.717895 (t)
    1.740857 (s)1.795553 (s)1.838988 (t)1.848499 (s)1.950709 (t)1.958024 (t)
    1.990951 (s)1.996781 (s)2.349538 (t)2.491218 (s)20.108173 (t)20.130467 (t)
    20.181343 (s)20.196496 (s)20.619220 (t)20.689188 (s)20.696939 (t)20.760507 (s)
    20.908587 (t)20.942401 (s)21.152291 (t)21.205711 (s)21.228050 (t)21.230261 (s)
    21.438584 (t)21.521041 (s)42.762153 (t)42.798084 (s)42.886051 (t)42.940145 (s)
    43.114229 (t)43.136019 (s)43.551765 (t)43.685053 (s)59.383579 (t)61.489135 (s)
    +

    * s -singlet, t -triplet



    direct inversion of the iterative sub-space (diis) is on

    + + + + + + + + + + + + + + +
    coupled-cluster interations
    ccsd energyΔ(E)Δrms(amplitudes)
    -0.161064281800
    -0.15893759681.171921e-037.003444e-03
    -0.15944137225.037754e-043.208554e-03
    -0.15966407262.227004e-041.484732e-03
    -0.15976537221.012996e-046.969349e-04
    -0.15985558309.021080e-056.448208e-04
    -0.15985561823.520021e-082.566834e-07
    -0.15985562304.822583e-091.061690e-07
    -0.15985561983.193103e-091.644379e-08
    -0.15985561871.133933e-093.433163e-09
    +

    ccsd converged in 11 cycles

    + + + + + + +
    coupled cluster
    mp2 correction-0.15270988
    singles and doubles CCSD-0.15985562
    perturbative triples CCSD(T)-0.00153807
    total ccsd correction-0.16139368
    total energy ccsd corrected-76.13927266


    direct inversion of the iterative sub-space (diis) is on

    + + + + + + + + + + + + +
    coupled-cluster interations
    ccsd energyΔ(E)Δrms(amplitudes)
    -0.154374122400
    -0.15419312397.000825e-053.444033e-04
    -0.15421372532.060133e-051.116802e-04
    -0.15422042646.701174e-064.145895e-05
    -0.15422282262.396135e-061.699238e-05
    -0.15422447671.654128e-061.416319e-05
    -0.15422447541.336946e-091.383721e-08
    -0.15422447485.532902e-103.296166e-09
    +

    cc2 converged in 9 cycles

    + + + +
    coupled cluster CC2
    cc2 correction-0.15422447
    corrected energy-76.13210345
    + \ No newline at end of file diff --git a/test/h2o-dz.md b/test/h2o-dz.md new file mode 100644 index 0000000..b6c7292 --- /dev/null +++ b/test/h2o-dz.md @@ -0,0 +1,119 @@ +# Water in STO-3G basis + +Reference is Crawford project #3 [see](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2303/output/h2o/STO-3G/output.txt). Crawford first and harpy second. + +| Nuclear repulsion | | +|------------------------|-------------------| +| | 8.0023670618 | +| | 8.0023670618 | + +| Overlap (1st row) | | | | | | | | | | | | | | | +|-----------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| +| | 1. | 0.8380557 | 0.3393514 | 0.1609665 | 0. | 0. | 0. | 0. | 0. | 0. | 0.0179951 | 0.0552886 | 0.0179951 |0.0552886 | +| | 1. | 0.8380557 |0.3393514 |0.1609665 | 0. | 0. | 0. | 0. | 0. | 0. | 0.0179951 |0.0552886 |0.0179951 | 0.0552886 | + +| Kinetic (diagonal) | | | | | | | | | | | | | | | +|--------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| +| | 52.6148950 |14.2983000 |1.4097000 |0.4269000 |3.6349776| 3.6349776| 3.6349776 |0.5342500| 0.5342500 |0.5342500 |1.4157260 | 0.2664000| 1.4157260 |0.2664000| +| | 52.6148950 |14.2983000| 1.4097000 |0.4269000 |3.6349776| 3.6349776 |3.6349776| 0.5342500 |0.5342500 |0.5342500 | 1.4157260 |0.2664000| 1.4157260| 0.2664000 | + +| Coulomb (diagonal) | | | | | | | | | | | | | | | +|--------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| +| | -82.4990426 | -40.3766945 |-13.3380146| -7.7470598| -11.7587263 |-11.7247201 |-11.6714398| -4.8575277| -4.7808320| -4.6606664 | -5.8164327 | -4.5175558 |-5.8164327 | -4.5175558| +| | -82.4990426 |-40.3766945 |-13.3380146| -7.7470598 |-11.7587263| -11.7247201 |-11.6714398| -4.8575278 |-4.7808320| -4.6606664 |-5.8164327 | -4.5175558 |-5.8164327 | -4.5175558 | + +| Core Hamiltonian | | | | | | | | | | | | | | | +|---------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| +| | -29.8841477 |-26.0783945 |-11.9283146 |-7.3201598| -8.1237488 |-8.0897426| -8.0364623 |-4.3232777| -4.2465820|-4.1264164 | -4.4007067| -4.2511558|-4.4007067 |-4.2511558 | +| | -29.8841477 |-26.0783945| -11.9283146| -7.3201598 |-8.1237488 |-8.0897426 |-8.0364623 |-4.3232778| -4.2465820| -4.1264164 | -4.4007067 | -4.2511558 |-4.4007067| -4.2511558| + +| Initial electronic energy | | +|----------------------------|----------------------| +| | -132.798981914282 | +| | -132.798981914281 | + +| Final electronic energy | | +|----------------------------|----------------------| +| | -83.980246037187 | +| | -83.980246037188 | + +| Final total energy | dz | aug-cc-pvdz | +|----------------------------|----------------------|----------------------| +| | -75.977878975377 | -76.0038462065 | +| | -75.977878975377 | -76.0038462395 | + +*aug-cc-pvdz comparison with McMurchie-Davidson program* + + +| Final density trace | | | | | | | | | | | | | | | +|--------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------|-------| +| | 0.3572894 |0.2503195 |0.3046369| 0.2992919| 0.3091959 |0.3784894 |0.5363885 |0.0471462 |0.1081589| 0.1637180| 0.0859661| 0.0349829 |0.0859661 |0.0349829 | +| | 0.3572894 |0.2503195 |0.3046369| 0.2992919| 0.3091959 |0.3784894 |0.5363885 |0.0471462 |0.1081589| 0.1637180|0.0859661 |0.0349829| 0.0859661| 0.0349829| + +| Dipole | x | y | z | resultant | +|----------------------------|----------------------|----------------------|-----------|----------| +| | 0.000000000000 | 1.070995737060 | 0.000000000000 | 1.070995737060 | +| | 0.000000000000 | 1.07099574 | 0.000000000000 | 1.07099574 | + +| Charge (Mulliken) | O | H | H | +|----------------------------|---------------------|----------------|-----------| +| | -0.771301809588 | 0.385650904794 | 0.385650904794 | +| | -0.77130181 | 0.3856509 | 0.3856509 | + +| moller-plesset 2 | | +| ------------------|------------| +| | -0.152709879075 | +| | -0.152709879075 | + +| CIS | | | | | | +|-------|--------|------|------|--------|----------| +| | 0.2521733734 | 0.2929742879 | 0.2951406202 | 0.3175855602 | 0.3372543633 | +| | |0.25217337 0.29297429 | 0.29514062 | 0.31758556 | 0.33725436 | + + +| RPA | | | | | | +|-------|--------|------|------|--------|----------| +| | 0.2458308730 | 0.2637567614 | 0.2896457262 | 0.3073528488 | 0.3111679098 | +| | 0.24583087 | 0.26375676 | 0.28964573 | 0.30735285 | 0.31116791| + +| Coupled cluster | mp2 | sd | t | +|----------------------------|-----------------------|----------------------|------------------| +| | -0.152709879075 | -0.159855618083 | -0.001538065776 | +| | -0.152709879075 | -0.159855618086 |-0.001538065776 | + +| CC2 | | +|-------------------------|-------------------| +| | -76.1321035 | +| correction | -0.1542245 | +| | -76.1321035 | + + +| Polarizabilities | principal polarizabilities | isotropic polarizability | +|-------------------------|-----------------------------------|-----------------------------| +| psi4 | 8.0314 12.5164 10.0903 | 10.2127 | +| harpy | 8.0313 12.5164 10.0905 | 10.2127 | + +*tested at aug-cc-pvdz level and compared with psi4 (with puream False so cartesian basis)* + +*psi4 uses nuclear charge gauge* + +**Hyperpolarizabilities** + +| psi4 | | | | harpy | | | +|---------|--------|-------------|--|----|-------|-------| +| 0.0 |-25.7868 | 0.0 | | 0.0 | -25.7868 | 0.0 | +| 0.0 | -11.5853 | 0.0 | | 0.0 | -11.5853 | 0.0 | +| 0.0 | 0.2452 | 0.0 | | 0.0 | 0.2452 | 0.0 | +| -0.2579 | 0.0 | 0.0 | | -0.2579 | 0.0 | 0.0 | +| 0.0 | 0.0 | 0.0 | | 0.0 | 0.0 | 0.0 | +| 0.0 | 0.0 | 0.2452 | | 0.0 | 0.0 | 0.2452 | + +*tested at aug-cc-pvdz level, psi4 puream=False, scf_type=direct, noreorient, using nuclear charge gauge in harpy.* + + +Note the saving using + +h2o-aug-cc-pvdz-mints.npz density matrix with aug-cc-pvdz basis - (without) 61 s (with) 35s + +h2o-dz-mints.npz density matrix with dz basis - (without) 1 s (with) 0.8s + diff --git a/test/h2o-sto-3g.html b/test/h2o-sto-3g.html new file mode 100644 index 0000000..ca2ee62 --- /dev/null +++ b/test/h2o-sto-3g.html @@ -0,0 +1,1224 @@ + + + + +

    HARPY RHF output for h2o

    +

    atoms

    +

    number of atoms is 3

    + + + + + + + +
    atomic input data
    idnumberxyzweight
    1O180.0-0.1432258165520.015.99903
    2H111.6380368404071.1365488225470.01.00784
    3H21-1.6380368404071.1365488225470.01.00784
    +
    + + + + + +
    interatom seperations
    atomsd (bohr)
    O1-H12.079
    O1-H22.079
    +
    + + + + +
    interatom angles
    atomsangle
    H1-O1-H2104.0
    +
    + + + +
    center of mass
    xyz
    0.0-0.00.0
    +
    + + + +
    inferred bonds
    O1H1H2
    O1XX
    H1X
    H2X
    +
    + + + + + + +
    inertia tensor
    xyz
    2.9319390.00.0
    0.05.4084010.0
    0.00.08.340341
    +
    + + + + + +
    principal moments (amu bohr2)
    IaIbIc
    2.9319395.4084018.340341
    +
    +
    rotor typeasymmetric top
    +
    + + + + + +
    rotational constants (g cm-1)
    ABC
    20.532411.13087.2179
    +
    +
    nuclear repulsion energy8.00236706
    +
    +

    orbitals

    + +
    +
    number of electrons10
    +
    +
    basis setsto-3g
    +
    +
    Spherical +
    Basis Set Exchange +
    Version v0.8.12 +
    https://www.basissetexchange.org +
    Basis set: STO-3G +
    Description: STO-3G Minimal Basis (3 functions/AO) +
    Role: orbital +
    Version: 1 (Data from Gaussian09) +
    +
    + + + + + +
    orbital occupancy
    number of basis functions7
    number doubly occupied orbitals5
    number of virtual orbitals2
    +
    + + + + + + + + + + +
    atomic orbitals
    + 1O1Os2O1Os3O1Opx4O1Opy
    + 5O1Opz6H1Hs7H2Hs
    +
    + + + + + + + +
    aufbau atomic occupancies
    idorbitals
    1O11s22s22p4
    2H11s1
    3H21s1
    +
    +

    pre-scf

    + +
    + + +
    initial fock guesscore hamiltonian
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    overlap
    1234567
    11.00000.23670.00000.00000.00000.03840.0384
    20.23671.00000.00000.00000.00000.38610.3861
    30.00000.00001.00000.00000.00000.2684-0.2684
    40.00000.00000.00001.00000.00000.20970.2097
    50.00000.00000.00000.00001.00000.00000.0000
    60.03840.38610.26840.20970.00001.00000.1818
    70.03840.3861-0.26840.20970.00000.18181.0000
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    kinetic
    1234567
    129.0032-0.16800.00000.00000.0000-0.0084-0.0084
    2-0.16800.80810.00000.00000.00000.07050.0705
    30.00000.00002.52870.00000.00000.1471-0.1471
    40.00000.00000.00002.52870.00000.11490.1149
    50.00000.00000.00000.00002.52870.00000.0000
    6-0.00840.07050.14710.11490.00000.7600-0.0040
    7-0.00840.0705-0.14710.11490.0000-0.00400.7600
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Coulomb
    1234567
    1-61.5806-7.41080.0000-0.01450.0000-1.2317-1.2317
    2-7.4108-10.00910.0000-0.17690.0000-2.9772-2.9772
    30.00000.0000-9.98760.00000.0000-1.82221.8222
    4-0.0145-0.17690.0000-9.94400.0000-1.4718-1.4718
    50.00000.00000.00000.0000-9.87590.00000.0000
    6-1.2317-2.9772-1.8222-1.47180.0000-5.3002-1.0672
    7-1.2317-2.97721.8222-1.47180.0000-1.0672-5.3002
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    two electron repulsion integrals *
    < i j | k l >
    < 1 1 | 1 1 >4.785066
    < 1 1 | 1 2 >0.74138
    < 1 1 | 1 6 >0.121785
    < 1 1 | 1 7 >0.121785
    < 1 1 | 2 1 >0.74138
    < 1 1 | 2 2 >1.118947
    < 1 1 | 2 6 >0.313334
    < 1 1 | 2 7 >0.313334
    < 1 1 | 3 3 >1.115814
    < 1 1 | 3 6 >0.183539
    < 1 1 | 3 7 >-0.183539
    < 1 1 | 4 4 >1.115814
    < 1 1 | 4 6 >0.143396
    < 1 1 | 4 7 >0.143396
    < 1 1 | 5 5 >1.115814
    < 1 1 | 6 1 >0.121785
    < 1 1 | 6 2 >0.313334
    < 1 1 | 6 3 >0.183539
    < 1 1 | 6 4 >0.143396
    < 1 1 | 6 6 >0.470723
    < 1 1 | 6 7 >0.105864
    < 1 1 | 7 1 >0.121785
    < 1 1 | 7 2 >0.313334
    < 1 1 | 7 3 >-0.183539
    < 1 1 | 7 4 >0.143396
    < 1 1 | 7 6 >0.105864
    < 1 1 | 7 7 >0.470723
    < 1 2 | 1 1 >0.74138
    < 1 2 | 1 2 >0.136873
    < 1 2 | 1 6 >0.022309
    +

    * non-zero integrals (total 406) first 30 shown

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    S
    1234567
    11.0236-0.1369-0.0000-0.00750.00000.01900.0190
    2-0.13691.15790.00000.07220.0000-0.2223-0.2223
    3-0.00000.00001.0733-0.00000.0000-0.17580.1758
    4-0.00750.07220.00001.03830.0000-0.1185-0.1185
    50.00000.00000.00000.00001.00000.00000.0000
    60.0190-0.2223-0.1758-0.11850.00001.1297-0.0626
    70.0190-0.22230.1758-0.11850.0000-0.06261.1297
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    orthogonal initial Fock
    1234567
    1-19.8799-2.6854-0.0000-0.05340.0000-0.0962-0.0962
    2-2.6854-1.31200.00000.1020-0.0000-0.4050-0.4050
    3-0.00000.0000-0.00940.0000-0.0000-0.40110.4011
    4-0.05340.10200.0000-0.15060.0000-0.3003-0.3003
    50.0000-0.0000-0.00000.0000-0.3876-0.00000.0000
    6-0.0962-0.4050-0.4011-0.3003-0.0000-0.0197-0.0693
    7-0.0962-0.40500.4011-0.30030.0000-0.0693-0.0197
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    initial density
    1234567
    11.0549-0.2328-0.00000.0526-0.0000-0.0082-0.0082
    2-0.23281.0151-0.0000-0.28230.0000-0.0305-0.0305
    3-0.0000-0.00000.3688-0.00000.00000.2751-0.2751
    40.0526-0.2823-0.00000.5660-0.00000.25860.2586
    5-0.00000.00000.0000-0.00001.00000.0000-0.0000
    6-0.0082-0.03050.27510.25860.00000.3345-0.0759
    7-0.0082-0.0305-0.27510.2586-0.0000-0.07590.3345
    +
    +
    initial SCF electronic energy-82.94444702
    +
    +

    scf

    + +
    iteration limit100
    convergence criterion1e-08
    +

    direct inversion of the iterative sub-space (diis) is on

    + + + +
    electronic energy (E)Δ(E)rms(D)
    82.944447015900
    +

    SCF converged in 1 cycles

    +
    +

    post-scf

    + +
    +
    final scf total energy-74.9420799540
    +
    + + + + + + + + + + + + + + + + +
    final orbital energies
    1234567
    -20.262891-1.209697-0.547965-0.436527-0.3875870.4776190.588139
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    orbital coeffiecients
    1234567
    1-0.994435-0.2391590.000000-0.093683-0.0000000.1116400.000000
    2-0.0240970.885736-0.0000000.4795860.000000-0.669579-0.000000
    30.000000-0.000000-0.607285-0.0000000.0000000.000000-0.919234
    4-0.0031620.0858960.000000-0.7474310.000000-0.738489-0.000000
    50.000000-0.000000-0.000000-0.000000-1.000000-0.0000000.000000
    60.0045940.144040-0.452998-0.3294710.0000000.7098500.732461
    70.0045940.1440400.452998-0.329471-0.0000000.709850-0.732461
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    final density matrix
    1234567
    11.054874-0.2327980.0000000.0526230.000000-0.008151-0.008151
    2-0.2327981.0151110.000000-0.282300-0.000000-0.030539-0.030539
    30.0000000.0000000.368795-0.000000-0.0000000.275099-0.275099
    40.052623-0.282300-0.0000000.5660420.0000000.2586150.258615
    50.000000-0.000000-0.0000000.0000001.000000-0.0000000.000000
    6-0.008151-0.0305390.2750990.258615-0.0000000.334527-0.075887
    7-0.008151-0.030539-0.2750990.2586150.000000-0.0758870.334527


    + + +
    charge analysis
    orbitalatomdensity
    Mulliken
    1O11.9983
    2O11.8728
    3O11.033
    4O11.349
    5O12.0
    6H10.8734
    7H20.8734
    reduced To atoms centers
    O18.2531
    H10.8734
    H20.8734
    corrected for charge
    O1-0.2531
    H10.1266
    H20.1266
    Lowdin
    O18.1842
    H10.9079
    H20.9079
    corrected for charge
    O1-0.1842
    H10.0921
    H20.0921


    + + + + + +
    Mayer bond orders and valence
    H1H2valence
    O10.97520.97521.95
    H10.00880.98
    H20.98


    + + +
    energy partition
    descriptioncomponentsenergy
    kinetict74.334933
    nuclearn8.002367
    coulombv-194.534493
    one electront+v-120.199559
    two electrong37.255112
    totalt+v + 2g + n-74.94208
    total potentialv + g + n-149.277013
    total kinetict74.334933
    viral ratio(v+g+n)/t-2.008168
    bare hamiltoniant+v-120.199559
    orbital-45.689335


    + + + +
    dipoles
    xyz(au)(debye)
    0.00.60350.00.60351.5339


    + + + + + + + + + + +
    quadrupoles (debye Å)
    x2y2z2xyyzzx
    -4.3165-5.2051-6.20720.0-0.00.0
    traceless
    0.92640.0378-0.96420.0-0.00.0
    eigenvalues
    0.92640.0378-0.9642
    trace is close to zeroTrue
    amplitude1.3377
    asymmetry0.8886


    + + + + + + + +
    moller-plesset
    {mp2} parallel spin-0.00310622
    {mp2} anti-parallel spin-0.04604342
    {mp2} total-0.04914964
    {mp3} total-0.01418782
    {mp2+mp3} total-0.06333746
    {total energy + mp correction} total-75.00541741


    + + + +
    orbital optimised mp2
    cycletotal energyΔ(E)
    7 -74.99147132-3.34074e-09


    + + + + + + + + + +
    Laplace transform generated mp2
    method
    reference scf energy-74.94207995
    parallel spin correlation-0.00310618
    anti-parallel spin correlation-0.04603963
    total spin correlation-0.04914581
    corrected scf energy-74.99122576
    total spin-component scaled-0.05628295
    corrected spin-component scaled-74.99836290


    + + + + + + +
    many-body perturbation diagrams
    mp2 correlation-0.04914964
    mp3 correlation-0.01418782
    mp4 correlation-0.00469027
    SCF energy-74.94207995
    Total corrected energy-75.01010769


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    configuration interaction *
    0.287256 (t)0.344425 (t)0.356462 (s)0.365989 (t)0.394514 (t)0.416072 (s)
    0.505628 (s)0.514290 (t)0.555192 (s)0.563056 (t)0.655318 (s)0.910122 (s)
    1.108771 (t)1.200096 (t)1.300785 (s)1.325762 (s)19.958526 (t)20.010979 (s)
    20.011342 (t)20.050532 (s)
    +

    * s -singlet, t -triplet

    +
    + + + + + + + + +
    block Davidson (first 5 eigenvalues)
    0.2872560.2872560.2872560.3444250.344425
    +
    + + + + + + + + + + +
    CIS significant excitations
    stateenergy(%) excitation
    00.287256(50) 8 -> 10 + (50) 9 -> 11
    10.287256(94) 8 -> 11 +
    20.287256(94) 9 -> 10 +
    30.344425(44) 6 -> 10 + (44) 7 -> 11
    40.344425(40) 6 -> 11 + (49) 7 -> 10
    50.344425(49) 6 -> 11 + (40) 7 -> 10
    60.356462(50) 8 -> 10 + (50) 9 -> 11
    70.365989(50) 8 -> 12 + (50) 9 -> 13
    80.365989(100) 9 -> 12 +
    90.365989(100) 8 -> 13 +
    +

    contributions over 10% of 10 lowest energy levels



    + + + + + + + + + + + + + + + +
    configuration interaction spin-adapted singles
    0.3564620.4160720.5056280.5551920.6553180.910122
    1.3007851.32576220.01097920.050532


    + + + + + + + + + + + + + + + +
    configuration interaction spin-adapted triplets
    0.2872560.3444250.3659890.3945140.5142900.563056
    1.1087711.20009619.95852620.011342


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    random phase approximation *
    0.285164 (t)0.299743 (t)0.352627 (t)0.354778 (s)0.365131 (t)0.415318 (s)
    0.500101 (s)0.510661 (t)0.546072 (t)0.551372 (s)0.650271 (s)0.873425 (s)
    1.103819 (t)1.195787 (t)1.283205 (s)1.323742 (s)19.958504 (t)20.010947 (s)
    20.011307 (t)20.050492 (s)
    +

    * s -singlet, t -triplet



    + + + + + + + +
    full configuration interaction
    number of electrons10
    number of spin orbitals14
    number of determinants1001
    SCF energy-74.942080
    FCI energy-75.012980
    FCI correction -0.070900


    + + + + + + + +
    ci singles and doubles
    number of electrons10
    number of spin orbitals14
    number of determinants1001
    SCF energy-74.942080
    CISD energy-75.011223
    CISD correction -0.069143


    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ci singles (slater determinants)
    number of electrons10
    number of spin orbitals14
    number of determinants40
    7.8166207.8166207.8166209.3722829.3722829.372282
    9.6998199.9590689.9590689.95906810.73526710.735267
    10.73526711.32188913.75884613.99454313.99454313.994543
    15.10754015.32152715.32152715.32152717.83212324.765672
    30.17119430.17119430.17119432.65627832.65627832.656278
    35.39616736.075822543.099141543.099141543.099141544.526460
    544.536329544.536329544.536329545.602739


    direct inversion of the iterative sub-space (diis) is on

    + + + + + + + + + + + + + +
    coupled-cluster interations
    ccsd energyΔ(E)Δrms(amplitudes)
    -0.072139497800
    -0.06932072861.779670e-031.331253e-02
    -0.07007008467.493560e-045.854548e-03
    -0.07039981353.297290e-042.649446e-03
    -0.07054881141.489979e-041.222540e-03
    -0.07067993511.311237e-041.110052e-03
    -0.07068008071.455987e-077.933262e-07
    -0.07068009141.070254e-086.703937e-08
    -0.07068008892.569719e-098.026180e-10
    +

    ccsd converged in 10 cycles

    + + + + + + +
    coupled cluster
    mp2 correction-0.04914964
    singles and doubles CCSD-0.07068009
    perturbative triples CCSD(T)-0.00009988
    total ccsd correction-0.07077997
    total energy ccsd corrected-75.01285992


    direct inversion of the iterative sub-space (diis) is on

    + + + + + + + + + + + +
    coupled-cluster interations
    ccsd energyΔ(E)Δrms(amplitudes)
    -0.049412919600
    -0.04938391001.918532e-051.814295e-04
    -0.04939225358.343588e-067.860032e-05
    -0.04939599293.739376e-063.513481e-05
    -0.04939768861.695677e-061.590804e-05
    -0.04939911301.424448e-061.334692e-05
    -0.04939911301.539879e-121.497513e-11
    +

    cc2 converged in 8 cycles

    + + + +
    coupled cluster CC2
    cc2 correction-0.04939911
    corrected energy-74.99147907


    direct inversion of the iterative sub-space (diis) is off

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    coupled-cluster interations
    ccsd energyΔ(E)Δrms(amplitudes)
    -0.077525282200
    -0.06832096344.983504e-033.423380e-02
    -0.07032223662.001273e-031.470066e-02
    -0.07119027318.680365e-046.646830e-03
    -0.07158264923.923760e-043.081582e-03
    -0.07176422521.815761e-041.450789e-03
    -0.07184958778.536242e-056.914634e-04
    -0.07189024524.065756e-053.334865e-04
    -0.07190985561.961043e-051.628538e-04
    -0.07191943949.583791e-068.060267e-05
    -0.07192418924.749778e-064.047168e-05
    -0.07192657852.389294e-062.063125e-05
    -0.07192779921.220671e-061.068163e-05
    -0.07192843276.335376e-075.616500e-06
    -0.07192876673.339760e-072.997756e-06
    -0.07192894541.787160e-071.622729e-06
    -0.07192904249.698204e-088.898153e-07
    -0.07192909575.330306e-084.935842e-07
    -0.07192912532.962975e-082.765656e-07
    -0.07192914191.663324e-081.563094e-07
    -0.07192915149.416100e-098.898838e-08
    -0.07192915675.368172e-095.096942e-08
    -0.07192915983.078352e-092.933908e-08
    -0.07192916161.773735e-091.695677e-08
    -0.07192916261.026002e-099.832472e-09
    +

    lccd converged in 26 cycles

    + + + +
    linear coupled cluster doubles *
    lccd correction-0.07192916
    corrected energy-75.01400912
    +

    *coupled electron pair approximation (zero)



    direct inversion of the iterative sub-space (diis) is off

    + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    coupled-cluster interations
    ccsd energyΔ(E)Δrms(amplitudes)
    -0.076402053700
    -0.06724031704.464472e-033.081237e-02
    -0.06892937671.689060e-031.244851e-02
    -0.06962176096.923842e-045.297244e-03
    -0.06991706652.953056e-042.308803e-03
    -0.07004581091.287444e-041.021530e-03
    -0.07010282825.701729e-054.578962e-04
    -0.07012844222.561398e-052.080163e-04
    -0.07014011851.167637e-059.588013e-05
    -0.07014552515.406571e-064.489327e-05
    -0.07014807052.545354e-062.137318e-05
    -0.07014928971.219240e-061.035184e-05
    -0.07014988415.943569e-075.100621e-06
    -0.07015017882.947770e-072.555322e-06
    -0.07015032751.486191e-071.300281e-06
    -0.07015040357.607624e-086.711068e-07
    -0.07015044303.947720e-083.507568e-07
    -0.07015046382.073139e-081.853288e-07
    -0.07015047481.099886e-089.882785e-08
    -0.07015048065.885607e-095.310610e-08
    -0.07015048383.171835e-092.871700e-08
    -0.07015048551.719239e-091.560796e-08
    -0.07015048659.362297e-108.517826e-09
    +

    ccd converged in 24 cycles

    + + + +
    coupled cluster doubles
    ccd correction-0.07015049
    corrected energy-75.01223044


    direct inversion of the iterative sub-space (diis) is on

    + + + + + + + + + + + + + +
    coupled-cluster interations
    ccsd energyΔ(E)Δrms(amplitudes)
    -0.077897588100
    -0.06866594075.142328e-033.550485e-02
    -0.07077712842.111188e-031.564786e-02
    -0.07171742039.402919e-047.298489e-03
    -0.07215609154.386712e-043.509116e-03
    -0.07257600914.199176e-043.491896e-03
    -0.07257645954.504713e-072.608846e-06
    -0.07257659281.332681e-077.407141e-07
    -0.07257658785.026186e-097.013158e-09
    +

    lccsd converged in 10 cycles

    + + + +
    linear coupled-cluster singles and doubles
    lccsd correction-0.07257659
    corrected energy-75.01465654


    + + + + + + + + + + +
    molecular forces (Eha0-1)
    atomxyz
    analytic
    O10.0000000.0974410.000000
    H1-0.086300-0.0487210.000000
    H20.086300-0.0487210.000000
    numeric
    O1-0.0000000.097441-0.000000
    H1-0.086300-0.048721-0.000000
    H20.086300-0.048721-0.000000


    + + + + + + + + + + + + + + + + + + + +
    electron propogator - Koopman's theorem
    HOMO - nKoopman (eV)EP2 (eV)
    ep2 spatial
    -1-11.8785-10.3403
    0-10.5468-7.4044
    112.996712.8950
    216.004115.6734
    ep2 spin
    4-551.3813-541.7558
    3-32.9175-29.8607
    2-14.9109-14.5980
    1-11.8785-10.3404
    0-10.5468-7.4044
    ep3 spin
    4-551.3813-543.6306
    3-32.9175-29.2271
    2-14.9109-14.8363
    1-11.8785-10.7673
    0-10.5468-8.1825


    + + +
    Approximate Greens function correction to Koopmans theorem (eV)
    HOMO - nKoopmanorbital relaxationpair relaxationpair removalcorrectionKP + correction
    0551.381312.64570.0171-0.0016-12.6644538.7169 +
    132.91751.92543.1906-0.2181-5.334227.5834 +
    214.91090.72150.2512-0.6473-1.620013.2909 +
    311.87851.87330.2178-0.4429-2.53409.3445 +
    410.54683.44790.0579-0.0276-3.53347.0134 +


    + + + + +
    polarizability (α) (coupled-perturbed SCF)
    principal polarizabilities
    7.93560.05043.0682
    isotropic3.6847


    + + + + +
    polarizability (α) (coupled-perturbed SCF)
    principal polarizabilities
    7.93560.05043.0682
    isotropic3.6847


    + + + + + + +
    static hyperpolarizability (β) (au)
    xyz
    -0.0000-14.41060.0002
    amplitude14.4106
    z0.0000
    z0.0001


    + + + + + + + + + +
    Cluster Operator Generator Using Sympy
    CCD-0.0701504876
    CCSD-0.0706800888
    CCSDT-0.0708128081
    CCSD(T)-0.0706800888-9.98773e-05
    CC2-0.0493991402
    CC3-0.0707780329
    LCCD-0.0719291641
    LCCSD-0.0725765893
    + \ No newline at end of file diff --git a/test/h2o-sto-3g.md b/test/h2o-sto-3g.md new file mode 100644 index 0000000..39bf7e1 --- /dev/null +++ b/test/h2o-sto-3g.md @@ -0,0 +1,232 @@ +# Water in STO-3G basis + +Reference is Crawford project #3 [see](https://github.com/CrawfordGroup/ProgrammingProjects/blob/master/Project%2303/output/h2o/STO-3G/output.txt). **Crawford first and harpy second** + +| Nuclear repulsion | | +|-----------------------|-------------------| +| | 8.0023670618 | +| | 8.0023670618 | + +| Overlap (1st row) | | | | | | | | +|-----------------------|------------|-----------|-----------|-----------|-----------|-----------|-----------| +| | 1.0000000 | 0.2367039 | 0.0000000 | 0.0000000 | 0.0000000 | 0.0384056 | 0.0384056 | +| | 1. | 0.2367039 | 0. | 0. | 0. | 0.0384056 | 0.0384056 | + +| Kinetic (diagonal) | | | | | | | | +|-----------------------|------------|-----------|-----------|-----------|-----------|-----------|-----------| +| | 29.0031999 | 0.8081280 | 2.5287312 | 2.5287312 | 2.5287312 | 0.7600319 | 0.7600319 | +| | 29.0032041 | 0.8081279 | 2.5287312 | 2.5287312 | 2.5287312 | 0.7600319 | 0.7600319 | + +| Coulomb (diagonal) | | | | | | | | +|-----------------------|------------|-----------|-----------|-----------|-----------|-----------|-----------| +| |-61.5805954 |-10.0090712| -9.9875505| -9.9440430| -9.8758761| -5.3002030| 5.3002030| +| |-61.5805996 |-10.0090710| -9.9875505|-9.9440430 | -9.8758761| -5.3002029| -5.3002029| + +| Core Hamiltonian | | | | | | | | +|-----------------------|------------|-----------|-----------|-----------|-----------|-----------|-----------| +| |-32.5773954 | -9.2009433| -7.4588193| -7.4153118| -7.3471449| -4.5401711| -4.5401711| +| |-32.5773956 | -9.2009431| -7.4588193| -7.4153117| -7.3471448| -4.5401711| -4.5401711| + +| Initial electronic energy | | +|-------------------------------|-------------------| +| | -125.842077437699 | +| | -125.842077855707 | + +| Final electronic energy | | +|-------------------------------|-------------------| +| | -82.944446990003 | +| | -82.944447015860 | + +| Final total energy | | +|-------------------------------|-------------------| +| | -74.942079928192 | +| | -74.942079954049 | + +| Final density trace | | | | | | | | +|-----------------------|------------|-----------|-----------|-----------|-----------|-----------|-----------| +| | 1.0548737 | 1.0151108 | 0.3687949 | 0.5660419 | 1.0000000 | 0.3345267 | 0.3345267 | +| | 1.0548737 | 1.0151108 | 0.3687949 | 0.5660419 | 1.0000000 | 0.3345267 | 0.3345267 | + +| Dipole | x | y | z | resultant | +|-----------------------|------------------|-----------------|-----------------|-----------------| +| | 0.000000000000 | 0.603521296525 | 0.000000000000 | 0.603521296525 | +| | 0.00000000 | 0.603521344 | 0.00000000 | 0.603521344 | + +| Charges (mulliken) | O | H | H | +|-----------------------|------------------|-----------------|-----------------| +| | -0.253146052405 | 0.126573026202 | 0.126573026202 | +| | -0.25314612 | 0.12657306 | 0.12657306 | + +| bond orders | H | H | valency | +|---------------|--------|---------|-----------| +| O | 0.9752 | 0.9752 | 1.95 | +| H | | 0.0088 | 0.98 | +| H | | | 0.98 | + +| moller-plesset (mp2) | | +|-----------------------|------------------| +| | -0.049149636120 | +| | -0.049149636690 | + +|CIS | | | | | | +|-----------------------|--------------|-------------|-------------|-------------|-------------| +| | 0.2872554996 | 0.3444249963| 0.3564617587| 0.3659889948| 0.3945137992| +| | 0.28725552 | 0.34442501 | 0.35646178 | 0.36598901 | 0.39451381 | + +|RPA | | | | | | +|-----------------------|--------------|-------------|-------------|-------------|-------------| +| | 0.2851637170 |0.2997434467 | 0.3526266606| 0.3547782530| 0.3651313107| +| | 0.28516373 |0.29974346 | 0.35262667 | 0.35477827 | 0.36513132 | + +| Coupled cluster | mp2 | sd | t | +|-----------------------|------------------|-----------------|-----------------| +| | -0.049149636120 | -0.070680088376 | -0.000099877272 | +| | -0.049149636690 | -0.070680088804 | -0.000099877268 | + +| Forces | Ox | Oy | Oz | Hx | Hy | Hz | Hx | Hy | Hz | +|-----------------------|----------|----------|----------|----------|----------|----------|----------|----------|----------| +| | 0.000000 | 0.097441 | 0.000000 |-0.086300 | -0.048721| 0.000000 | 0.086300 | -0.048721| 0.000000 | +| | 0.000000 | 0.097441 | 0.000000 |-0.086300 | -0.048721| 0.000000 | 0.086300 | -0.048721| 0.000000 | + +*Tested at STO-3G level against Joshua Goings McMurchie-Davidson program* + +| CCD | | +|-------------------------|----------------------| +| | -0.07015051 | +| | -0.07015048 | + + +*Tested on psi4numpy tutorial* + +| LCCD | | +|-----------------------|----------------------| +| | -0.07192915 | +| | -0.07192915 | + + *Tested on psi4numpy tutorial* + +| CC2 | | +|-------------------|---------------------| +| | -74.9914791 | +| correction (harpy)| -0.0493991 | +| | -74.9914791 | + + *Tested against psi4* + +| CCSD-Λ | | +|---------------|-----------------| +| | -0.068888201463 | +| | -0.06888820 | + +*Tested against psi4numpy* + + +| OOMP2 | iteration | psi4 numpy | harpy | +|-----------------------|-------------------------------|------------------------------------|------------------------------------| +| | OMP2 iteration: 0 | -76.09603493 dE: -7.60960E+01 | -76.09603494 dE: -7.60960E+01 | +| | OMP2 iteration: 1 | -76.09617336 dE: -1.38424E-04 | -76.09617337 dE: -1.38423E-04 | +| | OMP2 iteration: 2 | -76.09618834 dE: -1.49844E-05 | -76.09618835 dE: -1.49844E-05 | +| | OMP2 iteration: 3 | -76.09619159 dE: -3.24371E-06 | -76.09619160 dE: -3.24371E-06 | +| | OMP2 iteration: 4 | -76.09619246 dE: -8.72489E-07 | -76.09619247 dE: -8.72489E-07 | +| | OMP2 iteration: 5 | -76.09619281 dE: -3.48877E-07 | -76.09619282 dE: -3.48878E-07 | +| | OMP2 iteration: 6 | -76.09619295 dE: -1.38242E-07 | -76.09619296 dE: -1.38240E-07 | +| | OMP2 iteration: 7 | -76.09619301 dE: -6.80800E-08 | -76.09619302 dE: -6.80790E-08 | +| | OMP2 iteration: 8 | -76.09619305 dE: -3.19301E-08 | -76.09619306 dE: -3.19281E-08 | +| | OMP2 iteration: 9 | -76.09619306 dE: -1.65530E-08 | -76.09619307 dE: -1.65554E-08 | +| | OMP2 iteration: 10 | -76.09619307 dE: -8.24737E-09 | -76.09619308 dE: -8.24936E-09 | + +*Tested at 6-31G level against psi4numpy tutorial* + +| EP2 | HOMO - n | KP (eV) | EP2 (eV) | harpy | +|-----------------------|:---:|---------------|--------------|--------------| +| | -1 | -11.8785 | -10.3403 | -10.3403 | +| | 0 | -10.5468 | -7.4045 | -7.4044 | +| | 1 | 12.9967 | 12.8950 | 12.8950 | +| | 2 | 16.0041 | 15.6734 | 15.6734 | + +*Tested against Psi4 at STO-3G level (harpy output matches KP)* + +| EP2 spin adapted | HOMO - n | KP (eV) | EP2 (eV) | harpy | +|-----------------------|:---:|---------------|--------------|--------------| +| | 4 | -551.3813 | -541.7559 | -541.7558 | +| | 3 | -32.9175 | -29.8609 | -29.0607 | +| | 2 | -14.9109 | -14.5980 | -14.5980 | +| | 1 | -11.8785 | -10.3404 | -10.3404 | +| | 0 | -10.5468 | -7.4046 | -7.4044 | + +*Tested against psi4numpy at STO-3G level* + +| EP3 spin adapted | HOMO - n | KP (eV) | EP2 (eV) | EP3 (eV) | harpy | +|-----------------------|:---:|---------------|--------------|--------------|---------------| +| | 4 | -551.3813 | -541.7559 | -543.6307 | -543.6306 | +| | 3 | -32.9175 | -29.8609 | -29.2271 | -29.2271 | +| | 2 | -14.9109 | -14.5980 | -14.8363 | -14.8363 | +| | 1 | -11.8785 | -10.3404 | -10.7673 | -10.7673 | +| | 0 | -10.5468 | -7.4046 | -8.1825 | -8.1825 | + +*Tested against psi4numpy at STO-3G level* + + +|Coupled-Perturbed SCF | Principal polarizabilities | Isotropic polarizability | +|-----------------------|--------------------------------|-----------------------------| +| | 0.0504 7.9355 3.0682 | 3.6847 | +| | 0.0504 7.9356 3.0682 | 3.6847 | + +*Tested against psi4numpy at STO-3G level* + +| MP2 Laplace | Energy type | harpy | psi4numpy | +|-----------------------|------------------------------------|-------------------|------------------| +| | MP2 SS correlation energy | -0.0460396280 | -0.0460396451 | +| | MP2 OS correlation energy | -0.0031061810 | -0.0031061822 | +| | MP2 correlation energy | -0.0491458090 | -0.0491458273 | +| | MP2 total energy | -74.9912257631 | -74.9912257555 | +| | MP2 spin-component scaled | -0.0562829473 | -0.0562829682 | +| | MP2-SCS total energy | -74.9983629013 | 74.9983628964 | +| | SCF energy | -74.9420799540 | | + +*results test against psi4 (puream false and scf direct)* + + +| quadrupole | x2 | y2 | z2 | xy | yz | zx | +|----------------|----------------|----------------|---------------|-----|----|-----| +| |-4.3168 | -5.2054 | -6.2076 | 0.0 | 0.0 | 0.0 | +| traceless | 0.9265 | 0.0378 | -0.9643 | 0.0 | 0.0 | 0.0 | +| | -4.3165 |-5.2051 |-6.2072 | 0.0 | 0.0 |0.0 | +| traceless | 0.9264| 0.0378 |-0.9642| 0.0 |0.0| 0.0 | + +*tested against psi4 (psi4 first)* + +many-body perturbation theory +| order of theory | harpy | psi4 | +|-----------------|------------------|------------| +| mp2 | -0.0491496367 | -0.0491496272| +| mp3 | -0.0141878228 | -0.0141878317 | +| mp4 | -0.0046902727 | | + +| EOM-CCSD | | | | | | +|------------|-----------|------------|---------------|------------|---------------| +| 7.4901 | 8.7959 | 9.8321 | 10.0122 | 10.7445 | 11.6803 | +| 7.490148 | 8.795920 | 9.832138 | 10.012208 | 10.745541 | 11.680297 | + +*values from Gaussian supplied curtesy of Josh Goings* + +| EOM-CCSD | | | | | | +|------------|-----------|------------|---------------|------------|---------------| +| 7.1222 | 8.4365 | 9.4985 | 9.6904 | 10.4213 | 11.3431 | +| 7.122188 | 8.436496 | 9.498511 | 9.690388 | 10.421266 | 11.343091 | + +*values from Gaussian supplied curtesy of Josh Goings* + +# UHF +The first test is that UHF (charge 0 multiplicity 1) should agree with RHF for closed shell and no orbital mixing... + + RHF total energy -74.942079954 UHF total energy -74.942079954 OK + + CH2 triplet at dz basis level + + psi -38.918004 harpy -38.918003 (charge 0 multiplicity 3) + + OH- at dz basis level + + psi -75.386230 harpy -75.386228 (charge 0 multiplicity 2) + diff --git a/test/hhe+-sto-3g.html b/test/hhe+-sto-3g.html new file mode 100644 index 0000000..6ca1f56 --- /dev/null +++ b/test/hhe+-sto-3g.html @@ -0,0 +1,387 @@ + + + + +

    HARPY RHF output for HHe+

    +

    atoms

    +

    number of atoms is 2

    + + + + + +
    atomic input data +
    idnumberxyzweight
    1He121.7564911750.00.04.002602
    2H110.00.00.01.00784
    +
    + + + + +
    interatom seperations
    atomsd (bohr)
    He1-H11.756
    +
    + + + +
    center of mass
    xyz
    1.4030.00.0
    +
    + + + +
    inferred bonds
    He1H1
    He1X
    H1X
    +
    + + + + + + +
    inertia tensor
    xyz
    0.00.00.0
    0.02.483990.0
    0.00.02.48399
    +
    + + + + + +
    principal moments (amu bohr2)
    IaIbIc
    0.02.483992.48399
    +
    +
    rotor typediatomic
    +
    + + + + + +
    rotational constants (g cm-1)
    ABC
    0.024.235124.2351
    +
    +
    nuclear repulsion energy1.13863367
    +
    +

    orbitals

    + +
    +
    number of electrons2
    +
    +
    basis setsto-3g
    +
    +
    Spherical +
    Basis Set Exchange +
    Version v0.8.12 +
    https://www.basissetexchange.org +
    Basis set: STO-3G +
    Description: STO-3G Minimal Basis (3 functions/AO) +
    Role: orbital +
    Version: 1 (Data from Gaussian09) +
    +
    + + + + + +
    orbital occupancy
    number of basis functions2
    number of occupied orbitals1
    number of virtual orbitals1
    +
    + + + + + +
    atomic orbitals
    + 1He1Hes2H1Hs
    +
    + + + + + + +
    aufbau atomic occupancies
    idorbitals
    1He11s2
    2H11s1
    +
    +

    pre-scf

    + +
    + + +
    initial fock guesscore hamiltonian
    +
    + + + + + + + + + + + + +
    overlap
    12
    11.00000.4343
    20.43431.0000
    +
    + + + + + + + + + + + + +
    kinetic
    12
    11.41180.1100
    20.11000.7600
    +
    + + + + + + + + + + + + +
    Coulomb
    12
    1-3.9068-1.2210
    2-1.2210-2.3191
    + +
    + + + + + + + + + + + + + + + + + + + +
    two electron repulsion integrals *
    < i j | k l >
    < 1 1 | 1 1 >1.0557
    < 1 1 | 1 2 >0.3432
    < 1 1 | 2 1 >0.3432
    < 1 1 | 2 2 >0.5234
    < 1 2 | 1 1 >0.3432
    < 1 2 | 1 2 >0.1406
    < 1 2 | 2 1 >0.1406
    < 1 2 | 2 2 >0.2789
    < 2 1 | 1 1 >0.3432
    < 2 1 | 1 2 >0.1406
    < 2 1 | 2 1 >0.1406
    < 2 1 | 2 2 >0.2789
    < 2 2 | 1 1 >0.5234
    < 2 2 | 1 2 >0.2789
    < 2 2 | 2 1 >0.2789
    < 2 2 | 2 2 >0.7746
    +

    * non-zero integrals (total 6)

    +
    + + + + + + + + + + + + +
    S
    12
    11.0823-0.2473
    2-0.24731.0823
    +
    + + + + + + + + + + + + +
    orthogonal initial Fock
    12
    1-2.4231-0.2843
    2-0.2843-1.3840
    +
    + + + + + + + + + + + + +
    initial density
    12
    10.97470.0282
    20.02820.0008
    +
    +
    initial SCF electronic energy-4.9915483
    +
    +

    scf

    + +
    iteration limit100
    convergence criterion1e-10
    +

    direct inversion of the iterative sub-space (diis) is on

    + + + + + + + + + + + + + + + + + +
    electronic energy (E)Δ(E)rms(D)
    4.991548301600
    -3.99436780024.489525e-025.842191e-02
    -3.99325115221.116648e-032.312950e-03
    -4.00484164101.159049e-022.307193e-02
    -3.99027627441.456537e-022.932482e-02
    -3.99017751099.876347e-052.103484e-04
    -3.99296084252.783332e-035.860074e-03
    -3.99299896383.812130e-057.848988e-05
    -3.99298763911.132465e-052.330543e-05
    -3.99300632171.868252e-053.844611e-05
    -3.99300232943.992272e-068.215059e-06
    -3.99300231751.190540e-082.449868e-08
    -3.99300232446.921976e-091.424162e-08
    -3.99300232435.556755e-111.143383e-10
    -3.99300232447.768008e-121.599024e-11
    +

    SCF converged in 15 cycles

    +
    +

    post-scf

    + +
    +
    final scf total energy-2.8543686503
    +
    + + + + + + +
    final orbital energies
    12
    -1.523787-0.267638
    +
    + + + + + + + + + + + + +
    orbital coeffiecients
    12
    1-0.9001280.649809
    2-0.194385-1.093022
    +
    + + + + + + + + + + + + +
    final density matrix
    12
    10.8102300.174971
    20.1749710.037785
    +
    + + + + +
    charge analysis
    orbitalatomdensity
    Mulliken
    1He11.7724
    2H10.2276
    reduced To atoms centers
    He11.7724
    H10.2276
    corrected for charge
    He10.2276
    H10.7724
    Lowdin
    He11.6958
    H10.3042
    corrected for charge
    He10.3042
    H10.6958
    +
    + + +
    energy partition
    descriptioncomponentsenergy
    exchangek2.422099
    nuclearn1.138634
    coulombj-7.36053
    one electronk+j-4.938431
    two electrong0.945429
    totalk+j + 2g + n-2.854369
    total potentialj + g + n-5.276468
    total kinetick2.422099
    viral ratio(j+g+n)/k-2.178469
    bare hamiltoniank+j-4.938431
    orbital-3.047573
    +
    + + + + + +
    dipoles
    xyzresultant
    electronic-0.824-0.0-0.00.824
    nuclear3.5130.00.03.513
    combined2.6890.00.04.337
    +
    + + + + + + + +
    moller-plesset
    {mp2} parallel spin0.00000000
    {mp2} anti-parallel spin-0.00640198
    {mp2} total-0.00640198
    {mp3} total-0.00114159
    {mp2+mp3} total-0.00754357
    {total energy + mp correction} total-2.86191222
    +
    + + + + + +
    configuration interaction *
    0.657595 (t)0.911238 (s)
    +

    * s -singlet, t -triplet

    +
    + + + + +
    configuration interaction spin-adapted singles
    0.911238
    +
    + + + + +
    configuration interaction spin-adapted triplets
    0.657595
    +
    + + + + + +
    random phase approximation *
    0.645250 (t)0.902370 (s)
    +

    * s -singlet, t -triplet

    +

    direct inversion of the iterative sub-space (diis) is on

    +
    + + + + + + + + + + + + +
    charged-couple singles and doubles
    ccsd energyΔ(E)Δrms(amplitudes)
    0.008412178600
    -0.00817552381.014501e-041.698325e-03
    -0.00820869663.317280e-055.608397e-04
    -0.00821992111.122455e-051.904761e-04
    -0.00822376603.844941e-066.533279e-05
    -0.00822578462.018590e-063.431749e-05
    -0.00822578406.889829e-101.201486e-08
    -0.00822578411.088167e-101.906251e-09
    -0.00822578413.451300e-127.155648e-11
    +

    ccsd converged in 10 cycles

    +
    + + + + + + +
    coupled cluster
    mp2 correction-0.00640198
    singles and doubles CCSD-0.00822578
    perturbative triples CCSD(T)0.00000000
    total ccsd correction-0.00822578
    total energy ccsd corrected-2.86259443
    + diff --git a/test/hhe+-sto-3g.md b/test/hhe+-sto-3g.md new file mode 100644 index 0000000..f977038 --- /dev/null +++ b/test/hhe+-sto-3g.md @@ -0,0 +1,42 @@ +# HHe+ in STO-3G basis + +This is a test of a charged molecule. Reference is Joshua Goings articles [here](https://joshuagoings.com/2013/07/17/coupled-cluster-with-singles-and-doubles-ccsd-in-python/), mp2 and CIS [here](https://joshuagoings.com/blog/page8/). + +Values are Josh Goings first then underneath harpy. + +|Nuclear repulsion | | +|------------------------|----------| +| | 1.1386276671 | +| | 1.13863367 | + +| Final Electronic Energy | | +|---------------------------|--| +| | -3.99300007772 | +| | -3.9930023244 | + + +| Final orbital energies | | | +|-----------------------------------|--|---| +| | -1.52378656 | -0.26763148 | +| | -1.523787 | -0.267638 | + +| Coupled-cluster Singles and Doubles | | +|--------------------------------------|-----| +| | -2.8626 | +| | -2.86259443 | + +| Moller-plesset 2nd order | | +|-----------------------------|---| +| | -0.00640 | +| | -0.00640198 | + +| Configuration interaction | | +|------------------------------|--| +| | 0.911 | +| | 0.911238 | + +| Random Phase Approximation | | +|--------------------------------|-----| +| | 0.902 | +| | 0.902370 | + diff --git a/test/k-edge.md b/test/k-edge.md new file mode 100644 index 0000000..c895194 --- /dev/null +++ b/test/k-edge.md @@ -0,0 +1,44 @@ +# H2 k-edge spectra + +The K-edge spectrum is a spectrum obtained when an X-Ray excites a *1s* inner core electron. The resulting excitation state can be below the ionization potential (IP) of the *1s* orbital (**pre-edge**) or above the IP (**above-edge**). For one electron, the spectrum arises because of transitions from the *1s* core orbital to excited molecular orbitals. Here we use Koopman's theorem to do a crude k-edge analysis of H2O so an approximation of excitation energy is obtained by taking the sum of the absolute value of the two orbital energies involved in the transition. These are the routines used... + +1. **getMolecule(basis)** + + parameters - *basis* is the molecular basis object as returned by *rhf.mol*. We start by defining the water molecule in a code object and writing that to temporary file to be read by rhf.mol. We run an SCF compuation so we have access to integrals and return the atom, basis and data objects along with the converged SCF energy. + +2. **getOrbitalEnergies(fock, S)** + + parameters - *fock* the Fock matrix from a converged RHF calculation and *S* is the overlap matrix from an SCF calculation. Orthogonalizes the Fock matrix and gets the eigensolution. Returns the orbital energies. + +3. **getOrbitalCharacter(orbital, basis, atom)** + + parameters - *orbital* is a column of the eigenvectors matrix (dimension\[nbf,1]), *basis* is an array of basis objects and *atom* is an array of atom objects. Finds the predominant contributing AO and returns a tuple of the AO's atom center id and it's orbital symbol eg (2px', 'O1'). + +4. **getMOwithCharacter(character, c, basis, atom)** + + parameters - *character* is a tuple as returned by *getOrbitalCharacter*, *c* are the molecular eigenvectors, *basis* is an array of basis objects and *atom* is an array of atom objects. Finds the MO which most matches the character requested. Returns an integer. + +5. **getKedgeExcitations(k, n, c, basis, atom, eMO)** + + parameters - *k* is the starting AO for the excitations as a tuple (here it is ('1s','O1')), *n* the number of excitations required, *c* are the molecular eigenvectors, *basis* is an array of basis objects, *atom* is an array of atom objects and *eMO* is an array of orbital energies. This finds the LUMO and returns the *n* energy differences between *k* and lumo+0, lumo+1,...lumo+*n*. + +6. **getDipoles(atom, basis)** + + parameters - *atom* is an array of atom objects and *basis* is an array of basis objects.Returns the components matrices of the dipoles in the 'origin' gauge. + +7. **getTransitionProperties(mu, c, i, a)** + + parameters - *mu* are the dipole component matrices, *c* are the orbital eigenvectors, *i* is an occupied MO and *a* in an unoccupied MO - the excitation id *i*->*a*. Computes the components of the transition dipole moment and the oscillator strength. + +8. **lorentzian(e0, e, tau)** + + parameters - *e0* is the excitation energy, *e* are the energies over the broadening range and *tau* is the life-time of the shape. The life-time (τ) is the reciprocal of the full-width at half-maximum of the shape (FWHM). We use a *tau* of 40au corresponding to 10-15s, a reasonable value for core excitations. Returns an array of points representing the broadened line shape. + + +The procedure is to first call **getMolecule** to run an RHF SCF computation so integrals are calculated. Next from **getOrbitalEnergies** we calculate the orbital energies, which are used by **getKedgeExcitations** to get the energy differences between the *1s* oxygen dominant MO and, say, 5 levels (in 6-31g basis with 13 basis functions 5-occupied and 8-virtual) at LUMO and above (eg 0->5, 0->6, 0->7, 0->8 nd 0->9). We then use **getTransitionProperties** to calculate the transition dipoles and oscillator strengths for the 5 transitions. The oscillator strengths are then broadened and plotted. This gives the following plot + +![image](https://user-images.githubusercontent.com/73105740/130357664-df7a0970-62f6-4b72-9c8f-34a8b3e01bd7.png) + + +The broadened line shapes are in black and the orange bars represent the unbroadened values (normalised). The MO are numbered at the top and you can see the biggest strength is from 1s to MO9. This MO is the oxygen 2pz orbital. + diff --git a/test/k-edge.py b/test/k-edge.py new file mode 100644 index 0000000..02d1ff0 --- /dev/null +++ b/test/k-edge.py @@ -0,0 +1,174 @@ +from __future__ import division +#import system modules +import sys +sys.path.append('../source') + +import os +import numpy as np +import rhf +from basis import electronCount + +def getMolecule(basis): + #get the molecular definition objects + + mol = """name=h2o +matrix=c +diis=on +basis=sto-3g +charge=0 +multiplicity=1 + +O1 8 0.000000000000 -0.143225816552 0.000000000000 +H1 1 1.638036840407 1.136548822547 0.000000000000 +H2 1 -1.638036840407 1.136548822547 0.000000000000 + +end + """ + #replace basis if necessary + if basis != None: + mol = mol.replace('sto-3g', basis) + + fileName = 'h2o.hpf' + f = open(fileName, 'w') + f.write(mol) + f.close() + + molAtom, molBasis, molData = rhf.mol([], file = fileName) + + #clean up file + if os.path.exists(fileName): + os.remove(fileName) + + molData['basis'] = basis + eSCF = rhf.scf(molAtom, molBasis, molData, []) + + return eSCF, molAtom, molBasis, molData + +def getOrbitalEnergies(fock, S): + #compute the orbital energies + + from scipy.linalg import fractional_matrix_power as fractPow + X = fractPow(S, -0.5) + + orthogonal_fock = np.dot(X.T, np.dot(fock, X)) + e, _ = np.linalg.eigh(orthogonal_fock) + + return e + +def getOrbitalCharacter(orbital, basis, atom): + #get the AO characteristic of MO + + aoMax = np.where(orbital == np.amax(orbital)) + + return (basis[aoMax[0][0]].symbol, atom[basis[aoMax[0][0]].atom].id) + +def getMOwithCharacter(character, c, basis, atom): + #find the MO with the given AO character + + for i in range(c.shape[1]): + ao = getOrbitalCharacter(c[:,i], basis, atom) + if ao == character: + return i + +def getKedgeExcitations(k, n, c, basis, atom, eMO): + #get the n excitations + + lumo = electronCount(atom, data['charge'])//2 + + #get MO corresponding to 1s O1 and energy + mo = getMOwithCharacter(k, c, basis, atom) + + k = np.zeros((n)) + for i in range(n): + k[i] = abs(eMO[lumo + i]- eMO[mo]) + + return k + +def getDipoles(atom, basis): + #compute the dipole moments + + from post import dipoleComponent + + cartesians = ('x', 'y', 'z') + nbf = len(basis) + mu = np.zeros((3, nbf, nbf)) + + for i in range(mu.shape[0]): + mu[i] = dipoleComponent(atom, basis, cartesians[i], 'origin') + + return mu + +def getTransitionProperties(mu, c, i, a): + #compute the transition dipoles + + tmu = np.zeros(3) + for x in range(3): + tmu[x] = np.einsum('j,k,jk', c[:, i], c[:, a], mu[x]) + + oscillatorStrength = (2/3) * abs(eMO[a] - eMO[i]) + oscillatorStrength *= np.sum(abs(tmu)**2) + + return tmu, oscillatorStrength + +def lorentzian(e0, e, tau): +#Lorentzian broadening + + gamma = 1.0/tau + g = (gamma/2.0)**2.0/((e0-e)**2.0 + (gamma/2.0)**2.0) + + return g + +e, atom, basis, data = getMolecule('6-31g') +eMO = getOrbitalEnergies(rhf.fock, rhf.S) + +#get n k-edge excitations +n = 5 +kedge = getKedgeExcitations(('1s', 'O1'), n, rhf.C, basis, atom, eMO) + +#lumo +lumo = electronCount(atom, data['charge'])//2 + +#1s of oxygen O1 +mo = getMOwithCharacter(('1s','O1'), rhf.C, basis, atom) + +#get transition dipoles and oscillator strengths +transitionDipoles = [] +oscillatorStrength = [] +for i in range(n): + a = i + lumo + mu = getDipoles(atom, basis) + tmu, osc = getTransitionProperties(mu, rhf.C, mo , a) + transitionDipoles.append(tmu) + oscillatorStrength.append(osc) + +#normalize oscillator strength +oscillatorStrength /= max(oscillatorStrength) + +#plot broadened spectra +import matplotlib.pyplot as py +from atom import getConstant + +py.title('$H_2O$ k-edge spectrum') +py.grid() +points = 0 +margin, tau, npoints = [0.5, 40, 100] + +for i in range(n): + start = (kedge[i]) - margin + finish = (kedge[i]) + margin + x = np.linspace(start, finish, npoints) + + points = lorentzian(kedge[i], x, tau) * oscillatorStrength[i] + py.plot(x * getConstant('hartree->eV'), points,'k') + py.bar(kedge[i] * getConstant('hartree->eV'), oscillatorStrength[i], color='orange') + + py.text(kedge[i] * getConstant('hartree->eV') - margin, 1.0, str(i + lumo), fontsize='x-small') + +xl, xr = py.xlim() +py.text(xl + 2, 1,'0->', fontsize='x-small') +py.xlabel('excitation energy (eV)') +py.ylabel('oscillator strength (norm)') + +py.show() + +print('Largest oscillator strength from transition oxygen 1s ->', getOrbitalCharacter(rhf.C[:,9], basis, atom)[0]) \ No newline at end of file diff --git a/test/validation-h2o-sto-3g.md b/test/validation-h2o-sto-3g.md new file mode 100644 index 0000000..136dd08 --- /dev/null +++ b/test/validation-h2o-sto-3g.md @@ -0,0 +1,86 @@ +## Validation test on water using STO-3G basis + +The program validation-h2o-sto-3g.py executes an evaluation of most of the codes contained within the **harpy** system. It can be run with parameters 'Q' (quick) or 'F' (full). The 'Q' option will run in about 8 minutes while the 'F' option is best run overnight as the eom routines take a lot of time. The output shows ++ elapsed time of the validation-h2o-sto-3g run ++ time of the particular process being run ++ description of the process being tested ++ -if process produces multiples values the particular one displayed is given in \[ ]- ++ value returned by process ++ boolean, True is passed test, False is failed test ++ precision of test eg 6 means test passes if difference between computed and reference values is better than 1e-6. ++ the code of comparison source. **P4**-Psi4, **PN**-psi4numpy, **GA**-Gaussian, **CW**-Crawford Projects, **HA**-harpy (internal check), **MM**-McMurchie-Davidson, **PS**-pyscf, **AD**-ADCC + +**sto-3g should be the first entry in project.hpf** +Most tests are done to 1e-6 precision. The molecule geometry is defined within the routine and does not read the project.hpf file (but some called routines do). The expected output for a full run is +``` +===================================================================================================== + Water Test in STO-3G mode[ F ] +----------------------------------------------------------------------------------------------------- + Elapsed Step Process Value Pass Check +----------------------------------------------------------------------------------------------------- +00:00:00.2 00:00:00.2 SCF energy -74.94207995 True 6 CW +00:00:00.2 00:00:00.0 Mulliken oxygen charge -0.25314612 True 6 CW +00:00:00.2 00:00:00.0 Dipole Moment resultant 0.60352134 True 6 CW +00:00:00.6 00:00:00.4 Quadrupole Moment amplitude 1.33769187 True 6 HA +00:00:00.7 00:00:00.1 Polarizabilities [isotropic] 3.68471970 True 6 HA +00:00:00.9 00:00:00.2 Hyperpolarizabilities [0,1] -9.34242926 True 6 HA +===================================================================================================== +00:00:01.0 00:00:00.0 Moller-Plesset (2) -0.04914964 True 6 CW +00:00:01.0 00:00:00.0 Spin-Component Scaled MP (2) -0.05628751 True 6 PN +00:00:49.7 00:00:48.8 Orbital-Optimised MP (2) -0.04939137 True 6 HA +00:00:49.8 00:00:00.1 Laplace Transform MP (2) -0.04914581 True 6 PN +===================================================================================================== +00:00:50.6 00:00:00.8 CIS [0] 0.28725552 True 6 CW +00:00:51.4 00:00:00.8 Random Phase Approximation [0] 0.28516373 True 6 CW +00:00:51.4 00:00:00.0 Spin-Adapted CI singles [0] 0.35646178 True 6 CW +00:00:51.5 00:00:00.0 Spin-Adapted CI triples [0] 0.28725552 True 6 CW +===================================================================================================== +00:01:46.0 00:00:54.5 Coupled-Cluster Singles and Doubles -0.07068009 True 6 CW +00:01:57.9 00:00:11.9 CCSD Perturbative Triples -0.00009988 True 6 CW +00:21:44.3 00:19:46.5 Coupled-Cluster Doubles -0.07015049 True 6 PN +00:22:12.3 00:00:28.0 Linear Coupled-Cluster Doubles -0.07192916 True 6 P4 +00:22:25.0 00:00:12.7 Linear Coupled-Cluster Singles and Doubles -0.07257659 True 6 HA +00:24:45.3 00:02:20.3 Coupled-Cluster (2) -0.04939911 True 6 P4 +00:25:23.4 00:00:38.1 Coupled-Cluster Singles and Doubles-Λ -0.06888820 True 6 P4 +===================================================================================================== +00:25:23.5 00:00:00.0 Electron Propagator (2) [0] -10.34032984 True 4 HA +00:25:24.5 00:00:01.0 Spin-Adapted Electron Propagator (2) [0] -541.75575877 True 4 HA +00:25:46.8 00:00:22.3 Spin-Adapted Electron Propagator (3) [0] -543.63064680 True 4 PN +00:25:47.7 00:00:00.9 Koopman Green Function Correction [0] -12.66439467 True 4 HA +===================================================================================================== +00:25:56.7 00:00:09.0 Full Configuration Interaction [0] -0.07090027 True 6 P4 +00:25:57.6 00:00:00.9 Determinant CIS [0] 0.28725552 True 6 MM +00:25:59.4 00:00:01.8 Determinant CISD [0] -0.06914307 True 6 MM +===================================================================================================== +00:26:11.8 00:00:03.2 Forces (ocypete - cython) [0,1] 0.09744138 True 6 MM +00:34:54.8 00:08:42.9 Forces (native - python) [0,1] 0.09744138 True 6 MM +===================================================================================================== +00:35:58.8 00:01:04.0 Restrained Electrostatic Potential [0] -0.47703059 True 6 PN +===================================================================================================== +07:31:49.1 06:55:50.3 EOM-CCSD [0] 7.49020351 True 4 GA +10:01:08.5 02:29:19.5 EOM-MBPT (2) [0] 7.12218877 True 4 GA +===================================================================================================== +10:01:10.0 00:00:01.5 TDHF transition properties [excitation] 0.35646178 True 6 P4 +10:01:10.0 00:00:00.0 TDHF OPA spectrum [x] 57.87004982 True 6 P4 +===================================================================================================== +10:01:10.3 00:00:00.3 cogus - ccd -0.07015049 True 8 PN +10:01:11.1 00:00:00.8 cogus - ccsd -0.07068009 True 8 P4 +10:01:29.6 00:00:18.5 cogus - ccsdt -0.07081281 True 8 P4 +10:01:31.5 00:00:01.9 cogus - ccsd(t) -0.00009988 True 8 P4 +10:01:31.8 00:00:00.3 cogus - cc2 -0.04939914 True 8 P4 +10:01:39.4 00:00:07.5 cogus - cc3 -0.07077803 True 8 P4 +10:01:39.5 00:00:00.1 cogus - lccd -0.07192916 True 8 HA +10:01:39.7 00:00:00.2 cogus - lccsd -0.07257659 True 8 HA +10:01:39.9 00:00:02.8 cogus - Λ -0.07068009 True 8 HA ===================================================================================================== +10:01:49.9 00:00:10.1 Many-Bodied Perturbation Theory [2] -0.04914964 True 6 P4 +10:01:49.9 00:00:10.1 Many-Bodied Perturbation Theory [3] -0.01418782 True 6 P4 +10:01:49.9 00:00:10.1 Many-Bodied Perturbation Theory [4] -0.00469027 True 6 HA +===================================================================================================== +10:01:50.1 00:00:00.2 uhf energy -74.94207995 True 6 PS +10:01:50.5 00:00:00.5 uhf energy cation -74.48785027 True 6 PS + +``` +The fast EOM has been added and will produce a line +``` +00:10:09.0 00:03:33.2 EOM-CCSD (fast) [0] 7.49014856 True 4 GA +``` diff --git a/test/validation-h2o-sto-3g.py b/test/validation-h2o-sto-3g.py new file mode 100644 index 0000000..54df2f9 --- /dev/null +++ b/test/validation-h2o-sto-3g.py @@ -0,0 +1,504 @@ +from __future__ import division +import numpy as np +import time +import os +from numpy.linalg import eigh +from scipy.linalg import fractional_matrix_power as fractPow +import sys +sys.path.append('../source') +import rhf +from atom import getConstant + +''' +Test of water in STO-3G basis for all testable codes +''' + +#read command line for 'F' +args = sys.argv[1:] +if args == []: + mode = 'Q' +else: + mode = args[0] + +sysStart = time.time() +processTime = sysStart + +def stepTime(step): + #elapsed time for current step + + if step == 1: + t = time.time() - sysStart + else: + t = time.time() - processTime + + h = 0 + if t >3600: + h = int(t//3600) + t -= h*3600 + m = 0 + if t > 60: + m = int(t//60) + t -= m*60 + s = round(t,1) + + return ('00' + str(h))[-2:] + ':' + ('00' + str(m))[-2:] + ':' + ('00' + str(s))[-4:] + +def passing(actual, reference, tol): + + if abs(actual-reference) < 10 **(-tol-1): + return 'True' + else: + return 'False' + +def validityCheck(actual, reference, tolerance = 1e-6): + + if np.allclose(actual, reference, tolerance): + return 'True' + else: + return 'False' + +outputScheme = "{:<12} {:<12} {:<48} {:>13.8f} {:<6} {:<2} {:<3}" + +#define molecule and run parameters +molecule = """name=h2o +matrix=c +basis=sto-3g +post={} +diis=on + +O1 8 0.000000000000 -0.143225816552 0.000000000000 +H1 1 1.638036840407 1.136548822547 0.000000000000 +H2 1 -1.638036840407 1.136548822547 0.000000000000 + +end +""" +fileName = '../test/h2o.hpf' +f = open(fileName, 'w') +f.write(molecule) +f.close() + +molAtom, molBasis, molData = rhf.mol([], file = fileName) +#clean up file +if os.path.exists(fileName): + os.remove(fileName) + +#do basis EHF SCF calculation +eSCF = rhf.scf(molAtom, molBasis, molData, []) + +#==================Header +print('='*101) +print(' '*40, 'Water Test in STO-3G mode[', mode, ']') +print('-'*101) +print(' Elapsed Step Process Value Pass Check') +print('-'*101) +#==================SCF energy +value = eSCF +print(outputScheme.format(stepTime(1), stepTime(0), 'SCF energy',\ + value, validityCheck(value, -74.942079928192), 6, 'CW')) + +#==================Mulliken charges +processTime = time.time() +from post import mulliken +value = 8 - mulliken(rhf.density, rhf.S, molAtom, molBasis)[0] +print(outputScheme.format(stepTime(1), stepTime(0), 'Mulliken oxygen charge ', \ + value, validityCheck(value, -0.253146052405), 6, 'CW')) + +#==================dipole moment +processTime = time.time() +from post import buildDipole +value = np.sqrt(buildDipole(molAtom, molBasis, rhf.density, 'origin')[3]) +print(outputScheme.format(stepTime(1), stepTime(0), 'Dipole Moment resultant', \ + value, validityCheck(value, 0.603521296525), 6, 'CW')) + +#==================quadrupole moment +processTime = time.time() +from post import buildQuadrupole +value = buildQuadrupole(molAtom, molBasis, rhf.density, 'origin')[12] +print(outputScheme.format(stepTime(1), stepTime(0), 'Quadrupole Moment amplitude', \ + value, validityCheck(value, 1.3376918702067326), 6, 'HA')) + +#==================Polarizabilities +processTime = time.time() +from post import polarizabilities +value, isotropic, _, _ = polarizabilities(molAtom, molBasis, rhf.C, rhf.fock, rhf.ERI, 5, 'nuclear charge') +reference = [7.93556215, 3.06821073, 0.05038621, 3.68471969539233] +comparison = [value[0], value[1], value[2], isotropic] +print(outputScheme.format(stepTime(1), stepTime(0), 'Polarizabilities [isotropic]', \ + isotropic, validityCheck(reference, comparison), 6, 'HA')) + +#==================Hyperpolarizabilities +processTime = time.time() +from post import hyperPolarizabilities +X = fractPow(rhf.S, -0.5) +orthogonalFock = np.dot(X.T , np.dot(rhf.fock , X)) +#diagonalise Fock +e, orthogonalC = eigh(orthogonalFock) +_, value = hyperPolarizabilities(molAtom, molBasis, rhf.C, rhf.ERI, e, rhf.fock, 5, 'nuclear charge') +reference = [-9.34242926,-5.20670354, 1.38579626e-01, -9.34242926e+00, 1.38579626e-01 ] +comparison = [value[0,1], value[1,1], value[2,1], value[3,0], value[5,2]] +print(outputScheme.format(stepTime(1), stepTime(0), 'Hyperpolarizabilities [0,1]', \ + value[0,1], validityCheck(reference, comparison), 6, 'HA')) + +print('='*101) +#==================Moller-Plesset (2) +processTime = time.time() +from mp import mp2 +p, ap = mp2(molAtom, 0, molBasis, rhf.C, e, rhf.ERI, 'p-ap') +print(outputScheme.format(stepTime(1), stepTime(0), 'Moller-Plesset (2)', \ + p+ap, validityCheck(p+ap, -0.049149636120), 6, 'CW')) + +#==================Moller-Plesset spin-component (2) +processTime = time.time() +from mp import mp2 +value = mp2(molAtom, 0, molBasis, rhf.C, e, rhf.ERI, 'scs') +print(outputScheme.format(stepTime(1), stepTime(0), 'Spin-Component Scaled MP (2)', \ + value, validityCheck(value, -0.0562875057281451), 6, 'PN')) + +#==================Orbital-Optimised MP2 +processTime = time.time() +from mp import orbitalOptimisedMP2 +from atom import nuclearRepulsion +value = orbitalOptimisedMP2(rhf.C, rhf.coreH, e, molBasis, nuclearRepulsion(molAtom), rhf.ERI, 10) -eSCF +print(outputScheme.format(stepTime(1), stepTime(0), 'Orbital-Optimised MP (2)', \ + value, validityCheck(value, -0.04939136780163267), 6, 'HA')) + +# #==================Laplace Transform MP2 +processTime = time.time() +from mp import mp2LaplaceTransform +value = mp2LaplaceTransform(molBasis, rhf.C, rhf.ERI, e, 5, eSCF, meshSize=40) +value = sum(value) +print(outputScheme.format(stepTime(1), stepTime(0), 'Laplace Transform MP (2)', \ + value, validityCheck(value, -0.0491458273 ), 6, 'PN')) + +print('='*101) +#==================CIS +processTime = time.time() +from ci import cis, ciDegeneracy +value, _ = cis(molAtom, 0, molBasis, rhf.C, rhf.fock, rhf.ERI) +degen = ciDegeneracy(value) +reference = [0.2872554996 , 0.3444249963, 0.3564617587, 0.3659889948, 0.3945137992] +comparison = [degen[0][0], degen[1][0], degen[2][0], degen[3][0], degen[4][0]] +print(outputScheme.format(stepTime(1), stepTime(0), 'CIS [0]', \ + degen[0][0], validityCheck(reference, comparison), 6, 'CW')) + +#==================RPA +processTime = time.time() +from ci import randomPhaseApproximation +value = randomPhaseApproximation(molAtom, 0, molBasis, rhf.C, rhf.fock, rhf.ERI, 'linear') +degen = ciDegeneracy(value) +reference = [0.2851637170 ,0.2997434467 , 0.3526266606, 0.3547782530, 0.3651313107] +comparison = [degen[0][0], degen[1][0], degen[2][0], degen[3][0], degen[4][0]] +print(outputScheme.format(stepTime(1), stepTime(0), 'Random Phase Approximation [0]', \ + degen[0][0], validityCheck(reference, comparison), 6, 'CW')) + +#==================sa-CIS-singles +processTime = time.time() +from ci import ciSpinAdaptedSingles +value = ciSpinAdaptedSingles(molAtom, 0, molBasis, rhf.C, rhf.fock, rhf.ERI) +reference = [0.3564617587, 0.4160717386, 0.5056282877 , 0.5551918860 , 0.6553184485] +comparison = [value[0], value[1], value[2], value[3], value[4]] +print(outputScheme.format(stepTime(1), stepTime(0), 'Spin-Adapted CI singles [0]', \ + value[0], validityCheck(reference, comparison), 6, 'CW')) + +#==================sa-CIS-triples +processTime = time.time() +from ci import ciSpinAdaptedTriples +value = ciSpinAdaptedTriples(molAtom, 0, molBasis, rhf.C, rhf.fock, rhf.ERI) +reference = [0.2872554996, 0.3444249963, 0.3659889948, 0.3945137992, 0.5142899971] +comparison = [value[0], value[1], value[2], value[3], value[4]] +print(outputScheme.format(stepTime(1), stepTime(0), 'Spin-Adapted CI triples [0]', \ + value[0], validityCheck(reference, comparison), 6, 'CW')) + +print('='*101) +#==================CCSD +processTime = time.time() +from cc.scc import ccsd +value, ts, td = ccsd(molAtom, rhf.C, 0, rhf.fock, rhf.ERI, 50, 1e-8, eSCF, 'on') +print(outputScheme.format(stepTime(1), stepTime(0), 'Coupled-Cluster Singles and Doubles', \ + value, validityCheck(value, -0.070680088376), 6, 'CW')) + +#==================(T) +processTime = time.time() +from cc.scc import amplitudesT3 +from integral import buildFockMOspin, buildEriMO, buildEriDoubleBar +#get fock in MO spin basis +fockMOspin = buildFockMOspin(14, rhf.C, rhf.fock) +#get two-electron repulsion integrals in MO basis +eriMO = buildEriMO(rhf.C, rhf.ERI) +#transform eri from MO to spin basis +eriMOspin = buildEriDoubleBar(14, eriMO) +value = amplitudesT3(fockMOspin, ts, td, eriMOspin, 10) +print(outputScheme.format(stepTime(1), stepTime(0), 'CCSD Perturbative Triples', \ + value, validityCheck(value, -0.000099877272), 6, 'CW')) + +if mode == 'F': + #==================CCD + processTime = time.time() + from cc.scc import ccd + value = ccd(molAtom, rhf.C, 0, rhf.fock, rhf.ERI, 50, 1e-8, eSCF) + print(outputScheme.format(stepTime(1), stepTime(0), 'Coupled-Cluster Doubles', \ + value, validityCheck(value, -0.07015051), 6, 'PN')) + +#==================LCCD +processTime = time.time() +from cc.scc import lccd +value = lccd(molAtom, rhf.C, 0, rhf.fock, rhf.ERI, 50, 1e-8, eSCF) +print(outputScheme.format(stepTime(1), stepTime(0), 'Linear Coupled-Cluster Doubles', \ + value, validityCheck(value, -0.07192915), 6, 'P4')) + +#==================LCCSD +processTime = time.time() +from cc.scc import lccsd +value, _, _ = lccsd(molAtom, rhf.C, 0, rhf.fock, rhf.ERI, 50, 1e-8, 'on', eSCF) +print(outputScheme.format(stepTime(1), stepTime(0), 'Linear Coupled-Cluster Singles and Doubles', \ + value, validityCheck(value, -0.07257659), 6, 'HA')) + +#==================CC2 +processTime = time.time() +from cc.scc import cc2 +value, _, _ = cc2(molAtom, rhf.C, 0, rhf.fock, rhf.ERI, 50, 1e-8, eSCF, 'on') +print(outputScheme.format(stepTime(1), stepTime(0), 'Coupled-Cluster (2)', \ + value, validityCheck(value, -74.9914791 + 74.94207992818629), 6, 'P4')) + +#==================CCSD-Lambda +processTime = time.time() +from cc.scc import ccsd_lambda +value, l1, l2, _ = ccsd_lambda(fockMOspin, eriMOspin, ts, td, 10, 50, 1e-8) +print(outputScheme.format(stepTime(1), stepTime(0), 'Coupled-Cluster Singles and Doubles-\u039B', \ + value, validityCheck(value, -0.068888201463), 6, 'P4')) + +print('='*101) +#===================Electron Propagator 2 +processTime = time.time() +from ep import electronPropagator2 +value = electronPropagator2(molBasis, rhf.C, rhf.ERI, e, 5, startOrbital = 2, nOrbitals = 4) +reference = [-10.3403, -7.4044, 12.8950, 15.6734] +comparison = [value[0], value[1], value[2], value[3]] +print(outputScheme.format(stepTime(1), stepTime(0), 'Electron Propagator (2) [0]', \ + value[0], validityCheck(reference, comparison, 1e-4), 4, 'HA')) + +#===================spin-adapted Electron Propagator 2 +processTime = time.time() +from ep import electronPropagator2spin +value = electronPropagator2spin(molBasis, rhf.C, rhf.ERI, e, 5, nOrbitals = 5) +reference = [-541.7558, -29.8607, -14.5980, -10.3404, -7.4044] +comparison = [value[0], value[1], value[2], value[3], value[4]] +print(outputScheme.format(stepTime(1), stepTime(0), 'Spin-Adapted Electron Propagator (2) [0]', \ + value[0], validityCheck(reference, comparison, 1e-4), 4, 'HA')) + +#===================spin-adapted Electron Propagator 3 +processTime = time.time() +from ep import electronPropagator3spin +value = electronPropagator3spin(molBasis, rhf.C, rhf.ERI, e, 5, nOrbitals = 5) +reference = [-543.6307, -29.2271, -14.8363, -10.7673, -8.1825] +comparison = [value[0], value[1], value[2], value[3], value[4]] +print(outputScheme.format(stepTime(1), stepTime(0), 'Spin-Adapted Electron Propagator (3) [0]', \ + value[0], validityCheck(reference, comparison, 1e-4), 4, 'PN')) + +#==================Associated Green's Function Correction to Koopman +processTime = time.time() +from ep import koopmanAGFcorrection +value = koopmanAGFcorrection(molBasis ,rhf.C ,rhf.ERI, e, 5, nOrbitals = 5) +reference = [-12.6644, -5.3342, -1.6200, -2.5340, -3.5334] +comparison = [value[0][1], value[1][1], value[2][1], value[3][1], value[4][1]] +print(outputScheme.format(stepTime(1), stepTime(0), 'Koopman Green Function Correction [0]', \ + value[0][1], validityCheck(reference, comparison, 1e-4), 4, 'HA')) + +print('='*101) +#==================FCI +processTime = time.time() +from fci import fci +value = fci(molAtom, molBasis, 0, rhf.C, rhf.ERI, rhf.coreH)[0] - eSCF + nuclearRepulsion(molAtom) +print(outputScheme.format(stepTime(1), stepTime(0), 'Full Configuration Interaction [0]', \ + value, validityCheck(value, -0.07090027025095935), 6, 'P4')) + +#==================CIS slater +processTime = time.time() +from fci import ciss +value, _ = ciss(molAtom, molBasis, 0, rhf.C, rhf.ERI, rhf.coreH) +degen = ciDegeneracy(value) +reference = [0.28725544 , 0.34442492, 0.35646170, 0.36598893, 0.39451371] +comparison = [degen[0][0], degen[1][0], degen[2][0], degen[3][0], degen[4][0]] +print(outputScheme.format(stepTime(1), stepTime(0), 'Determinant CIS [0]', \ + degen[0][0], validityCheck(reference, comparison), 6, 'MM')) + +#===================CISD slater +processTime = time.time() +from fci import cisd +from atom import nuclearRepulsion +value = cisd(molAtom, molBasis, 0, rhf.C, rhf.ERI, rhf.coreH)[0] - eSCF + nuclearRepulsion(molAtom) +print(outputScheme.format(stepTime(1), stepTime(0), 'Determinant CISD [0]', \ + value, validityCheck(value, -0.06914309), 6, 'MM')) + +print('='*101) +#==================Forces - Ocypete +processTime = time.time() +from force import forces +value = forces(molAtom, molBasis, rhf.density, rhf.fock, engine = 'aello', type = 'analytic') +reference = [9.74414370e-02, -8.63000979e-02, -4.87207185e-02, 8.63000979e-02, -4.87207185e-02] +comparison = [value[0,1], value[1,0], value[1,1], value[2,0], value[2,1]] +print(outputScheme.format(stepTime(1), stepTime(0), 'Forces (ocypete - cython) [0,1]', \ + value[0,1], validityCheck(reference, comparison), 6, 'MM')) + +if mode == 'F': + #===================Forces - native + processTime = time.time() + from force import forces + value = forces(molAtom, molBasis, rhf.density, rhf.fock, engine = 'native', type = 'analytic') + reference = [9.74414370e-02, -8.63000979e-02, -4.87207185e-02, 8.63000979e-02, -4.87207185e-02] + comparison = [value[0,1], value[1,0], value[1,1], value[2,0], value[2,1]] + print(outputScheme.format(stepTime(1), stepTime(0), 'Forces (native - python) [0,1]', \ + value[0,1], validityCheck(reference, comparison), 6, 'MM')) + +print('='*101) +#===================rESP +processTime = time.time() +from rESP import restrainedESP +con, res = restrainedESP(molAtom, molBasis, molData, { 'sphere' : 'con', 'points' : ['density', 1], 'shell' : [4, 0.2, 1.4], + 'file' : ['w', 'esp.npz', 'clear'], 'view' : False, 'constrain' : [[0,[-2,3]]], 'restrain' : {} } ) +reference = [-0.47703059, 0.23851529 ,0.23851529, -0.47551183, 0.23775591, 0.23775591] +comparison = [con[0], con[1], con[2], res[0], res[1], res[2]] +print(outputScheme.format(stepTime(1), stepTime(0), 'Restrained Electrostatic Potential [0]', \ + con[0], validityCheck(reference, comparison), 6, 'PN')) + +print('='*101) +#=======================EOM-CCSD +processTime = time.time() +data = {'method':'ccsd','electrons':10, 'cycle_limit': 50, 'precision':1e-10, 'verbose':False} +from cc.fcc import coupledCluster +cc = coupledCluster(fockMOspin, eriMOspin, rhf.e, data) + +from cc.fcc import eom_ccsd +eom = eom_ccsd(cc, roots=[7,11], partitioned = False) +reference = [7.4901, 8.7959, 9.8321, 10.0122, 10.7445] +comparison = [i[0] for i in eom.excitations] +print(outputScheme.format(stepTime(1), stepTime(0), 'EOM-CCSD (fast) [0]', \ + comparison[0], validityCheck(reference, comparison, 1e-4), 4, 'GA')) + +if mode == 'F': + print('='*101) + #===================EOM-CCSD + processTime = time.time() + from eom import eomccsd + value, _ = eomccsd(fockMOspin, eriMOspin, ts, td, 10, 4, 14, partitioned = False, dialog = False) + reference = [7.4901, 8.7959, 9.8321, 10.0122, 10.7445] + value = np.sort(value * getConstant('hartree->eV')) + degen = ciDegeneracy(value) + comparison = [] + for excitation in degen: + if excitation[0] > 5 and excitation[0] < 11: + comparison.append(excitation[0]) + print(outputScheme.format(stepTime(1), stepTime(0), 'EOM-CCSD [0]', \ + comparison[0], validityCheck(reference, comparison, 1e-4), 4, 'GA')) + + #====================EOM-MBPT(2) + processTime = time.time() + from eom import eommbpt2 + value, _ = eommbpt2(fockMOspin, eriMOspin, 10, 4, 14, partitioned = False, dialog = False) + reference = [7.1222, 8.4365, 9.4985, 9.6904, 10.4213] + value = np.sort(value * getConstant('hartree->eV')) + degen = ciDegeneracy(value) + comparison = [] + for excitation in degen: + if excitation[0] > 5 and excitation[0] < 11: + comparison.append(excitation[0]) + print(outputScheme.format(stepTime(1), stepTime(0), 'EOM-MBPT (2) [0]', \ + comparison[0], validityCheck(reference, comparison, 1e-4), 4, 'GA')) + +print('='*101) +#========================TDHF-transition +processTime = time.time() +from tdhf import TDHFproperties +residues = TDHFproperties(molAtom, molBasis, 0, rhf.C, rhf.fock, rhf.ERI, 'tamm-dancoff', [5, 2, 5]) +reference = [0.35646177543487845, 0.09925794226244171, 0.0023412739974616056, -0.30230280991042413, \ + -5.925026183856348e-16, -1.0994804162166085e-15, 0.1305217446887937, 0.03186115503468884] +r = residues[0] +comparison = [r['excitation energy'], r['electric transition dipole (length gauge)'][2], r['oscillator strength (length gauge)'],\ + r['magnetic transition dipole (length gauge)'][0], r['rotatory strength (length gauge)'],r['rotatory strength (velocity gauge)'],\ + r['electric transition dipole (velocity gauge)'][2], r[ 'oscillator strength (velocity gauge)']] +print(outputScheme.format(stepTime(1), stepTime(0), 'TDHF transition properties [excitation]', \ + comparison[0], validityCheck(reference, comparison), 6, 'P4')) + +#========================TDHF-spectrum +processTime = time.time() +from tdhf import TDHFspectrum +dict = {'data' : residues, 'units' : 'nm', 'type' : 'opa', 'points' : 5000, 'shape' : 'gaussian', 'gamma' : 0.02} +spectrum = TDHFspectrum(dict) +reference = [ 57.87004982, 7.58675674e-22, 127.82114569, 9.70790360e-01] +comparison = [spectrum['x'][0], spectrum['y'][0], spectrum['poles'][0], spectrum['bars'][0]] +print(outputScheme.format(stepTime(1), stepTime(0), 'TDHF OPA spectrum [x]', \ + comparison[0], validityCheck(reference, comparison), 6, 'P4')) + +print('='*101) +#========================cogus +processTime = time.time() +from cogus import symbolicGeneratedCoupledCluster +_, value, _ = symbolicGeneratedCoupledCluster('ccd', rhf.fock, rhf.ERI, rhf.C, e, [0, nuclearRepulsion(molAtom), 10]) +print(outputScheme.format(stepTime(1), stepTime(0), 'cogus - ccd', \ + value, validityCheck(value, -0.07015048), 8, 'PN')) + +processTime = time.time() +_, value, _ = symbolicGeneratedCoupledCluster('ccsd', rhf.fock, rhf.ERI, rhf.C, e, [0, nuclearRepulsion(molAtom), 10]) +print(outputScheme.format(stepTime(1), stepTime(0), 'cogus - ccsd', \ + value, validityCheck(value, -0.07068008709615015), 8, 'P4')) + +processTime = time.time() +_, value, _ = symbolicGeneratedCoupledCluster('ccsdt', rhf.fock, rhf.ERI, rhf.C, e, [0, nuclearRepulsion(molAtom), 10]) +print(outputScheme.format(stepTime(1), stepTime(0), 'cogus - ccsdt', \ + value, validityCheck(value, -0.07081280801921253), 8, 'P4')) + +processTime = time.time() +_, value, cp = symbolicGeneratedCoupledCluster('ccsd_t', rhf.fock, rhf.ERI, rhf.C, e, [0, nuclearRepulsion(molAtom), 10]) +print(outputScheme.format(stepTime(1), stepTime(0), 'cogus - ccsd(t)', \ + cp, validityCheck(cp, -9.987726961762642e-05), 8, 'P4')) + +processTime = time.time() +_, value, _ = symbolicGeneratedCoupledCluster('cc2', rhf.fock, rhf.ERI, rhf.C, e, [0, nuclearRepulsion(molAtom), 10]) +print(outputScheme.format(stepTime(1), stepTime(0), 'cogus - cc2', \ + value, validityCheck(value, -0.0493991397445086), 8, 'P4')) + +processTime = time.time() +_, value, _ = symbolicGeneratedCoupledCluster('cc3', rhf.fock, rhf.ERI, rhf.C, e, [0, nuclearRepulsion(molAtom), 10]) +print(outputScheme.format(stepTime(1), stepTime(0), 'cogus - cc3', \ + value, validityCheck(value, -0.07077803146036388), 8, 'P4')) + +processTime = time.time() +_, value, _ = symbolicGeneratedCoupledCluster('lccd', rhf.fock, rhf.ERI, rhf.C, e, [0, nuclearRepulsion(molAtom), 10]) +print(outputScheme.format(stepTime(1), stepTime(0), 'cogus - lccd', \ + value, validityCheck(value, -0.07192916394222108), 8, 'HA')) + +processTime = time.time() +_, value, _ = symbolicGeneratedCoupledCluster('lccsd', rhf.fock, rhf.ERI, rhf.C, e, [0, nuclearRepulsion(molAtom), 10]) +print(outputScheme.format(stepTime(1), stepTime(0), 'cogus - lccsd', \ + value, validityCheck(value, -0.07257658934412553), 8, 'HA')) + +processTime = time.time() +from cogus import symbolicGeneratedLambda +_, value, _, _ = symbolicGeneratedLambda('ccsd', rhf.fock, rhf.ERI, rhf.C, e, rhf.coreH, [0, nuclearRepulsion(molAtom), 10]) +print(outputScheme.format(stepTime(1), stepTime(0), 'cogus - \u039B', \ + value, validityCheck(value, -0.07068008881678622), 8, 'HA')) + +print('='*101) +#==================MBPT +processTime = time.time() +from mbpt import mbptEvaluateMPn +value = mbptEvaluateMPn(molAtom, molBasis, molData, eSCF) +print(outputScheme.format(stepTime(1), stepTime(0), 'Many-Bodied Perturbation Theory [2]', \ + value[0], validityCheck(value[0], -0.0491496272), 6, 'P4')) +print(outputScheme.format(stepTime(1), stepTime(0), 'Many-Bodied Perturbation Theory [3]', \ + value[1], validityCheck(value[1], -0.0141878317), 6, 'P4')) +print(outputScheme.format(stepTime(1), stepTime(0), 'Many-Bodied Perturbation Theory [4]', \ + value[2], validityCheck(value[2], -0.0046902727), 6, 'HA')) + +print('='*101) +#==================UHF +processTime = time.time() +import uhf +value = uhf.scf(molAtom, molBasis, molData, []) +print(outputScheme.format(stepTime(1), stepTime(0), 'uhf energy', \ + value, validityCheck(value, -74.942079928192356), 6, 'PS')) +molData['charge'] = -1 +molData['multiplicity'] = 2 +value = uhf.scf(molAtom, molBasis, molData, []) +print(outputScheme.format(stepTime(1), stepTime(0), 'uhf energy cation', \ + value, validityCheck(value, -74.487850244828891 ), 6, 'PS'))

    SCF converged in 1 cycles