From f1a4428d7cc48465bddd5792111133b28087e210 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Tue, 8 Aug 2017 14:04:24 +0200 Subject: [PATCH 01/19] removed low hanging fruit imports to horton --- horton/meanfield/__init__.py | 42 ++++++++++---------- horton/meanfield/builtin.py | 2 +- horton/meanfield/convergence.py | 2 +- horton/meanfield/gridgroup.py | 2 +- horton/meanfield/libxc.py | 4 +- horton/meanfield/scf.py | 4 +- horton/meanfield/scf_cdiis.py | 2 +- horton/meanfield/scf_diis.py | 6 +-- horton/meanfield/scf_ediis.py | 2 +- horton/meanfield/scf_ediis2.py | 6 +-- horton/meanfield/scf_oda.py | 6 +-- horton/meanfield/test/common.py | 22 +++++----- horton/meanfield/test/test_hamiltonian.py | 2 +- horton/meanfield/test/test_indextransform.py | 2 +- horton/meanfield/test/test_libxc.py | 2 +- horton/meanfield/test/test_observable.py | 2 +- horton/meanfield/test/test_project.py | 2 +- horton/meanfield/test/test_scf.py | 2 +- horton/meanfield/test/test_scf_cdiis.py | 2 +- horton/meanfield/test/test_scf_ediis.py | 2 +- horton/meanfield/test/test_scf_ediis2.py | 2 +- horton/meanfield/test/test_scf_oda.py | 6 +-- horton/meanfield/utils.py | 2 +- 23 files changed, 63 insertions(+), 63 deletions(-) diff --git a/horton/meanfield/__init__.py b/horton/meanfield/__init__.py index 9377c4fa..8a4ccadb 100644 --- a/horton/meanfield/__init__.py +++ b/horton/meanfield/__init__.py @@ -21,24 +21,24 @@ '''Mean-field electronic structure code''' -from horton.meanfield.bond_order import * -from horton.meanfield.builtin import * -from horton.meanfield.convergence import * -from horton.meanfield.cext import * -from horton.meanfield.gridgroup import * -from horton.meanfield.guess import * -from horton.meanfield.hamiltonian import * -from horton.meanfield.indextransform import * -from horton.meanfield.libxc import * -from horton.meanfield.observable import * -from horton.meanfield.occ import * -from horton.meanfield.orbitals import * -from horton.meanfield.project import * -from horton.meanfield.rotate import * -from horton.meanfield.response import * -from horton.meanfield.scf import * -from horton.meanfield.scf_oda import * -from horton.meanfield.scf_cdiis import * -from horton.meanfield.scf_ediis import * -from horton.meanfield.scf_ediis2 import * -from horton.meanfield.utils import * +from .bond_order import * +from . builtin import * +from .convergence import * +from .cext import * +from .gridgroup import * +from .guess import * +from .hamiltonian import * +from .indextransform import * +from .libxc import * +from .observable import * +from .occ import * +from .orbitals import * +from .project import * +from .rotate import * +from .response import * +from .scf import * +from .scf_oda import * +from .scf_cdiis import * +from .scf_ediis import * +from .scf_ediis2 import * +from .utils import * diff --git a/horton/meanfield/builtin.py b/horton/meanfield/builtin.py index 499bb0a1..8d2855a9 100644 --- a/horton/meanfield/builtin.py +++ b/horton/meanfield/builtin.py @@ -23,7 +23,7 @@ import numpy as np -from horton.meanfield.gridgroup import GridObservable, DF_LEVEL_LDA +from .gridgroup import GridObservable, DF_LEVEL_LDA from horton.grid.molgrid import BeckeMolGrid from horton.grid.poisson import solve_poisson_becke from horton.utils import doc_inherit diff --git a/horton/meanfield/convergence.py b/horton/meanfield/convergence.py index ad50e890..36c51f79 100644 --- a/horton/meanfield/convergence.py +++ b/horton/meanfield/convergence.py @@ -27,7 +27,7 @@ import numpy as np -from horton.meanfield.utils import compute_commutator +from .utils import compute_commutator __all__ = [ diff --git a/horton/meanfield/gridgroup.py b/horton/meanfield/gridgroup.py index e34df0c2..53c60858 100644 --- a/horton/meanfield/gridgroup.py +++ b/horton/meanfield/gridgroup.py @@ -21,7 +21,7 @@ """Container for observables involving numerical integration""" -from horton.meanfield.observable import Observable +from .observable import Observable from horton.utils import doc_inherit diff --git a/horton/meanfield/libxc.py b/horton/meanfield/libxc.py index 797ca381..46be52c6 100644 --- a/horton/meanfield/libxc.py +++ b/horton/meanfield/libxc.py @@ -23,9 +23,9 @@ from horton.log import timer, biblio from horton.utils import doc_inherit -from horton.meanfield.gridgroup import GridObservable, DF_LEVEL_LDA, \ +from .gridgroup import GridObservable, DF_LEVEL_LDA, \ DF_LEVEL_GGA, DF_LEVEL_MGGA -from horton.meanfield.cext import RLibXCWrapper, ULibXCWrapper +from .cext import RLibXCWrapper, ULibXCWrapper __all__ = [ diff --git a/horton/meanfield/scf.py b/horton/meanfield/scf.py index 01108bf9..93b31317 100644 --- a/horton/meanfield/scf.py +++ b/horton/meanfield/scf.py @@ -25,8 +25,8 @@ from horton.log import log, timer from horton.exceptions import NoSCFConvergence -from horton.meanfield.convergence import convergence_error_eigen -from horton.meanfield.utils import get_level_shift +from .convergence import convergence_error_eigen +from .utils import get_level_shift __all__ = ['PlainSCFSolver'] diff --git a/horton/meanfield/scf_cdiis.py b/horton/meanfield/scf_cdiis.py index a09564d2..372593ca 100644 --- a/horton/meanfield/scf_cdiis.py +++ b/horton/meanfield/scf_cdiis.py @@ -24,7 +24,7 @@ import numpy as np from horton.log import biblio -from horton.meanfield.scf_diis import DIISHistory, DIISSCFSolver +from .scf_diis import DIISHistory, DIISSCFSolver from horton.quadprog import solve_safe from horton.utils import doc_inherit diff --git a/horton/meanfield/scf_diis.py b/horton/meanfield/scf_diis.py index d3953418..fb937bef 100644 --- a/horton/meanfield/scf_diis.py +++ b/horton/meanfield/scf_diis.py @@ -25,9 +25,9 @@ from horton.log import log, timer from horton.exceptions import NoSCFConvergence -from horton.meanfield.convergence import convergence_error_commutator -from horton.meanfield.utils import compute_commutator, check_dm -from horton.meanfield.orbitals import Orbitals +from .convergence import convergence_error_commutator +from .utils import compute_commutator, check_dm +from .orbitals import Orbitals __all__ = [] diff --git a/horton/meanfield/scf_ediis.py b/horton/meanfield/scf_ediis.py index ad2b0fd1..d58d5d58 100644 --- a/horton/meanfield/scf_ediis.py +++ b/horton/meanfield/scf_ediis.py @@ -24,7 +24,7 @@ from horton.log import biblio from horton.exceptions import NoSCFConvergence -from horton.meanfield.scf_diis import DIISHistory, DIISSCFSolver +from .scf_diis import DIISHistory, DIISSCFSolver from horton.quadprog import QPSolver from horton.utils import doc_inherit diff --git a/horton/meanfield/scf_ediis2.py b/horton/meanfield/scf_ediis2.py index d18c7909..12aa438e 100644 --- a/horton/meanfield/scf_ediis2.py +++ b/horton/meanfield/scf_ediis2.py @@ -24,9 +24,9 @@ import numpy as np from horton.log import biblio -from horton.meanfield.scf_diis import DIISHistory, DIISSCFSolver -from horton.meanfield.scf_cdiis import CDIISHistory -from horton.meanfield.scf_ediis import EDIISHistory +from .scf_diis import DIISHistory, DIISSCFSolver +from .scf_cdiis import CDIISHistory +from .scf_ediis import EDIISHistory from horton.utils import doc_inherit diff --git a/horton/meanfield/scf_oda.py b/horton/meanfield/scf_oda.py index 183208fc..e68cae60 100644 --- a/horton/meanfield/scf_oda.py +++ b/horton/meanfield/scf_oda.py @@ -25,9 +25,9 @@ from horton.log import log, timer from horton.exceptions import NoSCFConvergence -from horton.meanfield.convergence import convergence_error_commutator -from horton.meanfield.orbitals import Orbitals -from horton.meanfield.utils import check_dm, compute_commutator +from .convergence import convergence_error_commutator +from .orbitals import Orbitals +from .utils import check_dm, compute_commutator __all__ = ['ODASCFSolver', 'check_cubic'] diff --git a/horton/meanfield/test/common.py b/horton/meanfield/test/common.py index 65c48852..e213a245 100644 --- a/horton/meanfield/test/common.py +++ b/horton/meanfield/test/common.py @@ -28,18 +28,18 @@ from horton.grid.molgrid import BeckeMolGrid from horton.io.iodata import IOData from horton.log import log -from horton.meanfield.builtin import RDiracExchange, UDiracExchange -from horton.meanfield.convergence import convergence_error_eigen -from horton.meanfield.gridgroup import RGridGroup, UGridGroup -from horton.meanfield.guess import guess_core_hamiltonian -from horton.meanfield.hamiltonian import REffHam, UEffHam -from horton.meanfield.libxc import RLibXCLDA, ULibXCLDA, RLibXCGGA, ULibXCGGA, \ +from .. builtin import RDiracExchange, UDiracExchange +from .. convergence import convergence_error_eigen +from .. gridgroup import RGridGroup, UGridGroup +from .. guess import guess_core_hamiltonian +from .. hamiltonian import REffHam, UEffHam +from .. libxc import RLibXCLDA, ULibXCLDA, RLibXCGGA, ULibXCGGA, \ ULibXCMGGA, RLibXCHybridMGGA -from horton.meanfield.observable import RTwoIndexTerm, RDirectTerm, RExchangeTerm -from horton.meanfield.observable import UTwoIndexTerm, UDirectTerm, UExchangeTerm -from horton.meanfield.orbitals import Orbitals -from horton.meanfield.occ import AufbauOccModel, FixedOccModel -from horton.meanfield.scf_oda import check_cubic +from .. observable import RTwoIndexTerm, RDirectTerm, RExchangeTerm +from .. observable import UTwoIndexTerm, UDirectTerm, UExchangeTerm +from .. orbitals import Orbitals +from .. occ import AufbauOccModel, FixedOccModel +from .. scf_oda import check_cubic __all__ = [ diff --git a/horton/meanfield/test/test_hamiltonian.py b/horton/meanfield/test/test_hamiltonian.py index 2c936539..e93fe6dd 100644 --- a/horton/meanfield/test/test_hamiltonian.py +++ b/horton/meanfield/test/test_hamiltonian.py @@ -21,7 +21,7 @@ from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.test.common import check_interpolation, helper_compute +from .common import check_interpolation, helper_compute def test_energy_hydrogen(): diff --git a/horton/meanfield/test/test_indextransform.py b/horton/meanfield/test/test_indextransform.py index 3e092e33..7f1551ea 100644 --- a/horton/meanfield/test/test_indextransform.py +++ b/horton/meanfield/test/test_indextransform.py @@ -24,7 +24,7 @@ from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.indextransform import _parse_four_index_transform_orbs +from .. indextransform import _parse_four_index_transform_orbs def test_parse_index_transform_orbs(): assert _parse_four_index_transform_orbs(0, 1, 2, 3) == (0, 1, 2, 3) diff --git a/horton/meanfield/test/test_libxc.py b/horton/meanfield/test/test_libxc.py index d7be19cc..fd4073d6 100644 --- a/horton/meanfield/test/test_libxc.py +++ b/horton/meanfield/test/test_libxc.py @@ -24,7 +24,7 @@ from nose.plugins.skip import SkipTest from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.test.common import check_interpolation, \ +from .common import check_interpolation, \ check_dot_hessian, check_dot_hessian_polynomial, check_dot_hessian_cache diff --git a/horton/meanfield/test/test_observable.py b/horton/meanfield/test/test_observable.py index 48dfd006..b25318fa 100644 --- a/horton/meanfield/test/test_observable.py +++ b/horton/meanfield/test/test_observable.py @@ -22,7 +22,7 @@ from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.test.common import check_dot_hessian, \ +from .common import check_dot_hessian, \ check_dot_hessian_polynomial, check_dot_hessian_cache diff --git a/horton/meanfield/test/test_project.py b/horton/meanfield/test/test_project.py index f1fa0f94..4e6c3f9c 100644 --- a/horton/meanfield/test/test_project.py +++ b/horton/meanfield/test/test_project.py @@ -23,7 +23,7 @@ import numpy as np from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.test.common import helper_compute +from .common import helper_compute def test_project_msg_identical(): diff --git a/horton/meanfield/test/test_scf.py b/horton/meanfield/test/test_scf.py index 7d7089f7..dad26461 100644 --- a/horton/meanfield/test/test_scf.py +++ b/horton/meanfield/test/test_scf.py @@ -25,7 +25,7 @@ from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.test.common import check_hf_cs_hf, check_lih_os_hf, \ +from .common import check_hf_cs_hf, check_lih_os_hf, \ check_vanadium_sc_hf diff --git a/horton/meanfield/test/test_scf_cdiis.py b/horton/meanfield/test/test_scf_cdiis.py index 6a00da0c..169adb16 100644 --- a/horton/meanfield/test/test_scf_cdiis.py +++ b/horton/meanfield/test/test_scf_cdiis.py @@ -25,7 +25,7 @@ from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.test.common import check_hf_cs_hf, check_lih_os_hf, \ +from .common import check_hf_cs_hf, check_lih_os_hf, \ check_water_cs_hfs, check_n2_cs_hfs, check_h3_os_hfs, check_h3_os_pbe, \ check_co_cs_pbe, check_vanadium_sc_hf, check_water_cs_m05, \ check_methyl_os_tpss diff --git a/horton/meanfield/test/test_scf_ediis.py b/horton/meanfield/test/test_scf_ediis.py index e7e0e4c0..04b7dfd4 100644 --- a/horton/meanfield/test/test_scf_ediis.py +++ b/horton/meanfield/test/test_scf_ediis.py @@ -26,7 +26,7 @@ from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.test.common import check_hf_cs_hf, check_lih_os_hf, \ +from .common import check_hf_cs_hf, check_lih_os_hf, \ check_water_cs_hfs, check_n2_cs_hfs, check_h3_os_hfs, check_h3_os_pbe, \ check_co_cs_pbe, check_vanadium_sc_hf, check_water_cs_m05, \ check_methyl_os_tpss diff --git a/horton/meanfield/test/test_scf_ediis2.py b/horton/meanfield/test/test_scf_ediis2.py index bea7eb52..ae1c57a0 100644 --- a/horton/meanfield/test/test_scf_ediis2.py +++ b/horton/meanfield/test/test_scf_ediis2.py @@ -26,7 +26,7 @@ from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.test.common import check_hf_cs_hf, check_lih_os_hf, \ +from .common import check_hf_cs_hf, check_lih_os_hf, \ check_water_cs_hfs, check_n2_cs_hfs, check_h3_os_hfs, check_h3_os_pbe, \ check_co_cs_pbe, check_vanadium_sc_hf, check_water_cs_m05, \ check_methyl_os_tpss diff --git a/horton/meanfield/test/test_scf_oda.py b/horton/meanfield/test/test_scf_oda.py index c0a170da..2b1b3d44 100644 --- a/horton/meanfield/test/test_scf_oda.py +++ b/horton/meanfield/test/test_scf_oda.py @@ -26,7 +26,7 @@ from nose.plugins.attrib import attr from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.test.common import check_hf_cs_hf, check_lih_os_hf, \ +from .common import check_hf_cs_hf, check_lih_os_hf, \ check_water_cs_hfs, check_n2_cs_hfs, check_h3_os_hfs, check_h3_os_pbe, \ check_co_cs_pbe, check_vanadium_sc_hf, check_water_cs_m05, \ check_methyl_os_tpss @@ -78,7 +78,7 @@ def test_methyl_os_tpss(): def test_find_min_cubic(): - from horton.meanfield.scf_oda import find_min_cubic + from .. scf_oda import find_min_cubic assert find_min_cubic(0.2, 0.5, 3.0, -0.7) == 0.0 assert abs(find_min_cubic(2.1, -5.2, -3.0, 2.8) - 0.939645667705) < 1e-8 assert abs(find_min_cubic(0.0, 1.0, -0.1, -0.1) - 0.0153883154024) < 1e-8 @@ -91,7 +91,7 @@ def test_find_min_cubic(): def test_find_min_quadratic(): - from horton.meanfield.scf_oda import find_min_quadratic + from .. scf_oda import find_min_quadratic assert find_min_quadratic(0.0, -0.7) == 1.0 assert abs(find_min_quadratic(-3.0, 2.8) - 0.51724137931) < 1e-8 assert abs(find_min_quadratic(-0.2, 0.1) - 0.666666666667) < 1e-8 diff --git a/horton/meanfield/utils.py b/horton/meanfield/utils.py index 786f7ccf..b4d3d04d 100644 --- a/horton/meanfield/utils.py +++ b/horton/meanfield/utils.py @@ -23,7 +23,7 @@ import numpy as np -from horton.meanfield.orbitals import Orbitals +from .orbitals import Orbitals __all__ = [ From 6f05bf8ae6511eb80919ea8501684ac0ec5f486c Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Thu, 10 Aug 2017 16:27:25 +0200 Subject: [PATCH 02/19] replaced log.log with print and suffixes --- horton/meanfield/guess.py | 8 +-- horton/meanfield/hamiltonian.py | 19 ++++--- horton/meanfield/orbitals.py | 5 +- horton/meanfield/scf.py | 20 +++---- horton/meanfield/scf_diis.py | 96 ++++++++++++++------------------- horton/meanfield/scf_oda.py | 88 ++++++++++++++---------------- horton/meanfield/test/common.py | 11 ---- 7 files changed, 99 insertions(+), 148 deletions(-) diff --git a/horton/meanfield/guess.py b/horton/meanfield/guess.py index b1e6ac4d..934ab12e 100644 --- a/horton/meanfield/guess.py +++ b/horton/meanfield/guess.py @@ -21,13 +21,9 @@ '''Initial guesses for wavefunctions''' -from horton.log import log, timer - - __all__ = ['guess_core_hamiltonian'] -@timer.with_section('Initial Guess') def guess_core_hamiltonian(overlap, core, *orbs): '''Guess the orbitals by diagonalizing a core Hamiltonian. @@ -43,9 +39,7 @@ def guess_core_hamiltonian(overlap, core, *orbs): This method only modifies the expansion coefficients and the orbital energies. ''' - if log.do_medium: - log('Performing a core Hamiltonian guess.') - log.blank() + print('5: Performing a core Hamiltonian guess.') if len(orbs) == 0: raise TypeError('At least one set of orbitals.') diff --git a/horton/meanfield/hamiltonian.py b/horton/meanfield/hamiltonian.py index 2055fb81..4213da7b 100644 --- a/horton/meanfield/hamiltonian.py +++ b/horton/meanfield/hamiltonian.py @@ -21,7 +21,6 @@ """Mean-field DFT/HF Hamiltonian data structures""" -from horton.log import log from horton.cache import Cache from horton.utils import doc_inherit @@ -122,18 +121,18 @@ def compute_energy(self): def log(self): """Write an overview of the last computation on screen.""" - log('Contributions to the energy:') - log.hline() - log(' term Value') - log.hline() + print('5: Contributions to the energy:') + print("5: " + "-" * 70) + print('5: term Value') + print("5: " + "-" * 70) for term in self.terms: energy = self.cache['energy_%s' % term.label] - log('%50s %20.12f' % (term.label, energy)) + print('5: %50s %20.12f' % (term.label, energy)) for key, energy in self.external.iteritems(): - log('%50s %20.12f' % (key, energy)) - log('%50s %20.12f' % ('total', self.cache['energy'])) - log.hline() - log.blank() + print('5: %50s %20.12f' % (key, energy)) + print('5: %50s %20.12f' % ('total', self.cache['energy'])) + print("5: " + "-" * 70) + print("5: ") def compute_fock(self, *focks): """Compute the fock matrices. diff --git a/horton/meanfield/orbitals.py b/horton/meanfield/orbitals.py index a335bdb9..ae2ae953 100644 --- a/horton/meanfield/orbitals.py +++ b/horton/meanfield/orbitals.py @@ -25,8 +25,6 @@ from scipy.linalg import eigh from horton.utils import check_type -from horton.log import log - __all__ = ['Orbitals'] @@ -478,8 +476,7 @@ def swap_orbitals(self, swaps): raise TypeError('The argument swaps has the wrong shape/type.') for iswap in range(len(swaps)): index0, index1 = swaps[iswap] - if log.do_medium: - log(' Swapping orbitals %i and %i' %(index0, index1)) + print('5: Swapping orbitals %i and %i' %(index0, index1)) tmp = self.coeffs[:,index0].copy() self.coeffs[:,index0] = self.coeffs[:,index1] self.coeffs[:,index1] = tmp diff --git a/horton/meanfield/scf.py b/horton/meanfield/scf.py index 93b31317..89ec219b 100644 --- a/horton/meanfield/scf.py +++ b/horton/meanfield/scf.py @@ -23,7 +23,7 @@ import numpy as np -from horton.log import log, timer +from horton.log import timer from horton.exceptions import NoSCFConvergence from .convergence import convergence_error_eigen from .utils import get_level_shift @@ -87,11 +87,10 @@ def __call__(self, ham, overlap, occ_model, *orbs): for orb in orbs: orb.check_normalization(overlap) - if log.do_medium: - log('Starting plain SCF solver. ndm=%i' % ham.ndm) - log.hline() - log('Iter Error') - log.hline() + print('Starting plain SCF solver. ndm=%i' % ham.ndm) + print("5: " + "-" * 70) + print('Iter Error') + print("5: " + "-" * 70) focks = [np.zeros(overlap.shape) for i in xrange(ham.ndm)] dms = [None] * ham.ndm @@ -109,8 +108,7 @@ def __call__(self, ham, overlap, occ_model, *orbs): error = 0.0 for i in xrange(ham.ndm): error += orbs[i].error_eigen(focks[i], overlap) - if log.do_medium: - log('%4i %12.5e' % (counter, error)) + print('5: %4i %12.5e' % (counter, error)) if error < self.threshold: converged = True break @@ -131,13 +129,11 @@ def __call__(self, ham, overlap, occ_model, *orbs): # counter counter += 1 - if log.do_medium: - log.blank() + print("5: ") if not self.skip_energy: ham.compute_energy() - if log.do_medium: - ham.log() + print(ham) if not converged: raise NoSCFConvergence diff --git a/horton/meanfield/scf_diis.py b/horton/meanfield/scf_diis.py index fb937bef..6eadf968 100644 --- a/horton/meanfield/scf_diis.py +++ b/horton/meanfield/scf_diis.py @@ -23,7 +23,7 @@ import numpy as np -from horton.log import log, timer +from horton.log import timer from horton.exceptions import NoSCFConvergence from .convergence import convergence_error_commutator from .utils import compute_commutator, check_dm @@ -110,11 +110,10 @@ def __call__(self, ham, overlap, occ_model, *dms): self._focks = [np.zeros(overlap.shape) for i in xrange(ham.ndm)] self._orbs = [Orbitals(overlap.shape[0]) for i in xrange(ham.ndm)] - if log.do_medium: - log('Starting restricted closed-shell %s-SCF' % self._history.name) - log.hline() - log('Iter Error CN Last nv Method Energy Change') - log.hline() + print('5: Starting restricted closed-shell %s-SCF' % self._history.name) + print("5: " + "-" * 70) + print('5: Iter Error CN Last nv Method Energy Change') + print("5: " + "-" * 70) converged = False counter = 0 @@ -132,20 +131,16 @@ def __call__(self, ham, overlap, occ_model, *dms): error = self._history.add(energy, dms, self._focks) # Screen logging - if log.do_high: - log(' DIIS add') + print('7: DIIS add') if error < self.threshold: converged = True break - if log.do_high: - log.blank() - if log.do_medium: - energy_str = ' '*20 if energy is None else '% 20.13f' % energy - log('%4i %12.5e %2i %20s' % ( - counter, error, self._history.nused, energy_str - )) - if log.do_high: - log.blank() + print("7: ") + energy_str = ' '*20 if energy is None else '% 20.13f' % energy + print('5: %4i %12.5e %2i %20s' % ( + counter, error, self._history.nused, energy_str + )) + print("7: ") fock_interpolated = False else: energy = None @@ -163,8 +158,7 @@ def __call__(self, ham, overlap, occ_model, *dms): ham.compute_fock(*self._focks) # Add the current (dm, fock) pair to the history - if log.do_high: - log(' DIIS add') + print('7: DIIS add') error = self._history.add(energy, dms, self._focks) # break when converged @@ -173,15 +167,12 @@ def __call__(self, ham, overlap, occ_model, *dms): break # Screen logging - if log.do_high: - log.blank() - if log.do_medium: - energy_str = ' '*20 if energy is None else '% 20.13f' % energy - log('%4i %12.5e %2i %20s' % ( - counter, error, self._history.nused, energy_str - )) - if log.do_high: - log.blank() + print("7: ") + energy_str = ' '*20 if energy is None else '% 20.13f' % energy + print('5: %4i %12.5e %2i %20s' % ( + counter, error, self._history.nused, energy_str + )) + print("7: ") # get extra/intra-polated Fock matrix while True: @@ -195,14 +186,12 @@ def __call__(self, ham, overlap, occ_model, *dms): converged = True break #if coeffs[coeffs<0].sum() < -1: - # if log.do_high: - # log(' DIIS (coeffs too negative) -> drop %i and retry' % self._history.stack[0].identity) + # print('7: DIIS (coeffs too negative) -> drop %i and retry' % self._history.stack[0].identity) # self._history.shrink() if self._history.nused <= 2: break if coeffs[-1] == 0.0: - if log.do_high: - log(' DIIS (last coeff zero) -> drop %i and retry' % self._history.stack[0].identity) + print('7: DIIS (last coeff zero) -> drop %i and retry' % self._history.stack[0].identity) self._history.shrink() else: break @@ -220,7 +209,7 @@ def __call__(self, ham, overlap, occ_model, *dms): self._history._build_combinations(x_coeffs, dms_tmp, None) ham.reset(*dms_tmp) energies2.append(ham.compute_energy()) - print x, energies1[-1], energies2[-1] + print(x, energies1[-1], energies2[-1]) pt.clf() pt.plot(xs, energies1, label='est') pt.plot(xs, energies2, label='ref') @@ -234,25 +223,20 @@ def __call__(self, ham, overlap, occ_model, *dms): energy_change = None # log - if log.do_high: - self._history.log(coeffs) - - if log.do_medium: - change_str = ' '*10 if energy_change is None else '% 12.7f' % energy_change - log('%4i %10.3e %12.7f %2i %s %12s' % ( - counter, cn, coeffs[-1], self._history.nused, method, - change_str - )) + self._history.log(coeffs) - if log.do_high: - log.blank() + change_str = ' '*10 if energy_change is None else '% 12.7f' % energy_change + print('5: %4i %10.3e %12.7f %2i %s %12s' % ( + counter, cn, coeffs[-1], self._history.nused, method, + change_str + )) + print("7: ") if self.prune_old_states: # get rid of old states with zero coeff for i in xrange(self._history.nused): if coeffs[i] == 0.0: - if log.do_high: - log(' DIIS insignificant -> drop %i' % self._history.stack[0].identity) + print('7: DIIS insignificant -> drop %i' % self._history.stack[0].identity) self._history.shrink() else: break @@ -260,16 +244,14 @@ def __call__(self, ham, overlap, occ_model, *dms): # counter counter += 1 - if log.do_medium: - if converged: - log('%4i %12.5e (converged)' % (counter, error)) - log.blank() + if converged: + print('5: %4i %12.5e (converged)' % (counter, error)) + print("7: ") if not self.skip_energy or self._history.need_energy: if not self._history.need_energy: ham.compute_energy() - if log.do_medium: - ham.log() + print(ham) if not converged: raise NoSCFConvergence @@ -386,16 +368,16 @@ def _get_nvector(self): def log(self, coeffs): eref = min(state.energy for state in self.stack[:self.nused]) if eref is None: - log(' DIIS history normsq coeff id') + print('5: DIIS history normsq coeff id') for i in xrange(self.nused): state = self.stack[i] - log(' DIIS history %12.5e %12.7f %8i' % (state.normsq, coeffs[i], state.identity)) + print('5: DIIS history %12.5e %12.7f %8i' % (state.normsq, coeffs[i], state.identity)) else: - log(' DIIS history normsq energy coeff id') + print('5: DIIS history normsq energy coeff id') for i in xrange(self.nused): state = self.stack[i] - log(' DIIS history %12.5e %12.5e %12.7f %8i' % (state.normsq, state.energy-eref, coeffs[i], state.identity)) - log.blank() + print('5: DIIS history %12.5e %12.5e %12.7f %8i' % (state.normsq, state.energy-eref, coeffs[i], state.identity)) + print("5: ") def solve(self, dms_output, focks_output): '''Inter- or extrapolate new density and/or fock matrices. diff --git a/horton/meanfield/scf_oda.py b/horton/meanfield/scf_oda.py index e68cae60..05e9f58c 100644 --- a/horton/meanfield/scf_oda.py +++ b/horton/meanfield/scf_oda.py @@ -20,16 +20,14 @@ # -- '''Optimal Damping SCF algorithm''' - import numpy as np -from horton.log import log, timer from horton.exceptions import NoSCFConvergence +from horton.log import timer from .convergence import convergence_error_commutator from .orbitals import Orbitals from .utils import check_dm, compute_commutator - __all__ = ['ODASCFSolver', 'check_cubic'] @@ -50,37 +48,34 @@ def find_min_cubic(f0, f1, g0, g1): # coefficients of the polynomial a*x**3 + b*x**2 + c*x + d d = f0 c = g0 - a = g1 - 2*f1 + c + 2*d + a = g1 - 2 * f1 + c + 2 * d b = f1 - a - c - d # find the roots of the derivative - discriminant = b**2 - 3*a*c # simplified expression, not a mistake! + discriminant = b ** 2 - 3 * a * c # simplified expression, not a mistake! if discriminant >= 0: - if b*b < abs(3*a*c)*1e5: - if log.do_high: - log(' cubic') - xa = (-b + np.sqrt(discriminant))/(3*a) - xb = (-b - np.sqrt(discriminant))/(3*a) + if b * b < abs(3 * a * c) * 1e5: + print('7: cubic') + xa = (-b + np.sqrt(discriminant)) / (3 * a) + xb = (-b - np.sqrt(discriminant)) / (3 * a) # test the solutions for x in xa, xb: if x >= 0 and x <= 1: # compute the curvature at the solution - curv = 6*a*x+2*b + curv = 6 * a * x + 2 * b if curv > 0: # Only one of two solutions has the right curvature, no # need to compare the energy of both solutions return x - elif b > 0: # only b > 0 because b is also the curvature - if log.do_high: - log(' quadratic') - x = -0.5*c/b + elif b > 0: # only b > 0 because b is also the curvature + print('7: quadratic') + x = -0.5 * c / b if x >= 0 and x <= 1: return x # If we get here, no solution was found in the interval. One of the # boundaries is then the minimum - if log.do_high: - log(' edge') + print('7: edge') if f0 < f1: return 0.0 else: @@ -112,7 +107,7 @@ def find_min_quadratic(g0, g1): class ODASCFSolver(object): '''Optimal damping SCF algorithm (with cubic interpolation)''' - kind = 'dm' # input/output variable is the density matrix + kind = 'dm' # input/output variable is the density matrix def __init__(self, threshold=1e-8, maxiter=128, skip_energy=False, debug=False): ''' @@ -158,18 +153,18 @@ def __call__(self, ham, overlap, occ_model, *dm0s): ''' # Some type checking if ham.ndm != len(dm0s): - raise TypeError('The number of initial density matrices does not match the Hamiltonian.') + raise TypeError( + 'The number of initial density matrices does not match the Hamiltonian.') # Check input density matrices. for i in xrange(ham.ndm): check_dm(dm0s[i], overlap) occ_model.check_dms(overlap, *dm0s) - if log.do_medium: - log('Starting SCF with optimal damping. ham.ndm=%i' % ham.ndm) - log.hline() - log(' Iter Energy Error Mixing') - log.hline() + print('5: Starting SCF with optimal damping. ham.ndm=%i' % ham.ndm) + print("5: " + "-" * 70) + print('5: Iter Energy Error Mixing') + print("5: " + "-" * 70) fock0s = [np.zeros(overlap.shape) for i in xrange(ham.ndm)] fock1s = [np.zeros(overlap.shape) for i in xrange(ham.ndm)] @@ -189,11 +184,10 @@ def __call__(self, ham, overlap, occ_model, *dm0s): # Compute the energy in point 0 energy0 = ham.compute_energy() - if log.do_medium: - if mixing is None: - log('%5i %20.13f' % (counter, energy0)) - else: - log('%5i %20.13f %12.5e %10.5f' % (counter, energy0, error, mixing)) + if mixing is None: + print('5: %5i %20.13f' % (counter, energy0)) + else: + print('5: %5i %20.13f %12.5e %10.5f' % (counter, energy0, error, mixing)) # go to point 1 by diagonalizing the fock matrices for i in xrange(ham.ndm): @@ -224,9 +218,8 @@ def __call__(self, ham, overlap, occ_model, *dm0s): deriv1 *= ham.deriv_scale # find the lambda that minimizes the cubic polynomial in the range [0,1] - if log.do_high: - log(' E0: % 10.5e D0: % 10.5e' % (energy0, deriv0)) - log(' E1-E0: % 10.5e D1: % 10.5e' % (energy1-energy0, deriv1)) + print('5: E0: % 10.5e D0: % 10.5e' % (energy0, deriv0)) + print('5: E1-E0: % 10.5e D1: % 10.5e' % (energy1 - energy0, deriv1)) mixing = find_min_cubic(energy0, energy1, deriv0, deriv1) if self.debug: @@ -235,27 +228,27 @@ def __call__(self, ham, overlap, occ_model, *dm0s): # compute the mixed density and fock matrices (in-place in dm0s and fock0s) for i in xrange(ham.ndm): dm0s[i][:] *= 1 - mixing - dm0s[i][:] += dm1s[i]*mixing + dm0s[i][:] += dm1s[i] * mixing fock0s[i][:] *= 1 - mixing - fock0s[i][:] += fock1s[i]*mixing + fock0s[i][:] += fock1s[i] * mixing # Compute the convergence criterion. errorsq = 0.0 for i in xrange(ham.ndm): commutator = compute_commutator(dm0s[i], fock0s[i], overlap) errorsq += np.einsum('ab,ab', commutator, commutator) - error = errorsq**0.5 + error = errorsq ** 0.5 if error < self.threshold: converged = True break elif mixing == 0.0: - raise NoSCFConvergence('The ODA algorithm made a zero step without reaching convergence.') + raise NoSCFConvergence( + 'The ODA algorithm made a zero step without reaching convergence.') # counter counter += 1 - if log.do_medium: - ham.log() + print(ham) # TODO: add __repr__ to ham if not converged: raise NoSCFConvergence @@ -310,7 +303,7 @@ def check_cubic(ham, dm0s, dm1s, e0, e1, g0, g1, do_plot=True): # coefficients of the polynomial a*x**3 + b*x**2 + c*x + d d = e0 c = g0 - a = g1 - 2*e1 + c + 2*d + a = g1 - 2 * e1 + c + 2 * d b = e1 - a - c - d ndm = len(dm0s) @@ -320,7 +313,7 @@ def check_cubic(ham, dm0s, dm1s, e0, e1, g0, g1, do_plot=True): energies = [] for x in xs: for i in xrange(ndm): - dm2s[i][:] = dm0s[i]*(1-x) + dm1s[i]*x + dm2s[i][:] = dm0s[i] * (1 - x) + dm1s[i] * x ham.reset(*dm2s) e2 = ham.compute_energy() energies.append(e2) @@ -329,28 +322,29 @@ def check_cubic(ham, dm0s, dm1s, e0, e1, g0, g1, do_plot=True): if do_plot: # make a nice figure xxs = np.concatenate([np.linspace(0, 0.006, 60), np.linspace(0.994, 1.0, 60)]) - poly = a*xxs**3+b*xxs**2+c*xxs+d + poly = a * xxs ** 3 + b * xxs ** 2 + c * xxs + d import matplotlib.pyplot as pt pt.clf() pt.subplot(121) pt.plot(xxs, poly, 'k-', label='cubic') pt.plot(xs, energies, 'ro', label='ref') - pt.plot([0,1],[e0,e1], 'b--', label='linear') + pt.plot([0, 1], [e0, e1], 'b--', label='linear') pt.xlim(0, 0.006) pt.ylim(min(energies[:5].min(), poly[:60].min()), max(energies[:5].max(), poly[:60].max())) pt.legend(loc=0) pt.subplot(122) pt.plot(xxs, poly, 'k-', label='cubic') pt.plot(xs, energies, 'ro', label='ref') - pt.plot([0,1],[e0,e1], 'b--', label='linear') + pt.plot([0, 1], [e0, e1], 'b--', label='linear') pt.xlim(0.994, 1.0) - pt.ylim(min(energies[-5:].min(), poly[-60:].min()), max(energies[-5:].max(), poly[-60:].max())) + pt.ylim(min(energies[-5:].min(), poly[-60:].min()), + max(energies[-5:].max(), poly[-60:].max())) pt.legend(loc=0) pt.savefig('check_cubic_%+024.17f.png' % e0) else: # if not plotting, check that the errors are not too large - poly = a*xs**3+b*xs**2+c*xs+d - relative_errors = abs(poly[:5]-energies[:5])/(energies[:5] - e0) + poly = a * xs ** 3 + b * xs ** 2 + c * xs + d + relative_errors = abs(poly[:5] - energies[:5]) / (energies[:5] - e0) assert relative_errors.max() < 0.03 - relative_errors = abs(poly[-5:]-energies[-5:])/(energies[-5:] - e1) + relative_errors = abs(poly[-5:] - energies[-5:]) / (energies[-5:] - e1) assert relative_errors.max() < 0.03 diff --git a/horton/meanfield/test/common.py b/horton/meanfield/test/common.py index e213a245..6c121a17 100644 --- a/horton/meanfield/test/common.py +++ b/horton/meanfield/test/common.py @@ -27,7 +27,6 @@ from horton.gbasis.gobasis import get_gobasis from horton.grid.molgrid import BeckeMolGrid from horton.io.iodata import IOData -from horton.log import log from .. builtin import RDiracExchange, UDiracExchange from .. convergence import convergence_error_eigen from .. gridgroup import RGridGroup, UGridGroup @@ -330,7 +329,6 @@ def helper_compute(ham, *orbs): return ham.cache['energy'], focks -@log.with_level(log.high) def check_hf_cs_hf(scf_solver): fn_fchk = context.get_fn('test/hf_sto3g.fchk') mol = IOData.from_file(fn_fchk) @@ -367,7 +365,6 @@ def check_hf_cs_hf(scf_solver): assert abs(ham.cache['energy_nn'] - 4.7247965053) < 1e-8 -@log.with_level(log.high) def check_lih_os_hf(scf_solver): fn_fchk = context.get_fn('test/li_h_3-21G_hf_g09.fchk') mol = IOData.from_file(fn_fchk) @@ -410,7 +407,6 @@ def check_lih_os_hf(scf_solver): assert abs(ham.cache['energy_nn'] - 0.6731318487) < 1e-8 -@log.with_level(log.high) def check_water_cs_hfs(scf_solver): fn_fchk = context.get_fn('test/water_hfs_321g.fchk') mol = IOData.from_file(fn_fchk) @@ -468,7 +464,6 @@ def check_water_cs_hfs(scf_solver): assert abs(ham.cache['energy'] - -7.474134898935590E+01) < 2e-4 -@log.with_level(log.high) def check_n2_cs_hfs(scf_solver): fn_fchk = context.get_fn('test/n2_hfs_sto3g.fchk') mol = IOData.from_file(fn_fchk) @@ -537,7 +532,6 @@ def check_n2_cs_hfs(scf_solver): assert abs(ham2.cache['energy_hartree'] + ham2.cache['energy_x_dirac'] - 6.247259253877E+01) < 1e-4 -@log.with_level(log.high) def check_h3_os_hfs(scf_solver): fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') mol = IOData.from_file(fn_fchk) @@ -612,7 +606,6 @@ def check_h3_os_hfs(scf_solver): assert abs(ham2.cache['energy_hartree'] + ham2.cache['energy_x_dirac'] - 1.658810998195E+00) < 1e-6 -@log.with_level(log.high) def check_co_cs_pbe(scf_solver): fn_fchk = context.get_fn('test/co_pbe_sto3g.fchk') mol = IOData.from_file(fn_fchk) @@ -662,7 +655,6 @@ def check_co_cs_pbe(scf_solver): assert abs(ham.cache['energy_nn'] - 22.5181790889) < 1e-7 -@log.with_level(log.high) def check_h3_os_pbe(scf_solver): fn_fchk = context.get_fn('test/h3_pbe_321g.fchk') mol = IOData.from_file(fn_fchk) @@ -719,7 +711,6 @@ def check_h3_os_pbe(scf_solver): assert abs(ham.cache['energy_nn'] - 1.8899186021) < 1e-8 -@log.with_level(log.high) def check_vanadium_sc_hf(scf_solver): """Try to converge the SCF for the neutral vanadium atom with fixe fractional occupations. @@ -763,7 +754,6 @@ def check_vanadium_sc_hf(scf_solver): check_solve(ham, scf_solver, occ_model, olp, kin, na, orb_alpha) -@log.with_level(log.high) def check_water_cs_m05(scf_solver): """Try to converge the SCF for the water molecule with the M05 functional. @@ -821,7 +811,6 @@ def check_water_cs_m05(scf_solver): assert abs(ham.cache['energy_nn'] - 9.1571750414) < 1e-5 -@log.with_level(log.high) def check_methyl_os_tpss(scf_solver): """Try to converge the SCF for the methyl radical molecule with the TPSS functional. From a2a3890bdc513d3777af255912e03a3c291811c5 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Thu, 10 Aug 2017 21:11:54 +0200 Subject: [PATCH 03/19] removed timer --- horton/meanfield/indextransform.py | 5 ----- horton/meanfield/libxc.py | 16 +--------------- horton/meanfield/response.py | 3 --- horton/meanfield/scf.py | 2 -- horton/meanfield/scf_diis.py | 2 -- horton/meanfield/scf_oda.py | 2 -- 6 files changed, 1 insertion(+), 29 deletions(-) diff --git a/horton/meanfield/indextransform.py b/horton/meanfield/indextransform.py index 1a7ccf37..b03339d7 100644 --- a/horton/meanfield/indextransform.py +++ b/horton/meanfield/indextransform.py @@ -23,9 +23,6 @@ import numpy as np -from horton.log import timer - - __all__ = ['four_index_transform', 'transform_integrals', 'split_core_active', 'four_index_transform_cholesky', 'transform_integrals_cholesky', 'split_core_active_cholesky'] @@ -115,7 +112,6 @@ def four_index_transform(ao_integrals, orb0, orb1=None, orb2=None, orb3=None, me return result -@timer.with_section('Index Trans') def transform_integrals(one, two, method='tensordot', *orbs): """Transform integrals to MO basis. @@ -258,7 +254,6 @@ def four_index_transform_cholesky(ao_integrals, orb0, orb1=None, method='tensord return result -@timer.with_section('Index Trans') def transform_integrals_cholesky(one, two, method='tensordot', *orbs): """Transform integrals to MO basis. diff --git a/horton/meanfield/libxc.py b/horton/meanfield/libxc.py index 46be52c6..96ef4c13 100644 --- a/horton/meanfield/libxc.py +++ b/horton/meanfield/libxc.py @@ -21,7 +21,7 @@ """Interface to LDA, GGA and hybrid functionals from LibXC""" -from horton.log import timer, biblio +from horton.log import biblio from horton.utils import doc_inherit from .gridgroup import GridObservable, DF_LEVEL_LDA, \ DF_LEVEL_GGA, DF_LEVEL_MGGA @@ -67,7 +67,6 @@ class RLibXCLDA(LibXCEnergy): prefix = 'lda' LibXCWrapper = RLibXCWrapper - @timer.with_section('LDA edens') @doc_inherit(LibXCEnergy) def compute_energy(self, cache, grid): # LibXC expects the following input: @@ -80,7 +79,6 @@ def compute_energy(self, cache, grid): self._libxc_wrapper.compute_lda_exc(rho_full, edens) return grid.integrate(edens, rho_full) - @timer.with_section('LDA pot') @doc_inherit(LibXCEnergy) def add_pot(self, cache, grid, pots_alpha): # LibXC expects the following input: @@ -92,7 +90,6 @@ def add_pot(self, cache, grid, pots_alpha): self._libxc_wrapper.compute_lda_vxc(cache['rho_full'], pot) pots_alpha[:, 0] += pot - @timer.with_section('LDA dot') @doc_inherit(LibXCEnergy) def add_dot(self, cache, grid, dots_alpha): # LibXC expects the following input: @@ -115,7 +112,6 @@ class ULibXCLDA(LibXCEnergy): prefix = 'lda' LibXCWrapper = ULibXCWrapper - @timer.with_section('LDA edens') @doc_inherit(LibXCEnergy) def compute_energy(self, cache, grid): # LibXC expects the following input: @@ -131,7 +127,6 @@ def compute_energy(self, cache, grid): self._libxc_wrapper.compute_lda_exc(cache['rho_both'], edens) return grid.integrate(edens, cache['rho_full']) - @timer.with_section('LDA pot') @doc_inherit(LibXCEnergy) def add_pot(self, cache, grid, pots_alpha, pots_beta): # LibXC expects the following input: @@ -154,7 +149,6 @@ class RLibXCGGA(LibXCEnergy): prefix = 'gga' LibXCWrapper = RLibXCWrapper - @timer.with_section('GGA edens') @doc_inherit(LibXCEnergy) def compute_energy(self, cache, grid): # LibXC expects the following input: @@ -189,7 +183,6 @@ def _compute_dpot_spot(self, cache, grid): self._libxc_wrapper.compute_gga_vxc(rho_full, sigma_full, dpot, spot) return dpot, spot - @timer.with_section('GGA pot') @doc_inherit(LibXCEnergy) def add_pot(self, cache, grid, pots_alpha): # LibXC expects the following input: @@ -213,7 +206,6 @@ def add_pot(self, cache, grid, pots_alpha): # Add to the output argument pots_alpha[:, :4] += my_gga_pot_alpha - @timer.with_section('GGA dot') @doc_inherit(LibXCEnergy) def add_dot(self, cache, grid, dots_alpha): # LibXC expects the following input: @@ -292,7 +284,6 @@ class ULibXCGGA(LibXCEnergy): prefix = 'gga' LibXCWrapper = ULibXCWrapper - @timer.with_section('GGA edens') @doc_inherit(LibXCEnergy) def compute_energy(self, cache, grid): # LibXC expects the following input: @@ -311,7 +302,6 @@ def compute_energy(self, cache, grid): rho_full = cache['rho_full'] return grid.integrate(edens, rho_full) - @timer.with_section('GGA pot') @doc_inherit(LibXCEnergy) def add_pot(self, cache, grid, pots_alpha, pots_beta): # LibXC expects the following input: @@ -394,7 +384,6 @@ class RLibXCMGGA(LibXCEnergy): prefix = 'mgga' LibXCWrapper = RLibXCWrapper - @timer.with_section('MGGA edens') @doc_inherit(LibXCEnergy) def compute_energy(self, cache, grid): # LibXC expects the following input: @@ -414,7 +403,6 @@ def compute_energy(self, cache, grid): tau_full, edens) return grid.integrate(edens, rho_full) - @timer.with_section('MGGA pot') @doc_inherit(LibXCEnergy) def add_pot(self, cache, grid, pots_alpha): # LibXC expects the following input: @@ -462,7 +450,6 @@ class ULibXCMGGA(LibXCEnergy): prefix = 'mgga' LibXCWrapper = ULibXCWrapper - @timer.with_section('MGGA edens') @doc_inherit(LibXCEnergy) def compute_energy(self, cache, grid): # LibXC expects the following input: @@ -488,7 +475,6 @@ def compute_energy(self, cache, grid): rho_full = cache['rho_full'] return grid.integrate(edens, rho_full) - @timer.with_section('MGGA pot') @doc_inherit(LibXCEnergy) def add_pot(self, cache, grid, pots_alpha, pots_beta): # LibXC expects the following input: diff --git a/horton/meanfield/response.py b/horton/meanfield/response.py index f0879b1f..4194128d 100644 --- a/horton/meanfield/response.py +++ b/horton/meanfield/response.py @@ -22,13 +22,10 @@ import numpy as np -from horton.log import timer - __all__ = ['compute_noninteracting_response'] -@timer.with_section('KS Response') def compute_noninteracting_response(orb, operators, work=None): '''Compute the non-interacting response matrix for a given orbital expansion diff --git a/horton/meanfield/scf.py b/horton/meanfield/scf.py index 89ec219b..4a534c04 100644 --- a/horton/meanfield/scf.py +++ b/horton/meanfield/scf.py @@ -23,7 +23,6 @@ import numpy as np -from horton.log import timer from horton.exceptions import NoSCFConvergence from .convergence import convergence_error_eigen from .utils import get_level_shift @@ -62,7 +61,6 @@ def __init__(self, threshold=1e-8, maxiter=128, skip_energy=False, level_shift=0 raise ValueError('The level_shift argument cannot be negative.') self.level_shift = level_shift - @timer.with_section('SCF') def __call__(self, ham, overlap, occ_model, *orbs): """Find a self-consistent set of orbitals. diff --git a/horton/meanfield/scf_diis.py b/horton/meanfield/scf_diis.py index 6eadf968..235962b9 100644 --- a/horton/meanfield/scf_diis.py +++ b/horton/meanfield/scf_diis.py @@ -23,7 +23,6 @@ import numpy as np -from horton.log import timer from horton.exceptions import NoSCFConvergence from .convergence import convergence_error_commutator from .utils import compute_commutator, check_dm @@ -77,7 +76,6 @@ def __init__(self, DIISHistoryClass, threshold=1e-6, maxiter=128, nvector=6, ski self.commutator = None - @timer.with_section('SCF') def __call__(self, ham, overlap, occ_model, *dms): '''Find a self-consistent set of density matrices. diff --git a/horton/meanfield/scf_oda.py b/horton/meanfield/scf_oda.py index 05e9f58c..ede1f6b0 100644 --- a/horton/meanfield/scf_oda.py +++ b/horton/meanfield/scf_oda.py @@ -23,7 +23,6 @@ import numpy as np from horton.exceptions import NoSCFConvergence -from horton.log import timer from .convergence import convergence_error_commutator from .orbitals import Orbitals from .utils import check_dm, compute_commutator @@ -132,7 +131,6 @@ def __init__(self, threshold=1e-8, maxiter=128, skip_energy=False, debug=False): self.skip_energy = skip_energy self.debug = debug - @timer.with_section('SCF') def __call__(self, ham, overlap, occ_model, *dm0s): '''Find a self-consistent set of density matrices. From 50c5c7206b124807fc56baad3b4fcb2a53734517 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Thu, 10 Aug 2017 21:59:48 +0200 Subject: [PATCH 04/19] converted biblio object --- horton/meanfield/gridgroup.py | 1 + horton/meanfield/libxc.py | 3 +-- horton/meanfield/occ.py | 4 ++-- horton/meanfield/scf_cdiis.py | 3 +-- horton/meanfield/scf_diis.py | 1 + horton/meanfield/scf_ediis.py | 3 +-- horton/meanfield/scf_ediis2.py | 3 +-- 7 files changed, 8 insertions(+), 10 deletions(-) diff --git a/horton/meanfield/gridgroup.py b/horton/meanfield/gridgroup.py index 53c60858..ba01d9d0 100644 --- a/horton/meanfield/gridgroup.py +++ b/horton/meanfield/gridgroup.py @@ -531,6 +531,7 @@ def __init__(self, label): A unique label for this contribution. """ self.label = label + self.biblio = [] def compute_energy(self, cache, grid): """Compute the expectation value using numerical integration. diff --git a/horton/meanfield/libxc.py b/horton/meanfield/libxc.py index 96ef4c13..1efcb6db 100644 --- a/horton/meanfield/libxc.py +++ b/horton/meanfield/libxc.py @@ -21,7 +21,6 @@ """Interface to LDA, GGA and hybrid functionals from LibXC""" -from horton.log import biblio from horton.utils import doc_inherit from .gridgroup import GridObservable, DF_LEVEL_LDA, \ DF_LEVEL_GGA, DF_LEVEL_MGGA @@ -56,8 +55,8 @@ def __init__(self, name): name = '%s_%s' % (self.prefix, name) self._name = name self._libxc_wrapper = self.LibXCWrapper(name) - biblio.cite('marques2012', 'using LibXC, the library of exchange and correlation functionals') GridObservable.__init__(self, 'libxc_%s' % name) + self.biblio.append(['marques2012', 'using LibXC, the library of exchange and correlation functionals']) class RLibXCLDA(LibXCEnergy): diff --git a/horton/meanfield/occ.py b/horton/meanfield/occ.py index 5bc544f5..8543dfa0 100644 --- a/horton/meanfield/occ.py +++ b/horton/meanfield/occ.py @@ -26,7 +26,6 @@ from horton.exceptions import ElectronCountError from horton.quadprog import find_1d_root from horton.constants import boltzmann -from horton.log import biblio from horton.utils import doc_inherit @@ -111,6 +110,7 @@ def __init__(self, *noccs): if sum(noccs) == 0: raise ElectronCountError('At least one electron is required.') self.noccs = noccs + self.biblio = [] @doc_inherit(OccModel) def assign(self, *orbs): @@ -221,7 +221,7 @@ def __init__(self, *noccs, **kwargs): self.temperature = float(temperature) self.eps = eps AufbauOccModel.__init__(self, *noccs) - biblio.cite('rabuck1999', 'the Fermi broading method to assign orbital occupations') + self.biblio.append(['rabuck1999', 'the Fermi broading method to assign orbital occupations']) @doc_inherit(OccModel) def assign(self, *orbs): diff --git a/horton/meanfield/scf_cdiis.py b/horton/meanfield/scf_cdiis.py index 372593ca..c3bcae0e 100644 --- a/horton/meanfield/scf_cdiis.py +++ b/horton/meanfield/scf_cdiis.py @@ -23,7 +23,6 @@ import numpy as np -from horton.log import biblio from .scf_diis import DIISHistory, DIISSCFSolver from horton.quadprog import solve_safe from horton.utils import doc_inherit @@ -57,8 +56,8 @@ def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, pr as soon as a state is encountered with a non-zero coefficient. Even if some newer states have a zero coefficient. ''' - biblio.cite('pulay1980', 'the commutator DIIS SCF algorithm') DIISSCFSolver.__init__(self, CDIISHistory, threshold, maxiter, nvector, skip_energy, prune_old_states) + self.biblio.append(['pulay1980', 'the commutator DIIS SCF algorithm']) class CDIISHistory(DIISHistory): diff --git a/horton/meanfield/scf_diis.py b/horton/meanfield/scf_diis.py index 235962b9..a7bb8781 100644 --- a/horton/meanfield/scf_diis.py +++ b/horton/meanfield/scf_diis.py @@ -74,6 +74,7 @@ def __init__(self, DIISHistoryClass, threshold=1e-6, maxiter=128, nvector=6, ski self._focks = [] self._orbs = [] self.commutator = None + self.biblio = [] def __call__(self, ham, overlap, occ_model, *dms): diff --git a/horton/meanfield/scf_ediis.py b/horton/meanfield/scf_ediis.py index d58d5d58..bd033743 100644 --- a/horton/meanfield/scf_ediis.py +++ b/horton/meanfield/scf_ediis.py @@ -22,7 +22,6 @@ import numpy as np -from horton.log import biblio from horton.exceptions import NoSCFConvergence from .scf_diis import DIISHistory, DIISSCFSolver from horton.quadprog import QPSolver @@ -57,8 +56,8 @@ def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, pr as soon as a state is encountered with a non-zero coefficient. Even if some newer states have a zero coefficient. ''' - biblio.cite('kudin2002', 'the EDIIS method.') DIISSCFSolver.__init__(self, EDIISHistory, threshold, maxiter, nvector, skip_energy, prune_old_states) + self.biblio.append(['kudin2002', 'the EDIIS method.']) class EDIISHistory(DIISHistory): diff --git a/horton/meanfield/scf_ediis2.py b/horton/meanfield/scf_ediis2.py index 12aa438e..8c54a94a 100644 --- a/horton/meanfield/scf_ediis2.py +++ b/horton/meanfield/scf_ediis2.py @@ -23,7 +23,6 @@ import numpy as np -from horton.log import biblio from .scf_diis import DIISHistory, DIISSCFSolver from .scf_cdiis import CDIISHistory from .scf_ediis import EDIISHistory @@ -58,8 +57,8 @@ def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, pr as soon as a state is encountered with a non-zero coefficient. Even if some newer states have a zero coefficient. ''' - biblio.cite('kudin2002', 'the EDIIS method.') DIISSCFSolver.__init__(self, EDIIS2History, threshold, maxiter, nvector, skip_energy, prune_old_states) + self.biblio.append(['kudin2002', 'the EDIIS method.']) class EDIIS2History(EDIISHistory, CDIISHistory): From 5b45ee5870e9a05173cc28b2020ccb87f6bc1796 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Thu, 10 Aug 2017 23:30:39 +0200 Subject: [PATCH 05/19] automated cleanups and spelling fixes --- horton/meanfield/__init__.py | 11 +- horton/meanfield/bond_order.py | 34 +++--- horton/meanfield/builtin.py | 13 ++- horton/meanfield/cext.pyx | 99 +++++++++-------- horton/meanfield/convergence.py | 17 ++- horton/meanfield/gridgroup.py | 25 ++--- horton/meanfield/guess.py | 7 +- horton/meanfield/hamiltonian.py | 10 +- horton/meanfield/indextransform.py | 56 +++++----- horton/meanfield/libxc.py | 39 ++++--- horton/meanfield/observable.py | 28 +++-- horton/meanfield/occ.py | 56 +++++----- horton/meanfield/orbitals.py | 84 +++++++------- horton/meanfield/project.py | 19 ++-- horton/meanfield/response.py | 16 +-- horton/meanfield/rotate.py | 31 +++--- horton/meanfield/scf.py | 11 +- horton/meanfield/scf_cdiis.py | 60 +++++----- horton/meanfield/scf_diis.py | 109 ++++++++++--------- horton/meanfield/scf_ediis.py | 53 ++++----- horton/meanfield/scf_ediis2.py | 30 ++--- horton/meanfield/scf_oda.py | 34 +++--- horton/meanfield/test/common.py | 105 ++++++++++-------- horton/meanfield/test/test_bond_order.py | 11 +- horton/meanfield/test/test_builtin.py | 6 +- horton/meanfield/test/test_gridgroup.py | 1 - horton/meanfield/test/test_guess.py | 13 ++- horton/meanfield/test/test_hamiltonian.py | 10 +- horton/meanfield/test/test_indextransform.py | 15 +-- horton/meanfield/test/test_libxc.py | 24 ++-- horton/meanfield/test/test_observable.py | 5 +- horton/meanfield/test/test_orbitals.py | 47 ++++---- horton/meanfield/test/test_project.py | 38 +++---- horton/meanfield/test/test_rotate.py | 34 +++--- horton/meanfield/test/test_scf.py | 2 - horton/meanfield/test/test_scf_cdiis.py | 2 - horton/meanfield/test/test_scf_ediis.py | 7 +- horton/meanfield/test/test_scf_ediis2.py | 2 - horton/meanfield/test/test_scf_oda.py | 24 ++-- horton/meanfield/utils.py | 34 +++--- 40 files changed, 608 insertions(+), 614 deletions(-) diff --git a/horton/meanfield/__init__.py b/horton/meanfield/__init__.py index 8a4ccadb..f4048cde 100644 --- a/horton/meanfield/__init__.py +++ b/horton/meanfield/__init__.py @@ -18,13 +18,12 @@ # along with this program; if not, see # # -- -'''Mean-field electronic structure code''' - +"""Mean-field electronic structure code""" from .bond_order import * -from . builtin import * -from .convergence import * +from .builtin import * from .cext import * +from .convergence import * from .gridgroup import * from .guess import * from .hamiltonian import * @@ -34,11 +33,11 @@ from .occ import * from .orbitals import * from .project import * -from .rotate import * from .response import * +from .rotate import * from .scf import * -from .scf_oda import * from .scf_cdiis import * from .scf_ediis import * from .scf_ediis2 import * +from .scf_oda import * from .utils import * diff --git a/horton/meanfield/bond_order.py b/horton/meanfield/bond_order.py index 37dd8d7e..a19ed0bf 100644 --- a/horton/meanfield/bond_order.py +++ b/horton/meanfield/bond_order.py @@ -18,10 +18,10 @@ # along with this program; if not, see # # -- -r'''Generic implementation of bond orders for mean-field wavefunctions +r"""Generic implementation of bond orders for mean-field wavefunctions - In the context bond orders and self-electron delocatization indices (SEDI's) - are always one an the same thing. For two AIM overlap perators, :math:`S_A` + In the context bond orders and self-electron delocalization indices (SEDI's) + are always one an the same thing. For two AIM overlap operators, :math:`S_A` and :math:`S_B`, the bond order is defined as: .. math:: @@ -42,17 +42,15 @@ .. math:: F_A = V_A - \sum_{B \neq A} \text{BO}_{AB} -''' - +""" import numpy as np - __all__ = ['compute_bond_orders_cs', 'compute_bond_orders_os'] def compute_bond_orders_cs(dm_alpha, operators): - '''Compute bond orders, valences and free valences (closed-shell case) + """Compute bond orders, valences and free valences (closed-shell case) **Arguments:** @@ -72,7 +70,7 @@ def compute_bond_orders_cs(dm_alpha, operators): free_valences A vector with atomic free valences - ''' + """ bond_orders, populations = _compute_bond_orders_low(dm_alpha, operators) valences = _compute_valences_low(dm_alpha, populations, operators) bond_orders *= 2 @@ -83,7 +81,7 @@ def compute_bond_orders_cs(dm_alpha, operators): def compute_bond_orders_os(dm_alpha, dm_beta, operators): - '''Compute bond orders, valences and free valences (open-shell case) + """Compute bond orders, valences and free valences (open-shell case) **Arguments:** @@ -103,18 +101,18 @@ def compute_bond_orders_os(dm_alpha, dm_beta, operators): free_valences A vector with atomic free valences - ''' + """ bond_orders_a, populations_a = _compute_bond_orders_low(dm_alpha, operators) bond_orders_b, populations_b = _compute_bond_orders_low(dm_beta, operators) bond_orders = bond_orders_a + bond_orders_b populations = populations_a + populations_b - valences = _compute_valences_low(dm_alpha + dm_beta, 2*populations, operators)/2 + valences = _compute_valences_low(dm_alpha + dm_beta, 2 * populations, operators) / 2 free_valences = valences - (bond_orders.sum(axis=0) - np.diag(bond_orders)) return bond_orders, valences, free_valences def _compute_bond_orders_low(dm, operators): - '''Compute bond orders and populations + """Compute bond orders and populations **Arguments:** @@ -131,7 +129,7 @@ def _compute_bond_orders_low(dm, operators): populations A vector with atomic populations - ''' + """ n = len(operators) bond_orders = np.zeros((n, n), float) populations = np.zeros(n, float) @@ -143,16 +141,16 @@ def _compute_bond_orders_low(dm, operators): # precompute a dot product tmp = np.dot(dm, operators[i0]) precomputed.append(tmp) - for i1 in xrange(i0+1): + for i1 in xrange(i0 + 1): # compute bond orders - bond_orders[i0, i1] = 2*np.einsum('ab,ba', precomputed[i0], precomputed[i1]) + bond_orders[i0, i1] = 2 * np.einsum('ab,ba', precomputed[i0], precomputed[i1]) bond_orders[i1, i0] = bond_orders[i0, i1] return bond_orders, populations def _compute_valences_low(dm, populations, operators): - '''Computes the valences + """Computes the valences **Arguments:** @@ -165,11 +163,11 @@ def _compute_valences_low(dm, populations, operators): operators A list of one-body operators. - ''' + """ n = len(operators) valences = np.zeros(n, float) for i in xrange(n): # valence for atom i tmp = np.dot(dm, operators[i]) - valences[i] = 2*populations[i] - 2*np.einsum('ab,ba', tmp, tmp) + valences[i] = 2 * populations[i] - 2 * np.einsum('ab,ba', tmp, tmp) return valences diff --git a/horton/meanfield/builtin.py b/horton/meanfield/builtin.py index 8d2855a9..aa2188e2 100644 --- a/horton/meanfield/builtin.py +++ b/horton/meanfield/builtin.py @@ -20,14 +20,12 @@ # -- """Built-in energy terms""" - import numpy as np -from .gridgroup import GridObservable, DF_LEVEL_LDA from horton.grid.molgrid import BeckeMolGrid from horton.grid.poisson import solve_poisson_becke from horton.utils import doc_inherit - +from .gridgroup import GridObservable, DF_LEVEL_LDA __all__ = ['RBeckeHartree', 'UBeckeHartree', 'RDiracExchange', 'UDiracExchange'] @@ -53,7 +51,8 @@ def _update_pot(self, cache, grid): """ # This only works under a few circumstances if not isinstance(grid, BeckeMolGrid): - raise TypeError('The BeckeHatree term only works for Becke-Lebedev molecular integration grids') + raise TypeError( + 'The BeckeHatree term only works for Becke-Lebedev molecular integration grids') if grid.mode != 'keep': raise TypeError('The mode option of the molecular grid must be \'keep\'.') @@ -67,7 +66,9 @@ def _update_pot(self, cache, grid): for atgrid in grid.subgrids: end = begin + atgrid.size becke_weights = grid.becke_weights[begin:end] - density_decomposition = atgrid.get_spherical_decomposition(rho[begin:end], becke_weights, lmax=self.lmax) + density_decomposition = atgrid.get_spherical_decomposition(rho[begin:end], + becke_weights, + lmax=self.lmax) hartree_decomposition = solve_poisson_becke(density_decomposition) grid.eval_decomposition(hartree_decomposition, atgrid.center, pot) begin = end @@ -77,7 +78,7 @@ def _update_pot(self, cache, grid): def compute_energy(self, cache, grid): pot = self._update_pot(cache, grid) rho = cache['rho_full'] - return 0.5*grid.integrate(pot, rho) + return 0.5 * grid.integrate(pot, rho) class RBeckeHartree(BeckeHartree): diff --git a/horton/meanfield/cext.pyx b/horton/meanfield/cext.pyx index da5aaf9b..2380f02a 100644 --- a/horton/meanfield/cext.pyx +++ b/horton/meanfield/cext.pyx @@ -20,11 +20,10 @@ # -- """C++ extensions""" - import numpy as np cimport numpy as np -np.import_array() +np.import_array() __all__ = [ 'RLibXCWrapper', 'ULibXCWrapper' @@ -41,12 +40,12 @@ cdef extern from "xc.h": ctypedef struct xc_func_info_type: int number int kind - char* name + char*name int family func_reference_type *refs[5] ctypedef struct xc_func_type: - xc_func_info_type* info + xc_func_info_type*info int xc_functional_get_number(char *name) bint xc_func_init(xc_func_type *p, int functional, int nspin) @@ -62,8 +61,8 @@ cdef extern from "xc.h": void xc_mgga_exc(xc_func_type *p, int npoint, double *rho, double *sigma, double *lapl, double *tau, double *zk) void xc_mgga_vxc(xc_func_type *p, int npoint, double *rho, double *sigma, - double *lapl, double *tau, double* vrho, double* vsigma, - double* vlapl, double* vtau); + double *lapl, double *tau, double*vrho, double*vsigma, + double*vlapl, double*vtau); double xc_hyb_exx_coef(xc_func_type *p) double xc_hyb_cam_coef(const xc_func_type *p, double *omega, double *alpha, double *beta) @@ -171,7 +170,7 @@ cdef class RLibXCWrapper(LibXCWrapper): ## LDA def compute_lda_exc(self, np.ndarray[double, ndim=1] rho not None, - np.ndarray[double, ndim=1] zk not None): + np.ndarray[double, ndim=1] zk not None): """Compute the LDA energy density. Parameters @@ -188,7 +187,7 @@ cdef class RLibXCWrapper(LibXCWrapper): xc_lda_exc(&self._func, npoint, &rho[0], &zk[0]) def compute_lda_vxc(self, np.ndarray[double, ndim=1] rho not None, - np.ndarray[double, ndim=1] vrho not None): + np.ndarray[double, ndim=1] vrho not None): """Compute the LDA potential. Parameters @@ -205,7 +204,7 @@ cdef class RLibXCWrapper(LibXCWrapper): xc_lda_vxc(&self._func, npoint, &rho[0], &vrho[0]) def compute_lda_fxc(self, np.ndarray[double, ndim=1] rho not None, - np.ndarray[double, ndim=1] v2rho2 not None): + np.ndarray[double, ndim=1] v2rho2 not None): """Compute the LDA hardness kernel. Parameters @@ -224,8 +223,8 @@ cdef class RLibXCWrapper(LibXCWrapper): ## GGA def compute_gga_exc(self, np.ndarray[double, ndim=1] rho not None, - np.ndarray[double, ndim=1] sigma not None, - np.ndarray[double, ndim=1] zk not None): + np.ndarray[double, ndim=1] sigma not None, + np.ndarray[double, ndim=1] zk not None): """Compute the GGA energy density. Parameters @@ -246,9 +245,9 @@ cdef class RLibXCWrapper(LibXCWrapper): xc_gga_exc(&self._func, npoint, &rho[0], &sigma[0], &zk[0]) def compute_gga_vxc(self, np.ndarray[double, ndim=1] rho not None, - np.ndarray[double, ndim=1] sigma not None, - np.ndarray[double, ndim=1] vrho not None, - np.ndarray[double, ndim=1] vsigma not None): + np.ndarray[double, ndim=1] sigma not None, + np.ndarray[double, ndim=1] vrho not None, + np.ndarray[double, ndim=1] vsigma not None): """Compute the GGA functional derivatives. For every input `x`, a functional derivative is computed, `vx`, stored in an array @@ -277,10 +276,10 @@ cdef class RLibXCWrapper(LibXCWrapper): xc_gga_vxc(&self._func, npoint, &rho[0], &sigma[0], &vrho[0], &vsigma[0]) def compute_gga_fxc(self, np.ndarray[double, ndim=1] rho not None, - np.ndarray[double, ndim=1] sigma not None, - np.ndarray[double, ndim=1] v2rho2 not None, - np.ndarray[double, ndim=1] v2rhosigma not None, - np.ndarray[double, ndim=1] v2sigma2 not None): + np.ndarray[double, ndim=1] sigma not None, + np.ndarray[double, ndim=1] v2rho2 not None, + np.ndarray[double, ndim=1] v2rhosigma not None, + np.ndarray[double, ndim=1] v2sigma2 not None): """Compute the GGA hardness kernel. Parameters @@ -306,15 +305,16 @@ cdef class RLibXCWrapper(LibXCWrapper): assert v2rhosigma.shape[0] == npoint assert v2sigma2.flags['C_CONTIGUOUS'] assert v2sigma2.shape[0] == npoint - xc_gga_fxc(&self._func, npoint, &rho[0], &sigma[0], &v2rho2[0], &v2rhosigma[0], &v2sigma2[0]) + xc_gga_fxc(&self._func, npoint, &rho[0], &sigma[0], &v2rho2[0], &v2rhosigma[0], + &v2sigma2[0]) ## MGGA def compute_mgga_exc(self, np.ndarray[double, ndim=1] rho not None, - np.ndarray[double, ndim=1] sigma not None, - np.ndarray[double, ndim=1] lapl not None, - np.ndarray[double, ndim=1] tau not None, - np.ndarray[double, ndim=1] zk not None): + np.ndarray[double, ndim=1] sigma not None, + np.ndarray[double, ndim=1] lapl not None, + np.ndarray[double, ndim=1] tau not None, + np.ndarray[double, ndim=1] zk not None): """Compute the MGGA energy density. Parameters @@ -343,13 +343,13 @@ cdef class RLibXCWrapper(LibXCWrapper): xc_mgga_exc(&self._func, npoint, &rho[0], &sigma[0], &lapl[0], &tau[0], &zk[0]) def compute_mgga_vxc(self, np.ndarray[double, ndim=1] rho not None, - np.ndarray[double, ndim=1] sigma not None, - np.ndarray[double, ndim=1] lapl not None, - np.ndarray[double, ndim=1] tau not None, - np.ndarray[double, ndim=1] vrho not None, - np.ndarray[double, ndim=1] vsigma not None, - np.ndarray[double, ndim=1] vlapl not None, - np.ndarray[double, ndim=1] vtau not None,): + np.ndarray[double, ndim=1] sigma not None, + np.ndarray[double, ndim=1] lapl not None, + np.ndarray[double, ndim=1] tau not None, + np.ndarray[double, ndim=1] vrho not None, + np.ndarray[double, ndim=1] vsigma not None, + np.ndarray[double, ndim=1] vlapl not None, + np.ndarray[double, ndim=1] vtau not None, ): """Compute the MGGA functional derivatives. For every input `x`, a functional derivative is computed, `vx`, stored in an array @@ -393,7 +393,6 @@ cdef class RLibXCWrapper(LibXCWrapper): xc_mgga_vxc(&self._func, npoint, &rho[0], &sigma[0], &lapl[0], &tau[0], &vrho[0], &vsigma[0], &vlapl[0], &vtau[0]) - cdef class ULibXCWrapper(LibXCWrapper): def __cinit__(self, bytes key): """Initialize a ULibXCWrapper. @@ -411,7 +410,7 @@ cdef class ULibXCWrapper(LibXCWrapper): ## LDA def compute_lda_exc(self, np.ndarray[double, ndim=2] rho not None, - np.ndarray[double, ndim=1] zk not None): + np.ndarray[double, ndim=1] zk not None): """Compute the LDA energy density. Parameters @@ -429,7 +428,7 @@ cdef class ULibXCWrapper(LibXCWrapper): xc_lda_exc(&self._func, npoint, &rho[0, 0], &zk[0]) def compute_lda_vxc(self, np.ndarray[double, ndim=2] rho not None, - np.ndarray[double, ndim=2] vrho not None): + np.ndarray[double, ndim=2] vrho not None): """Compute the LDA potentials (alpha and beta). Parameters @@ -451,8 +450,8 @@ cdef class ULibXCWrapper(LibXCWrapper): ## GGA def compute_gga_exc(self, np.ndarray[double, ndim=2] rho not None, - np.ndarray[double, ndim=2] sigma not None, - np.ndarray[double, ndim=1] zk not None): + np.ndarray[double, ndim=2] sigma not None, + np.ndarray[double, ndim=1] zk not None): """Compute the GGA energy density. Parameters @@ -476,9 +475,9 @@ cdef class ULibXCWrapper(LibXCWrapper): xc_gga_exc(&self._func, npoint, &rho[0, 0], &sigma[0, 0], &zk[0]) def compute_gga_vxc(self, np.ndarray[double, ndim=2] rho not None, - np.ndarray[double, ndim=2] sigma not None, - np.ndarray[double, ndim=2] vrho not None, - np.ndarray[double, ndim=2] vsigma not None): + np.ndarray[double, ndim=2] sigma not None, + np.ndarray[double, ndim=2] vrho not None, + np.ndarray[double, ndim=2] vsigma not None): """Compute the GGA functional derivatives. For every input `x`, a functional derivative is computed, `vx`, stored in an array @@ -514,10 +513,10 @@ cdef class ULibXCWrapper(LibXCWrapper): ## MGGA def compute_mgga_exc(self, np.ndarray[double, ndim=2] rho not None, - np.ndarray[double, ndim=2] sigma not None, - np.ndarray[double, ndim=2] lapl not None, - np.ndarray[double, ndim=2] tau not None, - np.ndarray[double, ndim=1] zk not None): + np.ndarray[double, ndim=2] sigma not None, + np.ndarray[double, ndim=2] lapl not None, + np.ndarray[double, ndim=2] tau not None, + np.ndarray[double, ndim=1] zk not None): """Compute the MGGA energy density. Parameters @@ -551,13 +550,13 @@ cdef class ULibXCWrapper(LibXCWrapper): &tau[0, 0], &zk[0]) def compute_mgga_vxc(self, np.ndarray[double, ndim=2] rho not None, - np.ndarray[double, ndim=2] sigma not None, - np.ndarray[double, ndim=2] lapl not None, - np.ndarray[double, ndim=2] kin not None, - np.ndarray[double, ndim=2] vrho not None, - np.ndarray[double, ndim=2] vsigma not None, - np.ndarray[double, ndim=2] vlapl not None, - np.ndarray[double, ndim=2] vtau not None): + np.ndarray[double, ndim=2] sigma not None, + np.ndarray[double, ndim=2] lapl not None, + np.ndarray[double, ndim=2] kin not None, + np.ndarray[double, ndim=2] vrho not None, + np.ndarray[double, ndim=2] vsigma not None, + np.ndarray[double, ndim=2] vlapl not None, + np.ndarray[double, ndim=2] vtau not None): """Compute the MGGA functional derivatives. For every input `x`, a functional derivative is computed, `vx`, stored in an array @@ -572,7 +571,7 @@ cdef class ULibXCWrapper(LibXCWrapper): lapl : np.ndarray, shape=(npoint, 2) The laplacian of the alpha and beta density. tau : np.ndarray, shape=(npoint, 2) - The alph and beta kinetic energy density. + The alpha and beta kinetic energy density. vrho : np.ndarray, shape=(npoint, 2) The derivative of the energy w.r.t. the alpha and beta electron density. vsigma : np.ndarray, shape=(npoint, 3) diff --git a/horton/meanfield/convergence.py b/horton/meanfield/convergence.py index 36c51f79..f6bb2ad7 100644 --- a/horton/meanfield/convergence.py +++ b/horton/meanfield/convergence.py @@ -18,25 +18,23 @@ # along with this program; if not, see # # -- -'''Evaluation of convergence criteria +"""Evaluation of convergence criteria These implementations are independent of the SCF algorithms and can be used to double check convergence. -''' - +""" import numpy as np from .utils import compute_commutator - __all__ = [ 'convergence_error_eigen', 'convergence_error_commutator', ] def convergence_error_eigen(ham, overlap, *orbs): - '''Compute the self-consistency error + """Compute the self-consistency error Parameters ---------- @@ -53,7 +51,7 @@ def convergence_error_eigen(ham, overlap, *orbs): error: float The SCF error. This measure (not this function) is also used in some SCF algorithms to check for convergence. - ''' + """ if len(orbs) != ham.ndm: raise TypeError('Expecting %i sets of orbitals, got %i.' % (ham.ndm, len(orbs))) dms = [orb.to_dm() for orb in orbs] @@ -67,7 +65,7 @@ def convergence_error_eigen(ham, overlap, *orbs): def convergence_error_commutator(ham, overlap, *dms): - '''Compute the commutator error + """Compute the commutator error Parameters ---------- @@ -83,15 +81,14 @@ def convergence_error_commutator(ham, overlap, *dms): error: float The commutator error. This measure (not this function) is also used in some SCF algorithms to check for convergence. - ''' + """ if len(dms) != ham.ndm: raise TypeError('Expecting %i density matrices, got %i.' % (ham.ndm, len(dms))) ham.reset(*dms) focks = [np.zeros(dms[0].shape) for i in xrange(ham.ndm)] ham.compute_fock(*focks) - error = 0.0 errorsq = 0.0 for i in xrange(ham.ndm): commutator = compute_commutator(dms[i], focks[i], overlap) errorsq += np.einsum('ab,ab', commutator, commutator) - return errorsq**0.5 + return errorsq ** 0.5 diff --git a/horton/meanfield/gridgroup.py b/horton/meanfield/gridgroup.py index ba01d9d0..11464fcd 100644 --- a/horton/meanfield/gridgroup.py +++ b/horton/meanfield/gridgroup.py @@ -20,17 +20,14 @@ # -- """Container for observables involving numerical integration""" - -from .observable import Observable from horton.utils import doc_inherit - +from .observable import Observable __all__ = [ 'DF_LEVEL_LDA', 'DF_LEVEL_GGA', 'DF_LEVEL_MGGA', 'GridGroup', 'RGridGroup', 'UGridGroup', 'GridObservable' ] - # Define a few `levels` of density functionals. These are used to determine # which properties need to be computed when using certain functionals. For LDA, # only the density is needed. For GGA the density and the gradient are needed. @@ -357,7 +354,7 @@ def _update_grid_data(self, cache): if self.df_level >= DF_LEVEL_LDA: rho_full, new = cache.load('rho_full', alloc=self.grid.size) if new: - rho_full[:] = 2*all_alpha[:, 0] + rho_full[:] = 2 * all_alpha[:, 0] if self.df_level >= DF_LEVEL_GGA: grad_rho_full, new = cache.load('grad_rho_full', alloc=(self.grid.size, 3)) if new: @@ -365,14 +362,14 @@ def _update_grid_data(self, cache): grad_rho_full *= 2 sigma_full, new = cache.load('sigma_full', alloc=self.grid.size) if new: - sigma_full[:] = 4*(all_alpha[:, 1:4]**2).sum(axis=1) + sigma_full[:] = 4 * (all_alpha[:, 1:4] ** 2).sum(axis=1) if self.df_level >= DF_LEVEL_MGGA: lapl_full, new = cache.load('lapl_full', alloc=self.grid.size) if new: - lapl_full[:] = 2*all_alpha[:, 4] + lapl_full[:] = 2 * all_alpha[:, 4] tau_full, new = cache.load('tau_full', alloc=self.grid.size) if new: - tau_full[:] = 2*all_alpha[:, 5] + tau_full[:] = 2 * all_alpha[:, 5] @doc_inherit(GridGroup) def _update_delta_grid_data(self, cache): @@ -382,17 +379,17 @@ def _update_delta_grid_data(self, cache): delta_rho_full, new = cache.load('delta_rho_full', alloc=self.grid.size, tags='d') if new: - delta_rho_full[:] = 2*delta_all_alpha[:, 0] + delta_rho_full[:] = 2 * delta_all_alpha[:, 0] if self.df_level >= DF_LEVEL_GGA: delta_grad_rho_full, new = cache.load('delta_grad_rho_full', alloc=(self.grid.size, 3), tags='d') if new: - delta_grad_rho_full[:] = 2*delta_all_alpha[:, 1:4] + delta_grad_rho_full[:] = 2 * delta_all_alpha[:, 1:4] delta_sigma_full, new = cache.load('delta_sigma_full', alloc=self.grid.size, tags='d') if new: grad_rho_full = cache['grad_rho_full'] - delta_sigma_full[:] = 2*(delta_grad_rho_full*grad_rho_full).sum(axis=1) + delta_sigma_full[:] = 2 * (delta_grad_rho_full * grad_rho_full).sum(axis=1) @doc_inherit(Observable) def add_dot_hessian(self, cache, output_alpha): @@ -503,9 +500,9 @@ def _update_grid_data(self, cache): grad_rho_full += all_beta[:, 1:4] sigma_all, new = cache.load('sigma_all', alloc=(self.grid.size, 3)) if new: - sigma_all[:, 0] = (all_alpha[:, 1:4]**2).sum(axis=1) - sigma_all[:, 1] = (all_alpha[:, 1:4]*all_beta[:, 1:4]).sum(axis=1) - sigma_all[:, 2] = (all_beta[:, 1:4]**2).sum(axis=1) + sigma_all[:, 0] = (all_alpha[:, 1:4] ** 2).sum(axis=1) + sigma_all[:, 1] = (all_alpha[:, 1:4] * all_beta[:, 1:4]).sum(axis=1) + sigma_all[:, 2] = (all_beta[:, 1:4] ** 2).sum(axis=1) if self.df_level >= DF_LEVEL_MGGA: lapl_both, new = cache.load('lapl_both', alloc=(self.grid.size, 2)) if new: diff --git a/horton/meanfield/guess.py b/horton/meanfield/guess.py index 934ab12e..1bcf9d66 100644 --- a/horton/meanfield/guess.py +++ b/horton/meanfield/guess.py @@ -18,14 +18,13 @@ # along with this program; if not, see # # -- -'''Initial guesses for wavefunctions''' - +"""Initial guesses for wavefunctions""" __all__ = ['guess_core_hamiltonian'] def guess_core_hamiltonian(overlap, core, *orbs): - '''Guess the orbitals by diagonalizing a core Hamiltonian. + """Guess the orbitals by diagonalizing a core Hamiltonian. Parameters ---------- @@ -38,7 +37,7 @@ def guess_core_hamiltonian(overlap, core, *orbs): A list of Orbitals objects (output arguments) This method only modifies the expansion coefficients and the orbital energies. - ''' + """ print('5: Performing a core Hamiltonian guess.') if len(orbs) == 0: diff --git a/horton/meanfield/hamiltonian.py b/horton/meanfield/hamiltonian.py index 4213da7b..0f0b3a7d 100644 --- a/horton/meanfield/hamiltonian.py +++ b/horton/meanfield/hamiltonian.py @@ -20,11 +20,9 @@ # -- """Mean-field DFT/HF Hamiltonian data structures""" - from horton.cache import Cache from horton.utils import doc_inherit - __all__ = [ 'REffHam', 'UEffHam' ] @@ -169,7 +167,7 @@ def compute_dot_hessian(self, *outputs): A list of output TwoIndex objects in which the dot product of the energy Hessian with the delta density matrices is stored. - Note that the result must be multiplied by the feactor deriv_scale squared in + Note that the result must be multiplied by the factor deriv_scale squared in order to obtain the proper second order derivative. This is due to conventions related to the definition of the Fock matrix. """ @@ -198,7 +196,8 @@ def reset(self, in_dm_alpha): def reset_delta(self, in_delta_dm_alpha): self.cache.clear(tags='d') # Take a copy of the input alpha delta density matrix in the cache. - delta_dm_alpha = self.cache.load('delta_dm_alpha', alloc=in_delta_dm_alpha.shape, tags='d')[0] + delta_dm_alpha = self.cache.load('delta_dm_alpha', alloc=in_delta_dm_alpha.shape, tags='d')[ + 0] delta_dm_alpha[:] = in_delta_dm_alpha @doc_inherit(EffHam) @@ -228,7 +227,8 @@ def reset(self, in_dm_alpha, in_dm_beta): def reset_delta(self, in_delta_dm_alpha, in_delta_dm_beta): self.cache.clear(tags='d') # Take a copy of the input alpha and beta delta density matrix in the cache. - delta_dm_alpha = self.cache.load('delta_dm_alpha', alloc=in_delta_dm_alpha.shape, tags='d')[0] + delta_dm_alpha = self.cache.load('delta_dm_alpha', alloc=in_delta_dm_alpha.shape, tags='d')[ + 0] delta_dm_alpha[:] = in_delta_dm_alpha delta_dm_beta = self.cache.load('delta_dm_beta', alloc=in_delta_dm_beta.shape, tags='d')[0] delta_dm_beta[:] = in_delta_dm_beta diff --git a/horton/meanfield/indextransform.py b/horton/meanfield/indextransform.py index b03339d7..e5f73ff4 100644 --- a/horton/meanfield/indextransform.py +++ b/horton/meanfield/indextransform.py @@ -20,11 +20,11 @@ # -- """Utility functions for orbital modifications.""" - import numpy as np __all__ = ['four_index_transform', 'transform_integrals', 'split_core_active', - 'four_index_transform_cholesky', 'transform_integrals_cholesky', 'split_core_active_cholesky'] + 'four_index_transform_cholesky', 'transform_integrals_cholesky', + 'split_core_active_cholesky'] def _parse_four_index_transform_orbs(orb0, orb1, orb2, orb3): @@ -61,7 +61,8 @@ def _parse_four_index_transform_orbs(orb0, orb1, orb2, orb3): orb3 = orb2 elif orb1 is None or orb2 is None or orb3 is None: # the only other allowed case is no symmetry. - raise TypeError('It is not clear how to interpret the optional arguments orb1, orb2 and orb3.') + raise TypeError( + 'It is not clear how to interpret the optional arguments orb1, orb2 and orb3.') return orb0, orb1, orb2, orb3 @@ -70,7 +71,7 @@ def four_index_transform(ao_integrals, orb0, orb1=None, orb2=None, orb3=None, me Parameters ---------- - oa_integrals + ao_integrals A four-index array with integrals over atomic orbitals. orb0 A Orbitalas object with molecular orbitals @@ -98,16 +99,16 @@ def four_index_transform(ao_integrals, orb0, orb1=None, orb2=None, orb3=None, me elif method == 'tensordot': # because the way tensordot works, the order of the dot products is # not according to literature conventions. - result[:] = np.tensordot(ao_integrals, orb0.coeffs, axes=([0],[0])) - result[:] = np.tensordot(result, orb1.coeffs, axes=([0],[0])) - result[:] = np.tensordot(result, orb2.coeffs, axes=([0],[0])) - result[:] = np.tensordot(result, orb3.coeffs, axes=([0],[0])) + result[:] = np.tensordot(ao_integrals, orb0.coeffs, axes=([0], [0])) + result[:] = np.tensordot(result, orb1.coeffs, axes=([0], [0])) + result[:] = np.tensordot(result, orb2.coeffs, axes=([0], [0])) + result[:] = np.tensordot(result, orb3.coeffs, axes=([0], [0])) else: raise ValueError('The method must either be \'einsum\' or \'tensordot\'.') # Symmetrize the result - result[:] = result + result.transpose(1,0,3,2) - result[:] = result + result.transpose(2,3,0,1) - result[:] = result + result.transpose(0,3,2,1) + result[:] = result + result.transpose(1, 0, 3, 2) + result[:] = result + result.transpose(2, 3, 0, 1) + result[:] = result + result.transpose(0, 3, 2, 1) result /= 8 return result @@ -131,9 +132,9 @@ def transform_integrals(one, two, method='tensordot', *orbs): list of transformed 1- and 2-electron integrals according to a list of Orbitals instances. We distinguish between: - * restricted orbitals: only one Ortbials instance (alpha=beta), returns + * restricted orbitals: only one Orbitals instance (alpha=beta), returns one set of 1- and 2-body integrals - * unrestricted orbitals: two Ortbials instances (alpha, beta), returns + * unrestricted orbitals: two Orbitals instances (alpha, beta), returns two sets of 1-body, and three sets of 2-body integrals: - one_{alpha,alpha} and @@ -170,7 +171,7 @@ def split_core_active(one, two, ecore, orb, ncore, nactive, indextrans='tensordo molecular system, this is the nuclear nuclear repulsion. orb The MO expansion coefficients. An Expansion instance. If None, - integrals are assued to be already transformed into the mo basis + integrals are assumed to be already transformed into the mo basis and no transformation is carried out in this function. ncore The number of frozen core orbitals (int) @@ -206,9 +207,9 @@ def split_core_active(one, two, ecore, orb, ncore, nactive, indextrans='tensordo # Core energy # One body term - ecore += 2*np.trace(one_mo[:ncore, :ncore]) + ecore += 2 * np.trace(one_mo[:ncore, :ncore]) # Direct part - ecore += 2*np.einsum('abab', two_mo[:ncore, :ncore, :ncore, :ncore]) + ecore += 2 * np.einsum('abab', two_mo[:ncore, :ncore, :ncore, :ncore]) # Exchange part ecore -= np.einsum('abba', two_mo[:ncore, :ncore, :ncore, :ncore]) @@ -216,7 +217,7 @@ def split_core_active(one, two, ecore, orb, ncore, nactive, indextrans='tensordo norb = ncore + nactive one_mo_small = one_mo[ncore:norb, ncore:norb].copy() # Direct part - one_mo_small += 2*np.einsum('abcb->ac', two_mo[ncore:norb, :ncore, ncore:norb, :ncore]) + one_mo_small += 2 * np.einsum('abcb->ac', two_mo[ncore:norb, :ncore, ncore:norb, :ncore]) # Exchange part one_mo_small -= np.einsum('abbc->ac', two_mo[ncore:norb, :ncore, :ncore, ncore:norb]) @@ -231,7 +232,7 @@ def four_index_transform_cholesky(ao_integrals, orb0, orb1=None, method='tensord Parameters ---------- - oa_integrals : np.ndarray, shape=(nvec, nbasis, nbasis) + ao_integrals : np.ndarray, shape=(nvec, nbasis, nbasis) Cholesky decomposition of four-index object in the AO basis. orb0 A Orbitals object with molecular orbitals. @@ -242,13 +243,12 @@ def four_index_transform_cholesky(ao_integrals, orb0, orb1=None, method='tensord """ if orb1 is None: orb1 = orb0 - result = np.zeros(ao_integrals.shape) if method == 'einsum': result = np.einsum('ai,kac->kic', orb0.coeffs, ao_integrals) result = np.einsum('cj,kic->kij', orb1.coeffs, result) elif method == 'tensordot': - result = np.tensordot(ao_integrals, orb0.coeffs, axes=([1],[0])) - result = np.tensordot(result, orb1.coeffs, axes=([1],[0])) + result = np.tensordot(ao_integrals, orb0.coeffs, axes=([1], [0])) + result = np.tensordot(result, orb1.coeffs, axes=([1], [0])) else: raise ValueError('The method must either be \'einsum\' or \'tensordot\'.') return result @@ -273,7 +273,7 @@ def transform_integrals_cholesky(one, two, method='tensordot', *orbs): list of transformed 1- and 2-electron integrals according to a list of Orbitals instances. We distinguish between: - * restricted orbitals: only one Ortbials instance (alpha=beta), returns + * restricted orbitals: only one Orbitals instance (alpha=beta), returns one set of 1- and 2-body integrals * unrestricted orbitals: two expansion instances (alpha, beta), returns two sets of 1-body, and two sets of 2-body integrals. @@ -301,7 +301,7 @@ def split_core_active_cholesky(one, two, ecore, orb, ncore, nactive, indextrans= molecular system, this is the nuclear nuclear repulsion. orb The MO expansion coefficients. An Expansion instance. If None, - integrals are assued to be already transformed into the mo basis + integrals are assumed to be already transformed into the mo basis and no transformation is carried out in this function. ncore The number of frozen core orbitals (int) @@ -337,9 +337,9 @@ def split_core_active_cholesky(one, two, ecore, orb, ncore, nactive, indextrans= # Core energy # One body term - ecore += 2*np.trace(one_mo[:ncore, :ncore]) + ecore += 2 * np.trace(one_mo[:ncore, :ncore]) # Direct part - ecore += 2*np.einsum('xaa,xbb', two_mo[:, :ncore, :ncore], two_mo[:, :ncore, :ncore]) + ecore += 2 * np.einsum('xaa,xbb', two_mo[:, :ncore, :ncore], two_mo[:, :ncore, :ncore]) # Exchange part ecore -= np.einsum('xab,xba', two_mo[:, :ncore, :ncore], two_mo[:, :ncore, :ncore]) @@ -347,9 +347,11 @@ def split_core_active_cholesky(one, two, ecore, orb, ncore, nactive, indextrans= norb = ncore + nactive one_mo_small = one_mo[ncore:norb, ncore:norb].copy() # Direct part - one_mo_small += 2*np.einsum('xac,xbb->ac', two_mo[:, ncore:norb, ncore:norb], two_mo[:, :ncore, :ncore]) + one_mo_small += 2 * np.einsum('xac,xbb->ac', two_mo[:, ncore:norb, ncore:norb], + two_mo[:, :ncore, :ncore]) # Exchange part - one_mo_small -= np.einsum('xab,xbc->ac', two_mo[:, ncore:norb, :ncore], two_mo[:, :ncore, ncore:norb]) + one_mo_small -= np.einsum('xab,xbc->ac', two_mo[:, ncore:norb, :ncore], + two_mo[:, :ncore, ncore:norb]) # Active space two-body integrals two_mo_small = two_mo[:, ncore:norb, ncore:norb] diff --git a/horton/meanfield/libxc.py b/horton/meanfield/libxc.py index 1efcb6db..d7c01243 100644 --- a/horton/meanfield/libxc.py +++ b/horton/meanfield/libxc.py @@ -20,12 +20,10 @@ # -- """Interface to LDA, GGA and hybrid functionals from LibXC""" - from horton.utils import doc_inherit +from .cext import RLibXCWrapper, ULibXCWrapper from .gridgroup import GridObservable, DF_LEVEL_LDA, \ DF_LEVEL_GGA, DF_LEVEL_MGGA -from .cext import RLibXCWrapper, ULibXCWrapper - __all__ = [ 'LibXCEnergy', @@ -56,7 +54,8 @@ def __init__(self, name): self._name = name self._libxc_wrapper = self.LibXCWrapper(name) GridObservable.__init__(self, 'libxc_%s' % name) - self.biblio.append(['marques2012', 'using LibXC, the library of exchange and correlation functionals']) + self.biblio.append( + ['marques2012', 'using LibXC, the library of exchange and correlation functionals']) class RLibXCLDA(LibXCEnergy): @@ -101,7 +100,7 @@ def add_dot(self, cache, grid, dots_alpha): kernel, new = cache.load('kernel_libxc_%s_alpha' % self._name, alloc=grid.size) if new: self._libxc_wrapper.compute_lda_fxc(cache['rho_full'], kernel) - dots_alpha[:, 0] += kernel*cache['delta_rho_full'] + dots_alpha[:, 0] += kernel * cache['delta_rho_full'] class ULibXCLDA(LibXCEnergy): @@ -163,7 +162,7 @@ def compute_energy(self, cache, grid): return grid.integrate(edens, rho_full) def _compute_dpot_spot(self, cache, grid): - """Helper function to compute potential resutls with LibXC. + """Helper function to compute potential results with LibXC. This is needed for add_pot and add_dot. @@ -199,7 +198,7 @@ def add_pot(self, cache, grid, pots_alpha): if new: my_gga_pot_alpha[:, 0] = dpot grad_rho = cache['grad_rho_full'] - my_gga_pot_alpha[:, 1:4] = grad_rho*spot.reshape(-1, 1) + my_gga_pot_alpha[:, 1:4] = grad_rho * spot.reshape(-1, 1) my_gga_pot_alpha[:, 1:4] *= 2 # Add to the output argument @@ -263,14 +262,14 @@ def add_dot(self, cache, grid, dots_alpha): delta_rho = cache['delta_rho_full'] delta_grad_rho = cache['delta_grad_rho_full'] delta_sigma = cache['delta_sigma_full'] - my_gga_dot_alpha[:, 0] = kernel_dd*delta_rho + kernel_ds*delta_sigma - my_gga_dot_alpha[:, 1:4] = 2*(kernel_ds*delta_rho + - kernel_ss*delta_sigma).reshape(-1, 1) * \ + my_gga_dot_alpha[:, 0] = kernel_dd * delta_rho + kernel_ds * delta_sigma + my_gga_dot_alpha[:, 1:4] = 2 * (kernel_ds * delta_rho + + kernel_ss * delta_sigma).reshape(-1, 1) * \ grad_rho # the easy-to-forget contribution spot = self._compute_dpot_spot(cache, grid)[1] - my_gga_dot_alpha[:, 1:4] += 2*spot.reshape(-1, 1)*delta_grad_rho + my_gga_dot_alpha[:, 1:4] += 2 * spot.reshape(-1, 1) * delta_grad_rho # Add to the output argument dots_alpha[:, :4] += my_gga_dot_alpha @@ -334,15 +333,15 @@ def add_pot(self, cache, grid, pots_alpha, pots_beta): alloc=(grid.size, 4)) if new: my_gga_pot_alpha[:, 0] = dpot_both[:, 0] - my_gga_pot_alpha[:, 1:4] = (2*spot_all[:, 0].reshape(-1, 1))*grad_alpha - my_gga_pot_alpha[:, 1:4] += (spot_all[:, 1].reshape(-1, 1))*grad_beta + my_gga_pot_alpha[:, 1:4] = (2 * spot_all[:, 0].reshape(-1, 1)) * grad_alpha + my_gga_pot_alpha[:, 1:4] += (spot_all[:, 1].reshape(-1, 1)) * grad_beta my_gga_pot_beta, new = cache.load('gga_pot_libxc_%s_beta' % self._name, alloc=(grid.size, 4)) if new: my_gga_pot_beta[:, 0] = dpot_both[:, 1] - my_gga_pot_beta[:, 1:4] = (2*spot_all[:, 2].reshape(-1, 1))*grad_beta - my_gga_pot_beta[:, 1:4] += (spot_all[:, 1].reshape(-1, 1))*grad_alpha + my_gga_pot_beta[:, 1:4] = (2 * spot_all[:, 2].reshape(-1, 1)) * grad_beta + my_gga_pot_beta[:, 1:4] += (spot_all[:, 1].reshape(-1, 1)) * grad_alpha pots_alpha[:, :4] += my_gga_pot_alpha pots_beta[:, :4] += my_gga_pot_beta @@ -433,7 +432,7 @@ def add_pot(self, cache, grid, pots_alpha): if new: my_mgga_pot_alpha[:, 0] = dpot grad_rho = cache['grad_rho_full'] - my_mgga_pot_alpha[:, 1:4] = grad_rho*spot.reshape(-1, 1) + my_mgga_pot_alpha[:, 1:4] = grad_rho * spot.reshape(-1, 1) my_mgga_pot_alpha[:, 1:4] *= 2 my_mgga_pot_alpha[:, 4] = lpot my_mgga_pot_alpha[:, 5] = tpot @@ -518,8 +517,8 @@ def add_pot(self, cache, grid, pots_alpha, pots_beta): alloc=(grid.size, 6)) if new: my_mgga_pot_alpha[:, 0] = dpot_both[:, 0] - my_mgga_pot_alpha[:, 1:4] = (2*spot_all[:, 0].reshape(-1, 1))*grad_alpha - my_mgga_pot_alpha[:, 1:4] += (spot_all[:, 1].reshape(-1, 1))*grad_beta + my_mgga_pot_alpha[:, 1:4] = (2 * spot_all[:, 0].reshape(-1, 1)) * grad_alpha + my_mgga_pot_alpha[:, 1:4] += (spot_all[:, 1].reshape(-1, 1)) * grad_beta my_mgga_pot_alpha[:, 4] = lpot_both[:, 0] my_mgga_pot_alpha[:, 5] = tpot_both[:, 0] @@ -527,8 +526,8 @@ def add_pot(self, cache, grid, pots_alpha, pots_beta): alloc=(grid.size, 6)) if new: my_mgga_pot_beta[:, 0] = dpot_both[:, 1] - my_mgga_pot_beta[:, 1:4] = (2*spot_all[:, 2].reshape(-1, 1))*grad_beta - my_mgga_pot_beta[:, 1:4] += (spot_all[:, 1].reshape(-1, 1))*grad_alpha + my_mgga_pot_beta[:, 1:4] = (2 * spot_all[:, 2].reshape(-1, 1)) * grad_beta + my_mgga_pot_beta[:, 1:4] += (spot_all[:, 1].reshape(-1, 1)) * grad_alpha my_mgga_pot_beta[:, 4] = lpot_both[:, 1] my_mgga_pot_beta[:, 5] = tpot_both[:, 1] diff --git a/horton/meanfield/observable.py b/horton/meanfield/observable.py index 3397a5ba..67d68b27 100644 --- a/horton/meanfield/observable.py +++ b/horton/meanfield/observable.py @@ -20,12 +20,10 @@ # -- """Base classes for energy terms and other observables of the wavefunction""" - import numpy as np from horton.utils import doc_inherit - __all__ = [ 'compute_dm_full', 'Observable', @@ -205,8 +203,8 @@ def contract_direct(op, dm): """ if op.ndim == 3: # Cholesky decomposition - tmp = np.tensordot(op, dm, axes=([(1,2),(1,0)])) - return np.tensordot(op, tmp, [0,0]) + tmp = np.tensordot(op, dm, axes=([(1, 2), (1, 0)])) + return np.tensordot(op, tmp, [0, 0]) elif op.ndim == 4: # Normal case return np.einsum('abcd,bd->ac', op, dm) @@ -353,8 +351,8 @@ def contract_exchange(op, dm): """ if op.ndim == 3: # Cholesky decomposition - tmp = np.tensordot(op, dm, axes=([1,1])) - return np.tensordot(op, tmp, ([0,2],[0,2])) + tmp = np.tensordot(op, dm, axes=([1, 1])) + return np.tensordot(op, tmp, ([0, 2], [0, 2])) elif op.ndim == 4: return np.einsum('abcd,cb->ad', op, dm) else: @@ -406,12 +404,12 @@ def compute_energy(self, cache): def add_fock(self, cache, fock_alpha): self._update_exchange(cache) exchange_alpha = cache['op_%s_alpha' % self.label] - fock_alpha -= self.fraction*exchange_alpha + fock_alpha -= self.fraction * exchange_alpha @doc_inherit(Observable) def add_dot_hessian(self, cache, output_alpha): delta_dm_alpha = cache.load('delta_dm_alpha') - output_alpha -= (0.5*self.fraction)*contract_exchange(self.op_alpha, delta_dm_alpha) + output_alpha -= (0.5 * self.fraction) * contract_exchange(self.op_alpha, delta_dm_alpha) class UExchangeTerm(Observable): @@ -455,7 +453,7 @@ def _update_exchange(self, cache): # beta dm_beta = cache['dm_beta'] exchange_beta, new = cache.load('op_%s_beta' % self.label, - alloc=dm_beta.shape) + alloc=dm_beta.shape) if new: exchange_beta[:] = contract_exchange(self.op_beta, dm_beta) @@ -466,20 +464,20 @@ def compute_energy(self, cache): exchange_beta = cache['op_%s_beta' % self.label] dm_alpha = cache['dm_alpha'] dm_beta = cache['dm_beta'] - return (-0.5*self.fraction)*np.einsum('ab,ba', exchange_alpha, dm_alpha) + \ - (-0.5*self.fraction)*np.einsum('ab,ba', exchange_beta, dm_beta) + return (-0.5 * self.fraction) * np.einsum('ab,ba', exchange_alpha, dm_alpha) + \ + (-0.5 * self.fraction) * np.einsum('ab,ba', exchange_beta, dm_beta) @doc_inherit(Observable) def add_fock(self, cache, fock_alpha, fock_beta): self._update_exchange(cache) exchange_alpha = cache['op_%s_alpha' % self.label] - fock_alpha -= self.fraction*exchange_alpha + fock_alpha -= self.fraction * exchange_alpha exchange_beta = cache['op_%s_beta' % self.label] - fock_beta -= self.fraction*exchange_beta + fock_beta -= self.fraction * exchange_beta @doc_inherit(Observable) def add_dot_hessian(self, cache, output_alpha, output_beta): delta_dm_alpha = cache.load('delta_dm_alpha') - output_alpha -= self.fraction*contract_exchange(self.op_alpha, delta_dm_alpha) + output_alpha -= self.fraction * contract_exchange(self.op_alpha, delta_dm_alpha) delta_dm_beta = cache.load('delta_dm_beta') - output_beta -= self.fraction*contract_exchange(self.op_beta, delta_dm_beta) + output_beta -= self.fraction * contract_exchange(self.op_beta, delta_dm_beta) diff --git a/horton/meanfield/occ.py b/horton/meanfield/occ.py index 8543dfa0..91b4321e 100644 --- a/horton/meanfield/occ.py +++ b/horton/meanfield/occ.py @@ -20,35 +20,33 @@ # -- """Occupation number models""" - import numpy as np +from horton.constants import boltzmann from horton.exceptions import ElectronCountError from horton.quadprog import find_1d_root -from horton.constants import boltzmann from horton.utils import doc_inherit - __all__ = [ 'FixedOccModel', 'AufbauOccModel', 'AufbauSpinOccModel', 'FermiOccModel', ] class OccModel(object): - '''Base class for the occupation models''' + """Base class for the occupation models""" def assign(self, *orbs): - '''Assign occupation numbers to the Orbitals objects + """Assign occupation numbers to the Orbitals objects **Arguments:** orb_alpha, orb_beta, ... Orbitals objects - ''' + """ raise NotImplementedError def check_dms(self, overlap, *dms, **kwargs): - '''Test if the given density matrices contain the right number of electrons + """Test if the given density matrices contain the right number of electrons **Arguments:** @@ -62,7 +60,7 @@ def check_dms(self, overlap, *dms, **kwargs): eps (default=1e-4) The allowed deviation. - ''' + """ raise NotImplementedError @@ -90,20 +88,20 @@ def check_dms(self, overlap, *dms, **kwargs): class AufbauOccModel(OccModel): - '''The standard Aufbau occupation number model. + """The standard Aufbau occupation number model. This model just fills up all the lowest lying orbitals. When the total number of electrons in one channel is fractional, the fractional electron is put in the HOMO orbital. - ''' + """ def __init__(self, *noccs): - ''' + """ **Arguments:** nalpha, nbeta, ... The number of electrons in each channel. - ''' + """ for nocc in noccs: if nocc < 0: raise ElectronCountError('Negative number of electrons is not allowed.') @@ -118,7 +116,8 @@ def assign(self, *orbs): raise TypeError('Expected %i Orbitals objects, got %i.' % (len(self.nocc), len(orbs))) for orb, nocc in zip(orbs, self.noccs): if orb.nfn < nocc: - raise ElectronCountError('The number of orbitals must not be lower than the number of alpha or beta electrons.') + raise ElectronCountError( + 'The number of orbitals must not be lower than the number of alpha or beta electrons.') # It is assumed that the orbitals are sorted from low to high energy. if nocc == int(nocc): orb.occupations[:nocc] = 1.0 @@ -140,14 +139,15 @@ def check_dms(self, overlap, *dms, **kwargs): class AufbauSpinOccModel(OccModel): - '''This Aufbau model only applies to unrestricted wavefunctions''' + """This Aufbau model only applies to unrestricted wavefunctions""" + def __init__(self, nel): - ''' + """ **Arguments:** nel The total number of electrons (alpha + beta) - ''' + """ if nel <= 0: raise ElectronCountError('The number of electron must be positive.') self.nel = nel @@ -175,9 +175,10 @@ def check_dms(self, overlap, *dms, **kwargs): class FermiOccModel(AufbauOccModel): - '''Fermi smearing electron occupation model''' + """Fermi smearing electron occupation model""" + def __init__(self, *noccs, **kwargs): - r''' + r""" **Arguments:** nalpha, nbeta, ... @@ -209,7 +210,7 @@ def __init__(self, *noccs, **kwargs): where :math:`n_\text{occ}` can be set per (spin) channel. This is only a part of the methodology presented in [rabuck1999]_. - ''' + """ temperature = kwargs.pop('temperature', 300) eps = kwargs.pop('eps', 1e-8) if len(kwargs) > 0: @@ -221,28 +222,29 @@ def __init__(self, *noccs, **kwargs): self.temperature = float(temperature) self.eps = eps AufbauOccModel.__init__(self, *noccs) - self.biblio.append(['rabuck1999', 'the Fermi broading method to assign orbital occupations']) + self.biblio.append( + ['rabuck1999', 'the Fermi broading method to assign orbital occupations']) @doc_inherit(OccModel) def assign(self, *orbs): - beta = 1.0/self.temperature/boltzmann + beta = 1.0 / self.temperature / boltzmann for orb, nocc in zip(orbs, self.noccs): def get_occ(mu): occ = np.zeros(orb.nfn) mask = orb.energies < mu - e = np.exp(beta*(orb.energies[mask] - mu)) - occ[mask] = 1.0/(e + 1.0) + e = np.exp(beta * (orb.energies[mask] - mu)) + occ[mask] = 1.0 / (e + 1.0) mask = ~mask - e = np.exp(-beta*(orb.energies[mask] - mu)) - occ[mask] = e/(1.0 + e) + e = np.exp(-beta * (orb.energies[mask] - mu)) + occ[mask] = e / (1.0 + e) return occ def error(mu): return nocc - get_occ(mu).sum() - mu0 = orb.energies[orb.nfn/2] + mu0 = orb.energies[orb.nfn / 2] error0 = error(mu0) - delta = 0.1*(1 - 2*(error0 < 0)) + delta = 0.1 * (1 - 2 * (error0 < 0)) for i in xrange(100): mu1 = mu0 + delta error1 = error(mu1) diff --git a/horton/meanfield/orbitals.py b/horton/meanfield/orbitals.py index ae2ae953..6141d2c5 100644 --- a/horton/meanfield/orbitals.py +++ b/horton/meanfield/orbitals.py @@ -20,7 +20,6 @@ # -- """Orbital class.""" - import numpy as np from scipy.linalg import eigh @@ -93,11 +92,11 @@ def _get_occupations(self): def __eq__(self, other): """Compare self with other.""" return isinstance(other, Orbitals) and \ - other.nbasis == self.nbasis and \ - other.nfn == self.nfn and \ - (other._coeffs == self._coeffs).all() and \ - (other._energies == self._energies).all() and \ - (other._occupations == self._occupations).all() + other.nbasis == self.nbasis and \ + other.nfn == self.nfn and \ + (other._coeffs == self._coeffs).all() and \ + (other._energies == self._energies).all() and \ + (other._occupations == self._occupations).all() @classmethod def from_hdf5(cls, grp): @@ -181,7 +180,7 @@ def permute_orbitals(self, permutation): permutation : np.ndarray, dtype=int, shape=(nbasis,) An array that defines the new order of the orbitals. """ - self._coeffs[:] = self.coeffs[:,permutation] + self._coeffs[:] = self.coeffs[:, permutation] def change_basis_signs(self, signs): """Correct for different sign conventions of the basis functions. @@ -191,7 +190,7 @@ def change_basis_signs(self, signs): signs : np.ndarray, dtype=int, shape=(nbasis,) An array with sign changes indicated by +1 and -1. """ - self._coeffs *= signs.reshape(-1,1) + self._coeffs *= signs.reshape(-1, 1) def check_normalization(self, overlap, eps=1e-4): """Check that the occupied orbitals are normalized. @@ -208,9 +207,9 @@ def check_normalization(self, overlap, eps=1e-4): for i in xrange(self.nfn): if self.occupations[i] == 0: continue - norm = np.dot(self._coeffs[:,i], np.dot(overlap, self._coeffs[:,i])) - #print i, norm - assert abs(norm-1) < eps, 'The orbitals are not normalized!' + norm = np.dot(self._coeffs[:, i], np.dot(overlap, self._coeffs[:, i])) + # print i, norm + assert abs(norm - 1) < eps, 'The orbitals are not normalized!' def check_orthonormality(self, overlap, eps=1e-4): """Check that the occupied orbitals are orthogonal and normalized. @@ -227,12 +226,12 @@ def check_orthonormality(self, overlap, eps=1e-4): for i0 in xrange(self.nfn): if self.occupations[i0] == 0: continue - for i1 in xrange(i0+1): + for i1 in xrange(i0 + 1): if self.occupations[i1] == 0: continue - dot = np.dot(self._coeffs[:,i0], np.dot(overlap, self._coeffs[:,i1])) + dot = np.dot(self._coeffs[:, i0], np.dot(overlap, self._coeffs[:, i1])) if i0 == i1: - assert abs(dot-1) < eps + assert abs(dot - 1) < eps else: assert abs(dot) < eps @@ -251,9 +250,9 @@ def error_eigen(self, fock, overlap): error : float The RMSD error on the orbital energies. """ - errors = np.dot(fock, (self.coeffs)) \ - - self.energies*np.dot(overlap, (self.coeffs)) - return np.sqrt((abs(errors)**2).mean()) + errors = np.dot(fock, self.coeffs) \ + - self.energies * np.dot(overlap, self.coeffs) + return np.sqrt((abs(errors) ** 2).mean()) def from_fock(self, fock, overlap): """Diagonalize a Fock matrix to obtain orbitals and energies. @@ -269,7 +268,7 @@ def from_fock(self, fock, overlap): """ evals, evecs = eigh(fock, overlap) self._energies[:] = evals[:self.nfn] - self._coeffs[:] = evecs[:,:self.nfn] + self._coeffs[:] = evecs[:, :self.nfn] def from_fock_and_dm(self, fock, dm, overlap, epstol=1e-8): """Combined diagonalization of a Fock and a density matrix. @@ -305,7 +304,7 @@ def from_fock_and_dm(self, fock, dm, overlap, epstol=1e-8): clusters = [] begin = 0 for ifn in xrange(1, self.nfn): - if abs(self.energies[ifn] - self.energies[ifn-1]) > epstol: + if abs(self.energies[ifn] - self.energies[ifn - 1]) > epstol: end = ifn clusters.append([begin, end]) begin = ifn @@ -316,20 +315,22 @@ def from_fock_and_dm(self, fock, dm, overlap, epstol=1e-8): sds = np.dot(overlap.T, np.dot(dm, overlap)) for begin, end in clusters: if end - begin == 1: - self.occupations[begin] = np.dot(self.coeffs[:,begin], np.dot(sds, self.coeffs[:,begin])) + self.occupations[begin] = np.dot(self.coeffs[:, begin], + np.dot(sds, self.coeffs[:, begin])) else: # Build matrix mat = np.dot(self.coeffs[:, begin:end].T, np.dot(sds, self.coeffs[:, begin:end])) # Diagonalize and reverse order evals, evecs = np.linalg.eigh(mat) evals = evals[::-1] - evecs = evecs[:,::-1] + evecs = evecs[:, ::-1] # Rotate the orbitals - self.coeffs[:,begin:end] = np.dot(self.coeffs[:,begin:end], evecs) + self.coeffs[:, begin:end] = np.dot(self.coeffs[:, begin:end], evecs) # Compute expectation values self.occupations[begin:end] = evals - for i0 in xrange(end-begin): - self.energies[begin+i0] = np.dot(self.coeffs[:,begin+i0], np.dot(fock, self.coeffs[:,begin+i0])) + for i0 in xrange(end - begin): + self.energies[begin + i0] = np.dot(self.coeffs[:, begin + i0], + np.dot(fock, self.coeffs[:, begin + i0])) def derive_naturals(self, dm, overlap): """Derive natural orbitals from a given density matrix and assign the result to self. @@ -345,7 +346,7 @@ def derive_naturals(self, dm, overlap): sds = np.dot(overlap.T, np.dot(dm, overlap)) # Diagonalize and compute eigenvalues evals, evecs = eigh(sds, overlap) - self._coeffs[:] = evecs[:,:self.nfn] + self._coeffs[:] = evecs[:, :self.nfn] self._occupations[:] = evals self._energies[:] = 0.0 @@ -362,7 +363,7 @@ def get_homo_index(self, offset=0): raise ValueError('Offset must be zero or positive.') homo_indexes = self.occupations.nonzero()[0] if len(homo_indexes) > offset: - return homo_indexes[len(homo_indexes)-offset-1] + return homo_indexes[len(homo_indexes) - offset - 1] homo_index = property(get_homo_index) @@ -392,7 +393,7 @@ def get_lumo_index(self, offset=0): """ if offset < 0: raise ValueError('Offset must be zero or positive.') - lumo_indexes = (self.occupations==0.0).nonzero()[0] + lumo_indexes = (self.occupations == 0.0).nonzero()[0] if len(lumo_indexes) > offset: return lumo_indexes[offset] @@ -427,9 +428,10 @@ def to_dm(self, other=None): The density matrix. """ if other is None: - return np.dot(self._coeffs*self.occupations, self._coeffs.T) + return np.dot(self._coeffs * self.occupations, self._coeffs.T) else: - return np.dot(self._coeffs*(self.occupations*other.occupations)**0.5, other._coeffs.T) + return np.dot(self._coeffs * (self.occupations * other.occupations) ** 0.5, + other._coeffs.T) def rotate_random(self): """Apply random unitary transformation distributed with Haar measure. @@ -452,14 +454,14 @@ def rotate_2orbitals(self, angle=0.7853981633974483, index0=None, index1=None): The attributes ``energies`` and ``occupations`` are not altered. """ - if index0 == None: + if index0 is None: index0 = self.homo_index - if index1 == None: + if index1 is None: index1 = self.lumo_index - old0 = self.coeffs[:,index0].copy() - old1 = self.coeffs[:,index1].copy() - self.coeffs[:,index0] = np.cos(angle)*old0 - np.sin(angle)*old1 - self.coeffs[:,index1] = np.sin(angle)*old0 + np.cos(angle)*old1 + old0 = self.coeffs[:, index0].copy() + old1 = self.coeffs[:, index1].copy() + self.coeffs[:, index0] = np.cos(angle) * old0 - np.sin(angle) * old1 + self.coeffs[:, index1] = np.sin(angle) * old0 + np.cos(angle) * old1 def swap_orbitals(self, swaps): """Change the order of the orbitals using pair-exchange. @@ -476,11 +478,11 @@ def swap_orbitals(self, swaps): raise TypeError('The argument swaps has the wrong shape/type.') for iswap in range(len(swaps)): index0, index1 = swaps[iswap] - print('5: Swapping orbitals %i and %i' %(index0, index1)) - tmp = self.coeffs[:,index0].copy() - self.coeffs[:,index0] = self.coeffs[:,index1] - self.coeffs[:,index1] = tmp - self.energies[index0], self.energies[index1] =\ + print('5: Swapping orbitals %i and %i' % (index0, index1)) + tmp = self.coeffs[:, index0].copy() + self.coeffs[:, index0] = self.coeffs[:, index1] + self.coeffs[:, index1] = tmp + self.energies[index0], self.energies[index1] = \ self.energies[index1], self.energies[index0] - self.occupations[index0], self.occupations[index1] =\ + self.occupations[index0], self.occupations[index1] = \ self.occupations[index1], self.occupations[index0] diff --git a/horton/meanfield/project.py b/horton/meanfield/project.py index 899e3935..c1a0bbd2 100644 --- a/horton/meanfield/project.py +++ b/horton/meanfield/project.py @@ -18,15 +18,13 @@ # along with this program; if not, see # # -- -'''Projection of 1-electron orbitals to a new basis set''' - +"""Projection of 1-electron orbitals to a new basis set""" import numpy as np from scipy.linalg import sqrtm from horton.gbasis.cext import GOBasis - __all__ = ['ProjectionError', 'project_orbitals_mgs', 'project_orbitals_ortho'] @@ -35,7 +33,7 @@ class ProjectionError(Exception): def project_orbitals_mgs(obasis0, obasis1, orb0, orb1, eps=1e-10): - '''Project the orbitals onto a new basis set with the modified Gram-Schmidt algorithm. + """Project the orbitals onto a new basis set with the modified Gram-Schmidt algorithm. The orbitals in ``orb0`` (w.r.t. ``obasis0``) are projected onto ``obasis1`` and stored in ``orb1``. @@ -69,7 +67,7 @@ def project_orbitals_mgs(obasis0, obasis1, orb0, orb1, eps=1e-10): If the number of orbitals in ``orb1`` is too small to store all projected orbitals, an error is raised. - ''' + """ # Compute the overlap matrix of the combined orbital basis obasis_both = GOBasis.concatenate(obasis0, obasis1) olp_both = obasis_both.compute_overlap() @@ -90,14 +88,14 @@ def project_orbitals_mgs(obasis0, obasis1, orb0, orb1, eps=1e-10): if i1 > orb1.nfn: raise ProjectionError('Not enough functions available in orb1 to store the ' 'projected orbitals.') - orb1.coeffs[:,i1] = np.dot(projector, orb0.coeffs[:,i0]) + orb1.coeffs[:, i1] = np.dot(projector, orb0.coeffs[:, i0]) orb1.occupations[i1] = orb0.occupations[i0] i1 += 1 # clear all parts of orb1 that were not touched by the projection loop ntrans = i1 del i1 - orb1.coeffs[:,ntrans:] = 0.0 + orb1.coeffs[:, ntrans:] = 0.0 orb1.occupations[ntrans:] = 0.0 orb1.energies[:] = 0.0 @@ -112,7 +110,7 @@ def dot22(a, b): # Subtract overlap with previous orbitals for j1 in xrange(i1): other = orb1.coeffs[:, j1] - orb -= other*dot22(other, orb)/np.sqrt(dot22(other, other)) + orb -= other * dot22(other, orb) / np.sqrt(dot22(other, other)) # Renormalize norm = np.sqrt(dot22(orb, orb)) @@ -123,7 +121,7 @@ def dot22(a, b): def project_orbitals_ortho(olp0, olp1, orb0, orb1): - r'''Re-orthogonalize the orbitals . + r"""Re-orthogonalize the orbitals . The orbitals in ``orb0`` (w.r.t. ``obasis0``) are re-orthonormalized w.r.t. ``obasis1`` and stored in ``orb1``. @@ -162,7 +160,8 @@ def project_orbitals_ortho(olp0, olp1, orb0, orb1): orthogonalized atomic basis sets. The latter is only the case when the old and new atomic basis sets are very similar, e.g. for small geometric changes. - ''' + """ + def helper_olp(olp): if isinstance(olp, GOBasis): obasis = olp diff --git a/horton/meanfield/response.py b/horton/meanfield/response.py index 4194128d..734cacb9 100644 --- a/horton/meanfield/response.py +++ b/horton/meanfield/response.py @@ -18,16 +18,15 @@ # along with this program; if not, see # # -- -'''Evaluation of response functions''' +"""Evaluation of response functions""" import numpy as np - __all__ = ['compute_noninteracting_response'] def compute_noninteracting_response(orb, operators, work=None): - '''Compute the non-interacting response matrix for a given orbital expansion + """Compute the non-interacting response matrix for a given orbital expansion **Arguments:** @@ -48,7 +47,7 @@ def compute_noninteracting_response(orb, operators, work=None): orbitals are present at the fermi level. For example, in case of fractional occupations in DFT, this method does not give the correct non-interacting response matrix. - ''' + """ # Convert the operators to the orbital basis coeffs = orb.coeffs norb = orb.nfn @@ -63,10 +62,11 @@ def compute_noninteracting_response(orb, operators, work=None): energies = orb.energies occupations = orb.occupations with np.errstate(invalid='ignore'): - prefacs = np.subtract.outer(occupations, occupations)/np.subtract.outer(energies, energies) + prefacs = np.subtract.outer(occupations, occupations) / np.subtract.outer(energies, + energies) # Purge divisions by zero. If degeneracies occur at the fermi level, this # way of computing the noninteracting response matrix is not correct anyway. - #for iorb in xrange(norb): + # for iorb in xrange(norb): # prefacs[iorb,iorb] = 0.0 mask = occupations == occupations.reshape(-1, 1) mask |= energies == energies.reshape(-1, 1) @@ -84,9 +84,9 @@ def compute_noninteracting_response(orb, operators, work=None): # while the complex conjugate corresponds to the upper diagonal of prefacs.) result = np.zeros((nop, nop), float) for iop0 in xrange(nop): - for iop1 in xrange(iop0+1): + for iop1 in xrange(iop0 + 1): # evaluate the sum over states expression - state_sum = (work[iop0]*work[iop1]*prefacs).sum() + state_sum = (work[iop0] * work[iop1] * prefacs).sum() # store the state sum result[iop0, iop1] = state_sum diff --git a/horton/meanfield/rotate.py b/horton/meanfield/rotate.py index 3677247a..4f1146d1 100644 --- a/horton/meanfield/rotate.py +++ b/horton/meanfield/rotate.py @@ -18,19 +18,18 @@ # along with this program; if not, see # # -- -'''Rotation of orbitals''' - +"""Rotation of orbitals""" import numpy as np + from horton.gbasis.cext import fac2 from horton.moments import rotate_cartesian_multipole, get_cartesian_powers - __all__ = ['rotate_coeffs'] def rotate_coeffs(coeffs, obasis, rmat): - '''Apply a rotation to all cartesian basis functions. + """Apply a rotation to all cartesian basis functions. **Arguments:** @@ -43,7 +42,7 @@ def rotate_coeffs(coeffs, obasis, rmat): rmat The rotation matrix. - ''' + """ if obasis.nbasis != coeffs.shape[0]: raise TypeError('The shape of the coefficients array does not match the basis set size') if obasis.shell_types.min() < 0: @@ -57,26 +56,30 @@ def rotate_coeffs(coeffs, obasis, rmat): factors = [] for ishell in xrange(obasis.nshell): shell_type = obasis.shell_types[ishell] - icart0 = ((shell_type+2)*(shell_type+1)*(shell_type))/6 - shellsize = ((shell_type+2)*(shell_type+1))/2 + icart0 = ((shell_type + 2) * (shell_type + 1) * shell_type) / 6 + shellsize = ((shell_type + 2) * (shell_type + 1)) / 2 for ifn in xrange(shellsize): - ipow = icart0+ifn - factors.append(np.sqrt(fac2(2*powers[ipow,0]-1)*fac2(2*powers[ipow,1]-1)*fac2(2*powers[ipow,2]-1))) + ipow = icart0 + ifn + factors.append(np.sqrt( + fac2(2 * powers[ipow, 0] - 1) * fac2(2 * powers[ipow, 1] - 1) * fac2( + 2 * powers[ipow, 2] - 1))) factors = np.array(factors) # replace the array coeffs by the one with undone normalization - coeffs = coeffs/factors.reshape(-1,1) + coeffs = coeffs / factors.reshape(-1, 1) # 2) the actual rotation ibasis0 = 0 for ishell in xrange(obasis.nshell): shell_type = obasis.shell_types[ishell] - icart0 = ((shell_type+2)*(shell_type+1)*(shell_type))/6 - shellsize = ((shell_type+2)*(shell_type+1))/2 + shellsize = ((shell_type + 2) * (shell_type + 1)) / 2 for iorb in xrange(coeffs.shape[1]): - result[ibasis0:ibasis0+shellsize, iorb] = rotate_cartesian_multipole(rmat, coeffs[ibasis0:ibasis0+shellsize, iorb], 'coeffs') + result[ibasis0:ibasis0 + shellsize, iorb] = rotate_cartesian_multipole(rmat, coeffs[ + ibasis0:ibasis0 + shellsize, + iorb], + 'coeffs') ibasis0 += shellsize # 3) apply the part of the normalization of the basis functions due to the cartesian powers - result *= factors.reshape(-1,1) + result *= factors.reshape(-1, 1) return result diff --git a/horton/meanfield/scf.py b/horton/meanfield/scf.py index 4a534c04..d7fd4225 100644 --- a/horton/meanfield/scf.py +++ b/horton/meanfield/scf.py @@ -20,14 +20,12 @@ # -- """Basic Self-Consistent Field (SCF) algorithm.""" - import numpy as np from horton.exceptions import NoSCFConvergence from .convergence import convergence_error_eigen from .utils import get_level_shift - __all__ = ['PlainSCFSolver'] @@ -78,7 +76,8 @@ def __call__(self, ham, overlap, occ_model, *orbs): """ # Some type checking if ham.ndm != len(orbs): - raise TypeError('The number of initial orbital expansions does not match the Hamiltonian.') + raise TypeError( + 'The number of initial orbital expansions does not match the Hamiltonian.') # Impose the requested occupation numbers occ_model.assign(*orbs) # Check the orthogonality of the orbitals @@ -114,14 +113,14 @@ def __call__(self, ham, overlap, occ_model, *orbs): if self.level_shift > 0: for i in xrange(ham.ndm): # The normal behavior is to shift down the occupied levels. - focks[i] += -self.level_shift*get_level_shift(dms[i], overlap) + focks[i] += -self.level_shift * get_level_shift(dms[i], overlap) # Diagonalize the fock operators to obtain new orbitals and for i in xrange(ham.ndm): orbs[i].from_fock(focks[i], overlap) # If requested, compensate for level-shift. This compensation # is only correct when the SCF has converged. if self.level_shift > 0: - orbs[i].energies[:] += self.level_shift*orbs[i].occupations + orbs[i].energies[:] += self.level_shift * orbs[i].occupations # Assign new occupation numbers. occ_model.assign(*orbs) # counter @@ -139,5 +138,5 @@ def __call__(self, ham, overlap, occ_model, *orbs): return counter def error(self, ham, overlap, *orbs): - '''See :py:func:`horton.meanfield.convergence.convergence_error_eigen`.''' + """See :py:func:`horton.meanfield.convergence.convergence_error_eigen`.""" return convergence_error_eigen(ham, overlap, *orbs) diff --git a/horton/meanfield/scf_cdiis.py b/horton/meanfield/scf_cdiis.py index c3bcae0e..102f175d 100644 --- a/horton/meanfield/scf_cdiis.py +++ b/horton/meanfield/scf_cdiis.py @@ -18,24 +18,23 @@ # along with this program; if not, see # # -- -'''Commutator DIIS SCF algorithm''' - +"""Commutator DIIS SCF algorithm""" import numpy as np -from .scf_diis import DIISHistory, DIISSCFSolver from horton.quadprog import solve_safe from horton.utils import doc_inherit - +from .scf_diis import DIISHistory, DIISSCFSolver __all__ = ['CDIISSCFSolver'] class CDIISSCFSolver(DIISSCFSolver): - '''The Commmutatator (or Pulay) DIIS SCF solver [pulay1980]_''' + """The Commutator (or Pulay) DIIS SCF solver [pulay1980]_""" - def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, prune_old_states=False): - ''' + def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, + prune_old_states=False): + """ **Optional arguments:** maxiter @@ -55,21 +54,22 @@ def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, pr coefficient is zero. Pruning starts at the oldest state and stops as soon as a state is encountered with a non-zero coefficient. Even if some newer states have a zero coefficient. - ''' - DIISSCFSolver.__init__(self, CDIISHistory, threshold, maxiter, nvector, skip_energy, prune_old_states) + """ + DIISSCFSolver.__init__(self, CDIISHistory, threshold, maxiter, nvector, skip_energy, + prune_old_states) self.biblio.append(['pulay1980', 'the commutator DIIS SCF algorithm']) class CDIISHistory(DIISHistory): - '''A commutator DIIS history object that keeps track of previous SCF solutions + """A commutator DIIS history object that keeps track of previous SCF solutions This type of DIIS is also called Pulay DIIS. - ''' + """ name = 'CDIIS' need_energy = False def __init__(self, nvector, ndm, deriv_scale, overlap): - ''' + """ **Arguments:** nvector @@ -84,30 +84,30 @@ def __init__(self, nvector, ndm, deriv_scale, overlap): overlap The overlap matrix. - ''' + """ self.cdots = np.empty((nvector, nvector)) self.cdots.fill(np.nan) DIISHistory.__init__(self, nvector, ndm, deriv_scale, overlap, [self.cdots]) def _complete_cdots_matrix(self): - '''Complete the matrix of dot products between commutators + """Complete the matrix of dot products between commutators Even after multiple additions, this routine will fill up all the missing dot products in self.cdots. - ''' - for i0 in xrange(self.nused-1, -1, -1): + """ + for i0 in xrange(self.nused - 1, -1, -1): state0 = self.stack[i0] - self.cdots[i0,i0] = state0.normsq + self.cdots[i0, i0] = state0.normsq # Compute off-diagonal coefficients for i1 in xrange(i0): - if np.isfinite(self.cdots[i0,i1]): + if np.isfinite(self.cdots[i0, i1]): return state1 = self.stack[i1] cdot = 0.0 for j in xrange(self.ndm): cdot += np.einsum('ab,ab', state0.commutators[j], state1.commutators[j]) - self.cdots[i0,i1] = cdot - self.cdots[i1,i0] = cdot + self.cdots[i0, i1] = cdot + self.cdots[i1, i0] = cdot @doc_inherit(DIISHistory) def solve(self, dms_output, focks_output): @@ -115,18 +115,18 @@ def solve(self, dms_output, focks_output): assert self.nused >= 2 # Fill in the missing commutators self._complete_cdots_matrix() - coeffs = solve_cdiis(self.cdots[:self.nused,:self.nused]) + coeffs = solve_cdiis(self.cdots[:self.nused, :self.nused]) # get a condition number - absevals = abs(np.linalg.eigvalsh(self.cdots[:self.nused,:self.nused])) + absevals = abs(np.linalg.eigvalsh(self.cdots[:self.nused, :self.nused])) with np.errstate(divide='ignore'): - cn = absevals.max()/absevals.min() + cn = absevals.max() / absevals.min() # assign extrapolated fock error = self._build_combinations(coeffs, dms_output, focks_output) return None, coeffs, cn, 'C', error def solve_cdiis(a): - r'''Solve the linear equations found in the cdiis method + r"""Solve the linear equations found in the cdiis method The following is minimized: @@ -139,15 +139,15 @@ def solve_cdiis(a): a The matrix a, an array of size (N,N). - ''' + """ n = len(a) assert a.shape == (n, n) assert (a == a.T).all() - a2 = np.zeros((n+1, n+1)) - a2[:n,:n] = a - a2[n,:n] = 1 - a2[:n,n] = 1 - b2 = np.zeros(n+1) + a2 = np.zeros((n + 1, n + 1)) + a2[:n, :n] = a + a2[n, :n] = 1 + a2[:n, n] = 1 + b2 = np.zeros(n + 1) b2[n] = 1 x2 = solve_safe(a2, b2) return x2[:n] diff --git a/horton/meanfield/scf_diis.py b/horton/meanfield/scf_diis.py index a7bb8781..3264cde0 100644 --- a/horton/meanfield/scf_diis.py +++ b/horton/meanfield/scf_diis.py @@ -18,26 +18,25 @@ # along with this program; if not, see # # -- -'''Abstract DIIS code used by the different DIIS implementations''' - +"""Abstract DIIS code used by the different DIIS implementations""" import numpy as np from horton.exceptions import NoSCFConvergence from .convergence import convergence_error_commutator -from .utils import compute_commutator, check_dm from .orbitals import Orbitals - +from .utils import compute_commutator, check_dm __all__ = [] class DIISSCFSolver(object): - '''Base class for all DIIS SCF solvers''' - kind = 'dm' # input/output variable is the density matrix + """Base class for all DIIS SCF solvers""" + kind = 'dm' # input/output variable is the density matrix - def __init__(self, DIISHistoryClass, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, prune_old_states=False): - ''' + def __init__(self, DIISHistoryClass, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, + prune_old_states=False): + """ **Arguments:** DIISHistoryClass @@ -62,23 +61,22 @@ def __init__(self, DIISHistoryClass, threshold=1e-6, maxiter=128, nvector=6, ski coefficient is zero. Pruning starts at the oldest state and stops as soon as a state is encountered with a non-zero coefficient. Even if some newer states have a zero coefficient. - ''' + """ self.DIISHistoryClass = DIISHistoryClass self.threshold = threshold self.maxiter = maxiter self.nvector = nvector self.skip_energy = skip_energy self.prune_old_states = prune_old_states - # Attributs where local variables of the __call__ method are stored: + # Attributes where local variables of the __call__ method are stored: self._history = None self._focks = [] self._orbs = [] self.commutator = None self.biblio = [] - def __call__(self, ham, overlap, occ_model, *dms): - '''Find a self-consistent set of density matrices. + """Find a self-consistent set of density matrices. **Arguments:** @@ -94,10 +92,11 @@ def __call__(self, ham, overlap, occ_model, *dms): dm1, dm2, ... The initial density matrices. The number of dms must match ham.ndm. - ''' + """ # Some type checking if ham.ndm != len(dms): - raise TypeError('The number of initial density matrices does not match the Hamiltonian.') + raise TypeError( + 'The number of initial density matrices does not match the Hamiltonian.') # Check input density matrices. for i in xrange(ham.ndm): @@ -125,7 +124,7 @@ def __call__(self, ham, overlap, occ_model, *dms): ham.compute_fock(*self._focks) # Compute the energy if needed by the history energy = ham.compute_energy() if self._history.need_energy \ - else None + else None # Add the current fock+dm pair to the history error = self._history.add(energy, dms, self._focks) @@ -135,15 +134,11 @@ def __call__(self, ham, overlap, occ_model, *dms): converged = True break print("7: ") - energy_str = ' '*20 if energy is None else '% 20.13f' % energy + energy_str = ' ' * 20 if energy is None else '% 20.13f' % energy print('5: %4i %12.5e %2i %20s' % ( counter, error, self._history.nused, energy_str )) print("7: ") - fock_interpolated = False - else: - energy = None - fock_interpolated = True # Take a regular SCF step using the current fock matrix. Then # construct a new density matrix and fock matrix. @@ -167,13 +162,13 @@ def __call__(self, ham, overlap, occ_model, *dms): # Screen logging print("7: ") - energy_str = ' '*20 if energy is None else '% 20.13f' % energy + energy_str = ' ' * 20 if energy is None else '% 20.13f' % energy print('5: %4i %12.5e %2i %20s' % ( counter, error, self._history.nused, energy_str )) print("7: ") - # get extra/intra-polated Fock matrix + # get extra/inter-polated Fock matrix while True: # The following method writes the interpolated dms and focks # in-place. @@ -184,13 +179,16 @@ def __call__(self, ham, overlap, occ_model, *dms): if error < self.threshold: converged = True break - #if coeffs[coeffs<0].sum() < -1: + # if coeffs[coeffs<0].sum() < -1: # print('7: DIIS (coeffs too negative) -> drop %i and retry' % self._history.stack[0].identity) # self._history.shrink() if self._history.nused <= 2: break if coeffs[-1] == 0.0: - print('7: DIIS (last coeff zero) -> drop %i and retry' % self._history.stack[0].identity) + print( + '7: DIIS (last coeff zero) -> drop %i and retry' % + self._history.stack[ + 0].identity) self._history.shrink() else: break @@ -203,8 +201,8 @@ def __call__(self, ham, overlap, occ_model, *dms): energies1 = [] energies2 = [] for x in xs: - x_coeffs = np.array([1-x, x]) - energies1.append(np.dot(x_coeffs, 0.5*np.dot(a, x_coeffs) - b)) + x_coeffs = np.array([1 - x, x]) + energies1.append(np.dot(x_coeffs, 0.5 * np.dot(a, x_coeffs) - b)) self._history._build_combinations(x_coeffs, dms_tmp, None) ham.reset(*dms_tmp) energies2.append(ham.compute_energy()) @@ -224,7 +222,7 @@ def __call__(self, ham, overlap, occ_model, *dms): # log self._history.log(coeffs) - change_str = ' '*10 if energy_change is None else '% 12.7f' % energy_change + change_str = ' ' * 10 if energy_change is None else '% 12.7f' % energy_change print('5: %4i %10.3e %12.7f %2i %s %12s' % ( counter, cn, coeffs[-1], self._history.nused, method, change_str @@ -235,7 +233,8 @@ def __call__(self, ham, overlap, occ_model, *dms): # get rid of old states with zero coeff for i in xrange(self._history.nused): if coeffs[i] == 0.0: - print('7: DIIS insignificant -> drop %i' % self._history.stack[0].identity) + print('7: DIIS insignificant -> drop %i' % self._history.stack[ + 0].identity) self._history.shrink() else: break @@ -262,10 +261,10 @@ def error(self, ham, lf, overlap, *dms): class DIISState(object): - '''A single record (vector) in a DIIS history object.''' + """A single record (vector) in a DIIS history object.""" def __init__(self, ndm, overlap): - ''' + """ **Arguments:** ndm @@ -273,7 +272,7 @@ def __init__(self, ndm, overlap): state. overlap The overlap matrix. - ''' + """ # Not all of these need to be used. self.ndm = ndm self.overlap = overlap @@ -282,10 +281,10 @@ def __init__(self, ndm, overlap): self.dms = [np.zeros(overlap.shape) for i in xrange(self.ndm)] self.focks = [np.zeros(overlap.shape) for i in xrange(self.ndm)] self.commutators = [np.zeros(overlap.shape) for i in xrange(self.ndm)] - self.identity = None # every state has a different id. + self.identity = None # every state has a different id. def clear(self): - '''Reset this record.''' + """Reset this record.""" self.energy = np.nan self.normsq = np.nan for i in xrange(self.ndm): @@ -294,7 +293,7 @@ def clear(self): self.commutators[i][:] = 0.0 def assign(self, identity, energy, dms, focks): - '''Assign a new state. + """Assign a new state. **Arguments:** @@ -309,7 +308,7 @@ def assign(self, identity, energy, dms, focks): fock The Fock matrix of the new state. - ''' + """ self.identity = identity self.energy = energy self.normsq = 0.0 @@ -321,12 +320,12 @@ def assign(self, identity, energy, dms, focks): class DIISHistory(object): - '''A base class of DIIS histories''' + """A base class of DIIS histories""" name = None need_energy = None def __init__(self, nvector, ndm, deriv_scale, overlap, dots_matrices): - ''' + """ **Arguments:** nvector @@ -349,7 +348,7 @@ def __init__(self, nvector, ndm, deriv_scale, overlap, dots_matrices): used The actual number of vectors in the history. - ''' + """ self.stack = [DIISState(ndm, overlap) for i in xrange(nvector)] self.ndm = ndm self.deriv_scale = deriv_scale @@ -359,7 +358,7 @@ def __init__(self, nvector, ndm, deriv_scale, overlap, dots_matrices): self.idcounter = 0 def _get_nvector(self): - '''The maximum size of the history''' + """The maximum size of the history""" return len(self.stack) nvector = property(_get_nvector) @@ -370,16 +369,18 @@ def log(self, coeffs): print('5: DIIS history normsq coeff id') for i in xrange(self.nused): state = self.stack[i] - print('5: DIIS history %12.5e %12.7f %8i' % (state.normsq, coeffs[i], state.identity)) + print('5: DIIS history %12.5e %12.7f %8i' % ( + state.normsq, coeffs[i], state.identity)) else: print('5: DIIS history normsq energy coeff id') for i in xrange(self.nused): state = self.stack[i] - print('5: DIIS history %12.5e %12.5e %12.7f %8i' % (state.normsq, state.energy-eref, coeffs[i], state.identity)) + print('5: DIIS history %12.5e %12.5e %12.7f %8i' % ( + state.normsq, state.energy - eref, coeffs[i], state.identity)) print("5: ") def solve(self, dms_output, focks_output): - '''Inter- or extrapolate new density and/or fock matrices. + """Inter- or extrapolate new density and/or fock matrices. **Arguments:** @@ -390,23 +391,23 @@ def solve(self, dms_output, focks_output): focks_output The output for the Fock matrices. If set to None, this is argument is ignored. - ''' + """ raise NotImplementedError def shrink(self): - '''Remove the oldest item from the history''' + """Remove the oldest item from the history""" self.nused -= 1 state = self.stack.pop(0) state.clear() self.stack.append(state) for dots in self.dots_matrices: dots[:-1] = dots[1:] - dots[:,:-1] = dots[:,1:] + dots[:, :-1] = dots[:, 1:] dots[-1] = np.nan - dots[:,-1] = np.nan + dots[:, -1] = np.nan def add(self, energy, dms, focks): - '''Add new state to the history. + """Add new state to the history. **Arguments:** @@ -421,7 +422,7 @@ def add(self, energy, dms, focks): **Returns**: the square root of commutator error for the given pairs of density and Fock matrices. - ''' + """ if len(dms) != self.ndm or len(focks) != self.ndm: raise TypeError('The number of density and Fock matrices must match the ndm parameter.') # There must be a free spot. If needed, make one. @@ -438,7 +439,7 @@ def add(self, energy, dms, focks): return np.sqrt(state.normsq) def _build_combinations(self, coeffs, dms_output, focks_output): - '''Construct a linear combination of density/fock matrices + """Construct a linear combination of density/fock matrices **Arguments:** @@ -453,7 +454,7 @@ def _build_combinations(self, coeffs, dms_output, focks_output): **Returns:** the commutator error, only when both dms_output and focks_output are given. - ''' + """ if dms_output is not None: if len(dms_output) != self.ndm: raise TypeError('The number of density matrices must match the ndm parameter.') @@ -471,10 +472,10 @@ def _build_combinations(self, coeffs, dms_output, focks_output): for i in xrange(self.ndm): self.commutator = compute_commutator(dms_output[i], focks_output[i], self.overlap) errorsq += np.einsum('ab,ab', self.commutator, self.commutator) - return errorsq**0.5 + return errorsq ** 0.5 def _linear_combination(self, coeffs, ops, output): - '''Make a linear combination of two-index objects + """Make a linear combination of two-index objects **Arguments:** @@ -486,7 +487,7 @@ def _linear_combination(self, coeffs, ops, output): output The output operator. - ''' + """ output[:] = 0 for i in xrange(self.nused): - output += coeffs[i]*ops[i] + output += coeffs[i] * ops[i] diff --git a/horton/meanfield/scf_ediis.py b/horton/meanfield/scf_ediis.py index bd033743..c30bd098 100644 --- a/horton/meanfield/scf_ediis.py +++ b/horton/meanfield/scf_ediis.py @@ -18,24 +18,24 @@ # along with this program; if not, see # # -- -'''Energy DIIS SCF algorithm''' +"""Energy DIIS SCF algorithm""" import numpy as np from horton.exceptions import NoSCFConvergence -from .scf_diis import DIISHistory, DIISSCFSolver from horton.quadprog import QPSolver from horton.utils import doc_inherit - +from .scf_diis import DIISHistory, DIISSCFSolver __all__ = ['EDIISSCFSolver'] class EDIISSCFSolver(DIISSCFSolver): - '''The Energy DIIS SCF solver [kudin2002]_''' + """The Energy DIIS SCF solver [kudin2002]_""" - def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, prune_old_states=False): - ''' + def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, + prune_old_states=False): + """ **Optional arguments:** maxiter @@ -55,18 +55,19 @@ def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, pr coefficient is zero. Pruning starts at the oldest state and stops as soon as a state is encountered with a non-zero coefficient. Even if some newer states have a zero coefficient. - ''' - DIISSCFSolver.__init__(self, EDIISHistory, threshold, maxiter, nvector, skip_energy, prune_old_states) + """ + DIISSCFSolver.__init__(self, EDIISHistory, threshold, maxiter, nvector, skip_energy, + prune_old_states) self.biblio.append(['kudin2002', 'the EDIIS method.']) class EDIISHistory(DIISHistory): - '''A Energy DIIS history object that keeps track of previous SCF solutions''' + """A Energy DIIS history object that keeps track of previous SCF solutions""" name = 'EDIIS' need_energy = True def __init__(self, nvector, ndm, deriv_scale, overlap): - '''Initialize a EDIISHistory object. + """Initialize a EDIISHistory object. Parameters ---------- @@ -78,7 +79,7 @@ def __init__(self, nvector, ndm, deriv_scale, overlap): The deriv_scale attribute of the Effective Hamiltonian overlap The overlap matrix. - ''' + """ # A matrix with dot products of all density and fock matrices # Note that the dots matrix is not symmetric! self.edots = np.empty((nvector, nvector)) @@ -86,36 +87,38 @@ def __init__(self, nvector, ndm, deriv_scale, overlap): DIISHistory.__init__(self, nvector, ndm, deriv_scale, overlap, [self.edots]) def _complete_edots_matrix(self): - '''Complete the matrix of dot products between density and fock matrices + """Complete the matrix of dot products between density and fock matrices Even after multiple additions, this routine will fill up all the missing dot products in self.edots. - ''' + """ # This routine even works after multiple additions. - for i0 in xrange(self.nused-1, -1, -1): - if np.isfinite(self.edots[i0,i0]): + for i0 in xrange(self.nused - 1, -1, -1): + if np.isfinite(self.edots[i0, i0]): return # Compute off-diagonal coefficients state0 = self.stack[i0] - for i1 in xrange(i0+1): + for i1 in xrange(i0 + 1): state1 = self.stack[i1] - self.edots[i0,i1] = 0.0 + self.edots[i0, i1] = 0.0 for j in xrange(self.ndm): - self.edots[i0,i1] += np.einsum('ab,ba', state0.focks[j], state1.dms[j]) + self.edots[i0, i1] += np.einsum('ab,ba', state0.focks[j], state1.dms[j]) if i0 != i1: # Note that this matrix is not symmetric! - self.edots[i1,i0] = 0.0 + self.edots[i1, i0] = 0.0 for j in xrange(self.ndm): - self.edots[i1,i0] += np.einsum('ab,ba', state1.focks[j], state0.dms[j]) + self.edots[i1, i0] += np.einsum('ab,ba', state1.focks[j], state0.dms[j]) def _setup_equations(self): - '''Compute the equations for the quadratic programming problem.''' + """Compute the equations for the quadratic programming problem.""" b = np.zeros((self.nused, self.nused), float) e = np.zeros(self.nused, float) for i0 in xrange(self.nused): e[i0] = -self.stack[i0].energy - for i1 in xrange(i0+1): - b[i0, i1] = -0.5*self.deriv_scale*(self.edots[i0,i0] + self.edots[i1,i1] - self.edots[i0,i1] - self.edots[i1,i0]) + for i1 in xrange(i0 + 1): + b[i0, i1] = -0.5 * self.deriv_scale * ( + self.edots[i0, i0] + self.edots[i1, i1] - self.edots[i0, i1] - self.edots[ + i1, i0]) if i0 != i1: b[i1, i0] = b[i0, i1] return b, e @@ -126,14 +129,14 @@ def solve(self, dms_output, focks_output): assert self.nused >= 2 # Fill in the missing commutators self._complete_edots_matrix() - assert not np.isnan(self.edots[:self.nused,:self.nused]).any() + assert not np.isnan(self.edots[:self.nused, :self.nused]).any() # Setup the equations b, e = self._setup_equations() # Check if solving these equations makes sense. if b.max() - b.min() == 0 and e.max() - e.min() == 0: raise NoSCFConvergence('Convergence criteria too tight for EDIIS') # solve the quadratic programming problem - qps = QPSolver(b, e, np.ones((1,self.nused)), np.array([1.0]), eps=1e-6) + qps = QPSolver(b, e, np.ones((1, self.nused)), np.array([1.0]), eps=1e-6) if self.nused < 10: energy, coeffs = qps.find_brute() guess = None diff --git a/horton/meanfield/scf_ediis2.py b/horton/meanfield/scf_ediis2.py index 8c54a94a..00223502 100644 --- a/horton/meanfield/scf_ediis2.py +++ b/horton/meanfield/scf_ediis2.py @@ -18,25 +18,24 @@ # along with this program; if not, see # # -- -'''EDIIS+DIIS SCF algorithm''' - +"""EDIIS+DIIS SCF algorithm""" import numpy as np -from .scf_diis import DIISHistory, DIISSCFSolver +from horton.utils import doc_inherit from .scf_cdiis import CDIISHistory +from .scf_diis import DIISHistory, DIISSCFSolver from .scf_ediis import EDIISHistory -from horton.utils import doc_inherit - __all__ = ['EDIIS2SCFSolver'] class EDIIS2SCFSolver(DIISSCFSolver): - '''The EDIIS+DIIS SCF solver [kudin2002]_''' + """The EDIIS+DIIS SCF solver [kudin2002]_""" - def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, prune_old_states=False): - ''' + def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, + prune_old_states=False): + """ **Optional arguments:** maxiter @@ -56,22 +55,23 @@ def __init__(self, threshold=1e-6, maxiter=128, nvector=6, skip_energy=False, pr coefficient is zero. Pruning starts at the oldest state and stops as soon as a state is encountered with a non-zero coefficient. Even if some newer states have a zero coefficient. - ''' - DIISSCFSolver.__init__(self, EDIIS2History, threshold, maxiter, nvector, skip_energy, prune_old_states) + """ + DIISSCFSolver.__init__(self, EDIIS2History, threshold, maxiter, nvector, skip_energy, + prune_old_states) self.biblio.append(['kudin2002', 'the EDIIS method.']) class EDIIS2History(EDIISHistory, CDIISHistory): - '''A EDIIS+DIIS history object that keeps track of previous SCF solutions + """A EDIIS+DIIS history object that keeps track of previous SCF solutions This method uses EDIIS for the first iterations and switches to CDIIS to as soon as some initial degree of convergence is achieved. - ''' + """ name = 'EDIIS+DIIS' need_energy = True def __init__(self, nvector, ndm, deriv_scale, overlap): - '''Initialize a EDIIS2History object. + """Initialize a EDIIS2History object. Parameters ---------- @@ -83,7 +83,7 @@ def __init__(self, nvector, ndm, deriv_scale, overlap): The deriv_scale attribute of the Effective Hamiltonian overlap The overlap matrix. - ''' + """ # for the EDIIS part self.edots = np.empty((nvector, nvector)) self.edots.fill(np.nan) @@ -102,6 +102,6 @@ def solve(self, dms_output, focks_output): else: energy1, coeffs1, cn1, method1, error = CDIISHistory.solve(self, None, None) energy2, coeffs2, cn2, method2, error = EDIISHistory.solve(self, None, None) - coeffs = 10*errmax*coeffs2 + (1-10*errmax)*coeffs1 + coeffs = 10 * errmax * coeffs2 + (1 - 10 * errmax) * coeffs1 error = self._build_combinations(coeffs, dms_output, focks_output) return None, coeffs, max(cn1, cn2), 'M', error diff --git a/horton/meanfield/scf_oda.py b/horton/meanfield/scf_oda.py index ede1f6b0..c29756af 100644 --- a/horton/meanfield/scf_oda.py +++ b/horton/meanfield/scf_oda.py @@ -18,7 +18,7 @@ # along with this program; if not, see # # -- -'''Optimal Damping SCF algorithm''' +"""Optimal Damping SCF algorithm""" import numpy as np @@ -31,7 +31,7 @@ def find_min_cubic(f0, f1, g0, g1): - '''Find the minimum of a cubic polynomial in the range [0,1] + """Find the minimum of a cubic polynomial in the range [0,1] **Arguments:** @@ -43,7 +43,7 @@ def find_min_cubic(f0, f1, g0, g1): The derivative at argument 0 g1 The derivative at argument 1 - ''' + """ # coefficients of the polynomial a*x**3 + b*x**2 + c*x + d d = f0 c = g0 @@ -59,7 +59,7 @@ def find_min_cubic(f0, f1, g0, g1): xb = (-b - np.sqrt(discriminant)) / (3 * a) # test the solutions for x in xa, xb: - if x >= 0 and x <= 1: + if 0 <= x <= 1: # compute the curvature at the solution curv = 6 * a * x + 2 * b if curv > 0: @@ -69,7 +69,7 @@ def find_min_cubic(f0, f1, g0, g1): elif b > 0: # only b > 0 because b is also the curvature print('7: quadratic') x = -0.5 * c / b - if x >= 0 and x <= 1: + if 0 <= x <= 1: return x # If we get here, no solution was found in the interval. One of the @@ -82,7 +82,7 @@ def find_min_cubic(f0, f1, g0, g1): def find_min_quadratic(g0, g1): - '''Find the minimum of a quadratic polynomial in the range [0,1] + """Find the minimum of a quadratic polynomial in the range [0,1] **Arguments:** @@ -90,7 +90,7 @@ def find_min_quadratic(g0, g1): The derivative at argument 0 g1 The derivative at argument 1 - ''' + """ if g0 > 0: if g1 < -g0: return 1.0 @@ -105,11 +105,11 @@ def find_min_quadratic(g0, g1): class ODASCFSolver(object): - '''Optimal damping SCF algorithm (with cubic interpolation)''' + """Optimal damping SCF algorithm (with cubic interpolation)""" kind = 'dm' # input/output variable is the density matrix def __init__(self, threshold=1e-8, maxiter=128, skip_energy=False, debug=False): - ''' + """ **Optional arguments:** maxiter @@ -125,14 +125,14 @@ def __init__(self, threshold=1e-8, maxiter=128, skip_energy=False, debug=False): debug When set to True, for each mixing step, a plot is made to double check the cubic interpolation. - ''' + """ self.maxiter = maxiter self.threshold = threshold self.skip_energy = skip_energy self.debug = debug def __call__(self, ham, overlap, occ_model, *dm0s): - '''Find a self-consistent set of density matrices. + """Find a self-consistent set of density matrices. **Arguments:** @@ -148,7 +148,7 @@ def __call__(self, ham, overlap, occ_model, *dm0s): dm1, dm2, ... The initial density matrices. The number of dms must match ham.ndm. - ''' + """ # Some type checking if ham.ndm != len(dm0s): raise TypeError( @@ -168,8 +168,6 @@ def __call__(self, ham, overlap, occ_model, *dm0s): fock1s = [np.zeros(overlap.shape) for i in xrange(ham.ndm)] dm1s = [np.zeros(overlap.shape) for i in xrange(ham.ndm)] orbs = [Orbitals(overlap.shape[0]) for i in xrange(ham.ndm)] - work = np.zeros(dm0s[0].shape) - commutator = np.zeros(dm0s[0].shape) converged = False counter = 0 mixing = None @@ -246,7 +244,7 @@ def __call__(self, ham, overlap, occ_model, *dm0s): # counter counter += 1 - print(ham) # TODO: add __repr__ to ham + print(ham) # TODO: add __repr__ to ham if not converged: raise NoSCFConvergence @@ -254,12 +252,12 @@ def __call__(self, ham, overlap, occ_model, *dm0s): return counter def error(self, ham, lf, overlap, *dms): - '''See :py:func:`horton.meanfield.convergence.convergence_error_commutator`.''' + """See :py:func:`horton.meanfield.convergence.convergence_error_commutator`.""" return convergence_error_commutator(ham, lf, overlap, *dms) def check_cubic(ham, dm0s, dm1s, e0, e1, g0, g1, do_plot=True): - '''Method to test the correctness of the cubic interpolation + """Method to test the correctness of the cubic interpolation **Arguments:** @@ -297,7 +295,7 @@ def check_cubic(ham, dm0s, dm1s, e0, e1, g0, g1, do_plot=True): This function is mainly useful as a tool to double check the implementation of Fock matrices. - ''' + """ # coefficients of the polynomial a*x**3 + b*x**2 + c*x + d d = e0 c = g0 diff --git a/horton/meanfield/test/common.py b/horton/meanfield/test/common.py index 6c121a17..86251eeb 100644 --- a/horton/meanfield/test/common.py +++ b/horton/meanfield/test/common.py @@ -27,19 +27,18 @@ from horton.gbasis.gobasis import get_gobasis from horton.grid.molgrid import BeckeMolGrid from horton.io.iodata import IOData -from .. builtin import RDiracExchange, UDiracExchange -from .. convergence import convergence_error_eigen -from .. gridgroup import RGridGroup, UGridGroup -from .. guess import guess_core_hamiltonian -from .. hamiltonian import REffHam, UEffHam -from .. libxc import RLibXCLDA, ULibXCLDA, RLibXCGGA, ULibXCGGA, \ +from ..builtin import RDiracExchange, UDiracExchange +from ..convergence import convergence_error_eigen +from ..gridgroup import RGridGroup, UGridGroup +from ..guess import guess_core_hamiltonian +from ..hamiltonian import REffHam, UEffHam +from ..libxc import RLibXCLDA, ULibXCLDA, RLibXCGGA, ULibXCGGA, \ ULibXCMGGA, RLibXCHybridMGGA -from .. observable import RTwoIndexTerm, RDirectTerm, RExchangeTerm -from .. observable import UTwoIndexTerm, UDirectTerm, UExchangeTerm -from .. orbitals import Orbitals -from .. occ import AufbauOccModel, FixedOccModel -from .. scf_oda import check_cubic - +from ..observable import RTwoIndexTerm, RDirectTerm, RExchangeTerm +from ..observable import UTwoIndexTerm, UDirectTerm, UExchangeTerm +from ..occ import AufbauOccModel, FixedOccModel +from ..orbitals import Orbitals +from ..scf_oda import check_cubic __all__ = [ 'check_cubic_wrapper', 'check_interpolation', 'check_dot_hessian', @@ -79,7 +78,7 @@ def check_cubic_wrapper(ham, dm0s, dm1s, do_plot=False): def check_interpolation(ham, olp, kin, na, orbs, do_plot=False): dm0s = [orb.to_dm() for orb in orbs] - guess_core_hamiltonian(olp, kin+na, *orbs) + guess_core_hamiltonian(olp, kin + na, *orbs) dm1s = [orb.to_dm() for orb in orbs] check_cubic_wrapper(ham, dm0s, dm1s, do_plot) @@ -118,8 +117,6 @@ def check_dot_hessian(ham, *dms0): focks1 = [np.zeros((nbasis, nbasis)) for _i in xrange(ham.ndm)] dots0 = [np.zeros((nbasis, nbasis)) for _i in xrange(ham.ndm)] dots1 = [np.zeros((nbasis, nbasis)) for _i in xrange(ham.ndm)] - tmp1 = np.zeros((nbasis, nbasis)) - tmp2 = np.zeros((nbasis, nbasis)) for irep in xrange(nrep): delta_dms = [np.random.normal(0, eps, (nbasis, nbasis)) for _i in xrange(ham.ndm)] for idm in xrange(ham.ndm): @@ -139,20 +136,20 @@ def check_dot_hessian(ham, *dms0): tmp1 = focks0[idm] - focks1[idm] tmp2 = np.dot(tmp1, dms0[idm]) diffsq += np.einsum('ab,ab', tmp2, tmp2) - tmp1 += (0.5*ham.deriv_scale)*dots0[idm] - tmp1 += (0.5*ham.deriv_scale)*dots1[idm] + tmp1 += (0.5 * ham.deriv_scale) * dots0[idm] + tmp1 += (0.5 * ham.deriv_scale) * dots1[idm] tmp2 = np.dot(tmp1, dms0[idm]) errorsq += np.einsum('ab,ab', tmp2, tmp2) - diffs[irep] = diffsq**0.5 - errors[irep] = errorsq**0.5 + diffs[irep] = diffsq ** 0.5 + errors[irep] = errorsq ** 0.5 - threshold = np.median(diffs)*0.1 + threshold = np.median(diffs) * 0.1 mask = diffs > threshold assert abs(errors[mask]).max() < threshold, ( - 'The first order approximation off the difference between Fock matrices is too ' - 'wrong.\nThe threshold is %.1e.\nDiffs and Errors are:\n%s') % \ - (threshold, np.array([diffs, errors]).T) + 'The first order approximation off the difference between Fock matrices is too ' + 'wrong.\nThe threshold is %.1e.\nDiffs and Errors are:\n%s') % \ + (threshold, np.array([diffs, errors]).T) def check_dot_hessian_polynomial(olp, core, ham, orbs, is_hf=True, extent=1.0, @@ -211,8 +208,8 @@ def check(dms_a, dms_b): energy_a_1 = 0.0 energy_a_2 = 0.0 for idm in xrange(ham.ndm): - energy_a_1 += np.einsum('ab,ba', focks_a[idm], delta_dms[idm])*ham.deriv_scale - energy_a_2 += np.einsum('ab,ba', dots_a[idm], delta_dms[idm])*ham.deriv_scale**2 + energy_a_1 += np.einsum('ab,ba', focks_a[idm], delta_dms[idm]) * ham.deriv_scale + energy_a_2 += np.einsum('ab,ba', dots_a[idm], delta_dms[idm]) * ham.deriv_scale ** 2 # print 'energy_a_0', energy_a_0 # print 'energy_a_1', energy_a_1 @@ -227,7 +224,7 @@ def check(dms_a, dms_b): x = xs[ipoint] dms_x = [] for idm in xrange(ham.ndm): - dm_x = dms_a[idm]*(1-x) + dms_b[idm]*x + dm_x = dms_a[idm] * (1 - x) + dms_b[idm] * x dms_x.append(dm_x) ham.reset(*dms_x) energies_x[ipoint] = ham.compute_energy() @@ -236,8 +233,8 @@ def check(dms_a, dms_b): derivs_x[ipoint] += np.einsum('ab,ba', focks_a[idm], delta_dms[idm]) * \ ham.deriv_scale - energies_2nd_order[ipoint] = energy_a_0 + x*energy_a_1 + 0.5*x*x*energy_a_2 - derivs_2nd_order[ipoint] = energy_a_1 + x*energy_a_2 + energies_2nd_order[ipoint] = energy_a_0 + x * energy_a_1 + 0.5 * x * x * energy_a_2 + derivs_2nd_order[ipoint] = energy_a_1 + x * energy_a_2 # print '%5.2f %15.8f %15.8f' % (x, energies_x[ipoint], energies_2nd_order[ipoint]) if do_plot: # pragma: no cover @@ -251,8 +248,8 @@ def check(dms_a, dms_b): pt.plot(xs, derivs_2nd_order, 'k-') pt.savefig('test_derivs.png') - assert abs(energies_x - energies_2nd_order).max()/np.ptp(energies_x) < threshold - assert abs(derivs_x - derivs_2nd_order).max()/np.ptp(derivs_x) < threshold + assert abs(energies_x - energies_2nd_order).max() / np.ptp(energies_x) < threshold + assert abs(derivs_x - derivs_2nd_order).max() / np.ptp(derivs_x) < threshold return energy_a_0, energy_a_1, energy_a_2 # 1) using dms1 as reference point @@ -300,7 +297,7 @@ def check_dot_hessian_cache(ham, *dms): def check_solve(ham, scf_solver, occ_model, olp, kin, na, *orbs): - guess_core_hamiltonian(olp, kin+na, *orbs) + guess_core_hamiltonian(olp, kin + na, *orbs) if scf_solver.kind == 'orb': occ_model.assign(*orbs) assert scf_solver.error(ham, olp, *orbs) > scf_solver.threshold @@ -449,7 +446,8 @@ def check_water_cs_hfs(scf_solver): assert abs(mol.orb_alpha.energies - expected_energies).max() < 2e-4 assert abs(ham.cache['energy_ne'] - -1.977921986200E+02) < 1e-7 assert abs(ham.cache['energy_kin'] - 7.525067610865E+01) < 1e-9 - assert abs(ham.cache['energy_hartree'] + ham.cache['energy_x_dirac'] - 3.864299848058E+01) < 2e-4 + assert abs( + ham.cache['energy_hartree'] + ham.cache['energy_x_dirac'] - 3.864299848058E+01) < 2e-4 assert abs(ham.cache['energy'] - -7.474134898935590E+01) < 2e-4 assert abs(ham.cache['energy_nn'] - 9.1571750414) < 2e-8 @@ -460,14 +458,16 @@ def check_water_cs_hfs(scf_solver): ham.compute_energy() assert abs(ham.cache['energy_ne'] - -1.977921986200E+02) < 1e-4 assert abs(ham.cache['energy_kin'] - 7.525067610865E+01) < 1e-4 - assert abs(ham.cache['energy_hartree'] + ham.cache['energy_x_dirac'] - 3.864299848058E+01) < 2e-4 + assert abs( + ham.cache['energy_hartree'] + ham.cache['energy_x_dirac'] - 3.864299848058E+01) < 2e-4 assert abs(ham.cache['energy'] - -7.474134898935590E+01) < 2e-4 def check_n2_cs_hfs(scf_solver): fn_fchk = context.get_fn('test/n2_hfs_sto3g.fchk') mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'veryfine', random_rotate=False) + grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'veryfine', + random_rotate=False) olp = mol.obasis.compute_overlap() kin = mol.obasis.compute_kinetic() na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) @@ -528,14 +528,17 @@ def check_n2_cs_hfs(scf_solver): assert abs(ham.cache['energy_kin'] - 1.061620887711E+02) < 1e-5 assert abs(ham.cache['energy'] - -106.205213597) < 1e-4 assert abs(ham.cache['energy_nn'] - 23.3180604505) < 1e-8 - assert abs(ham1.cache['energy_hartree'] + ham1.cache['energy_libxc_lda_x'] - 6.247259253877E+01) < 1e-4 - assert abs(ham2.cache['energy_hartree'] + ham2.cache['energy_x_dirac'] - 6.247259253877E+01) < 1e-4 + assert abs( + ham1.cache['energy_hartree'] + ham1.cache['energy_libxc_lda_x'] - 6.247259253877E+01) < 1e-4 + assert abs( + ham2.cache['energy_hartree'] + ham2.cache['energy_x_dirac'] - 6.247259253877E+01) < 1e-4 def check_h3_os_hfs(scf_solver): fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'veryfine', random_rotate=False) + grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'veryfine', + random_rotate=False) olp = mol.obasis.compute_overlap() kin = mol.obasis.compute_kinetic() na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) @@ -563,7 +566,7 @@ def check_h3_os_hfs(scf_solver): # Compare the potential computed by libxc with the builtin implementation energy1, focks1 = helper_compute(ham1, mol.orb_alpha, mol.orb_beta) energy2, focks2 = helper_compute(ham2, mol.orb_alpha, mol.orb_beta) - libxc_pot = ham1.cache.load('pot_libxc_lda_x_both')[:,0] + libxc_pot = ham1.cache.load('pot_libxc_lda_x_both')[:, 0] builtin_pot = ham2.cache.load('pot_x_dirac_alpha') # Libxc apparently approximates values of the potential below 1e-4 with zero. assert abs(libxc_pot - builtin_pot).max() < 1e-4 @@ -602,14 +605,17 @@ def check_h3_os_hfs(scf_solver): assert abs(ham.cache['energy'] - -1.412556114057104E+00) < 1e-5 assert abs(ham.cache['energy_nn'] - 1.8899186021) < 1e-8 - assert abs(ham1.cache['energy_hartree'] + ham1.cache['energy_libxc_lda_x'] - 1.658810998195E+00) < 1e-6 - assert abs(ham2.cache['energy_hartree'] + ham2.cache['energy_x_dirac'] - 1.658810998195E+00) < 1e-6 + assert abs( + ham1.cache['energy_hartree'] + ham1.cache['energy_libxc_lda_x'] - 1.658810998195E+00) < 1e-6 + assert abs( + ham2.cache['energy_hartree'] + ham2.cache['energy_x_dirac'] - 1.658810998195E+00) < 1e-6 def check_co_cs_pbe(scf_solver): fn_fchk = context.get_fn('test/co_pbe_sto3g.fchk') mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'fine', random_rotate=False) + grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'fine', + random_rotate=False) olp = mol.obasis.compute_overlap() kin = mol.obasis.compute_kinetic() na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) @@ -640,9 +646,9 @@ def check_co_cs_pbe(scf_solver): # test orbital energies expected_energies = np.array([ - -1.86831122E+01, -9.73586915E+00, -1.03946082E+00, -4.09331776E-01, - -3.48686522E-01, -3.48686522E-01, -2.06049056E-01, 5.23730418E-02, - 5.23730418E-02, 6.61093726E-01 + -1.86831122E+01, -9.73586915E+00, -1.03946082E+00, -4.09331776E-01, + -3.48686522E-01, -3.48686522E-01, -2.06049056E-01, 5.23730418E-02, + 5.23730418E-02, 6.61093726E-01 ]) assert abs(mol.orb_alpha.energies - expected_energies).max() < 1e-2 @@ -650,7 +656,8 @@ def check_co_cs_pbe(scf_solver): # compare with g09 assert abs(ham.cache['energy_ne'] - -3.072370116827E+02) < 1e-2 assert abs(ham.cache['energy_kin'] - 1.103410779827E+02) < 1e-2 - assert abs(ham.cache['energy_hartree'] + ham.cache['energy_libxc_gga_x_pbe'] + ham.cache['energy_libxc_gga_c_pbe'] - 6.273115782683E+01) < 1e-2 + assert abs(ham.cache['energy_hartree'] + ham.cache['energy_libxc_gga_x_pbe'] + ham.cache[ + 'energy_libxc_gga_c_pbe'] - 6.273115782683E+01) < 1e-2 assert abs(ham.cache['energy'] - -1.116465967841901E+02) < 1e-4 assert abs(ham.cache['energy_nn'] - 22.5181790889) < 1e-7 @@ -658,7 +665,8 @@ def check_co_cs_pbe(scf_solver): def check_h3_os_pbe(scf_solver): fn_fchk = context.get_fn('test/h3_pbe_321g.fchk') mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'veryfine', random_rotate=False) + grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'veryfine', + random_rotate=False) olp = mol.obasis.compute_overlap() kin = mol.obasis.compute_kinetic() na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) @@ -706,7 +714,8 @@ def check_h3_os_pbe(scf_solver): # compare with g09 assert abs(ham.cache['energy_ne'] - -6.934705182067E+00) < 1e-5 assert abs(ham.cache['energy_kin'] - 1.948808793424E+00) < 1e-5 - assert abs(ham.cache['energy_hartree'] + ham.cache['energy_libxc_gga_x_pbe'] + ham.cache['energy_libxc_gga_c_pbe'] - 1.502769385597E+00) < 1e-5 + assert abs(ham.cache['energy_hartree'] + ham.cache['energy_libxc_gga_x_pbe'] + ham.cache[ + 'energy_libxc_gga_c_pbe'] - 1.502769385597E+00) < 1e-5 assert abs(ham.cache['energy'] - -1.593208400939354E+00) < 1e-5 assert abs(ham.cache['energy_nn'] - 1.8899186021) < 1e-8 @@ -748,7 +757,7 @@ def check_vanadium_sc_hf(scf_solver): # Allocate orbitals and make the initial guess orb_alpha = Orbitals(obasis.nbasis) - guess_core_hamiltonian(olp, kin+na, orb_alpha) + guess_core_hamiltonian(olp, kin + na, orb_alpha) # SCF test check_solve(ham, scf_solver, occ_model, olp, kin, na, orb_alpha) diff --git a/horton/meanfield/test/test_bond_order.py b/horton/meanfield/test/test_bond_order.py index 5ea8e770..f55c6d78 100644 --- a/horton/meanfield/test/test_bond_order.py +++ b/horton/meanfield/test/test_bond_order.py @@ -30,15 +30,16 @@ def check_bond_orders(fn): if dm_full is not None: dm_spin = mol.get_dm_spin() if dm_spin is not None: - dm_alpha = 0.5*(dm_full + dm_spin) - dm_beta = 0.5*(dm_full - dm_spin) - bond_orders, valences, free_valences = compute_bond_orders_os(dm_alpha, dm_beta, operators) + dm_alpha = 0.5 * (dm_full + dm_spin) + dm_beta = 0.5 * (dm_full - dm_spin) + bond_orders, valences, free_valences = compute_bond_orders_os(dm_alpha, dm_beta, + operators) else: - dm_alpha = 0.5*dm_full + dm_alpha = 0.5 * dm_full bond_orders, valences, free_valences = compute_bond_orders_cs(dm_alpha, operators) else: raise NotImplementedError - assert abs(bond_orders.sum() - 2*mol.numbers.sum()) < 1e-3 + assert abs(bond_orders.sum() - 2 * mol.numbers.sum()) < 1e-3 assert bond_orders.shape == (mol.natom, mol.natom) assert valences.shape == (mol.natom,) assert free_valences.shape == (mol.natom,) diff --git a/horton/meanfield/test/test_builtin.py b/horton/meanfield/test/test_builtin.py index 8a8e92fb..4031947d 100644 --- a/horton/meanfield/test/test_builtin.py +++ b/horton/meanfield/test/test_builtin.py @@ -28,7 +28,8 @@ def test_becke_hartree_n2_hfs_sto3g(): fn_fchk = context.get_fn('test/n2_hfs_sto3g.fchk') mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False, mode='keep') + grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False, + mode='keep') er = mol.obasis.compute_electron_repulsion() ham1 = REffHam([RDirectTerm(er, 'hartree')]) @@ -51,7 +52,8 @@ def test_becke_hartree_n2_hfs_sto3g(): def test_becke_hartree_h3_hfs_321g(): fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False, mode='keep') + grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False, + mode='keep') er = mol.obasis.compute_electron_repulsion() ham1 = UEffHam([UDirectTerm(er, 'hartree')]) diff --git a/horton/meanfield/test/test_gridgroup.py b/horton/meanfield/test/test_gridgroup.py index d2b97e24..86a6ec42 100644 --- a/horton/meanfield/test/test_gridgroup.py +++ b/horton/meanfield/test/test_gridgroup.py @@ -20,7 +20,6 @@ # -- """Test horton/meanfield/gridgroup.py.""" - from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import diff --git a/horton/meanfield/test/test_guess.py b/horton/meanfield/test/test_guess.py index 44c6642b..b84d4639 100644 --- a/horton/meanfield/test/test_guess.py +++ b/horton/meanfield/test/test_guess.py @@ -31,9 +31,10 @@ def test_guess_hamcore_cs(): olp = mol.obasis.compute_overlap() kin = mol.obasis.compute_kinetic() na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - guess_core_hamiltonian(olp, kin+na, mol.orb_alpha) + guess_core_hamiltonian(olp, kin + na, mol.orb_alpha) # just a few simple checks - assert abs(mol.orb_alpha.energies[0] - (-2.59083334E+01)) > 1e-5 # values from fchk must be overwritten + assert abs(mol.orb_alpha.energies[0] - ( + -2.59083334E+01)) > 1e-5 # values from fchk must be overwritten assert (mol.orb_alpha.energies.argsort() == np.arange(mol.obasis.nbasis)).all() @@ -43,10 +44,12 @@ def test_guess_hamcore_os(): olp = mol.obasis.compute_overlap() kin = mol.obasis.compute_kinetic() na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - guess_core_hamiltonian(olp, kin+na, mol.orb_alpha, mol.orb_beta) + guess_core_hamiltonian(olp, kin + na, mol.orb_alpha, mol.orb_beta) # just a few simple checks - assert abs(mol.orb_alpha.energies[0] - (-2.76116635E+00)) > 1e-5 # values from fchk must be overwritten - assert abs(mol.orb_beta.energies[0] - (-2.76031162E+00)) > 1e-5 # values from fchk must be overwritten + assert abs(mol.orb_alpha.energies[0] - ( + -2.76116635E+00)) > 1e-5 # values from fchk must be overwritten + assert abs( + mol.orb_beta.energies[0] - (-2.76031162E+00)) > 1e-5 # values from fchk must be overwritten assert (mol.orb_alpha.energies.argsort() == np.arange(mol.obasis.nbasis)).all() assert abs(mol.orb_alpha.energies - mol.orb_beta.energies).max() < 1e-10 assert abs(mol.orb_alpha.coeffs - mol.orb_beta.coeffs).max() < 1e-10 diff --git a/horton/meanfield/test/test_hamiltonian.py b/horton/meanfield/test/test_hamiltonian.py index e93fe6dd..95b74a16 100644 --- a/horton/meanfield/test/test_hamiltonian.py +++ b/horton/meanfield/test/test_hamiltonian.py @@ -92,17 +92,17 @@ def test_perturbation(): assert mol.obasis.nbasis % 2 == 0 nfirst = mol.obasis.nbasis / 2 operator = mol.obasis.compute_overlap().copy() - operator[:nfirst,nfirst:] *= 0.5 - operator[nfirst:,:nfirst] *= 0.5 - operator[nfirst:,nfirst:] = 0.0 + operator[:nfirst, nfirst:] *= 0.5 + operator[nfirst:, :nfirst] *= 0.5 + operator[nfirst:, nfirst:] = 0.0 - # Apply the perturbation with oposite signs and check that, because of + # Apply the perturbation with opposite signs and check that, because of # symmetry, the energy of the perturbed wavefunction is the same in both # cases, and higher than the unperturbed. energy1_old = None for scale in 0.1, -0.1: # Perturbation - tmp = scale*operator + tmp = scale * operator perturbation = RTwoIndexTerm(tmp, 'pert') # Hamiltonian terms = [ diff --git a/horton/meanfield/test/test_indextransform.py b/horton/meanfield/test/test_indextransform.py index 7f1551ea..fa4506ea 100644 --- a/horton/meanfield/test/test_indextransform.py +++ b/horton/meanfield/test/test_indextransform.py @@ -24,7 +24,8 @@ from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from .. indextransform import _parse_four_index_transform_orbs +from ..indextransform import _parse_four_index_transform_orbs + def test_parse_index_transform_orbs(): assert _parse_four_index_transform_orbs(0, 1, 2, 3) == (0, 1, 2, 3) @@ -116,7 +117,7 @@ def check_core_active(mol, basis_str, ncore, nactive): # Decide how to occupy the orbitals assert mol.numbers.sum() % 2 == 0 - nocc = mol.numbers.sum()/2 + nocc = mol.numbers.sum() / 2 assert ncore + nactive > nocc enucnuc = compute_nucnuc(mol.coordinates, mol.pseudo_numbers) @@ -127,7 +128,7 @@ def check_core_active(mol, basis_str, ncore, nactive): one, two, enucnuc, orb_alpha1, ncore, nactive) # C1) Verify the RHF energy using the active space integrals energy2, orb_alpha2 = helper_hf( - np.identity(len(one_small)), ecore, one_small, two_small, nocc-ncore) + np.identity(len(one_small)), ecore, one_small, two_small, nocc - ncore) np.testing.assert_almost_equal(energy1, energy2) # B2) Get integrals for the active space, using einsum transformation @@ -135,7 +136,7 @@ def check_core_active(mol, basis_str, ncore, nactive): one, two, enucnuc, orb_alpha1, ncore, nactive, indextrans='einsum') # C2) Verify the RHF energy using the active space integrals energy2, orb_alpha2 = helper_hf( - np.identity(len(one_small)), ecore, one_small, two_small, nocc-ncore) + np.identity(len(one_small)), ecore, one_small, two_small, nocc - ncore) np.testing.assert_almost_equal(energy1, energy2) @@ -222,7 +223,7 @@ def check_core_active_cholesky(mol, basis_str, ncore, nactive): # Decide how to occupy the orbitals assert mol.numbers.sum() % 2 == 0 - nocc = mol.numbers.sum()/2 + nocc = mol.numbers.sum() / 2 assert ncore + nactive > nocc energy1, orb_alpha1 = helper_hf_cholesky(olp, enucnuc, one, two_vecs, nocc) @@ -232,7 +233,7 @@ def check_core_active_cholesky(mol, basis_str, ncore, nactive): one, two_vecs, enucnuc, orb_alpha1, ncore, nactive) # C1) Verify the RHF energy using the active space integrals energy2, orb_alpha2 = helper_hf_cholesky( - np.identity(len(one_small)), ecore, one_small, two_vecs_small, nocc-ncore) + np.identity(len(one_small)), ecore, one_small, two_vecs_small, nocc - ncore) np.testing.assert_almost_equal(energy1, energy2) # B2) Get integrals for the active space, using einsum transformation @@ -240,7 +241,7 @@ def check_core_active_cholesky(mol, basis_str, ncore, nactive): one, two_vecs, enucnuc, orb_alpha1, ncore, nactive, indextrans='einsum') # C2) Verify the RHF energy using the active space integrals energy2, orb_alpha2 = helper_hf_cholesky( - np.identity(len(one_small)), ecore, one_small, two_vecs_small, nocc-ncore) + np.identity(len(one_small)), ecore, one_small, two_vecs_small, nocc - ncore) np.testing.assert_almost_equal(energy1, energy2) diff --git a/horton/meanfield/test/test_libxc.py b/horton/meanfield/test/test_libxc.py index fd4073d6..6067ad05 100644 --- a/horton/meanfield/test/test_libxc.py +++ b/horton/meanfield/test/test_libxc.py @@ -29,7 +29,7 @@ def setup_gga_cs(name): - """Prepare datastructures for R-GGA calculation in CO.""" + """Prepare data structures for R-GGA calculation in CO.""" fn_fchk = context.get_fn('test/co_pbe_sto3g.fchk') mol = IOData.from_file(fn_fchk) mol.dm_alpha = mol.orb_alpha.to_dm() @@ -59,7 +59,7 @@ def test_dot_hessian_c_pbe_cs(): def test_dot_hessian_c_pbe_cs_polynomial(): mol, olp, kin, na, ham = setup_gga_cs('c_pbe') - check_dot_hessian_polynomial(olp, kin+na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) + check_dot_hessian_polynomial(olp, kin + na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) def test_dot_hessian_c_pbe_cs_cache(): @@ -79,7 +79,7 @@ def test_dot_hessian_x_pbe_cs(): def test_dot_hessian_x_pbe_cs_polynomial(): mol, olp, kin, na, ham = setup_gga_cs('x_pbe') - check_dot_hessian_polynomial(olp, kin+na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) + check_dot_hessian_polynomial(olp, kin + na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) def test_dot_hessian_x_pbe_cs_cache(): @@ -88,7 +88,7 @@ def test_dot_hessian_x_pbe_cs_cache(): def setup_hfs_cs(): - """Prepare datastructures for R-HFS (x-functional-only) calculation on CO.""" + """Prepare data structures for R-HFS (x-functional-only) calculation on CO.""" fn_fchk = context.get_fn('test/co_pbe_sto3g.fchk') mol = IOData.from_file(fn_fchk) mol.dm_alpha = mol.orb_alpha.to_dm() @@ -120,7 +120,7 @@ def test_dot_hessian_hfs_cs(): def test_dot_hessian_hfs_cs_polynomial(): mol, olp, kin, na, ham = setup_hfs_cs() - check_dot_hessian_polynomial(olp, kin+na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) + check_dot_hessian_polynomial(olp, kin + na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) def test_dot_hessian_hfs_cs_cache(): @@ -129,7 +129,7 @@ def test_dot_hessian_hfs_cs_cache(): def setup_x_pbe_c_vwn_cs(): - """Setup datastructure for mixed GGA+LDA calculation.""" + """Setup data structure for mixed GGA+LDA calculation.""" # mixing of GGA and LDA fn_fchk = context.get_fn('test/water_hfs_321g.fchk') mol = IOData.from_file(fn_fchk) @@ -161,7 +161,7 @@ def test_dot_hessian_x_pbe_c_vwn_cs(): def test_dot_hessian_x_pbe_c_vwn_cs_polynomial(): mol, olp, kin, na, ham = setup_x_pbe_c_vwn_cs() - check_dot_hessian_polynomial(olp, kin+na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) + check_dot_hessian_polynomial(olp, kin + na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) def test_dot_hessian_x_pbe_c_vwn_cs_cache(): @@ -170,7 +170,7 @@ def test_dot_hessian_x_pbe_c_vwn_cs_cache(): def setup_c_vwn_cs(): - """Prepare datastructures for R-VWN (c-functional-only) calculation on water.""" + """Prepare data structures for R-VWN (c-functional-only) calculation on water.""" fn_fchk = context.get_fn('test/water_hfs_321g.fchk') mol = IOData.from_file(fn_fchk) mol.dm_alpha = mol.orb_alpha.to_dm() @@ -200,7 +200,7 @@ def test_dot_hessian_c_vwn_cs(): def test_dot_hessian_c_vwn_cs_polynomial(): mol, olp, kin, na, ham = setup_c_vwn_cs() - check_dot_hessian_polynomial(olp, kin+na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) + check_dot_hessian_polynomial(olp, kin + na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) def test_dot_hessian_c_vwn_cs_cache(): @@ -209,7 +209,7 @@ def test_dot_hessian_c_vwn_cs_cache(): def setup_o3lyp_cs(): - """Prepare datastructures for R-O3LYP (xc-functional-only) calculation on water.""" + """Prepare data structures for R-O3LYP (xc-functional-only) calculation on water.""" fn_fchk = context.get_fn('test/water_hfs_321g.fchk') mol = IOData.from_file(fn_fchk) mol.dm_alpha = mol.orb_alpha.to_dm() @@ -297,7 +297,7 @@ def test_cubic_interpolation_x_pbe_os(): def setup_hfs_os(): - """Prepare datastructures for U_HFS (x-functional-only) calculation in H3 radical.""" + """Prepare data structures for U_HFS (x-functional-only) calculation in H3 radical.""" fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') mol = IOData.from_file(fn_fchk) mol.dm_alpha = mol.orb_alpha.to_dm() @@ -376,7 +376,7 @@ def test_cubic_interpolation_x_tpss_os(): def test_functionals_present(): t1 = RLibXCLDA('c_vwn') # The VWN 5 functional assert t1._libxc_wrapper.key == 'lda_c_vwn' - t2 = RLibXCLDA('c_vwn_4') # The VWN 4 functional + t2 = RLibXCLDA('c_vwn_4') # The VWN 4 functional assert t2._libxc_wrapper.key == 'lda_c_vwn_4' t3 = RLibXCHybridGGA('xc_wb97x') assert t3._libxc_wrapper.key == 'hyb_gga_xc_wb97x' diff --git a/horton/meanfield/test/test_observable.py b/horton/meanfield/test/test_observable.py index b25318fa..c74a54d9 100644 --- a/horton/meanfield/test/test_observable.py +++ b/horton/meanfield/test/test_observable.py @@ -20,14 +20,13 @@ # -- """Unit tests for horton/meanfield/observable.py.""" - from horton import * # pylint: disable=wildcard-import,unused-wildcard-import from .common import check_dot_hessian, \ check_dot_hessian_polynomial, check_dot_hessian_cache def setup_rhf_case(cholesky=False): - """Prepare datastructures for R-HF calculation on Water.""" + """Prepare data structures for R-HF calculation on Water.""" fn_fchk = context.get_fn('test/water_sto3g_hf_g03.fchk') mol = IOData.from_file(fn_fchk) mol.dm_alpha = mol.orb_alpha.to_dm() @@ -81,7 +80,7 @@ def test_cache_dot_hessian_rhf_cholesky(): def setup_uhf_case(cholesky=False): - """Prepare datastructures for UHF calculation.""" + """Prepare data structures for UHF calculation.""" fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') mol = IOData.from_file(fn_fchk) mol.dm_alpha = mol.orb_alpha.to_dm() diff --git a/horton/meanfield/test/test_orbitals.py b/horton/meanfield/test/test_orbitals.py index dcb52952..23eb03c7 100644 --- a/horton/meanfield/test/test_orbitals.py +++ b/horton/meanfield/test/test_orbitals.py @@ -20,8 +20,8 @@ # -- -import numpy as np import h5py as h5 +import numpy as np from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import @@ -64,7 +64,7 @@ def get_signs(n): It is guaranteed that not all signs are positive. """ while True: - signs = np.random.randint(0, 1, n)*2 -1 + signs = np.random.randint(0, 1, n) * 2 - 1 if (signs < 0).any(): return signs @@ -76,7 +76,7 @@ def get_random_orbitals(nbasis): a = a + a.T evals, evecs = np.linalg.eigh(a) orb.coeffs[:] = evecs - orb.occupations[:nbasis/2] = 1.0 + orb.occupations[:nbasis / 2] = 1.0 orb.energies[:] = np.random.uniform(-1, 1, nbasis) orb.energies.sort() olp = np.identity(nbasis) @@ -91,7 +91,8 @@ def test_orbitals_hdf5(): for args in (4,), (6, 3): a = Orbitals(*args) a.randomize() - with h5.File('horton.meanfield.test.test_orbitals.test_orbitals_hdf5', driver='core', backing_store=False) as f: + with h5.File('horton.meanfield.test.test_orbitals.test_orbitals_hdf5', driver='core', + backing_store=False) as f: a.to_hdf5(f) b = Orbitals.from_hdf5(f) assert a == b @@ -108,7 +109,7 @@ def test_orbitals_copy_new_randomize_clear_assign(): assert a != b c = b.copy() assert b == c - assert not( b is c) + assert not (b is c) d = Orbitals(*args) assert a == d b.clear() @@ -180,7 +181,7 @@ def test_orbitals_error_eigen(): with numpy_seed(1): orb = Orbitals(5) a = np.random.normal(0, 1, (5, 5)) - fock = a+a.T + fock = a + a.T evals, evecs = np.linalg.eigh(fock) orb.coeffs[:] = evecs orb.energies[:] = evals @@ -193,7 +194,7 @@ def test_orbitals_error_eigen(): def test_orbitals_from_fock(): with numpy_seed(1): a = np.random.normal(0, 1, (5, 5)) - fock = a+a.T + fock = a + a.T a = np.random.normal(0, 1, (5, 5)) olp = np.dot(a, a.T) orb = Orbitals(5) @@ -209,11 +210,11 @@ def test_orbitals_from_fock_and_dm(): olp = np.zeros((natom, natom)) for i in xrange(natom): fock[i, i] = 0.6 - fock[i, (i+1) % natom] = -0.2 - fock[(i+1) % natom, i] = -0.2 + fock[i, (i + 1) % natom] = -0.2 + fock[(i + 1) % natom, i] = -0.2 olp[i, i] = 1.0 - olp[i, (i+1) % natom] = 0.2 - olp[(i+1) % natom, i] = 0.2 + olp[i, (i + 1) % natom] = 0.2 + olp[(i + 1) % natom, i] = 0.2 # Create orbitals that will be used to construct various density matrices orb = Orbitals(natom) @@ -241,14 +242,14 @@ def check_case(orb0): # Case 3: incompatible degeneracies and rotated degenerate orbitals orb.occupations[:] = [2, 1, 0, 0, 0] for i in xrange(36): - orb.rotate_2orbitals(np.pi/18.0, 1, 2) + orb.rotate_2orbitals(np.pi / 18.0, 1, 2) check_case(orb) # Case 4: incompatible degeneracies, fractional occupations and rotated # degenerate orbitals orb.occupations[:] = [1.5, 0.7, 0.3, 0, 0] for i in xrange(36): - orb.rotate_2orbitals(np.pi/18.0, 1, 2) + orb.rotate_2orbitals(np.pi / 18.0, 1, 2) check_case(orb) @@ -260,7 +261,7 @@ def test_orbitals_naturals(): orb = Orbitals(dm.shape[0]) orb.derive_naturals(dm, overlap) assert orb.occupations.min() > -1e-6 - assert orb.occupations.max() < 1+1e-6 + assert orb.occupations.max() < 1 + 1e-6 orb.check_normalization(overlap) @@ -304,7 +305,6 @@ def test_orbitals_to_dm2(): fn_fchk = context.get_fn('test/ch3_hf_sto3g.fchk') mol = IOData.from_file(fn_fchk) dm = mol.orb_alpha.to_dm() + mol.orb_beta.to_dm() - olp = mol.obasis.compute_overlap() np.testing.assert_almost_equal(dm, mol.get_dm_full()) np.testing.assert_almost_equal(dm, dm.T) @@ -332,13 +332,12 @@ def test_orbitals_two_index_rotate_2orbitals(): orb1 = orb0.copy() orb1.rotate_2orbitals() orb1.check_normalization(olp) - check = np.identity(4, float) dots = np.dot(orb0.coeffs.T, orb1.coeffs) check = np.identity(4) - check[1,1] = 1.0/np.sqrt(2) - check[1,2] = 1.0/np.sqrt(2) - check[2,1] = -1.0/np.sqrt(2) - check[2,2] = 1.0/np.sqrt(2) + check[1, 1] = 1.0 / np.sqrt(2) + check[1, 2] = 1.0 / np.sqrt(2) + check[2, 1] = -1.0 / np.sqrt(2) + check[2, 2] = 1.0 / np.sqrt(2) np.testing.assert_almost_equal(dots, check) @@ -349,10 +348,10 @@ def test_orbitals_swap_orbitals(): orb1.swap_orbitals(np.array([[0, 1], [2, 3]])) dots = np.dot(orb0.coeffs.T, orb1.coeffs) check = np.zeros((4, 4)) - check[0,1] = 1.0 - check[1,0] = 1.0 - check[2,3] = 1.0 - check[3,2] = 1.0 + check[0, 1] = 1.0 + check[1, 0] = 1.0 + check[2, 3] = 1.0 + check[3, 2] = 1.0 np.testing.assert_almost_equal(dots, check) with assert_raises(TypeError): orb1.swap_orbitals(np.zeros((3, 3), dtype=int)) diff --git a/horton/meanfield/test/test_project.py b/horton/meanfield/test/test_project.py index 4e6c3f9c..8cbe53ec 100644 --- a/horton/meanfield/test/test_project.py +++ b/horton/meanfield/test/test_project.py @@ -20,8 +20,6 @@ # -- -import numpy as np - from horton import * # pylint: disable=wildcard-import,unused-wildcard-import from .common import helper_compute @@ -32,8 +30,8 @@ def test_project_msg_identical(): project_orbitals_mgs(mol.obasis, mol.obasis, mol.orb_alpha, orb) assert (orb.energies == 0.0).all() assert (orb.occupations == mol.orb_alpha.occupations).all() - assert abs(orb.coeffs[:,:-2] - mol.orb_alpha.coeffs[:,:-2]).max() < 1e-9 - assert (orb.coeffs[:,-2:] == 0.0).all() + assert abs(orb.coeffs[:, :-2] - mol.orb_alpha.coeffs[:, :-2]).max() < 1e-9 + assert (orb.coeffs[:, -2:] == 0.0).all() def test_project_ortho_basis_identical(): @@ -47,7 +45,6 @@ def test_project_ortho_basis_identical(): def test_project_ortho_olp_identical(): mol = IOData.from_file(context.get_fn('test/water_sto3g_hf_g03.fchk')) - olp = np.identity(mol.obasis.nbasis) orb = Orbitals(mol.obasis.nbasis) project_orbitals_ortho(mol.obasis, mol.obasis, mol.orb_alpha, orb) assert (orb.energies == 0.0).all() @@ -67,7 +64,7 @@ def test_project_msg_larger(): project_orbitals_mgs(obasis0, obasis1, orb0, orb1) assert (orb1.energies == 0.0).all() assert orb0.occupations.sum() == orb1.occupations.sum() - assert (orb1.coeffs[:,5:] == 0.0).all() + assert (orb1.coeffs[:, 5:] == 0.0).all() # Check the normalization of the projected orbitals olp = obasis1.compute_overlap() @@ -93,12 +90,12 @@ def test_project_msg_larger(): occ_model = AufbauOccModel(5) scf_solver(ham, olp, occ_model, orb1) energy2 = ham.cache['energy'] - assert energy2 < energy1 # the energy should decrease after scf convergence + assert energy2 < energy1 # the energy should decrease after scf convergence # Construct a core initial guess - guess_core_hamiltonian(olp, kin+na, orb1) + guess_core_hamiltonian(olp, kin + na, orb1) energy3 = helper_compute(ham, orb1)[0] - assert energy3 > energy1 # the projected guess should be better than the core guess + assert energy3 > energy1 # the projected guess should be better than the core guess def test_project_msg_smaller(): @@ -118,8 +115,8 @@ def test_project_msg_smaller(): assert (orb1_beta.energies == 0.0).all() assert orb1_alpha.occupations.sum() == 2 assert orb1_beta.occupations.sum() == 1 - assert (orb1_alpha.coeffs[:,2:] == 0.0).all() - assert (orb1_beta.coeffs[:,1:] == 0.0).all() + assert (orb1_alpha.coeffs[:, 2:] == 0.0).all() + assert (orb1_beta.coeffs[:, 1:] == 0.0).all() # Check the normalization of the projected orbitals olp = obasis1.compute_overlap() @@ -145,11 +142,11 @@ def test_project_msg_smaller(): occ_model = AufbauOccModel(2, 1) scf_solver(ham, olp, occ_model, orb1_alpha, orb1_beta) energy2 = ham.cache['energy'] - assert energy2 < energy1 # the energy should decrease after scf convergence + assert energy2 < energy1 # the energy should decrease after scf convergence def get_basis_pair_geometry(): - '''Prepare two basis sets that only differ in geometry''' + """Prepare two basis sets that only differ in geometry""" # Create initial system mol = IOData.from_file(context.get_fn('test/water.xyz')) obasis0 = get_gobasis(mol.coordinates, mol.numbers, 'sto-3g') @@ -162,15 +159,14 @@ def get_basis_pair_geometry(): olp = obasis0.compute_overlap() kin = obasis0.compute_kinetic() na = obasis0.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = obasis0.compute_electron_repulsion() - guess_core_hamiltonian(olp, kin+na, orb0) + guess_core_hamiltonian(olp, kin + na, orb0) # Internal consistency check orb0.check_orthonormality(obasis0.compute_overlap()) # Change geometry - mol.coordinates[1,2] += 0.5 - mol.coordinates[0,1] -= 1.5 + mol.coordinates[1, 2] += 0.5 + mol.coordinates[0, 1] -= 1.5 obasis1 = get_gobasis(mol.coordinates, mol.numbers, 'sto-3g') orb1 = Orbitals(obasis1.nbasis) @@ -178,7 +174,7 @@ def get_basis_pair_geometry(): def test_project_msg_geometry(): - obasis0, obasis1, orb0, orb1= get_basis_pair_geometry() + obasis0, obasis1, orb0, orb1 = get_basis_pair_geometry() # Project from one to other: project_orbitals_mgs(obasis0, obasis1, orb0, orb1) @@ -186,7 +182,7 @@ def test_project_msg_geometry(): # Basic checks assert (orb1.energies == 0.0).all() assert (orb1.occupations == orb0.occupations).all() - assert abs(orb1.coeffs[:,:5] - orb0.coeffs[:,:5]).max() > 1e-3 # something should change + assert abs(orb1.coeffs[:, :5] - orb0.coeffs[:, :5]).max() > 1e-3 # something should change # Check orthonormality orb1.check_orthonormality(obasis1.compute_overlap()) @@ -201,7 +197,7 @@ def test_project_ortho_basis_geometry(): # Basic checks assert (orb1.energies == 0.0).all() assert (orb1.occupations == orb0.occupations).all() - assert abs(orb1.coeffs[:,:5] - orb0.coeffs[:,:5]).max() > 1e-3 # something should change + assert abs(orb1.coeffs[:, :5] - orb0.coeffs[:, :5]).max() > 1e-3 # something should change # Check orthonormality orb1.check_orthonormality(obasis1.compute_overlap()) @@ -218,7 +214,7 @@ def test_project_ortho_olp_geometry(): # Basic checks assert (orb1.energies == 0.0).all() assert (orb1.occupations == orb0.occupations).all() - assert abs(orb1.coeffs[:,:5] - orb0.coeffs[:,:5]).max() > 1e-3 # something should change + assert abs(orb1.coeffs[:, :5] - orb0.coeffs[:, :5]).max() > 1e-3 # something should change # Check orthonormality orb1.check_orthonormality(obasis1.compute_overlap()) diff --git a/horton/meanfield/test/test_rotate.py b/horton/meanfield/test/test_rotate.py index a92009cf..32f79f05 100644 --- a/horton/meanfield/test/test_rotate.py +++ b/horton/meanfield/test/test_rotate.py @@ -41,9 +41,9 @@ def test_rotation_energy(): def test_rotation_sp(): mol = IOData.from_file(context.get_fn('test/he_sp_orbital.fchk')) rmat = np.array([[0.0, -1.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) - assert (mol.orb_alpha.coeffs[5:7,3:5] == [[0, 1], [1, 0]]).all() + assert (mol.orb_alpha.coeffs[5:7, 3:5] == [[0, 1], [1, 0]]).all() mol.orb_alpha.coeffs[:] = rotate_coeffs(mol.orb_alpha.coeffs, mol.obasis, rmat) - assert (mol.orb_alpha.coeffs[5:7,3:5] == [[-1, 0], [0, 1]]).all() + assert (mol.orb_alpha.coeffs[5:7, 3:5] == [[-1, 0], [0, 1]]).all() def test_rotation_orhonormal(): @@ -57,24 +57,24 @@ def helper(begin, end): orb = Orbitals(obasis.nbasis) orb.occupations[:norb] = 1 # fill with random orbitals and lowdin orthogonalize - #orb.coeffs[begin:end,:norb] = np.random.normal(0, 1, (norb, norb)) - orb.coeffs[begin:end,:norb] = np.identity(norb) - grammian = np.dot(orb.coeffs[:,:norb].T, np.dot(overlap, orb.coeffs[:,:norb])) + # orb.coeffs[begin:end,:norb] = np.random.normal(0, 1, (norb, norb)) + orb.coeffs[begin:end, :norb] = np.identity(norb) + grammian = np.dot(orb.coeffs[:, :norb].T, np.dot(overlap, orb.coeffs[:, :norb])) evals, evecs = np.linalg.eigh(grammian) - orb.coeffs[:,:norb] = np.dot(orb.coeffs[:,:norb], evecs)/evals**0.5 - assert (orb.coeffs[:begin,:norb] == 0.0).all() - assert (orb.coeffs[end:,:norb] == 0.0).all() + orb.coeffs[:, :norb] = np.dot(orb.coeffs[:, :norb], evecs) / evals ** 0.5 + assert (orb.coeffs[:begin, :norb] == 0.0).all() + assert (orb.coeffs[end:, :norb] == 0.0).all() orb.check_normalization(overlap) # apply rotation and check normalization again rmat = get_random_rotation() - #rmat = np.array([[0, 1, 0], [0, 0, 1], [1, 0, 0]]) - #rmat = get_rotation_matrix(np.array([0, 0, 1]), np.pi/4) - orb.coeffs[:,:norb] = rotate_coeffs(orb.coeffs[:,:norb], obasis, rmat) + # rmat = np.array([[0, 1, 0], [0, 0, 1], [1, 0, 0]]) + # rmat = get_rotation_matrix(np.array([0, 0, 1]), np.pi/4) + orb.coeffs[:, :norb] = rotate_coeffs(orb.coeffs[:, :norb], obasis, rmat) orb.check_normalization(overlap) - helper( 0, 4) # all s-type basis functions - helper( 4, 13) # all p-type basis functions - helper(13, 14) # just one d-type basis function - helper(13, 19) # first set of d-type basis functions - helper(13, 25) # all d-type basis functions - helper(25, 35) # all f-type basis functions + helper(0, 4) # all s-type basis functions + helper(4, 13) # all p-type basis functions + helper(13, 14) # just one d-type basis function + helper(13, 19) # first set of d-type basis functions + helper(13, 25) # all d-type basis functions + helper(25, 35) # all f-type basis functions diff --git a/horton/meanfield/test/test_scf.py b/horton/meanfield/test/test_scf.py index dad26461..149c12e8 100644 --- a/horton/meanfield/test/test_scf.py +++ b/horton/meanfield/test/test_scf.py @@ -20,8 +20,6 @@ # -- -import numpy as np - from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import diff --git a/horton/meanfield/test/test_scf_cdiis.py b/horton/meanfield/test/test_scf_cdiis.py index 169adb16..fc5b8f5c 100644 --- a/horton/meanfield/test/test_scf_cdiis.py +++ b/horton/meanfield/test/test_scf_cdiis.py @@ -20,8 +20,6 @@ # -- -import numpy as np - from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import diff --git a/horton/meanfield/test/test_scf_ediis.py b/horton/meanfield/test/test_scf_ediis.py index 04b7dfd4..96da0161 100644 --- a/horton/meanfield/test/test_scf_ediis.py +++ b/horton/meanfield/test/test_scf_ediis.py @@ -21,7 +21,6 @@ import numpy as np - from nose.plugins.attrib import attr from nose.tools import assert_raises @@ -122,7 +121,7 @@ def test_interpol_lih_os_hf(): def check_interpol_hf(ham, orbs, olp, kin, na, occ_model): - guess_core_hamiltonian(olp, kin+na, *orbs) + guess_core_hamiltonian(olp, kin + na, *orbs) dms = [exp.to_dm() for exp in orbs] scf_solver = EDIISSCFSolver(maxiter=4) try: @@ -139,9 +138,9 @@ def check_interpol_hf(ham, orbs, olp, kin, na, occ_model): energies_approx = np.zeros(npt) energies_hf = np.zeros(npt) for ipt in xrange(npt): - x[0] = 1-alphas[ipt] + x[0] = 1 - alphas[ipt] x[1] = alphas[ipt] - energies_approx[ipt] = np.dot(x, 0.5*np.dot(b, x)-e) + energies_approx[ipt] = np.dot(x, 0.5 * np.dot(b, x) - e) # compute the hf energy scf_solver._history._build_combinations(x, dms, None) ham.reset(*dms) diff --git a/horton/meanfield/test/test_scf_ediis2.py b/horton/meanfield/test/test_scf_ediis2.py index ae1c57a0..24730e9f 100644 --- a/horton/meanfield/test/test_scf_ediis2.py +++ b/horton/meanfield/test/test_scf_ediis2.py @@ -20,8 +20,6 @@ # -- -import numpy as np - from nose.plugins.attrib import attr from nose.tools import assert_raises diff --git a/horton/meanfield/test/test_scf_oda.py b/horton/meanfield/test/test_scf_oda.py index 2b1b3d44..2d7a6645 100644 --- a/horton/meanfield/test/test_scf_oda.py +++ b/horton/meanfield/test/test_scf_oda.py @@ -21,9 +21,8 @@ import numpy as np - -from nose.tools import assert_raises from nose.plugins.attrib import attr +from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import from .common import check_hf_cs_hf, check_lih_os_hf, \ @@ -78,7 +77,7 @@ def test_methyl_os_tpss(): def test_find_min_cubic(): - from .. scf_oda import find_min_cubic + from ..scf_oda import find_min_cubic assert find_min_cubic(0.2, 0.5, 3.0, -0.7) == 0.0 assert abs(find_min_cubic(2.1, -5.2, -3.0, 2.8) - 0.939645667705) < 1e-8 assert abs(find_min_cubic(0.0, 1.0, -0.1, -0.1) - 0.0153883154024) < 1e-8 @@ -91,7 +90,7 @@ def test_find_min_cubic(): def test_find_min_quadratic(): - from .. scf_oda import find_min_quadratic + from ..scf_oda import find_min_quadratic assert find_min_quadratic(0.0, -0.7) == 1.0 assert abs(find_min_quadratic(-3.0, 2.8) - 0.51724137931) < 1e-8 assert abs(find_min_quadratic(-0.2, 0.1) - 0.666666666667) < 1e-8 @@ -114,26 +113,25 @@ def test_aufbau_spin(): terms = [ UTwoIndexTerm(kin, 'kin'), UDirectTerm(er, 'hartree'), - UExchangeTerm(er,'x_hf'), + UExchangeTerm(er, 'x_hf'), UTwoIndexTerm(na, 'ne'), ] ham = UEffHam(terms) - # Construct an initial state with instable spin polarization - guess_core_hamiltonian(olp, kin+na, mol.orb_alpha, mol.orb_beta) + # Construct an initial state with unstable spin polarization + guess_core_hamiltonian(olp, kin + na, mol.orb_alpha, mol.orb_beta) mol.orb_alpha.occupations[:3] = 1 mol.orb_beta.occupations[:] = 0 dms = [mol.orb_alpha.to_dm(), mol.orb_beta.to_dm()] # converge scf and check the spins - scf_solver = ODASCFSolver(1e-6) # On some machines, 1e-8 does not work. + scf_solver = ODASCFSolver(1e-6) # On some machines, 1e-8 does not work. scf_solver(ham, olp, occ_model, *dms) assert scf_solver.error(ham, olp, *dms) < scf_solver.threshold assert abs(np.einsum('ab,ba', olp, dms[0]) - 2) < 1e-10 assert abs(np.einsum('ab,ba', olp, dms[1]) - 1) < 1e-10 - def test_check_dm(): # create random orthogonal vectors v1 = np.random.uniform(1, 2, 2) @@ -143,14 +141,14 @@ def test_check_dm(): olp = np.identity(2) - op1 = np.dot(v*[-0.1, 0.5], v.T) + op1 = np.dot(v * [-0.1, 0.5], v.T) with assert_raises(ValueError): check_dm(op1, olp) - op1 = np.dot(v*[0.1, 1.5], v.T) + op1 = np.dot(v * [0.1, 1.5], v.T) with assert_raises(ValueError): check_dm(op1, olp) - op1 = np.dot(v*[-0.1, 1.5], v.T) + op1 = np.dot(v * [-0.1, 1.5], v.T) with assert_raises(ValueError): check_dm(op1, olp) - op1 = np.dot(v*[0.1, 0.5], v.T) + op1 = np.dot(v * [0.1, 0.5], v.T) check_dm(op1, olp) diff --git a/horton/meanfield/utils.py b/horton/meanfield/utils.py index b4d3d04d..2ab50bb0 100644 --- a/horton/meanfield/utils.py +++ b/horton/meanfield/utils.py @@ -20,12 +20,10 @@ # -- """Utility functions""" - import numpy as np from .orbitals import Orbitals - __all__ = [ 'check_dm', 'get_level_shift', 'get_spin', 'get_homo_lumo', 'compute_commutator', @@ -33,7 +31,7 @@ def check_dm(dm, overlap, eps=1e-4, occ_max=1.0): - '''Check if the density matrix has eigenvalues in the proper range. + """Check if the density matrix has eigenvalues in the proper range. Parameters ---------- @@ -50,20 +48,20 @@ def check_dm(dm, overlap, eps=1e-4, occ_max=1.0): ------ ValueError When the density matrix has wrong eigenvalues. - ''' + """ # construct natural orbitals orb = Orbitals(dm.shape[0]) orb.derive_naturals(dm, overlap) if orb.occupations.min() < -eps: raise ValueError('The density matrix has eigenvalues considerably smaller than ' 'zero. error=%e' % (orb.occupations.min())) - if orb.occupations.max() > occ_max+eps: + if orb.occupations.max() > occ_max + eps: raise ValueError('The density matrix has eigenvalues considerably larger than ' - 'max. error=%e' % (orb.occupations.max()-1)) + 'max. error=%e' % (orb.occupations.max() - 1)) def get_level_shift(dm, overlap): - '''Construct a level shift operator. + """Construct a level shift operator. **Arguments:** @@ -74,12 +72,12 @@ def get_level_shift(dm, overlap): The overlap matrix **Returns:** The level-shift operator. - ''' + """ return np.dot(overlap.T, np.dot(dm, overlap)) def get_spin(orb_alpha, orb_beta, overlap): - '''Returns the expectation values of the projected and squared spin + """Returns the expectation values of the projected and squared spin **Arguments:** @@ -90,10 +88,10 @@ def get_spin(orb_alpha, orb_beta, overlap): The overlap matrix **Returns:** sz, ssq - ''' + """ nalpha = orb_alpha.occupations.sum() nbeta = orb_beta.occupations.sum() - sz = (nalpha - nbeta)/2 + sz = (nalpha - nbeta) / 2 correction = 0.0 for ialpha in xrange(orb_alpha.nfn): if orb_alpha.occupations[ialpha] == 0.0: @@ -102,16 +100,16 @@ def get_spin(orb_alpha, orb_beta, overlap): if orb_beta.occupations[ibeta] == 0.0: continue correction += np.dot( - orb_alpha.coeffs[:,ialpha], - np.dot(overlap, orb_beta.coeffs[:,ibeta]))**2 + orb_alpha.coeffs[:, ialpha], + np.dot(overlap, orb_beta.coeffs[:, ibeta])) ** 2 - ssq = sz*(sz+1) + nbeta - correction + ssq = sz * (sz + 1) + nbeta - correction print sz, ssq return sz, ssq def get_homo_lumo(*orbs): - '''Return the HOMO and LUMO energy for the given expansion + """Return the HOMO and LUMO energy for the given expansion **Arguments:** @@ -120,7 +118,7 @@ def get_homo_lumo(*orbs): **Returns:** homo_energy, lumo_energy. (The second is None when all orbitals are occupied.) - ''' + """ homo_energy = max(orb.homo_energy for orb in orbs) lumo_energies = [orb.lumo_energy for orb in orbs] lumo_energies = [lumo_energy for lumo_energy in lumo_energies if lumo_energy is not None] @@ -132,7 +130,7 @@ def get_homo_lumo(*orbs): def compute_commutator(dm, fock, overlap): - '''Compute the dm-fock commutator, including an overlap matrix + """Compute the dm-fock commutator, including an overlap matrix Parameters ---------- @@ -146,5 +144,5 @@ def compute_commutator(dm, fock, overlap): Return ------ commutator - ''' + """ return np.dot(overlap, np.dot(dm, fock)) - np.dot(fock, np.dot(dm, overlap)) From 351f20248ea6310fe970c73258ce2a4352db3ae3 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Mon, 14 Aug 2017 18:15:07 +0200 Subject: [PATCH 06/19] moved doc_inherit to meanfield --- horton/meanfield/builtin.py | 2 +- horton/meanfield/gridgroup.py | 2 +- horton/meanfield/hamiltonian.py | 2 +- horton/meanfield/libxc.py | 2 +- horton/meanfield/observable.py | 2 +- horton/meanfield/occ.py | 2 +- horton/meanfield/scf_cdiis.py | 2 +- horton/meanfield/scf_ediis.py | 2 +- horton/meanfield/scf_ediis2.py | 2 +- horton/meanfield/utils.py | 31 +++++++++++++++++++++++++++++++ 10 files changed, 40 insertions(+), 9 deletions(-) diff --git a/horton/meanfield/builtin.py b/horton/meanfield/builtin.py index aa2188e2..a3ecf48e 100644 --- a/horton/meanfield/builtin.py +++ b/horton/meanfield/builtin.py @@ -24,7 +24,7 @@ from horton.grid.molgrid import BeckeMolGrid from horton.grid.poisson import solve_poisson_becke -from horton.utils import doc_inherit +from . utils import doc_inherit from .gridgroup import GridObservable, DF_LEVEL_LDA __all__ = ['RBeckeHartree', 'UBeckeHartree', 'RDiracExchange', 'UDiracExchange'] diff --git a/horton/meanfield/gridgroup.py b/horton/meanfield/gridgroup.py index 11464fcd..cc11ed90 100644 --- a/horton/meanfield/gridgroup.py +++ b/horton/meanfield/gridgroup.py @@ -20,7 +20,7 @@ # -- """Container for observables involving numerical integration""" -from horton.utils import doc_inherit +from . utils import doc_inherit from .observable import Observable __all__ = [ diff --git a/horton/meanfield/hamiltonian.py b/horton/meanfield/hamiltonian.py index 0f0b3a7d..26325a8c 100644 --- a/horton/meanfield/hamiltonian.py +++ b/horton/meanfield/hamiltonian.py @@ -21,7 +21,7 @@ """Mean-field DFT/HF Hamiltonian data structures""" from horton.cache import Cache -from horton.utils import doc_inherit +from . utils import doc_inherit __all__ = [ 'REffHam', 'UEffHam' diff --git a/horton/meanfield/libxc.py b/horton/meanfield/libxc.py index d7c01243..338fa49e 100644 --- a/horton/meanfield/libxc.py +++ b/horton/meanfield/libxc.py @@ -20,7 +20,7 @@ # -- """Interface to LDA, GGA and hybrid functionals from LibXC""" -from horton.utils import doc_inherit +from . utils import doc_inherit from .cext import RLibXCWrapper, ULibXCWrapper from .gridgroup import GridObservable, DF_LEVEL_LDA, \ DF_LEVEL_GGA, DF_LEVEL_MGGA diff --git a/horton/meanfield/observable.py b/horton/meanfield/observable.py index 67d68b27..88dd70da 100644 --- a/horton/meanfield/observable.py +++ b/horton/meanfield/observable.py @@ -22,7 +22,7 @@ import numpy as np -from horton.utils import doc_inherit +from . utils import doc_inherit __all__ = [ 'compute_dm_full', diff --git a/horton/meanfield/occ.py b/horton/meanfield/occ.py index 91b4321e..96fded7a 100644 --- a/horton/meanfield/occ.py +++ b/horton/meanfield/occ.py @@ -25,7 +25,7 @@ from horton.constants import boltzmann from horton.exceptions import ElectronCountError from horton.quadprog import find_1d_root -from horton.utils import doc_inherit +from . utils import doc_inherit __all__ = [ 'FixedOccModel', 'AufbauOccModel', 'AufbauSpinOccModel', 'FermiOccModel', diff --git a/horton/meanfield/scf_cdiis.py b/horton/meanfield/scf_cdiis.py index 102f175d..effe2488 100644 --- a/horton/meanfield/scf_cdiis.py +++ b/horton/meanfield/scf_cdiis.py @@ -23,7 +23,7 @@ import numpy as np from horton.quadprog import solve_safe -from horton.utils import doc_inherit +from . utils import doc_inherit from .scf_diis import DIISHistory, DIISSCFSolver __all__ = ['CDIISSCFSolver'] diff --git a/horton/meanfield/scf_ediis.py b/horton/meanfield/scf_ediis.py index c30bd098..e80add36 100644 --- a/horton/meanfield/scf_ediis.py +++ b/horton/meanfield/scf_ediis.py @@ -24,7 +24,7 @@ from horton.exceptions import NoSCFConvergence from horton.quadprog import QPSolver -from horton.utils import doc_inherit +from . utils import doc_inherit from .scf_diis import DIISHistory, DIISSCFSolver __all__ = ['EDIISSCFSolver'] diff --git a/horton/meanfield/scf_ediis2.py b/horton/meanfield/scf_ediis2.py index 00223502..d57ef803 100644 --- a/horton/meanfield/scf_ediis2.py +++ b/horton/meanfield/scf_ediis2.py @@ -22,7 +22,7 @@ import numpy as np -from horton.utils import doc_inherit +from . utils import doc_inherit from .scf_cdiis import CDIISHistory from .scf_diis import DIISHistory, DIISSCFSolver from .scf_ediis import EDIISHistory diff --git a/horton/meanfield/utils.py b/horton/meanfield/utils.py index 2ab50bb0..0c326799 100644 --- a/horton/meanfield/utils.py +++ b/horton/meanfield/utils.py @@ -146,3 +146,34 @@ def compute_commutator(dm, fock, overlap): commutator """ return np.dot(overlap, np.dot(dm, fock)) - np.dot(fock, np.dot(dm, overlap)) + + +def doc_inherit(base_class): + """Docstring inheriting method descriptor + + doc_inherit decorator + + Usage: + + .. code-block:: python + + class Foo(object): + def foo(self): + "Frobber" + pass + + class Bar(Foo): + @doc_inherit(Foo) + def foo(self): + pass + + Now, ``Bar.foo.__doc__ == Bar().foo.__doc__ == Foo.foo.__doc__ == + "Frobber"`` + """ + def decorator(method): + overridden = getattr(base_class, method.__name__, None) + if overridden is None: + raise NameError('Can\'t find method \'%s\' in base class.') + method.__doc__ = overridden.__doc__ + return method + return decorator From 085cfa24681418bd095f26fd5fa833318172ee36 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Mon, 14 Aug 2017 19:25:09 +0200 Subject: [PATCH 07/19] more automated cleanups --- horton/meanfield/builtin.py | 2 +- horton/meanfield/cext.pyx | 3 +-- horton/meanfield/gridgroup.py | 2 +- horton/meanfield/hamiltonian.py | 2 +- horton/meanfield/libxc.py | 2 +- horton/meanfield/observable.py | 2 +- horton/meanfield/occ.py | 2 +- horton/meanfield/scf_cdiis.py | 2 +- horton/meanfield/scf_diis.py | 1 - horton/meanfield/scf_ediis.py | 2 +- horton/meanfield/scf_ediis2.py | 2 +- horton/meanfield/scf_oda.py | 1 - horton/meanfield/test/common.py | 1 - horton/meanfield/test/test_guess.py | 4 ++-- horton/meanfield/test/test_libxc.py | 5 ++--- horton/meanfield/utils.py | 2 ++ 16 files changed, 16 insertions(+), 19 deletions(-) diff --git a/horton/meanfield/builtin.py b/horton/meanfield/builtin.py index a3ecf48e..9658e80d 100644 --- a/horton/meanfield/builtin.py +++ b/horton/meanfield/builtin.py @@ -24,8 +24,8 @@ from horton.grid.molgrid import BeckeMolGrid from horton.grid.poisson import solve_poisson_becke -from . utils import doc_inherit from .gridgroup import GridObservable, DF_LEVEL_LDA +from .utils import doc_inherit __all__ = ['RBeckeHartree', 'UBeckeHartree', 'RDiracExchange', 'UDiracExchange'] diff --git a/horton/meanfield/cext.pyx b/horton/meanfield/cext.pyx index 2380f02a..dd609bb6 100644 --- a/horton/meanfield/cext.pyx +++ b/horton/meanfield/cext.pyx @@ -117,7 +117,7 @@ cdef class LibXCWrapper(object): property refs: def __get__(self): cdef int i - cdef func_reference_type* ref + cdef func_reference_type*ref result = [] for i in range(5): ref = self._func.info[0].refs[i] @@ -152,7 +152,6 @@ cdef class LibXCWrapper(object): xc_hyb_cam_coef(&self._func, &omega, &alpha, &beta) return omega, alpha, beta - cdef class RLibXCWrapper(LibXCWrapper): def __cinit__(self, bytes key): """Initialize a RLibXCWrapper. diff --git a/horton/meanfield/gridgroup.py b/horton/meanfield/gridgroup.py index cc11ed90..8303a025 100644 --- a/horton/meanfield/gridgroup.py +++ b/horton/meanfield/gridgroup.py @@ -20,8 +20,8 @@ # -- """Container for observables involving numerical integration""" -from . utils import doc_inherit from .observable import Observable +from .utils import doc_inherit __all__ = [ 'DF_LEVEL_LDA', 'DF_LEVEL_GGA', 'DF_LEVEL_MGGA', diff --git a/horton/meanfield/hamiltonian.py b/horton/meanfield/hamiltonian.py index 26325a8c..96b7a591 100644 --- a/horton/meanfield/hamiltonian.py +++ b/horton/meanfield/hamiltonian.py @@ -21,7 +21,7 @@ """Mean-field DFT/HF Hamiltonian data structures""" from horton.cache import Cache -from . utils import doc_inherit +from .utils import doc_inherit __all__ = [ 'REffHam', 'UEffHam' diff --git a/horton/meanfield/libxc.py b/horton/meanfield/libxc.py index 338fa49e..4ab0635b 100644 --- a/horton/meanfield/libxc.py +++ b/horton/meanfield/libxc.py @@ -20,10 +20,10 @@ # -- """Interface to LDA, GGA and hybrid functionals from LibXC""" -from . utils import doc_inherit from .cext import RLibXCWrapper, ULibXCWrapper from .gridgroup import GridObservable, DF_LEVEL_LDA, \ DF_LEVEL_GGA, DF_LEVEL_MGGA +from .utils import doc_inherit __all__ = [ 'LibXCEnergy', diff --git a/horton/meanfield/observable.py b/horton/meanfield/observable.py index 88dd70da..8482a046 100644 --- a/horton/meanfield/observable.py +++ b/horton/meanfield/observable.py @@ -22,7 +22,7 @@ import numpy as np -from . utils import doc_inherit +from .utils import doc_inherit __all__ = [ 'compute_dm_full', diff --git a/horton/meanfield/occ.py b/horton/meanfield/occ.py index 96fded7a..55f79cde 100644 --- a/horton/meanfield/occ.py +++ b/horton/meanfield/occ.py @@ -25,7 +25,7 @@ from horton.constants import boltzmann from horton.exceptions import ElectronCountError from horton.quadprog import find_1d_root -from . utils import doc_inherit +from .utils import doc_inherit __all__ = [ 'FixedOccModel', 'AufbauOccModel', 'AufbauSpinOccModel', 'FermiOccModel', diff --git a/horton/meanfield/scf_cdiis.py b/horton/meanfield/scf_cdiis.py index effe2488..14ac274a 100644 --- a/horton/meanfield/scf_cdiis.py +++ b/horton/meanfield/scf_cdiis.py @@ -23,8 +23,8 @@ import numpy as np from horton.quadprog import solve_safe -from . utils import doc_inherit from .scf_diis import DIISHistory, DIISSCFSolver +from .utils import doc_inherit __all__ = ['CDIISSCFSolver'] diff --git a/horton/meanfield/scf_diis.py b/horton/meanfield/scf_diis.py index 3264cde0..ae263076 100644 --- a/horton/meanfield/scf_diis.py +++ b/horton/meanfield/scf_diis.py @@ -195,7 +195,6 @@ def __call__(self, ham, overlap, occ_model, *dms): if False and len(coeffs) == 2: dms_tmp = [dm.copy() for dm in dms] - import matplotlib.pyplot as pt xs = np.linspace(0.0, 1.0, 25) a, b = self._history._setup_equations() energies1 = [] diff --git a/horton/meanfield/scf_ediis.py b/horton/meanfield/scf_ediis.py index e80add36..6981faa8 100644 --- a/horton/meanfield/scf_ediis.py +++ b/horton/meanfield/scf_ediis.py @@ -24,8 +24,8 @@ from horton.exceptions import NoSCFConvergence from horton.quadprog import QPSolver -from . utils import doc_inherit from .scf_diis import DIISHistory, DIISSCFSolver +from .utils import doc_inherit __all__ = ['EDIISSCFSolver'] diff --git a/horton/meanfield/scf_ediis2.py b/horton/meanfield/scf_ediis2.py index d57ef803..0bf61c53 100644 --- a/horton/meanfield/scf_ediis2.py +++ b/horton/meanfield/scf_ediis2.py @@ -22,10 +22,10 @@ import numpy as np -from . utils import doc_inherit from .scf_cdiis import CDIISHistory from .scf_diis import DIISHistory, DIISSCFSolver from .scf_ediis import EDIISHistory +from .utils import doc_inherit __all__ = ['EDIIS2SCFSolver'] diff --git a/horton/meanfield/scf_oda.py b/horton/meanfield/scf_oda.py index c29756af..bd83347c 100644 --- a/horton/meanfield/scf_oda.py +++ b/horton/meanfield/scf_oda.py @@ -319,7 +319,6 @@ def check_cubic(ham, dm0s, dm1s, e0, e1, g0, g1, do_plot=True): # make a nice figure xxs = np.concatenate([np.linspace(0, 0.006, 60), np.linspace(0.994, 1.0, 60)]) poly = a * xxs ** 3 + b * xxs ** 2 + c * xxs + d - import matplotlib.pyplot as pt pt.clf() pt.subplot(121) pt.plot(xxs, poly, 'k-', label='cubic') diff --git a/horton/meanfield/test/common.py b/horton/meanfield/test/common.py index 86251eeb..d5915d0a 100644 --- a/horton/meanfield/test/common.py +++ b/horton/meanfield/test/common.py @@ -238,7 +238,6 @@ def check(dms_a, dms_b): # print '%5.2f %15.8f %15.8f' % (x, energies_x[ipoint], energies_2nd_order[ipoint]) if do_plot: # pragma: no cover - import matplotlib.pyplot as pt pt.clf() pt.plot(xs, energies_x, 'ro') pt.plot(xs, energies_2nd_order, 'k-') diff --git a/horton/meanfield/test/test_guess.py b/horton/meanfield/test/test_guess.py index b84d4639..3ca5a275 100644 --- a/horton/meanfield/test/test_guess.py +++ b/horton/meanfield/test/test_guess.py @@ -34,7 +34,7 @@ def test_guess_hamcore_cs(): guess_core_hamiltonian(olp, kin + na, mol.orb_alpha) # just a few simple checks assert abs(mol.orb_alpha.energies[0] - ( - -2.59083334E+01)) > 1e-5 # values from fchk must be overwritten + -2.59083334E+01)) > 1e-5 # values from fchk must be overwritten assert (mol.orb_alpha.energies.argsort() == np.arange(mol.obasis.nbasis)).all() @@ -47,7 +47,7 @@ def test_guess_hamcore_os(): guess_core_hamiltonian(olp, kin + na, mol.orb_alpha, mol.orb_beta) # just a few simple checks assert abs(mol.orb_alpha.energies[0] - ( - -2.76116635E+00)) > 1e-5 # values from fchk must be overwritten + -2.76116635E+00)) > 1e-5 # values from fchk must be overwritten assert abs( mol.orb_beta.energies[0] - (-2.76031162E+00)) > 1e-5 # values from fchk must be overwritten assert (mol.orb_alpha.energies.argsort() == np.arange(mol.obasis.nbasis)).all() diff --git a/horton/meanfield/test/test_libxc.py b/horton/meanfield/test/test_libxc.py index 6067ad05..f2098664 100644 --- a/horton/meanfield/test/test_libxc.py +++ b/horton/meanfield/test/test_libxc.py @@ -20,8 +20,8 @@ # -- -from nose.tools import assert_raises from nose.plugins.skip import SkipTest +from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import from .common import check_interpolation, \ @@ -374,7 +374,7 @@ def test_cubic_interpolation_x_tpss_os(): def test_functionals_present(): - t1 = RLibXCLDA('c_vwn') # The VWN 5 functional + t1 = RLibXCLDA('c_vwn') # The VWN 5 functional assert t1._libxc_wrapper.key == 'lda_c_vwn' t2 = RLibXCLDA('c_vwn_4') # The VWN 4 functional assert t2._libxc_wrapper.key == 'lda_c_vwn_4' @@ -397,7 +397,6 @@ def test_functionals_present(): URL = {http://journals.cambridge.org/article_S0305004100016108} }""" - ref_lda_x_2 = """\ @article{Bloch1929_545, title = {Bemerkung zur Elektronentheorie des Ferromagnetismus und der elektrischen \ diff --git a/horton/meanfield/utils.py b/horton/meanfield/utils.py index 0c326799..536768c3 100644 --- a/horton/meanfield/utils.py +++ b/horton/meanfield/utils.py @@ -170,10 +170,12 @@ def foo(self): Now, ``Bar.foo.__doc__ == Bar().foo.__doc__ == Foo.foo.__doc__ == "Frobber"`` """ + def decorator(method): overridden = getattr(base_class, method.__name__, None) if overridden is None: raise NameError('Can\'t find method \'%s\' in base class.') method.__doc__ = overridden.__doc__ return method + return decorator From cf2f92bf9ccd44eaa1ca5327abb57cc7bee16150 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Mon, 14 Aug 2017 19:36:47 +0200 Subject: [PATCH 08/19] moved exceptions to meanfield --- horton/meanfield/exceptions.py | 33 +++++++++++++++++++++++++++++++++ horton/meanfield/occ.py | 2 +- horton/meanfield/scf.py | 2 +- horton/meanfield/scf_diis.py | 2 +- horton/meanfield/scf_ediis.py | 2 +- horton/meanfield/scf_oda.py | 2 +- 6 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 horton/meanfield/exceptions.py diff --git a/horton/meanfield/exceptions.py b/horton/meanfield/exceptions.py new file mode 100644 index 00000000..de28aea7 --- /dev/null +++ b/horton/meanfield/exceptions.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# HORTON: Helpful Open-source Research TOol for N-fermion systems. +# Copyright (C) 2011-2017 The HORTON Development Team +# +# This file is part of HORTON. +# +# HORTON is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 3 +# of the License, or (at your option) any later version. +# +# HORTON is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see +# +# -- +"""Definition of all exceptions in Meanfield""" + +class ElectronCountError(ValueError): + """Exception raised when a negative number of electron is encountered, or + when more electrons than basis functions are requested. + """ + pass + + +class NoSCFConvergence(Exception): + """Exception raised when an SCF algorithm does not reach the convergence + threshold in the specified number of iterations""" + pass diff --git a/horton/meanfield/occ.py b/horton/meanfield/occ.py index 55f79cde..6ce8002c 100644 --- a/horton/meanfield/occ.py +++ b/horton/meanfield/occ.py @@ -23,7 +23,7 @@ import numpy as np from horton.constants import boltzmann -from horton.exceptions import ElectronCountError +from .exceptions import ElectronCountError from horton.quadprog import find_1d_root from .utils import doc_inherit diff --git a/horton/meanfield/scf.py b/horton/meanfield/scf.py index d7fd4225..dbcc76c1 100644 --- a/horton/meanfield/scf.py +++ b/horton/meanfield/scf.py @@ -22,7 +22,7 @@ import numpy as np -from horton.exceptions import NoSCFConvergence +from .exceptions import NoSCFConvergence from .convergence import convergence_error_eigen from .utils import get_level_shift diff --git a/horton/meanfield/scf_diis.py b/horton/meanfield/scf_diis.py index ae263076..b797ac9e 100644 --- a/horton/meanfield/scf_diis.py +++ b/horton/meanfield/scf_diis.py @@ -22,7 +22,7 @@ import numpy as np -from horton.exceptions import NoSCFConvergence +from .exceptions import NoSCFConvergence from .convergence import convergence_error_commutator from .orbitals import Orbitals from .utils import compute_commutator, check_dm diff --git a/horton/meanfield/scf_ediis.py b/horton/meanfield/scf_ediis.py index 6981faa8..588de1c6 100644 --- a/horton/meanfield/scf_ediis.py +++ b/horton/meanfield/scf_ediis.py @@ -22,7 +22,7 @@ import numpy as np -from horton.exceptions import NoSCFConvergence +from .exceptions import NoSCFConvergence from horton.quadprog import QPSolver from .scf_diis import DIISHistory, DIISSCFSolver from .utils import doc_inherit diff --git a/horton/meanfield/scf_oda.py b/horton/meanfield/scf_oda.py index bd83347c..2a6deaf6 100644 --- a/horton/meanfield/scf_oda.py +++ b/horton/meanfield/scf_oda.py @@ -22,7 +22,7 @@ import numpy as np -from horton.exceptions import NoSCFConvergence +from .exceptions import NoSCFConvergence from .convergence import convergence_error_commutator from .orbitals import Orbitals from .utils import check_dm, compute_commutator From c80168e1e37c0a3335dd150ee44c4a2ce5f0b006 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Mon, 14 Aug 2017 19:38:04 +0200 Subject: [PATCH 09/19] moved boltzmann --- horton/meanfield/occ.py | 2 +- horton/meanfield/utils.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/horton/meanfield/occ.py b/horton/meanfield/occ.py index 6ce8002c..143f703e 100644 --- a/horton/meanfield/occ.py +++ b/horton/meanfield/occ.py @@ -22,7 +22,7 @@ import numpy as np -from horton.constants import boltzmann +from .utils import boltzmann from .exceptions import ElectronCountError from horton.quadprog import find_1d_root from .utils import doc_inherit diff --git a/horton/meanfield/utils.py b/horton/meanfield/utils.py index 536768c3..641fd820 100644 --- a/horton/meanfield/utils.py +++ b/horton/meanfield/utils.py @@ -29,6 +29,7 @@ 'compute_commutator', ] +boltzmann = 3.1668154051341965e-06 def check_dm(dm, overlap, eps=1e-4, occ_max=1.0): """Check if the density matrix has eigenvalues in the proper range. From ad715aceb646731b54c1f7ab2f55a55aaa39027c Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Mon, 14 Aug 2017 19:42:42 +0200 Subject: [PATCH 10/19] moved quadprog --- horton/__init__.py | 9 ++++----- horton/meanfield/occ.py | 4 ++-- horton/{ => meanfield}/quadprog.py | 0 horton/meanfield/scf_cdiis.py | 2 +- horton/meanfield/scf_ediis.py | 2 +- horton/{ => meanfield}/test/test_quadprog.py | 5 ++--- 6 files changed, 10 insertions(+), 12 deletions(-) rename horton/{ => meanfield}/quadprog.py (100%) rename horton/{ => meanfield}/test/test_quadprog.py (99%) diff --git a/horton/__init__.py b/horton/__init__.py index 3682052d..6a495f16 100644 --- a/horton/__init__.py +++ b/horton/__init__.py @@ -24,13 +24,11 @@ __version__ = '2.1.0' +from horton.cache import * # Extensions are imported first to call fpufix as early as possible from horton.cext import * - -from horton.cache import * from horton.constants import * from horton.context import * -from horton.part import * from horton.espfit import * from horton.exceptions import * from horton.gbasis import * @@ -38,9 +36,10 @@ from horton.io import * from horton.log import * from horton.meanfield import * +from horton.meanfield.quadprog import * +from horton.modelhamiltonians import * from horton.moments import * +from horton.part import * from horton.periodic import * -from horton.quadprog import * from horton.units import * from horton.utils import * -from horton.modelhamiltonians import * diff --git a/horton/meanfield/occ.py b/horton/meanfield/occ.py index 143f703e..cb929017 100644 --- a/horton/meanfield/occ.py +++ b/horton/meanfield/occ.py @@ -22,9 +22,9 @@ import numpy as np -from .utils import boltzmann +from .quadprog import find_1d_root from .exceptions import ElectronCountError -from horton.quadprog import find_1d_root +from .utils import boltzmann from .utils import doc_inherit __all__ = [ diff --git a/horton/quadprog.py b/horton/meanfield/quadprog.py similarity index 100% rename from horton/quadprog.py rename to horton/meanfield/quadprog.py diff --git a/horton/meanfield/scf_cdiis.py b/horton/meanfield/scf_cdiis.py index 14ac274a..0b99202c 100644 --- a/horton/meanfield/scf_cdiis.py +++ b/horton/meanfield/scf_cdiis.py @@ -22,7 +22,7 @@ import numpy as np -from horton.quadprog import solve_safe +from .quadprog import solve_safe from .scf_diis import DIISHistory, DIISSCFSolver from .utils import doc_inherit diff --git a/horton/meanfield/scf_ediis.py b/horton/meanfield/scf_ediis.py index 588de1c6..92914594 100644 --- a/horton/meanfield/scf_ediis.py +++ b/horton/meanfield/scf_ediis.py @@ -22,8 +22,8 @@ import numpy as np +from .quadprog import QPSolver from .exceptions import NoSCFConvergence -from horton.quadprog import QPSolver from .scf_diis import DIISHistory, DIISSCFSolver from .utils import doc_inherit diff --git a/horton/test/test_quadprog.py b/horton/meanfield/test/test_quadprog.py similarity index 99% rename from horton/test/test_quadprog.py rename to horton/meanfield/test/test_quadprog.py index 2cb3f62b..4f1c6648 100644 --- a/horton/test/test_quadprog.py +++ b/horton/meanfield/test/test_quadprog.py @@ -21,14 +21,13 @@ import numpy as np -from nose.tools import assert_raises from nose.plugins.attrib import attr +from nose.tools import assert_raises from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.quadprog import FeasibilityError, BoundedError, ConvergenceError, \ +from horton.meanfield.quadprog import FeasibilityError, BoundedError, ConvergenceError, \ _counter_to_free, find_1d_root, solve_safe, diagonal_form, \ solve_constrained, solve_radius - from horton.test.common import numpy_seed From e5f71deda3afc124d9569542e26e16153cb6fa66 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Mon, 14 Aug 2017 21:46:42 +0200 Subject: [PATCH 11/19] moved moments --- horton/meanfield/rotate.py | 2 +- horton/meanfield/test/test_utils.py | 33 ++++++++++++ horton/meanfield/utils.py | 82 +++++++++++++++++++++++++++++ 3 files changed, 116 insertions(+), 1 deletion(-) diff --git a/horton/meanfield/rotate.py b/horton/meanfield/rotate.py index 4f1146d1..e28606ed 100644 --- a/horton/meanfield/rotate.py +++ b/horton/meanfield/rotate.py @@ -23,7 +23,7 @@ import numpy as np from horton.gbasis.cext import fac2 -from horton.moments import rotate_cartesian_multipole, get_cartesian_powers +from .utils import rotate_cartesian_multipole, get_cartesian_powers __all__ = ['rotate_coeffs'] diff --git a/horton/meanfield/test/test_utils.py b/horton/meanfield/test/test_utils.py index fcebaee8..77dd16ac 100644 --- a/horton/meanfield/test/test_utils.py +++ b/horton/meanfield/test/test_utils.py @@ -19,10 +19,12 @@ # # -- +from nose.plugins.skip import SkipTest import numpy as np from horton import * # pylint: disable=wildcard-import,unused-wildcard-import +from .. utils import get_ncart_cumul, get_cartesian_powers def check_spin(fn_fchk, sz0, ssq0, eps): @@ -99,3 +101,34 @@ def test_level_shift(): mol.orb_alpha.from_fock(ls_alpha, overlap) dm_alpha2 = mol.orb_alpha.to_dm() np.testing.assert_allclose(dm_alpha1, dm_alpha2) + + +def test_get_ncart_cumul(): + assert get_ncart_cumul(0) == 1 + assert get_ncart_cumul(1) == 4 + assert get_ncart_cumul(2) == 10 + assert get_ncart_cumul(3) == 20 + + +def test_get_cartesian_powers(): + lmax = 4 + cartesian_powers = get_cartesian_powers(lmax) + assert issubclass(cartesian_powers.dtype.type, int) + assert cartesian_powers.shape == (get_ncart_cumul(lmax), 3) + assert (cartesian_powers[0] == [0, 0, 0]).all() + assert (cartesian_powers[1] == [1, 0, 0]).all() + assert (cartesian_powers[4] == [2, 0, 0]).all() + assert (cartesian_powers[5] == [1, 1, 0]).all() + assert (cartesian_powers[6] == [1, 0, 1]).all() + assert (cartesian_powers[10] == [3, 0, 0]).all() + assert (cartesian_powers[11] == [2, 1, 0]).all() + assert (cartesian_powers[19] == [0, 0, 3]).all() + assert (cartesian_powers[-1] == [0, 0, 4]).all() + + for lmax in xrange(4): + tmp = get_cartesian_powers(lmax) + assert tmp.shape == (get_ncart_cumul(lmax), 3) + assert (tmp == cartesian_powers[:len(tmp)]).all() + +def test_rotate_cartesian_moments(): + raise SkipTest("Need a rotate cartesian moment test") diff --git a/horton/meanfield/utils.py b/horton/meanfield/utils.py index 641fd820..f9189bd9 100644 --- a/horton/meanfield/utils.py +++ b/horton/meanfield/utils.py @@ -31,6 +31,7 @@ boltzmann = 3.1668154051341965e-06 + def check_dm(dm, overlap, eps=1e-4, occ_max=1.0): """Check if the density matrix has eigenvalues in the proper range. @@ -180,3 +181,84 @@ def decorator(method): return method return decorator + + +# from horton.moments +def get_ncart_cumul(lmax): + """The number of cartesian powers up to a given angular momentum, lmax.""" + return ((lmax+1)*(lmax+2)*(lmax+3))/6 + + +# from horton.moments +def get_cartesian_powers(lmax): + """Return an ordered list of power for x, y and z up to angular moment lmax + + **Arguments:** + + lmax + The maximum angular momentum (0=s, 1=p, 2=d, ...) + + **Returns:** an array where each row corresponds to a multipole moment + and each column corresponds to a power of x, y and z respectively. The + rows are grouped per angular momentum, first s, them p, then d, and so + on. Within one angular momentum the rows are sorted 'alphabetically', + e.g. for l=2: xxx, xxy, xxz, xyy, xyz, xzz, yyy, yyz, yzz, zzz. + """ + cartesian_powers = np.zeros((get_ncart_cumul(lmax), 3), dtype=int) + counter = 0 + for l in xrange(0, lmax + 1): + for nx in xrange(l + 1, -1, -1): + for ny in xrange(l - nx, -1, -1): + nz = l - ny - nx + cartesian_powers[counter] = [nx, ny, nz] + counter += 1 + return cartesian_powers + + +# from horton.moments +def rotate_cartesian_multipole(rmat, moments, mode): + """Compute rotated Cartesian multipole moment/expansion. + + **Arguments:** + + rmat + A (3,3) rotation matrix. + + moments + A multipole moment/coeffs. The angular momentum is derived from the + length of this vector. + + mode + A string containing either 'moments' or 'coeffs'. In case if + 'moments', a Cartesian multipole moment rotation is carried out. In + case of 'coeffs', the coefficients of a Cartesian multipole basis + are rotated. + + **Returns:** rotated multipole. + """ + l = ((9 + 8 * (len(moments) - 1)) ** 0.5 - 3) / 2 + if l - np.round(l) > 1e-10: + raise ValueError('Could not determine l from number of moments.') + l = int(np.round(l)) + + if mode == 'coeffs': + rcoeffs = rmat.T.ravel() + elif mode == 'moments': + rcoeffs = rmat.ravel() + else: + raise NotImplementedError + result = np.zeros(len(moments)) + for i0 in xrange(len(moments)): + rules = cartesian_transforms[l][i0] + for rule in rules: + i1 = rule[0] + factor = rule[1] + for j in rule[2:]: + factor *= rcoeffs[j] + if mode == 'coeffs': + result[i1] += moments[i0] * factor + elif mode == 'moments': + result[i0] += moments[i1] * factor + else: + raise NotImplementedError + return result From c596b2647dfdf75017648caa465dae2f6a329755 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Mon, 14 Aug 2017 21:50:14 +0200 Subject: [PATCH 12/19] moved cache --- horton/__init__.py | 2 +- horton/{ => meanfield}/cache.py | 0 horton/meanfield/hamiltonian.py | 2 +- horton/{ => meanfield}/test/test_cache.py | 0 horton/part/base.py | 7 +++---- horton/part/hirshfeld.py | 3 +-- horton/part/iterstock.py | 4 ++-- 7 files changed, 8 insertions(+), 10 deletions(-) rename horton/{ => meanfield}/cache.py (100%) rename horton/{ => meanfield}/test/test_cache.py (100%) diff --git a/horton/__init__.py b/horton/__init__.py index 6a495f16..c8bb6859 100644 --- a/horton/__init__.py +++ b/horton/__init__.py @@ -24,7 +24,6 @@ __version__ = '2.1.0' -from horton.cache import * # Extensions are imported first to call fpufix as early as possible from horton.cext import * from horton.constants import * @@ -36,6 +35,7 @@ from horton.io import * from horton.log import * from horton.meanfield import * +from horton.meanfield.cache import * from horton.meanfield.quadprog import * from horton.modelhamiltonians import * from horton.moments import * diff --git a/horton/cache.py b/horton/meanfield/cache.py similarity index 100% rename from horton/cache.py rename to horton/meanfield/cache.py diff --git a/horton/meanfield/hamiltonian.py b/horton/meanfield/hamiltonian.py index 96b7a591..864b70a6 100644 --- a/horton/meanfield/hamiltonian.py +++ b/horton/meanfield/hamiltonian.py @@ -20,7 +20,7 @@ # -- """Mean-field DFT/HF Hamiltonian data structures""" -from horton.cache import Cache +from .cache import Cache from .utils import doc_inherit __all__ = [ diff --git a/horton/test/test_cache.py b/horton/meanfield/test/test_cache.py similarity index 100% rename from horton/test/test_cache.py rename to horton/meanfield/test/test_cache.py diff --git a/horton/part/base.py b/horton/part/base.py index 92635413..3aae2074 100644 --- a/horton/part/base.py +++ b/horton/part/base.py @@ -23,13 +23,12 @@ import numpy as np -from horton.cache import JustOnceClass, just_once, Cache +from horton.grid.atgrid import AtomicGrid +from horton.grid.poisson import solve_poisson_becke from horton.log import log +from horton.meanfield.cache import JustOnceClass, just_once, Cache from horton.moments import get_ncart_cumul, get_npure_cumul from horton.utils import typecheck_geo -from horton.grid.atgrid import AtomicGrid -from horton.grid.poisson import solve_poisson_becke - __all__ = ['Part', 'WPart'] diff --git a/horton/part/hirshfeld.py b/horton/part/hirshfeld.py index f89d4d11..380dd5cc 100644 --- a/horton/part/hirshfeld.py +++ b/horton/part/hirshfeld.py @@ -21,11 +21,10 @@ '''Hirshfeld partitioning''' -from horton.cache import just_once from horton.log import log, biblio +from horton.meanfield.cache import just_once from horton.part.stockholder import StockholderWPart - __all__ = ['HirshfeldWPart'] diff --git a/horton/part/iterstock.py b/horton/part/iterstock.py index ad11cbe8..34e71220 100644 --- a/horton/part/iterstock.py +++ b/horton/part/iterstock.py @@ -22,11 +22,11 @@ import numpy as np -from horton.cache import just_once + from horton.log import log, biblio +from horton.meanfield.cache import just_once from horton.part.stockholder import StockholderWPart - __all__ = ['IterativeProatomMixin', 'IterativeStockholderWPart'] From 849cc3e622281a1fbd6109a86eb2ec31f0c4ae6a Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Tue, 15 Aug 2017 00:40:55 +0200 Subject: [PATCH 13/19] fix broken unit tests --- horton/exceptions.py | 22 +++++++++++----------- horton/meanfield/__init__.py | 1 + 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/horton/exceptions.py b/horton/exceptions.py index 75499638..e9f93ce4 100644 --- a/horton/exceptions.py +++ b/horton/exceptions.py @@ -26,14 +26,14 @@ class SymmetryError(Exception): pass -class ElectronCountError(ValueError): - '''Exception raised when a negative number of electron is encountered, or - when more electrons than basis functions are requested. - ''' - pass - - -class NoSCFConvergence(Exception): - '''Exception raised when an SCF algorithm does not reach the convergence - threshold in the specified number of iterations''' - pass +# class ElectronCountError(ValueError): +# '''Exception raised when a negative number of electron is encountered, or +# when more electrons than basis functions are requested. +# ''' +# pass +# +# +# class NoSCFConvergence(Exception): +# '''Exception raised when an SCF algorithm does not reach the convergence +# threshold in the specified number of iterations''' +# pass diff --git a/horton/meanfield/__init__.py b/horton/meanfield/__init__.py index f4048cde..779eace3 100644 --- a/horton/meanfield/__init__.py +++ b/horton/meanfield/__init__.py @@ -24,6 +24,7 @@ from .builtin import * from .cext import * from .convergence import * +from .exceptions import * from .gridgroup import * from .guess import * from .hamiltonian import * From f71c365b89d3fa108c068233ee33c0b8b3fc6178 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Tue, 15 Aug 2017 00:42:05 +0200 Subject: [PATCH 14/19] fixed missing vars in utils --- horton/meanfield/utils.py | 732 +++++++++++++++++++++++++++++++++++++- 1 file changed, 731 insertions(+), 1 deletion(-) diff --git a/horton/meanfield/utils.py b/horton/meanfield/utils.py index f9189bd9..d5cbdaf4 100644 --- a/horton/meanfield/utils.py +++ b/horton/meanfield/utils.py @@ -186,7 +186,7 @@ def decorator(method): # from horton.moments def get_ncart_cumul(lmax): """The number of cartesian powers up to a given angular momentum, lmax.""" - return ((lmax+1)*(lmax+2)*(lmax+3))/6 + return ((lmax + 1) * (lmax + 2) * (lmax + 3)) / 6 # from horton.moments @@ -215,6 +215,736 @@ def get_cartesian_powers(lmax): return cartesian_powers +# from horton.moments +cartesian_transforms = [ + [ + [[0, 1]], + ], + [ + [[0, 1, 0], + [1, 1, 1], + [2, 1, 2]], + [[0, 1, 3], + [1, 1, 4], + [2, 1, 5]], + [[0, 1, 6], + [1, 1, 7], + [2, 1, 8]], + ], + [ + [[0, 1, 0, 0], + [1, 2, 0, 1], + [2, 2, 0, 2], + [3, 1, 1, 1], + [4, 2, 1, 2], + [5, 1, 2, 2]], + [[0, 1, 0, 3], + [1, 1, 1, 3], + [1, 1, 0, 4], + [2, 1, 2, 3], + [2, 1, 0, 5], + [3, 1, 1, 4], + [4, 1, 2, 4], + [4, 1, 1, 5], + [5, 1, 2, 5]], + [[0, 1, 0, 6], + [1, 1, 1, 6], + [1, 1, 0, 7], + [2, 1, 2, 6], + [2, 1, 0, 8], + [3, 1, 1, 7], + [4, 1, 2, 7], + [4, 1, 1, 8], + [5, 1, 2, 8]], + [[0, 1, 3, 3], + [1, 2, 3, 4], + [2, 2, 3, 5], + [3, 1, 4, 4], + [4, 2, 4, 5], + [5, 1, 5, 5]], + [[0, 1, 3, 6], + [1, 1, 4, 6], + [1, 1, 3, 7], + [2, 1, 5, 6], + [2, 1, 3, 8], + [3, 1, 4, 7], + [4, 1, 5, 7], + [4, 1, 4, 8], + [5, 1, 5, 8]], + [[0, 1, 6, 6], + [1, 2, 6, 7], + [2, 2, 6, 8], + [3, 1, 7, 7], + [4, 2, 7, 8], + [5, 1, 8, 8]], + ], + [ + [[0, 1, 0, 0, 0], + [1, 3, 0, 0, 1], + [2, 3, 0, 0, 2], + [3, 3, 0, 1, 1], + [4, 6, 0, 1, 2], + [5, 3, 0, 2, 2], + [6, 1, 1, 1, 1], + [7, 3, 1, 1, 2], + [8, 3, 1, 2, 2], + [9, 1, 2, 2, 2]], + [[0, 1, 0, 0, 3], + [1, 1, 0, 0, 4], + [1, 2, 0, 1, 3], + [2, 1, 0, 0, 5], + [2, 2, 0, 2, 3], + [3, 1, 1, 1, 3], + [3, 2, 0, 1, 4], + [4, 2, 1, 2, 3], + [4, 2, 0, 2, 4], + [4, 2, 0, 1, 5], + [5, 1, 2, 2, 3], + [5, 2, 0, 2, 5], + [6, 1, 1, 1, 4], + [7, 1, 1, 1, 5], + [7, 2, 1, 2, 4], + [8, 1, 2, 2, 4], + [8, 2, 1, 2, 5], + [9, 1, 2, 2, 5]], + [[0, 1, 0, 0, 6], + [1, 1, 0, 0, 7], + [1, 2, 0, 1, 6], + [2, 1, 0, 0, 8], + [2, 2, 0, 2, 6], + [3, 1, 1, 1, 6], + [3, 2, 0, 1, 7], + [4, 2, 1, 2, 6], + [4, 2, 0, 2, 7], + [4, 2, 0, 1, 8], + [5, 1, 2, 2, 6], + [5, 2, 0, 2, 8], + [6, 1, 1, 1, 7], + [7, 1, 1, 1, 8], + [7, 2, 1, 2, 7], + [8, 1, 2, 2, 7], + [8, 2, 1, 2, 8], + [9, 1, 2, 2, 8]], + [[0, 1, 0, 3, 3], + [1, 1, 1, 3, 3], + [1, 2, 0, 3, 4], + [2, 1, 2, 3, 3], + [2, 2, 0, 3, 5], + [3, 1, 0, 4, 4], + [3, 2, 1, 3, 4], + [4, 2, 2, 3, 4], + [4, 2, 1, 3, 5], + [4, 2, 0, 4, 5], + [5, 1, 0, 5, 5], + [5, 2, 2, 3, 5], + [6, 1, 1, 4, 4], + [7, 1, 2, 4, 4], + [7, 2, 1, 4, 5], + [8, 1, 1, 5, 5], + [8, 2, 2, 4, 5], + [9, 1, 2, 5, 5]], + [[0, 1, 0, 3, 6], + [1, 1, 1, 3, 6], + [1, 1, 0, 4, 6], + [1, 1, 0, 3, 7], + [2, 1, 2, 3, 6], + [2, 1, 0, 5, 6], + [2, 1, 0, 3, 8], + [3, 1, 1, 4, 6], + [3, 1, 1, 3, 7], + [3, 1, 0, 4, 7], + [4, 1, 2, 4, 6], + [4, 1, 2, 3, 7], + [4, 1, 1, 5, 6], + [4, 1, 1, 3, 8], + [4, 1, 0, 5, 7], + [4, 1, 0, 4, 8], + [5, 1, 2, 5, 6], + [5, 1, 2, 3, 8], + [5, 1, 0, 5, 8], + [6, 1, 1, 4, 7], + [7, 1, 2, 4, 7], + [7, 1, 1, 5, 7], + [7, 1, 1, 4, 8], + [8, 1, 2, 5, 7], + [8, 1, 2, 4, 8], + [8, 1, 1, 5, 8], + [9, 1, 2, 5, 8]], + [[0, 1, 0, 6, 6], + [1, 1, 1, 6, 6], + [1, 2, 0, 6, 7], + [2, 1, 2, 6, 6], + [2, 2, 0, 6, 8], + [3, 1, 0, 7, 7], + [3, 2, 1, 6, 7], + [4, 2, 2, 6, 7], + [4, 2, 1, 6, 8], + [4, 2, 0, 7, 8], + [5, 1, 0, 8, 8], + [5, 2, 2, 6, 8], + [6, 1, 1, 7, 7], + [7, 1, 2, 7, 7], + [7, 2, 1, 7, 8], + [8, 1, 1, 8, 8], + [8, 2, 2, 7, 8], + [9, 1, 2, 8, 8]], + [[0, 1, 3, 3, 3], + [1, 3, 3, 3, 4], + [2, 3, 3, 3, 5], + [3, 3, 3, 4, 4], + [4, 6, 3, 4, 5], + [5, 3, 3, 5, 5], + [6, 1, 4, 4, 4], + [7, 3, 4, 4, 5], + [8, 3, 4, 5, 5], + [9, 1, 5, 5, 5]], + [[0, 1, 3, 3, 6], + [1, 1, 3, 3, 7], + [1, 2, 3, 4, 6], + [2, 1, 3, 3, 8], + [2, 2, 3, 5, 6], + [3, 1, 4, 4, 6], + [3, 2, 3, 4, 7], + [4, 2, 4, 5, 6], + [4, 2, 3, 5, 7], + [4, 2, 3, 4, 8], + [5, 1, 5, 5, 6], + [5, 2, 3, 5, 8], + [6, 1, 4, 4, 7], + [7, 1, 4, 4, 8], + [7, 2, 4, 5, 7], + [8, 1, 5, 5, 7], + [8, 2, 4, 5, 8], + [9, 1, 5, 5, 8]], + [[0, 1, 3, 6, 6], + [1, 1, 4, 6, 6], + [1, 2, 3, 6, 7], + [2, 1, 5, 6, 6], + [2, 2, 3, 6, 8], + [3, 1, 3, 7, 7], + [3, 2, 4, 6, 7], + [4, 2, 5, 6, 7], + [4, 2, 4, 6, 8], + [4, 2, 3, 7, 8], + [5, 1, 3, 8, 8], + [5, 2, 5, 6, 8], + [6, 1, 4, 7, 7], + [7, 1, 5, 7, 7], + [7, 2, 4, 7, 8], + [8, 1, 4, 8, 8], + [8, 2, 5, 7, 8], + [9, 1, 5, 8, 8]], + [[0, 1, 6, 6, 6], + [1, 3, 6, 6, 7], + [2, 3, 6, 6, 8], + [3, 3, 6, 7, 7], + [4, 6, 6, 7, 8], + [5, 3, 6, 8, 8], + [6, 1, 7, 7, 7], + [7, 3, 7, 7, 8], + [8, 3, 7, 8, 8], + [9, 1, 8, 8, 8]], + ], + [ + [[0, 1, 0, 0, 0, 0], + [1, 4, 0, 0, 0, 1], + [2, 4, 0, 0, 0, 2], + [3, 6, 0, 0, 1, 1], + [4, 12, 0, 0, 1, 2], + [5, 6, 0, 0, 2, 2], + [6, 4, 0, 1, 1, 1], + [7, 12, 0, 1, 1, 2], + [8, 12, 0, 1, 2, 2], + [9, 4, 0, 2, 2, 2], + [10, 1, 1, 1, 1, 1], + [11, 4, 1, 1, 1, 2], + [12, 6, 1, 1, 2, 2], + [13, 4, 1, 2, 2, 2], + [14, 1, 2, 2, 2, 2]], + [[0, 1, 0, 0, 0, 3], + [1, 1, 0, 0, 0, 4], + [1, 3, 0, 0, 1, 3], + [2, 1, 0, 0, 0, 5], + [2, 3, 0, 0, 2, 3], + [3, 3, 0, 1, 1, 3], + [3, 3, 0, 0, 1, 4], + [4, 3, 0, 0, 2, 4], + [4, 3, 0, 0, 1, 5], + [4, 6, 0, 1, 2, 3], + [5, 3, 0, 2, 2, 3], + [5, 3, 0, 0, 2, 5], + [6, 1, 1, 1, 1, 3], + [6, 3, 0, 1, 1, 4], + [7, 3, 1, 1, 2, 3], + [7, 3, 0, 1, 1, 5], + [7, 6, 0, 1, 2, 4], + [8, 3, 1, 2, 2, 3], + [8, 3, 0, 2, 2, 4], + [8, 6, 0, 1, 2, 5], + [9, 1, 2, 2, 2, 3], + [9, 3, 0, 2, 2, 5], + [10, 1, 1, 1, 1, 4], + [11, 1, 1, 1, 1, 5], + [11, 3, 1, 1, 2, 4], + [12, 3, 1, 2, 2, 4], + [12, 3, 1, 1, 2, 5], + [13, 1, 2, 2, 2, 4], + [13, 3, 1, 2, 2, 5], + [14, 1, 2, 2, 2, 5]], + [[0, 1, 0, 0, 0, 6], + [1, 1, 0, 0, 0, 7], + [1, 3, 0, 0, 1, 6], + [2, 1, 0, 0, 0, 8], + [2, 3, 0, 0, 2, 6], + [3, 3, 0, 1, 1, 6], + [3, 3, 0, 0, 1, 7], + [4, 3, 0, 0, 2, 7], + [4, 3, 0, 0, 1, 8], + [4, 6, 0, 1, 2, 6], + [5, 3, 0, 2, 2, 6], + [5, 3, 0, 0, 2, 8], + [6, 1, 1, 1, 1, 6], + [6, 3, 0, 1, 1, 7], + [7, 3, 1, 1, 2, 6], + [7, 3, 0, 1, 1, 8], + [7, 6, 0, 1, 2, 7], + [8, 3, 1, 2, 2, 6], + [8, 3, 0, 2, 2, 7], + [8, 6, 0, 1, 2, 8], + [9, 1, 2, 2, 2, 6], + [9, 3, 0, 2, 2, 8], + [10, 1, 1, 1, 1, 7], + [11, 1, 1, 1, 1, 8], + [11, 3, 1, 1, 2, 7], + [12, 3, 1, 2, 2, 7], + [12, 3, 1, 1, 2, 8], + [13, 1, 2, 2, 2, 7], + [13, 3, 1, 2, 2, 8], + [14, 1, 2, 2, 2, 8]], + [[0, 1, 0, 0, 3, 3], + [1, 2, 0, 1, 3, 3], + [1, 2, 0, 0, 3, 4], + [2, 2, 0, 2, 3, 3], + [2, 2, 0, 0, 3, 5], + [3, 1, 1, 1, 3, 3], + [3, 1, 0, 0, 4, 4], + [3, 4, 0, 1, 3, 4], + [4, 2, 1, 2, 3, 3], + [4, 2, 0, 0, 4, 5], + [4, 4, 0, 2, 3, 4], + [4, 4, 0, 1, 3, 5], + [5, 1, 2, 2, 3, 3], + [5, 1, 0, 0, 5, 5], + [5, 4, 0, 2, 3, 5], + [6, 2, 1, 1, 3, 4], + [6, 2, 0, 1, 4, 4], + [7, 2, 1, 1, 3, 5], + [7, 2, 0, 2, 4, 4], + [7, 4, 1, 2, 3, 4], + [7, 4, 0, 1, 4, 5], + [8, 2, 2, 2, 3, 4], + [8, 2, 0, 1, 5, 5], + [8, 4, 1, 2, 3, 5], + [8, 4, 0, 2, 4, 5], + [9, 2, 2, 2, 3, 5], + [9, 2, 0, 2, 5, 5], + [10, 1, 1, 1, 4, 4], + [11, 2, 1, 2, 4, 4], + [11, 2, 1, 1, 4, 5], + [12, 1, 2, 2, 4, 4], + [12, 1, 1, 1, 5, 5], + [12, 4, 1, 2, 4, 5], + [13, 2, 2, 2, 4, 5], + [13, 2, 1, 2, 5, 5], + [14, 1, 2, 2, 5, 5]], + [[0, 1, 0, 0, 3, 6], + [1, 1, 0, 0, 4, 6], + [1, 1, 0, 0, 3, 7], + [1, 2, 0, 1, 3, 6], + [2, 1, 0, 0, 5, 6], + [2, 1, 0, 0, 3, 8], + [2, 2, 0, 2, 3, 6], + [3, 1, 1, 1, 3, 6], + [3, 1, 0, 0, 4, 7], + [3, 2, 0, 1, 4, 6], + [3, 2, 0, 1, 3, 7], + [4, 1, 0, 0, 5, 7], + [4, 1, 0, 0, 4, 8], + [4, 2, 1, 2, 3, 6], + [4, 2, 0, 2, 4, 6], + [4, 2, 0, 2, 3, 7], + [4, 2, 0, 1, 5, 6], + [4, 2, 0, 1, 3, 8], + [5, 1, 2, 2, 3, 6], + [5, 1, 0, 0, 5, 8], + [5, 2, 0, 2, 5, 6], + [5, 2, 0, 2, 3, 8], + [6, 1, 1, 1, 4, 6], + [6, 1, 1, 1, 3, 7], + [6, 2, 0, 1, 4, 7], + [7, 1, 1, 1, 5, 6], + [7, 1, 1, 1, 3, 8], + [7, 2, 1, 2, 4, 6], + [7, 2, 1, 2, 3, 7], + [7, 2, 0, 2, 4, 7], + [7, 2, 0, 1, 5, 7], + [7, 2, 0, 1, 4, 8], + [8, 1, 2, 2, 4, 6], + [8, 1, 2, 2, 3, 7], + [8, 2, 1, 2, 5, 6], + [8, 2, 1, 2, 3, 8], + [8, 2, 0, 2, 5, 7], + [8, 2, 0, 2, 4, 8], + [8, 2, 0, 1, 5, 8], + [9, 1, 2, 2, 5, 6], + [9, 1, 2, 2, 3, 8], + [9, 2, 0, 2, 5, 8], + [10, 1, 1, 1, 4, 7], + [11, 1, 1, 1, 5, 7], + [11, 1, 1, 1, 4, 8], + [11, 2, 1, 2, 4, 7], + [12, 1, 2, 2, 4, 7], + [12, 1, 1, 1, 5, 8], + [12, 2, 1, 2, 5, 7], + [12, 2, 1, 2, 4, 8], + [13, 1, 2, 2, 5, 7], + [13, 1, 2, 2, 4, 8], + [13, 2, 1, 2, 5, 8], + [14, 1, 2, 2, 5, 8]], + [[0, 1, 0, 0, 6, 6], + [1, 2, 0, 1, 6, 6], + [1, 2, 0, 0, 6, 7], + [2, 2, 0, 2, 6, 6], + [2, 2, 0, 0, 6, 8], + [3, 1, 1, 1, 6, 6], + [3, 1, 0, 0, 7, 7], + [3, 4, 0, 1, 6, 7], + [4, 2, 1, 2, 6, 6], + [4, 2, 0, 0, 7, 8], + [4, 4, 0, 2, 6, 7], + [4, 4, 0, 1, 6, 8], + [5, 1, 2, 2, 6, 6], + [5, 1, 0, 0, 8, 8], + [5, 4, 0, 2, 6, 8], + [6, 2, 1, 1, 6, 7], + [6, 2, 0, 1, 7, 7], + [7, 2, 1, 1, 6, 8], + [7, 2, 0, 2, 7, 7], + [7, 4, 1, 2, 6, 7], + [7, 4, 0, 1, 7, 8], + [8, 2, 2, 2, 6, 7], + [8, 2, 0, 1, 8, 8], + [8, 4, 1, 2, 6, 8], + [8, 4, 0, 2, 7, 8], + [9, 2, 2, 2, 6, 8], + [9, 2, 0, 2, 8, 8], + [10, 1, 1, 1, 7, 7], + [11, 2, 1, 2, 7, 7], + [11, 2, 1, 1, 7, 8], + [12, 1, 2, 2, 7, 7], + [12, 1, 1, 1, 8, 8], + [12, 4, 1, 2, 7, 8], + [13, 2, 2, 2, 7, 8], + [13, 2, 1, 2, 8, 8], + [14, 1, 2, 2, 8, 8]], + [[0, 1, 0, 3, 3, 3], + [1, 1, 1, 3, 3, 3], + [1, 3, 0, 3, 3, 4], + [2, 1, 2, 3, 3, 3], + [2, 3, 0, 3, 3, 5], + [3, 3, 1, 3, 3, 4], + [3, 3, 0, 3, 4, 4], + [4, 3, 2, 3, 3, 4], + [4, 3, 1, 3, 3, 5], + [4, 6, 0, 3, 4, 5], + [5, 3, 2, 3, 3, 5], + [5, 3, 0, 3, 5, 5], + [6, 1, 0, 4, 4, 4], + [6, 3, 1, 3, 4, 4], + [7, 3, 2, 3, 4, 4], + [7, 3, 0, 4, 4, 5], + [7, 6, 1, 3, 4, 5], + [8, 3, 1, 3, 5, 5], + [8, 3, 0, 4, 5, 5], + [8, 6, 2, 3, 4, 5], + [9, 1, 0, 5, 5, 5], + [9, 3, 2, 3, 5, 5], + [10, 1, 1, 4, 4, 4], + [11, 1, 2, 4, 4, 4], + [11, 3, 1, 4, 4, 5], + [12, 3, 2, 4, 4, 5], + [12, 3, 1, 4, 5, 5], + [13, 1, 1, 5, 5, 5], + [13, 3, 2, 4, 5, 5], + [14, 1, 2, 5, 5, 5]], + [[0, 1, 0, 3, 3, 6], + [1, 1, 1, 3, 3, 6], + [1, 1, 0, 3, 3, 7], + [1, 2, 0, 3, 4, 6], + [2, 1, 2, 3, 3, 6], + [2, 1, 0, 3, 3, 8], + [2, 2, 0, 3, 5, 6], + [3, 1, 1, 3, 3, 7], + [3, 1, 0, 4, 4, 6], + [3, 2, 1, 3, 4, 6], + [3, 2, 0, 3, 4, 7], + [4, 1, 2, 3, 3, 7], + [4, 1, 1, 3, 3, 8], + [4, 2, 2, 3, 4, 6], + [4, 2, 1, 3, 5, 6], + [4, 2, 0, 4, 5, 6], + [4, 2, 0, 3, 5, 7], + [4, 2, 0, 3, 4, 8], + [5, 1, 2, 3, 3, 8], + [5, 1, 0, 5, 5, 6], + [5, 2, 2, 3, 5, 6], + [5, 2, 0, 3, 5, 8], + [6, 1, 1, 4, 4, 6], + [6, 1, 0, 4, 4, 7], + [6, 2, 1, 3, 4, 7], + [7, 1, 2, 4, 4, 6], + [7, 1, 0, 4, 4, 8], + [7, 2, 2, 3, 4, 7], + [7, 2, 1, 4, 5, 6], + [7, 2, 1, 3, 5, 7], + [7, 2, 1, 3, 4, 8], + [7, 2, 0, 4, 5, 7], + [8, 1, 1, 5, 5, 6], + [8, 1, 0, 5, 5, 7], + [8, 2, 2, 4, 5, 6], + [8, 2, 2, 3, 5, 7], + [8, 2, 2, 3, 4, 8], + [8, 2, 1, 3, 5, 8], + [8, 2, 0, 4, 5, 8], + [9, 1, 2, 5, 5, 6], + [9, 1, 0, 5, 5, 8], + [9, 2, 2, 3, 5, 8], + [10, 1, 1, 4, 4, 7], + [11, 1, 2, 4, 4, 7], + [11, 1, 1, 4, 4, 8], + [11, 2, 1, 4, 5, 7], + [12, 1, 2, 4, 4, 8], + [12, 1, 1, 5, 5, 7], + [12, 2, 2, 4, 5, 7], + [12, 2, 1, 4, 5, 8], + [13, 1, 2, 5, 5, 7], + [13, 1, 1, 5, 5, 8], + [13, 2, 2, 4, 5, 8], + [14, 1, 2, 5, 5, 8]], + [[0, 1, 0, 3, 6, 6], + [1, 1, 1, 3, 6, 6], + [1, 1, 0, 4, 6, 6], + [1, 2, 0, 3, 6, 7], + [2, 1, 2, 3, 6, 6], + [2, 1, 0, 5, 6, 6], + [2, 2, 0, 3, 6, 8], + [3, 1, 1, 4, 6, 6], + [3, 1, 0, 3, 7, 7], + [3, 2, 1, 3, 6, 7], + [3, 2, 0, 4, 6, 7], + [4, 1, 2, 4, 6, 6], + [4, 1, 1, 5, 6, 6], + [4, 2, 2, 3, 6, 7], + [4, 2, 1, 3, 6, 8], + [4, 2, 0, 5, 6, 7], + [4, 2, 0, 4, 6, 8], + [4, 2, 0, 3, 7, 8], + [5, 1, 2, 5, 6, 6], + [5, 1, 0, 3, 8, 8], + [5, 2, 2, 3, 6, 8], + [5, 2, 0, 5, 6, 8], + [6, 1, 1, 3, 7, 7], + [6, 1, 0, 4, 7, 7], + [6, 2, 1, 4, 6, 7], + [7, 1, 2, 3, 7, 7], + [7, 1, 0, 5, 7, 7], + [7, 2, 2, 4, 6, 7], + [7, 2, 1, 5, 6, 7], + [7, 2, 1, 4, 6, 8], + [7, 2, 1, 3, 7, 8], + [7, 2, 0, 4, 7, 8], + [8, 1, 1, 3, 8, 8], + [8, 1, 0, 4, 8, 8], + [8, 2, 2, 5, 6, 7], + [8, 2, 2, 4, 6, 8], + [8, 2, 2, 3, 7, 8], + [8, 2, 1, 5, 6, 8], + [8, 2, 0, 5, 7, 8], + [9, 1, 2, 3, 8, 8], + [9, 1, 0, 5, 8, 8], + [9, 2, 2, 5, 6, 8], + [10, 1, 1, 4, 7, 7], + [11, 1, 2, 4, 7, 7], + [11, 1, 1, 5, 7, 7], + [11, 2, 1, 4, 7, 8], + [12, 1, 2, 5, 7, 7], + [12, 1, 1, 4, 8, 8], + [12, 2, 2, 4, 7, 8], + [12, 2, 1, 5, 7, 8], + [13, 1, 2, 4, 8, 8], + [13, 1, 1, 5, 8, 8], + [13, 2, 2, 5, 7, 8], + [14, 1, 2, 5, 8, 8]], + [[0, 1, 0, 6, 6, 6], + [1, 1, 1, 6, 6, 6], + [1, 3, 0, 6, 6, 7], + [2, 1, 2, 6, 6, 6], + [2, 3, 0, 6, 6, 8], + [3, 3, 1, 6, 6, 7], + [3, 3, 0, 6, 7, 7], + [4, 3, 2, 6, 6, 7], + [4, 3, 1, 6, 6, 8], + [4, 6, 0, 6, 7, 8], + [5, 3, 2, 6, 6, 8], + [5, 3, 0, 6, 8, 8], + [6, 1, 0, 7, 7, 7], + [6, 3, 1, 6, 7, 7], + [7, 3, 2, 6, 7, 7], + [7, 3, 0, 7, 7, 8], + [7, 6, 1, 6, 7, 8], + [8, 3, 1, 6, 8, 8], + [8, 3, 0, 7, 8, 8], + [8, 6, 2, 6, 7, 8], + [9, 1, 0, 8, 8, 8], + [9, 3, 2, 6, 8, 8], + [10, 1, 1, 7, 7, 7], + [11, 1, 2, 7, 7, 7], + [11, 3, 1, 7, 7, 8], + [12, 3, 2, 7, 7, 8], + [12, 3, 1, 7, 8, 8], + [13, 1, 1, 8, 8, 8], + [13, 3, 2, 7, 8, 8], + [14, 1, 2, 8, 8, 8]], + [[0, 1, 3, 3, 3, 3], + [1, 4, 3, 3, 3, 4], + [2, 4, 3, 3, 3, 5], + [3, 6, 3, 3, 4, 4], + [4, 12, 3, 3, 4, 5], + [5, 6, 3, 3, 5, 5], + [6, 4, 3, 4, 4, 4], + [7, 12, 3, 4, 4, 5], + [8, 12, 3, 4, 5, 5], + [9, 4, 3, 5, 5, 5], + [10, 1, 4, 4, 4, 4], + [11, 4, 4, 4, 4, 5], + [12, 6, 4, 4, 5, 5], + [13, 4, 4, 5, 5, 5], + [14, 1, 5, 5, 5, 5]], + [[0, 1, 3, 3, 3, 6], + [1, 1, 3, 3, 3, 7], + [1, 3, 3, 3, 4, 6], + [2, 1, 3, 3, 3, 8], + [2, 3, 3, 3, 5, 6], + [3, 3, 3, 4, 4, 6], + [3, 3, 3, 3, 4, 7], + [4, 3, 3, 3, 5, 7], + [4, 3, 3, 3, 4, 8], + [4, 6, 3, 4, 5, 6], + [5, 3, 3, 5, 5, 6], + [5, 3, 3, 3, 5, 8], + [6, 1, 4, 4, 4, 6], + [6, 3, 3, 4, 4, 7], + [7, 3, 4, 4, 5, 6], + [7, 3, 3, 4, 4, 8], + [7, 6, 3, 4, 5, 7], + [8, 3, 4, 5, 5, 6], + [8, 3, 3, 5, 5, 7], + [8, 6, 3, 4, 5, 8], + [9, 1, 5, 5, 5, 6], + [9, 3, 3, 5, 5, 8], + [10, 1, 4, 4, 4, 7], + [11, 1, 4, 4, 4, 8], + [11, 3, 4, 4, 5, 7], + [12, 3, 4, 5, 5, 7], + [12, 3, 4, 4, 5, 8], + [13, 1, 5, 5, 5, 7], + [13, 3, 4, 5, 5, 8], + [14, 1, 5, 5, 5, 8]], + [[0, 1, 3, 3, 6, 6], + [1, 2, 3, 4, 6, 6], + [1, 2, 3, 3, 6, 7], + [2, 2, 3, 5, 6, 6], + [2, 2, 3, 3, 6, 8], + [3, 1, 4, 4, 6, 6], + [3, 1, 3, 3, 7, 7], + [3, 4, 3, 4, 6, 7], + [4, 2, 4, 5, 6, 6], + [4, 2, 3, 3, 7, 8], + [4, 4, 3, 5, 6, 7], + [4, 4, 3, 4, 6, 8], + [5, 1, 5, 5, 6, 6], + [5, 1, 3, 3, 8, 8], + [5, 4, 3, 5, 6, 8], + [6, 2, 4, 4, 6, 7], + [6, 2, 3, 4, 7, 7], + [7, 2, 4, 4, 6, 8], + [7, 2, 3, 5, 7, 7], + [7, 4, 4, 5, 6, 7], + [7, 4, 3, 4, 7, 8], + [8, 2, 5, 5, 6, 7], + [8, 2, 3, 4, 8, 8], + [8, 4, 4, 5, 6, 8], + [8, 4, 3, 5, 7, 8], + [9, 2, 5, 5, 6, 8], + [9, 2, 3, 5, 8, 8], + [10, 1, 4, 4, 7, 7], + [11, 2, 4, 5, 7, 7], + [11, 2, 4, 4, 7, 8], + [12, 1, 5, 5, 7, 7], + [12, 1, 4, 4, 8, 8], + [12, 4, 4, 5, 7, 8], + [13, 2, 5, 5, 7, 8], + [13, 2, 4, 5, 8, 8], + [14, 1, 5, 5, 8, 8]], + [[0, 1, 3, 6, 6, 6], + [1, 1, 4, 6, 6, 6], + [1, 3, 3, 6, 6, 7], + [2, 1, 5, 6, 6, 6], + [2, 3, 3, 6, 6, 8], + [3, 3, 4, 6, 6, 7], + [3, 3, 3, 6, 7, 7], + [4, 3, 5, 6, 6, 7], + [4, 3, 4, 6, 6, 8], + [4, 6, 3, 6, 7, 8], + [5, 3, 5, 6, 6, 8], + [5, 3, 3, 6, 8, 8], + [6, 1, 3, 7, 7, 7], + [6, 3, 4, 6, 7, 7], + [7, 3, 5, 6, 7, 7], + [7, 3, 3, 7, 7, 8], + [7, 6, 4, 6, 7, 8], + [8, 3, 4, 6, 8, 8], + [8, 3, 3, 7, 8, 8], + [8, 6, 5, 6, 7, 8], + [9, 1, 3, 8, 8, 8], + [9, 3, 5, 6, 8, 8], + [10, 1, 4, 7, 7, 7], + [11, 1, 5, 7, 7, 7], + [11, 3, 4, 7, 7, 8], + [12, 3, 5, 7, 7, 8], + [12, 3, 4, 7, 8, 8], + [13, 1, 4, 8, 8, 8], + [13, 3, 5, 7, 8, 8], + [14, 1, 5, 8, 8, 8]], + [[0, 1, 6, 6, 6, 6], + [1, 4, 6, 6, 6, 7], + [2, 4, 6, 6, 6, 8], + [3, 6, 6, 6, 7, 7], + [4, 12, 6, 6, 7, 8], + [5, 6, 6, 6, 8, 8], + [6, 4, 6, 7, 7, 7], + [7, 12, 6, 7, 7, 8], + [8, 12, 6, 7, 8, 8], + [9, 4, 6, 8, 8, 8], + [10, 1, 7, 7, 7, 7], + [11, 4, 7, 7, 7, 8], + [12, 6, 7, 7, 8, 8], + [13, 4, 7, 8, 8, 8], + [14, 1, 8, 8, 8, 8]], + ], +] + + # from horton.moments def rotate_cartesian_multipole(rmat, moments, mode): """Compute rotated Cartesian multipole moment/expansion. From f218610311e15ceac9872f73e1c93307bdfcbf35 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Wed, 16 Aug 2017 13:49:34 +0200 Subject: [PATCH 15/19] moved check_dms --- horton/meanfield/orbitals.py | 34 +++++++++++++++++-- horton/meanfield/scf_diis.py | 4 +-- horton/meanfield/scf_oda.py | 4 +-- horton/meanfield/utils.py | 66 ++++++++++++++++++------------------ 4 files changed, 69 insertions(+), 39 deletions(-) diff --git a/horton/meanfield/orbitals.py b/horton/meanfield/orbitals.py index 6141d2c5..e1fea4e9 100644 --- a/horton/meanfield/orbitals.py +++ b/horton/meanfield/orbitals.py @@ -23,9 +23,9 @@ import numpy as np from scipy.linalg import eigh -from horton.utils import check_type +from .utils import check_type -__all__ = ['Orbitals'] +__all__ = ['Orbitals', 'check_dm'] class Orbitals(object): @@ -486,3 +486,33 @@ def swap_orbitals(self, swaps): self.energies[index1], self.energies[index0] self.occupations[index0], self.occupations[index1] = \ self.occupations[index1], self.occupations[index0] + + +def check_dm(dm, overlap, eps=1e-4, occ_max=1.0): + """Check if the density matrix has eigenvalues in the proper range. + + Parameters + ---------- + dm : np.ndarray, shape=(nbasis, nbasis), dtype=float + The density matrix + overlap : np.ndarray, shape=(nbasis, nbasis), dtype=float + The overlap matrix + eps : float + The threshold on the eigenvalue inequalities. + occ_max : float + The maximum occupation. + + Raises + ------ + ValueError + When the density matrix has wrong eigenvalues. + """ + # construct natural orbitals + orb = Orbitals(dm.shape[0]) + orb.derive_naturals(dm, overlap) + if orb.occupations.min() < -eps: + raise ValueError('The density matrix has eigenvalues considerably smaller than ' + 'zero. error=%e' % (orb.occupations.min())) + if orb.occupations.max() > occ_max + eps: + raise ValueError('The density matrix has eigenvalues considerably larger than ' + 'max. error=%e' % (orb.occupations.max() - 1)) diff --git a/horton/meanfield/scf_diis.py b/horton/meanfield/scf_diis.py index b797ac9e..831a2420 100644 --- a/horton/meanfield/scf_diis.py +++ b/horton/meanfield/scf_diis.py @@ -24,8 +24,8 @@ from .exceptions import NoSCFConvergence from .convergence import convergence_error_commutator -from .orbitals import Orbitals -from .utils import compute_commutator, check_dm +from .orbitals import Orbitals, check_dm +from .utils import compute_commutator __all__ = [] diff --git a/horton/meanfield/scf_oda.py b/horton/meanfield/scf_oda.py index 2a6deaf6..bf2eb25a 100644 --- a/horton/meanfield/scf_oda.py +++ b/horton/meanfield/scf_oda.py @@ -24,8 +24,8 @@ from .exceptions import NoSCFConvergence from .convergence import convergence_error_commutator -from .orbitals import Orbitals -from .utils import check_dm, compute_commutator +from .orbitals import Orbitals, check_dm +from .utils import compute_commutator __all__ = ['ODASCFSolver', 'check_cubic'] diff --git a/horton/meanfield/utils.py b/horton/meanfield/utils.py index d5cbdaf4..1f138e7c 100644 --- a/horton/meanfield/utils.py +++ b/horton/meanfield/utils.py @@ -22,46 +22,14 @@ import numpy as np -from .orbitals import Orbitals - __all__ = [ - 'check_dm', 'get_level_shift', 'get_spin', 'get_homo_lumo', + 'get_level_shift', 'get_spin', 'get_homo_lumo', 'compute_commutator', ] boltzmann = 3.1668154051341965e-06 -def check_dm(dm, overlap, eps=1e-4, occ_max=1.0): - """Check if the density matrix has eigenvalues in the proper range. - - Parameters - ---------- - dm : np.ndarray, shape=(nbasis, nbasis), dtype=float - The density matrix - overlap : np.ndarray, shape=(nbasis, nbasis), dtype=float - The overlap matrix - eps : float - The threshold on the eigenvalue inequalities. - occ_max : float - The maximum occupation. - - Raises - ------ - ValueError - When the density matrix has wrong eigenvalues. - """ - # construct natural orbitals - orb = Orbitals(dm.shape[0]) - orb.derive_naturals(dm, overlap) - if orb.occupations.min() < -eps: - raise ValueError('The density matrix has eigenvalues considerably smaller than ' - 'zero. error=%e' % (orb.occupations.min())) - if orb.occupations.max() > occ_max + eps: - raise ValueError('The density matrix has eigenvalues considerably larger than ' - 'max. error=%e' % (orb.occupations.max() - 1)) - - def get_level_shift(dm, overlap): """Construct a level shift operator. @@ -183,6 +151,38 @@ def decorator(method): return decorator +def check_type(name, instance, *Classes): + """Check type of argument with given name against list of types + + **Arguments:** + + name + The name of the argument being checked. + + instance + The object being checked. + + Classes + A list of allowed types. + """ + if len(Classes) == 0: + raise TypeError('Type checking with an empty list of classes. This is a simple bug!') + match = False + for Class in Classes: + if isinstance(instance, Class): + match = True + break + if not match: + classes_parts = ['\'', Classes[0].__name__, '\''] + for Class in Classes[1:-1]: + classes_parts.extend([', ``', Class.__name__, '\'']) + if len(Classes) > 1: + classes_parts.extend(['or \'', Class.__name__, '\'']) + raise TypeError('The argument \'%s\' must be an instance of %s. Got a \'%s\' instance instead.' % ( + name, ''.join(classes_parts), instance.__class__.__name__ + )) + + # from horton.moments def get_ncart_cumul(lmax): """The number of cartesian powers up to a given angular momentum, lmax.""" From abb904034f401d5de3c5f49a950a336777163f65 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Wed, 16 Aug 2017 14:05:42 +0200 Subject: [PATCH 16/19] moved fac2 --- horton/meanfield/project.py | 2 ++ horton/meanfield/rotate.py | 3 +-- horton/meanfield/utils.py | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/horton/meanfield/project.py b/horton/meanfield/project.py index c1a0bbd2..5cadf299 100644 --- a/horton/meanfield/project.py +++ b/horton/meanfield/project.py @@ -20,6 +20,8 @@ # -- """Projection of 1-electron orbitals to a new basis set""" +# TODO: Move to gobasis? + import numpy as np from scipy.linalg import sqrtm diff --git a/horton/meanfield/rotate.py b/horton/meanfield/rotate.py index e28606ed..03e2bc91 100644 --- a/horton/meanfield/rotate.py +++ b/horton/meanfield/rotate.py @@ -22,8 +22,7 @@ import numpy as np -from horton.gbasis.cext import fac2 -from .utils import rotate_cartesian_multipole, get_cartesian_powers +from .utils import rotate_cartesian_multipole, get_cartesian_powers, fac2 __all__ = ['rotate_coeffs'] diff --git a/horton/meanfield/utils.py b/horton/meanfield/utils.py index 1f138e7c..40ef227b 100644 --- a/horton/meanfield/utils.py +++ b/horton/meanfield/utils.py @@ -183,6 +183,14 @@ def check_type(name, instance, *Classes): )) +def fac2(n): + result = 1 + while n > 1: + result *= n + n -= 2 + return result + + # from horton.moments def get_ncart_cumul(lmax): """The number of cartesian powers up to a given angular momentum, lmax.""" From e8c2040f73d7518692b7aff2cf222b8e045375c7 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Wed, 16 Aug 2017 14:53:02 +0200 Subject: [PATCH 17/19] moved moments --- horton/meanfield/moments.py | 809 +++++++++++++++++++++++++++ horton/meanfield/rotate.py | 3 +- horton/meanfield/test/test_utils.py | 2 +- horton/meanfield/utils.py | 811 ---------------------------- 4 files changed, 812 insertions(+), 813 deletions(-) create mode 100644 horton/meanfield/moments.py diff --git a/horton/meanfield/moments.py b/horton/meanfield/moments.py new file mode 100644 index 00000000..b1a1939d --- /dev/null +++ b/horton/meanfield/moments.py @@ -0,0 +1,809 @@ +import numpy as np + +# from horton.moments + +def get_ncart_cumul(lmax): + """The number of cartesian powers up to a given angular momentum, lmax.""" + return ((lmax + 1) * (lmax + 2) * (lmax + 3)) / 6 + + +def get_cartesian_powers(lmax): + """Return an ordered list of power for x, y and z up to angular moment lmax + + **Arguments:** + + lmax + The maximum angular momentum (0=s, 1=p, 2=d, ...) + + **Returns:** an array where each row corresponds to a multipole moment + and each column corresponds to a power of x, y and z respectively. The + rows are grouped per angular momentum, first s, them p, then d, and so + on. Within one angular momentum the rows are sorted 'alphabetically', + e.g. for l=2: xxx, xxy, xxz, xyy, xyz, xzz, yyy, yyz, yzz, zzz. + """ + cartesian_powers = np.zeros((get_ncart_cumul(lmax), 3), dtype=int) + counter = 0 + for l in xrange(0, lmax + 1): + for nx in xrange(l + 1, -1, -1): + for ny in xrange(l - nx, -1, -1): + nz = l - ny - nx + cartesian_powers[counter] = [nx, ny, nz] + counter += 1 + return cartesian_powers + + +cartesian_transforms = [ + [ + [[0, 1]], + ], + [ + [[0, 1, 0], + [1, 1, 1], + [2, 1, 2]], + [[0, 1, 3], + [1, 1, 4], + [2, 1, 5]], + [[0, 1, 6], + [1, 1, 7], + [2, 1, 8]], + ], + [ + [[0, 1, 0, 0], + [1, 2, 0, 1], + [2, 2, 0, 2], + [3, 1, 1, 1], + [4, 2, 1, 2], + [5, 1, 2, 2]], + [[0, 1, 0, 3], + [1, 1, 1, 3], + [1, 1, 0, 4], + [2, 1, 2, 3], + [2, 1, 0, 5], + [3, 1, 1, 4], + [4, 1, 2, 4], + [4, 1, 1, 5], + [5, 1, 2, 5]], + [[0, 1, 0, 6], + [1, 1, 1, 6], + [1, 1, 0, 7], + [2, 1, 2, 6], + [2, 1, 0, 8], + [3, 1, 1, 7], + [4, 1, 2, 7], + [4, 1, 1, 8], + [5, 1, 2, 8]], + [[0, 1, 3, 3], + [1, 2, 3, 4], + [2, 2, 3, 5], + [3, 1, 4, 4], + [4, 2, 4, 5], + [5, 1, 5, 5]], + [[0, 1, 3, 6], + [1, 1, 4, 6], + [1, 1, 3, 7], + [2, 1, 5, 6], + [2, 1, 3, 8], + [3, 1, 4, 7], + [4, 1, 5, 7], + [4, 1, 4, 8], + [5, 1, 5, 8]], + [[0, 1, 6, 6], + [1, 2, 6, 7], + [2, 2, 6, 8], + [3, 1, 7, 7], + [4, 2, 7, 8], + [5, 1, 8, 8]], + ], + [ + [[0, 1, 0, 0, 0], + [1, 3, 0, 0, 1], + [2, 3, 0, 0, 2], + [3, 3, 0, 1, 1], + [4, 6, 0, 1, 2], + [5, 3, 0, 2, 2], + [6, 1, 1, 1, 1], + [7, 3, 1, 1, 2], + [8, 3, 1, 2, 2], + [9, 1, 2, 2, 2]], + [[0, 1, 0, 0, 3], + [1, 1, 0, 0, 4], + [1, 2, 0, 1, 3], + [2, 1, 0, 0, 5], + [2, 2, 0, 2, 3], + [3, 1, 1, 1, 3], + [3, 2, 0, 1, 4], + [4, 2, 1, 2, 3], + [4, 2, 0, 2, 4], + [4, 2, 0, 1, 5], + [5, 1, 2, 2, 3], + [5, 2, 0, 2, 5], + [6, 1, 1, 1, 4], + [7, 1, 1, 1, 5], + [7, 2, 1, 2, 4], + [8, 1, 2, 2, 4], + [8, 2, 1, 2, 5], + [9, 1, 2, 2, 5]], + [[0, 1, 0, 0, 6], + [1, 1, 0, 0, 7], + [1, 2, 0, 1, 6], + [2, 1, 0, 0, 8], + [2, 2, 0, 2, 6], + [3, 1, 1, 1, 6], + [3, 2, 0, 1, 7], + [4, 2, 1, 2, 6], + [4, 2, 0, 2, 7], + [4, 2, 0, 1, 8], + [5, 1, 2, 2, 6], + [5, 2, 0, 2, 8], + [6, 1, 1, 1, 7], + [7, 1, 1, 1, 8], + [7, 2, 1, 2, 7], + [8, 1, 2, 2, 7], + [8, 2, 1, 2, 8], + [9, 1, 2, 2, 8]], + [[0, 1, 0, 3, 3], + [1, 1, 1, 3, 3], + [1, 2, 0, 3, 4], + [2, 1, 2, 3, 3], + [2, 2, 0, 3, 5], + [3, 1, 0, 4, 4], + [3, 2, 1, 3, 4], + [4, 2, 2, 3, 4], + [4, 2, 1, 3, 5], + [4, 2, 0, 4, 5], + [5, 1, 0, 5, 5], + [5, 2, 2, 3, 5], + [6, 1, 1, 4, 4], + [7, 1, 2, 4, 4], + [7, 2, 1, 4, 5], + [8, 1, 1, 5, 5], + [8, 2, 2, 4, 5], + [9, 1, 2, 5, 5]], + [[0, 1, 0, 3, 6], + [1, 1, 1, 3, 6], + [1, 1, 0, 4, 6], + [1, 1, 0, 3, 7], + [2, 1, 2, 3, 6], + [2, 1, 0, 5, 6], + [2, 1, 0, 3, 8], + [3, 1, 1, 4, 6], + [3, 1, 1, 3, 7], + [3, 1, 0, 4, 7], + [4, 1, 2, 4, 6], + [4, 1, 2, 3, 7], + [4, 1, 1, 5, 6], + [4, 1, 1, 3, 8], + [4, 1, 0, 5, 7], + [4, 1, 0, 4, 8], + [5, 1, 2, 5, 6], + [5, 1, 2, 3, 8], + [5, 1, 0, 5, 8], + [6, 1, 1, 4, 7], + [7, 1, 2, 4, 7], + [7, 1, 1, 5, 7], + [7, 1, 1, 4, 8], + [8, 1, 2, 5, 7], + [8, 1, 2, 4, 8], + [8, 1, 1, 5, 8], + [9, 1, 2, 5, 8]], + [[0, 1, 0, 6, 6], + [1, 1, 1, 6, 6], + [1, 2, 0, 6, 7], + [2, 1, 2, 6, 6], + [2, 2, 0, 6, 8], + [3, 1, 0, 7, 7], + [3, 2, 1, 6, 7], + [4, 2, 2, 6, 7], + [4, 2, 1, 6, 8], + [4, 2, 0, 7, 8], + [5, 1, 0, 8, 8], + [5, 2, 2, 6, 8], + [6, 1, 1, 7, 7], + [7, 1, 2, 7, 7], + [7, 2, 1, 7, 8], + [8, 1, 1, 8, 8], + [8, 2, 2, 7, 8], + [9, 1, 2, 8, 8]], + [[0, 1, 3, 3, 3], + [1, 3, 3, 3, 4], + [2, 3, 3, 3, 5], + [3, 3, 3, 4, 4], + [4, 6, 3, 4, 5], + [5, 3, 3, 5, 5], + [6, 1, 4, 4, 4], + [7, 3, 4, 4, 5], + [8, 3, 4, 5, 5], + [9, 1, 5, 5, 5]], + [[0, 1, 3, 3, 6], + [1, 1, 3, 3, 7], + [1, 2, 3, 4, 6], + [2, 1, 3, 3, 8], + [2, 2, 3, 5, 6], + [3, 1, 4, 4, 6], + [3, 2, 3, 4, 7], + [4, 2, 4, 5, 6], + [4, 2, 3, 5, 7], + [4, 2, 3, 4, 8], + [5, 1, 5, 5, 6], + [5, 2, 3, 5, 8], + [6, 1, 4, 4, 7], + [7, 1, 4, 4, 8], + [7, 2, 4, 5, 7], + [8, 1, 5, 5, 7], + [8, 2, 4, 5, 8], + [9, 1, 5, 5, 8]], + [[0, 1, 3, 6, 6], + [1, 1, 4, 6, 6], + [1, 2, 3, 6, 7], + [2, 1, 5, 6, 6], + [2, 2, 3, 6, 8], + [3, 1, 3, 7, 7], + [3, 2, 4, 6, 7], + [4, 2, 5, 6, 7], + [4, 2, 4, 6, 8], + [4, 2, 3, 7, 8], + [5, 1, 3, 8, 8], + [5, 2, 5, 6, 8], + [6, 1, 4, 7, 7], + [7, 1, 5, 7, 7], + [7, 2, 4, 7, 8], + [8, 1, 4, 8, 8], + [8, 2, 5, 7, 8], + [9, 1, 5, 8, 8]], + [[0, 1, 6, 6, 6], + [1, 3, 6, 6, 7], + [2, 3, 6, 6, 8], + [3, 3, 6, 7, 7], + [4, 6, 6, 7, 8], + [5, 3, 6, 8, 8], + [6, 1, 7, 7, 7], + [7, 3, 7, 7, 8], + [8, 3, 7, 8, 8], + [9, 1, 8, 8, 8]], + ], + [ + [[0, 1, 0, 0, 0, 0], + [1, 4, 0, 0, 0, 1], + [2, 4, 0, 0, 0, 2], + [3, 6, 0, 0, 1, 1], + [4, 12, 0, 0, 1, 2], + [5, 6, 0, 0, 2, 2], + [6, 4, 0, 1, 1, 1], + [7, 12, 0, 1, 1, 2], + [8, 12, 0, 1, 2, 2], + [9, 4, 0, 2, 2, 2], + [10, 1, 1, 1, 1, 1], + [11, 4, 1, 1, 1, 2], + [12, 6, 1, 1, 2, 2], + [13, 4, 1, 2, 2, 2], + [14, 1, 2, 2, 2, 2]], + [[0, 1, 0, 0, 0, 3], + [1, 1, 0, 0, 0, 4], + [1, 3, 0, 0, 1, 3], + [2, 1, 0, 0, 0, 5], + [2, 3, 0, 0, 2, 3], + [3, 3, 0, 1, 1, 3], + [3, 3, 0, 0, 1, 4], + [4, 3, 0, 0, 2, 4], + [4, 3, 0, 0, 1, 5], + [4, 6, 0, 1, 2, 3], + [5, 3, 0, 2, 2, 3], + [5, 3, 0, 0, 2, 5], + [6, 1, 1, 1, 1, 3], + [6, 3, 0, 1, 1, 4], + [7, 3, 1, 1, 2, 3], + [7, 3, 0, 1, 1, 5], + [7, 6, 0, 1, 2, 4], + [8, 3, 1, 2, 2, 3], + [8, 3, 0, 2, 2, 4], + [8, 6, 0, 1, 2, 5], + [9, 1, 2, 2, 2, 3], + [9, 3, 0, 2, 2, 5], + [10, 1, 1, 1, 1, 4], + [11, 1, 1, 1, 1, 5], + [11, 3, 1, 1, 2, 4], + [12, 3, 1, 2, 2, 4], + [12, 3, 1, 1, 2, 5], + [13, 1, 2, 2, 2, 4], + [13, 3, 1, 2, 2, 5], + [14, 1, 2, 2, 2, 5]], + [[0, 1, 0, 0, 0, 6], + [1, 1, 0, 0, 0, 7], + [1, 3, 0, 0, 1, 6], + [2, 1, 0, 0, 0, 8], + [2, 3, 0, 0, 2, 6], + [3, 3, 0, 1, 1, 6], + [3, 3, 0, 0, 1, 7], + [4, 3, 0, 0, 2, 7], + [4, 3, 0, 0, 1, 8], + [4, 6, 0, 1, 2, 6], + [5, 3, 0, 2, 2, 6], + [5, 3, 0, 0, 2, 8], + [6, 1, 1, 1, 1, 6], + [6, 3, 0, 1, 1, 7], + [7, 3, 1, 1, 2, 6], + [7, 3, 0, 1, 1, 8], + [7, 6, 0, 1, 2, 7], + [8, 3, 1, 2, 2, 6], + [8, 3, 0, 2, 2, 7], + [8, 6, 0, 1, 2, 8], + [9, 1, 2, 2, 2, 6], + [9, 3, 0, 2, 2, 8], + [10, 1, 1, 1, 1, 7], + [11, 1, 1, 1, 1, 8], + [11, 3, 1, 1, 2, 7], + [12, 3, 1, 2, 2, 7], + [12, 3, 1, 1, 2, 8], + [13, 1, 2, 2, 2, 7], + [13, 3, 1, 2, 2, 8], + [14, 1, 2, 2, 2, 8]], + [[0, 1, 0, 0, 3, 3], + [1, 2, 0, 1, 3, 3], + [1, 2, 0, 0, 3, 4], + [2, 2, 0, 2, 3, 3], + [2, 2, 0, 0, 3, 5], + [3, 1, 1, 1, 3, 3], + [3, 1, 0, 0, 4, 4], + [3, 4, 0, 1, 3, 4], + [4, 2, 1, 2, 3, 3], + [4, 2, 0, 0, 4, 5], + [4, 4, 0, 2, 3, 4], + [4, 4, 0, 1, 3, 5], + [5, 1, 2, 2, 3, 3], + [5, 1, 0, 0, 5, 5], + [5, 4, 0, 2, 3, 5], + [6, 2, 1, 1, 3, 4], + [6, 2, 0, 1, 4, 4], + [7, 2, 1, 1, 3, 5], + [7, 2, 0, 2, 4, 4], + [7, 4, 1, 2, 3, 4], + [7, 4, 0, 1, 4, 5], + [8, 2, 2, 2, 3, 4], + [8, 2, 0, 1, 5, 5], + [8, 4, 1, 2, 3, 5], + [8, 4, 0, 2, 4, 5], + [9, 2, 2, 2, 3, 5], + [9, 2, 0, 2, 5, 5], + [10, 1, 1, 1, 4, 4], + [11, 2, 1, 2, 4, 4], + [11, 2, 1, 1, 4, 5], + [12, 1, 2, 2, 4, 4], + [12, 1, 1, 1, 5, 5], + [12, 4, 1, 2, 4, 5], + [13, 2, 2, 2, 4, 5], + [13, 2, 1, 2, 5, 5], + [14, 1, 2, 2, 5, 5]], + [[0, 1, 0, 0, 3, 6], + [1, 1, 0, 0, 4, 6], + [1, 1, 0, 0, 3, 7], + [1, 2, 0, 1, 3, 6], + [2, 1, 0, 0, 5, 6], + [2, 1, 0, 0, 3, 8], + [2, 2, 0, 2, 3, 6], + [3, 1, 1, 1, 3, 6], + [3, 1, 0, 0, 4, 7], + [3, 2, 0, 1, 4, 6], + [3, 2, 0, 1, 3, 7], + [4, 1, 0, 0, 5, 7], + [4, 1, 0, 0, 4, 8], + [4, 2, 1, 2, 3, 6], + [4, 2, 0, 2, 4, 6], + [4, 2, 0, 2, 3, 7], + [4, 2, 0, 1, 5, 6], + [4, 2, 0, 1, 3, 8], + [5, 1, 2, 2, 3, 6], + [5, 1, 0, 0, 5, 8], + [5, 2, 0, 2, 5, 6], + [5, 2, 0, 2, 3, 8], + [6, 1, 1, 1, 4, 6], + [6, 1, 1, 1, 3, 7], + [6, 2, 0, 1, 4, 7], + [7, 1, 1, 1, 5, 6], + [7, 1, 1, 1, 3, 8], + [7, 2, 1, 2, 4, 6], + [7, 2, 1, 2, 3, 7], + [7, 2, 0, 2, 4, 7], + [7, 2, 0, 1, 5, 7], + [7, 2, 0, 1, 4, 8], + [8, 1, 2, 2, 4, 6], + [8, 1, 2, 2, 3, 7], + [8, 2, 1, 2, 5, 6], + [8, 2, 1, 2, 3, 8], + [8, 2, 0, 2, 5, 7], + [8, 2, 0, 2, 4, 8], + [8, 2, 0, 1, 5, 8], + [9, 1, 2, 2, 5, 6], + [9, 1, 2, 2, 3, 8], + [9, 2, 0, 2, 5, 8], + [10, 1, 1, 1, 4, 7], + [11, 1, 1, 1, 5, 7], + [11, 1, 1, 1, 4, 8], + [11, 2, 1, 2, 4, 7], + [12, 1, 2, 2, 4, 7], + [12, 1, 1, 1, 5, 8], + [12, 2, 1, 2, 5, 7], + [12, 2, 1, 2, 4, 8], + [13, 1, 2, 2, 5, 7], + [13, 1, 2, 2, 4, 8], + [13, 2, 1, 2, 5, 8], + [14, 1, 2, 2, 5, 8]], + [[0, 1, 0, 0, 6, 6], + [1, 2, 0, 1, 6, 6], + [1, 2, 0, 0, 6, 7], + [2, 2, 0, 2, 6, 6], + [2, 2, 0, 0, 6, 8], + [3, 1, 1, 1, 6, 6], + [3, 1, 0, 0, 7, 7], + [3, 4, 0, 1, 6, 7], + [4, 2, 1, 2, 6, 6], + [4, 2, 0, 0, 7, 8], + [4, 4, 0, 2, 6, 7], + [4, 4, 0, 1, 6, 8], + [5, 1, 2, 2, 6, 6], + [5, 1, 0, 0, 8, 8], + [5, 4, 0, 2, 6, 8], + [6, 2, 1, 1, 6, 7], + [6, 2, 0, 1, 7, 7], + [7, 2, 1, 1, 6, 8], + [7, 2, 0, 2, 7, 7], + [7, 4, 1, 2, 6, 7], + [7, 4, 0, 1, 7, 8], + [8, 2, 2, 2, 6, 7], + [8, 2, 0, 1, 8, 8], + [8, 4, 1, 2, 6, 8], + [8, 4, 0, 2, 7, 8], + [9, 2, 2, 2, 6, 8], + [9, 2, 0, 2, 8, 8], + [10, 1, 1, 1, 7, 7], + [11, 2, 1, 2, 7, 7], + [11, 2, 1, 1, 7, 8], + [12, 1, 2, 2, 7, 7], + [12, 1, 1, 1, 8, 8], + [12, 4, 1, 2, 7, 8], + [13, 2, 2, 2, 7, 8], + [13, 2, 1, 2, 8, 8], + [14, 1, 2, 2, 8, 8]], + [[0, 1, 0, 3, 3, 3], + [1, 1, 1, 3, 3, 3], + [1, 3, 0, 3, 3, 4], + [2, 1, 2, 3, 3, 3], + [2, 3, 0, 3, 3, 5], + [3, 3, 1, 3, 3, 4], + [3, 3, 0, 3, 4, 4], + [4, 3, 2, 3, 3, 4], + [4, 3, 1, 3, 3, 5], + [4, 6, 0, 3, 4, 5], + [5, 3, 2, 3, 3, 5], + [5, 3, 0, 3, 5, 5], + [6, 1, 0, 4, 4, 4], + [6, 3, 1, 3, 4, 4], + [7, 3, 2, 3, 4, 4], + [7, 3, 0, 4, 4, 5], + [7, 6, 1, 3, 4, 5], + [8, 3, 1, 3, 5, 5], + [8, 3, 0, 4, 5, 5], + [8, 6, 2, 3, 4, 5], + [9, 1, 0, 5, 5, 5], + [9, 3, 2, 3, 5, 5], + [10, 1, 1, 4, 4, 4], + [11, 1, 2, 4, 4, 4], + [11, 3, 1, 4, 4, 5], + [12, 3, 2, 4, 4, 5], + [12, 3, 1, 4, 5, 5], + [13, 1, 1, 5, 5, 5], + [13, 3, 2, 4, 5, 5], + [14, 1, 2, 5, 5, 5]], + [[0, 1, 0, 3, 3, 6], + [1, 1, 1, 3, 3, 6], + [1, 1, 0, 3, 3, 7], + [1, 2, 0, 3, 4, 6], + [2, 1, 2, 3, 3, 6], + [2, 1, 0, 3, 3, 8], + [2, 2, 0, 3, 5, 6], + [3, 1, 1, 3, 3, 7], + [3, 1, 0, 4, 4, 6], + [3, 2, 1, 3, 4, 6], + [3, 2, 0, 3, 4, 7], + [4, 1, 2, 3, 3, 7], + [4, 1, 1, 3, 3, 8], + [4, 2, 2, 3, 4, 6], + [4, 2, 1, 3, 5, 6], + [4, 2, 0, 4, 5, 6], + [4, 2, 0, 3, 5, 7], + [4, 2, 0, 3, 4, 8], + [5, 1, 2, 3, 3, 8], + [5, 1, 0, 5, 5, 6], + [5, 2, 2, 3, 5, 6], + [5, 2, 0, 3, 5, 8], + [6, 1, 1, 4, 4, 6], + [6, 1, 0, 4, 4, 7], + [6, 2, 1, 3, 4, 7], + [7, 1, 2, 4, 4, 6], + [7, 1, 0, 4, 4, 8], + [7, 2, 2, 3, 4, 7], + [7, 2, 1, 4, 5, 6], + [7, 2, 1, 3, 5, 7], + [7, 2, 1, 3, 4, 8], + [7, 2, 0, 4, 5, 7], + [8, 1, 1, 5, 5, 6], + [8, 1, 0, 5, 5, 7], + [8, 2, 2, 4, 5, 6], + [8, 2, 2, 3, 5, 7], + [8, 2, 2, 3, 4, 8], + [8, 2, 1, 3, 5, 8], + [8, 2, 0, 4, 5, 8], + [9, 1, 2, 5, 5, 6], + [9, 1, 0, 5, 5, 8], + [9, 2, 2, 3, 5, 8], + [10, 1, 1, 4, 4, 7], + [11, 1, 2, 4, 4, 7], + [11, 1, 1, 4, 4, 8], + [11, 2, 1, 4, 5, 7], + [12, 1, 2, 4, 4, 8], + [12, 1, 1, 5, 5, 7], + [12, 2, 2, 4, 5, 7], + [12, 2, 1, 4, 5, 8], + [13, 1, 2, 5, 5, 7], + [13, 1, 1, 5, 5, 8], + [13, 2, 2, 4, 5, 8], + [14, 1, 2, 5, 5, 8]], + [[0, 1, 0, 3, 6, 6], + [1, 1, 1, 3, 6, 6], + [1, 1, 0, 4, 6, 6], + [1, 2, 0, 3, 6, 7], + [2, 1, 2, 3, 6, 6], + [2, 1, 0, 5, 6, 6], + [2, 2, 0, 3, 6, 8], + [3, 1, 1, 4, 6, 6], + [3, 1, 0, 3, 7, 7], + [3, 2, 1, 3, 6, 7], + [3, 2, 0, 4, 6, 7], + [4, 1, 2, 4, 6, 6], + [4, 1, 1, 5, 6, 6], + [4, 2, 2, 3, 6, 7], + [4, 2, 1, 3, 6, 8], + [4, 2, 0, 5, 6, 7], + [4, 2, 0, 4, 6, 8], + [4, 2, 0, 3, 7, 8], + [5, 1, 2, 5, 6, 6], + [5, 1, 0, 3, 8, 8], + [5, 2, 2, 3, 6, 8], + [5, 2, 0, 5, 6, 8], + [6, 1, 1, 3, 7, 7], + [6, 1, 0, 4, 7, 7], + [6, 2, 1, 4, 6, 7], + [7, 1, 2, 3, 7, 7], + [7, 1, 0, 5, 7, 7], + [7, 2, 2, 4, 6, 7], + [7, 2, 1, 5, 6, 7], + [7, 2, 1, 4, 6, 8], + [7, 2, 1, 3, 7, 8], + [7, 2, 0, 4, 7, 8], + [8, 1, 1, 3, 8, 8], + [8, 1, 0, 4, 8, 8], + [8, 2, 2, 5, 6, 7], + [8, 2, 2, 4, 6, 8], + [8, 2, 2, 3, 7, 8], + [8, 2, 1, 5, 6, 8], + [8, 2, 0, 5, 7, 8], + [9, 1, 2, 3, 8, 8], + [9, 1, 0, 5, 8, 8], + [9, 2, 2, 5, 6, 8], + [10, 1, 1, 4, 7, 7], + [11, 1, 2, 4, 7, 7], + [11, 1, 1, 5, 7, 7], + [11, 2, 1, 4, 7, 8], + [12, 1, 2, 5, 7, 7], + [12, 1, 1, 4, 8, 8], + [12, 2, 2, 4, 7, 8], + [12, 2, 1, 5, 7, 8], + [13, 1, 2, 4, 8, 8], + [13, 1, 1, 5, 8, 8], + [13, 2, 2, 5, 7, 8], + [14, 1, 2, 5, 8, 8]], + [[0, 1, 0, 6, 6, 6], + [1, 1, 1, 6, 6, 6], + [1, 3, 0, 6, 6, 7], + [2, 1, 2, 6, 6, 6], + [2, 3, 0, 6, 6, 8], + [3, 3, 1, 6, 6, 7], + [3, 3, 0, 6, 7, 7], + [4, 3, 2, 6, 6, 7], + [4, 3, 1, 6, 6, 8], + [4, 6, 0, 6, 7, 8], + [5, 3, 2, 6, 6, 8], + [5, 3, 0, 6, 8, 8], + [6, 1, 0, 7, 7, 7], + [6, 3, 1, 6, 7, 7], + [7, 3, 2, 6, 7, 7], + [7, 3, 0, 7, 7, 8], + [7, 6, 1, 6, 7, 8], + [8, 3, 1, 6, 8, 8], + [8, 3, 0, 7, 8, 8], + [8, 6, 2, 6, 7, 8], + [9, 1, 0, 8, 8, 8], + [9, 3, 2, 6, 8, 8], + [10, 1, 1, 7, 7, 7], + [11, 1, 2, 7, 7, 7], + [11, 3, 1, 7, 7, 8], + [12, 3, 2, 7, 7, 8], + [12, 3, 1, 7, 8, 8], + [13, 1, 1, 8, 8, 8], + [13, 3, 2, 7, 8, 8], + [14, 1, 2, 8, 8, 8]], + [[0, 1, 3, 3, 3, 3], + [1, 4, 3, 3, 3, 4], + [2, 4, 3, 3, 3, 5], + [3, 6, 3, 3, 4, 4], + [4, 12, 3, 3, 4, 5], + [5, 6, 3, 3, 5, 5], + [6, 4, 3, 4, 4, 4], + [7, 12, 3, 4, 4, 5], + [8, 12, 3, 4, 5, 5], + [9, 4, 3, 5, 5, 5], + [10, 1, 4, 4, 4, 4], + [11, 4, 4, 4, 4, 5], + [12, 6, 4, 4, 5, 5], + [13, 4, 4, 5, 5, 5], + [14, 1, 5, 5, 5, 5]], + [[0, 1, 3, 3, 3, 6], + [1, 1, 3, 3, 3, 7], + [1, 3, 3, 3, 4, 6], + [2, 1, 3, 3, 3, 8], + [2, 3, 3, 3, 5, 6], + [3, 3, 3, 4, 4, 6], + [3, 3, 3, 3, 4, 7], + [4, 3, 3, 3, 5, 7], + [4, 3, 3, 3, 4, 8], + [4, 6, 3, 4, 5, 6], + [5, 3, 3, 5, 5, 6], + [5, 3, 3, 3, 5, 8], + [6, 1, 4, 4, 4, 6], + [6, 3, 3, 4, 4, 7], + [7, 3, 4, 4, 5, 6], + [7, 3, 3, 4, 4, 8], + [7, 6, 3, 4, 5, 7], + [8, 3, 4, 5, 5, 6], + [8, 3, 3, 5, 5, 7], + [8, 6, 3, 4, 5, 8], + [9, 1, 5, 5, 5, 6], + [9, 3, 3, 5, 5, 8], + [10, 1, 4, 4, 4, 7], + [11, 1, 4, 4, 4, 8], + [11, 3, 4, 4, 5, 7], + [12, 3, 4, 5, 5, 7], + [12, 3, 4, 4, 5, 8], + [13, 1, 5, 5, 5, 7], + [13, 3, 4, 5, 5, 8], + [14, 1, 5, 5, 5, 8]], + [[0, 1, 3, 3, 6, 6], + [1, 2, 3, 4, 6, 6], + [1, 2, 3, 3, 6, 7], + [2, 2, 3, 5, 6, 6], + [2, 2, 3, 3, 6, 8], + [3, 1, 4, 4, 6, 6], + [3, 1, 3, 3, 7, 7], + [3, 4, 3, 4, 6, 7], + [4, 2, 4, 5, 6, 6], + [4, 2, 3, 3, 7, 8], + [4, 4, 3, 5, 6, 7], + [4, 4, 3, 4, 6, 8], + [5, 1, 5, 5, 6, 6], + [5, 1, 3, 3, 8, 8], + [5, 4, 3, 5, 6, 8], + [6, 2, 4, 4, 6, 7], + [6, 2, 3, 4, 7, 7], + [7, 2, 4, 4, 6, 8], + [7, 2, 3, 5, 7, 7], + [7, 4, 4, 5, 6, 7], + [7, 4, 3, 4, 7, 8], + [8, 2, 5, 5, 6, 7], + [8, 2, 3, 4, 8, 8], + [8, 4, 4, 5, 6, 8], + [8, 4, 3, 5, 7, 8], + [9, 2, 5, 5, 6, 8], + [9, 2, 3, 5, 8, 8], + [10, 1, 4, 4, 7, 7], + [11, 2, 4, 5, 7, 7], + [11, 2, 4, 4, 7, 8], + [12, 1, 5, 5, 7, 7], + [12, 1, 4, 4, 8, 8], + [12, 4, 4, 5, 7, 8], + [13, 2, 5, 5, 7, 8], + [13, 2, 4, 5, 8, 8], + [14, 1, 5, 5, 8, 8]], + [[0, 1, 3, 6, 6, 6], + [1, 1, 4, 6, 6, 6], + [1, 3, 3, 6, 6, 7], + [2, 1, 5, 6, 6, 6], + [2, 3, 3, 6, 6, 8], + [3, 3, 4, 6, 6, 7], + [3, 3, 3, 6, 7, 7], + [4, 3, 5, 6, 6, 7], + [4, 3, 4, 6, 6, 8], + [4, 6, 3, 6, 7, 8], + [5, 3, 5, 6, 6, 8], + [5, 3, 3, 6, 8, 8], + [6, 1, 3, 7, 7, 7], + [6, 3, 4, 6, 7, 7], + [7, 3, 5, 6, 7, 7], + [7, 3, 3, 7, 7, 8], + [7, 6, 4, 6, 7, 8], + [8, 3, 4, 6, 8, 8], + [8, 3, 3, 7, 8, 8], + [8, 6, 5, 6, 7, 8], + [9, 1, 3, 8, 8, 8], + [9, 3, 5, 6, 8, 8], + [10, 1, 4, 7, 7, 7], + [11, 1, 5, 7, 7, 7], + [11, 3, 4, 7, 7, 8], + [12, 3, 5, 7, 7, 8], + [12, 3, 4, 7, 8, 8], + [13, 1, 4, 8, 8, 8], + [13, 3, 5, 7, 8, 8], + [14, 1, 5, 8, 8, 8]], + [[0, 1, 6, 6, 6, 6], + [1, 4, 6, 6, 6, 7], + [2, 4, 6, 6, 6, 8], + [3, 6, 6, 6, 7, 7], + [4, 12, 6, 6, 7, 8], + [5, 6, 6, 6, 8, 8], + [6, 4, 6, 7, 7, 7], + [7, 12, 6, 7, 7, 8], + [8, 12, 6, 7, 8, 8], + [9, 4, 6, 8, 8, 8], + [10, 1, 7, 7, 7, 7], + [11, 4, 7, 7, 7, 8], + [12, 6, 7, 7, 8, 8], + [13, 4, 7, 8, 8, 8], + [14, 1, 8, 8, 8, 8]], + ], +] + + +def rotate_cartesian_multipole(rmat, moments, mode): + """Compute rotated Cartesian multipole moment/expansion. + + **Arguments:** + + rmat + A (3,3) rotation matrix. + + moments + A multipole moment/coeffs. The angular momentum is derived from the + length of this vector. + + mode + A string containing either 'moments' or 'coeffs'. In case if + 'moments', a Cartesian multipole moment rotation is carried out. In + case of 'coeffs', the coefficients of a Cartesian multipole basis + are rotated. + + **Returns:** rotated multipole. + """ + l = ((9 + 8 * (len(moments) - 1)) ** 0.5 - 3) / 2 + if l - np.round(l) > 1e-10: + raise ValueError('Could not determine l from number of moments.') + l = int(np.round(l)) + + if mode == 'coeffs': + rcoeffs = rmat.T.ravel() + elif mode == 'moments': + rcoeffs = rmat.ravel() + else: + raise NotImplementedError + result = np.zeros(len(moments)) + for i0 in xrange(len(moments)): + rules = cartesian_transforms[l][i0] + for rule in rules: + i1 = rule[0] + factor = rule[1] + for j in rule[2:]: + factor *= rcoeffs[j] + if mode == 'coeffs': + result[i1] += moments[i0] * factor + elif mode == 'moments': + result[i0] += moments[i1] * factor + else: + raise NotImplementedError + return result diff --git a/horton/meanfield/rotate.py b/horton/meanfield/rotate.py index 03e2bc91..15b6fd1d 100644 --- a/horton/meanfield/rotate.py +++ b/horton/meanfield/rotate.py @@ -22,7 +22,8 @@ import numpy as np -from .utils import rotate_cartesian_multipole, get_cartesian_powers, fac2 +from .utils import fac2 +from horton.meanfield.moments import get_cartesian_powers, rotate_cartesian_multipole __all__ = ['rotate_coeffs'] diff --git a/horton/meanfield/test/test_utils.py b/horton/meanfield/test/test_utils.py index 77dd16ac..d4225b9a 100644 --- a/horton/meanfield/test/test_utils.py +++ b/horton/meanfield/test/test_utils.py @@ -24,7 +24,7 @@ import numpy as np from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from .. utils import get_ncart_cumul, get_cartesian_powers +from horton.meanfield.moments import get_ncart_cumul, get_cartesian_powers def check_spin(fn_fchk, sz0, ssq0, eps): diff --git a/horton/meanfield/utils.py b/horton/meanfield/utils.py index 40ef227b..04893f30 100644 --- a/horton/meanfield/utils.py +++ b/horton/meanfield/utils.py @@ -189,814 +189,3 @@ def fac2(n): result *= n n -= 2 return result - - -# from horton.moments -def get_ncart_cumul(lmax): - """The number of cartesian powers up to a given angular momentum, lmax.""" - return ((lmax + 1) * (lmax + 2) * (lmax + 3)) / 6 - - -# from horton.moments -def get_cartesian_powers(lmax): - """Return an ordered list of power for x, y and z up to angular moment lmax - - **Arguments:** - - lmax - The maximum angular momentum (0=s, 1=p, 2=d, ...) - - **Returns:** an array where each row corresponds to a multipole moment - and each column corresponds to a power of x, y and z respectively. The - rows are grouped per angular momentum, first s, them p, then d, and so - on. Within one angular momentum the rows are sorted 'alphabetically', - e.g. for l=2: xxx, xxy, xxz, xyy, xyz, xzz, yyy, yyz, yzz, zzz. - """ - cartesian_powers = np.zeros((get_ncart_cumul(lmax), 3), dtype=int) - counter = 0 - for l in xrange(0, lmax + 1): - for nx in xrange(l + 1, -1, -1): - for ny in xrange(l - nx, -1, -1): - nz = l - ny - nx - cartesian_powers[counter] = [nx, ny, nz] - counter += 1 - return cartesian_powers - - -# from horton.moments -cartesian_transforms = [ - [ - [[0, 1]], - ], - [ - [[0, 1, 0], - [1, 1, 1], - [2, 1, 2]], - [[0, 1, 3], - [1, 1, 4], - [2, 1, 5]], - [[0, 1, 6], - [1, 1, 7], - [2, 1, 8]], - ], - [ - [[0, 1, 0, 0], - [1, 2, 0, 1], - [2, 2, 0, 2], - [3, 1, 1, 1], - [4, 2, 1, 2], - [5, 1, 2, 2]], - [[0, 1, 0, 3], - [1, 1, 1, 3], - [1, 1, 0, 4], - [2, 1, 2, 3], - [2, 1, 0, 5], - [3, 1, 1, 4], - [4, 1, 2, 4], - [4, 1, 1, 5], - [5, 1, 2, 5]], - [[0, 1, 0, 6], - [1, 1, 1, 6], - [1, 1, 0, 7], - [2, 1, 2, 6], - [2, 1, 0, 8], - [3, 1, 1, 7], - [4, 1, 2, 7], - [4, 1, 1, 8], - [5, 1, 2, 8]], - [[0, 1, 3, 3], - [1, 2, 3, 4], - [2, 2, 3, 5], - [3, 1, 4, 4], - [4, 2, 4, 5], - [5, 1, 5, 5]], - [[0, 1, 3, 6], - [1, 1, 4, 6], - [1, 1, 3, 7], - [2, 1, 5, 6], - [2, 1, 3, 8], - [3, 1, 4, 7], - [4, 1, 5, 7], - [4, 1, 4, 8], - [5, 1, 5, 8]], - [[0, 1, 6, 6], - [1, 2, 6, 7], - [2, 2, 6, 8], - [3, 1, 7, 7], - [4, 2, 7, 8], - [5, 1, 8, 8]], - ], - [ - [[0, 1, 0, 0, 0], - [1, 3, 0, 0, 1], - [2, 3, 0, 0, 2], - [3, 3, 0, 1, 1], - [4, 6, 0, 1, 2], - [5, 3, 0, 2, 2], - [6, 1, 1, 1, 1], - [7, 3, 1, 1, 2], - [8, 3, 1, 2, 2], - [9, 1, 2, 2, 2]], - [[0, 1, 0, 0, 3], - [1, 1, 0, 0, 4], - [1, 2, 0, 1, 3], - [2, 1, 0, 0, 5], - [2, 2, 0, 2, 3], - [3, 1, 1, 1, 3], - [3, 2, 0, 1, 4], - [4, 2, 1, 2, 3], - [4, 2, 0, 2, 4], - [4, 2, 0, 1, 5], - [5, 1, 2, 2, 3], - [5, 2, 0, 2, 5], - [6, 1, 1, 1, 4], - [7, 1, 1, 1, 5], - [7, 2, 1, 2, 4], - [8, 1, 2, 2, 4], - [8, 2, 1, 2, 5], - [9, 1, 2, 2, 5]], - [[0, 1, 0, 0, 6], - [1, 1, 0, 0, 7], - [1, 2, 0, 1, 6], - [2, 1, 0, 0, 8], - [2, 2, 0, 2, 6], - [3, 1, 1, 1, 6], - [3, 2, 0, 1, 7], - [4, 2, 1, 2, 6], - [4, 2, 0, 2, 7], - [4, 2, 0, 1, 8], - [5, 1, 2, 2, 6], - [5, 2, 0, 2, 8], - [6, 1, 1, 1, 7], - [7, 1, 1, 1, 8], - [7, 2, 1, 2, 7], - [8, 1, 2, 2, 7], - [8, 2, 1, 2, 8], - [9, 1, 2, 2, 8]], - [[0, 1, 0, 3, 3], - [1, 1, 1, 3, 3], - [1, 2, 0, 3, 4], - [2, 1, 2, 3, 3], - [2, 2, 0, 3, 5], - [3, 1, 0, 4, 4], - [3, 2, 1, 3, 4], - [4, 2, 2, 3, 4], - [4, 2, 1, 3, 5], - [4, 2, 0, 4, 5], - [5, 1, 0, 5, 5], - [5, 2, 2, 3, 5], - [6, 1, 1, 4, 4], - [7, 1, 2, 4, 4], - [7, 2, 1, 4, 5], - [8, 1, 1, 5, 5], - [8, 2, 2, 4, 5], - [9, 1, 2, 5, 5]], - [[0, 1, 0, 3, 6], - [1, 1, 1, 3, 6], - [1, 1, 0, 4, 6], - [1, 1, 0, 3, 7], - [2, 1, 2, 3, 6], - [2, 1, 0, 5, 6], - [2, 1, 0, 3, 8], - [3, 1, 1, 4, 6], - [3, 1, 1, 3, 7], - [3, 1, 0, 4, 7], - [4, 1, 2, 4, 6], - [4, 1, 2, 3, 7], - [4, 1, 1, 5, 6], - [4, 1, 1, 3, 8], - [4, 1, 0, 5, 7], - [4, 1, 0, 4, 8], - [5, 1, 2, 5, 6], - [5, 1, 2, 3, 8], - [5, 1, 0, 5, 8], - [6, 1, 1, 4, 7], - [7, 1, 2, 4, 7], - [7, 1, 1, 5, 7], - [7, 1, 1, 4, 8], - [8, 1, 2, 5, 7], - [8, 1, 2, 4, 8], - [8, 1, 1, 5, 8], - [9, 1, 2, 5, 8]], - [[0, 1, 0, 6, 6], - [1, 1, 1, 6, 6], - [1, 2, 0, 6, 7], - [2, 1, 2, 6, 6], - [2, 2, 0, 6, 8], - [3, 1, 0, 7, 7], - [3, 2, 1, 6, 7], - [4, 2, 2, 6, 7], - [4, 2, 1, 6, 8], - [4, 2, 0, 7, 8], - [5, 1, 0, 8, 8], - [5, 2, 2, 6, 8], - [6, 1, 1, 7, 7], - [7, 1, 2, 7, 7], - [7, 2, 1, 7, 8], - [8, 1, 1, 8, 8], - [8, 2, 2, 7, 8], - [9, 1, 2, 8, 8]], - [[0, 1, 3, 3, 3], - [1, 3, 3, 3, 4], - [2, 3, 3, 3, 5], - [3, 3, 3, 4, 4], - [4, 6, 3, 4, 5], - [5, 3, 3, 5, 5], - [6, 1, 4, 4, 4], - [7, 3, 4, 4, 5], - [8, 3, 4, 5, 5], - [9, 1, 5, 5, 5]], - [[0, 1, 3, 3, 6], - [1, 1, 3, 3, 7], - [1, 2, 3, 4, 6], - [2, 1, 3, 3, 8], - [2, 2, 3, 5, 6], - [3, 1, 4, 4, 6], - [3, 2, 3, 4, 7], - [4, 2, 4, 5, 6], - [4, 2, 3, 5, 7], - [4, 2, 3, 4, 8], - [5, 1, 5, 5, 6], - [5, 2, 3, 5, 8], - [6, 1, 4, 4, 7], - [7, 1, 4, 4, 8], - [7, 2, 4, 5, 7], - [8, 1, 5, 5, 7], - [8, 2, 4, 5, 8], - [9, 1, 5, 5, 8]], - [[0, 1, 3, 6, 6], - [1, 1, 4, 6, 6], - [1, 2, 3, 6, 7], - [2, 1, 5, 6, 6], - [2, 2, 3, 6, 8], - [3, 1, 3, 7, 7], - [3, 2, 4, 6, 7], - [4, 2, 5, 6, 7], - [4, 2, 4, 6, 8], - [4, 2, 3, 7, 8], - [5, 1, 3, 8, 8], - [5, 2, 5, 6, 8], - [6, 1, 4, 7, 7], - [7, 1, 5, 7, 7], - [7, 2, 4, 7, 8], - [8, 1, 4, 8, 8], - [8, 2, 5, 7, 8], - [9, 1, 5, 8, 8]], - [[0, 1, 6, 6, 6], - [1, 3, 6, 6, 7], - [2, 3, 6, 6, 8], - [3, 3, 6, 7, 7], - [4, 6, 6, 7, 8], - [5, 3, 6, 8, 8], - [6, 1, 7, 7, 7], - [7, 3, 7, 7, 8], - [8, 3, 7, 8, 8], - [9, 1, 8, 8, 8]], - ], - [ - [[0, 1, 0, 0, 0, 0], - [1, 4, 0, 0, 0, 1], - [2, 4, 0, 0, 0, 2], - [3, 6, 0, 0, 1, 1], - [4, 12, 0, 0, 1, 2], - [5, 6, 0, 0, 2, 2], - [6, 4, 0, 1, 1, 1], - [7, 12, 0, 1, 1, 2], - [8, 12, 0, 1, 2, 2], - [9, 4, 0, 2, 2, 2], - [10, 1, 1, 1, 1, 1], - [11, 4, 1, 1, 1, 2], - [12, 6, 1, 1, 2, 2], - [13, 4, 1, 2, 2, 2], - [14, 1, 2, 2, 2, 2]], - [[0, 1, 0, 0, 0, 3], - [1, 1, 0, 0, 0, 4], - [1, 3, 0, 0, 1, 3], - [2, 1, 0, 0, 0, 5], - [2, 3, 0, 0, 2, 3], - [3, 3, 0, 1, 1, 3], - [3, 3, 0, 0, 1, 4], - [4, 3, 0, 0, 2, 4], - [4, 3, 0, 0, 1, 5], - [4, 6, 0, 1, 2, 3], - [5, 3, 0, 2, 2, 3], - [5, 3, 0, 0, 2, 5], - [6, 1, 1, 1, 1, 3], - [6, 3, 0, 1, 1, 4], - [7, 3, 1, 1, 2, 3], - [7, 3, 0, 1, 1, 5], - [7, 6, 0, 1, 2, 4], - [8, 3, 1, 2, 2, 3], - [8, 3, 0, 2, 2, 4], - [8, 6, 0, 1, 2, 5], - [9, 1, 2, 2, 2, 3], - [9, 3, 0, 2, 2, 5], - [10, 1, 1, 1, 1, 4], - [11, 1, 1, 1, 1, 5], - [11, 3, 1, 1, 2, 4], - [12, 3, 1, 2, 2, 4], - [12, 3, 1, 1, 2, 5], - [13, 1, 2, 2, 2, 4], - [13, 3, 1, 2, 2, 5], - [14, 1, 2, 2, 2, 5]], - [[0, 1, 0, 0, 0, 6], - [1, 1, 0, 0, 0, 7], - [1, 3, 0, 0, 1, 6], - [2, 1, 0, 0, 0, 8], - [2, 3, 0, 0, 2, 6], - [3, 3, 0, 1, 1, 6], - [3, 3, 0, 0, 1, 7], - [4, 3, 0, 0, 2, 7], - [4, 3, 0, 0, 1, 8], - [4, 6, 0, 1, 2, 6], - [5, 3, 0, 2, 2, 6], - [5, 3, 0, 0, 2, 8], - [6, 1, 1, 1, 1, 6], - [6, 3, 0, 1, 1, 7], - [7, 3, 1, 1, 2, 6], - [7, 3, 0, 1, 1, 8], - [7, 6, 0, 1, 2, 7], - [8, 3, 1, 2, 2, 6], - [8, 3, 0, 2, 2, 7], - [8, 6, 0, 1, 2, 8], - [9, 1, 2, 2, 2, 6], - [9, 3, 0, 2, 2, 8], - [10, 1, 1, 1, 1, 7], - [11, 1, 1, 1, 1, 8], - [11, 3, 1, 1, 2, 7], - [12, 3, 1, 2, 2, 7], - [12, 3, 1, 1, 2, 8], - [13, 1, 2, 2, 2, 7], - [13, 3, 1, 2, 2, 8], - [14, 1, 2, 2, 2, 8]], - [[0, 1, 0, 0, 3, 3], - [1, 2, 0, 1, 3, 3], - [1, 2, 0, 0, 3, 4], - [2, 2, 0, 2, 3, 3], - [2, 2, 0, 0, 3, 5], - [3, 1, 1, 1, 3, 3], - [3, 1, 0, 0, 4, 4], - [3, 4, 0, 1, 3, 4], - [4, 2, 1, 2, 3, 3], - [4, 2, 0, 0, 4, 5], - [4, 4, 0, 2, 3, 4], - [4, 4, 0, 1, 3, 5], - [5, 1, 2, 2, 3, 3], - [5, 1, 0, 0, 5, 5], - [5, 4, 0, 2, 3, 5], - [6, 2, 1, 1, 3, 4], - [6, 2, 0, 1, 4, 4], - [7, 2, 1, 1, 3, 5], - [7, 2, 0, 2, 4, 4], - [7, 4, 1, 2, 3, 4], - [7, 4, 0, 1, 4, 5], - [8, 2, 2, 2, 3, 4], - [8, 2, 0, 1, 5, 5], - [8, 4, 1, 2, 3, 5], - [8, 4, 0, 2, 4, 5], - [9, 2, 2, 2, 3, 5], - [9, 2, 0, 2, 5, 5], - [10, 1, 1, 1, 4, 4], - [11, 2, 1, 2, 4, 4], - [11, 2, 1, 1, 4, 5], - [12, 1, 2, 2, 4, 4], - [12, 1, 1, 1, 5, 5], - [12, 4, 1, 2, 4, 5], - [13, 2, 2, 2, 4, 5], - [13, 2, 1, 2, 5, 5], - [14, 1, 2, 2, 5, 5]], - [[0, 1, 0, 0, 3, 6], - [1, 1, 0, 0, 4, 6], - [1, 1, 0, 0, 3, 7], - [1, 2, 0, 1, 3, 6], - [2, 1, 0, 0, 5, 6], - [2, 1, 0, 0, 3, 8], - [2, 2, 0, 2, 3, 6], - [3, 1, 1, 1, 3, 6], - [3, 1, 0, 0, 4, 7], - [3, 2, 0, 1, 4, 6], - [3, 2, 0, 1, 3, 7], - [4, 1, 0, 0, 5, 7], - [4, 1, 0, 0, 4, 8], - [4, 2, 1, 2, 3, 6], - [4, 2, 0, 2, 4, 6], - [4, 2, 0, 2, 3, 7], - [4, 2, 0, 1, 5, 6], - [4, 2, 0, 1, 3, 8], - [5, 1, 2, 2, 3, 6], - [5, 1, 0, 0, 5, 8], - [5, 2, 0, 2, 5, 6], - [5, 2, 0, 2, 3, 8], - [6, 1, 1, 1, 4, 6], - [6, 1, 1, 1, 3, 7], - [6, 2, 0, 1, 4, 7], - [7, 1, 1, 1, 5, 6], - [7, 1, 1, 1, 3, 8], - [7, 2, 1, 2, 4, 6], - [7, 2, 1, 2, 3, 7], - [7, 2, 0, 2, 4, 7], - [7, 2, 0, 1, 5, 7], - [7, 2, 0, 1, 4, 8], - [8, 1, 2, 2, 4, 6], - [8, 1, 2, 2, 3, 7], - [8, 2, 1, 2, 5, 6], - [8, 2, 1, 2, 3, 8], - [8, 2, 0, 2, 5, 7], - [8, 2, 0, 2, 4, 8], - [8, 2, 0, 1, 5, 8], - [9, 1, 2, 2, 5, 6], - [9, 1, 2, 2, 3, 8], - [9, 2, 0, 2, 5, 8], - [10, 1, 1, 1, 4, 7], - [11, 1, 1, 1, 5, 7], - [11, 1, 1, 1, 4, 8], - [11, 2, 1, 2, 4, 7], - [12, 1, 2, 2, 4, 7], - [12, 1, 1, 1, 5, 8], - [12, 2, 1, 2, 5, 7], - [12, 2, 1, 2, 4, 8], - [13, 1, 2, 2, 5, 7], - [13, 1, 2, 2, 4, 8], - [13, 2, 1, 2, 5, 8], - [14, 1, 2, 2, 5, 8]], - [[0, 1, 0, 0, 6, 6], - [1, 2, 0, 1, 6, 6], - [1, 2, 0, 0, 6, 7], - [2, 2, 0, 2, 6, 6], - [2, 2, 0, 0, 6, 8], - [3, 1, 1, 1, 6, 6], - [3, 1, 0, 0, 7, 7], - [3, 4, 0, 1, 6, 7], - [4, 2, 1, 2, 6, 6], - [4, 2, 0, 0, 7, 8], - [4, 4, 0, 2, 6, 7], - [4, 4, 0, 1, 6, 8], - [5, 1, 2, 2, 6, 6], - [5, 1, 0, 0, 8, 8], - [5, 4, 0, 2, 6, 8], - [6, 2, 1, 1, 6, 7], - [6, 2, 0, 1, 7, 7], - [7, 2, 1, 1, 6, 8], - [7, 2, 0, 2, 7, 7], - [7, 4, 1, 2, 6, 7], - [7, 4, 0, 1, 7, 8], - [8, 2, 2, 2, 6, 7], - [8, 2, 0, 1, 8, 8], - [8, 4, 1, 2, 6, 8], - [8, 4, 0, 2, 7, 8], - [9, 2, 2, 2, 6, 8], - [9, 2, 0, 2, 8, 8], - [10, 1, 1, 1, 7, 7], - [11, 2, 1, 2, 7, 7], - [11, 2, 1, 1, 7, 8], - [12, 1, 2, 2, 7, 7], - [12, 1, 1, 1, 8, 8], - [12, 4, 1, 2, 7, 8], - [13, 2, 2, 2, 7, 8], - [13, 2, 1, 2, 8, 8], - [14, 1, 2, 2, 8, 8]], - [[0, 1, 0, 3, 3, 3], - [1, 1, 1, 3, 3, 3], - [1, 3, 0, 3, 3, 4], - [2, 1, 2, 3, 3, 3], - [2, 3, 0, 3, 3, 5], - [3, 3, 1, 3, 3, 4], - [3, 3, 0, 3, 4, 4], - [4, 3, 2, 3, 3, 4], - [4, 3, 1, 3, 3, 5], - [4, 6, 0, 3, 4, 5], - [5, 3, 2, 3, 3, 5], - [5, 3, 0, 3, 5, 5], - [6, 1, 0, 4, 4, 4], - [6, 3, 1, 3, 4, 4], - [7, 3, 2, 3, 4, 4], - [7, 3, 0, 4, 4, 5], - [7, 6, 1, 3, 4, 5], - [8, 3, 1, 3, 5, 5], - [8, 3, 0, 4, 5, 5], - [8, 6, 2, 3, 4, 5], - [9, 1, 0, 5, 5, 5], - [9, 3, 2, 3, 5, 5], - [10, 1, 1, 4, 4, 4], - [11, 1, 2, 4, 4, 4], - [11, 3, 1, 4, 4, 5], - [12, 3, 2, 4, 4, 5], - [12, 3, 1, 4, 5, 5], - [13, 1, 1, 5, 5, 5], - [13, 3, 2, 4, 5, 5], - [14, 1, 2, 5, 5, 5]], - [[0, 1, 0, 3, 3, 6], - [1, 1, 1, 3, 3, 6], - [1, 1, 0, 3, 3, 7], - [1, 2, 0, 3, 4, 6], - [2, 1, 2, 3, 3, 6], - [2, 1, 0, 3, 3, 8], - [2, 2, 0, 3, 5, 6], - [3, 1, 1, 3, 3, 7], - [3, 1, 0, 4, 4, 6], - [3, 2, 1, 3, 4, 6], - [3, 2, 0, 3, 4, 7], - [4, 1, 2, 3, 3, 7], - [4, 1, 1, 3, 3, 8], - [4, 2, 2, 3, 4, 6], - [4, 2, 1, 3, 5, 6], - [4, 2, 0, 4, 5, 6], - [4, 2, 0, 3, 5, 7], - [4, 2, 0, 3, 4, 8], - [5, 1, 2, 3, 3, 8], - [5, 1, 0, 5, 5, 6], - [5, 2, 2, 3, 5, 6], - [5, 2, 0, 3, 5, 8], - [6, 1, 1, 4, 4, 6], - [6, 1, 0, 4, 4, 7], - [6, 2, 1, 3, 4, 7], - [7, 1, 2, 4, 4, 6], - [7, 1, 0, 4, 4, 8], - [7, 2, 2, 3, 4, 7], - [7, 2, 1, 4, 5, 6], - [7, 2, 1, 3, 5, 7], - [7, 2, 1, 3, 4, 8], - [7, 2, 0, 4, 5, 7], - [8, 1, 1, 5, 5, 6], - [8, 1, 0, 5, 5, 7], - [8, 2, 2, 4, 5, 6], - [8, 2, 2, 3, 5, 7], - [8, 2, 2, 3, 4, 8], - [8, 2, 1, 3, 5, 8], - [8, 2, 0, 4, 5, 8], - [9, 1, 2, 5, 5, 6], - [9, 1, 0, 5, 5, 8], - [9, 2, 2, 3, 5, 8], - [10, 1, 1, 4, 4, 7], - [11, 1, 2, 4, 4, 7], - [11, 1, 1, 4, 4, 8], - [11, 2, 1, 4, 5, 7], - [12, 1, 2, 4, 4, 8], - [12, 1, 1, 5, 5, 7], - [12, 2, 2, 4, 5, 7], - [12, 2, 1, 4, 5, 8], - [13, 1, 2, 5, 5, 7], - [13, 1, 1, 5, 5, 8], - [13, 2, 2, 4, 5, 8], - [14, 1, 2, 5, 5, 8]], - [[0, 1, 0, 3, 6, 6], - [1, 1, 1, 3, 6, 6], - [1, 1, 0, 4, 6, 6], - [1, 2, 0, 3, 6, 7], - [2, 1, 2, 3, 6, 6], - [2, 1, 0, 5, 6, 6], - [2, 2, 0, 3, 6, 8], - [3, 1, 1, 4, 6, 6], - [3, 1, 0, 3, 7, 7], - [3, 2, 1, 3, 6, 7], - [3, 2, 0, 4, 6, 7], - [4, 1, 2, 4, 6, 6], - [4, 1, 1, 5, 6, 6], - [4, 2, 2, 3, 6, 7], - [4, 2, 1, 3, 6, 8], - [4, 2, 0, 5, 6, 7], - [4, 2, 0, 4, 6, 8], - [4, 2, 0, 3, 7, 8], - [5, 1, 2, 5, 6, 6], - [5, 1, 0, 3, 8, 8], - [5, 2, 2, 3, 6, 8], - [5, 2, 0, 5, 6, 8], - [6, 1, 1, 3, 7, 7], - [6, 1, 0, 4, 7, 7], - [6, 2, 1, 4, 6, 7], - [7, 1, 2, 3, 7, 7], - [7, 1, 0, 5, 7, 7], - [7, 2, 2, 4, 6, 7], - [7, 2, 1, 5, 6, 7], - [7, 2, 1, 4, 6, 8], - [7, 2, 1, 3, 7, 8], - [7, 2, 0, 4, 7, 8], - [8, 1, 1, 3, 8, 8], - [8, 1, 0, 4, 8, 8], - [8, 2, 2, 5, 6, 7], - [8, 2, 2, 4, 6, 8], - [8, 2, 2, 3, 7, 8], - [8, 2, 1, 5, 6, 8], - [8, 2, 0, 5, 7, 8], - [9, 1, 2, 3, 8, 8], - [9, 1, 0, 5, 8, 8], - [9, 2, 2, 5, 6, 8], - [10, 1, 1, 4, 7, 7], - [11, 1, 2, 4, 7, 7], - [11, 1, 1, 5, 7, 7], - [11, 2, 1, 4, 7, 8], - [12, 1, 2, 5, 7, 7], - [12, 1, 1, 4, 8, 8], - [12, 2, 2, 4, 7, 8], - [12, 2, 1, 5, 7, 8], - [13, 1, 2, 4, 8, 8], - [13, 1, 1, 5, 8, 8], - [13, 2, 2, 5, 7, 8], - [14, 1, 2, 5, 8, 8]], - [[0, 1, 0, 6, 6, 6], - [1, 1, 1, 6, 6, 6], - [1, 3, 0, 6, 6, 7], - [2, 1, 2, 6, 6, 6], - [2, 3, 0, 6, 6, 8], - [3, 3, 1, 6, 6, 7], - [3, 3, 0, 6, 7, 7], - [4, 3, 2, 6, 6, 7], - [4, 3, 1, 6, 6, 8], - [4, 6, 0, 6, 7, 8], - [5, 3, 2, 6, 6, 8], - [5, 3, 0, 6, 8, 8], - [6, 1, 0, 7, 7, 7], - [6, 3, 1, 6, 7, 7], - [7, 3, 2, 6, 7, 7], - [7, 3, 0, 7, 7, 8], - [7, 6, 1, 6, 7, 8], - [8, 3, 1, 6, 8, 8], - [8, 3, 0, 7, 8, 8], - [8, 6, 2, 6, 7, 8], - [9, 1, 0, 8, 8, 8], - [9, 3, 2, 6, 8, 8], - [10, 1, 1, 7, 7, 7], - [11, 1, 2, 7, 7, 7], - [11, 3, 1, 7, 7, 8], - [12, 3, 2, 7, 7, 8], - [12, 3, 1, 7, 8, 8], - [13, 1, 1, 8, 8, 8], - [13, 3, 2, 7, 8, 8], - [14, 1, 2, 8, 8, 8]], - [[0, 1, 3, 3, 3, 3], - [1, 4, 3, 3, 3, 4], - [2, 4, 3, 3, 3, 5], - [3, 6, 3, 3, 4, 4], - [4, 12, 3, 3, 4, 5], - [5, 6, 3, 3, 5, 5], - [6, 4, 3, 4, 4, 4], - [7, 12, 3, 4, 4, 5], - [8, 12, 3, 4, 5, 5], - [9, 4, 3, 5, 5, 5], - [10, 1, 4, 4, 4, 4], - [11, 4, 4, 4, 4, 5], - [12, 6, 4, 4, 5, 5], - [13, 4, 4, 5, 5, 5], - [14, 1, 5, 5, 5, 5]], - [[0, 1, 3, 3, 3, 6], - [1, 1, 3, 3, 3, 7], - [1, 3, 3, 3, 4, 6], - [2, 1, 3, 3, 3, 8], - [2, 3, 3, 3, 5, 6], - [3, 3, 3, 4, 4, 6], - [3, 3, 3, 3, 4, 7], - [4, 3, 3, 3, 5, 7], - [4, 3, 3, 3, 4, 8], - [4, 6, 3, 4, 5, 6], - [5, 3, 3, 5, 5, 6], - [5, 3, 3, 3, 5, 8], - [6, 1, 4, 4, 4, 6], - [6, 3, 3, 4, 4, 7], - [7, 3, 4, 4, 5, 6], - [7, 3, 3, 4, 4, 8], - [7, 6, 3, 4, 5, 7], - [8, 3, 4, 5, 5, 6], - [8, 3, 3, 5, 5, 7], - [8, 6, 3, 4, 5, 8], - [9, 1, 5, 5, 5, 6], - [9, 3, 3, 5, 5, 8], - [10, 1, 4, 4, 4, 7], - [11, 1, 4, 4, 4, 8], - [11, 3, 4, 4, 5, 7], - [12, 3, 4, 5, 5, 7], - [12, 3, 4, 4, 5, 8], - [13, 1, 5, 5, 5, 7], - [13, 3, 4, 5, 5, 8], - [14, 1, 5, 5, 5, 8]], - [[0, 1, 3, 3, 6, 6], - [1, 2, 3, 4, 6, 6], - [1, 2, 3, 3, 6, 7], - [2, 2, 3, 5, 6, 6], - [2, 2, 3, 3, 6, 8], - [3, 1, 4, 4, 6, 6], - [3, 1, 3, 3, 7, 7], - [3, 4, 3, 4, 6, 7], - [4, 2, 4, 5, 6, 6], - [4, 2, 3, 3, 7, 8], - [4, 4, 3, 5, 6, 7], - [4, 4, 3, 4, 6, 8], - [5, 1, 5, 5, 6, 6], - [5, 1, 3, 3, 8, 8], - [5, 4, 3, 5, 6, 8], - [6, 2, 4, 4, 6, 7], - [6, 2, 3, 4, 7, 7], - [7, 2, 4, 4, 6, 8], - [7, 2, 3, 5, 7, 7], - [7, 4, 4, 5, 6, 7], - [7, 4, 3, 4, 7, 8], - [8, 2, 5, 5, 6, 7], - [8, 2, 3, 4, 8, 8], - [8, 4, 4, 5, 6, 8], - [8, 4, 3, 5, 7, 8], - [9, 2, 5, 5, 6, 8], - [9, 2, 3, 5, 8, 8], - [10, 1, 4, 4, 7, 7], - [11, 2, 4, 5, 7, 7], - [11, 2, 4, 4, 7, 8], - [12, 1, 5, 5, 7, 7], - [12, 1, 4, 4, 8, 8], - [12, 4, 4, 5, 7, 8], - [13, 2, 5, 5, 7, 8], - [13, 2, 4, 5, 8, 8], - [14, 1, 5, 5, 8, 8]], - [[0, 1, 3, 6, 6, 6], - [1, 1, 4, 6, 6, 6], - [1, 3, 3, 6, 6, 7], - [2, 1, 5, 6, 6, 6], - [2, 3, 3, 6, 6, 8], - [3, 3, 4, 6, 6, 7], - [3, 3, 3, 6, 7, 7], - [4, 3, 5, 6, 6, 7], - [4, 3, 4, 6, 6, 8], - [4, 6, 3, 6, 7, 8], - [5, 3, 5, 6, 6, 8], - [5, 3, 3, 6, 8, 8], - [6, 1, 3, 7, 7, 7], - [6, 3, 4, 6, 7, 7], - [7, 3, 5, 6, 7, 7], - [7, 3, 3, 7, 7, 8], - [7, 6, 4, 6, 7, 8], - [8, 3, 4, 6, 8, 8], - [8, 3, 3, 7, 8, 8], - [8, 6, 5, 6, 7, 8], - [9, 1, 3, 8, 8, 8], - [9, 3, 5, 6, 8, 8], - [10, 1, 4, 7, 7, 7], - [11, 1, 5, 7, 7, 7], - [11, 3, 4, 7, 7, 8], - [12, 3, 5, 7, 7, 8], - [12, 3, 4, 7, 8, 8], - [13, 1, 4, 8, 8, 8], - [13, 3, 5, 7, 8, 8], - [14, 1, 5, 8, 8, 8]], - [[0, 1, 6, 6, 6, 6], - [1, 4, 6, 6, 6, 7], - [2, 4, 6, 6, 6, 8], - [3, 6, 6, 6, 7, 7], - [4, 12, 6, 6, 7, 8], - [5, 6, 6, 6, 8, 8], - [6, 4, 6, 7, 7, 7], - [7, 12, 6, 7, 7, 8], - [8, 12, 6, 7, 8, 8], - [9, 4, 6, 8, 8, 8], - [10, 1, 7, 7, 7, 7], - [11, 4, 7, 7, 7, 8], - [12, 6, 7, 7, 8, 8], - [13, 4, 7, 8, 8, 8], - [14, 1, 8, 8, 8, 8]], - ], -] - - -# from horton.moments -def rotate_cartesian_multipole(rmat, moments, mode): - """Compute rotated Cartesian multipole moment/expansion. - - **Arguments:** - - rmat - A (3,3) rotation matrix. - - moments - A multipole moment/coeffs. The angular momentum is derived from the - length of this vector. - - mode - A string containing either 'moments' or 'coeffs'. In case if - 'moments', a Cartesian multipole moment rotation is carried out. In - case of 'coeffs', the coefficients of a Cartesian multipole basis - are rotated. - - **Returns:** rotated multipole. - """ - l = ((9 + 8 * (len(moments) - 1)) ** 0.5 - 3) / 2 - if l - np.round(l) > 1e-10: - raise ValueError('Could not determine l from number of moments.') - l = int(np.round(l)) - - if mode == 'coeffs': - rcoeffs = rmat.T.ravel() - elif mode == 'moments': - rcoeffs = rmat.ravel() - else: - raise NotImplementedError - result = np.zeros(len(moments)) - for i0 in xrange(len(moments)): - rules = cartesian_transforms[l][i0] - for rule in rules: - i1 = rule[0] - factor = rule[1] - for j in rule[2:]: - factor *= rcoeffs[j] - if mode == 'coeffs': - result[i1] += moments[i0] * factor - elif mode == 'moments': - result[i0] += moments[i1] * factor - else: - raise NotImplementedError - return result From f4c460ff4f0b6027fa5b21edee4fb7fe8bb8de2c Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Thu, 17 Aug 2017 12:21:27 +0200 Subject: [PATCH 18/19] added strip_io, removed test_bond_order --- horton/gbasis/test/strip_io.py | 133 +++++++++++++++++++ horton/meanfield/test/test_bond_order.py | 60 --------- horton/meanfield/test/test_indextransform.py | 4 +- 3 files changed, 135 insertions(+), 62 deletions(-) create mode 100755 horton/gbasis/test/strip_io.py delete mode 100644 horton/meanfield/test/test_bond_order.py diff --git a/horton/gbasis/test/strip_io.py b/horton/gbasis/test/strip_io.py new file mode 100755 index 00000000..6ed9ebc4 --- /dev/null +++ b/horton/gbasis/test/strip_io.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python +import json + +from os import mkdir + +from horton import * +import numpy as np +from glob import glob + +log.set_level(log.silent) +np.set_printoptions(precision=16) + + +def grep_file(): + """Searches a test file for IOData and saves the data""" + filenames = [] + skipped = [] + for filename in glob("test_*.py"): + print("Processing: ", filename) + with open(filename) as fh: + for i in fh: + # if ".json" in i: + # skipped.append((filename, i)) + # continue + if "test/" in i: + fn, san_fn = santize_fn(i) + filenames.append((fn, "cached/" + san_fn)) + + filenames = set(filenames) + filenames2 = set() + skipped = set(skipped) + + for fn, san_fn in filenames: + try: + mkdir(san_fn) + except OSError: + pass + + if "json" in san_fn: + save_json(context.get_fn(fn), san_fn) + continue + + if "fchk" in san_fn: + flog = fn[:-4] + "log" + try: + mol = IOData.from_file(context.get_fn(fn), context.get_fn(flog)) + save_ints(mol, san_fn) + except IOError: + pass + + filenames2.add((fn, san_fn)) + + for i in (save_gobasis_params, save_dms, save_exps, save_moldata, save_quads, save_dipoles): + for fn, san_fn in filenames2: + mol = IOData.from_file(context.get_fn(fn)) + try: + i(mol, san_fn) + except AttributeError: + pass + print "-" * 80 + + print("Processed:") + for f in filenames: + print(f) + print("Skipped:") + for s in skipped: + print(s) + + +def santize_fn(line): + if "\'" in line: + fn = line.split("'")[1] + else: + fn = line.split('"')[1] + san_fn = fn.replace(".", "_").replace("-", "_").split("/")[1] + return fn, san_fn + + +def save_ints(mol, san_fn): + for i in ("olp", "kin", "na", "er", "two_mo"): + try: + np.save("{}/{}".format(san_fn, i), getattr(mol, i).astype(np.float32)) + except AttributeError: + pass + + +def save_gobasis_params(mol, san_fn): + obasis = mol.obasis + print san_fn + " = ", + print(obasis.centers, obasis.shell_map, obasis.nprims, obasis.shell_types, obasis.alphas, obasis.con_coeffs) + + +def save_dms(mol, san_fn): + dm = mol.get_dm_full().astype(np.float32) + np.save(san_fn + "/dm", dm) + + +def save_exps(mol, san_fn): + orba = mol.orb_alpha + np.save(san_fn + "/orbs_a_coeffs", orba.coeffs) + np.save(san_fn + "/orbs_a_occs", orba.occupations) + np.save(san_fn + "/orbs_a_dms", orba.to_dm()) + orbb = mol.orb_beta + np.save(san_fn + "/orbs_b_coeffs", orbb.coeffs) + np.save(san_fn + "/orbs_b_occs", orbb.occupations) + np.save(san_fn + "/orbs_b_dms", orbb.to_dm()) + + +def save_moldata(mol, san_fn): + d = {"coordinates": mol.coordinates, + "numbers": mol.numbers, + "pseudo_numbers": mol.pseudo_numbers} + print san_fn + "=", + print(d) + + +def save_quads(mol, san_fn): + quad = mol.quadrupole_moment.astype(np.float32) + np.save(san_fn + "/quads", quad) + + +def save_dipoles(mol, san_fn): + dipole = mol.dipole_moment.astype(np.float32) + np.save(san_fn + "/dipoles", dipole) + + +def save_json(json_fn, san_fn): + with open(json_fn) as fh: + arr = np.array(json.load(fh)) + np.save(san_fn + "/er", arr) + + +grep_file() diff --git a/horton/meanfield/test/test_bond_order.py b/horton/meanfield/test/test_bond_order.py deleted file mode 100644 index f55c6d78..00000000 --- a/horton/meanfield/test/test_bond_order.py +++ /dev/null @@ -1,60 +0,0 @@ -# -*- coding: utf-8 -*- -# HORTON: Helpful Open-source Research TOol for N-fermion systems. -# Copyright (C) 2011-2017 The HORTON Development Team -# -# This file is part of HORTON. -# -# HORTON is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 3 -# of the License, or (at your option) any later version. -# -# HORTON is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see -# -# -- - - -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import - - -def check_bond_orders(fn): - mol = IOData.from_file(fn) - operators = get_mulliken_operators(mol.obasis) - dm_full = mol.get_dm_full() - if dm_full is not None: - dm_spin = mol.get_dm_spin() - if dm_spin is not None: - dm_alpha = 0.5 * (dm_full + dm_spin) - dm_beta = 0.5 * (dm_full - dm_spin) - bond_orders, valences, free_valences = compute_bond_orders_os(dm_alpha, dm_beta, - operators) - else: - dm_alpha = 0.5 * dm_full - bond_orders, valences, free_valences = compute_bond_orders_cs(dm_alpha, operators) - else: - raise NotImplementedError - assert abs(bond_orders.sum() - 2 * mol.numbers.sum()) < 1e-3 - assert bond_orders.shape == (mol.natom, mol.natom) - assert valences.shape == (mol.natom,) - assert free_valences.shape == (mol.natom,) - assert (bond_orders == bond_orders.T).all() - assert (valences > 0).all() - return bond_orders, valences, free_valences - - -def test_bond_order_water_sto3g(): - fn_fchk = context.get_fn('test/water_sto3g_hf_g03.fchk') - bond_orders, valences, free_valences = check_bond_orders(fn_fchk) - assert abs(free_valences).max() < 1e-5 - - -def test_bond_order_h3_321g(): - fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') - bond_orders, valences, free_valences = check_bond_orders(fn_fchk) - assert (free_valences != 0).any() diff --git a/horton/meanfield/test/test_indextransform.py b/horton/meanfield/test/test_indextransform.py index fa4506ea..69409fdb 100644 --- a/horton/meanfield/test/test_indextransform.py +++ b/horton/meanfield/test/test_indextransform.py @@ -156,7 +156,7 @@ def test_core_active_water(): def test_core_active_2h_azirine(): - mol = IOData.from_file(context.get_fn('test/2h-azirine.xyz')) + mol = IOData.from_file(context.get_fn('test/h2-azirine.xyz')) check_core_active_blank(mol, '3-21g') check_core_active(mol, '3-21g', 3, 15) @@ -261,6 +261,6 @@ def test_core_active_water_cholesky(): def test_core_active_2h_azirine_cholesky(): - mol = IOData.from_file(context.get_fn('test/2h-azirine.xyz')) + mol = IOData.from_file(context.get_fn('test/h2-azirine.xyz')) check_core_active_cholesky_blank(mol, '3-21g') check_core_active_cholesky(mol, '3-21g', 3, 15) From d95ca28570bb3b2cb54eba1a07542d3731218729 Mon Sep 17 00:00:00 2001 From: Matthew Chan Date: Fri, 25 Aug 2017 21:39:42 +0200 Subject: [PATCH 19/19] isolated unit tests. Project.py not removed yet --- horton/meanfield/rotate.py | 20 +- .../atom_001_001_hf_sto3g_fchk/chol.npy | Bin 0 -> 84 bytes .../atom_001_001_hf_sto3g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../cached/atom_001_001_hf_sto3g_fchk/dm.npy | Bin 0 -> 84 bytes .../cached/atom_001_001_hf_sto3g_fchk/er.npy | Bin 0 -> 84 bytes .../cached/atom_001_001_hf_sto3g_fchk/kin.npy | Bin 0 -> 84 bytes .../cached/atom_001_001_hf_sto3g_fchk/na.npy | Bin 0 -> 84 bytes .../cached/atom_001_001_hf_sto3g_fchk/olp.npy | Bin 0 -> 84 bytes .../orbs_a_coeffs.npy | Bin 0 -> 88 bytes .../atom_001_001_hf_sto3g_fchk/orbs_a_dms.npy | Bin 0 -> 88 bytes .../orbs_a_energies.npy | Bin 0 -> 88 bytes .../orbs_a_occs.npy | Bin 0 -> 88 bytes .../orbs_b_coeffs.npy | Bin 0 -> 88 bytes .../atom_001_001_hf_sto3g_fchk/orbs_b_dms.npy | Bin 0 -> 88 bytes .../orbs_b_energies.npy | Bin 0 -> 88 bytes .../orbs_b_occs.npy | Bin 0 -> 88 bytes .../atom_001_001_hf_sto3g_fchk/quads.npy | Bin 0 -> 104 bytes .../test/cached/ch3_hf_sto3g_fchk/chol.npy | Bin 0 -> 18512 bytes .../test/cached/ch3_hf_sto3g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/ch3_hf_sto3g_fchk/dm.npy | Bin 0 -> 336 bytes .../test/cached/ch3_hf_sto3g_fchk/er.npy | Bin 0 -> 32848 bytes .../test/cached/ch3_hf_sto3g_fchk/kin.npy | Bin 0 -> 592 bytes .../test/cached/ch3_hf_sto3g_fchk/na.npy | Bin 0 -> 592 bytes .../test/cached/ch3_hf_sto3g_fchk/olp.npy | Bin 0 -> 592 bytes .../ch3_hf_sto3g_fchk/orbs_a_coeffs.npy | Bin 0 -> 592 bytes .../cached/ch3_hf_sto3g_fchk/orbs_a_dms.npy | Bin 0 -> 592 bytes .../ch3_hf_sto3g_fchk/orbs_a_energies.npy | Bin 0 -> 144 bytes .../cached/ch3_hf_sto3g_fchk/orbs_a_occs.npy | Bin 0 -> 144 bytes .../ch3_hf_sto3g_fchk/orbs_b_coeffs.npy | Bin 0 -> 592 bytes .../cached/ch3_hf_sto3g_fchk/orbs_b_dms.npy | Bin 0 -> 592 bytes .../ch3_hf_sto3g_fchk/orbs_b_energies.npy | Bin 0 -> 144 bytes .../cached/ch3_hf_sto3g_fchk/orbs_b_occs.npy | Bin 0 -> 144 bytes .../test/cached/ch3_hf_sto3g_fchk/quads.npy | Bin 0 -> 104 bytes .../test/cached/co_pbe_sto3g_fchk/chol.npy | Bin 0 -> 42480 bytes .../test/cached/co_pbe_sto3g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/co_pbe_sto3g_fchk/dm.npy | Bin 0 -> 480 bytes .../test/cached/co_pbe_sto3g_fchk/er.npy | Bin 0 -> 80096 bytes .../test/cached/co_pbe_sto3g_fchk/kin.npy | Bin 0 -> 880 bytes .../test/cached/co_pbe_sto3g_fchk/na.npy | Bin 0 -> 880 bytes .../test/cached/co_pbe_sto3g_fchk/olp.npy | Bin 0 -> 880 bytes .../co_pbe_sto3g_fchk/orbs_a_coeffs.npy | Bin 0 -> 880 bytes .../cached/co_pbe_sto3g_fchk/orbs_a_dms.npy | Bin 0 -> 880 bytes .../co_pbe_sto3g_fchk/orbs_a_energies.npy | Bin 0 -> 160 bytes .../cached/co_pbe_sto3g_fchk/orbs_a_occs.npy | Bin 0 -> 160 bytes .../test/cached/co_pbe_sto3g_fchk/quads.npy | Bin 0 -> 104 bytes .../test/cached/h3_hfs_321g_fchk/chol.npy | Bin 0 -> 5840 bytes .../test/cached/h3_hfs_321g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/h3_hfs_321g_fchk/dm.npy | Bin 0 -> 224 bytes .../test/cached/h3_hfs_321g_fchk/er.npy | Bin 0 -> 10448 bytes .../test/cached/h3_hfs_321g_fchk/kin.npy | Bin 0 -> 368 bytes .../test/cached/h3_hfs_321g_fchk/na.npy | Bin 0 -> 368 bytes .../test/cached/h3_hfs_321g_fchk/olp.npy | Bin 0 -> 368 bytes .../cached/h3_hfs_321g_fchk/orbs_a_coeffs.npy | Bin 0 -> 368 bytes .../cached/h3_hfs_321g_fchk/orbs_a_dms.npy | Bin 0 -> 368 bytes .../h3_hfs_321g_fchk/orbs_a_energies.npy | Bin 0 -> 128 bytes .../cached/h3_hfs_321g_fchk/orbs_a_occs.npy | Bin 0 -> 128 bytes .../cached/h3_hfs_321g_fchk/orbs_b_coeffs.npy | Bin 0 -> 368 bytes .../cached/h3_hfs_321g_fchk/orbs_b_dms.npy | Bin 0 -> 368 bytes .../h3_hfs_321g_fchk/orbs_b_energies.npy | Bin 0 -> 128 bytes .../cached/h3_hfs_321g_fchk/orbs_b_occs.npy | Bin 0 -> 128 bytes .../test/cached/h3_hfs_321g_fchk/quads.npy | Bin 0 -> 104 bytes .../test/cached/h3_pbe_321g_fchk/chol.npy | Bin 0 -> 5840 bytes .../test/cached/h3_pbe_321g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/h3_pbe_321g_fchk/dm.npy | Bin 0 -> 224 bytes .../test/cached/h3_pbe_321g_fchk/er.npy | Bin 0 -> 10448 bytes .../test/cached/h3_pbe_321g_fchk/kin.npy | Bin 0 -> 368 bytes .../test/cached/h3_pbe_321g_fchk/na.npy | Bin 0 -> 368 bytes .../test/cached/h3_pbe_321g_fchk/olp.npy | Bin 0 -> 368 bytes .../cached/h3_pbe_321g_fchk/orbs_a_coeffs.npy | Bin 0 -> 368 bytes .../cached/h3_pbe_321g_fchk/orbs_a_dms.npy | Bin 0 -> 368 bytes .../h3_pbe_321g_fchk/orbs_a_energies.npy | Bin 0 -> 128 bytes .../cached/h3_pbe_321g_fchk/orbs_a_occs.npy | Bin 0 -> 128 bytes .../cached/h3_pbe_321g_fchk/orbs_b_coeffs.npy | Bin 0 -> 368 bytes .../cached/h3_pbe_321g_fchk/orbs_b_dms.npy | Bin 0 -> 368 bytes .../h3_pbe_321g_fchk/orbs_b_energies.npy | Bin 0 -> 128 bytes .../cached/h3_pbe_321g_fchk/orbs_b_occs.npy | Bin 0 -> 128 bytes .../test/cached/h3_pbe_321g_fchk/quads.npy | Bin 0 -> 104 bytes .../test/cached/h_sto3g_fchk/chol.npy | Bin 0 -> 88 bytes .../test/cached/h_sto3g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../meanfield/test/cached/h_sto3g_fchk/dm.npy | Bin 0 -> 84 bytes .../meanfield/test/cached/h_sto3g_fchk/er.npy | Bin 0 -> 88 bytes .../test/cached/h_sto3g_fchk/kin.npy | Bin 0 -> 88 bytes .../meanfield/test/cached/h_sto3g_fchk/na.npy | Bin 0 -> 88 bytes .../test/cached/h_sto3g_fchk/olp.npy | Bin 0 -> 88 bytes .../cached/h_sto3g_fchk/orbs_a_coeffs.npy | Bin 0 -> 88 bytes .../test/cached/h_sto3g_fchk/orbs_a_dms.npy | Bin 0 -> 88 bytes .../cached/h_sto3g_fchk/orbs_a_energies.npy | Bin 0 -> 88 bytes .../test/cached/h_sto3g_fchk/orbs_a_occs.npy | Bin 0 -> 88 bytes .../cached/h_sto3g_fchk/orbs_b_coeffs.npy | Bin 0 -> 88 bytes .../test/cached/h_sto3g_fchk/orbs_b_dms.npy | Bin 0 -> 88 bytes .../cached/h_sto3g_fchk/orbs_b_energies.npy | Bin 0 -> 88 bytes .../test/cached/h_sto3g_fchk/orbs_b_occs.npy | Bin 0 -> 88 bytes .../test/cached/he_sp_orbital_fchk/chol.npy | Bin 0 -> 16464 bytes .../cached/he_sp_orbital_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/he_sp_orbital_fchk/dm.npy | Bin 0 -> 336 bytes .../test/cached/he_sp_orbital_fchk/er.npy | Bin 0 -> 32848 bytes .../test/cached/he_sp_orbital_fchk/kin.npy | Bin 0 -> 592 bytes .../test/cached/he_sp_orbital_fchk/na.npy | Bin 0 -> 592 bytes .../test/cached/he_sp_orbital_fchk/olp.npy | Bin 0 -> 592 bytes .../he_sp_orbital_fchk/orbs_a_coeffs.npy | Bin 0 -> 592 bytes .../cached/he_sp_orbital_fchk/orbs_a_dms.npy | Bin 0 -> 592 bytes .../he_sp_orbital_fchk/orbs_a_energies.npy | Bin 0 -> 144 bytes .../cached/he_sp_orbital_fchk/orbs_a_occs.npy | Bin 0 -> 144 bytes .../test/cached/he_sp_orbital_fchk/quads.npy | Bin 0 -> 104 bytes .../test/cached/he_spdf_orbital_fchk/chol.npy | Bin 0 -> 368080 bytes .../cached/he_spdf_orbital_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/he_spdf_orbital_fchk/dm.npy | Bin 0 -> 1680 bytes .../test/cached/he_spdf_orbital_fchk/er.npy | Bin 0 -> 1280096 bytes .../test/cached/he_spdf_orbital_fchk/kin.npy | Bin 0 -> 3280 bytes .../test/cached/he_spdf_orbital_fchk/na.npy | Bin 0 -> 3280 bytes .../test/cached/he_spdf_orbital_fchk/olp.npy | Bin 0 -> 3280 bytes .../he_spdf_orbital_fchk/orbs_a_coeffs.npy | Bin 0 -> 3280 bytes .../he_spdf_orbital_fchk/orbs_a_dms.npy | Bin 0 -> 3280 bytes .../he_spdf_orbital_fchk/orbs_a_energies.npy | Bin 0 -> 240 bytes .../he_spdf_orbital_fchk/orbs_a_occs.npy | Bin 0 -> 240 bytes .../cached/he_spdf_orbital_fchk/quads.npy | Bin 0 -> 104 bytes .../test/cached/helium_hf_sto3g_fchk/chol.npy | Bin 0 -> 88 bytes .../cached/helium_hf_sto3g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/helium_hf_sto3g_fchk/dm.npy | Bin 0 -> 84 bytes .../test/cached/helium_hf_sto3g_fchk/er.npy | Bin 0 -> 88 bytes .../test/cached/helium_hf_sto3g_fchk/kin.npy | Bin 0 -> 88 bytes .../test/cached/helium_hf_sto3g_fchk/na.npy | Bin 0 -> 88 bytes .../test/cached/helium_hf_sto3g_fchk/olp.npy | Bin 0 -> 88 bytes .../helium_hf_sto3g_fchk/orbs_a_coeffs.npy | Bin 0 -> 88 bytes .../helium_hf_sto3g_fchk/orbs_a_dms.npy | Bin 0 -> 88 bytes .../helium_hf_sto3g_fchk/orbs_a_energies.npy | Bin 0 -> 88 bytes .../helium_hf_sto3g_fchk/orbs_a_occs.npy | Bin 0 -> 88 bytes .../test/cached/hf_sto3g_fchk/chol.npy | Bin 0 -> 6128 bytes .../test/cached/hf_sto3g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/hf_sto3g_fchk/dm.npy | Bin 0 -> 224 bytes .../test/cached/hf_sto3g_fchk/er.npy | Bin 0 -> 10448 bytes .../test/cached/hf_sto3g_fchk/kin.npy | Bin 0 -> 368 bytes .../test/cached/hf_sto3g_fchk/na.npy | Bin 0 -> 368 bytes .../test/cached/hf_sto3g_fchk/olp.npy | Bin 0 -> 368 bytes .../cached/hf_sto3g_fchk/orbs_a_coeffs.npy | Bin 0 -> 368 bytes .../test/cached/hf_sto3g_fchk/orbs_a_dms.npy | Bin 0 -> 368 bytes .../cached/hf_sto3g_fchk/orbs_a_energies.npy | Bin 0 -> 128 bytes .../test/cached/hf_sto3g_fchk/orbs_a_occs.npy | Bin 0 -> 128 bytes .../cached/li_h_3_21G_hf_g09_fchk/chol.npy | Bin 0 -> 60096 bytes .../cached/li_h_3_21G_hf_g09_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/li_h_3_21G_hf_g09_fchk/dm.npy | Bin 0 -> 564 bytes .../test/cached/li_h_3_21G_hf_g09_fchk/er.npy | Bin 0 -> 117224 bytes .../cached/li_h_3_21G_hf_g09_fchk/kin.npy | Bin 0 -> 1048 bytes .../test/cached/li_h_3_21G_hf_g09_fchk/na.npy | Bin 0 -> 1048 bytes .../cached/li_h_3_21G_hf_g09_fchk/olp.npy | Bin 0 -> 1048 bytes .../li_h_3_21G_hf_g09_fchk/orbs_a_coeffs.npy | Bin 0 -> 1048 bytes .../li_h_3_21G_hf_g09_fchk/orbs_a_dms.npy | Bin 0 -> 1048 bytes .../orbs_a_energies.npy | Bin 0 -> 168 bytes .../li_h_3_21G_hf_g09_fchk/orbs_a_occs.npy | Bin 0 -> 168 bytes .../li_h_3_21G_hf_g09_fchk/orbs_b_coeffs.npy | Bin 0 -> 1048 bytes .../li_h_3_21G_hf_g09_fchk/orbs_b_dms.npy | Bin 0 -> 1048 bytes .../orbs_b_energies.npy | Bin 0 -> 168 bytes .../li_h_3_21G_hf_g09_fchk/orbs_b_occs.npy | Bin 0 -> 168 bytes .../cached/li_h_3_21G_hf_g09_fchk/quads.npy | Bin 0 -> 104 bytes .../cached/methyl_tpss_321g_fchk/chol.npy | Bin 0 -> 102680 bytes .../cached/methyl_tpss_321g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/methyl_tpss_321g_fchk/dm.npy | Bin 0 -> 980 bytes .../test/cached/methyl_tpss_321g_fchk/er.npy | Bin 0 -> 202596 bytes .../test/cached/methyl_tpss_321g_fchk/kin.npy | Bin 0 -> 980 bytes .../test/cached/methyl_tpss_321g_fchk/na.npy | Bin 0 -> 980 bytes .../test/cached/methyl_tpss_321g_fchk/olp.npy | Bin 0 -> 980 bytes .../methyl_tpss_321g_fchk/orbs_a_coeffs.npy | Bin 0 -> 1880 bytes .../methyl_tpss_321g_fchk/orbs_a_dms.npy | Bin 0 -> 1880 bytes .../methyl_tpss_321g_fchk/orbs_a_energies.npy | Bin 0 -> 200 bytes .../methyl_tpss_321g_fchk/orbs_a_occs.npy | Bin 0 -> 200 bytes .../methyl_tpss_321g_fchk/orbs_b_coeffs.npy | Bin 0 -> 1880 bytes .../methyl_tpss_321g_fchk/orbs_b_dms.npy | Bin 0 -> 1880 bytes .../methyl_tpss_321g_fchk/orbs_b_energies.npy | Bin 0 -> 200 bytes .../methyl_tpss_321g_fchk/orbs_b_occs.npy | Bin 0 -> 200 bytes .../cached/methyl_tpss_321g_fchk/quads.npy | Bin 0 -> 104 bytes .../test/cached/n2_hfs_sto3g_fchk/chol.npy | Bin 0 -> 42480 bytes .../test/cached/n2_hfs_sto3g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/n2_hfs_sto3g_fchk/dm.npy | Bin 0 -> 480 bytes .../test/cached/n2_hfs_sto3g_fchk/er.npy | Bin 0 -> 80096 bytes .../test/cached/n2_hfs_sto3g_fchk/kin.npy | Bin 0 -> 880 bytes .../test/cached/n2_hfs_sto3g_fchk/na.npy | Bin 0 -> 880 bytes .../test/cached/n2_hfs_sto3g_fchk/olp.npy | Bin 0 -> 880 bytes .../n2_hfs_sto3g_fchk/orbs_a_coeffs.npy | Bin 0 -> 880 bytes .../cached/n2_hfs_sto3g_fchk/orbs_a_dms.npy | Bin 0 -> 880 bytes .../n2_hfs_sto3g_fchk/orbs_a_energies.npy | Bin 0 -> 160 bytes .../cached/n2_hfs_sto3g_fchk/orbs_a_occs.npy | Bin 0 -> 160 bytes .../test/cached/n2_hfs_sto3g_fchk/quads.npy | Bin 0 -> 104 bytes .../test/cached/neon_6_31gd_xyz/chol.npy | Bin 0 -> 300752 bytes .../test/cached/neon_6_31gd_xyz/er.npy | Bin 0 -> 839904 bytes .../test/cached/neon_6_31gd_xyz/kin.npy | Bin 0 -> 2672 bytes .../test/cached/neon_6_31gd_xyz/na.npy | Bin 0 -> 2672 bytes .../test/cached/neon_6_31gd_xyz/olp.npy | Bin 0 -> 2672 bytes .../test/cached/rotation_orthonormal/olp.npy | Bin 0 -> 9880 bytes .../test/cached/water_3_21G_xyz/er.npy | Bin 0 -> 228584 bytes .../test/cached/water_3_21G_xyz/kin.npy | Bin 0 -> 1432 bytes .../test/cached/water_3_21G_xyz/na.npy | Bin 0 -> 1432 bytes .../test/cached/water_3_21G_xyz/olp.npy | Bin 0 -> 1432 bytes .../test/cached/water_6_31gd_xyz/chol.npy | Bin 0 -> 739632 bytes .../test/cached/water_6_31gd_xyz/er.npy | Bin 0 -> 1874144 bytes .../test/cached/water_6_31gd_xyz/kin.npy | Bin 0 -> 3952 bytes .../test/cached/water_6_31gd_xyz/na.npy | Bin 0 -> 3952 bytes .../test/cached/water_6_31gd_xyz/olp.npy | Bin 0 -> 3952 bytes .../cached/water_dimer_ghost_fchk/chol.npy | Bin 0 -> 120816 bytes .../cached/water_dimer_ghost_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/water_dimer_ghost_fchk/dm.npy | Bin 0 -> 864 bytes .../test/cached/water_dimer_ghost_fchk/er.npy | Bin 0 -> 307424 bytes .../cached/water_dimer_ghost_fchk/kin.npy | Bin 0 -> 1648 bytes .../test/cached/water_dimer_ghost_fchk/na.npy | Bin 0 -> 1648 bytes .../cached/water_dimer_ghost_fchk/olp.npy | Bin 0 -> 1648 bytes .../water_dimer_ghost_fchk/orbs_a_coeffs.npy | Bin 0 -> 1648 bytes .../water_dimer_ghost_fchk/orbs_a_dms.npy | Bin 0 -> 1648 bytes .../orbs_a_energies.npy | Bin 0 -> 192 bytes .../water_dimer_ghost_fchk/orbs_a_occs.npy | Bin 0 -> 192 bytes .../cached/water_dimer_ghost_fchk/quads.npy | Bin 0 -> 104 bytes .../test/cached/water_hfs_321g_fchk/chol.npy | Bin 0 -> 113648 bytes .../cached/water_hfs_321g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/water_hfs_321g_fchk/dm.npy | Bin 0 -> 756 bytes .../test/cached/water_hfs_321g_fchk/er.npy | Bin 0 -> 228584 bytes .../test/cached/water_hfs_321g_fchk/kin.npy | Bin 0 -> 1432 bytes .../test/cached/water_hfs_321g_fchk/na.npy | Bin 0 -> 1432 bytes .../test/cached/water_hfs_321g_fchk/olp.npy | Bin 0 -> 1432 bytes .../water_hfs_321g_fchk/orbs_a_coeffs.npy | Bin 0 -> 1432 bytes .../cached/water_hfs_321g_fchk/orbs_a_dms.npy | Bin 0 -> 1432 bytes .../water_hfs_321g_fchk/orbs_a_energies.npy | Bin 0 -> 184 bytes .../water_hfs_321g_fchk/orbs_a_occs.npy | Bin 0 -> 184 bytes .../test/cached/water_hfs_321g_fchk/quads.npy | Bin 0 -> 104 bytes .../test/cached/water_m05_321g_fchk/chol.npy | Bin 0 -> 56864 bytes .../cached/water_m05_321g_fchk/dipoles.npy | Bin 0 -> 92 bytes .../test/cached/water_m05_321g_fchk/dm.npy | Bin 0 -> 756 bytes .../test/cached/water_m05_321g_fchk/er.npy | Bin 0 -> 114340 bytes .../test/cached/water_m05_321g_fchk/kin.npy | Bin 0 -> 756 bytes .../test/cached/water_m05_321g_fchk/na.npy | Bin 0 -> 756 bytes .../test/cached/water_m05_321g_fchk/olp.npy | Bin 0 -> 756 bytes .../water_m05_321g_fchk/orbs_a_coeffs.npy | Bin 0 -> 1432 bytes .../cached/water_m05_321g_fchk/orbs_a_dms.npy | Bin 0 -> 1432 bytes .../water_m05_321g_fchk/orbs_a_energies.npy | Bin 0 -> 184 bytes .../water_m05_321g_fchk/orbs_a_occs.npy | Bin 0 -> 184 bytes .../test/cached/water_m05_321g_fchk/quads.npy | Bin 0 -> 104 bytes .../cached/water_sto3g_hf_g03_fchk/chol.npy | Bin 0 -> 11056 bytes .../water_sto3g_hf_g03_fchk/dipoles.npy | Bin 0 -> 92 bytes .../cached/water_sto3g_hf_g03_fchk/dm.npy | Bin 0 -> 276 bytes .../cached/water_sto3g_hf_g03_fchk/er.npy | Bin 0 -> 19288 bytes .../cached/water_sto3g_hf_g03_fchk/kin.npy | Bin 0 -> 472 bytes .../cached/water_sto3g_hf_g03_fchk/na.npy | Bin 0 -> 472 bytes .../cached/water_sto3g_hf_g03_fchk/olp.npy | Bin 0 -> 472 bytes .../water_sto3g_hf_g03_fchk/orbs_a_coeffs.npy | Bin 0 -> 472 bytes .../water_sto3g_hf_g03_fchk/orbs_a_dms.npy | Bin 0 -> 472 bytes .../orbs_a_energies.npy | Bin 0 -> 136 bytes .../water_sto3g_hf_g03_fchk/orbs_a_occs.npy | Bin 0 -> 136 bytes horton/meanfield/test/common.py | 486 +++++++++----- horton/meanfield/test/gobasis_data.py | 289 ++++++++ horton/meanfield/test/mol_data.py | 142 ++++ horton/{gbasis => meanfield}/test/strip_io.py | 80 ++- horton/meanfield/test/test_builtin.py | 36 +- horton/meanfield/test/test_cache.py | 23 +- horton/meanfield/test/test_gridgroup.py | 29 +- horton/meanfield/test/test_guess.py | 45 +- horton/meanfield/test/test_hamiltonian.py | 90 +-- horton/meanfield/test/test_indextransform.py | 123 ++-- horton/meanfield/test/test_libxc.py | 356 +++++----- horton/meanfield/test/test_observable.py | 93 +-- horton/meanfield/test/test_occ.py | 45 +- horton/meanfield/test/test_orbitals.py | 78 +-- horton/meanfield/test/test_project.py | 52 +- horton/meanfield/test/test_quadprog.py | 627 ++++++++++++------ horton/meanfield/test/test_response.py | 35 +- horton/meanfield/test/test_rotate.py | 39 +- horton/meanfield/test/test_scf.py | 33 +- horton/meanfield/test/test_scf_cdiis.py | 14 +- horton/meanfield/test/test_scf_ediis.py | 52 +- horton/meanfield/test/test_scf_ediis2.py | 12 +- horton/meanfield/test/test_scf_oda.py | 37 +- horton/meanfield/test/test_utils.py | 67 +- 268 files changed, 1897 insertions(+), 1006 deletions(-) create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_b_coeffs.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_b_dms.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_b_energies.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_b_occs.npy create mode 100644 horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_b_coeffs.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_b_dms.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_b_energies.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_b_occs.npy create mode 100644 horton/meanfield/test/cached/ch3_hf_sto3g_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/co_pbe_sto3g_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_b_coeffs.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_b_dms.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_b_energies.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_b_occs.npy create mode 100644 horton/meanfield/test/cached/h3_hfs_321g_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_b_coeffs.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_b_dms.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_b_energies.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_b_occs.npy create mode 100644 horton/meanfield/test/cached/h3_pbe_321g_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/orbs_b_coeffs.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/orbs_b_dms.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/orbs_b_energies.npy create mode 100644 horton/meanfield/test/cached/h_sto3g_fchk/orbs_b_occs.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/er.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/na.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/he_sp_orbital_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/er.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/na.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/he_spdf_orbital_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/helium_hf_sto3g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/helium_hf_sto3g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/helium_hf_sto3g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/helium_hf_sto3g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/helium_hf_sto3g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/helium_hf_sto3g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/helium_hf_sto3g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/hf_sto3g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/hf_sto3g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/hf_sto3g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/hf_sto3g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/hf_sto3g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/hf_sto3g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/hf_sto3g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/hf_sto3g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/hf_sto3g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/hf_sto3g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/hf_sto3g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/er.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/na.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_b_coeffs.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_b_dms.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_b_energies.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_b_occs.npy create mode 100644 horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_coeffs.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_dms.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_energies.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_occs.npy create mode 100644 horton/meanfield/test/cached/methyl_tpss_321g_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/n2_hfs_sto3g_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/neon_6_31gd_xyz/chol.npy create mode 100644 horton/meanfield/test/cached/neon_6_31gd_xyz/er.npy create mode 100644 horton/meanfield/test/cached/neon_6_31gd_xyz/kin.npy create mode 100644 horton/meanfield/test/cached/neon_6_31gd_xyz/na.npy create mode 100644 horton/meanfield/test/cached/neon_6_31gd_xyz/olp.npy create mode 100644 horton/meanfield/test/cached/rotation_orthonormal/olp.npy create mode 100644 horton/meanfield/test/cached/water_3_21G_xyz/er.npy create mode 100644 horton/meanfield/test/cached/water_3_21G_xyz/kin.npy create mode 100644 horton/meanfield/test/cached/water_3_21G_xyz/na.npy create mode 100644 horton/meanfield/test/cached/water_3_21G_xyz/olp.npy create mode 100644 horton/meanfield/test/cached/water_6_31gd_xyz/chol.npy create mode 100644 horton/meanfield/test/cached/water_6_31gd_xyz/er.npy create mode 100644 horton/meanfield/test/cached/water_6_31gd_xyz/kin.npy create mode 100644 horton/meanfield/test/cached/water_6_31gd_xyz/na.npy create mode 100644 horton/meanfield/test/cached/water_6_31gd_xyz/olp.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/er.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/na.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/water_dimer_ghost_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/water_hfs_321g_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/er.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/na.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/cached/water_m05_321g_fchk/quads.npy create mode 100644 horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/chol.npy create mode 100644 horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/dipoles.npy create mode 100644 horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/dm.npy create mode 100644 horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/er.npy create mode 100644 horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/kin.npy create mode 100644 horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/na.npy create mode 100644 horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/olp.npy create mode 100644 horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/orbs_a_coeffs.npy create mode 100644 horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/orbs_a_dms.npy create mode 100644 horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/orbs_a_energies.npy create mode 100644 horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/orbs_a_occs.npy create mode 100644 horton/meanfield/test/gobasis_data.py create mode 100644 horton/meanfield/test/mol_data.py rename horton/{gbasis => meanfield}/test/strip_io.py (51%) diff --git a/horton/meanfield/rotate.py b/horton/meanfield/rotate.py index 15b6fd1d..84d8620f 100644 --- a/horton/meanfield/rotate.py +++ b/horton/meanfield/rotate.py @@ -22,13 +22,13 @@ import numpy as np -from .utils import fac2 from horton.meanfield.moments import get_cartesian_powers, rotate_cartesian_multipole +from .utils import fac2 __all__ = ['rotate_coeffs'] -def rotate_coeffs(coeffs, obasis, rmat): +def rotate_coeffs(coeffs, shell_types, rmat): """Apply a rotation to all cartesian basis functions. **Arguments:** @@ -43,19 +43,19 @@ def rotate_coeffs(coeffs, obasis, rmat): rmat The rotation matrix. """ - if obasis.nbasis != coeffs.shape[0]: - raise TypeError('The shape of the coefficients array does not match the basis set size') - if obasis.shell_types.min() < 0: + if shell_types.min() < 0: raise TypeError('Pure functions are not supported in rotate_coeffs.') + nshell = shell_types.size + result = np.zeros(coeffs.shape) # 1) undo the part normalization of the basis functions due to the cartesian powers - lmax = obasis.shell_types.max() + lmax = shell_types.max() powers = get_cartesian_powers(lmax) factors = [] - for ishell in xrange(obasis.nshell): - shell_type = obasis.shell_types[ishell] + for ishell in xrange(nshell): + shell_type = shell_types[ishell] icart0 = ((shell_type + 2) * (shell_type + 1) * shell_type) / 6 shellsize = ((shell_type + 2) * (shell_type + 1)) / 2 for ifn in xrange(shellsize): @@ -69,8 +69,8 @@ def rotate_coeffs(coeffs, obasis, rmat): # 2) the actual rotation ibasis0 = 0 - for ishell in xrange(obasis.nshell): - shell_type = obasis.shell_types[ishell] + for ishell in xrange(nshell): + shell_type = shell_types[ishell] shellsize = ((shell_type + 2) * (shell_type + 1)) / 2 for iorb in xrange(coeffs.shape[1]): result[ibasis0:ibasis0 + shellsize, iorb] = rotate_cartesian_multipole(rmat, coeffs[ diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/chol.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..12003a06256a8cbd522df935bf557db5770e80dc GIT binary patch literal 84 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-Itn19siRP<00CT){)zSg1_u_N literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/dipoles.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/dipoles.npy new file mode 100644 index 0000000000000000000000000000000000000000..8636031989751bee2a8e07491bf6cf1b68189a80 GIT binary patch literal 92 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= YXCxM+0{I%oI+{8PwF*dpivbA$0IL)gDgXcg literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/dm.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..ee673594c4b0c20495003486fc8b90708fcbab2d GIT binary patch literal 84 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOdD&|nV$14R}1 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/er.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/er.npy new file mode 100644 index 0000000000000000000000000000000000000000..fe65deda98d539fd6b8dbb2ba4c37e6ac6fab08c GIT binary patch literal 84 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItoyvsiRP<00dlqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKKeO(a9bF21pjZ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/na.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..638b84b8b950fea4c43ee7e1958729c861dc80ab GIT binary patch literal 84 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKN>WaqfNq2D%qS literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/olp.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..ee673594c4b0c20495003486fc8b90708fcbab2d GIT binary patch literal 84 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOdD&|nV$14R}1 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..ca57591ddd17b1fb66aa939a402059c30232a690 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOa?1|RGJS`8L# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_dms.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..ca57591ddd17b1fb66aa939a402059c30232a690 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOa?1|RGJS`8L# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_energies.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..8e1473e85fa4274fd1942d6e5f3e582bb8bff290 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= dXCxM+0{I$-I+{8PwF*dp%b0(aT-BYs`vGLa87Ke% literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..1e6abfa1a62139af824f1961d5ee78525f85e2fe GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= aXCxM+0{I$-I+{8PwF*dpivbKi*aHArSr%IW literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_b_coeffs.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_b_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..ca57591ddd17b1fb66aa939a402059c30232a690 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOa?1|RGJS`8L# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_b_dms.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_b_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..76ac64bd431e8ccc5dc64545e1f33b9fe55dfff1 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= ZXCxM+0{I$-ItqrGItsN4aKOa?1prs>6+Hj| literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_b_energies.npy b/horton/meanfield/test/cached/atom_001_001_hf_sto3g_fchk/orbs_b_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..9454f6887c7cf1310abcad24757e00b66a24b504 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= eXCxM+0{I$-I+{8PwF*dpYd2T>hE>}x+XDbqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= YXCxM+0{I$dI+{8PwF*dpivb4!0I8f6EdT%j literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/chol.npy b/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..9516b29c2ae971b8188a48abda930e3baed555b9 GIT binary patch literal 18512 zcmai*2{f16+x{g=!)cTw8mOdEWC{TK6)Llk6BFy-hmXNARrWahEhRcQCb= zR2GwDELKP^5tFnyXzyrma$xsCdo%O@*_Avv7%+ zhuF}su{Kj;OS5MTpm8a#;r175kW%(Y%l8j07%MT6qSbtxSXzsxwVv_N&qcI)_>S=O z(#=IMua?i7g#_TJ;skH^B<_xXV({nyv{8^4@wXPK?l>SkU6hY4! zxUqvatcE=^FQt^M|DM$NIj`pEE3%Ss_biilfFg@PhnI+*G z50UgPh3>`jsffqYLGA9URP^6?sz>`!j`pGazwi$GAWxbL^+zkcPpjfUVuipjKQn(k zuOHbT%#4ofEBoP-f-?O&CVSsGDA$7nbBOaeW6UpV;P%gMLv(CehvCmou-(FRSA z)*Gsscxpg-e_knz9%*O938Cxwzwwl#eJDr!P<}k*at!9f;E&!D0zJdi-zuLaKSYT& zb%(|YC!x27or4m`v(a$=2Jn=leJDr!Q2q+MLq6n5bD{odeFJ*5zFyU`>}Kyfv`t{2 zU{7xd^A_*EWL_JGYG%Hl*dKiYfBDe#-AT|62Ru5?TbvqZzxRsO~VL9A8I@$YY6Wv?`IGM{49X{7=p|RiRh$_$8mRf`398x;4XB;Bx9C6!$iB zMO`HLa4x>C+q~4z%YYQKyMB z`105bZ&M7^(!K1An)$?I%>O=y&ex2x6n7z6u@1oWl zhodYm<=|Tb6#-{W%Fz>buNkt}aR8Eg_UWsQu z&)#we1&mCcz2sgvu8Z?Zv@ZxpBbQW1jNysJiy8u~z6zG$)NIYRxPDh;06xn>k8-En z;-u`4KSD;;Mueeq6MrHw`Ri?JK(K@w&(~|}+J@In% zmo3lG_safu#g&ohE7a)dNnbKLlki!ns}#U(` zgOTf(yb=Y&AiO<#aaNvL0$Py!!rem6AL{^r2YgaJ%F#ZQvxPp>fair=++n^D@Mkeh zkK`QB1idT$5VQ9jI>r-l%|^hSQ0jdse9_eR0b zdbfRy@IsUuxS?)X7J3t9Us_n+6&j&J+%D&YV=GwDjdOl2xozUgNwbS@bgynmm& zA~_j3B}?vlkdn;lT>*~zsaF#(6*Jq99=xmE5iaYC3a#W0d^;12vxgfnkYCZhAT)F8tDmWx&9T?r*PSzu2BTGN%5#eD_~4^3 zUoiNjdX$Sc9=m>%`eVdrCOUUZY%DyW;(f`N35sd+;gsI<%@th{0=UNa*E2CXXU0BqU;y8=Xk~ip{o7r!Cmvx@ww&o zi|_3WLW85PeZXg8P)zQi|%)5`^p`YA06*t~VYukSaWEt;%7aWnoY z=(P8MvMaLBo4Uf*DiHm<{>6^duNEP9@JaP37q;}u%kE!4&)A5{p@Z^1X!8b#6id&G zcqi+YKe9Lp{k$*U5f*n5+rxb4!6((D9QC8ILf_%lUIp~1&SKZn!a!7Luy^h3+pb(L z=LN`o($k1fRnV(cBV3p6Aqf@XH0JrGEJ>8-h)x7ZU!R=lkFG+Vx{%8@m`@#iMuXm( z%Y=hI?8VM*9UB8jG#}o<1oE_3A-Q~k`KZrW(6a}Q_Sv%{nBVi1J1h1|y2i)C1>aRy z(K2W;LxCaN`djVHkV7tWR%n(DPF}oS=gb5{ykFV&NI5dbB9CQqN3J!-lYl#v^8D$- zY7yjAWYQ`+Jp%n0IoUb-TsW$%b>3nq9D}VtjhFrU%@#-A?bE3|X^YqS&p5O$)Rxn8 z2JS()g6o@Pb0*>OiN=2uE0AT=sJ^+;rg-K9%%L zk34JkU3TC3oql*=yw<$-EPre=xTaO-r9VCnx%j|*65ult^eFdf$d5N87O2@1`?nKb zHm+BA^+G4S3-SzsTnb=5aq!9a7tvb)-1P3Yh7Q#;3?uYVbKxUz!~^dj4tbVCF0wG6 z1^7gurwrWPp}CychAJNCtD2tdvcgFluH?GlNvoItHGP3ODjc__zOKOOfESQI^-Fu7FS;@A5ReA+&6?*h(@ zahl&I7mn;2{?ZXfz$G6$JcIdY&RCXauc>Warer?Y zlJzs80*#)?YB$eKM|ufmTIZg4VLb!=*FUcu#6{q^e51gp1?a^BSATu%HKPD7YGg0)o`TfR8XD;9mosu%K1L3F{s^grDomqXhSQF|zwI$XrYwb9_YT(R|95ah6 z&}Tlzi!95R;#cYo?QC(48L6}=Up8S+k{@0IbykknKU(R2I1T)L1RcsXPt{r~>14|Y zY;k>G5MP0kyf<}~j!8#GbDJh?u04p~i5)W3v-ZX@z`q8b>QSyQe3H%#+SBPM8Py?Z7JnzYe%q&`Sr7 z^f}IK1U?nsK^^j(4!OJsf7GWo++Pco^l@U1!ZXts`<-MAEZz*3+_6GVWk-^wj^`o1 zB}G~@M!TcI#iXvv%DRBJ?!*jKB~OQ2wO>8abl^Vo+w{8RO~9Vlm1Rul)}npRHKF{i zm(gyhy(fFN7F(Ucub}Qx8L@I-Y8t2K1>CadD#Z_HA7p#p&u;8cQQ+!0em=L9@@t4z z9(^;p$~DD^AAC|h%DvFry7cyxeT?+Uaxc>#m3eYe3v(_^jX=DIKj-*G2BM&iM>d$d z1|lBdO~5DRDfhK`q3gC$M(ksE!bw4&W55SO9-T0k0QjVOcY)JOZrUGh^+e&xc%9+x6p6rm&%r0vqg>J#9dQ>0bLM<_;GC;dicx>fx2PhaYiN$8hKRh! zHS`v85rg^4!6(%V2kxX>{Oq`nNJeID^1(62zDVkZrr!E#Ug#s_SqHfkzoyo7|$+0jxWMH=tG{akc$b-Hy3=)1U+rws2{5d9-}>d+}M_|AM5)H_MjbK zrAoyndg3Wpx(Xh~=b;Tt+(wAGaZ#++IRZ-mT{V_0UCTo)MuwGPk8k1VBBeij&16pVl|Mar1BTjg` zX^OtpAv~G-1U`fBmOjd{&iuG>DSHdv)uv{j{PV=Gxw***z~YS!p}R?slR}m zkNTu~l$#a$TA}Km1f#fIPO{^lL)bg0aPzzXM|^9}>m!%fJ0NMuWf#ns3qGk{vkc){ ztJa3{WQMSsQmpNd+GD6V!1jJ6>x&WONptzKlguXsKK($?5IE_fJpEbUbJnF^g~w1e zyn`v^Sq!<%hxs0W&vekU2afcKV($F#7EE<=XHT!4C9C{Z2it$pZPzbgQSB_gRJAl4 zR1Ed|o}63zg)H$`s7Zp0TTjOxMmoTK*G%WEL`=orya< zyyY48RL~QDn-iGUr95Ldh#C1~>N9JI-^@}@ZLRsHyf9-nRxzej!CRE=FSTFKH(L)k zZV=fPv1KJ%w{mx8xx;jH73P!wQT%lKPi>a!QLflZ=d4?=E|a^FaHDRJK4z;3-wb)Q zz+7?Q^Bd^J14rhwV}u_#g#^Z1A(hvY=13)4;Mc?Wv%oumPuhoa^yg7U;ORS5Jtlch zfm}X=KURbI)PVc65wE$AmUwF<+w*K- zT{er(%!=TN7WY6|TbAre^t8bJ+c!M_EVmEO0PfQM3r}MMKdDX16%n&*@?a%D7u~5J zVZv@Hx~!>vGmRN{@VMZ{LLdBucU;@0T03O%Q#x$k7)M0)+FS#oZ{Od{>Pt1xejz`H z-LrV?oK#6E=IYTWm1espGZC-$o%y(kL1$!}ZU&Fh#{1s2{heB|3AupJapKE6rfP2H zxV)_KVzKeN+3RS$%t(voqPWas-*c#ib6#Pd(z%N*u2p8uiY8e=qJ3xI>>Vl zApE(W={r- zEdPoYI{#FL@re?(*4NmJPs`r&%Xjxc=Ok7h33J+uQ-GWKLSsZZ&nGp>^RepOL3$nnb`FT@)gRq-F?`)-wlk%% z?)u~8RDEku288S)v& zP)^+FvEA%+Pv*wX21EO5O{VAW`he-%PvCfd#c~lBe>^blTKJt^C$P~Fw~9$`xa+U_ zd^bz=C>JepxRX>n|w77CF+m1*jsh8BFEKPD_&8y|;UDq+6!;PWZyeaj-; zkC6A`R^@I?vg4fXQTHscree8Ktf39^hCB-(7rVV=zBAx+jsnrE1dhz<#hCEwnedpt^zt4H{eeo3m zN0xW4gVV;Nx=em&flQ6E4x6bW6o}UN;}&I7pBeC*{?zctKP-t}N0ppp-w!c{__@X$ zX>-4N%ePkrFL=2&=wXk_ymN=s#3nc(1E^WY{nwA);fv*YBQNHk-N20b5;$jz_y&%n zeR5Bg-R@wk$GDy<)rS{Pu^YOQa)-P*bPr&3}GAqmU`#fF00FnEp!27V|Jc99e&1n%6 zbj7Lq$`{&dc4MalLhFqT_n<$0Br|k9ybAwoRwss&(AT$XQv6&@5zl8=kpsszBGTUg zbXJ5$`f_Xeu4T!~V-KRg zvkq5p5Vb&V0|%>XlQ!WfhUCKQPUe#apHxqygK(r@KARGLRH9>+6K;*PkB~U+jD8#< zd6w&tTx{FPeE#CZXD#Saj^=Xk8@{ z6OO)E($o3B=Nwuauw>r{swM0F!SAA--Ew3(%Hn5v*F^kr^Lk~|>5`cG$xx9i zu9~+H5zd9ZkslS-XMc|&>tt5b<3{JR9#=eSq+y@$Hxu+T)PC>g1-mghr+UBN5BdOa z2|gkigT_tjSt%B1LCLF?&F-q8=L7fhp}Ih=pd9ONdv)%Sq9k;(iqC_W-H6g8;x=ZL z{Q4XX`$cp)J>V;t5osqfzwEF@*OE4#=w7`EZ%;ckdrzY|qPhHggv>|V-2lBcse~ha z^Vzt=7p{dgJ0ZT6D>FV+J7TFRB+ohh+lO-b_JYi3`-u4bnMm}cJP3DSQ^&b=(PeDu z^VS*iW?G28!^(t$+$}5>0lW@g5!CF{b zF=U@se^#jW$|JuW|KMZ$%0_suR7S>`9yPrylo9ak@yu<(7k8;+vQ7g&iiN(+CDBK6 zivFP}`|`Cl@9*fKz$@w9Y`6}WKjHj=YXBdHP~Et%>zieBd)w=#;@EY|uRch&1bsu` zC{MXc*mr|IX-r6J{$NpoCF*#8qhVvwH1Hb*=Y_-W|JI#wrtXC7>;$y%qL-Be`s!N#>*PPpfti;YbcW%(S&Gp6Q4V(iC*bC!qL7dV@*dK%of1cvdKHB6_7lWv`8*=K5+@+v+zC9lV3?VcsJ%? z*X0zebHBg-Lma#ZPUo7iWZx314_ouGK7Mi1SRCHZyIf-7a-?gdSHt)6_t*bUHzh68 z#|seQPT4vpXy@2NC{)8= z>%>PnH1j9P^Z7H9OU`yOpGE`mDFb?XTL?$zdLg59B{tp((|4eGemqKY$$|N(&k1XZ z-oL;>AGT#=%9?)?^Pwg)WbFgh1*!oX$a{Z8Qrlvj8fkaEdygzq@;3f(v1kk?_mf%E zVjuB6{SxRMuUf8hQ7J>;kDR+OSu$+~XIeMogBMcA?wR0*WqV)AsJt=ZzW$-lFz)wz zlD=11&7x8LQ&N)9+PpB2nrKbXvjd+I)IXO$;p`YvgV>!WNzB#pwrG*Hm$`1{7VvM$ zg3tfp$bJQ!M{xe6TBEJ)%FPkYB}tCVH+*iw|K^Ghxb?W@I^yL@k8t7h_C((te%5kvSeQ30<@I8HYHb7m?&0)IO6ul?zBNZ(+W{SH$NfWuj;Nk#G%s zQ|e3t?=h;5i!EH9Rnp3mwHvJcS*eKFlaccrna!Ux#_W$%L#q`Vj;32`{%GbE7qn-@;YEGnu(#xO%P5qy)6}dj1yCx7VzEbxuwLgyp*qu7fJp2aM>^^`RpObfxoJ#T>olA0QEF|+$pHxp> zpKx?8^BXY{({u6}Qvdt+-;xfcB6lQ~;$^!RP4iIU!|JLsPeQC^xvyWd*qcH|?9o}eW*Q(Q5*XTaqT9G4sEX9xXUz-I*G zw?VepMd2VK_kI4q{s*#s`kP{k*`^1M1MiQOm&YKlB{CMSpDpbfj92+<@l;;FZl1m%R*H=k=o&i0+ErcU|Dp)D$CoVg${{Hiy z`lXee`>@{se)JQVEP%tOcP>%aU5amiI+(F;vK;sRKR1-@*pW0J(ffb$6^!nBo~X=T zWAxKb_pV#6F220rr_}Z~S4{5zet+--zAU-V0ojjWXn*W9AY?9P3wj2y@A4nqpFSes zJc3bXtHM4f6c6kFpPzs5!^nheMK@$pS<3B^uRakLk%VY2Mr+7?a{H~@ zUR0OGF}F>;Bo&Z&O~vwjX&00_mE_5PkmLgVFkcbOrgMZN=M{`~nC!mY-yE?<4|#_! zNs=co zZHesjoyoENe!b1&R1{fg)sxF~k~n89v6zkF79e9eF(uL9QUt{$pqH&^=BZx2O; z_h+FGaFww3hc&HftiuHn>+jcd*j!srqY8lp;N7^qq2I7RhR`qVKkAm^hD#3~c>Wij za+TbB&|GPqS4#4*ctYkX*PW~QT>TW}mpe?afoXnx<@nSa3i!0~m@J=2YgAE8_^4RI z6aQ8mN8TrwJ@=e&pAn(If-^H@^DpyqMsl>5K)c@6y@GYLed>qi`kJ-q+m}`E z?unc`dUAvpJD>x#B+thMB$q$u;5cT|SHjW$Ja&)ufB1T$chAT>{F&$L|Hy^v=^Y>( z(fOSR?OUyX`utbMmmxKUCG{-(2A{f6V7d-ptlS;xv>ze8bz9Syl?fwqUe9(tF0!IF;{`Fjc z+L!tzweP?1ZIp+8bk5rh)uWa45m5cJKlM?-rY4hIuEdl1$bH(U1^V}aULWh9d~u~f zh67UfzBeG+QiSm@AeTg3Bp3;8I1s{?JIe*HKdW}2(lWS)JviE*^W}<<46Y6`q4m+Tq z`w9Q24&~c9Uz8*LzOm+!g#Xusyu;Yr|976WFTEdmo^Z6!L}47$c}KXIRDt5q^7#Sj zjYiD38{0;mdTP)9{Winb?4=8<`>9jSR73jLe-}pTzk)%$v1_FfaH@U@U`3*=+Ll87nv1pJcjT{IuU(P|M9h@6-CuuxoeE)Gf>ei;RaY;a=Q(rhY*U(Pz|| z)GGPlgdZl%xGfJ9?IUEfjQU~e1f5Rr1r6- zwy{Mc12PkvvRMA-MWf>DV>vy_(LTdCZXTKoy+3cd> z;3cO?o|K~%^nhz)7Ox&N#F2dg)p;(PhxnOs!9(xxCnuo#C*Q~DydruxM{XVB=>4%@ z@9tdmZB((T=Hy3#arc?Vduj1~^Kw|S&R|Hrz&tuoqrLK&ERGHmUXOCy)QT-!qR#iX zsR0M~2jG4qtQ%R<{|UDbda8t*0QCagzt50!p<+d`E}@;F9cA+PjL?(@IV)|x3pc>>Sr&^7Jj<*qoy(RZsG?^E?xzAd8fK;|0> zc?@uRbWX8p%#dE#6vC1H4@~Bh$_a7bM-_)UOxWj@(8!XS!IJ%p%$%eSmB|kZnZ?as z#s6;kthUZ*uG3pTSv+cgcZ{=bn;N-)pCNUC87VGY)u+-7{1f0CpzjAbAE8S6j#VYx z1(p#=ZI+&21NTM1PYL)7hx1p^hwhI8{uJn!467fQw&EQUPg`%Z#8)@>`wRGH>3o0s z4reJxau6yewU>47QtI0~={3yvhF!MWbto6o?*r9`^Iq^h5`0cjUG%u~W0|-R8r^HE z+Mj2OR0Bw!^j(QgIn4cr%X7lZjvCG5-|q6cg4oa%17 zE%EutoUcq(o=;?2{VA5z5?GfoFB=mM9KYGERy8tqsK%%T8=6PUVsh{I=Z*F|pxo6p z`+W!WxzFVu^Qb4rYTZaxqW6~bLG{S~-^FB|L4B}<`^*Bz{?rQ8{36E>eUcfvPdTz4 zU97IZv$tt`Dct`8{XW24_kqi2NdH%y9_45sIw#rhW~X5NwPF1YtY}+2$z>=v+P8%2 zz`e1mg#WzA?N1uq5zU)6S8y zH6_%~SMAuUSdodveG&YF$KT&!X(j#2pie9J-v75=F6imW;-ibZ zC)!Z``hW7I{b`=GANBob9prd}`HzR*ft=GkS|NufdXKLE!&jiT5RdJz_b0W7AvKYu zmHHv;R`wshQJTHKJ_m_YI+*Dzf4{%3i#SipulKioCCYR1*ZZG4K9#3sUJFClz;pU! z{hxZY59l)qVpDiTpPu3JBl~6Gua)ylxCeC2Kp$0d-x2PY!Fel7&YR#~ChX_3RPRrY z5Avy{eW3n+SJH2gn~%)h4)=Pv`=sx0?$QL3C+u@P&7D?qUOPMoMozzO=pCp&?N2I~ z6X^f`KAfEQu!2h%YyOgX#k15K!~|vzGNfXL?B_xaWu_~RD?icM&eG~|%qwGR<~Bs` zwZc6<=<|RLzmgzau2%>B6FJ{-ANq_bChIcj|CA;A6IBVH416xs+F|u~j?f2mlWCvg zt^0fhCG2xJ-*irzE3Gg$r$;&PQ%wAfR;4qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= dXCxM+0{I%oI+{8PwF*dptJqV*)?ZZ|i~+s;7s~(u literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/dm.npy b/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..ad8165475111bbbff60c233c0f002f60c3ed92de GIT binary patch literal 336 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 Tt|J}}=F_}*KBK=kT1WaHXJS4W literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/kin.npy b/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..72cde2297fa0c77baa90732d7b2b618bb2d28c4a GIT binary patch literal 592 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I#iItmt=ItsN4aKKeqct*zYgucUH)oBcm|7_j=-M#tG&(4ZHug>x?2>)ra zfzd6U4H`2Kwd{w{yS84oeS5TJKTO}csO=mPmiO%MdA&H@s8+G3bN@Z|M!yyt7~Q0y zb(qCwk3EbwJvw_|ySM*#lD#GePx!_>oQm^lD`xfR3! literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/na.npy b/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..1930ad1157eebdd26436610fdf0e4ee141156003 GIT binary patch literal 592 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I#iItmt=ItsN4aKQEBdgzYB{f-BuO&ZRewGukOzQrl^xM#usIVYT|x)}=g z&xX=ZKO8D@6#Kj%M(Zn^=%kB$-Vf7v`$C4ss&c6Vyro8JksFunm$@_H)VDwc?P0J7M<0)F&us#H9O59Z*vJcQZ9|z5VZrZ;yVR@zP#vvcz4rUd96vd|ToiFTb>h z`43$`Odre~n7&_7b71;m;Q{j(%zfzgx!OzpX4@ciz+z71+Cqkx`wn!&srb4!5&7txjV4Sg=~Q9`?gn{fq~(J{oHk8)pttE_DuVnc5kszrwxo=v#jIX z<5TzTVe}#Ue9O3#_u=-z^kwYT0-NI|Klf|EUqMS4ee#>sjg_ko?}yQ;p_VNB=G?M} zxf5m&Og+q;Sp~ja)0df8o;k^w;Bxlxejd@e1z)z@vUj-EtLXph@P1tSVftX^!1Te) zf$4{Z2h3kE_rcV`^u01n0Ecss0hf-S+hO}@v$mZ55Of$Gp6L2v`e5e3^uf%5>4(Jw SEIeW10&^dXhN*|qFmnLg@gBJV literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..9268eb0d30c53bd0802350ab181661d8f0e45988 GIT binary patch literal 592 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I#iItmt=ItsN4aKN?Xkn8<@d*9m&?swU~hvnS z3&o~)zunI*aJ*ZsF>&wF+_1wN*8AH3c)FVNLwce8@oyoBN+~)yiuAIlDh)f?tlxtPS=DW#W1w(q8QU%UEL07XM(s?YbtVsJb`y zIP}{Ssek`Tg~{xi`gQx;vo=j_mN;Q=A<-C9boI%eOkE?@)_-^HKWG+6eVnktJ}Unj a_dmxM`&aLkl}@PoV1K}_<<`u7$+iG?Kp=1c literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_dms.npy b/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..8cb2648642257d66d589c26a1cbabf7ec8f995aa GIT binary patch literal 592 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I#iItmt=ItsN4aKLpiaML#Z#UJe3Dh1>Bg&o|#^Yr!#t9KLazc!ux=d^dC zeIt~%PY-3u30t|J6-qySA+j*nZ{>cNK5k7e9vg*+_6}QaT-Qw9zQ3a?f9D^K?fV&_ z^p(5-A^XPt_5o0Omgy?5$;JEaVfMlFEmohp*k|@bdsl6_z^NBc*;hd6`8(GH@7}p- zKl3gq-CjF;!Ga5Lcf#z0>3iH!-21ZXq5Vmo%lmImJ!Q}MrRePIGn@9u{JVbf`N|9S z#wYFStED&ZhxrfYPMCc#eK2!i`e5d)IswrS3m2IGVD5yegXw#9ePNmCvDnEznOV literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_energies.npy b/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..ffecf548d4e9d1cf24a7c338a45a7bf8830c9648 GIT binary patch literal 144 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I#iI+{8PwF*dpi*rr6@O2io1A!M)RqeRn?k`&)a_*JM!~HRpDm%jsAMV#% k;$E}I>-zq~>KS1P`=8izd+K>_aC%|C{p8k|KJORy0K^Y7_5c6? literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..041099304e2e190a8113808313f9cbc432555614 GIT binary patch literal 144 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= fXCxM+0{I#iI+{8PwF*dpivbKi*b_%XR3Vc9^1T}# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_b_coeffs.npy b/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_b_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..13f7051e867d1039e08fae69902484f4c6f52234 GIT binary patch literal 592 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I#iItmt=ItsN4aKKfaqh_Uc?7h8uWpVGdd#CmbHSCkT@@mtb>b76&+}p+N z)ymg|9i6?xKFmjEosiSH{p-K;cj|xhwqJksY1+Ei7xrvVk)H6WeSv-2HO8N}@*mlk z28w==-G0et<|e!6pAwDsZ+r7SQDD}Y{qn!Mb#CW>w^wkG44i$obU#m{dE?Ff-)-hk zzx|4}+TUJ0f-~IIaiP6f;IS=EOXKz)Z?;*e!G7Dm_r$S$PyI*s{1G=D=lnTnzuB^% zvp($IemBpZ=HGk^_s%v+JX-nQ&;B_3*O!O?EwJyF59FR-d42yW`OVGi-B0i5_$85^ z!t%)8{GLR@$CN|%&4)tv#ZJ0sFZ&>{=6=j8dmQ@hiPXP8*hqVlntj#&lgocC-ik_ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_b_dms.npy b/horton/meanfield/test/cached/ch3_hf_sto3g_fchk/orbs_b_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..ff8525b1c7b3e0fbfd04f1b32f619b2ef67b3da0 GIT binary patch literal 592 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I#iItmt=ItsN4aKQCwM#HPyRUho{X-c&qH8DH zZ|;H6(>E39#ojw)Ukasn8-F~y``RIUn0+vPpR$AHLVq5!-}&=pqB+n#%Yt8l>1$e7 zyOWf6?eE`x1xz1cND2E`bk-i`PMCc#eSa*qy|i_Y+k08+JTd9mwtx9At%d3;yY~O$ zs=e^2=d3+rndY?g{9SPW!Q2V652g=h4on}+oNZ4b`eES$^B>HeFm*6}qT4sbKRR*M zzN_hPqDaK1{Rv86*Yl)pf`=z8Twwl#>4TXA(+4w0WyTkqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= oXCxM+0{I$dI+{8PwF*dp>(xJ(-SfY)?*rji|BhHq2KL7v# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/co_pbe_sto3g_fchk/chol.npy b/horton/meanfield/test/cached/co_pbe_sto3g_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..c5b67e0246edb13b6b538bc58c030c8d8cdc89c8 GIT binary patch literal 42480 zcmd^H30O~C_coIuGIUL4ZjiY$o;oC%GDcA3qsOZ#5p~)2C zMiddbA<8wz|NHE{e!jbR=bm3lf8YJ?^W10Id$0BGcfD(`bIxzdZ{qX`lV{ehrB`dM zvW2DHyyeP6J1aBu2P^mLtUQ0|a{J|TmY6SHZejWFdA&I{c9#E|w_7-8ndQI6Dw^uO zI`{AQ@BdYMbzax`U;j1U+jrIwd%H|_-tDYZ>ruzqTEu?=am`&kcCTY+_-`4V^x~@a z`gwmEKPlWu`K?kf2{ix1m!FSuOs5|_IOAdlo&N~=U8Vew~={%nKZ9`2a4A&Na8`~j#wYS0XqTX^xtWu{MNbl@Os_4^}T=k z7KL|gR_=q^-8M09xLy_lIs=~u7^fteojBhtpTb-3cjkq17f%LwfOVHr=gjz{N5ZDk zxPU|2s^Y>qTqAIPYGIwjKp%m;fN%2FyylM2%h^BNvTKhqxk>5Lyl$5l#cJdEr!)8K z=dRYSkQd;A)pzV{ zZaU{4dvj2R!}05m>@cI~HP8L&eA$em!fm!md=b{!0_y`fV6S1Eh&md2MhZU6gqY|k z#X9~}p7*)F34c1S=Am9fIs>0E7^h7?mFHWQ(bu0O)x|G!BO|GL9FkIJO*PHfh|QNM zo{$%5tBRY6&*4dd^D_eL`~d4Cl$TuOXborPvV`yOMM@(a>V!zfz_;fGtz*aiJ=hJs z<9lywb6j#dc!?URwJLR_WBQZ{kDb2$U_RFUHqPrJdYvY{AE_6JVmp#>w z9dY8`$cN9r^MHNzK25%FIs5_-W3WYMY~Bx1=)#d(pqpT`9yGz`AYUixjwvB2^B*}iKt?Y57j`IlX`4|Gqw z#JgjimtlQKykv~?F;DZ;(41%{PTi)oPSQCEAMj7J_d25MV91Wd^%Bw<_(WoyVZ#g) z`lUai@UAU?HeX)Vhni25Qs>6)uEynVdq%|rU((7DI+N=#J~Xj><%gih65N;g9F7q< zKOeEqppQ^qZJs_3*Vp@wt8B1qLbfaY+;sk$$JyWxi&+`B%nbkHNbSzS(Pj~iEG2w^ zr=!}24rZFRJm9R(nC|KSG?wyH>G~`$zS%+cx#ri@_xUT?(xYd$FIS|m^X&K#W%lC{ z9`M1+`8{bWYjK*wg>|qK7j^iwEPuVIANbd`KGG!1j}!G@8o);wj{VLz1M35M0UlV( zH$@H4r<`N8ZDZ5gjbG2s&2&odeJ6(6hdZ<0_~MH&9&`qM00*oZ#)0vx3!B%K9N$Ob z-5H{jlo~vgg?had&>8puPPn0}&&14h3NQaj=h7Kd?5TO>O6m-}#jHJ{vylIhUTgj= zj=wA6wFsX>O@Z?hiFF2jgz{QB{ot!%wbNLKv_bY?XI$s{4YzV#@i<7b5AZpCQ++~f z{T*!Ep=N=THM6w+dmh=lb)6ICmo~w0_~RCvdBDlM(L%v5{QGql@T?7dgJ<83WZ5(Q zW?CxPvOUKPbkfnG&wKIqC40E8F+9Y9eW<~7Y^NVj?GNi<%}+lnU7))|)DQftiW`dc zF~)fT9$5BDZ2zWu7uX3$jMhJiUB|w)JQbbQlm?(g^K;AxaC~JZhPmm{b<;fC(`fhV&6J*%)fsq;*{b5+ z#OJVF;QVM{olCGjLV4YqT`$0B-5n}lG2Xw*`qn=_uTiw7`mwUlFp)jQ ziskjA>%d10r*zzmCuQ;B6i+fv4d+G9ljGe7qps#?=y2pbInEQ%hxB7^CnTS$j(bU2_sa5tb1B9P^b+&?(LNEwmv$ZU`q};VPwx|H z^%nDk^YgR&t*U);JA0t@ecua={J3+UI`29|U0)TQ4M#lK?ZIEa=(^I>$6H&?eZz@| z&%7wV?S>9l6E6hvfb+;@R-d542b7=8%PC8kKjZj}PDclrYtH9GoE)0&xj{dV=OsPn z&b2yEU0;2Nx^(Rx_K3nI>oB@Wwke|@03>c8@-{IGW|zrVk&fc0sF z^8!4u_UFEiTKqMKU83{8e9f`teDdV!txE@fj|V@8EuLG)e?7w|W1T@CSO;r>abRq^ zDB=9EO}>;)O}#Hap8v;sUJ=(TOh9MgV~BC4kIT;BWE{Zv^Qd`b3c+SE!JIYVZd;0j)kuE&ol$dNgqtW9c<##b} zgx1a02l(zc78ZQ4n8=&>-|5zyq2GTQv}o7TF6Q*}7O9WWxJmN)83j?g)c!*LU!Go7 zmw9ko)IYgreEs-Np%T9>Sf6t^FB0E<>#il^GtRS#0aiZCJZJJlOa~ihm-|WL!GEg3 zVUKt1_eylm%tHFWI@sR=5e|$q?Ve0hndQL47_6IahEn~J);!cpNN3;!ICuL_|84op zwiLfz>Y5Kj8XThbu}zUq=hK>ftR7_~NzO6w6tWzlvydOgmGm8)Lp6c(GYspz4(lV7 z7wU^p3EvzmD~ml70w`U2wn%^4x{D{jxtm!F9lb>D#6-`!=Tw(detwt!T-;`-GoOHQ z>UnMHGwM9I3adNRdRcT;|C7rB*wc09og=^{3t*U>Q} z^SlFvD;6iVPU5O!eIPF~zKue1uY~5-xvrzynjOAmMd{QwHRi?M!vTB_u9vrf&cFw7K9A4S%5L12 z!V7sE6!Q5ieLtU|Af3*Luk`nis^Sh#Mdxsq!1=w9sH4dcCBluMp4&eQ-+QlL|ORGzD;Yhn*W&Pf?$>XEmTT|B$630L<&}XZM zk>I%l|EwU(qI5n`6wg#vWzl^V`uktN=eht+l8*66bGKCXY}>~hHXdZzJ#+48FP?ma z;`Odc)FlNc`h6|nSzQ+Rh~d?9{m>`-l=$nTIGmRl-j|@5u%~mkQF)Vbdj<3%{dAu- zj33d2{{Dd>uDh8)y&$hTyAYpI0yqcq9Og|=wUj)+ko#BHSlYT*mJgguF`hNmCt^IL zU5C7WcEA18`$Ss3#r$fj->R!m)?K;emNA$9oRrM7j9=~f%7hWUUWKM-8RV=J|K7%` zard@NGNwNlcf@=S3*g9i@v8U!<~*ix=MIIhJgr%^VAnoFn$w@hAC?a|l5pm*=zWaL zv$A90BNjJHW>WY<=M+)>n&7;|@a}Fr(|s;SzYj>p3F$-n?O1%`@$wrv6u%N&_Z0&5 zg1mAtA0eD6X*(A-P12XVt|s@duCcUruPmQmtxu{;ubS$&e|n!(S3PQ~->TXtZeMcc zP8lC&woLqz`7(VOb-hU0RR4AI=Y4!u`mNmZIyVy?O=Wkr+CQJV4)eeFjWSQMWi>I* zpxeWIZ5^&_lRCx~>G_0>PvhloxW{g4wU#%sKm6R=>okS8x0UNA`=RvrfDqpeqR*}7 z9_L@!sO_V0Nj@-^7T1En1$|<1UVsM{;rerhK5Is5ecHqy%t<+NamiVVS6E+@kVli! zS$Gx}N)}b9PkMQaX};ts}$xxA=HV)UVHj zqwlSh4pDwbFdumVoFN0PWbX9nz*w~zHO#MUG(RZ9k&P>*pRew^J(+boB$g-nRreV9 zh~df@1Rk8ySNMH3h_}Xh!C1&H^~m>8cIE+GmWZI(0qU z8@%yEZH=q!>bZP$q3jyopg~@@7(M#)vWC%<+namRpAQx%mfTO<6G+|n$a*bsXuW@X z##n6BeAa$&L4s1bxxM<=ccxF_KdH+i_*Dd(vT;f3H#Y@xLz9tbRLKKjKDZ| zVl6weAv%<9Xg?R~KCqO~L&B5zNB+F+bvGu_Kw_9Zyh8Jpz`n4UDKiBi{0ttVJC#{y*j`Xu` zu2h|yU_Ka!;=5w3OP_h0CUJX4>v=i!wqes)<4>Ij($C|DPyNECFSQiqOY*Ah82E_A zEp3w=rpwVh$vDW1oF~VPOYe2i)S`d4OZr_F(1-LxdF-R==8fyFDNrwSoL5uKM+oQC zydVd!REEMQdHm>jqLg*7ET3PkPkvMTpNX9Oe6}sdQIzS`w{8&q zJ$R9?OyH>x{%L}@v&WSl75|UHA7?7y%)=!%Y@qOFkMi+5rQQ$AY}EvG_hv{w(&{|PwR_Oell!T75>GNFbe7B${|G3Ud2LYCVF|7kK8Np( zDn382_9LC=Vtr8E=)4AW&nsx2b%?5`{N`)MYK94v-UO{$El0gj($Jyb4<`K(K9iaUoa(Z`M+}dTynJ>*GkZ}!1voD;ysweIau+ zhrE7vzx~tuL|VPY{A#M-s@f+n?L7{8TSRb5{&(jL)u3N5K66-O9{DkzZ5_Ge!W#u| z?Ud1Rv8F2Y^FfqX{rWeu-1+(#$BXllD{rjClKN;}QAjCTew-=D^-I4s)12M1(nPj* zu?uw_HB>bkWAcYH6`!@WZS>gAo2ly&xldm7!XX=?)>F8oAB=srtu&PDxk(f^i@*ha zP+s4ErvtcCV=^X9DcR0U89K1Zg@ab?HMy9`jV)~`UZ0#U`p&pklBj@n27Ler>y<5_a~bC2hjEw(mJ8No)6Z83&yCWjkkA8okv8U1 z-VRIKD5>uk_oc+W654N!q3T%)?oNCTKMI^5&>7{U!{NLn@xa^6W#pCQyijiH*h4O3 zFC{UB^`k83ZrMoboHD1MVXUbkx2f&NM{Cop6EzRFd3h>wF6F1oUsZ3=Xel3paSA4< zBsMeDpw0op3t$RulAHoGy;+@Gk1lds==ZHmrZ!T}d}l-LgW^M}Ize7w!I0a z!a@7pW)z$E37GJh{@&H~fo5CkHJijhy>f3>tn&d+#OIAH!Woe8c3=}lJBpu~b-qsr zT}MiHmrCkP<|8z&Z2bVITM{~l%?v6&KSsVt=i!cJn)g=sWR}?VH!^s#g~|)?3X2*T zF1YoK(R1z2)Y%(NoyW|jtb=N+XdwwQMT*EEAR4Y6d&L%W*2(g*YPm- zqHu-ckPdOwb%gXENZ@`oR%n)`G@Bdz)!1W@uK}eq;5u#F+G%LFZtRZC#G~0aoGD&o z7C73p64Lof2I7P8JhU9XjH!8yPvrx7fi3N`u5j!4aa264lNRA-isGh)W@Ij!e^7#p;?{D=221oL z@qHdX8uHqtGy6L5W4}X6^yf>zy)=Efx3MFeg>^3Lg!CbCX4We}IN$1Zk3sv=bwfJ4 zGYdzedNHOI>wGc@@c|r{dk+s7?bYMSePNxPf2Jv&&L}=pP#+Sv){(#JOs(SygnLg? zw^@4V98Ty^@%hPqg>*)7){;09pX58^&yFo$z0K5K8QZ-2{rJKZ0fPsbgc z=Q~q!4uL<4|E>qjllHAmW>+oC@8_6YC&!q#pkAauj8WWL4q4&;(7X`Ttnf=GR&LYi zKj$A?LFF~vLqDOF&02OJ)*1AHeZV%(M>wDZvUGo-db%?<1*l&74J+0e_#m8kZu6@# z`&TH^{UNkZi^bCEjN-+wKagitZC@934($>vK0oKSAe|8(;r_sUseY&`ubPf~Y8lo* zyUN7{jXXvok16*_jwr|5@Wfx;n-;whQ+y>VYrNI!&^P3aAFA0<$)!jUL1 z;DapvT!Q9zQ1~Q|A0JCs_n*ZF^b*VCNBcw!U)pu7!!Ofs|E+x@t=?jOaDIM%zx|v( z@s{ne``oH9rbX}TpQkhrNt`e!smY+CXzF)QP6iiybne=oMgAGw+$+oL48Pl-x?baT zCZ~MDP`@WyY?F+Pg)#l;&yhP$4s*%uP5=G%;*1V&GjmEAG2M~hO{uR>h}Uyb-1e%0 z2eLi$CAgpu-8M;-1QrSGu1;_WSpk z$$j31&D+|lOFy1F9~XV4ktu~UcSz~$kK}U;h(j|2j+UFL|OK2VD z5#BLTyghuy`T!2t1ta@3ZQJh_h4&8EefQtiD~Ut#hdH6TA->Xo-yL{W)}B8iUEO~c zpPK5E%IYHI|Eu-ee`}uz>08^s&$b%rsuyNhNbVbgeaBfl&vAJPxTRmHW}P;AV9&frk|Ly8xgubrTsdoD3#H_OiXuuNse zEc$aD;L-ac()rPIqz}x4)rmtmXy3+AH-UX4IJ+sRUau@F)_KMV+i!e8uTLrG-%Z*} zfA2wBeSjxvalF*^AmfF`pf9YK3`Xa0+N-}iKi}(w;)Tw=oEG4M9sBV0uE)V=MDs`; z`R7?5MFZ+w0}fb(_e2!03u9jIV8kk_A5i>ZP6+4SLQVTWG_G@l-IWuJiktA!4swop zarECm1wY{Rv#hlHpnPtL>XPMz@)F~V@GgqtEp)6{9}*wsQ9|J@!*$QruDD((E}wz? zgm9$gOY-_z;IfNnL2v%s+1qXtFKl1H0qsm z`}XW_^X8>)yfsh~2f8D_w;YUr6^nUEuB&K#ks;?vzN_9f%+UTbn?5AY1AUoqIA}l31ack58Xm2?&DC?_ieK;lRxcr)fe*rKqovm)WnIh{ z`aV9V)7pU^SHr7Z4}{-CkT3AAtR-=cK4pA6hiG2-{KVW0?WwKi$rblzvM!|hOX>;x zlej&GtVm5>T}1hTf4ibFEqxzYCw}#IS>1QX>qM9b>(=brmqn)SSd7Ej9XiABX7#Ca zko!Eajc@z9T5Ic=Ta1}3&rT_fOWxYSg7QN+A1FR(z8&>k2t2?74;YJC#H&@ManU|! zIlP}B-&ql!?WTNIWzUqIc$(JEUMOD&)Cke1Jc)?Wl8%=5si5A8E%zxYEW;>o+C`okJmi#Nz{lbi2v?XkJ45+})_L zxxN`o)tU5P(&bk9v`L>tb=_xOU{IiOgF0VmKAA!G4TZBwFIS~wav>8r<5MlAoASJ| zeAGgvPBs)T#6$dhTO|L=j)9L@9OCl_l@A%W(H!MP&XZ%LPoyZ`6}gJ_sTl7ORgY!s zD^vGMd>@e{P)*~Ss=E-~n(7mw{VO|PQ~mZ&?~}^vF63WR{Z`dJnK^Ko;cBn;3CK34 zo-ZN}Jyz(devEsP+7z-A1@oq zh2}eZj`S1$yxu8nvrUs!6~R0a?nlNW9qD{g5$Qwnc;w{y4F_~a_BnOmK=XIGoA*_| z)vNiwwH4|NIOIO$`0w{=EYX9EgE6W{H&H+E$Gk-SNn8as<3G;fM*&?vGN2E#AF2B! zi3_|)%bV)D)=5p{a(pzW)G7+q)?4~Qw~6vJp7eWK%WwAQW8Ys#ptwd&aW3(0;&ogmvpf z`;EG@*pI3Q%=g-XbT0UU^nrcAMh!tYtBP#09_4k=nxt2nKf<4W?nJyUa&cOyUJ;}2 zSEw`ctFHz8!NPuEkstkf7w!K@RA+=MUN_iJTHL-X{JW&QmzA6|_cGtVoI}6^i+KFb zptwY+8&waCt2KAx>c<1!`y?Ryg~}7nU*+^W?-^Q@dS1K!q9L-Xx8$$F@8>)@qRo$22qzJ=0ffzjg<+UX2EoKc?Qlf;-!2DsAhN8+M!B!?{h{sNkBsWtblQtV7U6Bgy) zR8r5s?*E7bod=CW`oKC^l}5_na4;@~1Abt0hYk2vFXaD*I&X+i#{{8uz!@R;-npae zODZ1Le--<=W4Aw_+T@G!MENFj$iIXm`GYRxyt$5^Uj2IFe`n(4oOkW_^%wtr_|w#t zb4~}9iSk8$^zQ`rEy?I)7Qu7KzM^nity#CnJtUutPCl#ay15?jJfl%mgz+)TZ|Q_1 zjwXF?Q#z3O|L7R_h~Wf(4Ug+PguWh;al2ztUgSJE#`;ltlYZOhEh=ib@v^92#EgjB z?X>B0WtOXF&xBOdOp8e zpNQor?Rri1+dsWeq}5x@ucrE~y85Kg)*%~b>~az9Yveas)Nkg2_X(RnB#ZVh@;gZR z^=}ZJ?R;x5gDm|!L=@-C7|5u$i2gK=#bXMm!JD$(6IY%PFWpaIM0N?&$lhkH%;()0(40@w%R0E zu3G}K^yg`4zJTferkGn*d#^Sc*QN5rev0rv8TbK0|LEVM5@4?2k1 z-Cs0h7VYXNS~oEqv311%CinMwsB7VMEyRnVc%gOm1bcO)Gw4I^5Bnf%fN{G~cxa!` z4Du@wqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= cXCxM+0{I%oI+{8PwF*dpivbEY{3x&k0I}K^fB*mh literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/co_pbe_sto3g_fchk/dm.npy b/horton/meanfield/test/cached/co_pbe_sto3g_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..b3c1eafc82edc1ff5ed772f41925665e785c14a1 GIT binary patch literal 480 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/co_pbe_sto3g_fchk/na.npy b/horton/meanfield/test/cached/co_pbe_sto3g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..3347bbbe118855c2276125f409b89c3bed2c9a5d GIT binary patch literal 880 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-2099c2AVnwwF*$c^@8<^?}yD!2ih&zg@Wrv4ltmBY>PtaiG~OE@A6*M z;(uLyzv!91*m{u<`_Ys!tZIK|aeeDAdzd*^&RHhLTNN?PlY64ooXYogzfXhKwbdy< z_Dguw>Ac@4h@sBBEkNC|k{9 znFpg+>aKs%{6y)%mlE|8pKh=mC>Lpcby`gf!(EbI=X1Sp@;Si585TY;b6_;g9L5>W ziY43q4|FUERNtK{k6~WP>|Wm%?Tz-Z_`(&=F!#XBvGH5@cG^~T4D+<*Y8nHgU)jUl t0i%fx=krrMH@>mJG#6$LI!&&*uylwk{lLN*7CyNAmAL*>nT3tU0RS4Sy)OU& literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/co_pbe_sto3g_fchk/olp.npy b/horton/meanfield/test/cached/co_pbe_sto3g_fchk/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..f8187f2fdc3099b5eda6532aaf113558d2e555bc GIT binary patch literal 880 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-2099c2AVnwwF*$cRlTR||NsB*?WcXUI~8{7ygdUNSaUxm@(-uCO?TJN zs4HJ@*v3Ji6tb`=J5>ulK%Gw0i0aiB>bFw~v+pix`px5Q@OoD%8I`^)V0 zSi5CzMBlPOK!2X;r9w{-~ zqxKAFK*3Tq$?5a4{b<4rM{8KV)G_SauXJRlJ5PGs{$py*g^6Dm+GlWyJgYK1XYbBu z`M)INA%?y+c6X;Vw7$f!=cdrP>TuO}7~<&m!uT~;#e|nS-h->JPO*EOllT_Shp8h( zqnm@S9^Ksku{lONvzqtoh}1L}2RGT@mfdb%#(muWYq!Zgw*GDV(e*R(q?L4XV1|SE zLgOPmFFxC^D~)dIJn`QC%%#QWK6V(}pWEP>s?L9Azq#mvGun#|VVK8vL_})qU4IO5 z@7>u?jWiF~AN@LK)1vtc?4x@(&3BY)+dtXDAo{_f=k|^pn8lC9J;Ml}x!d0Dyq`V` zL;PNP>vl((j~Mo#`wzzV7JB&9cFha8IlGhgw#oi^O0<4l=D@^ZG`hJy^?|L;_6_@Q yyS!Y#K_J6^ZX0ur(B=#KpK{D)h%kQ)cMnXzhetxd|Ce_##Kq@KTqgPRojm|!>BPDK literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/co_pbe_sto3g_fchk/orbs_a_dms.npy b/horton/meanfield/test/cached/co_pbe_sto3g_fchk/orbs_a_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..a16e61c0321e5590b1bd3a8c28b0820d0b2767da GIT binary patch literal 880 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-2099c2AVnwwF*$cRrFT4$?xk2d-bTtmYHE^_cNdYwrs`YIT+%fU+&hOGy4pNx#;f6{4Js*9&(+aI+#9k&4q;z%wI6` zVD!~pAKR_AU$NiyX~~@VhKu&I{|a6HV)a@Kcexyq*~W7G>V8-_!@>t<4vdDGV_!eR zDdx!sdxrgs(^v1ojJMk5+m7h&Uc4U`U%0{=%LC^ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/co_pbe_sto3g_fchk/orbs_a_energies.npy b/horton/meanfield/test/cached/co_pbe_sto3g_fchk/orbs_a_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..6d2eccfff81074cd3c94b7d5c8a553a9126cfe33 GIT binary patch literal 160 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-20EHL3bhIdz_qmgUBQEOMh85OMqNK#p?tvXr|Ig23qS0?+jHW1t4(;-Slhc3jQ+MjDww0iM{RrWACDq;rvI`yaa0K6GN<^TWy literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/co_pbe_sto3g_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/co_pbe_sto3g_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..b8a5694020f4b2d3f38b63ae1a2c6e25a8333eb4 GIT binary patch literal 160 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-20EHL3bhIdz{LOtAMDAaA-a%B0PZdwg#Z8m literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/co_pbe_sto3g_fchk/quads.npy b/horton/meanfield/test/cached/co_pbe_sto3g_fchk/quads.npy new file mode 100644 index 0000000000000000000000000000000000000000..f27db8011db2edf2f05528b977ee76abd049183a GIT binary patch literal 104 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= hXCxM+0{I$dI+{8PwF*dpOD00so&gGAY?+9)`vJ+%7|j3x literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_hfs_321g_fchk/chol.npy b/horton/meanfield/test/cached/h3_hfs_321g_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..255157b9f34e87822735d1de1b397c8fe55b1e03 GIT binary patch literal 5840 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_hfs_321g_fchk/dm.npy b/horton/meanfield/test/cached/h3_hfs_321g_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..e65cc8e9a53ddfcee370e6ca9bb965ef831f72cf GIT binary patch literal 224 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKQE8q?(=D!Fs!B3wFEE#hiBR(&5%##;W^3Vh?!u>*@DD&voh`nsRN0n6-L>qt0sf>f%qW3Aax+I%=txNvp{^9c`)-~_QA}9nGdrM E0K%(7m;e9( literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_hfs_321g_fchk/er.npy b/horton/meanfield/test/cached/h3_hfs_321g_fchk/er.npy new file mode 100644 index 0000000000000000000000000000000000000000..7cd5ddf086bedd9a5d5e3e5c8529d1de1508e22d GIT binary patch literal 10448 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 Y=9BoGYd`Daek2e6;#~ZMi}!;60r!)OQvd(} literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_hfs_321g_fchk/kin.npy b/horton/meanfield/test/cached/h3_hfs_321g_fchk/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..6ccf3ffc5e3bcb6ddda8e5710c33b7cd67b001c7 GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKNQ;Z|n7#Q$OriU0!hJ_n}Mn{+IkDZ^~b^ul~+{L2dJK z`#%#t{^iJCyMNiMa$}A;^Wf^F>>nJKorX|n;+l6z?eHo46;O2t-TSVanQz4~kC1&Z cdtv6m+=a_NnEPP%qPrj6KA1mX?jvL$051Hn#Q*>R literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_hfs_321g_fchk/na.npy b/horton/meanfield/test/cached/h3_hfs_321g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..9f0c61ca4480073035cfc2f6e90ca27264c9b9bd GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKN?6xoftQ)7Y zi+{~~2R9F4VTY_ngg>JW*$tP4(reB_a6V*zX|Ftm^{pV bFneL{hp9vNAIu*x_rdIinFsSoNvJYl2%siO8 VaM_3MK6Lk^+XwRp%zcFH0{~%Kw-o>Y literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..0786abe04d40fd0d55590a3563352027047e97c8 GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKI(d9iULoe#V}!!Cc!(_Q+(}D8dZ>5>*-t1r7 z_SCz6;Ya&z&!kqg%MQGxwqWhPnw3U5v}^Q%=8KbEto@JxrZOg4XqK zE)Vv@%!8?m4=}uaY1$5Z!ReCKu`jm3?Ssj~?1h;JQ}^E6=MK|xgu7t!=?@ziIeRHDD-u;_y^(*h`J7=HhR&6~0!gKpw U@e9s$On7DABeVUISLt_q07-{19smFU literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..f5b5c97041f1c55bfe3369ce31929d457ffcaa68 GIT binary patch literal 128 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= fXCxM+0{I$dI+{8PwF*dpivbKi*rU=A9ySsH0UH;O literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_b_coeffs.npy b/horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_b_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..e1276568ff34091f39a4d224cb10e705dc01f991 GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKObhbG^puzsK#9-Ga8{PP<_5{(0JbseQ}s3q+4OGTnTz zUp7JEdE<;X`+Ku_F4>-cZT}|sh+Zc9M*AeKFx%foFYJ$tUeywIWI8ZuMqJih?+^R0 zh<%v)Ht?f;W9E|Qd^f-C51;hGW7Dgv_6$()Cq@0q8IjBO2KwhS)BRuUhlw|HRi5g; z@p=E8-Mbg~8Qy}c4>}TZAWoLYA)|4F(Y&1;4lwm4(=5s=C72!1+`k`(`|WYKe?JcQ I?}xb`0Iq(QTL1t6 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_b_dms.npy b/horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_b_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..b3d5ca49b1ff566931eed29e9b48555dc3e4d80e GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKJU+zWGJNpM~~&^WOI?>gcqW|G@kqCvStjvGeyrp~ai+ z(dA+4E}oYCbV$C)esbtR{g&YA_TEx~zO4^t!_9%o!_0%J6Pn7utc`V_ecg#{v9b>b l;r7AgVfMnzgQ;t8+P5#e;3(W(FnM(M!R&*XgDy|1`vGUTrHudp literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_b_energies.npy b/horton/meanfield/test/cached/h3_hfs_321g_fchk/orbs_b_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..b97c4c2ce67966a78e4695e2929e7e4febc3eba3 GIT binary patch literal 128 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dI+{8PwF*dpOZtG^UX3fa_n)o#vGBH{hCOrIHlgr?SM0;$gBP2aytKb4 Uy2j2`qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_pbe_321g_fchk/dm.npy b/horton/meanfield/test/cached/h3_pbe_321g_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..08d3496dc202e413e98b729e23a581583b57b251 GIT binary patch literal 224 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKN>b!^Up8Z;RcIgF<$!^V#i6f3obVFwouy65A%iV$YD* zYkS~Ll`Tl@N6GtrAax+IlpUFN@1tYD`apb;UXVJFSa(SX*ennqW**FZn0+wwVCKW@ F0|258QON)R literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_pbe_321g_fchk/er.npy b/horton/meanfield/test/cached/h3_pbe_321g_fchk/er.npy new file mode 100644 index 0000000000000000000000000000000000000000..7cd5ddf086bedd9a5d5e3e5c8529d1de1508e22d GIT binary patch literal 10448 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 Y=9BoGYd`Daek2e6;#~ZMi}!;60r!)OQvd(} literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_pbe_321g_fchk/kin.npy b/horton/meanfield/test/cached/h3_pbe_321g_fchk/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..6ccf3ffc5e3bcb6ddda8e5710c33b7cd67b001c7 GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKNQ;Z|n7#Q$OriU0!hJ_n}Mn{+IkDZ^~b^ul~+{L2dJK z`#%#t{^iJCyMNiMa$}A;^Wf^F>>nJKorX|n;+l6z?eHo46;O2t-TSVanQz4~kC1&Z cdtv6m+=a_NnEPP%qPrj6KA1mX?jvL$051Hn#Q*>R literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_pbe_321g_fchk/na.npy b/horton/meanfield/test/cached/h3_pbe_321g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..9f0c61ca4480073035cfc2f6e90ca27264c9b9bd GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKN?6xoftQ)7Y zi+{~~2R9F4VTY_ngg>JW*$tP4(reB_a6V*zX|Ftm^{pV bFneL{hp9vNAIu*x_rdIinFsSoNvJYl2%siO8 VaM_3MK6Lk^+XwRp%zcFH0{~%Kw-o>Y literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..fdf86b71ba16033c7aefcd1cbbad8fb01b0f9628 GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKQEF?^Y`WU(=CIS%+GwZ zUzY8MK$Gg5{oihH-u=7emHh%wm(Ov>589hFZ+y*E_{?5WD@AgJE7JjQJtafIEpPTS z-?)A7@w1QiDi=>{O#A(P|J^ekSEuD)v1fpSFFr|1)>ALrM;Tt$UKI0mKTO<1dHS=@ zd%x^o_qDXTkoy8${ep?fZkJPd940P%*CAxb?f_GtoXhZqc?F9Dn)~(I`vy@%`@kBXj52tIG$J|juM<;*7g2Xjwx6t%3i z7va61$t193f5zTaCJD9U`(f%tbZrIyMLn?J5ulrEx^qNE&+Scn&gAk)GaX3Uc=Iw_+=u=5 z>y5pBb$qmUtDE&K-ue6fg^3$7UH4tHXMlqB@fS7cf4FS__V!notewyI!^CgL)n90O z`FX!(bK<*GVK?CFZwtI$_WdBY!$UXK3%jpyIKb4Kx-NXUq?y?P&HejvxZfU!`}gB; I|9+VJ0pOvY1^@s6 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_b_dms.npy b/horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_b_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..dec53a1a9708dbe0254b2c9d1c69d83046aeb001 GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKJTdyU6<1vy1J|YGf?wXXvqi`Qyta%_ke}WkeED0E+TUFyx{Xu?Or?|8Z*l+j{v?ST* mAlyEfJj`C0c`$Wll~HG{p)%EXRkT3cK@`=d#4pPU9@NC-0~uN-*fxb UX6%a1oNw$~l1ud!W`4H^0Ovg{6951J literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_b_occs.npy b/horton/meanfield/test/cached/h3_pbe_321g_fchk/orbs_b_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..4a51b934e4aec2697e19e5dfbf197745ceae8944 GIT binary patch literal 128 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= dXCxM+0{I$dI+{8PwF*dpivbKi*h6T-BmmhB7GMAX literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h3_pbe_321g_fchk/quads.npy b/horton/meanfield/test/cached/h3_pbe_321g_fchk/quads.npy new file mode 100644 index 0000000000000000000000000000000000000000..d586d11155048af1978303eb9e194bef92375e4d GIT binary patch literal 104 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= mXCxM+0{I$dI+{8PwF*dpYvN2ZI|d+V6cAT|u_w;lwhsXEr5n=# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/chol.npy b/horton/meanfield/test/cached/h_sto3g_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..a081f9de01ec605b640bcf4f882e73039358b775 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-Itn19siRP<00CT&QzVpMYre4u0BT|x8vpqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= YXCxM+0{I%oI+{8PwF*dpivbA$0IL)gDgXcg literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/dm.npy b/horton/meanfield/test/cached/h_sto3g_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..ee673594c4b0c20495003486fc8b90708fcbab2d GIT binary patch literal 84 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOdD&|nV$14R}1 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/er.npy b/horton/meanfield/test/cached/h_sto3g_fchk/er.npy new file mode 100644 index 0000000000000000000000000000000000000000..458f9e4d482b3608c8d8945db03f83e9fe10b5fc GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-ItoyvsiRP<00dm?vbLm6I{CsL0B;)_D*ylh literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/kin.npy b/horton/meanfield/test/cached/h_sto3g_fchk/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..a4f68d1d5da315356938767f483b0dcf7dbd499d GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= fXCxM+0{I$-ItqrGItsN4aKIJid_7(-=!HE1XEhkN literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/na.npy b/horton/meanfield/test/cached/h_sto3g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..3d0391379d589ec137e95cff293312760091b8b6 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= fXCxM+0{I$-ItqrGItsN4aKM#jGGV*vg3tQ_Xx15} literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/olp.npy b/horton/meanfield/test/cached/h_sto3g_fchk/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..083ecfe99ff2c38f468107dd3765fb8a410c5335 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= fXCxM+0{I$-ItqrGItsN4aKQD-Fya6I|L^SqaON80 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..ca57591ddd17b1fb66aa939a402059c30232a690 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOa?1|RGJS`8L# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_dms.npy b/horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..ca57591ddd17b1fb66aa939a402059c30232a690 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOa?1|RGJS`8L# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_energies.npy b/horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..8e1473e85fa4274fd1942d6e5f3e582bb8bff290 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= dXCxM+0{I$-I+{8PwF*dp%b0(aT-BYs`vGLa87Ke% literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/h_sto3g_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..1e6abfa1a62139af824f1961d5ee78525f85e2fe GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= aXCxM+0{I$-I+{8PwF*dpivbKi*aHArSr%IW literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/orbs_b_coeffs.npy b/horton/meanfield/test/cached/h_sto3g_fchk/orbs_b_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..ca57591ddd17b1fb66aa939a402059c30232a690 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOa?1|RGJS`8L# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/orbs_b_dms.npy b/horton/meanfield/test/cached/h_sto3g_fchk/orbs_b_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..76ac64bd431e8ccc5dc64545e1f33b9fe55dfff1 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= ZXCxM+0{I$-ItqrGItsN4aKOa?1prs>6+Hj| literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/h_sto3g_fchk/orbs_b_energies.npy b/horton/meanfield/test/cached/h_sto3g_fchk/orbs_b_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..9454f6887c7cf1310abcad24757e00b66a24b504 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= eXCxM+0{I$-I+{8PwF*dpYd2T>hE>}x+XDbOdtAq5%8X^Lz4q>We&5Hw?y(4&XES&H zVu?PceYUaIIC?nnSku&5Y$rpOwmQqnowt#<%FW)Lx5n|^x#=nw569omJ=U(`I{voT z(x0fUZur~pvD)h1>cU^rmo${v{R!zAii=c2(-yoy|8;TgYmwi8zDYP5qOq(P<-EA& z_3NuF)CcoRf#SB`Ae!Qry+W)?kK*&~k5MGwdislFH7HzJYW$*rLM#t@niQwY4H#0g zybbABDm5q#s7Eb#E@^OOOR&5P+ z$E{63?yvU|p(8@D`7J4KuGNL0my$mt#YYeJaX63Aa7P8J3rTm-;=8lGIi{DfyceaX zL~$2(?mAMuv>i!GyQzF1(ujsGkUp?`NClP$pBj`NaO3T3le7;vpuCMG=}ARZSRV4( zP(DE~o8q?Yt*mz3a0|<0uBqGc^$uNE?!@XIH|Jr$Yx?5`TwyOV(bv)$9z!%(ISaNK z2NL7fJ^5kyimgOKP>r9almpQ%5OuJQ;>bC1d}r78OGObGsA7hVLb*-?I$r!H{jTW| zY;KwPq~0=$Tbn#sFN;@$f>P9`1j|&T@yp)~B=oOic|`fVM(G`*xT@Pn#@`HYLQhK8 zf4yhJk60e^B~U&=uY=;WW)2Ijjcvg4xL)Yz4l0ok?3c8D^c=0}N5Z{~n#49oH*Au^ z?1$;>Hs8Co>^FOe*s0?<*)Ms-gxZIf`iCwjtRA8X->RAs^gOT!4)&ENvOBJp9!14F z3RPDv4M0j3>9$t4J+Xd44>-+6>#XYLd}LkNcb%ku9(qzoR5*pDV0rNAL+Jsh()8rU z`hM5Z?j^OT(J*YA~;kvSt&we89oawL9kDnXemw zRyiCDD(v({h1^*_^=I6%enAho>iwCI{o2z}M}bM_faWwLsazY8SP+Bd!6)beH*eUi z*LTk3qyF(_Z~Yz5V|mC2K0yz->|;xJ3i5NYJml_e>q48K-BLz;{QIc4<^HSvN|ef` zvn+}~`18b+`>XT*qyNVZeD3@F+0F&du0SfVf~{h5D6aK*CSf1n zvVKv*Ng^;!-DZL3LE==U>X@CpO$5&Oeu{%Rm%q}fZr)pfuHS3Yi{@sa=}}M1?e0Zm zzwgdadTA6lIzz)NAXI>s5yAGazN$n=d4-R1eJ^79yOhsZN)Nd5;8vUbtQ%< zdJWoDBlF+zSGoCl`o$L@)z=cw=R8hC+@i>p28oAJvT}y|GkKqG-+R!9fZ||3+xNwZ zrsOz6Pf=~o{=mb8?k!nk)eIj3eokLCUy*v&J`^YPQ^zkmSfnI%;uyLa8^`})t3OuX z>niC}Z78Y74LZ`2?{&8NP~50t^?C;5Cfxt8)bIt2Us&)*|fOerjPbU_&La%56;|FOYX{YNIGPgVh`2b}zl zfEy#9pCeNDhCS%m9*E^tr;+)##gjfk@8WKfo18BmPdi($|AaRGPIr9U1qK z;&XqHPGuZpeuKeUpW%jl#{7-Q=%%94F>I#yG;mm5evV8gLFb_t$Ok?_5698x^p-v3 zW$G7tV#-6mOnJB$ro6cC6Z(W+ARqV?w;t2nbPjye&qdusUQwT?KL9g()xY`-DE}y?{?~>oLtu=fF4pT+}^1 zuc(~3o`Zgw&g&`n0{1}g6Y_ni&&9f2s|PyE30bSv=FMj?kYWe^E3|lhj}|nlqUW#@8H?$Gz0S9x^Jq@{U`+K9&2he&fm|CEFIy?xy? zL%E4NbYUL3>UVw4-)dVf=#b7cx{~5);ahjs2$vH$Y7U27jr0C>{t|7vM*!5 zw+izkH^tFke%+ z&?o2>At|$W9NiCn{^#C{+fV16$T7!4oV)(KKpvyVi;~X^s*EN?^$ppzy$E~%ByX2T zu3MqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= YXCxM+0{I%oI+{8PwF*dpivbA$0IL)gDgXcg literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_sp_orbital_fchk/dm.npy b/horton/meanfield/test/cached/he_sp_orbital_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..aa340fe873990e46ae414833d18e377649109860 GIT binary patch literal 336 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 G(tiL6y)`2M literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_sp_orbital_fchk/kin.npy b/horton/meanfield/test/cached/he_sp_orbital_fchk/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..7165c7423c37e89a00512588205d6e04bece3d5f GIT binary patch literal 592 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I#iItmt=ItsN4aKLq^>u>7!)Fg+)%LT5ehnPBS&*s{(H^>|OX&v~(UcvV9o}l9MIQ7Ha39}ETuaU8ZU-j1)`ArIIYp|~{aObeY;P1S_7*;nxUJFotI*&5 z0(y^kbv8fS&wvBK^u_fBWglzTI8f4f{f4@l)Pd(Si^`3x*$!0ZakkCB^bx0in0+vP zxwflzA9EBx@GPo2Oh}0P!1OCKH<>m4z^NbRPMCc#eTq%ZiKp(dAMnieId)?6ADsGO l{)4#_W*Id~DwR zo@H;ddBaOfgD>{tZI>HbgxA;?s{Ai;sac0pKVQ1w%o}IB?fJb#48vo7?0SCPw#l^17)1Ucs|3j@+H{;BH+25G@Y63^xWBbB|ufH-F z-?tBAx|ZR%@H0;RDNjB*Jecv%KFyzp_xZ;+`?E_L4ls0I-akeC#o9gjH|^)d@0I`P y_1zwa_ZhkpFR(AT@qGWRBil}2`g6&ispiX_-;BF(sz){F1Ci=bbulo|ULOE>6M&!q literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_sp_orbital_fchk/orbs_a_dms.npy b/horton/meanfield/test/cached/he_sp_orbital_fchk/orbs_a_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..9e788556ef4f846b5e52f367eb0771a8af2c1766 GIT binary patch literal 592 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I#iItmt=ItsN4aKN?dotc+}1fRXpCyHsf>G9uj(PT5 z`XvHxtje%wzyV?_mu`LBqdZU6Fk^I?y`X*l)6?1Sms z=vl6^DpUB|{l(lHJI)EevhVf${p|tw4-8uUDC6a~XGI(m UDqn|BonqyXYn|KMu{YHL08TtMkN^Mx literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_sp_orbital_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/he_sp_orbital_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..7e62f1c8b879ad37265d0c26a21cb7a7ef23cf55 GIT binary patch literal 144 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= dXCxM+0{I#iI+{8PwF*dpivbKi*h6U2NdQ057GeMZ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_sp_orbital_fchk/quads.npy b/horton/meanfield/test/cached/he_sp_orbital_fchk/quads.npy new file mode 100644 index 0000000000000000000000000000000000000000..ac83be3fecc8d2336b7d8664f560ece4c35c9efe GIT binary patch literal 104 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= YXCxM+0{I$dI+{8PwF*dpivb4!0I8f6EdT%j literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_spdf_orbital_fchk/chol.npy b/horton/meanfield/test/cached/he_spdf_orbital_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..9ac339c09f4692af7fa765abe1963aafc604e0af GIT binary patch literal 368080 zcmeHQ2e?(W(xr)jND-teAiaYiMT#h(f;5p1B1O6aQk0HVsnUxmMUXBX=^dr1AV`-g z3MfrML_vlBe`F{7-L;vQ?40a!@xJeSUrhF7W@XJ}GCBL)!`P~|s=Qn;cB~g-^~lkz zd8gMq<|vUVN2wOYbL7pGqec6UojW#Z*QkBRX3hUI{z8*CJ2n6R@lLIpyw&{w`#GO{ zvPj-cg$n-X|GDyJ>Xj)|rbHR@Pdzbq`jIlRi2wcGG;z^7^$s|mw|iqi{CE5A730_^ z)M*b-e~&&a)!y3a$y)#Y<#C68)%jdb z)&9`mn#@g=_OP&*@A|5Y4T|j(eXb8%zi}cij+=@vjbb%P&%;GAPUUypb@XTq5~ z#W?o)e81YXdFq~w-{XwHu9P{Jz1{9pg3qbB$9yrh@HWwRyKb-K zF9A-|c69kezK~DTIH|nq*3S1$9*&)?`2~lc=UjS!(S(wAe#XA49o4)l)3>HYk=0USMaf`6E;n=^YOG+spqbG{!7RDaGu{d5f|b%g=a4Kk*~YUh~yh9e)fal1@UmX zpj*VLipOjIkS|@F{9IOD7bS=BL&k|5eweoxEpLg_pk(aX`((dV-RZjU#WA zJmO44;Pe|8;y|3#di?e?`jz8Me(uiLba}Ru{$BdkrO(f$TH<(qBhmgs4`$jW#&Z=} z@OJE#8$_R4x9<3*j^ExWuq$%?_1esyFsAKv2hN959{jFW`mJKT&o4(4r~m9T(O1Qt zaL>GU8Ok4YJrDIG9(>OGX|KH)yUNZ(!d}I*N%Gt%vqSW`9Jc+|JXq!LpKbr)bJe~o zPl&5=`xTpy?fRk&6<^%`q^DXQ`C;Ryj`cJslJ2*c^Q{!)&s<5lsP4^qqR;31)yAD$ zW98q|?fbZ2cHP=pxNKyS{||ftyv!bvBGx~9D1%bPM!1n>K}>mGACZxFsA25(O1Q93Mb;B?4N}7 zlv2c<;+rEqpB~{pk0K6Lo)A~*KB;$Xf8{_Kj3d;4ZbrIoCkxJS_+d?~VZRnjF-DBf zouBaOyhE0WKI-wh|7hR6Kka|ac~A1%u3P)`j<0sEKZ z!uBtZ`IO~VD(;c50n;{rl)30J&-_m1Rpd+7&)cotYd@Bq?6`k4Id-=GrF=sL{{H?Tji$+Je2(NfV=dm1S4LHy;wR=HLp^3`FNHdokrA}Ab)R& zxXM18V`S@!_IYlKH{^rkd=L0UJX|j5w%wffF2sM%eO+(LpH$oA5+v7Vsx$;Od4N*?zS?hiiCZ(PV%Z$-cJ`itY%ZA(L*p!A^J zz~V($9DiK>`yvPbUOc&eg3Z#rN!d3w{#u;43zGj%-#*}D_q~gBQrAYts}pW;5^AoM*bPTfdmf zmsqd!^lLf&quVY>PM`%ROgxUx2hkJXDUvR2h)Az zOI5$Ac%$M5;|uvx#p$)2YJ4FMQ~8+6tC)XP^ETpi+n3cpZuJE%Zz_M8s`pj*9p*DC z-u%XeI1p!~{tjEc8rC{Bthi+U_qv{zE>sw@`9e&ro%c-?$J5;-uE&)wphbW$N6f;tO$M-zz@c>NSN6&uzCjxIEUSd>mV> zSE)MJRQ;eD=Xg(3z3=&r6LBGK&bQxwML(jSk0hV_&!@ATe~-=amg_MzU6XRt9PhJh zG{5@Eg(p82;{#Vc`qzpnLqwm?H`QLN_;cP#yXHr%|J>*V$2RYt=+LvN{^sP5uCm{k z4=;7<`o|@le9+hvALa6I@ibL zd7H6En>h(r%H_B`)vEG@xJn#+yUdH5dX%B!i`(1s`|%Hx#&^bN$xd^B`u&N8V%_t% zO)Pt>=P=Rd^Zjaj)$ZM{>rwshHTZ?I%z>***G-w}8&8-gaGmH!{=8%CMu#fxv;XdA zQ{lH-qW;pcE8_M^D4JXwcR#WpVnuK{O@E3W~!O0 zPQrD9_jmh$ec;eG=l8?Vj%r@TdDu_9>H8<1t?WF%Q4Vqa^T+(X$q(CqZ)1wLdEiHm zqidFVIVzRd-IB(@7bdq}(EKs@gT>&sjv=qyN5s;NerL;!Jgo6YB}p^`YDx zh= z^%u2X)p5)d)I8*i<@qJ+%VgX=YkLklKh0}i_@x6M*ngMJ^_On_LGI%#`-(WJ@$ir? zjS|s%_&nV<>D%9IZ9U8V@13B%Behy>%NlpQz|EgGyppZ;u@nQu_`0(jM|aZrJBEwT z=l^QMAESgGuHS8oc&Pc0p1V`AL9@2PUcPSzygR1RIMJu(J<~4PU-Q~UexFn232{wo zU2;VCzD!=0SE;y1zVRJA4|plDAu#olPMYxmg2^GLKheEM(NqOt?+^=&)Rix)*p`dd8Uo? z^AEpq{njHYUxQnBTQXy|vtGh=@%jtL-S*#yJVDJb`s2O%I-D)xomwSqUU7bcXKoib z)#`0WJY<>iUdvHU?a$rcUX?ic!ZNfT)a$nY<(+Kt7GECdz~NTU<<%?WwQgC%p(pOi z{5@k$>LbQq*qOP&>T||+xLy{{@%Le(N*$u z`RErfrrKI4^81`BPl)TM{uc&cSv{c)6<>V4wT5K9PQmq}9O z|LAZ{yU*qPYMU4Qs$1Qrk>5ML#{1o4+gg>oGt$AQS9UQ^pdIuhf1YFT2j|Wmnk;ax z&J(ZdT8d8*`gIY`?GO`c1V|UNxov z;X5_bB->Cy#6$j@UGfiZm_zhc?WpEenZBJLU3zug+y+wn6}KgNJ>AoGeO0SPp)wst z+n=LSc2x5!HJ^`Hm{qOrh>RtqIAyp@@zx-2%_x54IIrXwHEzzqU7`+^;oSV6^_PtEizA1lFac_z*tS400hjPrHYlJ`XIq$Rmv85F6U%h#0&D!?z`UUF=KHqJt z%3Ha*)3%%|Y~SNQnY_5!{t3=F@EaHMwfcJJqUF}g@14B%l4%8`?`2c&kHLq?R7q!rc+&ar0H9pXhF!B4U1I-ESEZ}Nrd6Bi{JwzSxDW^8#C3Sx-}X}d zd8t2f?_X2r_MOD{jxWT8eXn^@)o%(Hp4+PSQLZ8p=O|Zq+lFDQ+u5HV4!@G7bi-|} z9d#|%IjBdquNvpG0N2mUzPYnUR8lQ2hTmO&+GPU&H7pO9FpP3I*!Zd zf%^~ED_l;s#eA0BF|Ku@b!Dv zYJPrTD&DBL!T3VHJmbTqV%_{=s$Qk?D&}9+ysf%?S)HS*CsH|6b+l@}N54_~z!Wa( z+{S!G;fR#qNavf%|A-@~x=I%J6fPW}1@%6zFQ|SAkMBpS>q5R%=lLxc7QS%ZpM)g7 zsQiU^WqsB23(v!siMmuZ-^*}ObsN@!d7<8y>GkWmZvDdX;W@;|-L}XVH6K4ORsB5J z)H(Ex;(ZeD9e6L{>oaw3tHu|;-@-bZ$7QlMT}!gu{3$Bw6NcY zbN$$69`>1{i}Vmq&PUvpxQK7 z_O5xdsq^nOBE@r~-yvS&^>~I*z)2Y0`9ot7Vb8C#!83=J=itRX-qpSzk52dcRYp z;PQO^09OwOF06B8_T4@|1%4a|xZLXVN`5r>QPqwqzg{Ks7sfq{FQ*?>@p>gk#l0ze zvU<#v9hn|e^}g!4^ab2IyxyI>w@t8^Nzt9w53`Mg!VcVNAR_YkfRTd&SXw8Q&Yzv8`)%X!@*U#j*@#T!-MV|*cB zsyMxt)4d;gU9aMO67QQ{@iHYO??p_lZ?k57kM=7VdQUR~?mcLS_ou=8oUHKPhRgYl zD;~Vh$qVmsI4<4x-H_F*ms^J8eFE|sR$Pb^`+s=+-b?}17i8O%fpwSAw+U$Xh%1FjvVuBNNioc^8J$IA~&zPVtJGN`xw`OQ!Fe!GhpPqnChw-c{- z7JZbDwExqsH7{IjIw)fO>odQ-|BW}CID372IbFFp_P@7O;moFm%i7s}Rs6%+54{rq zHT&NYQJsf!hzFnZew}@v&QCkKx!@)9*&ph*T<84$0hj0PwH%KOYI3Hpn8(N6wyHcK zu8Yt1s<@Rqr34{_8~f?>=VOHv3HeA9jiFyWEa_dRz7#pGf_n znpY`&e0*cOCR2-kVgF7(AIDaP%M@=l!H*n=<#*RS@%etWgW~SZxpw{rss9j>-HXbUO|F zsEWswU*9Wt@BD>vPx(<5uUB$Z+?%o|tH(^)k?Ap2@2j3mpToVw)P9w%6Q7^etnW?n zMb#I`kEwGC*B{h91aYYLU-7uUm+eRDe$*H4Lt&}^Qvohjp1qdy+K;C2hsBRno^ZQP z)pHi_9aJ6U*1lVL-TGej9FpOo_`-UX$=UZMnO=O3`5vFE_7N8~5B-UCHJ_(@KJxjz zRlRp0-vbrvS5xPssvog_#d{rJx7RK5rE1SqyixT%#uxIXiqmVkiHh-sI84>6$P>4N z_es2Oayip&jgY(-F}1Elz07=mAJ@=(nul)O`+WmcP;v_n|@XK5h}b?~<*{ujjKuip#I{ zQ+8DIDm9;vH)Zc>*7H8qu7md>?-QT@`i*N4eBRnZ@%;j|&Pd0rD!y+(JEqQU)XV#b ztCwaS$n|;Ejx>Y|&uv}2Gl}<+sE_R<``^)Kedl`=taDJ0Y9IF_HE-@)yoWKVE_NV5@62`}_N0&cBD?dYV44J5{w0 zvpe3`R>|{c_ecNhd--*n6;9h^cYE=kkIy&NRw&gx*_#QoM67?zrh_H+H>%`V&)?(P zZ+~D(EivAp$by$LzFSiCRo5|~*TF?wCk&1lC*q;(@4b_vK+c=}g}p6DhL(Dx=XlYl z=B?kIAbWzY&cExS@Bk%tW>lN6<^%mxsN-xfB!}mhaYk`pL;gm!t!E# z-7o2Sy|^#4==1r0wXgN*S$9y}MuFK^UFVNA=a#(qbSd9(VxB;p=tutigURU<{gioF z8Q!0pbZ5pYMdg3j#O3{J6DB@%c+F2U1Wwa-WqFl~d*o~Nq(fI~bgt|fPAadu<>RZl zf8R;@*;YqApR>>>#|lkpE8;ds!Y^Cx9pe0+mCT-MUX|&Ybm_rE@kaC!cx3YYIa}W{ zQP1#kY*q6r&cptTqh8K=v`}j)P8lv!ynS0BsvkLCX8&8kiwqB+7hPIY{-omG6kk|R z=<-|epIh%{O!BqxC#A>oyV&oSnzy`~w5R;{p|PHz^vlLodCRx)-Sj^-S|{?Sh1;<{ zzi}a74A&V4F64pNUpVfzZ}BJmr#heWx9g{@6TY7Mj^GvNpD*5i*wCWRzxynHwc$6_ zdfI;<+NVwKPjYrFOX@+rZu?yZcUg0yMdbCzA2*9M+q>1S*Ex>93#KXt2Epg_P&t6}W6Do==O@`pXa<( zB3=)->$ZL2#IPf>Z*t$*h2X&QU(=Vu(} zS=zTN_uA0Xu1h|zJ9_^EUp~9Zt$x+KD$^T3cIycRD%$l3CC}Dl*VU99j;rQXoQM53 zXUmaxEPLQf-ede^1?``&84pEfKXbCl z3HtugWkkgxPYiY5KiZZpmA2uDa^l?mdT8+p=la?A5x47*$?xm&Nb+n8?RrxtPd#7K zp?=?<|Mk9r%Vj*jYkHooPm1-_ed?o>C;sa`!sTRb-`ywjUfxqj=#j}&&k+wLmn>by zRE1y2DeU#UQtL#rJ@WfUqmqkO#+eiOJxP@(#I7hiAs*9M&UwV3@m zI3G{b>cLwhUU*8ZJ4eU4mv-liJU+O7x9x)G9_n(awOuc}o$r@?z1qDy)Ia0jJqhy! zt`q&ppFeeF^st+`%LxCzyXs7@V)Mgy|LAtP_0)NHyt{wM@+uYg$XC|Kyp2yPuX2B? zwx=H}oUNkM&rg}M?SHh zz~`!c#N%?FWB=oPtS9ifYF`&8rQdH{y7+nhMXf`1oY}YY8#RyZ@2`bl**y3A2=)KA z?pEX7mwJdg0iQ>=e%ZfYTD&Wh{T@UYf98!NnjKEnJz`!C|McGaLCptC^)$$J^?1`J z_IsT>>2}54u+jN@n||X;|I>x?lWKJk_-p<3K%5Crn)~xlZQBKyU@)yoSKT^1G9@WpfJ{-m1nIm*=gidX>tn)PCglBW?4B zF6j1+2tOakb4YhR$QPvt<)$ju(WcI!R}}eDtqV<^+p6(Z7Vc?O{9>I$`9n62`;p5t zyK}|EF+aZtJhta`=?jrjK;} z{ukHTa#x4iuMO%Hv7Y09ytE-+xqebT+kWeH=)s=Zg#qg% z9!n{3b-DIlj$6Iu>p?!Le&O}8-v6bAIenBJ%eAAd39pp+Gv|#SiyfcuyVa+f zS7my?{AFC4TR+IZkC9~j_Dp{km?Us-c(!?op|{65;yM^y-2|>bn!KInV%IqiTrwU^ zJx88Y^_n`jRsFf)be__uYkU?MPZTe!4B^6ao3bYxXZ{=_;){}Ja`VO!1YGxYr;*jbinVav#!NFV1Td(mD@u@_u@c>wejOr1+`|_qH>+qSn(Kzu#?3 zz~#4n%AVJLr0lvK4~rkEJmGdd$?n$e^Q865YN+Sgyl&EZ#w{M1{4&k@PxTy<+5eij z4_z{RufTjS!$mz;#f5P|`B(RRM0~1#WH{vYHR|{3d_+6E&u~r>`vLo0&g)i}FH`Zh z4DtkDFT-W$nV|ULc&Jtvm#KP{*>~nu9M{E3t$S=p?j2Lp5^$=UVaI-k&1pR(uGc=v5L^S`j% z$%|L^boB;>lk%h6bqw#Fzr&EfP6@yB`SnMhyH%rr9pBjJa-&AX=j#b4&@ufPS%c$sHV7b*_Z>&+Gjx+aI_O`1)|)gk^tle7yDA-?BQIItOuFH{bJhs&8w)#>wctp)oXmHAM+PJkF<|fQ+FS9Tj~%~{@*sR(K3ef}aI|B}k6*z14z$Djv*3M6 zf5rDAruvwIdn_&=RC`|Y{gJ8sbrRlZ za2}Aanu_l^sC>`$Qu`78Na5moylz$Zqt`fO`c?O%OpoewJhyQk=2iaue&3ILow8O| z=TPU6?tYZv(S45RkgguD=ixczwLMk+Va0{`@!ZDee)UI;+P)yutM1>kBfcAJ+Prph zvHkuYpY#4BY1T}S-{1b8QsNIk|M;7yhq->w-@k6&T|*L%bv=*c@VmV;a{if$Nxl2t zn9Pr3)6dS`{V%6~;$0iod37%Pca~~D-0ts7ai{slD}~D|{~Vh6#>q!g+24mN`Ngss z>0hkx+j{xBp6N2Z%41Ks|6Y;TabM!Ci^m7nSSKA_UBBx2i25<^RsD#1O!vL! zOBb(hUe&dyJ1^3_s%uww9_BAyJ=8p`3sDaD0e_D9KCJmmHQ)1fxou^2G*#zN=c8Nu zs`BFv-8YgF_lDSOquxVO!F_|mDZ^EtsEemUU7Y~xY092g<0GQUy(so5Z|_4Czmy*- zd1^dv^Wi__s5ss6{$ml;S#>n)DN}xYS+Ra+>**lY^DNv0C>~7tv8ZA_jJV!`x*GQ* zgMDbpD6z-EUy?#9}t9idPmA~>3_b%jX65Q7)eyDuU<*EIMexz`5Jzlq}`_XG0 zGX1LiQKm=rIiA}%5A!NM=Y5PXJ|1+dyB}3?%jz8J974WS_oFH*Zt_a1nDJ*s#wK^_JMRNu?^8V~m%jvMQ3Q}qScZ>lv_ z$ExC?_)?wEAZ3Xv9YChJ#wH5E3rs7`Jk62ey=YXj^LB%=pi1&htiuV%KL&ZJHneNNZ zAu3N`e5vwf8ox}RYJAD`MEV@_SETy9njdNY@(Nc_e#H6<*N5jLe~x(-^8}X*y2ZR| z8jq}ArSb-zL%Mm@^mi7{-E^ZIK>yr`PEn5kAC6dcEXB_ zx@*7*KrmpK0ZHe{^Yo*dV)XqyY2qy zvF-$>ycFe(TJ4@p_2${+;D$#X4D+ZO#s&1Z42RK&rK^s}=+6mP0n51(ghKO$dTzpPz+ zJ6V#4l5KF{!g;3l zeCpzn&3nqwy+al^97k-pXUOs~pNH*d9@p_`kN0JKHH12z&%^q`RK3mhn`$p5@%KJQ z@#S_s)VYm%aG(A9Thx09m-jlpra;}<73zJCBj`5La~$JdcRe+r9;WnQ-c+sAOvSyb zA64rPQ+a}lbL0`vC)It0dV=c9&LL_&7+FSR(f9cwl%?rwp zSbrf-JRkXU%&V9uxLnY!YF^dFDXUkhyn*Ksm4|e3MYnlH4Bb28z}ss` zUPOlL8u7XOYf$&6AU@~k_`Ggc26R7iyROSV-#0iu%8&fHYWwBs0h9iC^GoqLH=kD% z>eXMLSNq(T&*!ZvKTd=D2G@`6ad>}o`C8QX5Gc?4ru?`>@jVCPVz@^OKj41kINi3Z zi1!xEp8bAf5OI%mYtOX&l%jg?w@l@)y;<-5UJv=gxTAQW@;#TQ_9Oa{!o~G?-Ky?K zuW`uqtL{gc9@Xb~ZsR=6tNi)>z90EIWv#5vq0S-Q{V2nu`&>02=;}8$56>Y}dLz{n zR$RC)=4bod#^-+Z$LwAI{pTAXsa(!ME_VN^7l=$iK z?~1;v{nD+{5BMUnci(4H#i1(Krgo_%7pgeF|D-x!CMWY_?Hm0wK7Dz#gXh6jSCyaJ z=ru9Ew|B9ZYCP?fliAmOPT_K^ullA1FPxh%|Nhm9ibHa*NNoR}Y@H{j)=GV4ider} zySnmS{y2AP&@TCYLH%CG{rnY^>W*G&|4wt7y+1D5b!)vgKNw%Q9@RejjhcsX!1{gH zqr9p8hLXqwIXdxaIs|-0S+0>oe7Q z&6h4t-Mp%6Pj_CVc~#eLSm$9~h&XW{@aNRN;m`jqt*nlw>Kr^D{mS}uH(@j@5}fa33WW5cL3`7`ouke%Lmmy;q!ft;>+#&Yu&wf$m=5} zXW#d`!aaoBH5FgX-aYO^8RNF8*JrJGU+_HC`y5BmZF0@~5yy>j&&S=is{W02msk6J zSa!vF+f>}E`Z0szea=*#pyC|;PzCPcWc=bp= zX5`Z$f5|5VBN1u-@(OiOe#H6<*T?pOeLjlkkXJEJ2)Tg&Lp87J!j#pkRNlaID5(6X zyKd9-WOcNvJu04G$QSkf#$3gFh71=~&vdR5_49jE=e8;jC|9DUx9>U7o^Ib%-R0Ik z7wK{4>Z?Y5kFtzXlJx@do&f@^Plti`BI=N@zDS^awPMxB@0 zzn6o3J|9~du0*L?yp;dKa}IlNZmBkT(XKvX9Q$a;>;BXf<2UV2@xH+0wLM+^RRh9F z`O)n+!l}_TBGCuW_M%zj4aWY0AGij`4--3aYQWA64klg~$>uS+{zC3SqHZ-6UlcBDT-1e+Dc&<=>ofg)oM!#Z zabVo@aknkrbv(u^^W!Aq-h<=G;J!qy z$J995*VVgP@g9-@?j3BNGwv@zuug6vWsEb2(K2khm z+@pVV@kBb$Yrb^x>E=~kd%E*1e@pkHu71<=yxz}P7b1S#2mCqio3QK;j*quq`&(8= zGyBdu2gfa((I#(mez86E^1=rv7Wmlp_YY8yYX99cgI2YA+4=8`sm?bo7dAY6ePPAL z@tJBfj4GS8M%7Oujz3d;J*J6g&-@?$sqv|E9e(3lkvCS^iWRzuyp*fJ#oP1$SrIY6 zru?m{#}scL4E${6@bdECi3=-FIeqq@DqpI8j8sl{KSpX-Hb1PmWVpS4E~_V0^S$43 zugXi<@&x94)pf+kF$TisPwp40p5V{#m$t~jxDPBS>i*w%)?NSRORpu`blLsynd;h; z%?leIjyJ5hI6hNtzDDowskU`_#PzW$zEttV{v>Cn_kJECJ{M#C)}rp``~-umwZO%3 z1l1x>syIyXHX#1PGhbTZ{JRrfT&nm@$uXSWeDf#8m#Ou*)uXx}-Rg~0KCHN8>+(A8 zW%UHb8{+ai?q$4%^*Q4yJo%pUg#P5?F|8T{mR}w9gxYLU>(#vQ#e(5LR?uaKgi-{Nv4g@#M-r5_=T@$)1wD+#d^J;Q#))|XaiSmj^ZmdlCCBB1YPSGR(>P@NgNl3P%WIsNhfMP@JO0#E z8_%o}_oDXkQYJm{+;q`bwWpd_RrR@*Q^l>CSKZpDzN(*fdG5GxLWV-)7dYy_Pfi!_kn)wr zVtmY*sC~EVkjX#vOQkqp?%p8m$>gc$=@TaTKG)`X4n3uJy}x(bwNYXm`;OUoDf?==PR~^nxS!dWcj4tqFN!{8_l?H>;zV2=Hx*wT_pWL~Zf_m6 z*|DDAhrU#LM7yzK9Q%B}U+v0oera$poBVgF{K7-oDd96t%oB)<@>{hgE8`YV&`|hy z=(28c_SP>a`lu(Ue(^q0ahk><%c~TB$XD;K-r}V4s#`u5#m$}S)t~k_?iE}6O-uHC z{vEFC8MLpOS8<-HK3m@+$NEse-#8H$_JhWQ{6x3DDgMweoCj*0KUZz}xvVNr$ys<@ z?^o4%SWi$mWaFlI<95P|i{s<1-+os0E62y%erf*cv>-!G$GQJUsb6dyl4pbGm6EE5}rTedP+>d9Sz5T|X$nSHiJRz<(9?HEx z`KEbgsQ9AR%g1Xpsr6#~#YM!rR~5d}_k3>qKEmbvYKPu@cSZSfFAF?=*>!8@&&p@Z zHrVXlK1Dp3C-6D?kw3ro&Ea_2K6zE}nR@w!Bj?@>&c7TNw#^eae!hMd@9v$lyh_DA z^3`olvl0#OagWFK==Q0+>Q-Ox;yrGq{duFKZeinl#5g4v(u|i|o$($Kt1c|FP0ayKevc$KADNS8~e9*3s@<+Ft4RMqbw= z9?EXsR+}rw-e|wi=>Y4X=6(F889r5cLR{x-Fh5Z7Md9Y-eg96LH~)X#H@f~aX zQ##_5%X{5Ee=A+t=Qr8=!E1ZE`mY|jzPr+r{J!yoc>-~xANlji?=CESYoz_&s~q^7 z%LUy&=&|2rd6kNLzxkr_s$2gQ&9L&zZ|`ycz;V`JB&}o7zG_~@d8YanZgC%>^s44n zYQEcX#D#rRyrEtSr>Yz^KWyV(`_mL(SWoEk$nZGtNiuz^^RS+f>7|~V;*IO~8<&OO zbspsP7su^&Yl`Q-D>60z=f}mq)h`q;w;!(7dB>gQ5#zWu#d8{5j@(KJK>F#YN52Js;iT=JFH{{+w#PIv*)}x;QC)y5qVy%*I<6=|0fKsmqJ% zJcetI6hG=SRj)GpcAn*SkT2Gs=*UA{-fb(ZbKL6Fl{ZyKtLA(3+b?hr;p;Gki#oS4 zUr{(Xo}gN<@_$hG4q4n&^*z?}@s~%f_k;2e+AZht{Rr(*{jk){6h1y47QQ$h-i9T< zsQkronr^A{5bdbudz^=TX3tsQ-&<~?>pB7TgsqR~kl*;Q&Y|pkbq-PXaNLSZhyP8T z+f2VazEt_bItSOI+PBv2s5>pZVq6uMs$ElZ443=*-mG7ppA&?YFXWx!l;7`go^HQO zNZyC&;>UT9YrbDVJ$DSfpZS%z@1VWE;5|-t;{A-@xXQ!(lJth(i~I$j<0CJA_X~xj zp2u~E6&K>fepBN84a({EW%-MGAJYnO;eAsVkLh_~#ihH>KiGQ?M_uPupK4x}>1BAF z^#aaAIqY-!aNv^HwH$9)T2tq?srU+t7lz+`{fv0=+{WjseTz?V@1W)}IXmvCd06LA z`efrwzv{kq|2e*?ItO`?txNWtstaZF@VPtw?Dr+sdZh8d?R~sD{WlX<_jY_Qqrtfz z*>|3ON{k=)?A~%*Po(Y8O5aQ#wSR=Lr>n1ImN-Qp{UZ4$oS*Ec*Xmq5-9+f`di|g3 z)pk0+XN2>xpDAUff!QuS=g^OGvOeOWvvgRrQ#m>V*BW%a^82# zE0tH>>Y?O+d46ZPw%ZShdk6NZc{r|`S8<--ebv0`7cQ@Pv+}&~uV3qOYeyHSDSxWQ zy|v$6^NIC@TYlWiTYQSV#QGbhxUrsaYd2DP#Le{ujf>-uwY>h4$;qCp#u@t6;!o=5 zN#$=3dbxcMM_pHR{FSegZL{mGTd6Z8f3{xabvL!%9*I&)ggC+k<?0$_iFhcx-@NwKm$YM*L=(qXczs+pEG~j_44XP!#5pE-BcRa ze7;}pt!uAL+m*$cA5Gbpzo_S?$F~%%uxQ6c`|~5q&yGBRc4wp- zRr1LnYB=iDf6BEPl=^G?+^t$FY9IAP+CN)0Wu3`iwsqiet9Mq>+X>z}|EQymY4mKR ztlySDEbbdmf0s2%U)4^XhBu3q$~xSkUv)m0Lp*#O+l%|pf7vnCBZ8OnDVldb^S*tL zLV4aFSH}!aRh|&nylX$+#ZAQ*#~EGP=az5pmtnPienuDEUgN|(p=yuuY2Q0*onN>y z!PEAAQ&o@Ga>d)l8M%GFclS=+yo!8T@hQ#sx_nW2RaYO*WBBdQMXkQ;^{D1mw6EJo zoVX53uWDYU=DQu2;WEV=^1*SkaeKeZ@bG!jrS;mMruf2oLYH64&oX^h97yjiSWn3G zQqN8C#`On{i>*gqhw%D~N#gy$-WaKuCGzA+x~(D zx00ppJ|$utUv(TgE?)OSqJF1v?5N#6!&_I|3wwXmivQP3nTLozHP7_;_3?YUoSbLh z`&9Lt;%nFGIBDj-m&w5w@>6H+pO0=$JJ~ot1$s}bKB3VJ*L8;~Pp0K^ls?<`_dSun zx1(^$_9MmDv>#r*^+b|B!apSzj@|RsiBCnJvgh^qA;9IeJyrc)`%x8#OfD>br1FFe zzp3Xe?)!=J&Xiu69&5k3wySy$so7uVu#b6w^__Au{roxRdp_>AMO@T;CO5{hE|k|j zA5o8LpW*6PN>!fAnK~a;{iw3kG!W zki|WPt0dI(ABVKAuHy0iNak1m9QoqoVQa&}7xJ$?j^eTao%5s>gVl-?n$MI`wrsX3-_s`aBt%Be&gB=_o@DHkK(v=+nph)yEy** zA*ts%9^Qr(7sp4nPkDUrl;y9LM0_z^%fvbH9Nagl_4qwrAf&kb<^k=g=2e`BeHI7K z`;JVG&2yg9!QgU!9*p??>RbDLy<2;x&TY4L?^k&|xBXrxwLh@V(Z%I%-`e*kHqZI_ z1L81U=b(PSLeyufkA7r*o6kt?#NRlt`HLC*2mZZ{NY}yVFW5aL{)c-b|DO4r zCl9=n;;%sw^YZ$e>+5E#J5;J?cZqc~vL(x~iLWD5`@^$l{*XxY`MBS>5J$6CQE_ry zy6xnpkDQtK%Ooj3y87MDt5T|7=OpjU4htZQ}8 zN6N0-ace!LWb;g&kH`yU*TNq8#H$`|6K)`R1I*Q>fX5jXFz3dy}= zu%UZL%B*VjaY1;GPyp^BoF7xT&>q+SDb({64lW;5J6!XAB*RG!$K@Y|nLQ|mFc zZ!LRLz6u=qaMNqOCp-9&@#^(+hTo1iRePrV%Iw?kBe{LcZ-OtYFXfrf_p8g*@{gFB|suYP^x`R~D$WlGJEX>qJ$UUMskK^U-mZnutR2scd=;7mDw=%wZ zHTYqA=0~PGaFtAW@LJ)I)`)RR&TITK{i}WEHE155S~2sxbtU^c_O;*fMd6V7E9}oP z?sf4penyLYOzGK^^p72rj;;~@Wb>v==b4Io(|$CyKU8s9a#Fr1{(~M@J%r8 z|D&AlzWCPXdRdhRO3qZBL+O|Ku`h8y8VKX2>P8ADj#Ic$&Qu@sgw>BW`PA#UH_Zpe zm#!btZ@PN;JX8D8G+!JaZ%yq-hSU8y$mY5Ko)O0%U0SdGi07UvFBY!#Twd3Ye7>pH zYrah3jL{Q47?AA`+y~KPRsNxr)zPZ^mC1RR@82=>-eWYp&)`fKh4&iR=W^J}aFv4h z2z-7wsGr}4K9}>WT^mjAMN0$1N%_&Oe~R3Ff3ZcJ%X~f?w?EJ1<8Ip+KdLci@h$v- z`%z7cz7(_HLD<*V6popu@)zU9`8lO7UsS&5tTDaL{m7s5mcqrK$F#vPAUmg--{g5! zH@<>dwK=OY{wPcTR=y}cV#fVpz}nBz{@iR_q+02R7Pb`MFQV8ReeCAnAAV4K6Mw$v zyK5OH9)4N$`M9jj^wFW3J8I9D+LP%q{d`A`9H)M0J=KA$eUH)?ep+8lth2y?zt0St zol*2n5lgxS5|m z5q_ieFuCQf^Qqr)kNB-Pbl^6XC#X0_9NF_+Uin_mg@R{`cLy$<7nZ*2IfQtvb;7#s zJc05t{TK$KBLi4};Tots!N%>pig^O{+^>CEy-M+id|3G=ba~anA39vfAJzXx@jlT6 z?knw1N4=L&`fGORi7HD1~I$n3k%Uz*E}c$(LIMGP=TL9}83>q1rVEDr5_uR8C3latlaR(^4u zgVsJ4gq*UPs@Sq3`hNS7;j}+@#Xg18Z$HX#;eMoW%f=}?Y}~HXC^?z_us%1H zzbu{{aj(l4mG5OdqCEnZyCUI8?9M>TQ3_&f1~{U+LzTiRNRM+udv~v;w7v& z!-|XI@qQT}HfZtanlt6!!)o5Ef5LjR?eAS3?bAAIo+bA8vQ+t)b#q$sH6i>SmMVU~ zq;Pp<7uU=B^6&R}g~zSl=oa_L zx7+n{c~w1@KSiAs7XMoK1uniWS?l+HM7~%*=JQ3FpJdNf&qvf_#f{@0iE=Uh7zVs# zKsSG>V#2x*=TZBBjoY6`S^a)x3pO1RaigmXiz`f(H-RQHw zb^U>Hud7FSo+ht;$Gz%$jO7W{I9HWZU4YMWs^^dtRy5~9y1qySH1}DgW@F|@#sJn| z4sCb+YQKLM&(Yui()}T=SO2BFh&b{2KZ*>FdY|Ct3k-~UuPD(|?S8`NQ|*@8QR{dv zHw^0eglxYAcK;pga~;olh%PPV$FSiK+K()b$GZN!+-n{Ym(>^h4fmri9@NYAu<`r% z{${OD@X6Qhwq<(c_iIZ|8fR3#m*Hai?Yc%4mrQTWbF&QKxvi?5`SbqWkE%SFs&iEL zqbjcZRnE#Q(!AyO`ooF~d9ZLse9oZWp!(N_Hca?hiiXnPPeQrPtD5bfKec?Bpm6_N z>~4F_;O?X zP&sB0hbsP?_)T@{C_oT?vH^`RV|d-$B{W8C}g zM+%qMd{K5|#)DzN>$sEc58MaAun=CWx^*=3tNs18@UHOQ$gV5iJGQ_*quKjv_mz8F z4c}-dqP{Nx^*ob{`MikY%P-Hq?D0LsTA#GuwBo^7z3&%)GCLUeGI`U_{oZG~exz_x z<8FCUjdNx%@^i?P9=GdMJ%?m^Rr!+XG5y?%hx;y1nC2<$`hxN!)?d0j1+~9*@tT?^ zt5>PKVfkBH2bjXCt0%hP#?*Y3p)py8MNWujsNrW#>@j9@WzjR$O|kiN3S8 zuC20j^psA%eXpw0ukjWSn>WKZdos_24G+f~R$Lrk*jm5&8r!+}tXJC)6ZI$dIX^+; z;y8k88806Ro>Xyo%^T$}ReXNQMHifY@eyMuG6uYkC*67i^MuzpBV#cS)KoV>5X;&eCG`Zj{nW7^J&r0@sru=F7#S!<&pYD3Fp3v1};c?*9)ra%U@@X#4!io#| z7+h$n#TQtR8VaORfLHntFMkn9$aN zgOaDle;o1a#>xGjb>JL7`o`cqW2y=L8y}sYB4L_B4mnCMAHVuo+~2-?DDt`<@o@dv zX3YIdo7z=d3*7m3XF6QEO?A;ndDDGWo)Fi{daD}EOIn}|6<;!(@4lGvV9jFN#reeg zD?Q71GCVQQ@67<_36w%V^5<;aJ{KrCE`Ptavb;*gz2AIMdDX37EWdlUk5%)kTimAQ zRr9K8yOcgtyiI%i@U(a5ofdhU+q3-c80XKUduz&{UhiwHCvl0{MbT+Xi+@lbXP-kSKy+5-gz zFF&{Z=K3S4bBR7R&(ydoPl#*sZibtRFOKiG51SNUThaM>D1XjdCg=Y1P(DAV^@ah= z6S`K4K2>pkrB!=f=PzA*VVNh(t5n?k%@>td-STMdcZZ+ZxP5+MU)7FkURBlSm7Ho` z^~yf#HN_j{U$l3>^-cNHYyPmF(Dehu>Ha*n)+eoJv7XSysXLFt={GK2o_YPHyMDLx zba8S!Coit+GWXIL-|AX!7u#H?hsFQnmyaXHv36C$!tGygu?h8KKVjOwU)GCXQ^@6f zvFW6rk5&RV@$&GN-Rgv-%Ge3rb|1c1i_@eTcUtY3!aO_9bd@sXE>ky?bwR zo{y&Sxz!g|TyEF#ZwkGpME zaanmm;Aivfx|-Y7JsU*@4!O;CEAKZJ;4(}g;dsMzO_r4$bjjQgX zQE`0a(Y=K85YygY42-;cPnzner%bIP%oS3-+SSDtE+DPHg4xKhy(it z)<%_^|N5lEyIS>?&O<#heRmABEPo`=p;jBj{-S0xxf8DAjnXF@SH&gMqx!r`;WHn9 zoMgLLpJiY4RrTDja*QAQ@4>^ePV`&2aCygV1OZ zdlB3-o`QP_H7~l1x4T>4?{=KiY}~HrDY@vfPE$Dj=7HI>_aF96t;?;RSMJ`2ysKZ` z;xQ%9__gESlwL}YWl!us)|c1Yls>oPru}H)7wd70hs!fPcHHyv`>jM~y7guC>i_1?zjG+M@v4jWC%8{=Js-n+5bSd~ zx9#4$^}Vy6nGE$Cle_=VTetj$MV|7bTYQ!tXL-dw$DfT>EXGvM0kOdrs-a zan*gSDu?>R+V^@ry85Yn&v|5eopp+?J+3#V^@jno=k&kt{FU*?_JQ*pirF7}@onmy z(X&p^3M(!e@%{N^=DvDK)79$k+xMz=C;oEzgbvH4^{8KLhYb&3cUW<8e5P7c>olcD zbzQ3VROM9d%H;gEr-tWq*ZbY;b$G2`#*6Cn=z>#qJuz~@GT?PQ$?6HpJ{!051SJAOnr8->66CTW7zHH6%j`U6tFT>4$hnSME6h|4XHe#s+F)%77h)Pv8%*4JI9>N-@d%=dd*{&Q(i~=!c!J-3Qd}9jh8fy=OeI zG3q@e?CUgz4|y=9H&Q)gh6j5;iWI-w`OFX7Jlkig`Yql)!{L^fu*s|L7fa4HkEY^Y z*N;@3sIFV)FG_#d=E?BLo~xcis0Vr0vX&f>7B4Z#ZKVqD#uELtV1OC72O~8K2rD#Z|@lvj(`3B;QXt$x8DDE+&8Mf zGb`=P;TKA&@)DFBi(~sfq#DL4z1ANozOc+^JUQQYB0ft_nm;YxBi=`< zxDaPd-&+Ro+*Y+_#f3C}RP{wyIa!^fdJd`XN3VDa+P><#!WwsB#ih#Y{VtcFP|wHK ze9%RF|LS!1o3DPhjDBxK@saby+UFm9;dI33A*KI*8>e_?<96Na_qr)uZgHrt!?GvN zOV$tH_Zz77dmZu$FEV}TH%cDmEdP3zCsg@D9uOzB9#i9%eb+qrjnmY6 z-Re>Gqg%bI@)#d{9`dj2N3PFQ8#G_0))AvejR7h?)n?13ur9h)|V~vY>UgI?7j~{Z~``*CD?RDnO7xlhj%0AcA=G1@gA$!;JzJ*Kl`M6&# z!xM8a@{4b;>;&yc%YI;SO!11iaKEwV_I{-F=#Ddc_I(-ijjrCX%tJnPaap{GbA{_c zzEtg5at?i5uWC!-Qk@?o=M4iG7phj+y!&@Qs`8*)=OFK_e=u};UzG>HX``>2rv}MU6*_$Mk#)rz1{G+mY#GIAZE!8Bf&np!{h0jXWoV!bR~EwsGBh zHM;B<>KyXR53h_Gc&7iX#^QTX+-{}p??o9;{$0r_#fH4;kmK@UX$$sgUcK3d`VO4c zPCfhgvsdij-}*V(>Hq&GR}+VvU+X|Tl-(kaMO}~IxK-_;+}0@vEC1S~a~UeW_&ar!ZgY+Ebl}xU9a&ucmlIy%avg zL&-&#aZ~!5_;>vPm;>4OAZmp-{i?5f- zC34iuA6{G9;m(1$j&VNE@0Q_A7aBa&`YAps`AEkxPoO@^kBF1?Z%OMm)bDlQ!YQqn zb#dtCRpbl#)Wt*1qw*>x?{@s&>$xTBV^w{sc~w=PTRFB4`R`t+=2f@$DS5<&eEZEC z;-PRymvK}6WV|GD2A zpWpZq4`u(mtF`uZ_@bl0sXC9+=XP9`C&ZP!T=u+)D*UyciZ70X$vxz#>)H6l(A1+0 zPkIMVzK*c87N3su%PV}CC(sV%M+>LmlafPye)kclY5Tf)75VZSr|EU0KE!YJUB@xz zA+%$<&v5=F?n$gK&s(Z_)f8UDW$`QapDErfKBRdY@t9g?P-uwHAKqKJ-hE%uesmYxPQ8rje*~W%6NvUN&*xkM0y` zCtXkBJja^-x~YngTOKd@ALH}BAo`})xpRN6olnGS;Lv|$R^@JQO}D=X=QR%9b?yD4 zQHA7B+3#a?^@L@fZrtCVo~!Vc-+vYPiS@(x_euYB+*tYSTR#h&LGjLT+zcFtZ2e*3 z3vq@ezNq|#cx8Rv^{{!H9dV?Z@6~YG`~4GwQp~`zwRN0{^_H14~dsE>b>KU zd{OTue);jQL&4VfJr3UceuVt|I6LZn$uEAwW@kcYZ|i&A{m5_~6?IzDPomzJg5nWz z1%(6cdhJKFr`u;ZgTKd7dBW|wSX|2Q?M!ZS;Ps7#*EJ5+b4bP?wU62OUa{Y0dSuTr z-^=8w=caM_eLgb$?&Hqy^O50{?<2}jrp9&oG8=Dle}#oF?7ZGV_rSEPDW^H-#H z_$rs_h=uhKX(?Z=b(@2~sDw##?xSI0SkaaaA}sP};9)_GgsqkY~VepsKf{+?#augpG~zl7hy&0pmC zpZmG{(ZfBvRcYh+zD(767w5mTs+<^qDbckkeLmk*J2^|kbS1iY_wPMS>Aa=tg^MM{ zdUBQC9Hp_;c*@aapUHS7my1pEKO@yrr5~b#dT4#D#rRyjglh9mR35ar=Bn`&=%% zwx;}vJaImdFG`NfQ>`^G;(TV|arl|C%g0siQ}qPbquN?HUDpxRJil@EfAjjs32LQ@ z*k7uAg+;Dys@U=KA8IY?-2Oj*QD{gt@BVJ0&!E$B)9>@{oF8$h{PwJAi;4A2dvp1w zOfRJueZP4}Jd}OLi(Q}p6R$z9o7qZ8ahu{(l_ynPxXx$4+BAq!8}`eTLu_I*TG z4>hlR(sPx2CyysxCpBL--YMPCY(K6~DC+iW-H%pIT&1Y!%jWavrf?!2t{+>pH-FVZ zE!?PAwXez(;$pZ{O7j!0kK@AmlpL4$x((XC>iR6+JljXAIJg}8G3vOz-_ND0*Qs>6 zB%#60aWY&PJi{f+t5n<}Uz8kQM_5`5rz0=0@#~^)W&M<{c~{M=Uh!eAL(~hD9o4)_ z&38MFxL7})@PjGdP%niO@lbNnW!#iME&d#FZ;CHUzgwQI{3GH=b-wC4u%1xWk8-N^ zRObba3vp6?wr+X-Ma}2qR=l|OGoSx&Z69CVH`xn0&q~jM5fi&6NI9#PxQBe!X6Q=; z+7}jm)BG`92OYT5H|d_`@xrZyU9WNIuIuLLu>&t1F#jHm@$$Q(z5BzFg-sukcWM!-A9HaGu)~ZokIE!jEjd2|ftNJ&y6^%o8&F z_*|8Dw8#4X-^ZBU-(A;V);e9!BlvRYvG_5ThcMqG4%NOcE;i4ZCxSj7RoCs+`KW3? zy2+W1H)q^L7e1^!;d&pNs#mRj=g2S7g}<=lJl;9j`X2eY)-CG22cJ{@!E?R6AL-)S zR?+OeB-z6M)LW-QvmaLM{Lg(he4l%U6&Dr1VHvl0lg1a5bN{)S*Xv}sqR)L@#s^zZ z>xos-G5Z}MGZ^gaTpG?lqpOzn_^K^N& za4GIv_n#-2u5)zPiSta=g{uBRIo6kd?+9_4-G`T8(Skq)D1HLhiwO zqqfKGTUUG!DkxsUf&wfF2@{Ie6^;bLMNL8OH9{sjw3ith@$J9B*{P>e2zw7d3 z>fBb1FP2xo75J@rqR-cXbq*hQ+cN#ma}IfA{nZW}ZtaCd-mG8cyik4&3m-8!^cdLR z!JGP74^6CC1B>b1ch=@oyI=W@OV=JXkF9fOX!4lXyi+{L#>0wB5qDtzwc=|%;$-7? zT@qdS#dU?fZ;EH#yo&s&;<4mJ9J9VNZ~2Yu-s}0v5$`A$w!W!zTh*UoTR+DW-SP8v zc-`WD^xB@TeumTiex%}n8h4A2>2ZF}BhzEq7kN-7f4@H;TTrb||FCw{d%)`TH!IJ` zdByiUeY8uk_anxa^Yabl$E&z$H}gO5qvAMz|HCVLk?K{AuSo4s^BG^x_cMsg>Ia?| z5Er#BzsJLh3wfaYjdEW18DGvk;nptGBR_wcoc*~W_TAdml~=`!`q@1B`*@tE+qZCP z?{~lQJ+(fD-+6!Y`+T(grp+U@KGktmKUz3_uUBv#x_tQ^Z(-pJ`P1#2s#h5=cAn*U ztnt9(i{lAvn{@fyZ{Mw&*ipY8-Pz`scBz_*?+x`|w0Fbu1M+{z&#QGJ9?A||&tqae zzg0TsD{fVuba7GsV&i{{c(3%{?GvX;JQ~>Vz%e{|1G7)X2aa3u5*nQ7M~;_`Ck_ox zjtkqMajM3>*ElWxrI8=EeWvFzhu?p0KktX6OP`2XziM7}i<^?yE>*r{>(PC#Y9I57 zuD$3!Z{yG_U7l>|yno=j>UG^aq|McA;y!}U!_sH#vF{(_N2PvpMSS}nUTqI92m1+6#N1@!`HM4g0!e_)PiJ;!m7=GP`b{GyQfw z;dVZk$Na;`v9;`p^Ig@xZasnaP51rAW$`S|Nz>~wrO)fQHHFh_JqwoY&Rnyn{Qi-v zO|p`;ZZ--1{X=y=)9dE7LGrVD>3oIL>$qu3o-3 z9@~%nIr`J;hc3?|PLAKNma>n0QF5kmqCH)`Oph}@*|`0A!-A2U$A7jv^7kRSI92B% z@3;<1kJot>?W*F!d2ahGPs%?h@(Yh!{JQd{{Auy$$b+W%VtVBDk&FjbKcgON9pZZp Y_}p|~mp89*s^U_WGtHY@eH35+2j$znp#T5? literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_spdf_orbital_fchk/dipoles.npy b/horton/meanfield/test/cached/he_spdf_orbital_fchk/dipoles.npy new file mode 100644 index 0000000000000000000000000000000000000000..8636031989751bee2a8e07491bf6cf1b68189a80 GIT binary patch literal 92 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= YXCxM+0{I%oI+{8PwF*dpivbA$0IL)gDgXcg literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_spdf_orbital_fchk/dm.npy b/horton/meanfield/test/cached/he_spdf_orbital_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..368f4fae404b01f71fd473ff1a5b92ff54743735 GIT binary patch literal 1680 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$72098x2AVnwwF*$crEXMg&wvEHPZrw2xG*-1hKY~Th!8*zoA#svTbL}2 b4WnV=Lzy1z{vGV@8_ID%>h{qPKo0=`6~iw+ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_spdf_orbital_fchk/er.npy b/horton/meanfield/test/cached/he_spdf_orbital_fchk/er.npy new file mode 100644 index 0000000000000000000000000000000000000000..9daeef04b0bba5de9fae29b916caa5f51111986e GIT binary patch literal 1280096 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

6cg}{&o2I7r%W+?q!-@OlQu&N) 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

{Iw$S6$>+&dD8kEaXg#U+Zg^{-E#+>8`-Y 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_spdf_orbital_fchk/kin.npy b/horton/meanfield/test/cached/he_spdf_orbital_fchk/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..3dd3c50ef944b13389232bc914d6f4aa5d82adc1 GIT binary patch literal 3280 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$72098x2AVnwwF*$cb?oF{KG()g_6#_{Ial?TlF92aB=L-!K1+;ZAzlPpm!kb|<0u zMUO|AKhWbHmpYjGfud<0p5%rfdU&CSC$+;1mY*p#ceh&h6=#$082PC9&5u(GM-Icq z(fP#MOKiDH$h;N5VsekxF**=Zhwjd1mZSZK<$K}&z@;C(yu_uBkT|jKY(jGvy1S_r zZs_L1+>h=~V#5ihpI-DyYrl&V?{GMfY9F=Y6Ib}5hZlNy66;=SzekWER uwZaoU-J`n?#zzlNT<)ZnyU^nk<_>fk-5u!eL{|^v(>tEg-MI%^&I14f-9AnL literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_spdf_orbital_fchk/na.npy b/horton/meanfield/test/cached/he_spdf_orbital_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..69f5ffc354241cd71746d1bfb473e7228c66801f GIT binary patch literal 3280 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$72098x2AVnwwF*$c<-6CPH#hs)eg+(1j?UV>6YU;g$fJv+^KlqQwy*$) z`m2JH*BI^~)xgb%Q%~fkzQ8aiU@KpYp#CGcI69wLd#L43V(mxw53%~_?M`%e!Q4$K z-IT}{woX_20FM_~Jh-aA*;vwi6)uj>hpD3%jmw?%vY%Lc=FrK*ccHtRTJAwN7v^8|@I-eHOx-}!=yb7 z-1Jrz=faOqG5pi=xm{Z+`T<-VolmU!5OtKhlUV!F{X?uidb< z&!|ukxC)OibUtbEMY(Dw9PXstWa^qgZ+8-kUtIBq9`Cr+Q8#o*H;vZeNpAR|hZlNy zlI~OdI?&4@{Hk%w{`?OD@8S6xrtj-+_x?MdQQN5u(w{AwueL$>VY-x_WeX z2cnf*=;~p7YPs__j_`!p1EbO1g&w}tau0fV!0bm4PjvUd)D1NKi^%XqcPF*N4?SLB z_MnFsvGESm52LA-k8#B_%pMqx9`CsP2U8EDsTH2+;RZ7wokkB&T<)Z|yU^W%?oM=n W!1%EC7mQCXjcz|KbI{en;vE2&u_(v@ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/he_spdf_orbital_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/he_spdf_orbital_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..6ba9b6ba49f50ed4799f6e5320d2ee9eacfa4d42 GIT binary patch literal 3280 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$72098x2AVnwwF*$crCn+)`;7OQJp&G)zWesuM42!40@bXW9=V>d!J&-d zh1!{?>X#4f!6i?rxUb6#(+wscaJrLJ^AB)euljiVBiuay$k5vPuFnX%|9?!pvE#I} zIKzQbccQzCkiRzHihQu3^@@#axu8eSnhyls4>ONacf!m;cdxj)^xx#A-}cBpd~A1! zaT`JRu!m1sp!4=9JRV@?!srcwXZ~(F@_7Hzl+>QjdoS*XiKEl@$AABMyYC%NbI{e( zhflrqN?Z5R&Yi@@?^bo`*Y6FU;f&vS4wk?Ae9v*p(>8q2O{ZOWq1!}k_=(^0-T0FK zJ+E__6PoEp7-$LTcY(*>Q0#Z z(cRlTLpLO*{ONxFx1}$tw!OB8sUt*F%RMlA(B1WB>Jzt3#jgm4568?Vt9FLLQVzg; zgNsI#6SNLLZcmk)Hi7pEhTp`lpq4W+xbqRE`4~Ol;tCmqoAIaUsO_*m=~X4l#&V(cT3DEP6dh= fXCxM+0{I$dI+{8PwF*dpi-Dm*jR6i|Y=`9lzc&|P literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/helium_hf_sto3g_fchk/chol.npy b/horton/meanfield/test/cached/helium_hf_sto3g_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..2c9f6bff3415ca6a8ae64c4f0dacea132897f7b3 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-Itn19siRP<00CT&Ts8Oh7JRS=0BlYflK=n! literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/helium_hf_sto3g_fchk/dipoles.npy b/horton/meanfield/test/cached/helium_hf_sto3g_fchk/dipoles.npy new file mode 100644 index 0000000000000000000000000000000000000000..8636031989751bee2a8e07491bf6cf1b68189a80 GIT binary patch literal 92 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= YXCxM+0{I%oI+{8PwF*dpivbA$0IL)gDgXcg literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/helium_hf_sto3g_fchk/dm.npy b/horton/meanfield/test/cached/helium_hf_sto3g_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..0bd708f11bf540eda5ca49b285aee0be234bb315 GIT binary patch literal 84 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOdDz~BG?0!9^i literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/helium_hf_sto3g_fchk/er.npy b/horton/meanfield/test/cached/helium_hf_sto3g_fchk/er.npy new file mode 100644 index 0000000000000000000000000000000000000000..118016a2f27df55acfabff284cea00a5fa98cd76 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-ItoyvsiRP<00dl~Ig{*-pM0&?$8)4tgQ0B~L!jsO4v literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/helium_hf_sto3g_fchk/na.npy b/horton/meanfield/test/cached/helium_hf_sto3g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..1efba3e7e5ef5223b729ccbcc1e90b833123116e GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= fXCxM+0{I$-ItqrGItsN4aKP1M7R%DSpX&esWY-vC literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/helium_hf_sto3g_fchk/olp.npy b/horton/meanfield/test/cached/helium_hf_sto3g_fchk/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..9604069ea8c2af8280410b8102b9c950abeda042 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= fXCxM+0{I$-ItqrGItsN4aKP2J#qj_C|L^Sqa6uZ= literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..ca57591ddd17b1fb66aa939a402059c30232a690 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOa?1|RGJS`8L# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_dms.npy b/horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..ca57591ddd17b1fb66aa939a402059c30232a690 GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= bXCxM+0{I$-ItqrGItsN4aKOa?1|RGJS`8L# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_energies.npy b/horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..2a05eb8ba73ec4c97f0297505f6b72a92e711e4a GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= eXCxM+0{I$-I+{8PwF*dp>)RFidDR?m_5%QIAsOKS literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/helium_hf_sto3g_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..1e6abfa1a62139af824f1961d5ee78525f85e2fe GIT binary patch literal 88 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= aXCxM+0{I$-I+{8PwF*dpivbKi*aHArSr%IW literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/hf_sto3g_fchk/chol.npy b/horton/meanfield/test/cached/hf_sto3g_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..c9f39c32e5bc099efdcca27e86dbc9278450e711 GIT binary patch literal 6128 zcmc&!Yfuwc6b6(E(F$s7tzyeVflPraiYO*-wFR_*(vg?=0z()YQCsefZsF?b$9;9~=i%zj zeU8v`#ElLpsIgp>84LvHg8c`Bs@j`2j zm=LUy#PyX}KN;+AhVcH4)A{*YQiIqQla73|DSg7_6jq!ywUZ!E6Dd4tU~ zUkuQvr|=0G3drOq>M`=Kmq+wWM@74PWC zQ`r*W!vUf1DT$-bdDr|$Oa9)`@z#Eye33I4gv5h+ zH3%H=KTWXzj8jgAgpQA{4(8F}KwV{=yucTjLl^1xMAr}MfOn$%d|P{BX5C&Q*(;{K z_rTBY=L(KRkKykosOyvScnDnWUjyuhe63Z^FCJDu@+uoMFPKk_U>@}xm5-NqviF42 zM?IgceNNV%%-aj%?$<@KQif;m7{m`j@BfU@>X?y>V$7-aS@_-VKuJ7_3;0~d>v*aS zJ#Sol=K2Q3W=!a38WnpW51Myf>CSssZ@93id!fsfRrNDnt$0wMDygrOkD}fP#@4|Q!~`j>;vD=)(2OXDMgs!rtSWPf`E7l@X?9Tw}ix*-Nw7!K8%px_qvka z-Q226ke{xP(hGMDFTh<45@mMIaTvhmlqhuu>++%f6l(P2*_)Uwq0PXyttO|Sx}}q4 zhyI;%$S2)?P<_{feAGsh?D53Bm%qh-%Y){EzFjZema~VBW7edPA%s4FBl<-0{TxY3 z+#}|tL-T=dc52exg3D_$fb(eT7S!8XLi;4@h4}W(iOK!F>Ck?x-8mT_oM}e#06uD@ z>jS)qK2{DxWg3z#%KerE zukgsa79`IBexOTs^*#Hev^oKPqA^9!_-U3b1aEJR(A}{X{rx2TO<}YDGVoHMU1RAYGWN$R^?}2v3|#aU%9Z h_Yw3{dFXPwKB8U^Js0A9mfR=sLHK%!(AOqE{|7KAEjs`J literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/hf_sto3g_fchk/dipoles.npy b/horton/meanfield/test/cached/hf_sto3g_fchk/dipoles.npy new file mode 100644 index 0000000000000000000000000000000000000000..b7b13f06f7555ae7577216bd09f490418fa0aa02 GIT binary patch literal 92 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= cXCxM+0{I%oI+{8PwF*dpivbEc7k%0X0I|Rr1poj5 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/hf_sto3g_fchk/dm.npy b/horton/meanfield/test/cached/hf_sto3g_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..51758b109cf9397cd35c6a43ae5992d2f81e6a25 GIT binary patch literal 224 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKQDbiQS=9=X`2*yIYs^9<6=^fwBJB?yp(!+tbS|RJ&-=%Dc6RT5cVTR2&vVat&UwD~ zobU6z=YBpfZth!)!^38TZHQdv&rHmSd@Uj}HtE&Kn25-vw2W052`iVRWi0dmKR+Yk zy-a`Cd}eY&y1#22H9jWd@qcto#KwrOzdi@brzedn7&v*-?b01R+FN~L;_t8Y$^HAK zPYL{f_xy#N*|k3OcHKO)zaadKp`Ws`@Zs}^;{w|j?EL57J6{;jmmO_Nd$)AIF)!R2 zL(Pu(@GA|mdt*UcM#_o#7W>fRL$9%YUUTaFjNpEkrapT1%B*`v+|Nu)oYOfaIq+uQ zCTrK7%RX>P>6kUM_IQ(_KekuV$)qET1DD1`|FM0=apQS@WO&y2A;reL+?O0{cHnaJ z{I%Gkw6y`vt~#)Ab^bf=Ti{ZXlRao!uM#7U_^0k39-h0@8ay<%Y4qzmjprltqB@c$ znm9?njLRz8%BoJ7IPskKr|s{B+)s8_Buoh${4i%&e(x+J9@cRxzsqVH*HOLNz)7>8 zSX6m*-J?UU{d$d)7N4B=3QwmpmzL!vGn((z79*pV;ff%bmE8T`OS+b@1u z551QftEWa6{b}UK;B{Y*`t`|=0_9J1Y*^A_^7ioi&55^1oipqt9&)VN5g&dvySggh z^wZ_V7W>fRLvLRCroy^C)kd7~hxDV3|321wa8;p+6Z*VAZGW@-tQmQAz@otY5s%`= z6@FvH!#Ymop|w$Am6;znKEHNe?eX!wLi0V^`SThlJAXX)3Qw{M!Yc6hebls7a@$_{MZzoO5u3CDf#3w0#@S7i6ykd^+k zul!2c+#dT*1@Dv8rJ?`$oaQ`&ceVNjm!9GMDmvF(GwLPOI@0XmU2VVMvU+dp=&|Ff zgZE;MU%+KcT}u3A|3xEy?h_IxZOr@Ao^yX952YUWxKQu0ay{*yB=s0;_XeIzX}4dg zukkK=;6mLokAx>e2}d+fIPV}E!tdXvRIwD{1AZyj1R=)h-&Ke>K)jbn-n(hjY^ZR?-? zbypm2*X4aUwbR}k_V5dJ#5@w5ew@>IENsU)i}_HcTRh1Zr~b%4r}|o+Vh`_X`~ohE zD)VNYP58|=pIBFuZuc8%9l=Xl9C99BlJjoIUY&Pt>%eVZxZSVD*KYCg>b$e7dl{Eq z9Z3D|9y{d;_^G?&(blJqw0t2?$v^b8eBr%m@53oBGG6UoKz#U>cKCyr*oPJ$dUm{o zU+GU9Yw>CN+Pqii9k^(IkhbGu(HU+6#cJ6^_5{n5vC z+pm-Bxy?)LH9NcWj{Y-!W%|YRBUm3vKbAf#xX`yi4+-DU7oZQK^*7)p?e}!3b*S0d zop^o^V?atS_b8^N#zeT*q$gHBNT^ zcH(;;Xxjm2g&Pl(R^^xQO-v_~kzA}19@`dkZ z^r^M}Gv}7p-wpMiq}jPWkHAIikJG2t`p?|Yz{gH%eGBY(@7n&T8|{9^I!>kA^C;B5 ziq|+f-Je%@dW94GLLJF{z<=B);c@Cn>cf*7|B)}!&Tg#Paeg>GkKh;TNcx4x;b(Xk rev$g%0$-u0@e8XKi~ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/hf_sto3g_fchk/kin.npy b/horton/meanfield/test/cached/hf_sto3g_fchk/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..27ad19275153511eb63780b431800ee1ffc44384 GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKNSA^iXs0`?Y7qY-<%HU`UvrH>4Uis jW-q!qf1&oV&)FxkdFHA8Fn{23A52}8^YwVWpcnQ4u=rmo literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/hf_sto3g_fchk/na.npy b/horton/meanfield/test/cached/hf_sto3g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..9fe7f3545ba829a101fe92d427bd0746b5d240c9 GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKQC`_B1`Sq~HUlOW1bQ%~CqRfCh}rS7(^DcG_RonWvvT z?dN`&x~R{I2d^t=V5pzI`VqTd>0$dH#p|t3mhoW7Uk_#9(DqOrLmbUo3@$ExF!#ai nMc24*_C=jf0vZR*qdfapgt9om{DI4TFm)RbW;JWri5~y}5JFkl literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/hf_sto3g_fchk/olp.npy b/horton/meanfield/test/cached/hf_sto3g_fchk/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..30f8f9077b662b3f3c0e7761fb8f32802ad296bf GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKN=8IpzQV|L^UYuen|;E<0z>fCi4YNJuVFE!-2NlpLX& zxCE|F$5{iY@&kr?A=T(d!A~ppluuo>ZS9X681macn`707W-SI6mp+*LVD_SGgz2-7 XS-wug^~!#jKXADZrtXzt0yta%Bf42d literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/hf_sto3g_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/hf_sto3g_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..44a0b94349beb2bbccfcb6a03b34863c9fd98001 GIT binary patch literal 368 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$dItpf*ItsN4aKOb`n#`4V^}W4GX7jqGniuvbNb$uSoVsa00~*NWuc$WA z-faJ?)hoj)e42gA(kFizx4g68d1dPsCFdLVXv!JRfB6`)VfI}Nb5PZNz|e;(kBf)U z*Ymo2-gUm@{mJWE)V`E&*zcfzZuS+!XBg(*_Kw-_e(I%t*-wY9TUHeBSDM#uop9%% X{VuMVlhgViVz~3Z{>f57y$|*P#BW;i literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/hf_sto3g_fchk/orbs_a_dms.npy b/horton/meanfield/test/cached/hf_sto3g_fchk/orbs_a_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..01b3ea964c3bb893fada7572097e09a47bb51bb3 GIT binary patch literal 368 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/dm.npy b/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..e0e7292d467c566268b714ad0c081cd9665d8da9 GIT binary patch literal 564 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-hB^v{hMGDGwF*$c)w1ZfJ*W6DTLvfyIylja$XWpycmbMq<4`la&)Nx5)wSwtA{D^gj`XeEm?J`YpKf&avMT5c*6fQ9H zK<)$C3*&1^G@HM?zHV3iUvY3agTfCc2lfZheK0;qU92&m-NJ$jJ5YQehcn2($o>GC K2Uf>((+&WL%5&ZT literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/er.npy b/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/er.npy new file mode 100644 index 0000000000000000000000000000000000000000..ab14a15bbf1748b68acc002040eaf4aaf74a0e20 GIT binary patch literal 117224 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/kin.npy b/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..857e7e9fd809b5a8c956235f6a16d2280a10a6ae GIT binary patch literal 1048 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-hB^v{hMGDGwF*$c^<$ZPy^SregG`!$iEre={S0W}K2N3QboV-&1qe(NgbWg8}zL#m^e0d@Z!$gbyK4M0HgyFPR))5SSFmvi}t8@MK zScM^9dhC5exWC$-ol*O<)vo977qrq9yU5asq0Y4U>>St4moda)=KtpVcsAgFi5Ti&_M^KC#=pW6_?^*X6NWyRJRzD=^I_=^mR`{9 zBi8&jhP84hKTX=-wW?da;rX)tu=ET|f9U4I;sX|b=<+c0H12J^9&_r4{i@3g&ip=f d$sU$JaHVHh{NjoanEPPnN!dR*EIaL@JpiQx>dycG literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/na.npy b/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..32b036ee154e9d5ba7d0ad7dec39f9cfe50d7c75 GIT binary patch literal 1048 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-hB^v{hMGDGwF*$cWghv7Y3Uq=16h-qX6xlV-Oqpq%#=Pvz0R$${~fGx zTy)hF40&mR_;d4R{p{~3P;!6D*Oul;{jK|9=3RGIzR9Zc9Yf#Oa%;oR?k)DR z&zx(nmwv#IU$CON_DiIrSAo9OjMA%dAA?X}R#}{SG!~nO>XR!3ZZp z;n#BY@*AHYnCS-HAGr9Gnh#5Vu=Ij%Paib=VE#py|L3@)O7qC`{oG$RCC^`W*?!^r zAXY8ahw$_aOMmG4VDSM9KXiGRdHykfx|!9P50o9Y4xU%_8J<6IrDs_D;))NL`(WlB MIC^qp)TXcd0YwoF2><{9 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/olp.npy b/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..dfb21cd1749e27ce672d7daf01bb192909f15953 GIT binary patch literal 1048 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-hB^v{hMGDGwF*$cHQ77(|NsB*?H88l$bMgU%$@-aNbL0V$>vDe6Y@_@ ze&1rH_$hGn-jql(GBA9=&(!w%H%Aztytt&_xV&_2*21M&UM}SIF$Z!K;rj^ug>WL{n-$ zEc|fU12cd7=c|3ZYIF9WtAn|}c6Wc#-Ji$yzr6I*)!6CIepr0q3O`iyaEFg&eAcSn z3j6GRm4Ay&m%oM)PB8n?-38JsP&1bvXbmYRe+ej+*V1BU#u+g|I>Ui)N!YqCk3|NAu<_QK5DEv%Lu zvF9#^ewh5?a;*pR!aw1ZhpEFwlWYFpCyR3h(?jV^bu^-8?7e@Uj>q1o@=VwhXK=+qXq=ui9iFq>~s=Q@ue4-1b}Hrbtb zpFhDcA143k@BDe8k|@<&(Q#>#zU8?xROB+S^z%it-2S57QVZ%iZR?uVIYkn=ilfod~`xoJOs1lT%P z?eFCH%FQBUiXk8U)H`Y3Rnz_QL30-s{GV;_{B&0F7oQav>d@UY*!ZyUgZUTTeTTn^ z&yAX2XV0eOsAhOG0V8~+?QCkiqfP8XqOLsqQnz6LL#3+)0T#|Ec{^pMVI$I zC%ehM?ycQ~uBGZZH$(UTWe|+n#gzuK0kt4`yC}R(_S2;%$2XQe(`^ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_a_energies.npy b/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_a_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..1c31ae9709a795be16225c4394d6ac2f880deb0d GIT binary patch literal 168 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-hB}%$3bhIdz}3;FkaSOs?LZDwmd!%_=lh>Z#jgv0cWi%5O*aF3)&V$u v{nR_>uHw!6J*58Yc?GubFLq0wae8N!J&ZojYBw$8e4YK_aFYvtg757CLFzxJ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..17aac70130ad3628425d57d1b03a1c60090fd441 GIT binary patch literal 168 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-hB}%$3bhIdz{LOtAM8^oL+bid7|6L!|R+x9b{flsWP zm-$VYW^bvrF8*!Z9t?Ry(I0^?ZmhAFYt2hFPwLq(m;K*BS9XKFM%U((8+To{k6kq@ zr-J3EJ({r$1{x>7{kwnOo;`Nq5y@>PKHa#jH;_$wJ3cEoWEdG)lU_;87j_Mx+urE1+cy#IHyYQpuX>HG6`DjQaNJhI;tCS+&) z|0;&Qu=DRsSNcBMzteaAE?1>*`_cX9xWseuy65NjpE}jr{L1SzhJKj(cem4L1=&2s zDgSj%RL7CcA27^^=_f>!YyQj3{0XOOL-x-I45|xP+q0kRmvvdiMa*=tVRzTH*+!r2 zlU4J*m&c#SaHq?fRh*`iF7DrHVDR_$-jn;=rQb2GnqX|7qdoWj)IYoI-%8AT(Xn<1 zhQ2A&lCLb%+hM;d{@UJc*3&TLyX$L`&OY96pOc*7^SR}#{caPro0cwx`+MFzou72; ywEfe{c3~ffvl#l=SnAWKOFp&#m~!TU=!z8>@>Orw9q@km(q5=IsYu-Z%YFd!ItaM{ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_b_dms.npy b/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_b_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..ee762c77e0d11070c3b5c81fd0adba51173f4a22 GIT binary patch literal 1048 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-hB^v{hMGDGwF*$cbxtYDYf|2O`+h%x-={vTw`V{D_kyP$|H&M%|FiJB z4IQe}_oGQOBwmdbVD%5#f92kp{fsHb_R8TaHeHY@+z&G^SR!Crzf}Q-xo*-yH-p^- z_U9dF`8b<^7C_GN0@L%ezAl literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_b_occs.npy b/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/orbs_b_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..74f1aedc74d28840d0b097f2da8d4b7113e5338d GIT binary patch literal 168 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= eXCxM+0{I$-hB}%$3bhIdz{LOtAM7DC^+*6*z7}i% literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/quads.npy b/horton/meanfield/test/cached/li_h_3_21G_hf_g09_fchk/quads.npy new file mode 100644 index 0000000000000000000000000000000000000000..5a1e32e478a38d2c21274da822926fe51c52da7b GIT binary patch literal 104 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= iXCxM+0{I$dI+{8PwF*dpi}AkBeg-Iju^I2Lu?GO>cp8oX literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/chol.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..53506d61d9c1e7c7dd0fbe083791abac55066077 GIT binary patch literal 102680 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/dipoles.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/dipoles.npy new file mode 100644 index 0000000000000000000000000000000000000000..15ddbd6792aba093a728b4ceaf3eab45ac3832a8 GIT binary patch literal 92 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 QKWgsb4EOL(_b~m#FETYG6#xJL literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/kin.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..7e0a2305a02e8ab52139be6d502dd23cb15630b5 GIT binary patch literal 980 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-raB6SrkXkmwF*$cwRd5Qj18i%9li?JzkcF&@oSG>h~L<|W^b_C z?Y%(S7D%JG4VV7EWyfukc>mh|Epy+S#9O-;MkCt=Vq?>PpJ|PloaHSsbQ%;c=>Fr& zo(6X>$ULTFGih-` z6J#Gq{qvw>_V>i6*$Hgp+4I_|U=NH2r58}VgW?Yq51{Y_g$u}kAa{c71L=FWp~nuS z@5p&o8yF3<7ZmTHc!Svs3Kx*SK=#7yf!QwzwI60LD7}E<9cC{mJVD_CvKM9#vi(Pa n_9NK~PB%#Qg2NTrUYLC_`;qJgraKgSf$@TBFUWq7eK7k0`M6b$ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/na.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..c65d4d3fd5eae8564154e59a256aceb24bcfb526 GIT binary patch literal 980 zcmZ9KPe>a<6vmSxB6<)#ScDuF5!b+~No~N0I7t1|3bukRvJoCP}-4rzAmi?G^W%2v#+~kvGN8SpR6~5`8zs%gP zsbHP6|6^>u{*xK+Myu+6KkteCU7Mn$vx3RWaprn>dMP9J(B_6)%o<}K*nUsuX5)k_ zfYP}GNW!V90vVb2tkc{7IZ z+T3*(@g(D+qlLJv=!>WiJorX>Qw;wq)AL=rGaI|?Sfy%1CzBO9SaN;ig-@CJ!SV>{ z|H#|KAHtP#rI-Wyi4;*Ec!=SjZA=y3_$*oqE|(_tet5wz@17_XTrDF6MxKqA!SX zPVnIS(Hds(9qfIeLIoFd$J_)LeL-E|3XaSdT-+DTU2xG)^aWhOk@*&`d2cLSDsyGN Oh0E{V1um7jGXFo+Tc}+C literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/olp.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..ff06d5fed9a6162c8061ccd5393784959552a677 GIT binary patch literal 980 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-raB6SrkXkmwF*$c#lX;Df0oO|jsXeSEU`f0e>fLqBl~l@EjkU+*IaQ*wr^CZ*~A|*bjCG5N2>$49?+W~15w}IS` zFpGf!rk}aL(eAEMjvaG9^_v}dF2VYlTk^Wdt$mj_GVce{c0d}d|IqbMzxdlOUQoh*`o-#f z@q#n)SJC+rns2dI7~dDE>h4018h~xPbfzawo_>kUo%pkiP3TyX{~!%wABugW?TlFDP6< z{sP$xvj^RNn7yF%0*ZH-y`b;}g$u}Dm_5k$-vHW=WG^_~AlYk&ZZEq1NcIBL9g4m7 N==Or_2iXU+9{`kSD=`27 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..a56465cc15d9257df7e1d93c3b231d15cd2daf37 GIT binary patch literal 1880 zcmaiwZAjBm6vj2fFh*%wmITd~twJzS%jV?P2Zbap-@>$RWm5fG|;JDSlqPGK){S^j! z?Dl7B$UV*5`0~mS2E937r(S2A0-fyrbn>j`JTWO;Ee%iOW7X*VSVMEn$JL=k&o4+@ zx~I$n?v4f>jFQrm)n}C-t7Jfbf>*-kFVBW zRdDY=7_U+F!~3cEx>1*k=pS16FKa&d5Py>ILeCB;+3BUU<^cyo@Kkt2F#|bdk6OcA zFV5V!G6Z{6y~OOQePx)msZ;Nhep-C3J*KuAE0w;&xTBw7UuWj6(f14iUr*ydvfo%l`VxDDNEwXkV_yh>U1a&+8qNgS8xp(MKdJN<~E(s?K8Ne%H4)kPb- z!Jo`YRi)euv>Y-n(C?hpIE^$WZ5#Q$!N zO7P->4u^$wdW$mjh(FR1C`|LsyQETr+>fLcUz;cf9~o1m&y~G} z-u#)l)%;-s_V1fqx2R3OKqtBCOnjOF;1D2reQL$y?|ip*h@!j5F2$&Lo`S0p|sL04SPtm zjJ%W@sF^9=vxZF}VHZaw5tOjZ%D||xi;)ACr_O&K792b;n{Thf`uD&0TC2ivIQCG& z8mB0yGn!O$Zi+<{Drod+AsRnHla_7CvzW4yvMs4*X+O%8nQLCz&rLU-Ft4z0K(L<> z5UlkR3IzFcwdt(OZqaro-q&d_)ZJxH@;5b;V@-6lJp!A{+I^XQh=b48>^v6MIH<&X zC(rw54cGGivP*yL2`AY{nK!5~^q$69bL?^Litgz|k0E``pdLE2fv0@tZar4w_7sD0 z>D+)458b==mC>V?H5G;PUDJhZDeyn(Ze+*wt9o1o6F2(X1Gu4kLn+c@Cq7SyDUZ+dk z!hgAo-|{U@oHEX*wz};58GU@?n5sXmA#pglZCo|3mKXIx-;eqWN-uSI>Zg?aFEbk) zk;Z1le|7Jc@xFm>wr$ksS@J|B8Y4`%h~w`JO610;dZ_W?h(8_SD{j^`hYK`Oo2Wd)3q2jkjLezg&}$TF3tZ OPIpO59ga%*W)A>&`c_l` literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..d21c9e78af27902d913ba6a30c1281848c7ff2f8 GIT binary patch literal 200 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= hXCxM+0{I$-raGEB3bhIdz{LOtAMA;vA*!fB0s!c)8!P|- literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_coeffs.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..f74ded8960caab64f2a234513f8dcff004394bd9 GIT binary patch literal 1880 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-raB6SrkXkmwF*$cHPdysWJu3@`;U&ZN?4Un?Pq`jh1*xotk`te2F6!+ z)@`{Sd3-;wapRV!9uN1x#C>LmFIb&*6V8W;pF1b;A&zH*J&eCH_37R@)93A(US0Vj z!f?6$jUAiLM=siFZ`Wj5zg6NiT-~ykE0Px$9D>`MY`^?hdBq<4#KI2(8kxV~;zG4t zwb^|?Fzgjn*L~`~|1jLVh3t_{2c<=9r?p$3-Ld`;+bZFl4H z^F9((AMW|xQp|Jheiz-HCp8a0gsWez(k{2+`7?ODnHqk2b5Z}F{SM)qy$=h%!QCq& z@FRg|IfE_CUKnkmFj3(AlnL-~S+U&gj9aAG-kMoOoEuWv9AN5Tbg-;NN6@DWaQk86 z=(NUdo2Se_zQEOOG_q!2ruq}khpE>+7|7>v=Ou>tW$jr#Nuf(@e0MC6Y*xGh_XoQD zUnFEsi&(MRLhaiRGZ&YA!PAcfX;`Vi!vSjle(wi%KR7rA;PDPK2c5oS)T2B7&r=Nd zqN{`P7til+)?D-s?k<=(I<1z++Er~7xqotv^Rt}whv4QPD_SkgY&0Z zPM!93-VqahQZ~ZX-H@y_^$kYYtFrjFLdJ}@`|nJ*_K8dU0av&GQ-{JX`)e5XMw=Q~ zch)|Di#z;!Vz5!?tG&mQ;Ek@IpY2EYuZHRpi+$SX_Cx%85UvmAU#8_dfc{;!KchQD z^FsY*dx(F}+Z#RZ{KeLI8}1&Mf440A+#410YCpuk_v~@`S0}pWofgx%{Sf~m?1lNa zMtzfaT;hxU46`Ku>dAh!XAmlr-(`Qy{`}JTPfJ`b!|jFn_s;WVmeR0K_Vcsy3^(dL n-A};3_C)%3Kbn8x;e+O1dm{a7Po#hMqxlzZFPeY%qx%;CfCdiY literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_dms.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..2e436c6d2870b590e4f838cd44fc46c05d9789f2 GIT binary patch literal 1880 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-raB6SrkXkmwF*$c6)ih;;sf&!_Qq*!zw5Hr*fT&uyOp3vzW2^OF#hWF z?a!Td9^DV)3xphdvGQZO4UE6aA<0FNbHV;A7C%nLu*U2^1>@Ub=fmv#cYAg8KVgKu zOl+m4ih=v!=3X(N*UQ;SVbn)+g`)`>L{su|x ze3*M-^zU5J>H@BVaPwi}Fgl-&^}zPsJ8;Uw)QKhTcZguwwtt7w_hiOrTlYix_E5e( zEIiTuhi<i25j&6UPw|9_N&QAM{>CLYlJ$Krhf%z-<&j<5Y?nmdt+(&O3 zmR``~58Z$Fw@OT#|MoIGd>?L15?%d#B0PQrKPiL=9ob^PB-7!G&8J27bD(_7EbM%A zf1-yUy8M$Vn}mLU+6cEFT^`2IiauGk{>%FPXH~PCmYrC?AIi6f^6g>y0X==9+mG%) zbo*O(XMU9{-ej+lzOH#wQ;NdRev?FNKM$kU(0#++-bA-qw`_q3oO6G%z@73!uT-z*bTOJs{h_>53^5V$9IcMfeYaF!}zfB3|79t@;fZQ!OVrFPgr_^#TQH- z-9P4cb81(x4o=ECv=EPcY#3rrr} ze=z%YeE!n`@;}VJD*JYGkpFS`7hc}L%tiArJiWr?(fy0=KXm_J#qM8w0{*o}_wNB{ R`Voi5XCE{?Vg5t+KLFX^My3D& literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_energies.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..01ef81d48b3b09a63efd7c18ed101afc77b89805 GIT binary patch literal 200 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-raGEB3bhIdz||7cw8rI`@_}<*wVaQ#9_<%AtKYxm!8JJjK6a61iSfq$ zvZlQ1dyeg~zcagN%A&MmaQaw~-o={G7xpmvVYR>4gSjv4Ba%Mey*KBz{fA(aDD%l5 O;B=a(8FNg-cY6Twu~ZuX literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_occs.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/orbs_b_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..aa655515560eabcaaf71085db6a9ea01c1162c9b GIT binary patch literal 200 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-raGEB3bhIdz{LOtAMEkd5Ls%H0Egch{Qv*} literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/methyl_tpss_321g_fchk/quads.npy b/horton/meanfield/test/cached/methyl_tpss_321g_fchk/quads.npy new file mode 100644 index 0000000000000000000000000000000000000000..910060ac1f7f217e6aa758c5fdf402d9342dbcf6 GIT binary patch literal 104 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= sXCxM+0{I$dI+{8PwF*dpYp>oLJBA#FrQ2_)_k!3Lvzt2i>gDVQ05`rN2mk;8 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/chol.npy b/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..54b0f035540c204028810480367ecd0d8e312859 GIT binary patch literal 42480 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/dm.npy b/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..dbafa357609ac578a51d89b0bab848fe8cb1846e GIT binary patch literal 480 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-2099c2AVnwwF*$cHS-3W!_1ER`z&1EEd*h4#v6Mji`{HioT#yRXnJ=c z2=C}Ru@|H!!;I0PB~n`%gnx%g+k@0Bs6M_=bI&zJ5PrP+kS)jzko4} z0-6DmUkDSE5xl+_rVgYAB#x{ODAWKF1E~YK2V@sW9)y>lEwl%^#};VUUXVNp-#uls zAIZ&%Ap1aSko=|yv`-OemMxN-7lPabG6%_Ti-B%m476`Q$loA8LEYQ{b+aN!9_A0I eo5AW}{yklhS&56CWLzX1SPUBF!c literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/er.npy b/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/er.npy new file mode 100644 index 0000000000000000000000000000000000000000..01ea94021dbe67ce0c068feccf53d4303136fc56 GIT binary patch literal 80096 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 H4>K14H=hhd literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/na.npy b/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..a2615bf743a92d10858372ee096cee75e3715530 GIT binary patch literal 880 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-2099c2AVnwwF*$c#n-Utioqd|11DI8{|nufI3WD!Nr}Mw$UO{Dup<8I zx&2Ms?S&RHGqZ2z*}v+Of%nbSuls+jpMPP_uEjPmb!JcGdbd4dgqx#t`i)h-pUQzi zwrn%y(8+M~*i@&h>}dOFzY=PW&;8Bk8WV&LO!ClR5DVK1H}78imSuaxh2idjnNw5N z6*GUM@&TB=DVrLC7R7Yge22Ja&qRnhd$fM4yL!bi!_^%>AKSF#RwZ-CUSB zI*o2FEPP=8g1HB#@6$W4RSX8I2cY5O0QHx{Ni_Fd<6U)HPDa217S6Enf%yw&9?TqA zyd8(e+xmy#c!P%@)LroSf`v0Id|>9m+ygU58yaunka&Ze2lXF3-eK{D9v(1%!Q2Bg q2R(e#pz#KC2Re;zF1kF7k8Un39m3KNdc4EJ85TY;f1$ev7H}a_d=E^yLE>9Z+rL}j=1etv12z{X52J(LFIJhke8rv` zs5vW^)^=TGzhmF#xi@j{={mT1%Vlfkm$~Tb(9MN~56oZa>S5+W!)HI#U;Fo>xo2f+?*B6ruk43~ zGc0^y{(_kcGY381R^56Xo7ZV%2~!7kmklhw(83uW4lwt?;vW`ombccO57u?r2{RAs zKO0!Q!{Q4)JYfEUxd&zrEF56w5u(w}#ibtITv$4Ur62TohlMjNd|>`UHy>s$0Gt>D Ai~s-t literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..e43185d63fb9e10ab9756a636ffe0f9304c275a6 GIT binary patch literal 880 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-2099c2AVnwwF*$c#eVPiLyo*>_Vx}B0ZW#e3WY(KB!g+wmy z8zCG$@v;Y(bnf)j_M@UlR6!*FvMZ{ z&}mZ5nf&G9|0VLh``K&ei5Go|*k5e+ir<{^;{KcKn>Miup2e{DsaztA`*Fm_esup6hz|_=(e=al1i}%+UYI^~npAVp;=>*q OANB;|1H(PA_y7Pi`OSp@ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_dms.npy b/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..11eb3e5ec7079951cba379eab65a8aea3617d542 GIT binary patch literal 880 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-2099c2AVnwwF*$c6{R*&N%-~$`-TM`TEZVs?`J>*<)@asRbp7ZpS5T% zTk^RIdnuQ_ETS{(?a`Dm*v{?y878=LKg^t}zw1ArQTu?QZh4YI_Wi8OaC0OSw=tKz zKY?NIY9H?On$Q&(`h}Z1AKq2Di6M^e9%9wO^bxBbT^%fZVE%%c2cs7=-np~I@}503 zeC(nA!tk$e_PwRiGp`dH&h|vc8?oU`Y`kH(8$CQ={zj*XRR_~Yta@~Huylwk{lLN* O8gKT{c*F1)EZzV&gurJ2 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_energies.npy b/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..d09097e197d934449c8d16664f6d630d135226a5 GIT binary patch literal 160 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-20EHL3bhIdz$IX?a>B!G?E{BnzW>ew(n@mf)mQhv+aI&e=$_AuYx_M8 mc*`!byaJ~yqgE!gJD=X49JhAsou-ZUFglm<_@2p(FYE#RNIzQu literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..b8a5694020f4b2d3f38b63ae1a2c6e25a8333eb4 GIT binary patch literal 160 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-20EHL3bhIdz{LOtAMDAaA-a%B0PZdwg#Z8m literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/quads.npy b/horton/meanfield/test/cached/n2_hfs_sto3g_fchk/quads.npy new file mode 100644 index 0000000000000000000000000000000000000000..3491ef07df6a87de3f418cdb9c79280856f07050 GIT binary patch literal 104 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/neon_6_31gd_xyz/er.npy b/horton/meanfield/test/cached/neon_6_31gd_xyz/er.npy new file mode 100644 index 0000000000000000000000000000000000000000..25d507ecb621726c64bfaafc345543e0962e7b3a GIT binary patch literal 839904 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 G;Qs*`imey` literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/neon_6_31gd_xyz/kin.npy b/horton/meanfield/test/cached/neon_6_31gd_xyz/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..24b1c76c77c2c2b4e66ae7a7b3ebc18f276aa25f GIT binary patch literal 2672 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-7CH)s7MeN=wF*$c6}p5qpDV-NL1Ec@?o9`|4=~^W;mmW+MpvD&$05yN zQT0+b_`__R^0@S&i^JUU`|N6$k4M=Y(B)zL5VK~ZV4s&b?Yq!XCXoN?AWnIRITQB4 z%p;ce%3XiIR7lnVm-=RRhsKwUZ*bcCxT*h;!P@OO<#CxyNPM`u>k*0J1xu%d(g%OM zXq-jbQ=IWoH#Ns6ruQsPc|!4lOP)~ruskpLQ}60Woc5l-^ncl$=~r;d2KgD1Dqg0|L}fKZDg>gvt-vh8OAe e3u=7hP9JGtfV+M~HHUt@j8S)y6xgYQJiGv2Ki^gW literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/neon_6_31gd_xyz/na.npy b/horton/meanfield/test/cached/neon_6_31gd_xyz/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..069e65453ffb1f40636d86b77b9793c3a832f6a9 GIT binary patch literal 2672 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-7CH)s7MeN=wF*$c)suE({eAt21AV`*i(me$aDV{^X!nF)J+xpB(lFcw1?=8pVbTsaek4RM3c&cmd@0K)> z!YPk4A_zzjN*~9<_I}%&DTCAARhk7>u|~W&Uw*|V>spOPn0)U zi*3RwkHc6DVN`c~z-it`=Sh0MJzwCImrp8mXS;d>r#!^s2{srGAW8tYyV&nt`^nsU zAE&*)bT3USsXvTUo+#^aDjIt3Vxw|+!O|(A^Z^M%+~H+z-SvA%IqviY(Z7J?^g}3p zFoF%n?JmRPm5;khpHMyh3|4m$N*~k?FIYK7sQe%}>c=Ch`Q-9O-9>E3ftz2z_7}10>8tL8Jpg#exfuWe literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/rotation_orthonormal/olp.npy b/horton/meanfield/test/cached/rotation_orthonormal/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..62cd0c70982d6c8eb8afc767ee6c86ffe5a4a750 GIT binary patch literal 9880 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 J*?<44_#YI^zD585 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_3_21G_xyz/kin.npy b/horton/meanfield/test/cached/water_3_21G_xyz/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..53b953f3fc429169e7f978a6829c28bf43d503fa GIT binary patch literal 1432 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-#ySdy#+o_`wF*$cHOq`WH|Eq2`#8aW3;rLvWG~jEq2)dn(%Mxr2Fgb_uua} zT;I72ZqACtfSJ!eAF>O_YTw9QNmF)n`{fiDBnxt1K4JF5Xk6}t$?p~39LMwYE!;kscoQUF?T4DXAC|vh=^vIp(bEsQedz8- zw-4Q1nEk}k==P!O+mFM4=;Z?}f5Fl}EPcY#56oOx_`|{n=6;wwdU=LkKEU!XEZ@S? YKP=tD%z>pFSop)j9VQPeFJa{w08ZB1uK)l5 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_3_21G_xyz/na.npy b/horton/meanfield/test/cached/water_3_21G_xyz/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..1b1272919987d1fff59f4705134a0c3d7bfa5a18 GIT binary patch literal 1432 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-#ySdy#+o_`wF*$cWpnX>=EK{P2ll@^D(W+t@4#`Pt!JlSeX)PJNY!DR z(BJ!wUZxdGEd9CPTvX!*Z^9>g1}NAgxBH^}Pu2tX&5b@6zhghp`YiW#r!=DjO#c0> z3o>hcPwZ#mus?J1`KSFb^UaIr`y6H>&44%j%IR!-mffB#k4!{&YYKj88(^H1E^-Zf8{74CkR`Dzc( zb_K8TKTy7??M`62@Bx_n;%9a|RScXCH>cjVIreIU6kMKZw^mhAN)}um7A_i4cf-O5 z=6;y@`O2bS^WJE}&G~-4jZs+gFx(u`L$&hBg^FE0fezhLPfmOjzb4|@2cyPws3WlYUO3Alae=ECeJmc|wSF#Y$R zyEJW&Mc4-uM=u{>`3si*Vd)c=eqj1w;SUQRnEPS!=;axD`2fqmu>1u}|LExx7Qe9Y PhlM-L9$0y10WHq}i!Zn# literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_3_21G_xyz/olp.npy b/horton/meanfield/test/cached/water_3_21G_xyz/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..e4c94e4a2c4a9376c8cd0b6b8ae2185bafeef396 GIT binary patch literal 1432 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-#ySdy#+o_`wF*$c_3u9jytl7?Z0BgQ`iXtg)~Y0amg)AZqf@6$uR3CX zrpnvD-s7nKhH`$%P|1D!8K7X~-UM5|D%frmybX{38e(4>!`(froocqDvChb9F_wiHq zF!$&9eSU7CT(}3uU;AhKtBm~PaQR#v`^-yAJ>c@NaDkZ%3m=&KQO*AVH^<t<4vYpzA29x4d~|w+^=rY? zukT~XL(Sa}HFrNOeqrGc3m^XngeOcMy?lV>FIf7ArB7J;f$4*VKP-G; o?uW^vmuKkZ11$f-@)s=q!_qy>99X)6g+DCZVe+u@5>}o805`?LS^xk5 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_6_31gd_xyz/chol.npy b/horton/meanfield/test/cached/water_6_31gd_xyz/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..3819f0d1b72a07775c12a03dc91cdd9f9910c4e8 GIT binary patch literal 739632 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

}q2=P{(~7TUS~sMPZ$L{upq0`pr@ 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 z z^%n7Drmqt5O{V8~GSfds*Bx*VK)5kJh`WXN7eoJ=nok&CNCIvSAMAgo5O)jq7lR)) z@HgPaJrIBM=lC1&Vj=zpycqMhU;+L%jN@-_MEs2|=i)k>aPg}k?iTPP0scmE5PwVh zD}N)HzrEq&?{NH$VE!g2z~7wz%HL=wF0M21OQGu_RG$+4V5yEh&y#UG$ZLx0p&VIn z%M{lq{P*2AYvmot-_;lks?vX9m|pxzcyrnk55x zp4@ZJfsJqeh);Z7MqVjI^XKCi!MH*a^JLr(^JJ{YJQ?(0FNSh;Nz9Y+xR@tnJ?6=v z2YWG;|Ep43-uA2bYs#K1EpCWM4RN=G_&nytn9t+y5SY*7?+_wB&)YGD=1-Z6mks!Y z+6mQTo{ZaJo-C$EJQ?&HFJ{kgsQ<4?X?feP;;t!svb4A%9yP?>65{ii7h^t;ze8X? zkH16A{nI|rKR1Nt591SRCsdDlGH!=?GS*|B40^B^L;1fdrR8nEiod4p$;B1;|0Zrd*CFyxd$PM& zf1kBh30u3VNxc6;JZho1Tfd7B0dMB;Q4Sx4c+?Pg>)*0(W_I$pfBG{2JqWJX#~&U4 zx80k~GsXw)ez)Z8-VEpO#v^q6pS8~mjU!ZF-TdvXh`-VQVf>9s%ikbR6U3v2xLdHl z82qTgUJUc@I^jy;5tWl<^yy=o;Z5SnnE4Od@0iBN3x#|r>$iK3-2HtM8Fb@SlZQk3 z{mHIsYj^G*A?`<0Jm0KdNQcE_pmA8E-DT@3#37%-#an|sO%RV7;%>qIV(_B|dokc0 z+UiAv1^uoN^K*$)RFA}xmL^>z-1lr|eEffL_vUdqb=@CuiVP`~A#-IOlZcddQdFiS znL_5NR7h!_HPEC#^a5lZH>BPU0 z;63*jPEudQfmQXxw~yj`@c9q}$VF$kPPzs3Gnay}y{Y7tayy*<3mM z9=Xo#`kF4CK3RjTPovwZ9{aD~B>H5nEnlr`w1}R@!Bq}o@<@$h;$=ggCWuE(_oI0l zt&do~Kw|BP41$Z+Pd7~Zam1K=e=^;kE^p@Lk-}Ga@v<@GX@Ypv5O<5-Urgh6ijQr7 zf58eeUo>u0gSroX`xg=Yui^%LKbUyg^!W%X)41vOG;Uh|tGHnt$kPPzs3Gnay}y{Y z7x%K=Wpe(-U9t|Uohw!@YnVai^QhwU%E~F_M4xnj*kJQ3(}^CAFG#vGd8EcN@vc=eea_MP9)5!+>G`mJXSANHY`%G@;{4mAbMNx7c-zHnZ=Y{=6D@u;C6$lo=eFg}-r`98+WBZahi@v;%{ zBZx;0akqfKfgd&4i(!00gc$kPP;2;y$R z{$lW>2758!)%s8VhI{|t{0+C3zd6$h3yg1|-@)tv%CWuE3aknV{bTU5h;$1TLjjlSEql~RRla(wj zh#vBxsK0&Y{4J*l1>1V6%xY%$xzrfThFA6QA?*QgNWjY7{iH&Xv-e#Mp$vcA%*)S( z>v?g=G2}0XJWbFKq#%2+`0Nm|JKMSAo8-pYyt0|X9iJJFLrY1qri<10PO2>A1P7aBNR! z_Bl=CgZ#yir-?pqLHmoVTci%DTk8^>bbp~6M^|>3!T&ttYe!W8?mAw6Wyp8c=IcZa z`#%=}S8E5-V)7S5o+i4VAbYUexR^UqWo(=-y8qSVQs=H@mi+R(F!(To4@3T9$kPPz zk?A;4wEdFiX{H_Ob*Z`ePS2j-pN(f6dfafy`YFT7`h67Wra9(t4Bz?{p&_TU@aw|39F%k3{!;MbCvG3{!b=jD5uW_A$L z%4P6j1|Np}#gL~7;v>^>plJIg&C^_7O|KiXLXKSb9!r+*yB)~#=7$E(gG^k+i2hiZ z?NcvN_WL%>liv{0uQ%%1`)@BMzcS#1{Kb%`3HpH)w7j775`$PU>$kW8vkMf(Q_1(Ypp4vN+dw;Uilj3>jzS#5Kx9D-` za-a4;x(ylKN0q^c7<_G>UqSxJU;V4%>rZm;PwvnlsebgMSDTMZpU`RJa~`S;KFr`F`HLY>6U6tX_&yO%Q-;iG!@In4!$kPPzs3Gna@Hg7h!F~cu08)3R7tH~$L>$=taiL{k*p7C4|rGR zDC-TH6o54CMjgE@beQC=-ofPO^0oPL&pI#y%>1$wfFn%O!V0A z>5zXDc=4AGZ#L^%vhiwHY427ZHq@05FY5hiFOu*_2V_daH8n!fZYFOvZ7-&IG990m=E>g3E9~NqVuB0s3h{U`sSl#?z2WgWOy@6#{xmO!dXO|P zhI)`RFNS(S5_sKfhHs|w@)jelfJ|A*alr`k7jyA>dVev^=hys5a2su-N1jtOpTDJi zU-MLDKcW}F=P{g*CWQ~`TPuIpe8YSS!eJ0H&FRHVj3Iw9{IDf0Ln$qP)MAI*ztJ#wJy`&sC+nBS$8~;O^}lPrVLrKz3-x>bO!V(*dS4#jB)>0)Clh@y>be7NA&PI(`1EWBKOULuhv@vp(EoSM zCydV}VZIrBkY5=GRg~@XC{DtVzZmi~K|E^U#Wa5ddol3hK@@+B{!jjfX#UoPgTJl* zPyU9tG5k`aQAx67W*Xi_@gv}G5RaPSZ+!cU!CuVpHza_+p|2EwTiH7PhG~Aubv?N1 z1??~X=%wEL#_}TK>K}$1svp#8<0H0u+@ z2D3bw9^d}xjMWFnvpl)h&2f7D;}DcL^_I>-`M-a^G|iJ~JTy=V@L{^LhF^#DC}W ztbIP|FZ=va@}9;ue~%e_2N`@^?YQa%?Jw^1mpz$#e=?6J@8`qGWsjqA3`zLl)c1fB z^7XV@YxLQXZ=65HhX5yo4>S01jF?<)oVgWl%x_%e9KIX>Q})f?fAP%`I7idMcb$s66|hD|gEde0V1Lh>QYIBvod7@T!aXM2tlFCp^@IA7VsUf5~x zjp+QvbUbQ$e=%(@p6=Ihab7z%en!vtZuXvwzpB9bv{phMaKH!G9p)2o()o+&c+~X% zV%lCz=ij9BMYa|%jSto*Tz7gLIt~=Ar+FH!r{kE=dag3W^M^S35Pu$iN3cHOy3_MX zsBfw4D5#YNw;DdIpl{9X;AB~&V)3`wo^9f}x3C~S<9>IN{ zzJJoccY1x&^SO78Y)8rFTYT^TTsXMuX?*Z}hvz2UkL&jg?YQO(^ciFCtTO#^yv?|i zN?sqFTRk>6m-qgGJMo_D7~VtR`3}!b`g!!X<8EhYwCXs2yr^S5oWu@B;Dh$RTZ*<4_pjm* z^xPD5U*fv%t;G%R^YEU`bsqG42;Gjp&(nJPcSP%<+>x4Z8HR5FKHwejJ`eps{;v6i z@wp_-H-iuO1_FKryaV3n;XN7NKjFO&#)tP1c)r7P6ZCMOhx;eomp~7{BPfG}`2?Ia zzXTo!{0Mjl@C|rRrr$r|eF@$}=;u2;FX289_jka>^?Qfw&RlQ8FUuHyc}A}}Eh8@t zz5j6k!HxA9Xua>`v+7x+5SFn`eo$b8xbhc6+%3vKo$yC^ZaSIv(7q6xi}WspRenlg z^CzEpI{wOBKiZ=~KW>}3_i@@!?oBl;A!kW)W6D3 zbXDL1B(t@nbk~uyP=~iSURqCM=bMg?OvkUH?U(d>#vQqF@7F#0O8mUneRSENVdTWO z9u^BnjhSt@kDMQkZ`ny@tyeE?@TnLr(TZIg`1%XXUo2pMv9`~(na=`{!0){DJR35& z8GMMrN6v$8|4)?xS8I>=dFK})y`ZzGdq6D(X+PO_Ue3-$9dtT5OGJ9JzQg~{)qpB(i+8EW}s-zlkbQ@S|wtzSX;iv{g3 z)|0UA{HDWf!WRISAeqhJ_U7S33_iZ=FKC>mArQicl{|CgFqeVOz9w8GM+*hu7a)Kf2_@L3Gbn>wW+0N70Mx zex=VG#-f;bO_}2#oXGss@sa7cTeKgwAYL5qP(Am_Rad_Cch5&E{pj!ja$FkUyYX`O z>{Yz+U7sZ_PyG1T@2}=B7Bqi?^miHDZ+Q3+gO8ktp#Hy054c)8er3H&nY-O?Ec80i zLPTU6-}RyMGSTDGe$%vG-Cya!3#p&uxA8A*Q0<1e2g6kve2Br<=K1BycLZ>_{E* zc?YgZlk=w60UgJTUI+Ad26`O?GwYMaUCP5rj!WZn;PE5G@FU=FnBi}n`HLa$7RBGl z?*Vu*#ovfNg~#7W8E{YF@i(l-@Hd8E;szeS#1DA<2r>K!_#2+b<8Pe#iy8jLxxW~A zG4Qus9)BbFI`a4%DFa@HzhU5ScX<2~OYrz5UT5VqT-p5?-s)2OX6=lVSk!G>zdaM= z@T*{Xl`ZdfV6Obd5RaN`e=&S-0A9Q(?$K+PtvLjr{r+;pWgB;sGT?PdcNBVd&lVw( zamBA3z0l^wENh3Uhw#ZC%?Wbr5-_S7pVG7^4c8xOm$$2DCO)=gi_DJ)(s;X7WQzV$ z6U>#r7~+|6?JtJ!4Zw@PO&ho3MS^-hoU?Px`S31P7@f61$rg$4u zM@{o&`0fq!M)PFnue~?=9%`=&dXQy2UQFtHQTPfJyHqVUh{exuzwZ4^Cjrl{o!3xi z*+I1_%5+UsFdJWh=E-zCYMLk0-{)zbJZbCOaC$$Ya74uZdIt82`c)Xa@pQiA63E-PFFNSeJ(!3bz|5pjTj^>-^>-TJ# zyf_&3xz;iIY-Iu`pQrN|(|n%ZUrh6PnkNh3^JM*E3SV32;djk9%%>ncyWISHlsBBh z{&p)>-mE!`D^(<41t?0WMhabc{9+XwXO`y4bUf;|@?`TbKisxV;9tLqJYG!JFO9EG z0NtcDR2lH0)C}p(tm&W7cOA+by!pa?d{pJSeXNd1d{?rLXr4^R zqvqqul)aed$%aF_H#oiHk4qWE;~lwxo5lzAe@gytUQF{i`aEeKN9$=G2YTDB)xP&e zv-wG&o=*-Mss8w#0qXulJ73-RdZ62~z~Vp_j@n{W9{g=_@%mg-M~U1QwQpbty@riQZdtwI04 zN;-crJs!QknAR5#==Q)-gXPKlM{G4I*yf6EJR9CH#EP|t)BS$6O!H)V9GWN7dYUJL z9_+?{mFfTYyN0_T!LV$kdTWlv`P#GqbC&U{ym>^*_|&7?oYyK5iV zjykGU7-vt}#dp4ciVp#AX7FJKAHMyuW@l#92An2gI5H^I*;GEPTY`kWwX@;E@7OvCj-Zf#Z#u5eVR9pje7;>Ro`)KY$i6t)werKjM(Xc zik?0zHMNew*I!?JH6z>!$4y#&LVRC3ZmN1!HdO0peyHfI2}ch$op&11v*~p8Vr!BO$%dZ>kH<6Ymzi%VQ~qZnQMII8ya?(ggCI zlh$*^qlR|0y;%0@+nL{FlKJsM2S(EPqMM@~vfUD~vHaY2vd8%ShoO7^%-7Pn9Tsuo z<%~zo3_#n9Q){+19qY#CmxbfdlE$a8`}?!!Ki6mH1ryTMa`^qv;4a=e%>p zb%x_|*p)i_tbC=ey2iY!)Ev`165TIQY5tjO6Mi|4zQkcxg|H-7(j zXy37R&dl4(*?j0w50Wb$HRx%3@tc_HOPB4~{NK=ymNY(*2Zwz7hX>$bld&GhzVLr9 zuG^t)J78%5=lbP}>kP-`@}mYlm%LPa{9>4wY%YTjG5C<)#y*cipLn9O$hS=r#XC_* zkJRs(2Vdr_@^ni~+uMVzUm7=^znBjn&)+yjF=HVpuG(Kq8TKVp; z`DWvi(ES9(-QwZq=fymnJqS*ETqv7->#e=;oHshsVR-ab%@8!qlKH0d7t`^m>HWpDz4-pQ_sXVHg1<-YV(^7A_yG5xlDGcC&F-W5 zyK$rswR?2=7V9@fk1r_h78fsWEpBtivBx&pn_!{FVCw-@i1R-1EdS`hCdYAPJK-wRQXrKco2N zGKwD&{x*uo-}HI>4YlXsZ;+>njzZ4XLz$LfFNXTl&O#PSc|~Y+^^LPhO5A)5+P77X-F7D6!wq&n65Su-QPcHM2757- zx9%J@p)BJzdT?!J@|am`$?pvG|28StN}l|0!QEP({Hu5qFE37vnv%e|eg(yK=CZpQ zc=R?cKQe{$zWJ+o|L%UOUWZfCB8PB3hv?(2k8w5rX5o!ei+k)BTF$?3>UYg2je{=3 zd^7kkgYS?39;;f(lj-wmZP~$kYS`E_+}|Gr#dYSgyV}TWjPmf*{@1VH@`Gi&XUt#Q zYMdrw$82{L1)-+O*LzpS@cSeDuK5&nJz>5Xe3-%a$JcLND|xb@^W)MN_sj8f?85RS zx}Bi7&RllaE5W(PCmRoH^}3*s`)@6OJlScm$Q^HV?%bJ`8k<@B1mOK$^9kc~$s%UH z8GM+*_s7?7UK{zQQrEG*-@ETe-KTxHih72kK@6YQruck&p`k-%uS$^T=JYW^aSq2~ zIo~57o)XL-*n^?W#V>s|JJ~ttg^_V-eDh3RN*&AHg`dS-6JA`e&o|!_Z{;rbO`A+` z!tp=~ijUmZ{lze@AA@@?4Bv`c+ve)SS$|x(ZcOVfd~5A~eD=O<^bNPYSW~iP`8(~$DzTF;JvV;G=2LAe zPCD)@{oR4fUTnqt4nfv0jgRX*xavzhyP7CZ-8`Ab`K#sM&5M5* z|K#BwFL3<^t=-Vs>#GZP*Vp)@lj?|X4baR;9rH=Wbxd`}Ya{l10FBdp^H9b4x7j#K z^mhk3UJ(7=fy-Wena7LC`la!;^*Xxk)r&tgia)M5j3dY%$K^-eTAr*UfN#>g7;v># z(!98}{eU0Mq4=igIK@}Ja)0heRJIrYHa&!s&nw<4h^pAY#w(!tJk677J`ej{0j~f) zPu{O-e9*tOlHr@2zY9Tmnz;O^8Jg>p;&15CAL4I<@-)$Y)C_+^ zt>tg`mCNp;k+EpPGA+?fik>L%xK2CEl|7KU!R8ZB25m$8)=VDlE-9iYDOQ-}TggeoqY>Vf=d28#N)zPd?2vbWmz~ zyhr|v0JK>=!fU>i7r`s^$l7p(wjl}$Sh>5OR478dKkY>ltUUqZd_z2Hh`R;2gcv_+ zQfB@cdN*xze%Vi+EEP8KOz4O6{+469StW#_=%soan~xh~50k_T{ zGdk(D_)6tl52VfGn>o=uzDeej!A;g5JwAh*=;{0&3~r*Q{itC)ADSmq_@LdNmNYNs z!qb$ZWNBQIfUe(Nclnqi8~>SZU&Q0ZWWH(rw=&J_Af%;A*F%|(y9M>Md_~!lX?%s3 z8%^H#KY#)@yxtxlvX^fi(!7lx-*1TM*BkZRb~rj7HQoRJE;nT|_%MSHpQ#%3F8+Zf z>ab(x#DrT8sGP?)b6j|QlguZBo2FTTn0WEvl| z`_q!<#awuT7=KzB#$T1I-BSVnv_1dIx7&wY4|*Ir?iQ_wav9}MYsBEw6X5R){eQQl z?Ztoh@tRtO{J(Z@vToZtKE1yf`ZKu6`i6R1ZdAN;*QV0}q%(2xzN9yyNRhG6Yf|?4 zNfe(~q3!d|cydCwp=3SKd79|BTeKfFjSI?48GITHzMetF#ngM)gI!W2%Z2T8}HhWggZt~`7w@62EL)buERl*ixj zYKp%>o+gM#{fqn!(fl%q;YTtIKN5;y_}eZXe@o%&CixeCQ=|E%(j;x4*giRU;I@zVN(aPXHK{$uWxgY^PMYEM<>Op&d#6a3Es{aF z!S#t)_h>fn$7GEliR8!oafzGHVwWBVv8LUqqnCvaBftZB#2`--#G?j1>@S8gNZ`fS zWirl+-z`SR!k?v{?r{|DKe943WaMHrZsSm=>xFrEX7j~Um#q%tN#O@C3ioc0O&^s@ z54pbvo3u;mACm5c&HJ6U@NZ$?H!WY?lCE|!!_MA!HH0$!@d26Aa7~R+f*10gL7Z=h zM-8}Oe=(GaWO#Al5?!l3*KebZ;!!$J6EjiYtHT}dr~4s&+!&;gzaQUvEz`wNbUokw zK_{4fqRECG`55wzv(5VHN)M=`h#w?9Tw_A(so#= z2T9vup79as*Ycxg=e^o4vn6 zdqI5uSN*?Xd@c$0WCkB*@bO)LuKvHPzOD9o?Ne9QyA904H2m{!Pf!1jlQw>_}Vbo)evsjwhj;hrI(J=F7STg~ZOC5?amWD|#NC22NU#?JFYYQleo8_44fME5uRU%k zL?trnRf%F7Q1@5kyFKach7OE3dwy4R4-)D3Rn0&v5LFB?uTop&i>+%~)|p$l6FkP1 zojkf#Z7LEJ4Ug9Ljq@ZxFNN zOKhi!;pj_WC->^EUP!lo%(tM3BqSV=)XCq_7p-*6ElA#(j;8HB|DmSk6n@!j`wO>S z?De*eln;L4kb}|(Om6O(o{fVdqJ%0QrIGW2eC3e881gg$E{MAYWsqPm23{<7_Dm0x z>?^2tuSmM#{(Qu1cU{G0zv}BmGiMzBaQ*v5+x4(^#I{*iCivs+&-?qQh#o{sE#gN$ z&}Hp0FXy~^FflO{#~m1|Us@1_Uf)t1lQ`6e8Ba(E@~T7rV#w13xFGHpltF^M77~;|yPm*qg}pM($`51DUUw`qoVMai8*a3}b=Vaj?f0sGoa$`6Yg4j))Kd?5dO*T$S(Rk%i#@YV3j=`xJkSQxUE|}nj{O^Dh@-zW1h`R-4kYFzcUOa5=B&lxR zad`CfE(`iO^S_@%KQ1ZxKKgF8FguTQyFQX)V(BCK-%Ft##G{5X>@NmCYN+Ru9d()) z{BQ_FPqHs1_0vvAFKpgDIkPMf-RatSXmn^Udfhj3r*Y40Y%Dxm_k}sTK7*V!5-)El zKw8V9mmcn4hz&xfIlY*P$@;xHa{kGg1$hYa7ek&VzyWc$pbQf1#lVY|R*Y1W9DN6U z>YU!*VDVLQ{kn$N1?8*w?myhD zX=OS4N*qoT4*420=OmhVrzCIEel|W$C$|Md-#?7OkiQu6GyyJ%y9H&CU@rz_99mDtSC%EY5y_RouwNVP<)I&UK=m-0Y!H*j1xnyYp zesHBzAS(1ZP#GMbjxGdzQ%TqHNBazpO3dn;gQm^5c)mt93nvc@I@+t?6gfZl)ABQ{ z_7xz_Zpl5ih!o+yekS_&wDO2P!MW#nZ?k*^`HLY>6X1ZjTTliG_F~}0ZuJ|x6pX1v zU0OQW$-KKp=Aks&8kzRli_2z84|_jsGENmY8s6v9Pk;8OuU;%Z6^LA(4VF9QX-C@M z4g7IV^GpQpb$C=|_vi8G%K_)YqF(I%4DxS6{$j|}1h^pX7L-APy%>1$oP4iCCxp)6 zD_0yP(sYht6UF&o`&{3QC7o|pMT>Z2ot1UxcE1>hAI6*a?R(7$yD>NuyE@i)pUd9I z)PLkfZ<`l{n;4vh1?S`Sp0d9;$cF;?i+?bAqyQJh-GVYmuonX_ULrs0$kl-Ezp`1Aow_d8 zb6)B&yz*yUCfy??&v$ml>W;@JrT5v6^>(zx9UW?oQYX$DxJJ@~;7ql&*AtC&#G4No zKDn3Xf$Hz4t3T<=KCdBO5ach0JWYTD;%-41B-o3A7uS4odA8g>5=XykNo}<7Zu9&; zPa9LIx@$LQzaa@9ocbPc;?zStYQP8ki@}c?>i;e|UaU{#w0tv8JTYQ&wQ=VBaZTa) z5RV$lu)i4msG*)q7T@)HaB;%A{wn?^e!$mnDDn#3rqXxXB3|BpkkUy@DAAGI&_O}CW8FMkOvrW zLEJ4Ug9Ljq@Z#$=!-Na`%aQW-^GO=cg=h}L-(2plFKFqLjy|{#7^RZogX9dZC1j1u zLL1~dNKACg#6v$_xmLHBeZC#<+-b8>rvfD1VYJF6vm)$k^W~m(Ap3kP?UuBslVLuB z{Kb$57;r({EhvKodol20pJ^{=H1xfTQm;G>O2d~=d^IyG?f8DQ zbjr!XuG`Yk?c&ojB);3>u&*1x9B;GOFSVQX6aWcR1 zAAkA-6tHduXjyj>dmd@=nVu_^m>394Uz`8S%SCj z>1@w&;w6x`n&dAATo8{M${@jy8tlcui`{S4gfAa_o$%s5J+4Y;h6Ew$EvDN8RlLv+ z$CgsDxJWecVj;Tw%>lo2k-VJv!jj-gb6v7}k9-U|zi-P>kysx*VC{s@#on$&e`~{I zi=^2R$a_hmU4x4U$*&B!IOAnAe%@d&23|ZaHWr$zZOf>$qi z#FMT;7tpdU-?CP^r;z;0fR`&?Hu!miy%>1$Ol66LQKCi2na7I}j5F77)}kGwW?)k~^hvv(EtkLaI^lz7oVAF1uM>k(8+%n08L;=?#wo~a zbe$LOUu7q{D)0b06{96uv1V&fcgLPI$3=H}|j(?YyvZ zgSEP*)>ItcE_m>(K2|^D67q1m-^Fg;pCZZe3VL|%c@f}>(-@pd>s!2+kBKJw4~^No z!VFz7;Dr3jfD7VfLm4Fad4s(ec=2cHh21}U24ZN}T6uj+@YI(wEN;5rN2^(@_x9zE z&jWd+pdZBDg8k1>&n1BuYaJ{8dOPVSUr0Ii+)eEW+Ffig=k3Hol=5Nfh$)%Juv_|T zl?zYU`@^UgqNkokTt|uyVm4bB=HXs-vJdj4*!#nvfj(kyRm)KKjyez5WapCn%7B9_ zUN-o76MHeki)D|l8vFieITGjbVsahdkC>2E<~tdS)cbsXI^7MYYg7q;^@~CAucmla zi5Zc0R|XF{8Dnq=H(0zLcJ|T(u7SKIy6ZprLebG*)v1E%(9_s%H-XCCozF0dPqyMON1X@0aFj%9G( zeV*#1|DIi+Kc)ukH(GQ6A7XG~=Z-s6etzGC<1YRtUau@3iUB9&R|Y-A%Z4&Y@bd1tJ|4MNUdZ(g`@Z8nGOoz})^&8uCOj$CGmqp~1{_@RvcbLTzxTdnu~uOCHseU`L5@nhF7#G?lMAi<9s?Ae4Dcea@{ z9-Y8a3@`rrYFhjN`%oPIs($N;p@Z?^(ApjP6D=^{oI7b+;0$5*JBX^H{)Xc%`!L`v z`6!c0L(5IG#DktMGv}>&t4%o5m=@j<6D&6m3 zmiYYk^AZSdT2JR`g1B3-|Cw%2mnSg1IM3qNjow|CVj;b*QzW#j&I>j7&@Ws!0~`0R z){vdL7Reme6PCQRjKvY+^kez1W!Op9tgndiE>!O$?X~Z^3DHA*TA|m079t|sNPcBF zK36ps(K09*iAx{(FhPYtAE1uPq zIRg|$=4{}^)0p45$T^&w??WCbzzaBG|1;Ec$~+z~c1m<#ZBV`*3mI1?yEv7p3BB64 z!lvgW(Pt*D{eo`-Gh&>{_=iBAC^CZebZ{L#-ZW579@W$ z;Dvb9PzDKp)L_pBUaZ-zkMXgmZp5ys$M83`<=0kBo9BxLo|P#&A(Vk+M9wQzZ;Z#9 z+DGr|XhxCq5*4ppre&Lt!nGHE3b>VpH5!#9OJ=h60^pksAMQW6u|5Ms{$jud`Hr9r z687nWy%>1$D5-aY?@L`qT^PG2@HeGg_wjcm521a_zn<$*myZf00&X3wIgX32Oix{W zCYIo>DBpdxPuf*<k((Bi?_Vdp?aQ#K@lr%dXMTz&i z`QWcf=*5|pW7mz1A$Tsn?_=gT=nNA6H0ROy^*P8rQM~8i+3fr>-yM*yOki|)F%~^ZUi)WrDL963_ z+KX?dpPY9cg{2&q3Lkh0&G}-K`0V9wB)7cU;nk@mw0Y%YtvgGT(QTKV@?u6T-rSbB zzEKXD=;r6HR`>GGBR%~ekJl|fP0r^%ZylhMOGB^wHJ(Dr#OM=o7adGU;09@Vhps3u@3Qa7;k8KMJKPcg{o(>k@`vQC32mDmsT< z?$`x=>(#sJ>n8}%g-qEciW3<#UIE?HSHpLEMuGepuh(8R8Cd(7_}RDw)ibg z{POdD$^4bd6t$!t<^PU3HrdVH_P!0Oc(1(o`B(TZo2Q~_;8(X`(^fRKUC@SrPYkm2O00EWBK0v}&C|ks#(yKZr?=Y-aMWygbYg)YAtv3lTi92K*sG*5pQ z(>^cfg44?$Z%gzsY1hhs<{rDXx(7BO$ECYf4F9D5;L-o*y@+bC@6x<^@@Hm|{)Z*1 z{jP1>jLu$|*Ryw#ot+!Q?B>GDWE7m2JU^h3?2_y7$TF@6wQI?UQQ%jcKT7C$aMHCagWwDdFpp$Ez_i zdYNT#BRL;Qw%6_2Q=aAXVac<4+|SBFRzY8GBpp7DYC2Tixrf>NSA}#)fSlb)KD;)) zw@kjM7LSArv#tdtpT!vt<|BGbc_OLduEUpUoj{tFZ#QMmiN-yT#|+&y&mWJOKcY6W z-N*B%hAeGddwo4lN!fGjRj=)MYM6A(;`!SV%!8Pesnt#&N8D#f@&L5M1COe-v)tR_ zM)b2B@RM*Y2fSVE=9Yt1Hh4#hO;E*AYob@X;b-B}VK*tmxCRLh6NcPgj6JN+^c;T9 zi_z!h?2ex=>DSX7L%Y_>kY;~Vx9)5CjsyK|y8Fp!JHzh;YFX*Nz*K));zrUxf6*Da zuS@JuW=E}ehc0oyr@{!jJbNc9;n_P8V~<5CJbNqxd#p3h&PmSi4$mHodj6+9mgvs~ zM$~3ygd?!W){U3DXRpHA&md0|-~b8xi@_cX^}vfKd9Uu*IOP_)V|2NCx=;z~={~Y{ z{6}}>Qne>XH0v}niVBIh?0OnGPe0_m{~5dfT+e#-({Ic}Vkw6DH&$LmYllhinD8Wv z;B_+Xp?x7X7u9Tj(s*m-8FX4AafHEz6GXr9nS@8GL@Fr*uFAoKJ@Dvwln|wGa?8pr z+~W3OhIq3V@;6F2GOSN3`o7@u&71oUVGW7ZIvIh!xQj}jMbhwR=W(s&nXTR{u!2y1 ze2d|Fyx(DjwapCneLY0SF1-5m9z4GMalq(hu6TI6&q)6j%h&ZTgjIe@vBlHP8zZ)_ zvB6h=RII!4!3qJcn>txdB^KtS4E4LR4sNK5*TajJ`^JTqxiI?FoOF}fV+T8K<2yg- z$0dtLrkt7Uu!Qe8(0;P6RcurpKMv5}&9NMsI*$Dgtk})|e6GSS)ROwJ$+&s7Ks+f! zPE>6e9)(wZ-*fUyx-Yi+kSshoK@P99@Oiw*aVLIZek8@D(E-nrkLbSS$|i#Io$<%h z9T&Oc{B84>C=TC;7Y%-H>UPtH=pj#N`i9(nVyEozzS{o7Kkj4sbEHzsmCK?|q&=KZ znPgo-P?$Y7s*EUmaLJX?r>cCHo>wj9XNsX+YvoIIw_sPpJ$%Q3{^et(^j*sMae#i& z&=Jq$ZYDC zgfepn^f;&gx&=X=NIl=EygZOy?}?&aeqMs607NyjcZ5F8NKDDwQk zrX$bX(VFcdsa4tR{a$jb*-f=F)}93TCMMVkYrF14lecX;G6(O)PRbhN?-$?73GQ96 z>5aiIlwtizxaLS4PG8$4c9n4uemA1&l0x%vobuyz+8&8LSh&h`*0}c8xO|C@_{{CF zo`i(TN@XXBYItF>hEC^C5BI@?7N;klQSc}81N%&u##LXE&$7e%?P63-N3-k149jO| zwXpXS!0W$0HMACKp_jRjQjCHEQD!&W?J?#nu-Afx(}Kp?;lMWoe{36-f#uJvTmSvd zag2ISlAN`C2VU!SKw{#aLpb#MAl=)mg7G4UYe&|dX1|;DeQi|e=^BTpy_C*)KP?uk zNGFMQ-Vjajg5R&fvxh3`qk{2Vxy-tO2Lp)S!*IIY>2kIVc-@AVluK&t!XGyUY4kfD z@iUJ3U;GV6GzLjN?h}l=SK7}SdF(VUNl6q}7;zkjK299I!DbhZ)0Q2*Y+D2_J^Ae9 z=foiVcImN|`y*MrO^5t?j&+X1O9w8Ja_fBr+xKpmlsbUL+pu_vk%eS5Hm)%b{UR2G zFCUy?ynhRe@7kMAb7Cv}2!6m@sWWKQl9QXU-IYiW!-#Oi@HgB%YtgJ(uE7|1@p9Mt zO^@9#qCm}VMGuF$BD1R#*6OMzqo};xit!DHkw?(PyUpzmU>LWzwb`?-T#W3>&o%?T(c^I{x)R zm{&CS!<~8akDesFc+j^)Ppp<-M(dY)#P7f8jv6!%hMpUpigNvH`-p4CqNKr^gVOWZ z@lRhV`sly+JZf=VDXCMCgCw408oz(V;uYt8cR-fuYhJG!o{h8uO-r9C9Vhra2amkq zZp^+f1Ku44>*Nl`1)%kL#vZo8A-IJ%ugGh=L8tQ)X@nPF8SSNa__zYPFm%Vb>V@Cb zzAWlj?xZ4zJS7i@#EsEHhHqs}u8eE|mJwPsq{80l7zqSnPeGNA%Kzny#Ms zyoQtkubXPU!No_W=)s{6={^=4@k|~sChdS17u;02G9o4oh5Jl2F6rlnwoX-8d(rDC za!k@~XsFtcj0;UO3(m59=Hi+xrDE$;^kVM?-}cj@k=t#BX8i|2WL)oQMGEzPCy;KC zeI0%njuZpGJ{?;SK=e({pB~Asw?IuwV1 z7rU4$e_Hw02&G_8fI^Wf~GZIS_j8aaVrHLzs@3kp@JO{zJCwf=j(oays zl^eRw^Sh>x^6jlZ`{GG5_7pY+%Bb3UzRp+L$o zZrXN|93?Hb7a{uU)_?R&GF z?XQ~GcTLf%o#>+J%IJ1$$6}JBWVnx!QBNs)4A_(+=~Z z-$kI)=@DO&y6+_V+j70+h5GTo-;C{hW5g9nSEM;lPEx$l4l}%%^aEZj?CZBZulyRC z7Luk?7k@aDupPks)hRu;hXqeZ_s+S+Kkwe(4 z2_AP-iC+EfGv{wPMQE(JK!d## z$4UhI<6aCez9c9?B zUD4e>k9;Dm_mRa#>u>CDCp5#EwR40V6>3&cKUTng%cOu3f ziyrdqu?Xz3M|k#FG9F`(MU*|3=tX(W+d;SS+-on%W;|8J4v;-VNW zd(;rz?c!;oFIhG4t<9G!=ym^zp&8K_H6Jccv3kzxCp=qzt;XArvz-{o>FtZ^ z74B)Zj0?oTix6ws@$u1?)p&KkX$ix6S>mWKLhr^XvFkU-TqV|ctU10?y78ryybWF{ z-6%I~3j6*mI>vmB`gbh^IElR8E~4AOy7SM)KYS@Ia7L$jyqLco>F|I5qtoSth1#Bl zoc-k$d)=9@+Xyx46@`;OWQo_M>) zF5T6NQuuj8-SbKP*5dAG%=Cie9r1jjrI)LkrV*UqO_q0(H@C#+$I2-ly6J=870>eg z;lTb5MO_xIOBb`kqZ^-uWXZW;y|tp1!)CG1kw~4Z{VtiZd>L>xOcPGayKII#EEyE1 zDYF@U@XxM1$4foZ^ zaX$Msh9A^*L0uny-ZuV1D9V*I_PwjLis&JZ?);<=R%%auk*86mM?v#Sq9492^5-k6 zIVl4k)#=^hlZHAWr;YuCm4dcmh8L4|z>Djv#(2A1_~P}=6{>C?eems}MhV$7HsZi8 zb@!06)=Vj+$ z#;%DO{ziCl>;o0QzQ@ntg;QsVEF9vFC#|WfK6K$2E_6B}Cnl?c;{v4po|v=qld=7( zm!5P6Rz@m@BkSF<(+rE+jh$J%BU+{(@VK0gHDh}Bp1L~#hjhApBqM_5&*qn#JD!=h zmYg5V?*vC#`-O^IkeJ3gZMXhUUTmD+QVQ;v?+(JYp^Sw8OIylvWno>z?>bq>(+xCOor#MQdeT%>`vJ? z)$e=nyeiV0w1<8|bNe2-_COlN&HWbgC1Egp4?)azC-!3C#kbG)*J`)>B0@8AjyuaA zLD{Jju*nH4)Jfyph@oNZ`^YL+O*@y);mAv><+*CH4zj-58JScC=S!*!oex}N1o;@2g_|Aj97Z+`&$465xHLYn7XvSbejrstTXJ7){Z4Q|J;-h0Zw@5;<#FmehMCAuG)U#t z!#K2@HjIax!KcRH`{U~uaM5_V%3v=BUQD-38>=OCUB-r7A6hS^JkwCpdM>B_#dW{Z zXAbQ3rTcT0A?_CJF9ttquonX_?l`BPL`+FJTEF<*7&*r@f+OkZ%q@zaG|Bq&Uo>XX zBHLp`FD+lTprz_d4jf zo4cdiUFRe2xo64!b7qz74)pGW|4f+X^VGB#Q zYJR#zGlulLb#^CbzlRbByqxX+%XbiFfRnxpM0A{n@%7)m;!2=b zPd|}sP4SnL$4P+AN+DeE{sFt_FGuKsK|=Vr$(;>I`1mI4x*X$3FCug zaFY23d-hs}w}ZVHcrnA@a4nC&;V1ve-^jXS_!~aW@Hb5!e@)qDlHf0U;bk6wWAC3l z{zlpZUWUJ6;BRwz{>Yf&ml*u0!Cnl!SSNG9p$k9#pVr52x>~v85Xv<2zhBYM3&Xey z1r5?$VzW@*;Xymief`m{(JhH<2Rafx6NicT(|S?LE6K(c_(gah)>^z zW|paL>3qT#`~=Vs-uDpVM-BF3;KgcHb4{a-FQWQcoraoPA3?@Pn%B;6X2s+fSXteZT!xzB%slh1sIvPgNK{ zZ_MDs;71MiVj55O*(^=zUWYjGn%vy6d&C~@@2g5N?@qKYG~?_~9}mhCQ#B?HRvM|w z;KSNHdo~6?YOogrFP`i9{H;bp9yyNHog%XydGpBq&Duw*>(!x|M4$JltWUJYRHCn+ zK4Oj7be4a(kM&NQASpxiPJLt+G3YxMjpTj`{RGLI3~pPVpEqLgk@*qS|99yDS8K-y zKWeZS)BQ%ibDWp_JdX3c`Z+f4tG^t|sh9D#8ryD_Bd4A|9+VG$S642S9i(c)^Yg}0 zJbN|tyIlyK(b${4e-|goc9UtIMD$J_ z_9}kM;rG_%PpPp9=}208cVt`;UZX#McI zXS1Kkz2IEmbbBa&WN=^L`FSG-ADJI$_fJc})!O5NA2ryE>3%z|9Qr6P#QI^;`kEgf z+fVJn?-vX0=3E)*U2%hbZ-aV4as)2VpX}CIbp_AQ8!`CWJikNV%}<=XBa*XUx26`? ziT12tEse`=+lSI%2iCs?^p|9NIO$isYxBB+{{NILDG6)VRFmXf|1=KpqXv61tsf>} zKE;1=KI!Ao9T4|QK2*VFd>oiS6UGEWH+k<1i3BpD*1l35{yBBGKejWj7LNs2^KDh*1zOp&?F zWXL=fBEwZZ_w{`C+UNIOpWk^tUEk}vkAIfE*V+5L&;IPrIq$Qk!;g&TkJjOOybqMw z{=_(yB{=!GBh1em@PQvS*o%P|Pn7UCiufDfw~W8hy#M5HTn~A4Td{aZ9|?csddA;) z8*nrJMuESzm&EB(Yl%NH@FQ+7242kg8%6w$&(HW9Mf{EHA+Hhmr+P^E8`m@b#@m3G z@iz+mt-B;nmok1yA-)*=sKH(g>pIY8e8W!Bd8EbJJ!$=xt)(#UA@wC&R^JLG6Nk1s zbS(8KIn%N4iX2_Rp8@jzLi{GgMZ);{H^yK6d{yAv&_812kkW;Y!6YwNc|pUko-~a4 z&l@m50f;XKKWg~i0PDKZPWj`CTc?Q6;MYc@Vit0|34`kSAHE+&W~^CrdTEnXVz46l zo!zAQTn~Aez@HZUQ~_6m1_1?8Y5x3p==T}2H$!#kE;946!o15V*7OqdpD$p30uWye ze$-$u#=N-Ki-=+izc_w>v@f%q?tjCWz{oInCH1p?Rq{9C-QL^AH)}fA2ryEF)vQ-mL@;Hog)9ct-I)$|K>cwuW0Ip;@;VD zN?c#>-L+R6MhNfSn8$S=9-!!?wAt$h4E;XQBSs|%%59E5t1rKR^m9gJ6U+?`MKihb-?pRc!GoKu7Pbp-#X9KCgQ z<>yxO{loG1NFUh!)K}gQ@y~#dA6LWwVBB~Z#*OtDH|XnK{e0f`%>S?-fdWa0F9ttq zuoq)qY@52fORI`ze7)|z^qgtdCz`M4sjQ8m+hc|A6jApMu38c+%iaYF?=9oCDrpC6un$1KW3o8hAjACE5vKWeZSV_vMA^XbaW&H@kXGCttx z;60Umz3eA^Z@K;PMvi-c<=XYL4$5l-9_LH5uP?nQd^h}{c+hX{**g69g5zE{Df?pF zuSyHrNi6;u@Iik~CB}`%Vcb}caf80;oX{&eYULa!^kWI}#o$K`_F~M7bJH(0JE2~} z=c{Ntz@+PGVgI(+yRGu>l+Jv;mLv_f-d-5O*E{!qH`@z3^|-!ljlM%iQ)%9U>lb5u z5MK;_)cAU~8uj;8>T;c*7wbR2?2-^|c3M;)cgfc0?9_NsJ)RHRHs5ZIO?zgl&G1o% zkH;5-A2ryEF)z-z=d^9esWtq(U$(D)T~;FSVy~}mm8UAKx&D?)-w)=Gzw`awyhqBy z-f4n=aJh569+7YEay{Vey}sVu35qXx|3DW14EW%e#S&#sHd%yH)W z{w8&<)qVS!;~Bo%?sUJK3m1VXZ^Rh4mV!! zQq)2Ez6tXd%Gd5Qc}-J(AAo+4ei@V9OqU4z6Z#)FXz~4`?Fy;&20ciKF9ttqu)AVj zT;-Jcvi)V@e)PW8bJq>p!n(YVb1-~YD7;V3tR2~Byzy3kexI9jY+rSI$N!G-?+$o& zqxHu4Aify=TBMFnk2! zi@}c??8S(`(U$*j{zk?4+Y(9s9r}>vwEdf$bK@HDVmi2ZJp3i9!;m6%0rQ=}SJ6AaE+~P8!AN6C{4>wH z1@Xn;M~&^prIns_m;4WV#O;R{8aVbG%kNVWU-rd$PDVwt1~^lI!KJ9hh5hwD25mw0!C34i64+eOxEy z&E91b`FOy;!#niKisQz-AM%0$KFGU;a9xmh3&$6O9`j=82Z?zx^n=8_82V*N;K@*@3GzHc-YtkP20v(17YCe;>9`LK| zlwap-X3G2BSza)}2YI(}d@+pwRs0g>7n8?thtz8}`imCB2l3CpegD>!7sGWy-Ypzo z40_Cqp&umX#n2BD^J3_iC4n#LO7en1{PSO4U*j`v27j>?cp5&hm2p*a!}=WgkUemd_FVpX4cG8Q}{kGMtnZ^;17}Diy40de_sN;nDIA0594p#uF3ct*F&99;Khu; zaXsU2ybX96f1|+PUPuF3ct z*E9ac+kltxHwygimL#t;iZau@!hS9(O&qDVtKcI7oP{-JVlZ(n=*XA{qGTYu&j0cSv}^- zcpfR9j1Is&8PxJ`ZWcC|H~H7^-_5C~o?M7;P-C2sk6JA6*6-r;z?*kU@?}$o@3-$? z;K8sj{%(nRGM*pvWUR+L8T2C+44RdBnbvq;z_@=}K5n@4*crD~HNO8sK5DVNTfd9X z18-*dD8u*L_pjBo!dXF+9cqjN@=-(HEipcXc`@cgm=|L{gn9AG>3VmYhi)f$|2;x> zS&R?zQH$l>`c?K~j1#wkH#2;M;gh;PJnmPwm;B=I4*eqYKU|L&;zIECxa}}0G0YY0 zC0KtiU|n+79o1~y|Es>2F#aa`_i;nQ-$eC{zi~a{Z-4vm&G;KXA6_TM-$eC{zi~a{ zZ!+;hohHaf4SBa9z8L(d!Cnmb)CSb;<8_LXA6A`QFJuB>C0|)M3*pC|eL3*D4nCGh?9)J9^`GVHY|1jop zzyK|Vk1~7|>NG(dErD#@2k zp-vOzqlUa&IKCL$i{ldF+v@H<&i_8F{Nl!heeKBaQ%h^#I@;e(_-=BhQt|1@Im*KO zSA5KKxkEy{0bGBC;=X>{Cc9E7p&G{I(P64m4Rplxm0ec+TEy|eE~>PS(jUkr7cARjg4-NNz3*j}8FVzRGrhG0+D zJlJe-vXiiXr)+vR$3Bw&KsUt-yCHb=X_5Zi?|Ll0cRnzfMrwQ^= z<8j!J8tXqdzuM`@K;bp#7>nec9i@ZN^?V(lZvEqW^VE!BD}sUtA%c^7>+4 zjL)agJEw5*1@ZXg-sNUzcDEAzg7Nr&d%MG=??-y7NZY@~a6_FY$VZKjleM0We$jfe z>(Gjo)RCeLAB8$ikdGSjZsGW1jJxRlt1gG834YgjAAHDPIaJ9_KO3$e?}J>nKS2+& zKU!~$59%~QK5EFj1@Xm*zw!Of_!~w1jqATk_#3VJpY<%cp7A%{2E2^FQQ&VUC3S!) zNG(G`i^U?_g+&9 zZ}1+ojtVUaA2*2AS02vlNJ0H#sM7@bsBzvc>_?4x@m;-#-)nD@=l6rv)*8#}HWZ!< zI1f+z^BtP^aFl-T*<3nhQ9i(**gbao#N)r;B;<%h<(34rQ+8xPRz)b~M{7NfYeFg`bc@EL~kp*q2uMGI0zoru7#^W$c-q^%qs4C|j3;JJ)7=K@gCmi4UM7O*lwfOx6 zaCR9{bH!o1o^0O-Yp!b zi+S;Ouhd44?S*jhgnS!H@*m0EkVbsH;dpJcK8-#be&F{tsILt8;JBJf zj2n;ptGHpjR-tx-g-3<>Yv{)k>K8+uCdfyP^KM~3YRrrGTTJ|LGp8kAubxjPjjsG- zE8m~3%{6ZJ3aa4Gvoc+sWb=i>cM-rf#bwpK&##4X7#|$>yX0MYU3y`WIG_G+amk7= zUg{H4-ndvHTkJf0qL5XNCLi^K4}PT|)h0sM7@bsBzvc>_?4x@zu9B zn!$+WgG1O^-eAJM4i}5!e2MhB8fAf>@H#!sXw^skj z-{|Vbh0DV334E!B{Ec9K3H6JiPLl|K<8iQn7x6bLgTL`Qkubi7{Eb}y(!}m=u22Vf zOPqpIm+{FI>K8+uCdfw(aoae)80^Ksi><=V2Aw#N&HrA!_Fs5yJT8C&FCKL0?b6rt zk8*wT_W<|axz4-|*I}Gx^6~X$XJX#^Myrp`n?J&&K?Z)lRr&_*tNUG24PT?chZtQ{AwCU4XJ;JQOB^M2tD!y@b^21aeUXX^#r2C}Jm$sF4-)fY=m&{;G4#ulp^PUp zd}NNKzVfINg<=)OueKD|FNXOrFNS`Qm={AoNX(0&UzS|Uc=9s|KB%uumRF4k_3ax; zp?)#cX~OxavEMYd7w?#t+t9Z%mH)moy?5tDlD_=;jQvszB0ZxDp9S&fGvFWj^>b;d z+-}~F@g08a7jw70CBgNJVf?S+moUGWoW9AfX~?u6SqTz+P+ysf9sf`D*OV6np1!lk zt$OjnpW^z(pvSxz`axn|4E-Q6FNS_u5_qz@1RvB_CN1kuY@(!*PN9A=)M>)`sIlKP zwilZfe{tR*ca`s7M`QJsBhO6Y``38aM#q^U;&CQo_!SX8wcC#CJgeOau3rq}e;2>( z#&|Nr2lbVI`~HP>sj2+7-Q{e4s}S07SxPhgbJBjIm>1)DF)zk?%!{#JtR2XBGQ&q0 zKC-As+co{4W>TnM40W1tK5FbYjqSyUCdKrM8zOw?F>Jb_;oExS`Tm{LJJxrXZa&}N zbzY8s(D!U_t_R$$8&9#?>NbG)V|=Q$z7V6=E(F&vhVj3OU&8!i@^gc=OM7Z4XES_I zU-`H1-{@KnfWJr#Y&0sNj4oP3{Rd|DEIM4)~#)M;Y;O*Fok@izjz zc(sJT@$>jd_!|LU%=jDEGycZgfS2(%3jB@nOTzdi*(Bjd1nL(v{s#4gMB|GYf8%yd z#^3n)8Gj>S*JS*S>luIJZNSU;8wLJ0O~Nk;wuR%gAPfT&ndBvZ}INzT;HE{#;W$vW}A#Up&CdvYF>nfhXhnnho)L9Ps`azn=Z^ zU)mb4*h?xC73)RhN&DC0@xQwbJotCxsOkBE2iNrYzj_?z$#^{G$ykqhGUy8~jW6l` zAX4hN2l{`DJWzUnUi=urUMvgOP1OpW;>WW{`hrWBngp5fzXKTeyZAitW`>V4d=zl~ zE(tvNSDhd8WPBdXld=A1c`}~oceQ~B*Yy1M&Ha`2U2MshUQcTqewNM$`MdZ$;Ai+K z!}r_wFYsW%_jgOolkxnRCu2S4$)KOVf9AG~JA*`d2^{yk<-E;C+wRS3Tw|PrC)&kC zmRS>xfvxUF?vmcWzl+ZUZ)W%?!}r_wuWkFxWy5o&zblFT?nUZ~My^+!Nnz6Wx@IQ9 zM2rt%UX1w==Eax~VP353*+buZafsCOv^BEJVtk8?-<762%%FR>9S)9fpe425zsg=L zwtmnLyqV!644>5X!SVl;{MFwbWW^Uhs5`xnJu?WyKeF zm+&{KeFeBOB>au*5r6yJe{Wgw#f-mkJb)7<<8NG#_?t|;X@*tF$8wX&&Am5%Xm&kL zrt~@H)#IWYf%?TzrwQ^=!+9aT82qTgUJUwcL6LzD=9$Fex<&7Tk71;=pUT}$T0R`- z?f0%%wm7cmZ5TJK|MqWD>UKo?t7BHVpEGsxey5+%KZ+C&^|f%7PbMEe-Y>ppaf~RO zt2kI%Kaa4w&;;riL!BnbM-B5rd@=Y@gS{B^hwQ@-CVAzOyAI<%bhvte-0?N3e(LWc z;CmBfQ>V@fq0I*B7tM`7thbKXO&+sLb)pR|pJ_73rezfASv_*Q$N5xZ;Ws#4CsU0a zzO<^2bx2nN=L3oBG(kT|>_-j#AYWefzxdoqU20y?i%IoNw-m#`)GUUNGJKROJ0ujJ zu_u$0KisWuWGgi^SqP$=tzynb(-+{VLxiD|JnSso(%Ua2|mK` z@$10n`KQ`|tET7MwrBH{gsSai@`;iY+1f%JEsV!?nxG#f_M?V=kUty0`FNYtnVG;jBA6x1i_$>G-Vtjf|^lA7wCmQ15rKMLTz5j8YCO98R>_-j#Ab-}r zS+87zo8co2-*4Z)fD5iqmOK#@QIdHqoYbH9>Aqr_P!|lw;W|yw4-)%PLqEu4>bK^t zto-Zsk`5NU37h;-Jv&>1k2a9tqs}W^=%0+qCI$04y|e#zf#`dCZCdj%9cY%dR?Gr*YYOWE z64z;h{$DL;GTaOw$(G>b*YT^*FE&5m64T@U!_WF%4m-S=)_0v|p4!+>YJG8?COjVd zQDc3$)5FP6FNxPj#>YcDq;tvQeZ{KUi4uH7UV`s0uP@HK1@nW%ycqgH-tkpTJ)jyW zb>6qy28&)i>|NvUCNSSWEgOZ}WL;X%cNeoG!i2v|z>VuPK|e_B zM-BZT?~1G^=*8s4$GsZXn%FVBzXTs;_^8g4eV24jyVH3UwW+PWBfT1sUjOv%7TLId zG2RC_z8LR=gEVY^=rSSx81I8nwm&i63<*wc=pTjfZIbXK`ar^usG)?vQK(;x_#5AM z5MK;_)L<`$^DzEKfxo?#@Hal5@i*Rvag4uF;BSmy(pwUK3H*pMenc66qfoyX@i#s{ z#1|v}#`TQ9QN-W4UQWW_gf;`r_#5T?O~Nl}QwhJM6P1I`Wd|Q2M@)BK_5XB~I6iyt zy-=|mQDSwW#p)N=W^vng!QZYO+>=7Uj~dnq*7cF)(@)purje1>pCVQ*6#Umy7iVv6 zeAJP`@gR5Sbov_odI!P zmtRsNP#0RPelf&tt1GNCkgLkzc6c~1tm~T&19l#ZqU6HGC9f1U1iZaJJ>8M1B3++% z%E6Czqn`PZH~U=``(!Vn3mHz`y{%ghTOUYaJppIcC%fZCfwf2j`8VIjE$+pCFI=Yy z=iS17)R-4H%GPwzdAyzb_1=v%QMy#rR%(3{{ifEL;M{|s*NOe!*V#J4?+)t;IEU;l zJzV$fYCaCvX~KE8upc$%#j0h`$3ImO;$h1$^jqjPx#&8_XH`c zezC0h;-9U*33cwEejLNc>zzR!didS(dg403IPVsY)5W|P*Rd3X) z2S{1_Q&xQO&&F>;oD{=H89p8_1Aa_!U&4Ry_;<$ZiQ{xJFUIkkVt$p_zYhGt03WPl zO(n*S$6?%9k8y)uERGNKAmO=}I_fIlzg)#kS9Gygk(KErW3y>(wGuSns3M;IR*S5x_SV3H?~Y zdmX$l!FvdPzT@W+zJKDscf3FGdM-b`SIJ?r^!NPB`D+KBQ4)AM#)t9$)9v-nP6y&Q zdh&hpcb{L@b5quRN$hvu7kagL;M3VMal`vOyeGr^Cw{NP?;-fPiSP6HzJ&jd@b3=m zx)!ZB#s|Cu-sfQ)NO-S(Z=Jglx%%)5(y{rS zu~!1O5CfHrvQA-vw64y{{c5`+X)}g%T+qsk&xgd*{42E|?5sY%7%X)S!_k~i7*JBRA~k%F+%3$`r_ zq&pj&k3JR=MHSh4-e)-BIza+If;N`${)zjc4bOLI*Hj*1JelDmcP02nd9mMp3tLY- zALembkKdEA9>0fRy;vLWr)*ymcL_dXcrU&CxVipxV9@tx>SqFJe#ZSPH~W-oZBh40 z?%z_Gf9J$?nQ%U8>^F_=#kj6WUZI(9Eya%fyB^>+I-}Fu*t`et$M|+-Z%CQsVoZKi z4_YugV2afK|5f}F@QF!<+yI(=qd|6r1RrJisMzuURKKj}JI1ku<;jP?cdW;}80#^Q z!}_0X!}ETr1Rr7e$fJ7qZr!B^>A`W{1*JZT^!DO2Q!l@+t=+z$1sH zW%*5Gzto}|JG@$a67mJZb$!3#?d@@X6yLuX-wtJ_V@f%{1Whq zNne8{D{o9|k-b)ek1~9}egDdO|HRi*#{8_{d4% z>pA1(VOq84T%z5J6sq9Zzj35W9qn@myEap<68xR<{S)V-#`_cFjC++EbffiUe!tu( z*P?v=y1{&(!tqrXJ8wRtIhyxle3vS3nqT{9N9MNuq|#%kbpDfH#V-M$m~3)!*gN&_ z&9fOk%JBX6{VT?g#I9p2d#^JTd0)c37|(-wG1g;VjP+vetBfZze3aq)%j=8lG~x4M zKWeOZ)((3wzvhe7cLoEqMoE#*()$sQ|K07H@?yZba8;e8d&jM**PPoPXR78(tvBYy zFb*W<#n2BD^J3_iC0F@HS@v&WPZ&PJ@DZb0d$m{gb|#B_Y;xmbeF?lL!}}-9i|ZG| z^Bwd!z8LPGpx@~={BW+>SpIx3MBj1XxHS@-eBCg<$r64WNi?M#`WcN{Tg9M&D=lS-)`lq*%0rDS$)fPT};-#I@_!2x`WjH_jmDm;LQvlW%z#k z{+)AmSj2}~OKOZ``rubL^2V$t%9&Q{UO9V-@*(`(#P@m3i}Bx))bHN*oZQ1kE>gcI z=ARf}%$H4#E0^oi-0gcy4rdIMx=wg5itQ)3?}+K)cNNo%^#g8(k1%{v*C#gqSM^W% z#orxdz4ys_u8Q5ae%1F9T)!BvJB}~LddA=QzC--&Z~wh<{bGy<#}{Kg<8K@<;%_qX zzP#RNbiDCFI?>;}X!W%Ks&n6G?WH=c>3fyNCMloS(E2yVU;TX5o2EsCA9s%w>;+K2 z81j7MeAEzM40d>IFYaG8^^2u9mBP1S+qpY-S{rCHl^sVyOR9QRy#IR9$KF&tA3i1+S!6OXb?~kmF7<;&v>oZ@7h8> zKh!UVJl|6Js9Ah5*x|9g_+&*$-AhML^7-I*Fx8p3xXGlo)Xe6c>aG5($>p~VCdJ(J zr`G4IIc18ohHzO{}QxoDj#dl zcsVlcb{4}&7(Q}QIlnsTfE{hy`Rk>_U!?he_u&DGPD;{#=5SuII!&O*epb*gOGbTf zd~oZJZrKbUVfcvlx?X|(0z&9lmx{+-EjG~H@~4&^SNEXKZIq{ek{7qc@SOw(>^^*aAN0+O!Tk34!zbD35bS`UW+4uRx(BCCxl#Qm; ze#+5XS66;+wbb`zm|v_;6X<1qpNHeH?9Fg9e3aqi*MX1!r`oFj7nh~fI*FbClfwbK z(6nvzhDs|9x%Prz9UOmg(;(GHy8=Y7ORP>4jK_X}&@W4NYCY^)!(@`p@DYZO+-$oe zP{r{Gjo9*icT4X-aqUR>(sYzE)%hH$>3wD+#~Ig2d9!!fM81E;>K6kJ9AAv>#iqeI z<&}@5{Z^CAlr5uQdhzpOe50=U+ql+SPu3mR?OM7>`g_R-#e;rp&(`5M0S`#AI!&OL zWj})Bu#9K889vJJ@$10H|5NR_|BFj_Zpu1uo#I`79l`@?h?Tm>p>NW8hRW9HJ9IP+ z6umC7I!$n1?57I-vgGNK_*0?YU9%ZJ!tjwL&zpKAHBF-ZpPOBN=pa9Yhr$Ww#s7vp@?IKCL$i$~PivB7It5y7~Xi@uF@xhT{L#P|v) zWPUBMu_pEVSTEH1F-~fHxpTc9k#Fvb-hajFGy#sEwQn|MxEVgm@bUG7`TuDt!DTJA zPGUHA52?OzzP>ZrJ>gRO(<`O@1Bb7+J6*JEi|Bk}b(-LOVt&-17n6@?jsGKIQd4b) zk1~9Jd3{$-*Sp(1bh{{ivAkOxmk2M88`#`J-AZ1YANMc)PyEr6fS9`PME^c8?3T+{ z7mm8(Mpb9+ZsI=AT57$Oonkz1dwWau!#rYjnm{k+M-6&0+47OT{>;Ojvl%|Z@R8M2 zJr;zwtJ#GvjXr_#5Mw zgz-z@M}+Ys!uT6u{EZ;~#^;Cn#fZOgJ;WCy{>Jr;zwtKUW&Di*e`EZTFn&qkxSGn9 zzJptKGLX)D1LGl|8MLv4?+ws@RISL1ZpJ=JKKORk$hdIP>x6t} zV&{SH4WKW-KeMET`6)8cwAa8{vzJS)Hyrn~@}*AgdOi&&isF@(k6O%LY&q+TUXZ~J zt)ImuHZEB0{fTpi{-Stg<)ap}7muq5D{MBkE59#@o&R_D&zk(|R+v+^==J}%_?lN( z=KA=*6aC#}<)g;my#deUty+y{$w}MOKo4?H(}(_-S6CA5+;$7|=dC4iXN^XF_a8tC z&0T{JZr;SNyWZ8$=WWl_;lEdm;=X>{<%RF#kZ&61#d){zcW*IXJO$y#_+b8;%G{nW z->g3!!LI|4la-Ge+Yw-Vy|=o%E7oZ7^??3=oBVLFNq+16LecC0Z}DzUJ@w>5d;`&S zkd=>G%w9aNzR{KGLE`V(fIDw`n#y+*N3!EU9n+Xjo@7K1-49>7s*|%Zi$+9G6YA48 zofCRRN3ERyo#`0ojP!0J{+z>kx3FDCj2F*GxG_G!T~m3keU|^`Mv6aObfzZmamd!1Kz=M=fPHWE0$WSYmaw zt#JRu^Fn)IvrReKnzm$M=}`ZeN6sX(N^a$In@;3&Sm^d!8wGpvAcZWIOPVh@PSW+$ z9>0DTi9+W#*6PE+!!CsUsGu{t#DS*Wa;lfFkV(ZYB77UmglX_b^6F< z!#ra0mZ|$*m5y78YqL)DtLJ8^zoV$9{VaX93UzkzJW!Vw_d^@vMxk9(X``f5w{E-k z+6*6M_~^w>QE}Eg=1{jU8=_sGO`;PY?oO?^6P;C15L%@>swKbP#|>J1zi7LHUr&cg z-;eZE`JM&mhkVn}#(B5E9t?UhUQBnrylvj~8=n{BgYh+$OQH{{nIwwecV*>u7PA+J zG~2aXBe4Cy{(k0?dd>XS`APhDtm(Sd^tfNd-{}8m{Ehx9{&uyfm)y~p!uMJHyU423 zg#D;tU2kokWKd0W_}??0_h;MocaB?q>}o~D#>=YHg#D;tT^~LQ&%QZZ+MX0vino7)zYdQ|D zgW)3#-*4Z)znT}1R4`~(=4C3ne`VEa67xsg9nodthu6REJ5No2S6Ro^lo!K1)kzP& zE~uJM!%OOEcupN7wSO@$hH)SvY!^&PF#&IqzHg7kL}bM~(eu#q7ngFBcrRsjtNO5yt1I zD(8Q+WG*??%kAx+M$@I%8}nkgPLP-vLqAB&i=khZJb5n1_<5t8EQXIVd{X;W);xc= z{#Wzjzq&8*_2GR1`rYrBJNot*$M*sB|F@FyH>rIC^D_P>s%QL->k)tZ+kbDy-}w0e zCrHNMMD>inaXsR1GVyl0)?uD${k`PseWf!!)V312$?c*q7q=z3hYQCjjI<>qMh+=m z=on1gJ6AaE+~Ua3lhJKU&I5gCk}r4JAxb5ju)5G(4|SR#pBd!cg6jf5YG{KTFncRq z^(vR#Hl6Kqb*U+JS1l-NImVVmMF+Y$tuv&W-mNAO^BA(`jJZnKzChya@TO9~tOZG0 zW8BAA!J7CC*_)v{bQe)~TB+o-{ke}s{)yR(MGlwhX80(>N1Jvn+&t~0ABk&sqp|0G2NK2Xn~#uv)8llv zZjQ@^`%MJ0Z;t%>xwKSnH~;>Q>onoKTiA~pfSMwEGR7x&{%z0sokr4J%co-p#b3*T zaa{IDAK3lWSN>e){p>#m2by^f(Gss;EGypyp6@@~I@$~$VfaS^4+y73gNt!@MOzQA>waNaHKM-AvVAbT>#XPX(e_}+d) zDtEP3M6*t1Qv0{}`g(IGD83NA|7x4{Y4q9fgQ)&z^92EZhL13OzkUB=dokb?lUG`n zoe2)zM9W9iPR>0q_}9bnzssLia{fmd3?E_mME_0zFP4vxT^8$c{bH;a(~7 z7(UAI(Ey92oh4)(S(cQ0?49*eGN;Y_W#`InWGNf;o%{K06Mp{+seMh!!NrgA`H+3y zb3;3Y;@LtR7p~KU^KM~3YM9s5{#)kWbUl7vjF0gn%J>oRH_G@MMf{E9W&DjI{>JrC zrwQ>lt_MGAzzLG^HwyfX@k`41CGaE4_!00o%J>^a{EeTF@i&V28`ndfCdA*k9{i{Q zCrHNMDDXGNFDc`fv}5ET@6xfUbbUcSU3$-!o!35?tNw*sAUfYu{F3(EN%L}09t#7pYcwF#9f%;dFFCFrk!Fcdbhc-x9 zSO1Yy?QMJHk&30kW7@|@kOk^dW;tCa(RRE2vh=l6sYUJr4~LK)^n~}Zn+v-(ph*NUdXGB#<2F*C2BEVvj_l>v1NE;U zuRG*316<&r4sDRIt}Pz^D5zd@ia1`_?O_}dP8yFf*LUw=NO$b_Ok9%CpSJOwrW1U$ zHC>UlXvU=b8CreMpB!I5{270b#D3Ll=YJUUIA8$RW4~&sUko^~Up2%RgI-Kxd^bM~ z_k8i)nHKN*nCfe@gyuc4GHQ6MKx;tKm_c2J^y2R?m?!u7da3vLJpmlAlwUQgUko@f zPlotn(2GfoZ&J&B(ryi=YJ0{-s4`ahOS*EaNN)j(k6SIh5qEdqVGGh z^7+F&Sc2a*!$%lC61jKb#ats>awB0>q+<(PQGez9(%LFZ?AmbL*k5`2CcCB~(*&N3 z{gojfHQ<8yVrc)T{F4{6e;6P1*Hr#0dotLIW#Ra!UzTXPC4}l4sI*l0F^^4*B*smJmi$O0YF}~VoGcN}xq|+`waq3M&gy$)Ye|~uS z9kZyPw-?K*Hv#9t5_mGhM;Jchu^~-K^@KNZDTs~>8tx_PuROlNky#$ETk(B`{gts_ zHTGAAeAIvo;)|jEpVE+@2jlzC<7Bsfl|32k#j+60_}uf&k>D`;0)E#FA7S{&bThwwJFmEs z7YZN0T|DC=>aTqKc1XQuqrdRy8TMEH++gj}o*F`Z1njR2`KaM~AifydViMyMJ5H?s zSJ{)nUMzNA=$~^t;!5#pH&V}}^FCc=OA^ZBH+!P^P0W*z6u0Q9+_#jk_cWJP_ddVg z%J&o0FNX6#K5A$~d@;2DQ$FJR7vuZSZxGK?Fn$Q0(e|w9>yhS_4j>~5FD8olTBYq^p--rzUMr80eUQY+b3iURUh)=;SpR@@fL}^e=%gnRC|5Z6DEk)%Mtj5iwM|?ZNsD7e{fulca7n zug?W_ngB24-GVkquonX_4t(3Ga)sJ4qLF59@#Aeg(f;6bCH#&(sn(mWr{@+zc0P$y zU2Jbl_UU)+J!?e-xpd_DkuPz<^u6h!x!ZONc)#xQS5kM`M@%|RS9EV3O&wd84@&AN z;4PnNGRLN66oEQoP^SrSLEbHBg9Ljq{O-+fZ_?{^D1{Ux#wlp_jOTyP2?_(2ycpMk zTHb6JdS1Q}{i9Xud*3TGX~CHJA;q;vk+9RX+lBrQ`?8JE#A%w72hu_B9{V-49YUPG zlx<(6qQd91@Ee@2lc`3b-Wk+s0$h-H3)&#TUJSgrr1Grd?X_d6lXl=-f3k=qxJG1860&XpI=^i`|a&gj;HzS{a;cqy3h=> zG|dj~p5&QAv5MkXTdt?d4hh9)>?zb`gE~!s3-WG38zk6^ffp}1ZfkhXW(Qq&e!#fZ z_Fi=UhIET8oi*h8zR5fLY6cTm-|7DH6K#q2ikK*;`g=&9`U%&D%->B*Xz+qHWy1U0 zlmrX2N1b9x_o%kbUw(?E%d19&`u2@v*Doh`=fmS0wQfWas2>M)ngAE%-GVkquonX_ z9#$)OabQ9^c`)#cvYpOhwjQ}zC!JrlcvoOVel%L$Bzf!iQ4U^v=T}~tNn+Rcjtj1y zOBa~TA9F2aKF6~u=uF|9&KBgctGUJ0_m(u_tzXRD_Lf{f%lDi@}c?`en)Vbrt6hsku_Kn@RcUJ%>`OlJIT|^*w0a;*5mnrh%j+vPYF=(nbRF z)bFl4uzc)Jsx+cJ{piOiqCR`vsuv%GxO%@mo2MjHZKqH-5b89+c*wg2ZIECu23}mS z|Fo6-+awxkf9*o!!7=ohlXcJ5ie99Zs+;PpafivH*A8b6PuoI#M*19iQJPFvmOOnJ zuq2r(HE3M)!zzxin{({<=qK|jnfoep#IN=ttwYtm;*&ywA>K95T7X8LK- zRSS}oxbgbyR;%dn(6-exr>x?5nkcTcTkE@-wCR@6k*x8cYPTKNc~-k~y`B?&8a~d6 z*PDPkO@IsXZb2I)*o%P|k6HI_X~v`|q7=WkyRCsxe-@6HC3jW@taNX_h~vV?+c)=D z)_1WL)k8jN7zgpi;71MpvgF064P<2-PkLo++a4c!45mp6b5z@$_N2PcUca1qG>Eu9 z@1k|-oF_Xdq9pTJIEA{FP^Ss>kar8( zAi-V?ym(Tc_pZZoY4pN{%}tXh9HQ0kA4e-xd6R%SvC%!+BoU=8y-NCh-a_2(ZOp2l znL_47?%2PsNeXozxyxnS^Micd+|s?<8-2aUWsXw zolH0`JYw)fyO_u_Yf(MqqlR%1UkrZK(EtCINm_rjHF&7#zmnK}OsG9LR)x&A@qIFV z^IG!KIy%wnlM~g|h-hwdVJXM)cERTq`RQ&XZ^aaofvQ{S^e!(}x)<7Wed4ozm%|Qk zCXg=(>NEik$h!q?kYFzcUYywN@V&*Vk!0SFjYqzv{`K{JrQ;srW-L56;5;CU)D?|f zuSoMM&_h0IXhVE4_)$au-z9^~J=Avvj3r|8Ei!&rn(i<|R1f*6VLZeagC8~Yi%I9< zWBT1ccReel^_it_XV_BDS_9k)A863!!NEik$h!q?kYFzcUYs|(dUb9^ z3~f_!Y`uPu9WYa3v#HP2X(NLBI?~dfUr%dRsnR2rDajj~ZltyEt<>vVcLOOj znV>LsmEfOtY6Jb(#Pd}ScEH{}#{bH!o z1h^pY7PLWvy%_AScivAsrc&n$9kc49*7)>1%J>^?M9L?e*&ItJf14Bc{MCBe-Rz;$ z>!Szhvbj&j-7-xew_Mk1G@c{i&92_pF48H3UjNd>?rv@lnPyb^#M~@}<1PPqzxbNP zF$(pIp-vOvg1lSM1_}0Ju)B`1D@;9NaFvE8#w&(*It}YeCV#wTFy+7za`f?%+NMWb zNu_n``FWKGh=EqcI{On#>9NvL7w_B>{0SE5F4rqgPbNzThgYc$3ZM-iCcasq7ER&2 z#Y259T;-Dq)Psil#h{0L)X)YAe$-$u23{PS*JA(c%2dMEm3Xh3(IBU3GMP3^ug zI@TdwDb&}7`o(|?@=-$@B=}K-JsWuOh2GwVd*U^zu7nqJypM0*>Ja!)h3fBeRX;U$ zDShNKy3v5)TS#N~d67|%wD@sd&$a4R^7YTZOV1DQHX8U4OaIw-Q%(u-F$T#W?p8Ol zrBDYP>K6kp$VUxrkl;rR_H5wAQFTn~9v|mUffuJoFZ9UVwU31R4p>mo-kmHTrn%^p z_W`o`;KcIsd)w%Ovnw;sq`UI{aB5-ZkaHW7$V<P4EK zQ5znor%P|DdfK0RGKn9T*!uQ$qu5d8_TnZ6{+ErY(VMsPR<{y(W`o3e-pPG*2-J_m z^^3*wQG*{f*t3BbyRIBwG56gZ0@qbjd8*B}iu>&a+<092f=id01c|@D;W|x_7p$i7 z#f%qo+`SK8+?Ub07mZxnt@G*q>*?yKB@srk+sW*6foc5~PUXjGREM?i7wks^8{Mzm zc_)VC3{Y6Ge)t-$pM0X^M7DMig*x?6zZk9$@=-$@B=}K-JsWuO%=4aZ-<+bUBICuU z+YarTWkSg$|83KLbPpk)a@@D=b+fW>b9YScFoT*RipBx#jMB(!=}J zy;mQPQ>W0^{XOm^alOvF=PrL_k6%AQWUPQ2vs?YS90?rgTk?(QQN5Zxp4 z_ZuGJn&l~u4VLh(X1bM+~8ehzKF@bsGO4Nt+si#Vdv$9pMPuoCa z5^q=Rz8FkmRJJESEt$rTtJPcc<_wo$>g{2XWH2P2G+dU_O#hsazp25zPxlqeBIsR* zaUVKdJwTvdB%BBGQ9~Of_)&vB8+fr*L;FGf$YBb+c&f$=o$KX!WI*bvvswiq|T1V3-E7XvT$={4}^_t}LcRl~pCQ8j&9>Hx zS)guBp#CPVUo4uBTH@zD3hddyi{+EwEa`XOhoH-o*__bmu+6BA(>QKCKx1I5yOF!Z z_b;x~1bM+~8ejZF!i)L&SB`vagug?1*JuA2rysffu_Ett+pu z>GhY_H)`~NImcECdC&0r7AAeKYi1HGIxp0bf^m>{3*w)l|L>CDGLEgPJFJT+p1s=+ z2gf%M-sA9jah)c}3s%$kV#bU4`7fUHnYeJbGVOAA`;rwMS5sy3Xp;7DUs6A`_lCvy zNAcsn_o*%4uG6#QwSelg&OeALhe34YXI z&jwz6vGKL&7Z={C!M(8G;dU+TYTqILp}%+0>puY3>j2p({!s@8Un zr}c)_&qIf1(j`81Z92C)MwaA-ZJ*iV5ZB+@d*g>@*W;XTLj7XE1^K9<4HEpQ!5DOqo5l@4tCM)oSG|qUr4!- z|2e=jhgNT%+j7F0EYkF8#)1#81-wnqRU9m>pGViFE_^dj^|)01VzGSG;71Mq$iRy` z|FP?-o!NPM$NlU5EAP%wZ@sN2Z!2WdUY3^K-t4rZhX?oDc_1>1vhNP`a`vr~CJDRv z`ZbRj<@jxUB6XL1cc8%!Vh^?~OW=BQJ73k|TMkk7-GR=X_bno~Z4}q5SW)j&uZ8ae zu)dS)WZc+U{{DSNv%YhIt?BN4BY&c9c$)e0QK_re@dtTO8&3 z<*p@f7mYqb*>?vz+40Q&_=`dum-<#cZ_T06{CJqRNo@U=<2;>d`4BDl6>>?W)x*68 zFSIt%EQREgYqX;2oy(nK{9LuD^`Z}9+gEAO;)Y$!YgyK&x_eH|nEny^^;}A${#;+*eMS3?{Z(jlNj-4-`a)!x$*}fZ-{QvI zk@Mn|c^mNB4z|yX%xOg~|7bR?-Ed7(cCW49^}!9PZDsO9hgY5H{K{r0@=o~E#&3(C zH<;=|U7u}q8Xu}gJ4N;%`qappR!Ho|G(oA`)wb{K`TW6NM{-rwH`1pPyD{C+%X#|1 z_QH46*C85O%SzW!W;dp%G`?FiDpRh@oQTMntpAYcrY8j6k-Cz;fy3C{X)X&aj zknOyeU2UgRr6&fa&PgjNvv<-YiM^9Ddu)!q#2!nLJ(kb!AhE|%u*V*j*kifgOk$6v z5A>VORJv$FcV%x#ndD;3^-!k?aB|7wi@{G>($DS1G}gBJ)LU)R$e8ecM_=EGC%1ck z^&36ZmfX3Rax<-2Bw2L3!sTVVaB^LD#mLbU1-?G8@}tX`5&OxHvpr_^*|(2ub^W8` z4*NY6&fC1ywro!KD8lN%lSL|jTw0?U!1W(Cb<3KoD$EDt0`hm+Jk@a`z2?`wakE(z zO&sr5w%^2-oXxcFvS^9;a~{TH*-?G@yzj;a{JdCSXUhct{szK(C)Vq%(yJcTOoxxp zWck4it3ywZ*|dn@<8k}=s{UD)r3dKqWgF&DwOv%@)tY#Z`Tc31q>)+&0t461y>7 z;-c0!F+zCHS>C$u@J(w2D6<<=H&4CcO~Zxf+t54jT0GU;N*C9En`}PFl^)$WJ$u{( zAwD$TO+F{Swlp7WZ{dBkVEbCK-YR5GgnS5Dyvf2ui!P?wd5R~_u5hQi5_>0QypA$^ zY|c@MJ(eaid+acYJ(gd8V~IVMB6}>?GkYvu)wpn3*gbo?Cec3l<^iG35Y%bH>j&}0 zV2_pPxxJX~yBP6cS=Ch{XA|FQPvRL;@cQc}orzn>)sE{^)HWuQlBxP%!k#3NS`SXF z808??3$J9X>?rrg2{P=ac4>qSC8v`^f4pd%!GGtjZSE<~H_sr04!vFadj3(88Mtil z*PugOfBa78Z@0V?cpGr*EZHb;<+76$ULAbwO=TLLZ0@kKX`~N1uIqGC{vh~kz|peh z;w66RO|}Z}<#@!@u2n0-s>Sm?-Wg}QWkJ0K9A_rW4;GveS(3Nkmf-nt+eAYx`ckJv z+O|(v?T8)GRDW*SiS;l0(g*vk+qJvwOkE^)V|u8`=J(Af`||m8Ds!V&7z9&hH>PLL z3(u_oC|fP-gF>V%WWvBy$mkL7x1 zkEO^S%k@yF39lc-7lS=kqEE^KUc5l-n&B9^B63~L+}||z90@9lv)28vg}m&M-lpq{ z6p}nkE5N!*GV!S1vqmXE*ngG5Gos!u$|c1Xj%^du^T@oZX{%$l9j9>q>H8kPab2E8 zs)`3`j2N6sJeqhrj9z<$>pRSgXsLftXu~+$=-C>k2@&M})w)F^ZfDRVsd83+cYVn@ zz0~|B#gT^?XseLE+1d(s3bpFN9VB` zS&G8*8jpka+o&h)k53CB37T57ebcs(CO2ehlKe6 zkMi9%?VTGfq%D@d(jTeeMim`4M;y#BB4!RRS9+|q{>$sj?6Lg3a2}A%9xJMc`o(ZO zvd8{qJTQ-#oE34@;mR&M(RrV~S#8rq&Pi0iXj-ehoLIrG+vJOh(y>>YNadB~C)ZR8 z--pD`-*M&nPE&oh6R #3Ln$+?9oOO>@$$?#A!rJa4&lFUX&Q*F|hk|kL;w?0_u z%-3zsy4qd3PH`bFBkNVj8*L_$g}gQZuD*CBfqXY=aT@nq@?mSc0_Zkccgd21H}Jb*HoW* zq2$gI?bX$PzIUI!y6J$cf-{MGx!_Gvg(o>t-Dap`YhnIN*80ujhxwDM&$2V_sfLjH zceE`QtrYN*I(^T*-t5i&lozxg|FrRqjr@9Axa@A6k+g-kVLfBp<;?mNW@a} z#6ViLxm5X@Um$^bQ}*>QPE*-S?;NUJxT--ERsHgM`$Y5ITyGhdxxs1JE((6XhZNVo z(Vyba_4B?aUN(Cov|(P$#fOiMn7xoX6~At-vObLSHg8=8kbI7B@X{FE-& zi>G6fPknrDdywNfQdt$NVjfGu4m)$-=^bRO@cb*?yl+TD|8Rah;El4J(#xyiQflot zr*Lp+Eaz`?n%RA7|0RO+;_K>*W+_Hw(Wb!%J5Nw@p!c+n>-G5(L)mu+dTGwWg^OK- z`24vU-zy5PAEoTO16?=tsi|Go0j?+a`Xzqdm`t19{dVcrxj*gbh;Q2VQ8c-9PI$ir zyw26<-5I(VNWMGJa=qlB3Y}z*_kDD&TwA3KIxcAC#pgrf zX_e<$OHEJV`J^0_op@WrgC7rgm49SCRsOi1EZ)`en7!o=GMBBZ|465}_HB-GUOe{J zyy7{Pz35TLhJRR2E6@4lzI5EJbM5FPiQPEo$?<#*n*v=vf96Z~`-?+5Qv-?JIA_YH z>s>y-68Q5WlV!@4#cgT+mD-Q@lzq){JHBc{T3Am$zT{-1b!*NxM(Nl#T!Z_ zq+QnycN%pez>Do4>B@QW2aRSL3*sH=n%Sj0?*ZY5nVu^ZDYE6e?({e<_eRd%}*jZCemXVeZG&!>j8{KAX)x(gim z_|wN9jeBc3i?;!9czW;R&pH;Q{^*{?)0|h4R*V(tCLqdccK@n zc6h*s1EhV0b67(wA5w6#*^fa=!u@h?gSWLinkSKyvGy|qm+dCKSH5iN`*;V1dDWFh z%^bMsFmY%;(IK*N80l9~@2PrNxhB2g9Jk(MrOpH6lI0o~r5zG~e_QJHdh6uF!uXRcZ?^Ws84Ck4 z*2u&IyjW>=;+8SJ!s!%?%DNg&yV8Bp`p={5SkqY&yD?pnobu_)C*giJrh8a{*`6(w z*^TKK8-a zEwIOeA2s}bz>BpGDzqQ+=n^s1?fKsEPkXn(Z@Z#W#>S_R;Xy@0a)N z-i1c(ELmeTz=rOV*p2DrK_h}j*A~8CjT~sSIKFx-Wp-nF;j?m9TwWZ%e!Curd+l5o zOqt!7+72_aH$JwH>#yv7_qFM{wY&|u>a7_&Aofour6)6QXg`YdBrO>){{DKz{*Ie= za$d~ros`*QbC^ArB6}>Kze-|{rN|!3^;r^oEJgNMt{1Cc40*S}9t(cda6Q0_b3M!( zH9UQd^i`^i_9SQ_2SfB6vi1mYTD~u`FXNRy|wB4 zb6Lc~`K;CQ!edStAI^Bc(gf>i^cH#d} z_vLXpJ?;NlBO;2(Qc@9-HBp)@Wv@gVMF@pRC6v-in@Xikl898=DT+y!k|MHXPeO`p zWv_mp*K?n1&i6a_bAESuK7Bl2|6FFSnRDJ}&UEhcKG&vo%4!XE8vnV2szNXZUYu}V zdxl4R0fJ$zm65%TKMy%Gm;XG>0Ysk<8|%7`d;fNRc4?hViXE9B$>hy;5a}=F*oXbz z&4mYevEGn~e4RmVNPf~lvsEK{ptFvJNAn|15Mwt+Kl?5TvbJ|2=aH$8l-jmE)m)i#C5-gvxpEqmX2q_CP9`L0$)@8jh zUyHX$oU}5YYlDp$UaYn+rMPVLHU#5ZD;aw%-+5p@V~^$3Gxk`br|hw9#slZ&l3iuf z-UQ5GzXQ|b%!YR}eIdd=M`-;9o#G27ec1Q7*tx$R*^hNVU+2vWx}xMju7jQjZQ#Xc zip%cYS?P<$DrS#Z;3$c@cJ~{SSiTm8PX4H=enZV*jXH4jC76W`t#bXW%YCb?Amt8GEu6r5_;fAdB9 zCPB%~6IegFT`pxe@~z#GwN7@P(b91A^JAT^!ZIsz{?VdKzS|Xgkhs_zpE`Xnb7S!} zPCuqM%FBj~2fUr~di#mzZ$+n%ukZM>?+$#O$BW50;Kj0j(ca?*q+{2W11{f4aKzn~ zoi90j?+D(sHn#HM61u z)$f#yAMMP4|)A*;^$R|Gl!nW&M27lmeGxsrYXV|8P3vWh~1 zlXEK3M`bn}r`^iJ;P5s(CUrEM~VWy0JO7IDWZ1%46)B zz~8`L47_-7@Q0$FDmi#amQrc!>T_9P5eAz8qtgAzTCH^#R)TUv3&MT*Tw}!s1$#U}&5MSJDq3uVtcRAxtFiJ3n~$VF)5v*B_`DTRIhUFh{mZmLx< z-dXxBU_sRY{HA=x)G-Iqn~B1c*wn+R%sOC%ETz@Ok4}LxN}gR@KCj9Xk^J zq)x|dK6jEO`pYq;2Mjf8NdAK6hVAFd_je%rar?W(KFmtaB{-S?Sn~3Nk^aYwJv)uz z?O-nkUR*k@tk18R^YX5Z8h7wX-K0D?p4XFvo(HzF-zBR?Ex35+*ASwgJa)pwaOb%M zk6UGe{-Q74h`yU}-FL0EBZ=O1x#_~DrV9iYoF|``AB^+^J{yL&gS{AdG0X!Qba}z1 zgP~b!(57WrU-w&;S(sCA93!fR7e#RD>El5g>I6f4G5Aq~y%>10_hF$Px{d|tL&M6B z1BKY#7Yxd7Ia{Gp|_RGZJeU~!Q-V=TP z=W5HrTjVj|1Igt3CjB%%7}r|aUh56(DF_GHi-8xbemnQ&%Gw3$Y0rJv>t0YI>nV49 zw%aWsXR`lllk#)lPmv?~?eDOS@)TX7_q>*{Sm$zoqA!{JYfG0&%0%DoL)Wm0wMDr! zzBFEbFw#Gav1bE5uonX_rsu1Nx8&7q_(kp`t=|~+HY7PPpHnX!u}OKt(lkyzeLQGG zonVMB20v=B7XvRAQ`0kiqEe0)%qvWl{KWd>#BNR&sgBbj>xEA^uHTfwe(!DAYrIbV z+XI3t@2F#~FKe;#Ac27F*I23`#FKxTcv zXf|ZrZE{}d2ido|=*!3qUvhlt2Pu*_-c9p)2wj}X$p*CAjcCL@N^V*l}{%x8$ zS#-GV|Jc9&-KTUE>Vs*VOulc@PvfJ<3u?F5dc%4OIzQNpffvs$Ido3+ji&m;9_dfT zq6d-noN(w#JlE}2(K))o3`3HD;(#e0{gh|0}hq#jkL`&#_50ua4ZWrOQ#CpGTfXQ2;%~$sS&Xr}0zU#? z%)#G~0RD!!_#4ET()Pku@;Bm-j2OEs_)&ws7ibU>LI)FnBM+pQwFo&$FEEjd1SEkDE4j%G*0+#!RJq#mecov zV%Y}1zf1Ecv*V^m8KBc*cgjEcI3n;95N5uIfFCv3i-8v(nE7tfs`a^ed0g{qon~7s zCogYvqBxcuKd|9WL&4oF{6lo+TCGq^Ji7Xd#}h;LyV>izb^Tw>JC40L?3=DFXX3}% zo08+fJ~o%%XEFVf1xn3-x?S?T4FW%b2IhMR_)&ws73zxHznJXT0v+kq zr}N37~Go#h|K@$uJh50WQ(S4kP& z24Q}?0aFJH!}UC7{Jgaodp7j9R<_rA!+HwB0e;kAF9u%RS#?}s(+_!dm_M?9_oC$2 zto`idc=Kthli2SOQo9@cKU@nZ>n%RMP)c8y)yw#9SL(20H_^+E5B#XXUJUay$)2UL7SHTp^BLruRe3`Pw(NGK@kS*cQkrFSNkec zUkdVWL3}azQG>l0c=0N;i*xsPEGO$>QzOzTve=Ydx9_)|M15-t$^$+aa34F{EoUb8V~yw4TZ9}RFbb+9nBZ!>=0fDigxE8A10_0lk*eR=Hum6|#ESclr>1ecP} z`w2sO-5~ojXGui`lF}!7&w}t74gJ~YckY1LB|5GuMDN;V@5G;Hw~&1bIGH+Fr2h@$ z=e>=wXT!MG%Jy1sSWiJXz>ga2#lVZDOe=>?ZkekN^KGvmY*ZH7Pp-Q-zFwhnyEf5R zHZ^uu74abYX$#MX48OwG|5|W;i0{2ymPBtawf$1V!GUDG;XEUGd9z7>G2`c*!`QQ7 z+@F%g#SzW3HTn{Ke>V=fdYy#HwyfVQef-|vT0AB=2O+v2+H{=}=zsM%QXz4)oIu>* zM-BF3;Kk)vkU?d5WOf5C()~)sx(|VgRQ&4;3Rq(>b}Ey zDkkgeozIE9JR1%3(q2<*ii{0#}>%S|U+nU#Z87QUiZ@&zdu{pAeW;q}KaUtc0Yu`989!>U z7XvR=sX7zYG$a?RRVrUA8or(!KT+}XJ;R~4I9spB8@ zYcb?uV)7diz24GV?XkC3kv8DHJH+I?*%d47Z80a}Yg`0+&hwu~zj%HE2;z&uj~eEI zTp&8bexK)H@*IGEkY%^~xc{YEX;X)^WJE-E&}uml2A`7jLDllpUDpf@x|ar zO&{mIbO$+4#rd4iMep%5lg5Tk~}0$ z&(&73x_U)7WR5z64>R~M*Z6;`ztjUz$WtPrTWduNIQ1eM);A7%dV*6A$DyT;g82T@{l@AH zKFr|5^tgYz?VNS##r33a89!>62Qp>( z<$FK8S)L62AUBe6bkL-FO&0r|66Oh#kuTN^wem4mXYgSL-yh$<&%1}8 zzT&aD)z4puF9ttq`nq>&hxQBmFpG2lUjEgimxi7ir~cyYWquvRx!;%Q^FbTxNkQIh zIzJeU6C_XdaBwRh#Q)rcdAEf-j$UZni}UX*AZMY6@jCwc+JfpZ!SVmJTpyRHXq4Le z_X~(G20v;V|IK%~24DKJ_4#Oh7l#wlN)NdAi~beOQHE>S@80x$t~OIo3N!dHgAYS| zG5Aq~y_n|39yQv_*A@*Y_xVG=SMEF1+3%5~PNC}X!{dnFuw%^VIfnk^xk1<89PV;- zZ-oyVPXM@?I?H4pjSu3B!H=5ZZ;0VdZeoI-_KRDhSd(TgocAB(@#Fg7K{_~J`3*w8x4iDcOfEOD| zN(7DRl1Gj&{Kj<2daoD+ym-81)vi_A$wa?OE3)g8C9>>u-|@ZWlEAyHzjddA zFO>y1SpOoK4Z;I@j?_kggZ8K0U#t|9DW<`P_myVHF23F8lm6{YUa)E={u%OaL3}az zQPcL~M+x;WAHCNhfB&6VpAOu8k+sK%`x%>SZ<|TMc*p@%Y=u0ZmpRq59I(CqK9_I^9-`G2dy&s#T z!{f?a5t$G8Rb7uI8O&Wk`e}SHuC=ng)*IGS5Dv(@1@Xn;M@`#{?Q8s`hlaDiyANyj z8Y~+fN7i%7f|ThcoBNSNG(p461Qe3BGmS^0V`gnGFg%r`Bd-3Ug!W7n@RY9}ygOTMT zq6hpj^KV4uZD;*jIx=~|03VENt!%ILhV>ML1M+S`d@=Y@)AnMUl)>vKt&k@B@5_J* zM#C<%`}atk)iARt)_%DzZL&?s?E_?goh@@3H!GO^PWj$;uG3&+)}9AA8D32GZvvAS z4Dc~^kPwsanH(SH)4Uk^LDIY!`a#mX82SZCs9y|qnjjxFay`~U9DG6uV`FI^nkxc zYtp+A33mT_GkL)PAB=0QY_Ii(^%R5y@@_$VG5Ar__Ts&Y&k{VeSbMT(xqEia@O@;T zxjWYQALyk;_V=1b_q8)kU5Q=^)qi*M98UC8w`{*$evpkX0-OvlCijWP2jl*fY;Rsn z^EmoCM^ikG*3&!=^n&UD!#K#h1@Xn;M@`#{Kb_c@+`9{FPiFWgx!)1{KX+KIu21f_ z0grDIeR6PTEveVzh@QUhfag&4SW91jmdDcgAnz6(UkvjFttZWkVID}X^#nbag!N|d zLHsjZ&(0-!@tSjP!f~Z z8TcjF{ow2`kczmWl}+{~J#Na7&&TKJ9Ou*zFcI-RW5GTL%gRRzrPsJ(f0>$PE91Qp zeZ2p)J-6SHBL}+Ya^g9DriFMBfBiv{6z}gE>xC}tX)b!7 z&py<-tnr%t754l6P$pkC;1hH`w7$LU$zU(0&-dTf-rYv~W?S*MmpvKm#e(oaK5EFj z^-tO7e>{|*e5au+d0zvZVx|!{H5FNZcuOWE&YjOOkac#A4wiRc4 z*^|LuEC>(eqlUa&|CD|H;*X&#-?;JH=O>Bg%9f62?VmJ0LDxg;6UH{&5`H#=@9zZ0 znH}4%elBMcr@rVz;qzV{CHeH57T-1rUMM)fGUTJ?%DdHG_F}j`E(yFD>K8+uCdfw( zdAEMozDe_9LH14SCE5?gB0~7ycPqQ~`B7rOk-R?}Gx@RsAJ_G9^((~`e!P>!ZBKR& zGpf?dXTO`!$9WjEEhG1V0^fdE$FqAAobV4EbNMNwp@Pnb`tByr`cS*aH(DvXMS4O+?4o}c2<0NWiC8<-fxO6a$V=) zlzht>6)}0pA>SI*X@Y#zkavrYFQ)CqUcb8kyq76X{?7Ma{&dk#l#M^G8Fy{?YsWrB zPv;8~(!4l&gpE8OzYsG2IP-bX1kw-qa+!SDP^SsI=+~;7b{x`n+DIDlLzY^ zs6KG>SzXo-Cq710D$JR+XVCGRLN)zY1&{Y2xZpTK-%3Z#IUGd#!F6t=L^dxe;Ev|u z#L%9^)R6*w(BE3wUh56(DF_GDX@Y#zkavrYFQ)CqH;=4D_XF5`Qh_%H3>HdapAX4e zRzG%BvcJnSUOn&JyN-R{3Bm>XjZ7V>SxmlcsM7@bs9_vP+K(FgK@ONQq3Kctw?Fui zH6u0}J{mxt6EIJZ)HJ*>-A6JQ_2ku&LQuaL>NG(NTpW49L^s>AGhoA*uJ+r8S8>{Gx$mxq(|)A(RqYh`<_H>{^1 z98jkT@=-(HEjqrKwioA){b}vikL3{;-@X%9wK+xBlRj^sz@d}${9=iIX?)}1rk`wn zBp7dJDK}B)E}JI@@ToKTvY}2Bnj|ABV(Ep!GG_2upz*rv? z!K)*MpnfsbX@Y#zkavrYFP=@=i<2{rj@@3$`a_HhJ{Gt4(sY7bC*)Pd;et}Kp4%pl zs+(njjxFT_edEUK6>SR3|K5U)$PKC86CpIa9NMR>lzHChMBM$zC1n@UR^S4Zfzpdx-HK8+uCdfw(dABJ4bOiSg zcyU-SH6f)5r}6W-r6yfPJc-^X{(7yURuHc2^636Ue3GyJX4a1&&r$hoJRKbO#s>hrIe+sEU_|96|kJsM7@bs3Gqb<)2RQ0587P@cG=~`W!rRtKRxs zx7qUtOi7cSBI1TmYWWn``=;W+hE=_sHtrzvHERsC(xmzGi8+asybfHt6%Vj;NflR& zMV`F+Tu7dmha5ruVyM#u*9lTkeDS>ZIS-Vl^(4;;meJ`Jc}40W35;|Pi`etpV$Vst;&ubQ4ORa|xM#BpW5-!Xa|-L@;e zr0=%RAHCw$S4P&nI#LMg7ek#U$VW}*-J<=dXGtvZ$19R%vg;}6{7}Cb>NL^g1;rQt((zZ^=ry17@6A{JV;7~q zh*M9W586`YnMVhSA3+R0#Nb0vzZmK?K|X3a?-uPxP4nX0N{PMo!a~O{bH!o1lI>rP<-*SCtqE62$d0> zFb|~R!JWGd4zPaL&@V_1{}=8d>I^>2;QQnISB_dwLDvEGi=j>vJzh|Jaf9%o;p0@s zllw={|K0Zf;az{+`fwC|3vs(z*zW*h@FA#Q40W0yA2pqKi}s_Yd2xt$mdGxt0M31p z(WQKO)*CiHM?&}$GCLr`cb)3XMvFA+v3a~{d{Dm_>NL^oAt=5$alz4%2`aZaahi@g z?ssr@A*Y@`AGB4p5^a>z)bbd7n8EkQ_wS0``uiT4^vDC8f+W;0hB{63ctP>Si!1t= zSa0CACzsz1^X}6yk?+3K=b_t+-8MgJto6qXKFr{2^ZE*kFJA9^;B${BY@T@<$Kg1u z2eXx%$@>B52V&KTkQH0oyl-IsKP7b%MtpY5WaEqkofqmCL!BmiyrB4EmE?h&!Z&mO z9{;%OIjE=0ntB_9wkQdw4j>zM%0z{bH!o#PBx+dABJ3M)o_y-%td@ z->P{0jp%)O{0#wrvrBahy?0^<(KGywv;jB6-w^OOhF>CvUm~bq40W0q{)QO-#u;DC z@Ha&9H*$W4zafgh5k14-NE`4n{0#wrTdd#oV$HHl#PCZL`t}R1YVx;W){ptlsmEJ7%I+cK0k6$< zRnNUy`>@gaJ#Nmr0iEjG#y|H=4Ec(D9q6 z>lNy|I|=dqj%ZpLybb#w`-;XV=sIbAd#yLDCw)G;?Xg#TYOkm;1oexdP7|GvnvO4~ z?Zu|^My#6pnf3FUZg{dO&ODy1H*Md%EdE4FKRbl%Q^3XWV$u)zDwz7piWR%I?QQWy zTO}$dKA*_ukAwL%FNS`QG%tpJkTfrbenFDQH$~MMe3-$9FK0yjdfg)jL;Yf?(?sW^ zrsIogdvT-eJ9k-mmS+sVx3Ofq4V$lYwVSxjQ@yKXy?K0|eV+jQJU-9nqbj2C!MN7S z_FC`O^5m;mF2w7-j7Ctu80s|9`KammV%lD;zSFvUN)gL5`WP+qzZ=ZjlbYUQGG{Uolf(S)s#Mq+jcXV!jL2kN&G3Da->&^J3@+*;ZZ* z^90GpZg%TOD9hwA_%MSHuh2cS<>)4Z6m1)VHg{v~`+&czZ{-^k6ZSsQ_+VUXWqYkRtfwFxQpXG; zJrdn9)GvlQO>{nLI=+~;7dvgW=r>%7^)DImV!@22pKSh@$pxlI4X>(@^?pBFGh@vv zAHMy^@D9>X;}di}?X7QbUQGK@)7L}uI9l&d@i@>w6rPQ*ujaNp!?=Wm^_6aqyfM@- zhB{4jK59C?n6?)eoH!#dDaZakoaOON@?2WsGBj58EbD(j-*>=MLE)zHb$y_2vD(@j z)AfsCKFy1vAEco5q?AwhJTa4A(~$b zx-Ya|P<(NC|E%fKOEby7rRU$8`z7PN#R;OfY5FWYSl0_b$jO-@TDFfo$LM*#+ZGgG zyr9FfhTezRykqovdhDsT=q#K{@Cv1gcZt4ehx>GOe~PcY=bvb!eY352+RL5{_F_SJI(f|t9JfdxX9)EuKa;43|0(;te)^Fy*K~yP z`0yTivKD5{QQ5}=h^rdE}VK4KCW?G{q1E>2758rdH-Ab+iKrzEAIBPCxg9M5T4GJ zH_~@~UXMke4;$;cZY%z$?DJ7+a~&racjkNks^3=cwknx*l3DD86{G;bfmkdkVQAv*F!LUx z@VBym&)?AhG5&^H%iq>)_fweam59-!v8ms7W?*rqE;Q6HhB{456B;^F^F{qqR6NE{E2{Ty zWSMYwhl}b#d`d)RsD7tpyurQd?dlmR_(NQWe0zx;yenSSw)?%^80r^8ohHaf4abG} zV(_B|dok#PcA2TYU6qX=_!+fS2fATlf4c zsOk7(+Fo3t*0*;5#9rh%QBxLJ^2$Yt;LDe`EO?Ah5FP<|WzKqJ>g~@W{ebTzgRl00 zvYJ)BE#AESP^!N1ChS(3pugx#w>-LjF`bW^jxVO|#fO9nUev6ZPJVCc`kQ6WN9T2l zXYJ#F_gBi>MIkrX_{lm3pACa=nO}|ObMx6~Cr8KX5Z%mYc+X@Y)`v>!F}gUo+C z-2S>|7lIr51gl#LDxy^+iSgHJ?Zn&?I{o5 z^{LkO$C-=v^av~V!JgL=7VBK@uTIx5rt?wL@x`>g_~c`GX`Ab8ydfRGxu^QbndZVF z+Ag>{O3MWwaPn5uZsxx~be$$RE=bys8u~%%7qKyszBQWSs+gnfxL*dw~sd`_X@0z`@Sybp2vFA2l6c zOxufXzBhSVjbnLol*_Y))ukR}-3;Z#KD*W{<^c|n{zI$Q9($rd`T^ey1|N+3Q&J>i zYi{Ybfdt>*jf2j+MIWE``=#{{{KT_PDD3Ck*G?Or1w0(ZUB?rS3<bW< z)0m>#-9Biv=#uYtg&us@-CpYn__!pjH-ir=@$g}qANBk9{0-6k4dRQzj~eX7aDL!# z?|A$THT@oc!!*C7`4Iq- z&kw)w@K$IbaXxgNCOYpH z?MF@XV!F=AIHOLtI=^is-x*+?eD9gszZw3Hoc9@pulv=e_oJK+ASbc;PBA^$codi~ zsD81a_~PHKznNdK;bW(bWAYe$n8Aku*PoJpg?E0+Xth3n$yz2KApE`4xCPZO78GAh z=iQ-?&((%JC(LsbrSYCeXmgL-R*{b!@plD_0_ml8SU6&n@`R;nYTm;$gCY!S$o``D zC!KeT_M@hGF&)3ze~t3Jk-=Zc@d0;Q`q6tkwAp>Vg~B%}@$LHBmFdV)-QInY^clYA zp`iUKD8Bf2<2R+l^F|j}YvwWdFoW-p@8A2+{klZldQP4Pu+Chvp81{(zen`A->qLv zAE&Ktcu#)Iye~2M&~%%I=*_Df@%55*Z^V@yu}I!{H_hiEY6|aP&8e1U^Ec4XPx}1y z{-pJXUoSd5<2w6&U0Bhq-{_S;`1Y^nsM)V&HfECbrtvjDnWQ{zau#}GZYbpTIG1n# z3VMDD+Mfw;@`La8zrlB0`g-VgxcAgk`O9YIG59cp?~m_aSM|sb!nR+@deXS*b^!BU zr_b@eB&dF|p!njQLVZ3vY@6KX_nq5?b`!5iY{v{f%;0PD`f}AThIQbIF9!XC?{ZZJ zYG3%)^H@aLlZn;K+q`e!xc`(~v`i!|#+7|97IfbGMR#MioZ5(tzC2vq$JdPS`UKT4 z78GCHTrza`mGNwRf*?Ggw+)E39M{beGx#ur4-Xc5Fze=iFI1Q37(Qig0D|{qc>jd? zbe$&neFr`5M-9(U(Dy7+eW&z8jJyYzG5ZtrAUE@Hl69l;E#mPbT+HJ~z~2z_9?x07 z81ilbe*-^iI4|&GiocP+7lyx)Hq2xA8v_2u@Jrxrs56fr;cy;5!VekV;mN$ubJZ_q z-sd>ui{bZ(;%@{W!{107@G|@j0e|bm+e+&8hBjcPCC1x2v106Nn6sT@FLDq6yCCy;m*A?@dD<=Qhtf6FCBXzWzF?v$+#z z{o+U_pBYztG1!ZN7fWiqk(#7v$)aGfA&UJU&pY2E?-AO*eG!8lsN^AqaFG59dlk%Rhd zaNp_mr0W;c`KammV%lCz*WaY;MFL*BZXk^h#-;CHQ-Xzax5o((6g* zqo(7FX?rovlj(e_fRoOv33(tPzal(8;kg9!KnmKQG%tpEAO-Ob7)ML^eTUyo1|Np! zJjD0FbBX?Yr}rnlo^*UMZ7-(dH|cmoz)Q!SL7WuegK@2u?X}*tzakf&Cgyh&evjZe zPd`8Dzju0n((B1*FQx#{_Bc?}b{W72-{;}?9ey`q9!NpYPeJ>W=EZPaK@#3S8GP`) z8^e1D{Jz8QCjEOvKR@ZecY1%)cnZhQZ@MkV+LI&W^9)Qcs{R{ZXMIl3hRxGXjv-h@SY6spY(ej{T@R9Zqm?qtcKHwejJ`eLi3R+M2-GuS9P>gmJBvbp2v_9vxpy>yP<$Jautx5{CX|H43W~@BI}Q zHZfdsSR9)#8ub6Er0W;c$K#7HrUne#8nfMUHycl_EbL~xz+@F3G_R&pO@^<)=L2;( zfz9@^C&PCzfdJY#puOzL^!K_p!urRCx7EJcR$%RAPX>FjAUv9zwOcfLYvT3Zwf+lF z&HBge^Scyse`eY36j+RL5{_F_SJY*r4F-uT%JcYbzholJ_|KW3kgomSpmcjsF^J7)#Y z{z>*PjZe_^(0Z==#W0R5z8Lgl8Z*0@it^{PHZ4<){@7t1dC!FLv^@INxkuB6**HJs zNY$yFiG1VR%U(?5pxeNk8GMMrhgL7{ck#mUjc9{T@dcAU-oI_%qP7|Gv8sdw=kDC785S%GLq+lUypN0ES*<)MMgd79>;zMoU z;WJ$Eif^emmc0l>dLHG`&zc>OlE1dk_$hHnCO9v(LU|8zz4Se(bVG}VYs;DVarUN2 zZ)vUe*juZR-~1k>dO>WyL#TfRb(-jW)DT|`e$@2$2E7j3_YJo>N3I|6%Dlh%adL_! zcGpqge?i3_*Y7^2(mgN=3C&YZ`RM72`rLgueMN!{swxoKW_z_e8n?eo?8B_&+_d>u zPkVi=AiqERi5Tm|8&>hH4p@qMrUroOahdSnIpeWUT6 z-G)#$`+T#3#irm3Z2e@wJ(!1+tQ(CF#3k5t;iYzyqVO)OHpy!fF%VaF$YP>On4>S1i zxd%hP-}gzzv6UA$EP5P>g~F1*_R^5SnvF5zeXi^z>#3mG_`%3>5y4H@FQ)TR)A7Z$ z{m3}y^_h8W)oNOV=-^^HJ0B#k75MTBoob-l}Z@RtUZVX_EFy&SzH#N!Q~exdv+)HMaJdm-U=T!|2SR0n9fH{#~0J~;<%_$9eaw-iKFO9E{+o2vgXuhpHR!pd2!or! zhZuZ_=0}?Up1)xM{0$4>Z}>O)8>0Co&5t>A|^8pN9RFzm)4AlaHE9 z4fbNtdj~Yk6%{^*z4mBTDvsUC`P_l=e_Dz(^uC#Xi~qgnPvhb`|F?bJgf%Nw$@7bA z-0${_eX-2<4SdJ>To;s&n#*3i&|gi&L}=T8{eHOl@W`2fr)OJ@^K8K)iT;IpxWL*h zw!`W%e1Av11gxi^`o&!9Dd_&fdNcSCgRj-sCFuCStDk_qtfn|E<@;U!-Q&^oc4u9B zaXqOU=kW#Qqvo;~ujs0Ob4f7!zDl3>zoqTxBkB9mnx7|g;X5m=Re$jET5NQ-wxHyN zHsAhr7ON2%8z8G-AdNcSCgYS>;U%=O1@_G00(^ot;b3T6s<)h}Z7gso~+mt@Q z`M-Ys4n<4P|5(e`H50VX9nznEGjCprBdfY7@70~jw}0DfJq6){^=9xP2HziF|G4z~ zsX3EcUk|rrNNj>lm?`%7x+Bj0l?J- zN6H9UHZKO`n}&6x^KOAX81!7c7$2;uSTpQ9`JP1M>-p74;`AG56g&6VBm1!q1P>f{ zeO#iVQED(>Kj;P3FaBNorNX{&rE}5A-lDmHLe~L@cdJD=& z&9&Zg%zFN(_~`izf8*RA41eR)GyIL{DgO4i-*1M$k@L~l!_*Vv)HD2z=qdj8x8wDf zsadu%-kY3{#w#e#H*JRpUhLvmpjBGNZ%?L=-`2LSw~=h}=m<`{g7SRRc6i{$jiy<) z%a*bAliP}mYkZAn$1c9z=X2r}RHuo{k6Ptfy`+VcB_c*^6~}-ytv;KIm_)%pXxx=Wscia~%ZLY2xyuJ}4z&Y9h7jZ~uF1 z?RB+w9PqT(j&JKY9R>0IrTdLJ*FjL7CN4kfk0*N;_AeC7GeUD>sxHRcqm#$d2PaAG zLDS@CfBZU330*z9dRpA#J>6T)$rj>s2lhFbY> z?_WW6nz;O^oyy$ro+;^Si|9fv8+9gu3t>&qo)07x$MP{c;6w&{-yEJ_yx5$Exv6MypX#N zlb||HTz=GdZ$7{IRdJfY{TrYl6qsIRhAxftczal63E$rl&5P;lp?NW_r+G20=V})e zT`+tlav_(&hZ%gh>E?z4+a@Rcb>6(7D@qP{PT`#El6j?SuO3G#B#xHLgX6_kkG1sm zXY+sZ_`C?w)AfrXKQhdRcvon1*^5_vO0?f?EKZI~|S3ah0v7O&|BarQKe<7_P6K_#6H|#@}#j`P;%yId{X${jh7xHP5H-w6KuZj6s$HEI_eZ;?cnYfq(5TfPd5Wz0~;&335g@veQf z_PS!3U%AyXpZ@xOCcX0R9Zz9oF2B!W`Xvi=cZkV(vny6OuhUf3zgdCR-j(`UzDJXy1_c>mHS|xWcruM|wwj^VjBcw@RQ9MRjhYrH z|LG?E?)QsxC#21sB&{-%JO>$GOz;SOD;+iGa1g<}we*s{+dkI6ovzbF=Vze(r~&T{ ziYL?fgs#0Ev2w_CoNrk@Yf{p!3owsJ`Rs{um%b5Pq@VfEq7%LMs;K?q)YJK>>G}Wv z_Fr}Qc=!;5Pa~-C;MQtQ7xY2Twb!UsmN=HjH*qD8Z<6&?bv>43Fn0l2?`R(1BzjFN zgSTORY&|TxP7|H)g7%{Z+{P47rt!hJ*2>Ohjo0k2aQg!bQT2=I2a5F!|xhkA)}pRj8A;z+rPCv-+wh6+pGr1qowq8{41wSRGsdJ zHl2?e`dcUU)ERt;!Kb0QZl~}jw{Y~~hO_DHhdXe-+`srHF5~e{vR*OsZ$#y7HzE6X zE{|^#JrDN~qNnRL(fL?tKWe~F^JE$yjBBkFGmW^ZsrZ@mc_8RGbbK+4r+G2-)AG!t zq4n`kwxKSzvnCwBUEUJnbEb%^dg@n z?<1$4&PNTnS}PfRh{2~}AGciDIQg&dVP~#uow8bkU3q*H=kxd`S+5$cN$)}=*!`=? zG=Q8dQEqJz#h|Bo zG4#_?=AopNtH>&x+E|zM#(XXIX8dVK{)hgwbe$&JpO*Hc23%RmM)!qQusoT@2jl*f zr0vCjH;zi4-J9%N`uKGHVp>nf7lWSW#n4Yn3+FhA2a9*$P``EMejOaJD#Pb1DL#LQ z;`1{9vd^=8zCw65zP|bpg5%S5n&`Y+v>!FhTbp`ub=WL6A0CbGxMV(h=e`?t%IobX zp3mZkte(}>zl=J7 z^aF#e;&)4<(_(kZKlwPK4cEtBTYhvO@}8eA?KEi*`8ykW`SGCMSzc(Y?sBsv)evN~ zevg~8?qBgd%s;4K40*mGFC6G0z8Km>GQ8O6R8(q!Z4P#MQY$9w5Q(4ki>p*oSI3`K z)I2u|rJ=P42cLGd3`5}&({!eX^+l=qPq#~+w?W<(b0WURMIiS+5k708+4uq1bskR1 zx17-cJC{^(#aJ}hu*~vePc~i->K8+vZ#sV+#1|8s@E?X3KUR2}*?Dg+wh1u3Jvrhy zzOgyBIDWZ1zVWN~;(=4gqXPqn?RX#}&G&cJUiM;u$0fm@%;3WeKJ0I`r@wBaE9yF9 z#FNFYoB8mzm%W$^C-j3onZbt{d^qOFs*-$tdvrHhBW710`+v;73Gu~%?|;j`cro*j z#y4_h=ezfM$71K~SKsyI9mwAcjBhV{F&v*uf<2kRhZuZ(_n&Kid-b=~KJT#UfNiw! z0rWlf!6P+a{`!UOWiJ+V{m~3hX7FJKAKtU$jD*5@ALLdXmk>PF`?u|zv|lxC-=y9FOBbZ+2qr8O=qxO>3-K~{`~RV?PV|i_c+;J;K>X=#Nhkm`?sz3d5_>_ zXkA4`C;43Ud*oKzyDt$!;=|&n8AmaEDJame$ySj7X9?SB=5> zi^NGQNK?$4~#Q({C@UG zwzfKh4>9=A(l=jr?;O4#pFY06E41dEEeV(9hU4G4MBrUt)$|0zX0w zKLY-S8UBVT{zi_^@Hb5HH=<|w8>zDk`KSRG!{5kw=x6Mj8o=Keeu)`=iCb<|h3kcF z!*1PPxkpL_<27a(gXi4afbZ?`bRIA(3|FT_uV0h8A2si;m$?|Uu#3=uVKIMK;3GnUkrK30T;xTLmMP~4*_1Bynee%%AgFqqOM}ny%Q&J zzh_4ly;gI^X1%vJNPUgQhQ~9rmuGLm-D1?ArOY^tpa13a*`YZK?JAg6zx3^^L$u7+(^e~b*-tc)kwuc#SjzXbPtvB=mp%^JJE-03nWLJ<#*88@X`-v)oH zx%u|{+w~|(VtCnrca8*4n0HFPg3?a>O7w}W_&0mBW2EbniBfExyt)I*YF72O80r^8 z{&~O!dAFbq670pmi&r-FK7a9iAnx(@$*XRaP-`yh$j zUwR%_d#KWe6+a9Y5#02+PG0i@$1T$5)I&aMmR2aE_)d%nTRBQWVs9y~A5da6|-GVkquonX_KDT*Xu4VlR{K{&FDONnltV4dT zL%dGkKnWW(T4zMnp$?528N-bmR+m|zwA7t(*1;db^$9ZX`K8 zc`&lwgB2@wZQI-8N%Yz-xH?M91ws8{sN(>*Anz8mL4v&)c=60_@7Cumh(!`fN961m z1)+s&oUD7r_@cA3T?&Lxo# z$udja*X{PB*iOE9p4t2J4mD%&(|DVK18=xu&sWm2>E63gLeJeF#1{II>(gw?kKMQ^ z6n_hGyIR=q0J?hRLcHEfHf~^-m~u=@RWOG7#Z62dDZl}Fx1bFY?8U%~jg%GRN{6K4 zfukckMu){Q>y(z8xoM7)^zMyFL@j^oNrhJ$1y$S5Z17!rsaGdd1 zz9!~h#JpWm&oXzSvE?uJk23MV3LU;8{aSdQ3km5JL{xl9bt3hZq0R`*hrC?wQ}C+;J@mbW(jQyc<6_Uw6h9(YNesz@&udNAHC2U`E1Ey8#7Uc ziCU0N&kXF{a@bZPD3Rc84qY1ic6B~_VzFyLYW79ELify;qx;x=olB2BuXEp!i=cin zT@Qui-2$MD1bZ>?Vso`ydNYN}(LKdAfyT#+5H(z2^IKrr5gh%OJ)h%W=gJ%DyFRby z)I&aMm=5v9;71MpTvFU=cl5~|ePrxZW4*`D24y)v8+l=+6e^C(8Br3v5zSVP7BjlO z9*5kUu5iPb{XXpSM*FP7QYWM@{o2~|wj-80W)SI-$maia-dApDvd#fP{bD*_5aivW zae=)Uc=6lV7gFaIA3(|D)t396@oMw>hJN0obTDWZ=e*U1@9MLimU8MLA2r~F_+s#* zhW@`x8b_x)-8{&h*QdH}%hsMkE}VEFA2r~C_+s#*hJG&jwy82;Solg5q?nfW*>*cB zT$Q1$5bJA0bbUjRcb9Rq?S(sZjh>XLR%bZWRi@M^38uPmHFMHAX7Rf2Q`a6(yyJ0i8camx#E_<1m^GM+U z>iR(4Vzsq5(W6ddifVWJkow9r--NtdG+wY511}z@>l5SC{R9qtH!RC{MFin*n;#x^ z?RYx|kF>NLUKhRzr%WCjej+9ozd2*3v_|O&x{-Iks%J9Ghs2^ac730diairVC8XzM zpwOqsPxgJEOz^JR?x!%-D-lEeVyM#u_#p2Vv_XQs7&FNIpFe*1V=2q?0m`Ldq?o5wXu~4uh=5{fhipm=d*F9hU?5e z8>S}Xst)(uoL>i`eTpH|mIWRmcu$F_4At+HjIZ(PR+IY0fD7_bLmMRcQG>l0c(JTs zwD-6H={T2J*TCs62~v{j*rjSfNkfbaZV2l*+2T_?{*|xTp>UBGN@>WdbNg7A31F6gWAj61-8F&BkfBvTzu$ZZ(4X#efU)QIj_FAMm3Fdol3h zf#=rvnil60UhMevSg2*yFr2ol`%lZopD#3euGhL>G!V~!H*C}Ou^%<6&lM_fEuKyA zPaF|n0u$ZL|a#O{Nh z1n<5~?_1{+tg&_A@`st1mZ02Cmhm$J*yn@I_Cu-q#+&dSrVcpNI|E#hFB{q*!Ot7) z#lVX{D)&}4PuhhUUW{S9`j!c|m)MnPJRR5l!Myt;QLihCQxmjj<9iBw9gAKpAmdW| zSKQG*u7N7n_FNQrLm%tcy%Y#%N9CvEMcQL_jxdR~T5kMc8#-0yEtM+)Xa-YtlKhJG%Y z$ME82hZCblR|jGpi>A)Xy@ugqadThAb+W-GMf=Z;U8RdQW@I+pYzQXTH%l(Ec-dhu zd|`s9xx-XjRH6UKOm%u3(Pu8&(<7|d2d8C4e?KW^hoBxG;DCJD&?b`c^9Fk{@M4MO zsa`WjMq!2*ll3|hv0P`r=T(g#1B^e}=uSnRD$_qU=Pkj*=9fBsf3=K^yPBtbNN$=r znw=v2*y*-C-YQW!@%cnHj_-hzx0-gdCHk&lQ6Rn44ny5Qzy=7S!$sIt-iQB7kH|L?rce<8JPC0@v7aQ$c8y7|J z&L8)5n#Yzx^fL8yzF}H6zPj-6>Q4xYCmikAt#LwhgaF^PuPl&%7$cAS1m>hCrt~U(J_=%_eNaVk<>2+T#%0%+C=jFyfwg{4ZK)5 zqi)^U$G(IYC!E)w;Spbe#z-_pf4g=7ZENYD`Lp~yG9Tn><-R)(XWTSwS(^pluY`ma zRrVTL^!XavtkmE5Ls2faaJ{-|!|l`Lx_?X?v%Klhb@asCP{{3ZE?@mkk}sP8W&XqX zd4s(ecya!oH6q}~vc$eFnW7d=k&`LMCB>$vwX)RBUDkar8>pP`>i zE@ODH+P;+HveDa+{G@?qt48!dIgW)#^CL}=j*#)SN8hI5pM94ES=+l1oHF&1Qri}9 zMqi4wy_;N2u*LafuhRGX5dDkf7rEIBY>@uyt`+jyMtu2cNxp0f82EXEy%>10-jIlV zok4DGUf=IIr#E+2mFApxWZ$XKq;6`QdZ^O`Fd;7(#1}*V-zB@sro9Q60lbg@sAj{v znZ6KVpCj}Ls3Qgakar8>pP`>i0xympHa9iHz#SvR>CSrNUG=#uYtg&w#r&oO+;+yGL) z81O+pYG{K5KWeaN125LxAeyRb9!l(*z~96|PY#_Y;e;Qlozouu^(fvGI^jWchY(b1 zx@y&0clLcJKj+7n;ydYh-NncdgFcDKeoD3R_S_Q$FM2dK_1n%2EcWnw>HVVPh~}G6 z?+9>$gg9NW7XvT8qqN#YJUSPfGImYiZ|F?9q-miGHn`kU)9cA`oG3keXjXm@@;c@A z%PTdC;IV&kaO;+^)3{G{j`_#hMD$rZBlwFZ`+iy<*CF3tA_r>)TbI02NkVk}VyJfn zI6*?3F4&8K7ngMZy1?$;MGWIwE5pBZ3T=^K^Z3#8CJk5Cw@TSTu8Y=tndZ&kS;Fp{ zn5B;uB=Ih^Q9&&zVTpa4@zBSo+jmoBWc!+Pe;-qKxGOQEFZ&&yp1*5vXY|0$nOsk_ zyx%x%0aBKJPhm4jDIl+!S7KKgQ|&gmdm>RM5=FtE8Q39Ixs2%hQ@s z_V?YZnjegAmrvyJ;PVMPZf2&le*~}J*yL`+xp@vGhl}%!+y7~~L+#jOsigK;+cNt| zCI4&^`lflrRQK)V(yN_O%QQSlvfqFquiGS&$nNL-y`197^|`W7b*qGYGrAWqly0`# zOlAkaj|qE|O6)XKv&ZWt@Ygf0e*9FI$4O*ny6&#RQ!xbROMiZwP5tG4N_#$AMNE`p?#nr4@Ye;}i<6t?Y#p??5Boj;!Mx@>WIwZ? zZ!eqOx40cAJl`raTS(D&px9(Q86cx6_-mM|4GL|NN{Q00xTh;s3&>YBN7*!e z!Czz1ywxQ`dmbWE9ony7IxUOfyrxI;_9fgf$)I?iUJUJWqpx=|IWX>dqqdeg)MTq& zSyp*4QO!{3FPoUjUl-huRbIcxr&ZtMZ2P8>Mn;0Pe#AvpR!qzk$GBu~$@c5Hn#H%C^+M&5V*&x-A-1w2zVa=&k9RB=V<<03|PI-6`uauM>KklugZdYEa z`)h~Mm<=5tsM~AOcHKj=KiYWE2OQ36&-{};t%T>=^}w+$%pdyE)f~?5IS;yyc_!E| zl;2uM=&$pplb>i#?{d|Z;yAjc1I|icSnxBh2l~seSUf7u*@2u4lkfN=Wfi#|F6WfI z-j-I$CC9y2^AtP(XgDc_kzEr9XLJ)e4z&9;KWlBlM?R8iHq3GFhReQj*(|(| z11^wT8;qH=!fiC)Kd;AzWQ|SZ$@EPL3ip>yWu7PW|5aHus7g7qPaMLB5nEGNG&vT^T zR)Jq%xb-~T;IW;^x+*JA_87HeGAS)jH=Z=YgLdV3aZbwgl?OL$7HKbTzHR3&bT=C+ zd{@Qo1JZOAZzLx($G!Mkb6caHvAq6HKY1hD4Spm(uFjm97E37}?@!Arqs|hj2neWc;a2Q%x|+r{h4CXRkKEoctG^QBrb!eHh2 zg{14vc`e6xT}^=(A8*r7E!Ucgw8#B%S$d7z#E1RZ--Y51HXc*gY%6ozK8azw)~pwv ze}@n6pEAT@B?%lixgQIaDT=9t+FStZ}~KY@9+Gk_2>3Ui^vyhsw(pvdJ&t9KgD94NWcEF2A*@U=u(+#DKkG}hq=cP!aVr3TWeEKsU8i(`jp3)@e z*Mi-6VLv6gr8|~TV-9C-*Mpv;r>-S%+>4Ji->G{pqrK|+x{aPVo#MPLvm3f^q2SB^ZHZagHP7W8b|ayJ{_d8bR=Jo$Nk+h=TAUc{W*UErk?XB;PuF#pvLjO z`O*9INm=&yMEVEd+g{qI%p4Vn}8h+!eiPS>yT`Ar{P+WkeQ=yxx`H8AU7U1j^> z%=5u~Gy2l-S>sKb5$RM@r8h3}HIDac;D++bSyoIudNP|`-pO=i>c7ADJXEr#j);C< zb=+)b99)=>UzLHk(;KaI^%OZCjMJw_uiopHn=tkA^`3toK1)kPUr-%4yT-X^KB0X2&g(MyUO?8U%~gEmSvG+%m@RJ@-i z-BwC?uihUS_iT!1Pd={GxIt#u_qxXM*EMC{%W^Z zygvWk1BVXIefa)(UZ7mU*|Py3)JrNgwhr^XC?(j>a6iwN)J3PCITJ@wpRdlcdO9Nd ztm?Sg{Q2N<|CKW2JE|=_hU0`fO=G z;l2I(tP|$vo=NllrDAt{Y%)lf@6VcFjE~ihRliqzc#8|FOPR-M(SN8_^Tno2{gVq3 zMUT8ipVybG<7V^c%R2twu7`X_wS^=5bHNlP-Al}QX#V}w2d%v!xvb+i$m{8AR30tT zUsBv)F9u#*Z*;pRo6eMwnG+6o>$pPjFWi6*yAV;o>F240Ny?t|6aUCv>@Ki+8)9qjAHet%@; z+r-DgV^&#t^4 z)qyJ<4jn)=_%bZzkacm~rUYMTp`1Ut__Wcg~)9%;!@N#6?Jksvs zHeIFtGiXh(i@eVVdmZne#JvBOfABn$)s<~O!uHLA6JDLZc>cojN+ zJUT{&?LT=vuXkPj(d_#%i*I(X&L>sl_lH9{2Zyz3wShUmPM6#kbzUNT$HdpS@1|Ef z>z;HL>Cfep;-A;J-@j7Ed4Ovgmy48iL&H{T{BsMBzaVdsmQ^Dm4+7SYzCV9vkmh^- z`2~7Oaf2T<*o%P|n+838Ib>@-f89K<6*@P|H{)?G4sFq>SmOY%&o4i(m^?(E*H;Ye zJiXySfqw*QhwRmDuFC6u6jjaN|4060z>Vb=&d(e0VZFGr)~gj}J07#`&h1vb534x6 zjz14Po@$7vcAcp!MD+31`J@bS`+u#B^8nX0z8$lzNt3nLnfINrm@Zj^9ADzDwBE!pJ3njV4g8PsFze8s=IGr*JbSWTes3NR-v_! z2NjRIY0EIxjJH1gd4S%(I-k@(zkYEZV8CBf^4_*Jd!73Tyb_P=JU;i9=`?Bnx?{cO z>qo{9IzAD(|4ND*{HVcR47_;$_*kj%JYoHw%}&;|Qk}%(&<=jxOR32@{<=CRHEKBe zy#=oiIJ$1|`_{t!`_wkIrmEldczv?$s@`7?ir&}o`9*Sm-hdD5#g*O8Zm87xkMFFw z{oQYsb@dxW^XGx}re~Exu3i-NH^}QX%{R~TlgNDo_Xj^}uoq*!#;Y;uecTe6$8Y-S zhkvi-kxV_8$C9bX$AfaQS~H(|x41ryGQ6B-GJo%Ckt<6S zvZpcic>iWew>n3!PV**;>+I^?8*EA?z0Q)h8)#;Br=is>CLYDst1V3K=oPF(&dNyqtbwG)>=>Q8ZuEBySb%8A}npY<1q>fByd4f&Z=d2xm**6T-tU@J=lzvQ%G5V-oKxBUP8w5>j|XMh=T|Q&)U!6^@KFvQ1^wTW z;_^rRDXs%Iy~Fz+b7Rg|&?o@3hU>sqg4x%=xz7F!8~RY~ed4?$0U@Y;4x_b&!qW^y>Z3 zl*9Me*RPZ1h*E_(HlN1l1N)1?j~eW*m|t3*Q0(*3qb1K+( zydLql8lPv5zwyTdoFF;=#?*8Cjn^aoR^xbEdWJpMy*HUZ9^eF-xpGqCb4M$t9_McX zUaa0};4rr`HgAFPe^plKOtX>jLxSJ0ULi z*I#$y^_V9+ZZMfX(X1b@2b>%)=Id{8alrr|w3AeNWGAY$`p}dg5BEEkyCg1pE8Biw z;aK+Z@amf)zsK6<$r$JFmTQ|A*A|~Qmd~8H@>wfGapw(jw_txU_)%kfG3LoVH>kIE zm~PFl3lW}tF>Q+M;4Zu#^W;*SL<{*xBY8dGl&j{&d_Beo?Ie}?IcJ+5*1l)JYTs;A z__xwA%KY(gyZl?~9%qeYMfA1JlQE9pE!Q?Lt}Q-)==xgOrh`8+uN%w<#NC4Z#o$Mc z?ZucU%c|TMaqRGT{<>nGY!Z5I=%Y1+*JGY6FSBHc=hM-=9`G1e^J1a?XmwmLzz6Ll zm1PsHmRGeCwM#<(ePp`FB}c)p2LaW9rpWJ#L+T^S4=YH-4?8TTDkLo+H z*hxc_5Bu~{eWm`TH*ZhQ=i;qZaQn(39yP?>g8jwdM-BF3%!>!F8#};b>;?k%V$6%5 z$rj!{usVW(y%_W2!=rrfow*_Gr-bz;W$I>Lr=UG=Pd>-RTZ4V&5RV$-Zo&Ry>_?4x z@zU20mJwI12pk9VVpYd_Z5nBf;PsdnN1f45%2F7^>tP%$F+PY#4RN<%e=+u>#=N+$ z{l1751u^{bFfW#UdGYDu0V{bu=Eds$BU^a46uz5coKSAf#mfeK5RaM_cdNGeCE#I6 z;LT&I<7HD0ABA|-5O)jq7h^wajC<76v#-W1Q{(uvC8OeMuLOX~@4RN<%e=+u>#=N-n$*Kvq-BNg5m=`DC+_qr$dI1;a#YM~YG|M(5 z^Zfx2mMyq=*?T~(M9Ipqw3e|RReq6|34EUg(q_W-Q1HNCkvF&lg zb{$KR*}=BQ9lHPab$UNx-zOaR$xh1~w#n8a_(2a6;!#7~E!ba-{irc7{?MkEwc2rE z{bF7`dv_m~=u5))T+EAKxtT2MU?ap606bV?d=QVC6?dz)_$9`L%fOpCe3ZjSAs#iv z-Gcqa*pC|H{uu52?Dajtj~d&#uXXJHW=6SSAH;U~lpoc?9m|%yl>Ek^4 zey2;+?Xh{RaaUZ+nX`Vi=yyD5|FZMlqbpAe-vOasQrr-aT3p<%+Tz847vw!;PsaEl z9yKfOR&Cjf0Ut{OZ-)HakY^0yQA6A<27jYs_!||&-{^1hHxkF?I|67+K?ZF}^=7 zr?%MKBU*xevcG#A%!~0j*S=4^uAA1H`TWB?4*E-q8}c+kJZgx$h4&X@dvW@Xj5fm( z5Ap9=POH<0#DD6*y8?1 zn$dZl)y*~{dP#9Zo+gM#4RN>d{$gw|o-*FY-~awaetp(GTlxCXnch5(;*1uD&mK6# z>q89R$Z9tyyxyVt_Eq&C2;WoCY4JtCr_aU9<`okDgLyITR`B9w3w@WJJWi}{7NM+X z5h}_nTpTodkGUem^TGZ8l`>I#zj1XB@%y}g7cb_;c%1JSyWHF!+>*cUSkEd;iW~AY zK|E@RyM^}`V|($AEbGme#tYwhdTwjlXRo)ge#b;Vy1wyfF~2Sr_U`&*?$Q4IdF;;k zRD7*PIIm}&hXt2MDu#=f&1%Q0$GjM~d#`XoDYG~GyG><<>&TaV1>Ow(GjBKRtlC|O z_Xzb^LY^jwM~(H^?uzw|yB@hT>#V@*vA*j&+Y^bc1V3x67gy%+(G}J4vMJ|?2ijo?_!e>Tva$YemD`W5 z%Iw^+>Ysm~9CwZ-4SUd+5c-%QsBzjI^W zS8@K$*NHzW%&+^AtIazox%RZC%yEBH0rp~6ckeC+W9~NaX5z*9P$rj8>e?w+`cg5|WY@OA2`$2c+ zd||s5^gm&v)Mr}Blv=y5!EydnZhduYYQ~VS661vY#gL~7A0PWoV}0z@{Q9BavYGRV z{Zes%R{2b^@jZ<@Nx2+8%HjL#zsGhZS*h(?u;1rc=Obx7w!7kfm$bJxwdk~lIp21= z=M#)?vAS9GI^L#~4;1?^f-4%C_4$5xe)owNO_3anGF4X^Pa_Wk4;WsBXhpZs_H4_$Y^ug8pyG5vw|x1kV!uB*fu>{Kb%`3F12A_*K}C z8uQEZ(g%ahgN69dhpwjfdem013tuS@m5sYt&Odiu+8vzRKVNkJv1xkecfMJ|cQuR; z@)tv%CVYP4_7~r&YuU}g)RejY6!atK4YU&Cbm8$?WpfTUhmUahetBK7#{b>=c2qwu zda7%!;SjgKcuvULcMWehX3qD4<)JXj@CT#qBSyQ_bI)zvGqW^T!QHpUvwL zf2;9%7Pr5c<8M43yiPd&#_JJ(t8u*84v+Dy82IW)yJB`8tQ*5^0_|k&c)Y-iL!@(4 z{LcE+I9_ar$9O~RcexH7w2;Sx^~U49y2j5H?ApMK6-;8ck2PcG-NNHYTE>3VxZk*X zdIeRJV+?RTlv(*uYKtdhKWe}MvUJ4VD(U6*nD+-(eA?RP$$;-qWo`4~+T!z;%RQT{ z9V?zE+i9j|kJn3}kiQu6G~syEm?vX_?6JJ!?{bhH`)sj}z-z_RZSn$r#7KTCOcVFDXwx;L`H_DU*E^@)tv% zCLE6%^JHu<#yr`}N_+mm6QlWc@w+_v5W@GX*Ae?s+g*BRd(`g zD59@zo{Vw)Zn?I3ac%MWN_qD=opspzYGFRUsyWK0=^vnwzZmi~;ds=TCu4gt=E)XK z7T13vYs_DF%#%|TZYDI!6kRt{t9dcs590&el1l7Hjr#>y$)2Ty+3yb~4fYSdu=*DN zJb?a^^5ih9lUvl+`cRy|7{q6~o_3|8M?A{>S(mk(9sbsq2iJo4J@2wr{3?tyds{ z{Kb%`3GBsqUU@%i&R&dp@w>M&t&XJm6R;O!UVQV@tHoA6qIO%=n;LG8vyFIr^4)OR zH!ho}5Xf6?xadmD!OcTS=YsU%rb{*v$X^V3n!sL+c`^7=gS{B@;zOs>Jz}n;60jFz zUc7Q<(xw3?H;VFi%h_*K_GQs^$ly+vO8Uj$Lta zqbO^U^Q|p@iE-gF@MaDlyKUX5;8ysfH!{w_8xiUySoKVcgh{8r!+Q8m;PJ zyGh6+g6-Vn_H62YdW=*a#wlg{|LorU^917)X)mTi-2P(s7U3589yub{35I3u-*nAe zIMc**Q!cb)$@G4WpDjvUNdnSz6>lUb6UbkT^E6>zjQyxFFCJ*M?OTf779Ka|#m8IR zZZ|GRyxk4(`E&S|DnzK7_dtHW=^~`>n{Cf|!bB}6$SiPWcGhUBzLfHc0gL+A&xc$YI z9bfu&?8LUm+55I|xnpsXUni0t7ur3T*L;WU=TH)Nu<@9>W?Kp5FUEPAFfYb_)R-4H zv$hSp5+(RqV_v*1ZrQ_NIrcsRz;~a+7ti7AGs-hH>9q^d>D{U{X@ltctu1~Dcvup6 zGl!3I_-Ng-b9=nr&7qCU)q42McBPQN80TrixUnDguiClS?>1T5=S*FZ`>$cO-J4(6 z7$58WSoPxe7wg50d1~Hf%` zp0#KDXa6Z4ar=u~-Mn|XZe4*V??q6H>VtgE22Hwo!BOE@0`4QwVhCEGR zFJ|#Kuoq)q{GQ`)U@ykJSVI0rFu#0>_z{D@iR>>%{Edp?Z}d0$8zG2a;_D!;3~{$u z?SL1v^e>y;x40d*od2D)`LHF>Bzgh4Qd#DHAZeD!dSs0wX+6ZOBG3$Q5C)V&Ej=P12$GjNppInG2dgQIm&oAh;5Bg_WtjQM3 zFQC1o635-b{V*@adRG2Tsa-G3qR+Jvxi91Xf4jU&V{S_otA!%-T~oMl+$}sV=EYc# zG58;e-B?N*s3!_rtsx>-TA2n>zoS zXgsEEXP(EK-qrr+@4pksaR0r^{``FepWmOBaonvx9S{0TihI$#)g?oF9wH|@G`+oI z$XQ|%9JGAa!&rjz7vp%;cz-dr7gsDBF=?jvMdrL&ME1S?q=l#-JKzVo5aEM*NhOZE zh5KP%jP>ii@0va+juttO9UBAZW@UC3yM7lMJzVR*DUgJBc62&1PjnsOxX$?a*zSt; zH$q!vr)jPc!H3)7@^eEo`^R^?=6O`(qhZzfsPbFu2>o^5^x`AUcj}(Y=!M7}x#QQH z<>CCr7&qQujB#(H@mu2N3j2>maCda^C{rutzoP@*C)GF&p$z!WbNHbCZ%g?&*WBWT zZF!u38xQOF4XSa9UAL_M;_AimH{ivrabEo2{Ehyr{H^c*&EIHk@i&M^&6+>37qj#? zau;gs?mmmZUs(2edZl29GfDlpyx}*;n%~b0@u*pNz+TMKyFWdt_5HFCXIu54)551d zK_owV)4iPsdQ(=vf2BTiwYkhlpHBRI|0}pyIB;HiR=eM=$8nwUIN0ur^*Amm=vjH} zK>x4EU(Gi$GhKIA;i(w1M=MY7P-UFRI>LFG@OfgtX{^V2MX;V#hCGcNKFZ%T`F z*Mx=tck9KiPi%L^$6@W?WbK2({r`6P8rsJv4$r~4`WG`pc9W)kSC>at>=RkP;?}1) zziI53Dh?0mVV~cDYJ8N#_t)32$a^sWt|7^~f5Pyr^$GfokIgm?J}c^HbmOzey$J>% zYW({z9Ji*Vk70a8JvY&OM9lF!v|qn;S{9jO8ZhWZRIbSS6?gv>w?5OK=0{y=eNJRt zCLT_4?!8WrcRZZH`x1T+ z!Ou;6pT~aG_;-Y_`{WDy32*8M`#52~$JjR5o#Z3zGsO5NKhd1t<*F;~RnOOL^u*~R z^9|2M7!OOh@8EhU^VbzBB$Q?xZVn&e@JW0fBs|P7H`^R{;dbu_lWGlzxc5GB&sEla ztG00C{Ka@e!Cs8(q0I3&e%&GdR^#)G^A`gSka&MF)Pv;s8;=+9w;IQb<9q`Skl2qJ z>Os0pQ&XAuZVHbVc(MK1Rs~14&Z}{}IL1-D9&=Gu?T-z>6KnoH;VF zSx}AR#d(?l2T1Hk4fP-!XjfAb=V`*@Vn1rE*L?lR_(4a(FBtUr z`2_XJOtZ|@q6B>io)_H(xUm9OCuNV&AlP`;bMHhI^V4L-Y^dKqlS8M z62Cu*YyY?O;-24simSHxe3;qn`B%mY@o-o;FPePVdw6CVZMgEm%)0e<(d)BLn4fzl zZP@P2y+dhRb@=s<*C&og{i{5AWV18cYj)|1*ejY>$G_q0FCcuZ^I+Ap{6nBU%l-~} zmc;M(tag99p7nlNQ@Co2&o?U4f2m!iz^^|R-p!%XI}2uIP&L;iPlpv*w6T|N!=#Qf zhNrfvHC6qt$M?tgPaKc>S9x;x$}IWGjfHsEfUl^U7xU{EniPx&S2cWrwQ!Em=}W|HQ0;syiWBt(BGEgAi^(`RW@#IQ>M+^leab) zGiQa{Xky>hv+%oxE043-RO_{3@&;n*RJwS{tWKocfZJa~W-MmrFNQo#U@ykJ82qTg zUW|FMRrcidEuV&n;Pu(LKKRK%!_fJCd`YmA2sI1rAgK;i%W#@VSQtn$6as02iG0u6L9w3^lE3_lg>O|%!_fJ zCd`YmA2sI1re~Exu3i-HPYd|Ea@QOD8CZS-wZ$*-JmNC&X82wQ-@)Mi1mA7oy5sr8 zxG|5zyaT@{F zFX7)i#*OC_j02vV@H~S1JidS8 z-#cEPcs^Nv)Np*3pDO4UO`#pCe%JjTa5KUO{K{t4|_>l5^aJx6`Jq#^2e?KEs$*aTyNFF|`O z;k^#tm*71FKi~252;V>P?;WpCJfAVVc&~#pmhjxf z^-zZU5|kyCz?(UIz&8l+Bj6qIJ`eB7@cs$!b#Od*4}s@9JU2lP_j$N~!hH$!@H>Js zNSIH+iTNe)IN(RXJK%jD-jm_|7{-P7C3p|P&v$qp!F?X?@6aFaM^FX{>yo?PBK#8C zNh(M69a!w7A^02Peyn}l&<@Y5OYtNB$9>0>$QGC1&5bps(5|NB;ZeT#&fF073x)BS zaksbzcwXNIWzJ}Oa5|APx+3MIFtNt*MxD`4%2F7^ykCloy9Li9I6shOhU1?Mj6Wsv zT@CcVE7ki)w(xGr&YvnS?iPM-0*>UWhTFovw&1^0L;b%dHGMBkYHlR@ou{U7TEv(( zvTJ-z^!qq>0A}1RPLJP10GFh=6$WJ4gw~Cu7j8WdH+XDE^4~ph=-}Lk_$aEHzyFWC z&yE{RrcX5M$A52@LivkvJZikZ7~6|i6=sAdPCd;09l&{Dd{8f`ELyIoS+*gWc^q+Z zxA1!%9JfPj{fqVY>iqNTH{Dj%A?1nq?^1AHzbdOrJN3EzUXD2r;^J=M_hdM}q`3Rf zh}oTUI*pc19Q|xs&>SKayW?Y%LAu1KGO1_q31Q!LsZFAV{G*Zl`W2VI81FB}_F|fy zrK>(b$Uh6Xu@u3F8;B{tax+=h!A6LWft!nqyM=iN^gnek<5*m<_;_g0{%^@9C7*}- z7P&BgzkiCWph|h#Q{PhN{g)MY3yzC<9MnsS`$*otgc~LqRH}>qVLE9dH43ZWPg+Wi zB+IVq{pH{a{=DU7mMrmnI+|aJK`Z8c2k-?s}NtO7B%ljf--Pb_}l5 z;97J3`eWQUf3XN|w7(eRw$(UDI&K`rj}N$0s&Vr3jPXIczb!NO+>1=D`?AL0e{1@@ zGOBSh?>B#XyjtRK^nZ-MQAzn*()e4Niqwld*{?R{t^QIXU;lg6dxPd=zs84`Bg^KI zl5Ta5UY+Jm6xZ3+yEj<{MhLKBq#ipK+Sw~&82ujhF&0&JIhe!bgXXR=vWUp?^6Y?__C z;-QAIH&y8zHFe4tCpzBF??q5Ov&|D9pIxV%iiy1y94pUUCp z@DUCle;&~8zb)TvYgE{}kR9(DXUPAM@*%sJ-8~x`*(60^&^r4jjJ<+g(`v^5(MHPJ7x2_kE17&YnA;?7mN< z@%LnPR+$eGS-<7=*X=vuzktUHctDEFU;MlNwAVS@96rL~V_s*#Q`>Uc1-~o%OT>TY z0UWl4eR{TcT1uSXwEo;aX^{wiC(99~3UQ+Gw4lG(yi5}MO~ZH~Zv|^#&2QA+ki$ng zd?ME$+OuTxgB}hcVM1PG+)i9vXO`X7wWU$rx^3Gr@0<8If2-`5eR0OM)53QcaX5?? zPM@NhXhTkg4?bBhYn;e>cp%@bs>p-AuTot8Vz8@_J3jB@Z zmz3j|z>f&WkAS~Xj=xdF-}vKk{EZ_1#_Ku$MiGDG^&Ec_!OQVC3jB@Zmz3j|be^U` zWV)pXJ?K16>3E16b&nVpvg~wy+V0{uU8VgqDDYzSP6LOzl?l(g1!ii}`MC=yD}OP> zGXsAG?4Qp1-Y{SN_3k?=(@4DoW##XVI+5v{5)|$)n@Yo)r1abz?MTh9xjMLa_NV7d z4r`LWepEWuROyY2Jbn22QiV_MEDF5X_MFwpghxW2_^MAqy?%6ar>y+N5YG(!Dn$I# z8TR5~IVm~DO=puQBaIuoymcl!qJlOrS-p(9mg)>}?)NjV-ZvU$ohS+?EO_j;}9 zyj=V7qi-EB=zjXBvE2HH{Bs!dWcO)rhLlJ4;`Nv(<9O7VC$sFuv#WVA|9ivuMg`4$ zyh_@MR%Bki(_+s|T5!i{T>Wcj40`PzqNmbVi@$$kp4{zIaaZGwkvv`zo{ZvAW1h^i z7jwKg4}O0bUk=ANk1_Zr=EX1$NX(0&9wg?)P%lmb-{kNS4j-}j5qEsZa(iNUcl`9o z18z({U-(M8<7`i1|1IY8IDawb^LT%;7(UP6H!wbN=ZW=d z#Fftk`wiyvm?vXCkM|dg;q(0Z#rWWSB$ZEgTHdftw&vG~r2U{B%U@Aao*ZL8tA22m z9}OHg=E*o7HRj1Id-3UN zUd)e+@%`9c%{SLG_$KDXFi#*cFNS)Mm={C6I0<}{!$&xLq=U~;o!l1l$)X0W+bwOz z=JSWHua#{&_#^*3!+aj+FUEWx?=Kd^=lS)E@rgT6tatr9E7pH@T%{R~T6F;ArCuiPn)>*atD_)OzvPe8? z#FJU}VvZN{>lfq0^Y`B_*ETP%Ej~YESAl)((Bb^NvgYlwQ{Kb(4~G){j!y@vEFDQq zs`;kD*=oMYuTzdE^S=X*Z}RH_=P$WT-(R{-SM%#_;<%)^;4*}d-Lxj ztahw=*1j_ix7hU?;1h4@keogacaj?DkSNn@=&+&Wa`o;N+@p!C#ksNNZ>-WXbE;ssm zCzHrlwoP5?u=hb2Ha2VeI>?5(ey47k5Psl>o*~8uWgK@4>amPZP#N{+ncxp0DLy<- zZI>}GW*u*b=K5rVR6jE1N`qaGd`0cuvs1QrvEIe@(=ko&{LVKkhJPO6e@PPZP}B-UR+zaYiitI#c86xS^D$aY})nayq4p; zt`=Fpvemqpxqijr7MCxD)jyQu$s9hy;rr|B7yPJMxc{`iw(QAZFaA?}wcY<$aUK}= zyir@r92(T;tm)#)GFFq`9aTKpIqpoYQAYuT+KK6=hhrCJlP!aWXN9($Afs(P=@`*P-aPt?_`*K z#~&%H$ftz0b2RFBip=+~;>5?rII*5p2A<5}qZ~ew^~&mBTlL^aU0dVVmOUBl#Wjta z<8LDC29Cq=H>MuqZb5s*-)j7NbNr2ohvRQdJ;dDtyokTmINtoWPIEiIuwml48!r3C zW%CrK9^$P5Uf5p@egaTmQ}W!PD&-t2(fbID|7v`wieo2szC4Hv2kl{hG585UeND-_ z^>X&^(P!J|EcS(!2M z$OMjz&@~&!)Z@5?u)i4msKw!IGyCQvXC*h%HTJ&o_qNfb@<6Z3p6Z)% zBuP*1Uz{him$Yt?=a}KUo0^ra2>ouI#^XrN?0LUKY#uStj`huNdxRcxY5D$?$v$4c zj&8EM*C>ZT{$j|}1b86s7L-APy%>1$&M0I1Decdb4v{gt@&+9z&`wghY0lO`i~F#j zU-#!V-y!=slsPWMDTU*~{$lW>hWeV4r?htMH}$sW=Mj(FXOw4Z(rXu{9^$D&KiFRk ze$-H3Q}R>9?oBkof{CYY*||Ml@8&S|IPNR#F9ttqaX3x3+LdLM2NSgnh5oXMnMB!4 zTFUliAc>5+9AKc7MW&aIe?8^Y9x8QoWPpt3HXetC+Mv)Tsgx+~ihH_JwSazAbCgZf zKfvo3&RbnFwC5oL`HLY>6X4tC?`K9D841#s!oEH{AddG6`-{Pk8n^$y%lWy=o72CX^6;QWvt<;vrs+`IoNmM8 zPkK?W;($>5yg*W(q7^YRcmaQY(G5)}d_NFE53bVc(O_H@39~x6MSZRC9Pu!ExYmDD zAcg$Jkf#Zb&&S<@3QmH(7ArUVs?0;67ek&VfCq86pbQf1#lVZbQc`yOxVMhFU3sbQuN}s(H)t#^e2IIp*C;?G2GbnRx82UcSm%HlC@+d=vH;gCF&u;=}#p zKFGxUXvyC1t*5RtZf+*qPX*#p!?>`&820HxeND;hnW`O|+j%qRk1V>fYB_0O~U1;lj+JP>ya_CG^?P03@5;U8|b8%rf`%y;2QJ_HSpuzu`Ff5O)jqKa0cJjpM~RDbrUT z+_0HUP1jBw(I$W_RIB*1X?7avI$?16(rF=d)rk#`GF$z4oHX@9iL=>m(k9bEd(zlM z+LNwX)G9ZI*S`r&^joC2lkCyT(>qid$LCiDJP?q);T{&W6mx{5cF+3{5&?*JSR;%>qIXQ;0!sWR%!(UUVOYwKeb$I zO3tjgwfdX-T9T$Y+TiNsJklp`kn@ion`nIF)l$l4aXb$FLf^2&!G)yzn=L!%hvm@p z(7k;QZ{5x7z0(Fyi|_5!764 zQF@Kr#E1Q&nf>AqHXc*gY%5a_c`@KX5O)jqKSO;@$&n3qx(-@0mY+vFu1@b(rAZsu z>lgBOKtG5J2K$SlzNTb+Q=4~6`%Rd58<(r~@R`kCzc|kb#NC4Z&*E^Za=h4F=dsb{ zcLn6T)NuEGr`M8~#zkEU3J;Svft9cQm!!}x!P6UusIKR6#<-4kTy^p^spoQSrSZmG zdVGr8piV(qy#8c|rngrNIZNi41`K);mCNT>=J9axviUOi5BPb5y%>10OsaQ)qPDPa z0QX~+za@+bSaTtau=E$ZdmT{?iDl|>ei4Yf1^b^_<3c^hi}~@_cbj`+>jqWYQd;}w z$ZreirFFetEIJ)R0=6rCbr>%2pcU@7t=&5N(V3bL0=s^XB|{?af0dtZ&yN$<+0p65 zJbya*QS=(Q)#f&t zKP1H6g8k2Uygw~}KCo{=U40cMo=xF9V>09on0jpAgt%a^zxYq_;r`Y|2PZ5W;ladH z*uI(mwO&GePTU{!O^CY%@vCtAKP}5xJ7+)H8P3GpxgdSG=@NGS2FL>pI3Vs8#IJ&S zmMqX6y2j~a5pCfY_HNV7BXr=0qPGjix>JjFS{wTgOQ(g?{qAOIWYA0IEmkbDYj*BF36RXx}3rcW++8=PUajdpaR!N;Bn=iybM zsC8Ru2R|O*)2nyk!X&LEdi1PcZad3;q+LDV*WoftX=dgvzk%wh)G)nDGqNCy8t!|O zBdfWYT3p>ze^d7{^wjO-0cp}i;>i$TMO&rQ$k+45Q}oBPeJR%S=bwj8J^ys?VIr@}-$EG~K-Hi+UY)=^SWx#8r-`erhf|gWD@5G(m54DMu zYGsyA;+G>n&bp`V=e3~8`$EGNL)O!>w`VkTELKse*+Z@bUH$*#i!B*^@Q4RJFy8g) z4|gBx(_n_rwqe3|Uscun2}d-1sGXD%Sw26IO8Fj*-(n_w_pzIC#~q%&^oKq zjqX0s{6?1xjy%39TeZ!N+eGqZz?*+PQhL+y1=MF#-#*220!i|9`v!iN=G4b<*mYMO zC+abK?(Gv@cF+&*&#%8OPM}U>R!y?oGlFWqT&$eBI*bmhnv-uZBbJ`k_FN!8NXUnA zB-&}~j2>%g%)KMeW3&=z)pq;vWAlXdBK>-#!uuW(RPKuLg~|)TG$&#Gp@1aeyPEu~ zmWz^QM0wRdXNQunt=7<6Eh=x+IR($3d;{qe)!@d8E2y>h!~QLvrILt~4V!9BjUhG) zIkDFp8j&t%&EsbE3?M}u&I@hU^qz7%lEOTgoICr);e9yy%Hiy@DC22vw`g7;Y3_IM zY@?NAKZkSSQ18&49ejEH-A^BHU0f2(mtow!8Xmr97A~SKRh0EY)7R3)1G4YB<;)>N z2F9E|Hkoagg8o>BDh8hmUBiA~PxX1CcGySsI>R_P|G=hGXEzQgiX<0bS3Yqr__-d% z{Hfk`oMGE&3r!!eqB15eib^eCed%SKB28X9w%y}4i>brW?5@2A`cpgQeXoZ15x(PD z1YXumF0%lx@%PG{3IrbLkHr^q$=I;t{%gsr`Yw z=^gD;Xwd%TxSn4J(3gJQ+pm`kp>au1^%q9Q(1dd@92J#?^?Nlp|MQI2adb$J@oyez zZ=!DFLjA|;3iFy3JAaR&PBeXgd`d>UZ;>>+Dl(vJzF-*8-PxH@yIIxX)Q{DI_KjO)>r{6Y|wCqi`C)PdFb&elN z;&7H0o}Ro|Rq$s{e$?^DDET$SgTq-F+G@y{$FcnNtUoB@y`@?x*~{U)yz`c`bjOvv zUis9<@rwDP_6Va-6O3#|Eu#8Kx&?~HarBG4oW|R34rG#^T&|Z%fXMZL>%x+A0@^oB zQxxVAw`jr?lnSbdUIDE$L@v8E#wkcP={!%2c>&g(u!Nz zMh_YZ*V`_>rCe&}5_-MD?|h)wBI*-m(BW;7GvD9oOKX#{heP->oOjF$?d`LcJ5iHQ zg`0YH3LugFoj-XQjiS1~Hr|@oo#-z0oi}G`Cef*1mt=mUHGiI}+Mbn^9t^S6)tbM1EK8GUu2=DCnX6vp*_ zI^v+__+?}qhqK-03Gx2hh3|pO!%M6t&R#@Tb2#ndb=JO$bL0EJZ~6Rm-|fP9Fs^E; zVmqG((`mCgPfZ5u_|q24RwQgYFpk(Rdoq8ey99J-!#X%yUkoo^n2c9P0uyRXuNAIxC(J07@olfSdD z&hfZ7Z%f^Nv$L=Cy+3h{R#y zaB6Su`@Zi=;r;>bv5Xs_vw!@CXll`2cIs#IpYM$~hSmFGSBFO4oj&LN&{@}qpN+A!EPAP&UV}Mg=Dc1*&h)V+QdUEa-5wi} zLun^w%s7-metb-slHF__+1#*By|dA6h^ou#K@XdI6Thu1o86EJBohNlcII#V`JT)D zedy)n{;nd7G?=yTUKh(KqIcPR-h>rvc>Ucg^_z5dUrCyFjLnR*@g?^wo;6n=?8ED| z)J6?g-}Cc+kN%p(RO5^q+-bR1ej=xTkh^1Z`IvymOG&0v>G1g%_fon?<@`sFblS4( zs}>4xT&QDGU4P99@w6{Zz3CSfMQ>hye*CJU@VvJU3qHO1=lh03RMgwCF3Hq0@0`Pi zvq=OFU-A>-~6$-Rv4|r9-4VZWP(kOCD_TaW_y;k!4&7nkAKibig=fyhD z9u9POKSH;!JO3f8(3c*g-UC%9Y^QqVitX-pO{T$L&YKRp9n0fgv-lBN>9vn`Rqi!$ zUY$KuV{Ph<^hW8tezV@RosGk?>G$a}g#|~qQSGo1!9Dw>@Ol>C4C45vA;&j;xOq+Z znzifu%WXU_4sh?1Uq3gQ=9d+pk2z*TpG7`6VsV>5YWhfN|J*CW{N@*V z*ON1krg|eUEb-a3mTrF0AWJG^HIL`h&1dH|hDXyN6|JLzb`exHDsR_yot3=4&6b9d z*WU1QmLpg+a5}a{PCphZe75pT>hoj&7G00Y zyk6l(w-=*_Z{W*t9;zz>KD_!&Xjy@Aq(y=ivEz8LPyL|s*`by^FW#EFe8{t)we)hc zzVU7&`_Vzu=EYg;SxU8XJ70W$G>$g!J2$zk`&fSb-o2!(JVRE}LZ!KnVy7n1TSMw+ z>7JX#>&Lfiow(;-0F{@IJd?aXf?AA!HloMH>AXI;`M|R79|ZmnctaXGW#v8fr83X% z44&}x=lfnYFXsCJFCN|hXz>D%)nsqk;5l}lx}?LZri$f1@8^v6!^sX`8)l#K3K@NhjBIZ zI%S?VUQC;-Y!CWo;zxlO%YB`fVL9s8`Ng@Y6Y_t1FrQy%-1F9FM>>Ks;h?JV;(@xQ&sjAD|wRSz` z)7|%_k|w6iLN{rbi(L1V~TI&OfbcBqH2ej|%wo(>ukLc28&IcM<-Td$=?PbLiCts;Dn`d-%8Bkr!R2;R(ebGk)3 zfGQ>q93gG$O*mf6w*y{Gzm_((tP?}3)Lrgw+o(;i?HVqWYOa@+!PKvu znY3xZ$&I|eXTv4*eP|d_Ncue3M<+l8KRyodVjn|?ZdL1kp07oteoahn9+CRmY~0Bi zgQ;EnyF=9U?WyWU3+d*^C-TRUiuL(s>oJk~s5!TlvGbr6p>2Z0E(m;5s%<*aEByJM z{5;B4MrIzh7+ThTYg^$xKSfqE*>RZgd|0sZRMGwB&b7Yy+jHLZ6G`uN@J$9nDTslt9|i?v%;&@oarr*D25z~lYuWGk=Z zvXCCp?$~?7rBM3n)QF&O-op9F`Hh{C-O!VEeg7c#U`Ib{VJ~;R(}hB$zNC|0+bPpKHzWs_7N+LM zPb7fzOLNP}`5xXBj;H!6zTLvH3&;l!=gh;KAMIHqd~bZX<9=?=Xcsb$!+B)>ild4x zh4){NkwZszZa0%3560b9`8@ln-7MfJR;}BlVjV-+&iKDZydQmnsn&ZKg=$R%=@%BW!Rhyem?3d&T%^R z>Kf^~N#oL|suRS-Xxxe1R+QIQZNIHLBH;=-`eAL|;yp)+MIFy@br*qO+j-qP@Ord6al5Cy+edrhL6%e-Z^=ym{c!$yp1|iL@6tzvtW&j^BT3$LweGnKRx+;zkrn=8&Y)PUbRXN(hl5geZj6C5?m> zse}v}GUb-Bw3EytG7q%Ntb0l~=4R&$U@hR;p<9P1iviebPdb`~6^~z34 zn)blM>DIje@&0nWrcGemzSPm$c3c%Z532Y2!khNHp4P8xbW^zwGwkYTO^f{g z-jrUX_n_)0E8xXB8740luXN$O*g3*fYm?JLqJ1hgBlz1>D~HahTOEzxX=r zNDSBJUHf`rI>)>F%=nm9)5emS_TRq)wV6XkR9c{ueoVgqjV#h$*$x{=hE0EIc+Gek z@#|~3Jk`{b_YYp)xbc_sBX}9+F^A!tbo9%LrJG}Dg2an?JK)97$K5j661azMeq%LJ zr`-bDBp@NEVq!eid(&@-+3sf4vr^5vxx-~XyEOH2p-uTj8fEpduBmx2_1zJ7=VqAv z{^D>i#v*&!PI~@@hTX=i%jhfLO{Nu>#Sp;dD&U(3hi{tTvwkXRE^HG^{07h+3sGG1E~AyuNC(98ABDlTJL(}FMmHZjF?e(z!CZU z;XLwUb8Vu(j3;r^9Oh@a*b%U60)GR0G4SHFb^+Qc3n`shHSM6e`x@G7?yxI!!)DSQ z%~FH(edYUJd-si{y=$zbb-(U1nHtiAu5g$UxOS5@KcBhPYKJcSZf~%dJIy0`X%nh- z5;g{>Ncw z`sCT63aMM<-_yJa1FiE$xY1h2Yq@?iZA(K&XV>ydZ_4qcRsAE*GtiN0Uc2Udp<{J= zKfTh-87C@oy@+orzDRs?EaRKj?0X2m?#y1yc`;lVB;9U(S~f26EsqC*)QX(G&WG=` zSR~XNFE1B&Gie9cN39&x(`%n8$B)N@vT}uF&*u1;y_oZ2Xo#fo*ro2BGU^NCer&MX zzbVt{CC7uhD-vx_>+c(_*6 z;b-`HBdtR5G(L2l`z5j7`e^ee?v0b7pYxJlkr!tTQ^5^-E`20>wn9_l?O-nkUd-FE zf2NeXn0+xw{+-48=(sKmqhI$IuFs&w-70s_Ya`U-@t{0RE4fqFy*J7Jl0BO|m3TY1 z7XvRo&}m&jlNGut6oG*a$?L(M4fx=AC6!Z)=Q~Vz9b<~;Tl|~~E}rksD*a<^yw-gvU&L_=@i2Qa z=f#4C)-@Cfdk*Ia#|!(oz4w4S_k{Yi2CnJ1=@zaxzE)*|-KgFwxK$2sE7`LFAJ~h5 z7vuJA*W4*MoH1Uw{$jiwUr)Or<^?y`4$;oct}X13j|b(b{^ur6d~ht8;Uf$mw-*C1 z?s;y_;i^xqEpJxd^S5SfUA{gs?mY9)C%!I|^J`(;3qI+LU%I+1@2`S;=KJT3wYT&6 z2AshXPF|nH?Ad@1+LctcE1vIJ!s{4aJl{QqdI`6YiXQSbslx&GV&KIF{od8J8~%j& zZ#+}x#(@)j+^Oxmbq}rJ#OKS|_l7}H*EFur`n&cZ=b%%3Ui33xcKNKggX_~*?Y4ZG zBs*DNgPel*r+l4ll**K!0`5gA&O3&$?{Fb<7Ha#+Z$Dp!@-TCuNLDkZIsv}dFGM@{CJ8gJ7%_ZSw_d!8tgM?-8@Rx zyF~O1_TYNw*1b#VCn#y{`h}T0Ka8dshjY5UaFxGji|m_9AIZL%#q66;n4f?i`yK** z)ZAW-7d|VS_(isD>03s4-{p2su<3I6o$$U=4tMHZR3zthD>2_ZEBSdV3MG3s_)&ws zSO8ZM&_1Y2&6PcccoV%(X?L3;=kLYilwbVX|6_h#-aqM?V@%#vv0V}RV|?I84fbMa z2eQ?yviTlG7iQJa0Xll!aU$Nj;N8tlbb z4`t1QlOe-wn)CC9dM;y*4j8cWw(x#aJkc2)-ew`!8@1}5b0T4z@VsE$MCRuW_`r`E z?8VRyWTp8Rzl}b!MYujsYw7#wuZkAx>zuBu+1Ojmui-dYS`T};WK2-Q6o!wKPA#@) zb3baZ7XvT;DubPH{cPy)}E*Q$1VN_dFuu z%_wPLw&edZJulr^igP^h;%tGnpxMcFO{)UKL(75D2oa+;FCKV?9af$2iTU<#quiK96-E1pNeAHR? zPsF&OJeK)+Ph$3LsQ;&=YcX!s-@9Lh$1|;ITG9y%OVN0G+9#Lv&aNZW$9<~2E%Zwb z6@5u@gC8~6i$yqQ6yvm0IS#aMR*bWmP`|DiXCt8=#u+QE6AI--=I0Igz>ga2#n29< zG@o`UP{vYU!YR~C^VvwK$KyeHBEzjK`FT@@kNZ)By%=~g@V8eIe^4Capve$-$u7VtNshQARt{EcA#R$JhoiufDfr(2u(Bg6h; z@S_HMG4NvN-fuUqr)f0s(d+pc8cP0rnp?O2>Qa|h)5K}}i}r6e_?lg(#)U{4mN4UU+4KlvBKgmgG|5kZ z!2V+JqXv61@ZzvZ15R7DUr#?aTr+Y{n*2R+XES_CFJb zkHG$7@T124uJT8UdBMcvb{l(x% z4R%+|FTbq5w{hD#EB;)HS!#3o?{-@`&c3B@uCF#t^VI#+}Zl~GN5k%&Xf9vZnnecff*U!59u&34FJPSDA*@m;e`=hDa z`AyC}@^004J@1F{!Tw_KqlWQ7dij{{f7n&F>p(roR}(WASBome&jac~o>?0dcj;j` z#|ic7WJiXZ;iC*6KM!^Nf0usfd2hWwrU|5^5JfzIUvM&nwy68At<}dL#K2MCl5yaoPp7A$=_#4+(l;ZF3GT>wU zjR1c;A;qsEj9(JIznJ+^GyX;xezc#@i(q#{Ee3ZFXL|n_*@NmCYOogrFZS7UWOT<$X?*-c)_Et(?1&)1i?c4cjqZ7R7uSboR@XcB zJzfy-;y3dfC66#%!S$keLA4*f_Bb2eHvlir zI?=Vm+^cc?cu!|)d>!#_J^@~=U2k;7$XoJv?W+^IJ-l|(od7R(AKj$K*|oEIf6@L; z+lV`N8yuKJBLZtWybST9!E9eS_|NmWTWo(Z_)%kfG3Lo84;ug3*}5XXFECG@&}zrk zj@w>vzJ__S$e%V0`O{*25O)jq7lR))wijcboVKvuq}yo~`TdP~a^c&Zfs3@;@bkeu zS!CZVME1>K78eZgLEJ68zZlj(=EYDC67yoH2Z?zx)T@)2Z!&xo;%>qIViBJob3yB- z&hQz0zA&GUG3+#C*b|xWV?OWJVAX~!CE@+m@Oc8~bAiPL1AI_lQu+B%{Ric2#CEbH zTDcYx z`u(gV{(g>ma?-|#u;U6N-XCxqNW7TW+q1Y}fDhts;r+$XAM;|U2Z?zx)Puyl80ytY zGsZX9Nb$B{|1*WSTd==a#OJHEH@uozUbb&yK3_+p#n{pD@_b=FzweddtBUg!eBRXX zdA@!zK6U4b^)`*R@48^nI0e^3IXz;B(`Rqlj~wbj4%oB4<>|f(mHs8=$q;u7_7{U6 zbsDl4W1hSoGovyCveA zm>0u5fyBHR>Oo>&4E5@yh;KsNE!bZy;`2dG?`~b#O|~avKJPd8N$ARI-S~WBKHq}8 z`nbSfwr8o~^L+hceCo~<>vM)W%>PuUI=^06zmJUeyfjHqsP{HZ{%p14gUa)_q&yko zZo&Ry@T11|V$750jvL>`WyC0s3-e@+ZCj2tIw$+1VV-=t>UhQS0b_Z8IB&*_d3_5O z7Yy)0yMIdlZeIMm_`K)Q@NmCYHTlNJel7IZ6&^G3F9!H%=ITE zzRC5BCv$zQ#5ehMhjA1yFPu%8(4W`GvAAG>58`g&{l(B9^J1t6iFq;9gT%ZT>eb1w zFC^R!Qd}_D|4bn67VIwuKWeZS120y?->4e?MlpZ8Er|D8hw(RaiNBF77S}n5#jk?6 zTfmP5{Ee#NZ&VF`qd&>t2Q zX1;Ismz!{0=>MZq;>k0F<2n}GlLrd*5>IZgqE9QAl3sh$6_ww;AH|2;OFVgp%JHC` z#FJIyZh>Cn$qQ8bAM3CnwOv*I9E0}%ZF10KQ_UJ@Bk1qKrLi?~ZS?sG!g)9n8rXVH ztKLHWq}4q~5AD-IMPE|f5RV$-Zo&Ry>_?4xadfeL{vf}um={ZYUiMSPyx6^<>8|&B z>g@y=-;Z7gi6_fAaDRy>tJ+z4yJCCtLVli5pZ1_P`La~Dhe7>+o9tP(MUPHd@^`{t zjV~i*TSjJ%>b`e4&ik_F?<(rbc0s5InO6JWmk@_#@^=ZQuq`2Oh(`@^w_txU_M^tU zSmN`0`E|v-_-?U%KA!6_FShag`${|4{ag>{gC)j?_3FwJPZqCFjbffG_TP*uwkNCp z{`m*l$FFXxXQ}S^|Fqt%|D~bfz30*2g=1^0{EHRtb{5XVh)uIC4twJhOK)Jv-8{{k$r1G`eF*PM5zT`E$ykT~LECQ^NdDTY{;>_WA8QO_O<&sU7;T2SnnEXHy+A zp}=-mtS`{a(%scg{Cy@rZ+fqnrm~+k?k_6ux}()ZujMO?7g8Q6@>PnLO(0Jb#G{6| zTX=sl#@%9$L8YbNWWQ^SJNN#(URV2A^7V~zZ@s~qX%bHUT*LUFT}dV8 z#kgO7@qDiruHS;<`IdPz^oRL`vPeRnCWuE3akudPVr(zI)_L1dOXmk1*X#1GwGv|u z`F!3n+IekHom*VL_)+pg=W0W_zW0s5vCo=s=6Vsn@hp#285S>F)b9VP-nJOG{NDVl zkBfOR9)E7!rAWh-vY!Li*V8e(Sn;pce4asHQrwWINx|Y#Lw_u>y%_7gigAkV)w;zv zRrxy}r>nG1DAYT%JW|T1QoL-)(**ITp&dx z(L^a;HibM*z>fs{ji}*oL=Ar zd|FdIB#h2H+*SY87(3oyln*6M*Je$(D1UnU`n;a)@6RVJKNn$f$O+G140)Q+!pDBo zNUgB$`YJWpwLQi4yd1gXLp3Wsv7R^l*MA&Yd|HN&usl)(@)tv%rho0FP+-4ltdFZx zulpS*d0!dUTNkWt6LNgc5995^;sr5$gyAEQzZmi~L0o4XzY6`FplU`!_K@$X^V3n(+Ln+g}{Lq_y7Fh@l)O?!Q%6 z&o|_?cz-f(4`ow^o8hAj-w$6W81GlfAwRf(6Y>{Bo+gY##cvulaKBbBu4lNsZx^W* z&egx?P002C>3L!J2*XDpe=+1~g1F8&eiink#{4qB{Gz0Xm*x1M_rm?VHea`%LzZmi~;rUUwzu4^{xe=RTW{La#r)5os zo8hAjA3u-(bo`&~pY^K3!0cY)d{B5?$X^V3ny?=GO=G?0M;$Yrt>WjeGWS%UBOmAg z@VwM2Tl7bxX05cA8Y&OYHD@9E}A^B>s<6Xl;hNK zX?@iwT#jG+x~uhHE~7&TKL5T8rrs)eCilbmAb&CBX~O;0?Jw?sU2Eu+Nn(3)_LazB zt$gu&JU$+j`!n1OA7%LX`9r(^YuP=hanF!(D^=!Mgah&yL!Ktw4*N}G{adHfMF%I| z6&}xVMe4hvoQpy|9uLX~JhjZOXV_aZe3aq);rYdOR~R3pPpv11>ULDkBM$nl!}MG? zJW=)6u;1Ng@Y*Tjc=XW!pO&`|>f2VhS@QkIi7bCH zKYShUtvNroWp+nPhL13OJby9dX@YpvIPMnqqsF{giEx{4-jvf|knHET9pTpYN>bb| zr}|uBIQjb?IC2T^N5Oz~30Z zB#d7IKjL|s7=I&-zX|sjGyX;pf8)nz{EZ;~#`TQ9@iO3L{EYyAWBigZeo5SpneUAo zzlT8nVu$<*}?VoPpunN zD^30#1H3Q#p3sed6iPSsioF{*X*JJV4f(kawtjZCTZiv?yIKBXi1Q8c%tZT(;d=w{ zV%JX7qu+mt<#;wHmKof!-FyPPI40kf#a9qsBZL+lw(zHtY7S&(5w_`FCdp;>n_XD2x|dz z(eZtJ2;?t@JWV(rHRj3KUW|FN>qgr5P3;E!KF2({r15DnzE25bmK>WLLU8_KI6usb zp&lgW#ZV6t^J1u1CxLG=e2`z6wx6~AX>#)j3i*pgd>-#F#(Z9DevNM7rHAwR#C+b+ zx*%_eYagx`@p%@HiNN__d{AFfiT$W?zdWZe9iDnUkk>70@abmb_LuX^TcT=3NqMqf z>h`r4^n(b`UkrJgP&{hPld-+{ckyJ5Z^nSd3;P>~5uCpm&L8t)s0WF8G1P;^ycp`$ zN#L6dALLi21&eFi^nDyjA%C%m&*S~Yn9nEP&Fy~loE#7M-}8CdzeEk6=j#{aQ+J+N zkNv2zKD?cN`+J-8`F(};w#DBetnT1n-+v?X55>oLB84IWSNzciQN{KatIm={AmNX(0&9wg?) zP_Iq`-(>h8zcQ_}X>jzy1V0M-i$#1M?=QxDe%|!4H5=8D*DvPt?bDq$I-D@&&oMQ8 zp08hwPu+Q9J@%ulY*fxGN#e!49^-@a`={jZ=Ec8@&!@dQ zsh#||1-~Am`7`dMJ!#~U$vl5C@Ph>3h zz4}t2>O$Gi8XqrbsNJ(s!4o(xFPm1^J74moInC?D>&}?M>v6xIEvwsKtXFJL?j}BN zF;6yD(JRNyJ=WJ&y?^SD;#Rl6SmMd@J}5lC#FJI+0B;WN&J6Gt`)A{E{;6`;67GZi zS$yjD7f+18Wn}bqh|2E(9Pg&%8hedLy;Sri#l2DaME{5~jP%w!UUgBqtpxHH<2+56 z7h^wa%!{WK+vnxD)R-5SbpIyC2j^WeJ7^DSyu?>G4X6Tl>$1n=ktG4`Xz zyf~-WKEH=wcg%~+#`bCdT2J18FFG%bPt;CSuWo;_MzK9v{QQ-8@)CX?a2&7~L;1f| zde%8Kv18ir+kdQXe{sF0ciV0mA^TP1dFrKgrp5Bzs($Vz#cge{J+}0~dE{bC?^L}- zkp%J=<2+567h^wa%!`eR?enqxx?^74t*F`17kAX>OTzf@`Kv3d+h2UKbc?EHdiOX^ zJRVKjYuv~@TSc$a-70#UX@9lPm5hMR>laR&Kpa26Y#Tjos>(ROi(lgNz-8dg3?F6q zXkPoaE$zac>E9>nU+@kXMj({Ehs7#@|Ru`P;(-TA$jiN~D`iM(wN` znndSTs~x(`%#T9;V#w13@u=ZC!Tw_KqXv61=&KJsr?W3*FD-Lt_0qaA%c=eNTK87v z%KX>uvrfLBHI*{wnk3H)gqokUbmhJ8}Ie?}e zzPkKKjrvp(cgT24bYUtS4@(@68tYZ;#i&7~R^pd~(NFnv%J^E933j7;bNr||FJgSo zqs^x5^PWwWO|%R5-W^PNL-Y@hM~&19Y%j+8k-`33{|b`rLnY0>sRVpYC48k{_tMP& zo=0p@9i26M?yLH};<(Nj2e!Ln{p%S$=hbukasB}LP!tkAGC;yd!ut6gI{Q7Yd-)@Z zfleXwiPJG7%PZTAQ*i!bj2rJS#<(lox9f6cm>ic8;}*rIeT3rEE@k-2GJJSG)Rl4E zE!-aSVyu5vJm0GOd~)EJ1G@}T&F zbw!`+^Y^ck?%%}t_C`+GQ>%3Z&2iR`xuvC=7Y)aC#;~y673&kC<~~NS51eKRzjIeKO8p{G+%l*R!|P36cG-F>aB4 zvnH}{R$}-@Fnog36ISE6Teu6zoI^*%M-4*L&eD3zn&0MH5E^dd*E9>7Mx9N_d`mq!PWh^-%JmPGaPoS<_kiKU z=cTTU<8I;hm=|NcggZiI9qd>aFmdlL_3O8T*|hh4TAn1I67J}AkG(?lGhcT3tha;U z{KYsPHQry0?Zq$F-_1DfeUsw~sFr=Qk+q!9?)H&49jDZg`93}`D4QXCQ2$TK%f+}u z`FZ_n960V49v|~!tUq;s`?07HRezY0;?AouX5&FRjVg}UvWQ9--jj%Iu`XIiY?t7%0II)>Ho z(f-bp*dNZ*gyUCXKWfY`-zm#AUih>3x8FDtG=^}Zb3yiByHez{089vJJ@$*pE|99!9{9yjgu&%Q|jqdMDvwV6y z>Go~9Dt&<;mb~ zi47*Htlyu_UkvM~%#+T4w>%;H0Ykky*^lktWcVn<$InAu|KFwW`h)v7ujlz)2=Jao z70<(`mnkz@1wYQqgmGiPX{@&nGrjYq#`p1m@Gpw-O@@y!d?aaHN@(Rh-n3bMZsehc ze)Q(rA=;VQwW-}%-9=X~y7J@TJWV)$751aX{IWvR5jC5S`o#TyCuOYHp4Z!x;L|vN z(xcsRZJDQId`s`wH7p2qBLl{izuvg}5S9Mw@)xVyUpz;l^={V8_WVA>_(bJP3^&6^ z89qLLqJF=&?qVdIg(h ztBi}=;qv;JW~HlC?UlmtQHJk_=NHFy#>c^SSFEp={jtk}bMkvI=(q2=AGWdVOa6WV z_5W>hYdg)cE!--Uczt^Fs)#Wc%x4&4gcs}Ld$&$`jrJSBU z2k)$J$?y?|kNnXva#xh&0y1p+OT%l%)5tx`K~FkGUr&zvRC!zI7ulZ?=V`)mx3C{I z=Ec%Fka6D|+T-&MJ2}53oJVyDC;xti@iBfx89xI4Mi_q+<}YUaO}M|9@i&6_8^3;x zzwt81EAcl1{EhKT!uTcdBg*&@@HfKvn=pSd<8Q+K#f-lZ#NRkR#@~1u@G|~JfWI+* zNf^H*4c%zSv1jW^i_q>NZ8~fqT32p%8o5=E9GSjjP}#%o!u-V$&rGzx7``_EFRnW> zwtCNPyEwjl?dPXW6I6evJDH3f@@>y7sfnnO0mDLp+<; z7?OD^i0FlZtO?QY$_;d4F&`E$Fn#zFB}fwO^PWd-v=2IApzA?|S2}B+3H2Q)UhSAj)GO z!!jp*voc;@F79U1j%4LIu|Bv}~`F)CcGLA=$c`~*aW1j3; zXZErD)qnEw0WaglydL8_!1$)UfNx@64C8{tycp_1VqOgO>Ll<@hL19QbY>Ty#XIXQ zpo?uQXWEB_3i&+FUyS)Y-d~LQeEBJ(I$bZ2d9oTlPvCqoKBzCL#Ce)H+ac`Wgc%m~pyv;&>zv2AFa2$}B zCu4gt=E)_EPmA#-F}`Un;G38i13r+L7ehTr%!{F3orE|?3?F6q=;fWarTdqig`_obO}|aISY*xL*sDx@6-yWo^JE;4T7@Sg zdokw8BKzhFWZ%U2LK)w*7w}EYivd4K%!{EOB<96XuTEw$zRB=WhL1W&w_f=wY6eZ6 z;+tMeTPfu8IDawb^LT$T=JV0Dn&>!$bKPwh+1Ued_@Fil^z+wx^nP0RZhSJKSuw&V8&=E*o7HRj3K zUW|G2WB*<^Zq>8k_Xohu^ zgQ?!@3vb%*a;1e5-?UgK@lAeRaQyllgu0SmK*}y#c<8lj>de_$=oK z$M_!PJ*(cRvy%GtwOpQR>Pev=NX(0&9wg?)P!AIGVyIUqD>2**A7S_i=0^hlrjoxH z@i&$I#fZPrpX6^U{1Wpc0e@4;UyS&h%Kl=+->Bl}_?rs9RCisl9_KH{dc40F>r+$q z#op+-ov*uK*R(R8^XAc;=4VT1P4(dG8~6L!GR|L&$HDuHv0l;C>A2EBDLPu5qN$G8HYAl<6xRDbuN<4;Oq{$e(s zXn!#rF0R;~?5l#;dPnC{m9ELpF=+qaCf$E?{!LN-VweZf{$kK;l$kSU_ES5R--(jq zwl(dP>1HsG9I;(+|ICdj5?*Yd?@JmL+vmgib;G}ts0qo7|&ao;L@ z<>jFCA%SDpt~WoijszFm=Q|V0J|D){FXqKKPZQ?F*pC|X;*##)#Q5O+N-9P9i=n@0 ze=+Foi|xsQd>)`)(a_y9NB^eU_g~)rANt2B%PjUysqyr89bS~b7>*~}Ukv(|1$#A| zs;b7bE-CJjJ{D%%HnMUX1;yF)v=xujc+S zjh6E9;e4>f_^@7GS(LvR`ib@zgZ|GBAItRBzpR3Dn86{^aGm-*4(^$c7Ctr|MBWDP za{2R+sz2B7;+KG5B!M?Ge3ap%VKpwln;6-fDy*+4+%$*MoMOIt%0jYl*5J=cj2q`^ z!gg-#M~&^=_p|SKw4Pd%j}N$aNp^4koWS^?-9Ifi6x+R3^N|13xbX2M`+O~x_ch$^ zXUo5dzmfmX_!}uHfAh|(Wpqb(2U%o)&#f>uiX>J&>No7TCHXW=e^b@kVMODV_N=%v z;pA@NhuatDgz(=X$X^V3ns7X7*k25O)YxA9>D-SzdM5%>DzW| zv}X}rm~g0Gz`$_g=3IGF>jyy`XYKgPVb|ZRB4&TgAFPqmi)h|x{=%-?Y7$btQ%=kG zKIFoboqn5hXY%nOe=+1~!ttnKe=+z`V|%f)_x*#f_fJ=O4l5sdTEDK*jRY@m-1y7+ z5!998G>n*0cfgTwKA(UyYUQAwUi(Z*T2<{99V6uD@uqF&tNWgR%bznie=&|nt+Kxu z*^6uEek-gt(Ov~F%ri(OyWW5gt~<;p;7oev7?XE(D<3axd>LPp#$EXH66Y_*@u>0s zVr(yVv#l`kQD^n>KnmHqtj(@BtWUV^a9$wiE^43`G-o}>4fP;Jah*Xgvb%y_Bv)rz zMr`VDV_8wUe<;I8;XZ=(3D+IZC&rEQ7h~Lbe=){=y6Skv@&RL2p1ZLUPF{bT-RFQ$ zbbg|G_kyOo-s>F}&bPX_TOwY3>e0T=I(^jVH-zUB-0yH7;q{5T^K0bJU!gC4FE56QHFN*67?L>B0(2FGGn}9qHkRJh_^YHwH=Mui(e-t;~UyN~! z;?v?dr5K;+{6zKY)~C9-TOwX8if@B)!0#sf9>H@SKR@yPj@KuiPrSbv+lx!Oe-rkd z!G13IeTUyod_MR&g!TA3W4*}kire8b_$z`RAo$n8dkFu1XTO{H_Xy+0_dCXo=M&== z**CGBO9dZ3F*Rk;^Aoy>)+gviyjaAKpdUzhuY>m`cn`t9@A&r!KR@yPj@Kui&%ho- zoF0{aB>de0d>`0*C*Xtne@cFcU-agnM~qtBKZ{S@@20xvlIXgZ6gRxj!+WymJn(x6 zZik=qSdZ@`tcUVNa{l?I)tmTyzhHa=@B#0D_j%|C65i{ej3xYT;(92iao?&IWJ(BjpQvQ5r4Mg`lTz7W8Rrn>0UsBm4Bx=hl zy)Y_j5Amo)daxIR{+P9^GW76anz5*T)Xn8{___uCe=2Ww^#};ERrQmAaUmWxlvO0N z7el==e0RUvC%tJ`)9gEqpZEIZc;Ps|OcwKG>;Hb7?1YuYJXy9&{<3*s0}Xm?s#)V~ zgmC?;i|Z`1yFPBzE>?GmG3S}T8uzanuYQl&q1`mclo;pwQ)kzip9>>{-QGqGi&&(x zj-I{yy2j^|9ETd?RF{{jq<+(Q+-B2uU4DG4gJqnAk1~A1>x%pTuCo1&z_HJo|C=~| zzvzHH)x=9z7uQ*2cRiQw+4^2i^AfL%UvxS@Jj{;DWw&`OZChfTV;`K(d;Knqw5dFY z<}X%_gELf3ero#fqeMn>F}#vqjH&h&K)6;`miy4+g!6Upi)L4C-2C0mrX_@F{4g8DFLk zp#FCoof|gOOl7`Ps&uy7l_!qhpe}#$kM1vq^KoLhH6(n5;p684?f$Q&b1|+TkFQ!% zoCk~N+g$kEQ5TO|WG^22n{aoN_?z&$F#aagGycZ)8H~T3lK2}f>AaP+9pi8Oc(@a9d(#!6U#7Y|O+r8F-^G)Uby$$vuB!0) zpe|37$dCGW^JKXG|Ec`ly!dzV`9C%N--WgtFT8FrFBe}IJehVhh<0e+J#x<(KdRBP zndy!3g%(C__SsJEFZ&N*o~$|IcF4%Oay~K4lW{z1%#%gmy&FornB%^L@B!|U%CrZ) z$(NYFYIDWSLyLqwgZ{qWZr&+osbm+m?f$02e2QSNB^)ZNQuKn0q z+1j7R+IX$|P`=0_D&$Pd{8F;t>yPqe9FH3FWRYFQLE^<6H^wJA4^h2;kbV5>rg9u= z+z#T9<9c2e_)-6Ep3IN`AO7>ZdGYV!^H(n1yYQi@`g}8o&NV6ZX4ee*rqBD7>0hSN z^&8{8x)ffsNNGE2LCU~F?r(;9@~%5tP4rs6;(E-JRpL=2o-DE(GG5HrFUI$ymvdic z*ugrlX9%Ca>hd&+{HROHlNq0*p#r{%c`-ge%!{!e^J1(Ql`-FB_(+S*run9U(}+V& z?NJp@1_}AR=h5TUbJxqyH_Yd8{$kAM@%~~pe4f7tV|=3X6V)e4d{ej{)a7Xs`B5{T z%z2XN`2TeM@8ZR9UQxf8zX30v|Nj?%qb22UCKa->h8wM=!B2Wx&MM_kb2{iuDx9iK zv#y7gUf*phZSXa_PK^tZwDzOd9%m-W`A0N8huL-?IFnk29$NZACz`(KdqOw@J$nZ)=wp&3};sM zlbzjLeBXEUr9oC?jfbg9AOH8SJ`(D$uh%wqvLCgLxO2C`f$w=T*q>5!@~|c2deAgo zn>F2{{AuprU5oaw_2zm7%hLq$s3Gna@6Y_Gp$xKb_?GBKhMTEk!=e3qbskz77nx7K zbIFz@#pc>Xe;H34&7}Fvc_ZP3eprSzpI0usNcOMBdPl9~PFeTF@epv_E!-c<)g-@b ze%{a6^#*)t?7HjuO7jW*uq;ekKc=-$XW?^<412g_OpxlnK^O@ouQgb<7RM~BB%F_kB9gJh6d{DDMdy`5%=-Z!rslPgzaEml0oa*P{#Jbl28?G`_SyZwKw!byledy=K3nKbOtjAk;&gEolE^ zQu7eQM;Jb0T{zg<(RLP{uUFG#;fJ|&2zxH!`yH=Od|ZZ`Kt0aW#Bg)H$iHs*_A2k& zW(?%(7vqER|7nSNu?Wu!mfuj1<(&|8bNL z8qDHV8cF#P_&UPRPkg`Q^@;N|G2DFpiu^y5b_}_u7%B5)jIU(p`TJX8UMxDIO@ph3 z9~SN=t`i=uxpW|apFeJIIHYj+psq9cd}Do*r%61 z65@mYzguE^@vlCfy=3)D-jmFptu47>VS(;{Q27JL81 z?{$io7tW?kkn>Y^MZcSk7TK(w`K=E>51gk7$KAqy)FONx5WZ?F=9V|9G=b!#7wJ8y z`pF9Si@jKPr2a`0jsxrOtvNroWp+oQ9>=4`{neElO86+lmzu`-(Lu(KfWL+PD}N(( z5Pz%vul$Xu;co=UvJtzb3ytd$N*Bwo)8BW))51eKU_a$R3-dFcMUu2bav`3hItONP0 zyU%vtC38tcU`>aYA$}ZBizxHNy$xfsB**k?=j6@nWGK@-)GC zC6??tWi8>O3}32}UH2R|pLjgRpb#S9q4qXwL6_MsetcGnR;?FRKt z7H?fit2ampF6t?-PiT*ELOn=~6Y4=?oKUY$_GLV|x`dA~d_-Np->nBf>XIJEm_3(_ z*!`~34_$W^y_yR4p3LnsYMOJkWKZ5qjU;?jPr^qxE4I$@eHcY*t?AUgbZ;LrOyZl# z*62PmL+g_d%>KbV8QTpp5BcBsNon%+i}9JQH9lIaM-=_yJGOiKdGhlU@O1n^oX`&> zCciu6nK{iscP#!t(LKxR@tn`(}TZp9|VU{$eOYJZdQa z@B8?24njMOPiw-{o}F5M&mXD1ZK7jOcm93=?J-WM2Z?b)JxIvY1m%*-J&Y$ae1zds zx&9>`?^m@0KkAZ>cQdJ~-lLu;=+kZWuOHpNR%Lz}FSZnocR=FBLOtYZ67?6=hccdg zUBX8gz8{|7-(^n*d$9=re@p$3;>?MV_@+X@H&;k}Q+T}@-xTU0Pt(uNj~?Tj3}0$^ z=f?Am($>&PN58CCx;chQ{`U5CBC^wbeeth+Ub4^2-@%(AJ`eee0Vl+xhBE9ghO$U5 z$M__EL|RGwh&E^M^M2BMJO%z{F7Y?M-dnKu5X9fO9`Y9>{>JsNzZl~LUhK>G+fj*M zQVWT<0Y4&f5AcAT)dsRd8jXQN+TXv!0;Am<>H{S9K4=1-SKhL;YYXv`^ zV`#|fO=C7t*YNPS{oUip?3DAatIw|G`r|BbHRLabIOKp2_LV~!B-o3A7w>Sp*=@?j zzbM_);KB#btu*iRp)p%>oT*oKIkSjKv#E8g@5Sy$J?N7=r&hf*`ED;B>bUa2xLG9l z>cMsj-T54kUbTYw&}soR?#-(Qn=QZde%*tMwlxgm`s*xjHRLbmamX1k*#8bVL4v&) zcyZ4oOV&&ty@p1`H@Q5p-ZHAtE7;q5&F56*G~?4_CfA_K6^@e*XueHVoYg!x=?_Dy zmpQaeg--2=wWFs|#rDlPo;0h8QGI(iq1IIn#dOGMPW0Sg?dh_ik*q&_b@`DR^(o{p zhCEGx3-;+l86?g;cHO zOD6RV8t%NOJ280aRe$5sP}23&gft76NP4Qp?5P@7zO21MkrLsy*`?J=vf_T~^A$$1 z^i#r^CC4Vq@#hq;duiskTE_D$L!KtU1#u6c3=-_cz>7V{PrP%y=?;?b@%;Mh%vj=O zo^*G{feFN>(~8r_oEDIwng=4USGFci&-RNN*T$a!&I`4dw;ORs-sf+7{_JPh{3YZI z!`Xh;_NU3s<$csk`}rL@TP2V{{$j|}1h{Z~2B-&nG4SG{Egp8P@oXbmcB1khMkD3> z9onmti))3PU%WhmUw7PoqwU zVMH%=``Qco^7Fx6FKFYAK7JJP7ek&Vzya|tpbQf1#he%4o#ZmCN<7_a?pv^8OE_DP zxyfeUMzQ&3e#C!&TvVGc=H#Vc%epb;7m=v7Pt9hAt)OepznE03zPx^~C#QXM(TO59 ztp>fxZLyxt7_fL@e`9&Q?1`MRr&j9-o?jXAGyyJ%%K>GOU@rzBKJfqd2|Z}7IcD;aK5KH0mcKN`ilwVFNQo#fD6YDfqJkP11~;PIOXj7gWHG? zHIAP1Et+3nXs=FA@UL5WOD*yG)c!N!=F5J|h2ugzYB&z;F9ttqs29nwj?)Ugt!=6O z0!JUi>))Thwj0ho_NYj$eYcw=)tXA}XMEeV#lVXsw(YJvy1E=MGI8d7`|@jiscVEo z?#;gfN#5-w>)a|zj?+0>yZpvob1395hCEGx1LCnj86?|0{~ z^hNCYC0cy0-REwNWmCxPw>wI=-`tQ4pT79PKwl5?#C^kVw|pPkwRNoKkh2q5dxheK zbHUyU0~eB`llu;7XBbKcHh4V6|B}34Y4^ic=c9M}^8Ct>rwMRD+!!c>1bZ>?;@ypQ z-Wq4PmW=!|XV=H1rKH9@-`H&j2N1`3Po@NVxRa#$ca2g<)gfm#9Bgtfd@=!?5m!4I zo?j&ApY(a!{gC0Hd1L^?S!dJW=!FUL_s#iBvK@wwpG6>lG303iTsXcB)Pubkc=3z4 z2XzkjUrBbfu^7I1zu5i?{jrSMqpWF~A^$F8y|uyi*wO>#=N{HWJZh+i{l(x%4fP@! zJig_r2{eW@trAjq)q)h_H+RwAYq>FGta7PIn})|pk;VIGWpAa^7DWwPO-(q=*TZ<7 z*HLl(&y(Ek?=|AOoTuaRW}O>5{y5j0nN54&r{zfk`HLY>6W|cV3j%vF@Zy)__x)Wj z@Gi-vc+?CK-~>NvbvVaPZfkR<{ScyX=+a}xV{4+k(Y3;7=TbEB z?&t~mUB*$P+eNb%L@Xe2*3I9q$eP4)IQKBy|7w;eO^ngKwfB466XQes}j8Y$sX$YWRA!*+}4ccKv$|nD%!Pjm%zp?cC~v z#O;{*-nj95xc<=rtxs)MB~r*=40(W|Kg8XFGDxr&120ZD?y}tN!#P^RFZA8|TdADC z<-{M%J9#6B+F#vMaed3a^wga=^DU)AY2*y&V@H#glPA}GUiPRI!tvzw$)ycGMANPD zmsQLutS{$j`j47ecvG?YPty%>10<bm{jzuW*O%Mq<~LRob=obU%>ojFDkjF$v^V{RnC)&xW>%_MH+Q%kH)(0= z<3gMAi8RXUV_j48VB)(Y?#|6HIZp7T6b6Q_pN)6HMW@4uRtmhJ8}IRNrj^Zdnt3*xOo86@~ogS{AdvC=8; z+2kurDDYy%&CtoQLqDV{vNr9{9(XKOQTX`y{`!TfiUzcLO-DVV2oD|BO1Boj-iomr zTc&D%O;rpEo43H`dwuD4XJ^mQl=X3kjJHI8??27^54{fMd46TU1##h^3=;gP!Cnl! zSb25!5bp^(RLOX;vSRSP@rwsi#nvPGg9GzY6}j3Mw|DG86Hkr2Tj(>9B*rf_?owfl zjAx^H{g1aCsP&4o=Vug6CpljZYSoP~zVIWm^swyC(+`20AoA5ceU&7S-IL_;I&Ox*ruJby792jc8O z86@~ogFPE~@#f_DHqU}ra$a2i%jE3?ZT-ofoX!)RXB(4xL4VY`_dRZVRfaRa@PW%R zh3v24w_|k6gdAUTjp1zLGqsZO^caq}>=DI4r;z!ix0DB(=T`gP%9pi-8y0 zbxhBk>Zv}z2aE%9z_qYiejhdyC}Y`M?|9Wk<>WZ%SPyxmpdR9G!Tx8c7fIm7%Iz@? z486Yp?rUa^*k}7RRiQudY2yexs^>m&rE{w(B=Lb_?a&QlWt`7>;{rcwuonX_j&n>*EwEfb887D7 z@#(n+MImX;N$J#~k!^Lo$d@T)X7K=UQ^}Focil#QGhOKUN4yi%`^ht5i#zZmdA97rgG1V3u9X9F+pRad9Nmhb*Wz>Axd z8B*P_dkFc|$o=lNb&beOJKOekt4=3_7|x;t(|2$6UcvF$Z-4ALWVs(X$#A-9Ma3kx zTF3Pxdd}+D*kB>)BISYR`IP||j#mlw;O7nYV&KK}%gw3-Oa1uwoqNyP|M6k6{2l?v z0aQr&03i~P@s`b2;s`#ok;Dk$O z>Rk7(jlS6!qPNbzboGp(GLA@P(J;@URH;Ah&oa)QByVx;kkBkS?uPQut;FQy_xI%I z;nT~MnauMm0}hD)31yJrM-BF3;KfQy*XEyA&7of;Ud*rKR2xs*QSEAw$M0T0HmNg) zXzrh8zcSvJ_Ek8ZzEx<>+kJH#rqSAcCP{74u-)oQi|MOV-GhsKhH`xczy2;sm1mP? z`MHsY8v614#efUqQ9~Id_)&vB8+fsQhq4uVwh1P~7%#S1vg=G%^O>Zv$)6)eH>pex z&ONy?EqW*coS&-?44dNV!|~|7imo%W|5Wmx;T(Hp)1y7h7A;#NE|;9@<>5@ zh`R;*pP^nPffsM;lUq+=`+?(6jwO&ue=qKMBQ=XutJk(;sPkSrxzKAv*9mf- z&oZ?pxSe`+jWk*!13gol+XXCggbiOW3Q0(_bbb0?n&qQl>vt+J}vlp zgS{AdvExABk^AUP0{u%W&wIpXJa{VRla8NXwvC=PmE*?aLY^k5hqz#{zZmL&m5e;( zVm{{i5FwtwPt?EQ9U#B=s2rE&k%D@Ny9N87pQCmQ<~)DwB|_gbQ0|1rsGrEmE%-Cb#Phzs5iY`Zuxp;CnZUH;Nf&@-b}7n9It5; z*tRcqw6+~r#m<93er3P`afzV}68yZuUJSfgnQqW9WAtRYL*m5*+H0Rm%?SSXG}WPV z>Q+Z%dm2%z#`+Br>nlSUS4 zuWW~nqr;}ZG`wa!jpr|h0J{8LMi=ZaGvgRmvuOypZRNAZ9F2A1^ z-g+r;{xnZl1b~i>Bo!Hyyk9hw-T+YHkbD=T{iQ{hxC=?>OhAIrFyFR7vk}Mw46J} z;nY`;4*Yny|BA@Ar`wKcD%5LK{Q4>1qB_^VXmWV4?o~p{TTSt(cSDcj@&41Y!KlVA z)`#Th03I)3Q)I0?4e{^%euMWfd*w{#cxx0nt(t#eIa&VU*pi)kvwt~WL(4jg=30s0 zn~%Q#x^c~D`8yCkpX}zP(yxy4;do=CYkb?)JeoA>S!k6t_t&rAFMChau+|?goQEq8 zwzS}q`1iWjD(4FKJNM@OmzC?|Z09zWcBZtsV@>&Odq|8ZjE)MhF8kGA#@|D z5?ph~Kn*#L(%!ybKN&1G4*U?Lt z_jA;Wx9?4J#m^-;A1sr*clp-1kDqWJES(NJeVrIA)SCo#({xOp$@N|49n1DnMv`_j z_Dl+xEZckWaeun3qu+KxWBI!@9_PN!y4NYs#q0a^ns0giuFL29@zX55)wNfXN)^pp zC%Y`+^N+{<+4AAln&*=z4ik>+&^7DPL>KwJ2p{Ka^?JI~+sN;CQ}1P%RkD~t4XT}4 zzsAIa&pYl1<$9V+_w`LqBCRrxjC|jDD_K)!&&4S>x|6A$4;(QvjUeH^9b4Hyj3v64 zELJ{zwvgjA=+icOLRK7Ey5imYuNyWK+t&*-le)@$zuHsHyVsV)kO9-Z6iM!p#J%WU zg?jx0cz;nIhl(R-+W4idB2!(vSUXjh{ZDHR9Xb8b{1CP01Lpfv5XB%zGy@(*z}i@EOy{JLj*IjQ2Ac2ZddS;?alLiY@22x^FKM{?!gJSz z6Ey2YTW6Ce(PWrkT(@fRDI|9G^@CS;$5Fqn5l&}x!)O>;W*QT%Oy!Y*WtJCuDTC=+s4{S44(m|iv z%pG0Biy9sdXnkB~Ht!E{bTM9~Z)V$$7l+X&S;^I-w^Y5h(}SNc?k6gT z-o0#7Ayxc5+uzb~%RE#0{R@wC^I{`|-F}le?!no)@1}2FN(xrR|GndhY@f#cezu&U zn_GHaDe-xl?-;Xn&bqn6c^D9Te4JCj1g>B8*8I%?E#-H+-`o76WAgR+S$w$P^sa{t z6pO{bx3g{qTuxmng#*mg@4&3N9^?!WN!X1CIymV2jcD*gKpEVw4=gOjyEgm!!;*Ge}ZQP)q zT3r8Uc7Uf=Pg~M=pF#eSo*z^3c>ifR((1gei;c_=@OXZEJ;s*ZCw~vY`lH9a8y6+Z z?`I7RE?qcZE0%mX<#fM#?ScP~ySI+3s_ELt5d$p5Zj>+(EU-a0C>DZ&h=7QQEm&Zn zq9TZbiYR5FgoW50a5EOz5-PSLBF1f?7}&r2^PE|;fA8AgdCx)4x#fBJXEC!Tu9-b& z?|tnxvlhYSOPU_2Ui2Zh%~m!)xV?jshDZAk-Nw}y9{hMgM@Re)_oQQG6U&G-Lgb#DagMYoM5SD!p0S?7C zUVs-HPP@Cd)tNZKV`hu(M|G`)n)P>l?(=M^koTnz@zvfYm|KptC`kRs-bMe0Yd%`# z)H7UA&;PX3IcJCP($~yUJ7PN18+#mG^FDKpa53Wc&+Z8ug!y+)dcN27WO`m)w&u0- zvO0YY79ulxEe@LzKv9o%-hCuEQSVbDalc~F zfGzO{vf_kJ4)f|}-sOMS;Podje^dFt@6FVW(*&;G1M6j8+xPoq(c%jRe z!I#@U5!bJWwRP&Reo?{~_gKHT)piRv8crErVXJt*&t0;pd%=?^VcV|H^&C9@xgPs# zmXAK|&Bnot8@RrjnRSxuNi&;J1IC%NxCl-9jZzSG7ak*7NbKG4% zi|@%;uhAph?PO<>*JyWpe^scpR>+ULrar7d`R@<0mL@Jorijl|j3;aV*K*Fo;XNB` z)zq4v@SOF+Pkf&HS8Gg)mMs#lsp~ABA3g22=TX{|Ea%JdBU8(DX~JzcE@V%{E=@D8 z{#1Be?w;e~{WsvVPrU!r0px7UfLAe<{`t-*=MQ-C6~|K!QC-7@4Mvkvw{L7J)KWLT z*Z;>OMdv83g<$Ewi=7Q1~`podKwo+OjDdAZ&uouzj(G#M<=hnNzrsdd9kFNoMACF zwZ{r91N}qov0Od1$1**#$I8V8ytwh@q@%Cu+!N}zI+T`wE>Va}Kh!VgLWVFsy5@sp zafb!BV``Uoge0=|G?&E9!SS^kn2XZoA#ot(O=^iO&Vx&(?Nb^aJ0GXZ8D4N^`lm z)rq7JsoJh>1fQ4Sb`(zcb!|V-X$k8O*DHUf{|93=zMbcA?4qXzeHXI&!IW<%>>7LK zL?ixpPu!29Y5hTuHvc_9eD30U?klIR%PW}6@L+wD7GbU*SQxewC}Gy z?U4kZogN+1KPq#!vt)fJ z3&+~M`DIVW@%OuAf70ojt38U_|GF6GMpbJF5`C?0A8+)o{Y~L@p{(%~x1Cvo5?0)A zoUSlVuonX_#{H>kK5;)d4f7o>vuBeG8E^mN>sRMil?ekz@xRyOaTGW0ZK>bj#xcI# z|DjfR@M2&7`@`N|Zj0_1{IEL3^f}jFbsQD^gk4v?tFL=~Yr321D}AVzeju|JtFOk1w;9_jXQY>> z`1=c@_Us0fw}ZVHcrhMVMnfTDzs=t#|;J9eESzJU)=PTT`?0azb0|lr)9z!$IOvCx%vphg1;^d4wdNJSHC&sxJ7U7 zbE&vERaL&*nhndm>Y6BylkTGidojkPs` zzwbke_Ghy9PZgoGq>^BOpi{j!|R{2Yp*8Q~VQ6pK= z_Fx}1*o$#JRm~^v2dA&n`F57=^ClGEA78%{|Kn$ve?AJ21NKpay%>1$U!wv{d%Hek z>(H(LzIg^0C$Q^Q|7W$o?AknL`ieU}Gd$f!GX4IX$wi6PvY5UoL{q~erwh}|;&DiE zy0tsEXKG9gt9OF#^9Fpdj~eX7csx&+jUQH3tDiZ}hjcSNw=tGxEx7vLpVntp8^q_= z&<>Vn6t}T#pSM8qv2oz?|5h4ssj5F!&9|y>H<9r-!kZ7u-?)0p-bor~HlSb?E-o_cH#bbi6xldtQz<qOv!{5z4UZ>A>rv=6kBJNy zoZp0Vk+^(G)Ai;JtMhL9TGk(Kugk^Hw$naI-xr~r`KkJ&&%26z9`@71K2<2EEUEqS zbi0l9rgQOX^-4238$Fn-Pe`-t{x#G@qA#x9P|@*(Ui7*2Z8@LM=B;gQdweZ_{o9@=9_I$ol((WFQnwiz8M;Gq%%<9ueFNbJ#_T0t&mCyKi zab{{+NquemF6|-$mr3Rw*N5}Pu#Xz-#h4dAZ0;)*%z=U2sX@6Ue}=Vd^x~8e|?_3n7{N$ru2Irw7bk;QmrNqQodPE&A>qS zsumkBlrL>EHm}XZcTnGK)Yn0L z?^$vF#{Wd@%atqT7T>o;P&liKfr1Ob+F|;dB!hBPFaQ^v^ z{~lG%i!qPG^MrXE)^A5V4)jKdw?TeslZx_Uzzu%4@cClUmvlZcFNSvINkcl{jbwho z;QaF+U%#s6#hAz8dGbU&4(lXZrNJaYt7@Ji+ujedny~t?kbA(2jGt;7)Ve)^oYO7#S8wZ!S5EFFNS^8U@ykJ zxLvHZoqx_+0qn(?7mtk#aQil6xd8TJ%!}hLT#o5>MY@lwC|O%)*%uE1cr*34CaB5I zl?&jH8vJg-`C`~d4c{9uFW&6?*V>2yYXqIPN#Yey&HP7#ss_ex)oRAN^nc^c9 z9|3>V;CD+^_D#%-Ul#t{wD9X5$$G&26XOGa)I7gisvj8pS*UItv^;w`#kug=K0-HmAzQrxPdoQe1zg7;Ex*o zZvC!(6Z2wu_RT3n``p!D7cRNJImj-H@qs^Tp5HB1*^A}PFYsoHPoVfDQf04GSw-{ib;CBno7sEbk#NSwdl)n+g-t<97<;zD|gT z(pg3EP=FU>9FTU})75xXf%G{G`iGr0Eu1%s`+HRFpBDO6mQ=OBAZ6i%c2s?S6Yu+l zenAGh+Dw^XChn_*e2}MFJpX(4IqCWPhtsa8=aS0iP_DE};Ax8DgE&p#j~drg)qLW9 za2n=2O%_LrILiEG7yEvO+bwC@_H~iprJ}v;zFgAwaDBY*7we7f>}TX3Imqq5!SzF1 z8rF>C>T!Gj?P-Y91pcV;c>eT!QhbEs`{V1kyHUi}g^A+6aXeooP2+vPxV@^aQnJQf z=ATb)Rp^|$skXQ;7}qcD>4pQo?rotb?qimR7veO5KWbe5PtPaCM;6KaW&iQ@Ykg9h9QvSyM9aH|s^j0*UCFO5Qzuv%$ zd3Y&*V|Z{m%HNnC@i(R8h3^d*2c$ntZg95I|KeZu^w6VvUx$l+tR*(aBGX|i$jG94@|hJFA?p zb3Ti!hkmfkX=IySd$hGV#YZSU7QYzcG=V>A>~{%6qQ5Ao~`>63ca_p{tqvq&Y1m{Eg zghuZ-8_$hndYIR9b(*EM)92f9p?+~C-ban=S91J&pL)|_3=h^1Kk@R+l_!0e9_F=4 z=Q)Gxe_kQr@}(`UDqgIrajKdZV;+acfq5L(FF-sF^#51SZ&nGay?dzU8iL~&!?;U2 zpO_azyYeKQ->fXd2l16l{qIrUxa8?EkHh6LkHdNc#N$98k9Zs8mo}*=F9zJ!Zv(C# zwu&G)elh4vI-i&qL%Z@M%s0gc@sAM7$01OPf@b7X$8< z4r$x;BmD@DUkrN8iyqK-d6uaJ;uk}l zChU(IpD%{`AdeWB70#dYkd6QP`t;eB1Kk;KToGJ%`MW8ZOuxHwxt-ptOeB2sbBv`{ z*%}rsALEO9{OePji$Ma8Uko@fFNS=Om={AnNX&~NU!H7O=1a9J3woPVd=Oum$g8Jn zy{dV!s^%N!Q`z$)?|d=kZ)~07{waTBdc@z9e!bG|W^ ztNTvcd2^Zo^FI4t;Ej~X2?C85UwJP1utK`8YhmWtZ8ZWW2r%zC);_y@p1Bbkw_1pZGP!8t zZYb=D{NZZ+M2}r3xQ?o_7eo6z3A~x&BNQJA+!|H4Ky$I+f5>}mxg(;TAKFosy%^f( zN#M;CAEEfj=}$kmY#JRV9E>zP+JERaK~?rm%!{2AJim$Y-E^=fAG6$utKP;G-8Pnz z->0hV#k_fie6T0qkl_<3KFNB8^8c1B?)gn~my<3(Cj|)~&R%U@E<$Qw{L}VgijPoy zB)3k?+vL9^1lRijjUfKU^pw95zzLG_H)c2R4l2CprDG%f1N$|VH(*rN&=|Aq(Y*O}? zxL>AI72{RkwL=73&lfcllV=ti53e7{2ftg8#u9ij&WH40e;pm!bE5d3t=;YYRiV~e zAwTY#`mh2!rQ?Nul_hmq6A})qif!0u92)GRn4b7d@$dIGJJ&M`{Tby zRiEF)afR?a;eEeYzec~p*USR(d>iP?E+!qfR}Wc)Ow-)=vK%EA$Q55?gdZ8 z{e&MM+Mmc`S^fVe;*q{U>-WZA@48N@DYau@{E$AhSZzk9Q|E=r-iGbckK7dWuDeE^L?H(-!Pxb z#tVM8c<;Ke*WcRI0p5F9L=g=)VehjaFwZ^1q z*&-p}vroML(*a7y%ZpzO_;}}wL4V?>+LZhmjTv6Zw|=zg@TWWR>^l_XmsIlN7el+e z^TnY5xPD#ut+~?gikB{}`)SpqhQjX=(B8i-i|gOBxcGSSi=iFf`C`y_sG6jAwf!^6 zxf}483gvim%8HIP8ry~m7b9-}?4Gbecy6IyetAV}A;PfWuM304_=z}96ZT_<_fg~T z438_WJ(3zQmErVMF#aaS#~TMPpBKLv%F8=nEa-lSS=B~*ezUlKc%Z+3TdMl}CNF-m zqT@8nGS?h^KpNj0>}~Sev76zec6fS}ux;1pdJZ0O!nzpeMpbJFg7?+4c8f#A_h=la z3Hvd_`>64E2G>P)A@`grv-{Od&iPHe4;bT|(^3E3z6M6?6)RFS8;_^7? z@86cQ{TA-nHCOZxqU`>8@r$7!-uYtC-}z#YJIw5p8`s6r zJH}sd$q!#s;arHYch#V>{r#E=z8>$dL@pHL)8aTy*pC_BM~%NT_?fRS(D3@qaJpo4 ziGEjRyyX36pmU}DoBhQ1A&d`jD=K;Mi=jU6d@<;?u7ByZ_{wz2JnlM>yLwBx*K9mc z9?JuU*MrF1Q$peWVY$`EoRzdAFMhGS^TqQs{BIt;eqGWo#(~p|4`+_Kb#Xv4#YZSU zV*j=MywNp%h^b>sQ>PJ=$wa5meZp*Sn)Uv)KC9XwUB+v1oF?pd3-6=Gy!iI~@tz0j zEnv9Kmfc!Z)<})r-vDo9wT+wFu4%yf#rU9{qLLTC80z!R7lZyD!VURk&Of7_XzruN*t#Nw}dElJyvFwXes5-*+3fy->y?(Ys(7)g#;0mt zjN>%nao~N_SdV!e=ph~?q)V$*lotd3jO#7c4m|fG^Y5JWe6Q=teg~k(ycqI9VqOgS zAbIl%dY**&ruYPk?~nf;Rn3cWoF+U!cpo*^V;%>3%-bNpv`IyIG2ov5qfn#Kpg^Lw zzh?R9)83Nxi+M5B1BrPt$^o*RQI1G3If2e(*kOtj9bK^tOn% zL4IkIit=K>?fks?Xv6Foq^-tcuK`Y@CF@t-d}3Ys8H*RW;wu>3k}CK5+bE+&(^EjP;bi zv2};|o6@g0j$e%N;Pb^;Px%|ei};&dyqoRsH?K>4h3IB0`UllnA=tb5zY0ofCb$pu zOdod5n;X9v;xvK181rJ-M-BF3%!{4RcWmF#a~{JDi2V$6$S zA2ryEF)yC>uFjW+o27jCLWpIW#vwaqPZmO&=rq+BM4Ge+a~=83Q_!sV^Xmt*8bWwh z?{W71s!PVJDtj@^Cr<)zruYcOM~)hNdfh+ALpYu4+w4b@^!$*j?8Q8skPp0>;v*Cv zxo%YEO!laSLgB%W7j$%@xb{uVi?MwZ^J2O7O-}sHJQRNueO2Wb*FN82S#NE}q*=m|;6%Mojimb$RAn!gH-6yF z6d$4Z$lFc73I^T&$3FCUM5_j;qPg}>%!{#o6Z2wu_RT(=^P3IO`Av*3yGEnNGujU) zLAz@Yn{RC;S-+~X7t5Pp;LQ}DK=J+Y^;_KYoAo|z3+xv@RnX{>?RK)WxX%j4uPS>n zw9k{kn<+j*@sXh&U)((1bDGffgy*amenG!&-^9FFo_$lT-UYQsl@?2`FXo>Z-lMNWmsUq{Pe5&0na+w3-5#Wj;ViQ zv;@DZ?8Wlt19&sVM<_lbuO8N`%AV{`?Zvpi(v~i+ee-UnzQI2K$%5OK^bKAIr%Bd> zs_ez`<_&l=#YZSUVi%n{&LwaH+1jp)e&D{t4xIez!o+K>!$&AS!Ylu8VD+d?Eu5zhJ#5^pZ%3Arp;qGcMqwsbKUU`LjCK3GpqNr z7Md7jrC+NXEj;O1*~BtpjZik%vM9_@JkJbqp?UF(;oLUwd@;-`f~)5HYu!P^QBgv_ zN@*?^w>ptvigR+Sg7Z4}LfL!*&ge+{em+M!2`N=;8FvjAzpp<3Za8D;$Vcou(ddx= zQJJ%y+4Tc|)6hTmy9M@O(DQh4a<80`UY?@AuIKc6H=y$f*B#~)aGreWxS=3Bf#K=4 zX2UYCx+d(tpwp&LPFmtlrU!r1fCu~C0(&s%dA!)H-MKweV`5mlfKP{BZ&;sj-Jv~@ z2fOKReQJN0)rWkL^5Pd4*M14@j&uCxe_)E0ImJgPJ_5fZSf6m+@qB9AcWD<9D4wg! zD735+W!03;H~5=|{;=OIum^*l$BQ3kYK32Rtj*dDp}%v$2lW+|^5$EfKWg55kEQb| z4+q?r;P(!{BfLKGeA>P)^1D9|OxPQWZ z3EBfGZ+*&(U;Ml0i@{GR#YZSU=9d!u^}~G$|K9QXgz| z+ylS|`HD(;>ry)OWZ`zIs0Q{iLKgyln?0dNApG&3ykVK{aL$sX#UQKsJ#Qm)4o??!i; zlCaNbL-sVC!`|mzCx>>nZ7tgMI(r?M9O$u#y)WVT#o&(`=2ddOm}4(C8D8~e*%{-6 z0~HN3D^>~-w#{ENx@pUaWaqB2XHGPl%W$^-e(X;Fsk4a95rYqZ_4|@ic)=yNM!lf~ z=Jm9ePJ?e7M87$m9Ol){ygP#V@y79s!5=luD?VS$vllnM)n)R@*}a9S`=87lul0|g z-+nt@ZCqg|wC}Gy?U9WesX*s*AjJvm2qf?$NMi}_pEw`V@O+1~q7v>?<+R}bSKCrtzZjo^ z)}^>j9lQl=y~(@oy__Ifzw*{+ad|P|mnZEGkExuKZDLOG5sL4RuU~oZOL$!UX&eW5 z9$`J^#aJ&djd`5B@}LKQsspH>Qi@NwaQIu$$Fg(CHFcfE^P{Jc*&{B81xH*rJEvRS z&o287^M`})pU^Hyygso%YB=u-<$3nv?a$qIWcRDZ?!Oq{s^)5;2XaRWXIlomim5bI zvVP^=KQS)`JRmVIhJ1PQ%!L$({7NZF6d$4Z{`mUk@gv@Ns2z!{w zUX1m;G}z<7&PDM_u0O9nuQXGuV9@@M5F-k$?*OO?LDYMCgh#%&(;Av-$9S#7sLG%^!R)+tWVH`q&V5U zVSHO<{76WU@gt!OeV>Q-WZ=akW&Dk`L-`wvqf7Z4(}O>1#NU`6en)^4WG5MaBL^ve zqx@2!{8DHk<41(@BVhpL9q;M;JmPPxKX_jPUQGEL)5G%!@i(TY{7nFyASr(%z~2BT z<(HE3P>&~zlC^b~eevMdgZRa~`f$D&^zgj_croNFOKP1g2-j*TtrC9Ur4=8>h3`XHU(&QZ{u$Oz_~1M)fV;l&`C`C>c`@XdHYx9Ugz=v7 zKQ}jgag@-!c3xJeuj2P6DCdU0J3u~2);zJSq^;<%}W)vTx`2P6% z<=G8+*Z;kXZtpsUhlDD6^>1gS#tN}?f1MlJx8__fxYOMJ)7W>H474xkbBv`{*%}s1 zkK;69zgu`8HQ=j-crwQ4x9F-#*Gy+}O1I0fk?-H7Ks}JHKXwc7``MoHHpmA#TJv70 z*T_y>J@!Wp^%RvpGJFEX*F({Isw#)=#mep{N4EctU3c8R1&Uvc_4s@-=rJ#b{E|w_ z-?+b1h+oX>2hJCR9{3yZV#rsPr2LJG7vdN5`h)Yuphx_T+b)zZu7v%eyn5J9kITXL z2*`*13}7#Yd}T@a9>Hr5zDMx%@I33>g5Oe6i{Tb3W&CPwnUTvB^6#A(9)%1eViSyzTnp!kI6<8Hm~GBrZjFsO-k zis5v6Tn`~Yxj5aRm9)ee&654#j7{N>V$#XiirYGKl@(bjg&~~zB?!n{-_}h`{!XF zHRLNxR{7Dc)`M&t$$byn&$0H|XVl~;2df|f8G zX;XK7&#M_jYWgJ4A5OLim4j;U9;&&9=?mX{jkNgZfyW?9=O4Gh2UdJ#&|nEl^%0Lp?Zu1pBBVUs>|xM(t}!lSDrXxLpUUjQmMs_|FsY zM-BDh`3?K1Azz-Xiws73$ufbv&Tu=Bes<94w)xE2+i#W!@OVGSENg0=LHnOq;;fgFkAh2InGq z`#+%^$c!`-w+_$O3r_yAy|uO_3qci(F1~udK{#=-d$$oQQ-xP$t%D!EJWF2Q*Lk&| z?@5N^!-JGscGc2_pdac{DVNiU{goTv^DI-D{_tY88J$j@7a)Ey#A$+l!S5ENL4v&) zc(K)t!!th`=LlP(%Y}9bxFN{OWhB*FzoY7{J>Ej75ZYkPKDD_hKG#}3$~?BSlb-Zm&tBgGxOm=~8d&K#uH@>$A2r~C^Tn`_ z8uFDU`?|KD=On%d<95rR>Hoo4ZH0jIAq{bwAPwiW;e0XVD@*DRdbIiP0kgPx+*eLr zmsh}lUPGKFzys&X;e0XVD@(3go>HsP4kPaM-V^!5)%b}XR}XQT01uphhx5gduPhnW zgWIHwQiiy>cGa-e$AhuAh-1zvjxBMp!CAG(dJ zhd5GDAN&cx`De&imYlm~)SxllO}Thn^){yHwz1^uahxXj9;fK};<_?k%-Z*u*<$-q zT`N+f{*KRmo-HMLU-}SV?QMd&q9~GLWwMqdSd;DnvR}XQdpdR?Ufb-9g zuPhl?(<;NJviQoZAD%yI*hdZaY~aPu7UoZxba*={?!1?uSnwggk?1!Q*IyMh$KB<# z_@0dQ5T^<9!Osbt=Yo7?$yiGhmm^c8=QN=Gto>ihIS&`VLqI-Ah$97Q@W%q@pCMma z^2_lfQ_FQ}!mcZBH!fsP#4b%Ut{%r}g8gWUo-d}nn6n;ee@rD= zYfWCwzPMailGynB#NHy0U*!E@xK|5*GPZeMV5^@|LeJ1A-!(_OvvyXtnCzMA5kOq> z!`D`Zy_YS&dY=2~788nil;mVYi$h)X}zFXlpqFg?2FgJW@riQ6%?%R536 z8BUFzHGTVO+!m@Wx=z06pC=lNoQ;P$rZD|vZ^L%!M{Wv*_lMIh#;Wa@pWow6+qQWtZw(M^_S*Jn(rP?O^Bw>hB=)6$Wseo&d)b3)BX=A1aTiP-TbeqJm@J83%=1SL z`>4U54ZL`f`x$oF&@j14^H*)cytAgT@!^7x-P+77X!4Igcg`QgX#zFur-k#y zkgqJcqJEb{PezX8;_0Sty~Hqz&z~WV6yO0rQE>hl@|7i9zKHC5HZX*X_lM6TJ44;I zTs_2T0z9hbo3-x-X}Ls*-*KQ{kd8*_NtcZxxp;A$Ch)uUyXT9cU!MG0{zc}%Wd8H^ zVCY--?5_OxNss1cs}qKbaW=p|nBlgm#-~Q|c{LA@y!=Q_r*YMLiuVCrKIWR?=G&E) zaOd~LG`q&4CJCPcvPl{8&NGj!PO$abth++IfCkjR(sb-8-)P^;zh zFIHrF@VEB(a_dGWkGm=z@7C&R_UpILVf|se<%XQNZC#hoKN@82Y}fdx`286C!fkWu z*Yl92^4G(6nLU<^_omDq%hf~tVi+f!Hvqp|kgqIxdO+f};L73L>*nKWT>ecS|2wUI zv+h=2IrCY4@UvIz_NYd~U##Yi6Y#HkyE%LRmju$h#>L2W+0o>QfpK^LU)JR90o(0I zd{+@_Hzw^Tza9Fs!FtwDUyq~}JHJGdN;11KiP~bke3th{rf+=jg8hqDs|mFmla)=M zJCE8H#PsWHym@r^+ESJVJn2@SwhgN2C$w0Rum8MGw9r>QBI;|v3=-jUb4i2e!34@F zDw~J24Y>SxF1OyfOmcc+FaG|AskXZ6r;^0?5b#?#w@J#8$oKr~q9{IGj@o0nc&R;> ztB3f-&@Qsa3XrcXx!can%jsh%x80*((tGBen@`6b3d z;o*(mdEi6BkUeCxdWb`V7IDNa{`;d=EiK6BIkSh^8Lc4HZcNN_dPaobjbu32Jl&Q! z{QO#CBeNTmr`rZjFZ*sY(6@-z;?BoO^AdFoP`onp)NKI{!O3)W@<-<+_`?ot{Q;KBVI+ z>*a2p&c8q3{Fvi?e6#p|2Yxjxv^ITN`yaa`w4*FZ?Xg_E)E>*#L;PaEgY2Iox*h{+>3YirPZ1-hD{z(<$3Mm>&F;{z#vE#_I?FJs-yB8y~;>SMFNkb@R1; zfbmKau~9Ei-@Q3$(0cjd&yF)mp3H7cM!gJ(o#P<>PHqPdsX6GWKUpQS8&gi zDXvGI_rpWGtX)W4o;M$Dm_37dn69m>8}Gw#-tBf-J!7gjO9P%$1wPj6rcD&mR%+_~ zieDz&4yoW7yTO@!tq{BJgD!uaL47Q*_{9ucrt3m*KBNmenzSAe#^=wgYu+fF6lEjU zr+#0Jw|Dx`X{j{cF0>1h+B=EA%-%^>%j~hFwagw%-2bONmdyvX#}Z_ZWqN9lCCDDj z^bn^BaDasK#juZBmYCN7zX`UBu zEgE3^i=+q(SDfj6HRCAL&yV$-)^q&{mS%W^tDd;GX@_7iuAGK}kVf{rcp9AEG+M~4 z`}t&KUa|n?6qQe^Sv@xB<;kt*(yn5?CHH1<^;7iU?tj>16w`xWBQL#xgKJayc1T6> z;d0~K)wj}UBK~f$KKiE3oJdFUcZu~H$8#PRo)O0j=S(xs8BWX`zkuNKB~5qCYPl@j zZaTN!i%%bK*!j=<6tADranagO=DRXI?E9U2ubthIEByN;uRVGBS(YE_e7VElPw>`k z{E$#j{yeSJif_L)d@{oecG%>=m*dwhk-lHb!y`}MIxnb}y?fBD z856x*i0f39aexcea1^n+R>DT{iE_4$2UxMH4YwIT!rM!s}z{tfD)37Z-_O7gxy|ZZQ!fZ2pThNiH%;xaY<_S%)E>*#Q+q7a zBYUjU=Qk>3>llxk|BJo5USjS6y=~lnov%5hMdyp}{ovQ#yP>hc+q3-daxgEzi>LVS z+0&!(deZxFy-Hp_<|Kaf?Oh++`;ktT|FIhri)E|LotB6=Ki&FrBh-8a$(PxU$^I%P zUAs-%&T!sVE3duUG?>i0bJFv@t|u83G+b}D(K@EL+H>_&tApZm1MtM1JD2%s`(hz` z&`s~x^Op;eloua3*uZvY5BYov+5uTPWOK)A_4v;NgN7px8@=Iw5BypbWb(^M{5}kR zvn@ssTG6EAKXyeW|51A^;WbO`v0Od1$1**#$0{A~xPmnm{LAs@A+uH=zZPo}xczGP zi%J|~8_o0(ci^_k*g4VfRi$zU^xAV_(hk(Wkvho$yai z8ysVpKF6rRw#HslSQ_v-SIP{p5j{Qk<%bycFVMeD2?Wb*eG{x&UtA#nz6? zXBf3xL8_i9EK2sROTwbcPTlij90`)yjmhN$cQ;RaE8?8hxp9SgyXTU=GP^NJYIS1H z09WxjkeT1SP=C&RVxqCwYk<>e(y;&Yvd<4LXX6+j>X;KhW;ja&p01-kM?C*+gMqQSQL=DH($OmMpufrw$4a4h(qS&|nXNdJifG zo>}tdmaxLbWpIm$slw*0`s>aPJ;n69&scZ=yz!>+C}%@*_J}jWN0-B1&dwsgZhE%m z-WcEi$3EfOzSGmnEhAkjEX z^ZtFSPJb_c#{s`aWjzy{?(!4YHIy%@yn7(0Onn#r@3i6fGPUFF`R|3h!-BTXT{WKo z4mf9eQbl~T(O+iuf3i}hjOZ;KummrQLU-VdR@ zlFDQ+wNKma#OEn)?^uyX=hr8DaL3crZd$|g$vR9A@sCtx-yE%WXzZ}LV_1I}Z)}EJ zJ{8;DLTyUp&*d!iJ|3J;Ysxa-~(u^QTr)+?J`W zgWl?ic3IrshtErbKQ^B%;Cx6ww@@#?yrQ*4-*Zt&6pa^IZkG0s!vlh4%KdNT=dfUGC;561Fy zsXZI;K{-XGpUrl+PS>+pdy;yc$k!1CkGOj8QSW*_UTtEA>p|RQoL}0~^5Vyp6z|%- z`DIVWt(2@kXgB+lPTyQ@@q0hygIpKm+^A{|K~jI-{kQX7r8qwCIS9%w7Z&%!u89=qBPnO-j$+QT?&R4zLE=Me^$CF?$23{Ow zzqhJ^wQX|r--DhtdC`KcPmD8k$n~M;=d@yaj5A~Pu?pvIS7&;RGxp=cWsR#|k*o_J zS^O@R5BRhwZ|9AJm;W`vzU_6-TIM``N}s!$x4PwX=PAeB{(1NH7bJR!yUc4B^1)sV zycqI9W;7Hc2JF}6;`?CL$!C&9p`?GPKhf!PpD^2-Ts@S-68x#c`C`~d4fbN-#mxp4 zHXJbGxv*r*rLuR9rLlE3zS_3nUSC}qZns5u41QRhV)})8vxn&?e`mP#uDC|8zcFcU9p?QZj!7zeW#Lv_DnZ{0+{Ts*1n4_KX#t4T#{bv-sQY%hWCea`o0h zW1lTk7x^{B+f~(m+B~B!F+I<&s_dJ&cUw95 z=4y-gCG~|D)Iw*V0r!4q zvcG4CCY@SJ>Yse+xS=3BK>+-vRm$__Q$vwXm}h1#=md3ot+S8LCkx>1bxi_6bkS9w(G&F7Ne6O=P5 zy4tF5%xZ~Vr%j)nv_$@Of%<=1%8OTCQhYOWHhyardRVglpxuMLo;C0?6!#TCK1lDY zXYCe;Ncr{Z@^()wmbYc=2g+j!`>4TQ47|9No}N)VcL%nPFwRkb#{|q9QjxWfajLKG zkRTX~@4Xo3yW{(=2Kwr=_5oMAEUq=n|3vqBKcn_+D5t2r|7h4-EA5`FJzQ_c9LvjN z`w3jV+P+t|;n&3P08qc*5A9+_$c3{c_4DtqZ=Ptxe=Y)S*hdZaV&KKuslu?FZNu2OG0u*&b2|5) zHI(Tw&hC4197b7+@rW=^i`|xGD&3OK>nWMvY<9n^PxpBPKESQ0oO#Od)ZsKUb6)wT zwa$mwTyMbD$9}E6bLID%68%JLjY;{IVUl^r{lGqIuoq+f(`Dm_Rn_VzX&=fp({meR zY1V?P@BL|gR<%KVehuwl3Gq9??-radhJDmvF9u%x*Qfx~-mcHscpp?MiZNR=p z|Fha(c5NOryG(vpVjt|~k(s^M?Kb`_n6R5pJDzecL!Z&fdZ zo~(bFzaR1F#oTe>D<^W-;juHewd$N7%=G&Gih5+sTR~KHe)B}{-rmA+8`d9QcbNgX zXR7|R;_A;%85vu~y*1N=A13PGNWkrtwzL+F$5YyH@$j^l@gH-ZzNGn&N6pM?)T0Zx zeXCC&y&R&|CHGh8w|vIOi!)QpO6tpt!vyvJv~-mduNdQl^Tn`_8tdEKbv$@$+Z@S! zK)GW^A15^HF`TPks(W_Y_3eGQdT0kr7zg;xruhE&@A2WZE9$wValepe!?;VD-cxz@;_D6h z>o-e7-N?pEi#y+|j@tw{j(;YZZ+UT;N{U-q^(PcF-aDKxhJDl+N1M&(-`&_Xm^)tq zQNwcwpX$xk-&;NFVA7rDTs`g&(l8E+PoVhz`1(z*VmV-M0e?Rm;0Foki(wx%*o!eQ z9zFDalAY}aHohI7)>W!hMtqOxS>eje=MTj1(DqB~Ot~K4*&O<@S!q_uNlpAt@=V_} zx^YN5$-LwE#o&(`@WJ_F*hdZRgKQl%yo_V}e1;S9L0+9!#q(bI8(e+*-MFKx9-iRp zp&cw6)|}o>_lLLnP}%usLh%t??%z(w@BBI8kUjtVcS-T!b%EQ%>jLZXx&XbR@i(Eo zqOyvNzj3cG%&rg4-);y4^8zef<|p zS%0{_3Tt&OI%o6u+YkP=?p)6Wq8~-z#fth1!u`oh_wujTFeZb4j_OeN27BIUO6?QS zuK6ST(W{S(=N*6-D|&tt+EG+$zdYS;W4-Cz`PJ%`W^^`sFjt?DX4m~|sEI_c=zdy7 zaYDJ!i$0gWE$7>L^VYVuJ-&9W1P|2D8si_abI}5cUQzodwDYH=s(JCNqX%P5?S``F zEFR~BJszoNA9s*EXQABrH|l!h=hT(dKiExo>r;EaT@UJm-z_*_4Ew0Dy?9sSNZZN6 zeAdseisRm&|0uSv-@<%Hw57P;I^p85gw35ryJ4qEX{m$4`?C7>&pK(>yc|vd2S_&= zzi0UvACyy6Rv%pblD@f!1J}DdIkv;)C;a{GTWW4?6RxpXvVN~D-e?n+Y|6%i+bu0= zRrBKGl}Fojuxyje8}ErqN!LHD)Z^-hE|{YgIpn*94;|0YJU(R70m;1Me!%Y*oG*rb z)Yx9!?pwVD!voD24)+g9FK4tA+y8k#vVNs3Q>MRjx>4fXid$I!Jr~9$Oz^A1^j77J z`*zP*!`3O_YANIQEWaD|3kLY0oT9R6s#zVcrTq1I@?!qdBbnlRJ8pNG!K7ME9K`o_ z(3{>!-JCtHI~xz=mo}+tUL5ee&xmms^ttn3v`5HW8zbd8Fi%xattQDgH6`_9^V&>Y zzLJ04pg#EBg7d|&j~d&HZ%0kO?cHrC>!+Z0zQ2#T*#3#r*-69B4rF=<_02|o9mMyZ zQ)ec>E9=pk>8B6LatgB%&lv)q@iKnT)-T2f!)5Ta$UuKN4TDOjD}~?IDf9b z`QnTbH7q7d^fOPV*2s&KfB&U%kOb=QS<;TG_zxZ@PDA`+h|>iAsKM_RoG*rb)Yx7; z*0y%**4d&xdBa50fJ!5Wv+HZp&Z+Q3*=#o6@>|=S9-q|H9B?? zPG0+eI$u@17{=8`$@~p?@qZbABZ~4j@J9`Px8Qs+?4t&IG3LdtPiuR$&s|NxUW|G1 zq@r0d^$z(Huoq)qocZ?S^J%A-N!D?_*v8N1jB*lyH-o=5I9Cq-sKM_R>`w zFQx~)bpJAI7vlqe)I7gis!{z0rTaDjgvvJQn$#sN!L$9Q&xz%#u>X+UtQ_;Uke~DgE zJ`et=!S5EFFUI?*F)w~=xdv>VVP0IAtXsLT!WqWXFfY~~c|X{-q4d0IMxkYu zD66KdU47~=8}NZYYM$RMRoRQ-dhjIhW{6)5ahkv%HTd1)@lDK&G2g_z81qfci-%wH zZED*|^p6F&!`cZSoW}*Q^^5UAIYs4E*XL)vOvH1YxZblbPcQDX63=a7{fy*UWBb{} zv2_CaV+!(l@J9`Px8Qs+-bamj@t}3j%NR83%hnm@#h=yOPu$iLzf)jdeAvME@x>dR zSbe}<^h@7B_o|jTq%l75N6quQr7C+d;NeN&%@DsB;xvIjYVfFUV`gNrKvH>4&e7yYUKOY)~J>c_zMYoPk*s!X<kFTT((Z)l#isK>ncLjDoU zI<^9<591m9D&nx|cJcef1?n#w@IkphCC55`^FJ`fN`hNicrZ`K?P8vc^_VAvK6Lqc zzrSwJmWvzwQG?$tIA4tSQDa`bRc4=0hW;=wruKQJ$Gli?+TI(_?saB*XlG+ml7H^~ zP7F832mYveez*SA_Y&aE<7ED_3B^Y+KZ5hcu#Xz-#h4c({wB!bZvy6TSseb>i1Ih! z&7Wz!BV+2<8T?TLKjQE=K@NWtG2jHb zRi|mg`(@uSUJUsl4+W%k-xn^Pi-UYs`3u6l82SU5K4MGED$Dllegyd-*MGO@nx?BG z(f_xc-=zFUf*;0LQi*vnZZFW)X37LJ(aweSr&>J!d-gfe|1anjwQoY4Ch$iMez)-X zVvMtT*zi`3k|(oy!8m<&Ki)soO+0^$ah`f&BYa=gnAHc|r)2w=lOc`qLB66A^I}}@ z-P+Ve+V9L+e^}2;+rBRHyHvDS@;=Nf|9>?f^I|+sV>|m9`9}_N=c&Q#PD!}#T;F)zmDPgTpi=IFq;13wN~ zm>PCT%7?leMQmM|DB8zyyQL-FaKP8SE%d%hzDFnvALhll-Kwopvc_HJpHFU8=$yK# zwrHn?`ZC=7efv-j;xvIjYVf;-&lh8y*9%@WNgN{bWQ_CO`6-=i1@vR<8{<6npn8j@ zt$)g$SHL%$`pX8~ib~9jalLu5Sy9a+_04fUq#M=gl3DSf)DMC6ouy-68u9lHLVbwS z1pcTYA0*yK4f!BV%de`wzT;ro2^@{SC`GVM1KL{#Pv!`8m_yl@F<(Vb(HZp;lGT(395=O z0`_9w^&8$@{YK5vv)JzimpiV}`_0C45u82&UyPXfLQBI-gWQg1Ob;XZE5N+mCL6~8{Q0= z{~C5*RyIC)=ZoD=2JSE0w<@=PEthra7KT!Pm0)jEHeO}7SKRZP5Wg7WG+{jQ&KDQm z4Bs{Xz&P%FYW$s@rL8fXtH=F88pc8K2^3$c|2+c!-<9&t7mqcwKiwjkf1Z}t@97rv zy=K_+&&}}a{oDERK@VHc@|4<Z|&t{5Gk9R1BQ8P_Xm8pc8K2^8NS zU%zD+laAY~$@d%eyW^L4zIej&$im7Gq<;CJznJ(*cdXhuut53aA>Wwl3l2hmR#*7MSX=r|}of#Oqm zT)cKmnt%VeuC>P9Rti5)Abv5#X##)L*zXoTM~Zo|fA2jnj~@~F_`J3~4VMOqe!W~P z*rg8*3uNl!iuO&658@X?oF+V9^3E3@F)%BfKj$ICf$Ogb zuDkr*luWK3mxpv*jasHwqa4jCK0@&k(Ell^x2uC)ZA+;gSy_1Sy1?z?b%FJGU4Y*1 z@R-Uu*(M6FW2h%j$~#|7`5X88Q~t*Eh`%ZQddoXsO!*tbgU3(#8`C5HrgXg64v+Cf z1UomXT|>MNNc6`y=bqj+li>wk+vsH_s&TD$`{bTmk-0QUT zrMOQY>MMGFGir$*+1&Ch^ahk9{YJ9#J+lxCty1DT|x$*3NztE@4I^(0Ff9HYC zYp%Jv#*yi*Ip;Tx(fLh`55}jc#QUgmy)y;#b*Ar)m;9cfoP|S5_u#r=Ts@R4ty0yz z81JLT^Khj`#m%$7bdkI#LOFx(GvuNtyP5%m-%*QsQ+}^!0Bb*Z5AMYF~n)Y z{;2W!Vr(zgUsGn@uR692XJl9B*I|L;{s8^|;1u^e_zJbXf;LN^XWM1`p78KNzM>NE zqsH~VuD-XeU@!mvTfVS{#g31`lJ%=p2(A@H#jk=>nZ8^V;dPSX6qN@1Kf&AypI~!TUht`iH2R5OV%fpOK@&F zG5)!aM1Shd`C3WOjM?)9%3~Sz_}8a47lVY@m;RMKR`^QVQ5FBeIB>dQnJ?9@Ea+`c z@ezuT)H8g2v8h@bf%wG`rwRL`#`~tRz4*}henItj&D=Awvv__3@Yc$#zxL|Vk?g*R@j*F7CEiDk>jlWZLlB$~=~1%p5E6Y}#f66_ z&k@hxL;2DsRmF>8oGRjPji!O*wv*=cyELo1%*Vr70N#A@>EjJM17;A2TOD)F zaP#d-OUUJZq1q`0Aq3(VL!2hC7h_%w`>4TQjCt{~`?|52OO_F^7h_(mz4?o!U)v>; z-<^eCpVm%Q-2~vxZ_UOJ3H4k+AZ~R=-;l_c?{$giutEJk9ce%yeld>Ign2REM~!*0 zRgGWHZ~8r9c45qmqkHEZV=b5O#H`;F7tzA22a+>jHut?T-b2bF9a2HVUe z5Wg75X~Mi1@1w@NcuR+K&)nXK-*quBUKf0+^@lQ2e;NgT--i_K&t&7k_-;B_laE<$ z#8q!&if$WA$@Ni{y%^?`CxJKLkl_<3KEcP+xcr;E)xyDgiMa>#wh27GiFq;Ro0u14 zzKMCUlY-|rF+Se-c=__q7hf)0@8Y42B2UKcJl`|)j&rQko~-Ek&2yRL^u%6^i9y2= zhmGF+6Ss}VFUE12FfYdYs8z*_F+K;YjQmMsCX&eoQ=2r&x0S44RoRR2yyG-5CPCow&Hs;AunLPX}7BAG%&qG5+9B}5WJLZ(oe zqHt4GNNH9{G9^=yA*G!u8Jk4LLXtUCGXH#^d)7YhyYBD2_wv@`dHZLz_u6}(&)H|+ zbI#|iz1G6K81qfci!tBCyg2(+t+9E-_YsWqjKuEE<_+V+?PZl^`4>Nk|G0nmGk#yH ztnolUNKQV#y>5qxJDrx%_ov^F^@vzXA%8K>(}a03-bamjvA=oU8vT`dI|}B-&1!yY z(6O5^&x7;8`0TA;zB=w^MYsDM2;Ns)k6j07Usd*E7+**NZ|3k34j(CgzRN_(;YW+5o*uB}jVSGa8CsZ%Xzqsk0hu3S? z!0DqJ6FGl>0$l!0}H~AaI{1VoUyb|JW3AG1aETj*%pIOKE zGau(_xZ~5t@u`ccVh`>d zV`#epE0w<(2-}^Z{jW+KcMJE&ycp}Rw=q7N(7l}TNzk{uS#Os4)Dcq8XVCwy#BsOq zIG7h>y=V8rqt9)n{g3}w@^97@ssCU68map*KF{AR*M^z7$^2G#yBte)N|BnFonJEV4PmwqjyDi zRb_fOFE0NKtH=1DoxBpq-IBK-v~!xRu01lpo7DCHU-93B^QbC`<8I;OU|x*%n>#9g z&MA}jgO%65nYtrW`ASA0P1n6Xd`qtY+Nf^D*}~fg^>F^;U&Z+~%lKq4;q&HToX!8@ zo6Xreh4bQYvwFaHn!^X}|=Ej%vf#aMr9L*t}98k?n_yKZv}H{I?g{r-;ow|hI@UpH(O%_-4% z*KwH}%?>!Oc&?yfD$ZYwabo{sjB_vDvMYQJ|D8t)X9uUnMQXRD-Xlu&E$p8Z^53}u zUlxZCb`z<((gB*7n1(QwcS^Z4ksKw!r>zkS)E>I)V@IW zpD{D|7@1ExTzxs@i|T%Y^B3cI)Y!im+lyasFFbeA{We>t65Ku6yrv7xr>g`fo3}`W zPw4!F>T%pH+z#_%tiLFkZ>jsiCWI6B`=^xQx>psR%I0t868=X1$M_qmD*guXsD-W{ z*o%eqKN9X&*nOYMeovW6Uwl5)SVlK#i2M^DPG-MPq5i*G5Ampl`hmSzNFVV~p_lil z!3^)U>g_z-q88G#T|8fGQyN?8c!hBMZvE0pmjiu+^Q4}0zdK%4_dBQ7P(0?wtCXrb zj!^z$IG&JyG3fg$r*yd5`-#+iLcCOH_fM6Ow^Ckw*?C<=iKSw?;?_yWw`z{;cL4om zXk(crZYzpom`l_lXkIDCY|_mBTQ$~rGudZGNqvigBuFIT_zw8ZLC?+;*a zgLeN^`K$h$3%%KEmPq z2!VLT!KV$k3Er2cT6Ub)osVP|;uJ?-L2e|-J`r;xOmsFV;b z7R!y(wp3$U*Bj2XPc07@^9j?W)~~Gm#j^a1uf6ZpGv?8+``5#HaQFy^Pww*)nxFr+ zK2BR@hNfdJ#_ME_XZ5-FifN5qskTiQ?Fp0S(%BO}4hyu%*Be^CCAYyS-fs!#sl{=( zupcSr#RYB-j)^V!JeGRiH&@r_E|U74g*1rV+G}$wh9Bd*x!T;~2Tdb|MG>htCY_O* zZ&~?^W%(CxjcRZ9<{7`QTGsr5erwrW_YIwfrgHcwhfiv~Li@i|%?{!C_?b%|1%)O`;0zbkS6VmuD^FUER~zp-_P_*=id}BP=4v+P1#6xGO;8G+{h=A2rq|e;3U!ac;}z7xX3xcE=V`*@;C<9s|6xmb(9Px2`&dfuZqbPEUUhL|Fpl3XS2Zujd73azypI~|PZoqI zG#KblFDuVbTX>BOnKe8?!D@g4Se4=1HY)fLv)F(biU%T8sE=JTrJ{KYsPHTEyY z_Tnv%rnj5p%kyMMIrDE~eE9rjm2sXX++LP{F;RQJZBtKa|4n)0)8ga(-Q}w0#W+tB zK0myV8tXsQUNoz7FIB1c8+rXVZ=E{s>UklreG`xOcbBW07vnrl`26rbYOJq!MfauVXBDaSyHvbt&%Wi}QuB`c&(jWTt`_S` zS`RO+QF?eiIk;(5jp5=>#C_h|DTmkGzC#`~tRz1S^#P5!aGJT|ZSSr4*4b{(jXah|-T-eXV3 zFjkN8;r6o1I8PI9kM~hy{T<172(~^!Kjm%w;?*{d+5ABLKTTE@FNX81BK}7I$M_qS zm%q)^&u8boIe zjZtVd<$d3#wCv!G`;8N42<9(_JWXIP#=IEzQG>l0^Wrxa<*CkJ7fRvP?eNsF{fglP zc=N{kvAuT&&85z_dktLJUrZPI8?Se}Scg{MF{14or`mL0ioKQj-4lAJ?>mmEbMq3r ze`8*Z^E6>zjQ3GvUc7zBF4rLyH`(~``!FrsnpA!(mepf?t#bBiwLLbSKK_(jCQg}2 zdt5wYq8Ra5uTR3@zU_6ou=^n9#W+tB=EZm)HRi>seWrS(j+M^WeECxNcVojw?6??T z^Dw(w4+o8)sgqLMech%lb$zPJUJUaoB!M?`_y~uObnIkc>{8@LCSJ47h$;yYT*aDIPEIyW(@S+gZ?FRpAHm?z`$F;B*N%#%Ss{m^Oq&>_5k z3DjdbzvJtK`|YO^xU#$~G58j<|B&EYml%3u#l={8?sqZDgn>l=x!$&bc65wxA`HK;MlkzV{{Ehr3 zf1{XRVtypR-=y*vBmO4kUyS%0`Az;N#V_%CmQ~IX$O{eqgyL?29`oYb)WGGd^BAhR zTj#ybI_dQY{eD;W?>;Ov@e=RvjK>j*y9MnqFWy+#@yf&{y41R9lc}{X$o~Ed#frs0D(cTMlKQ zR%=elpukGU3&*W2Y4ajDNqcu~!SnxbkMr!^_pPfw9}t`ep}1RcTp?b(`1JWk#oMLh zp+P^8TN=G8OuDv?7$3M=-tDj>Nmocc(_&|Sis)>Ak2GyQ4~x|k9hJtHgDCXF`HOKp zYV2Q(?Zrp02ApX1+C^$!lj;pJKUl_p#|}sM;P~=NmC1K~r?f6fk+(f=C&Y{8&A*Aq z`@74dCGl(6`(tGvf4o3kI5>__+%3=x@nU)7(;7C@X`;KthZJ>hwX3bmd?L1AadxCx zNy?iOhpw)5@5tWIj0NJQ0}dRI8v7SxdvUX2hFkXPSW2zm>wo2+;ny$52gj3FCaJqW zxOiQMod@nGEAEyMFP7JT6CdyIF7K1@pWpud%ECKe;JYI96NSSlVh@-N2r;)&|Xq{B8d zHa?tB>|gtrdB1v$58BBqGfR#RYGy&CekaghDDD>Mg?RDDUF+YRSQH`n+=Tw;*7pm) zy?Hq?*2%lq>G^P}_D?!$N453Sl9~tTFO;VV^g{cnK`$gHT&-1^XFx)tQF^)%#{fn`^SYxZ<)%Z!pQuAXc z!O7}ZVthg;C{W*F;lb-q?(lI0aWkQ~ThLC37u)=W(}P00f2y>V;AHbz**J5nhQE>j zG5$v6^6c(+b1v6&t8QExY*Q zRs22{ZAo5eit=Bv>k4tV(EfC$2VRV?|A(+$_xG31rA2q%zW;XChwOCQJWaLBY|`0u z&x^4PI?blSy(v2 zj@0Dla|DMI_pdKnXBV#gN$~wtR{rAO^)F5xQZ(7caRjL*!AHy`_zVNN>;8_LPmH&B z!~FRtjD`w6&t&B<{$2lKJ*{&G7Hr!_xOGY1O7IbX1q(ZK#|5;;!$B2+U2SRU*RIZE zCl~4s+#KQU(wxs9r(&h66}*=Jo{{}-P`yxNKK>KLn}+knaks!840<76d_Sjt&}AF` zJGLLfH)XDWe~TW0Go-WypuZ;iDYB zKfZp8+F0CZI?YV(^=84vtAytfK5s5QT`I1JvaGmezw2KNabres@mM%~iN+%cFkjRY9`sAlyXV3?}y>U_fKwL1zX>Eed4%VU=N1#6yn7+vb12j+9x(H##is- z_$Ei6t|T$0U+*mLxm0TX%DR8bTA$#T3pnMK8r*(b4j<+4{qgm?CMjq7&5P#jI?6mB z&fek0*%5I2)W5!O^6|Z}URM6%U-d7B@qu@6@12ChCw2Xyy^x$?^JPuqeBpT0vf@z- z*^4(ssyZF-B%DW32+!YL-?Z=81-;T9$vtm<#w$Oo;XISHy{S9*!jGt?gdY(F?tLEKlRI$yO<%&_ zD2&@r@}5Kxe`9)xyM_20)5Grw#sgU);co=^8^pDBfVI^IDM{CT{E6Ygg+Gh^oUh5dnYg^`2q`e9yH=HA?DJ2glBLZ$N$Rv>j zc=4jvn(D95`Y^mk(?)G*-)}q1!-Vr+K|C|qCyn=~3w>|!d|^iO4MJ!Q$9UC!;tBL5 zhqJTcMXv?zL)d%*&ZrP8Q`e(9Bu%-A=76AS?0OAe?N?82N=^12HO+5$XwK4!Opo&y z<9O8AzgWm#%>CZkyxixmH{gTo4)X~(Pd>AWD7z8I@bt?$zM|>=u?%m!p2LbV;`cH= z&R>kyr^U+(@udnrpDi92$D_vn#X|Pt zObIV$>lfpLJa&*D4j)(6`utU1jK>!$!}FcPM>%{f&mr7D;l6}_?|6OU-7pLjln z?8Vq_i1ESs{V7@1yja$AQ`UV+=(_uujJGYRUc%l_gys+4=ixmW-aqks9exkN&rN)v z$M+@tJHpo;@cE+e5Eviu4tSr3ejwq!4$4@FFM%F@M^FX{^9eYCU!LdqCGa@lN5DJaeIDME z;r$rKh4(pl55doOcwTbPAu0c2xF5lIAYom?d;(73m(WgL*&?RxlVwvU2>vc0f3eVb z;9m@SuouI;LVab)#oM0FDjUS}Ogt{+FUIvy2LECxgS{B$73wQXK9kr#+4pZeF3w+! z_1M1{^l)E-a%D-*PRsZe9v9~?#(L~u40?S3g!+G)#P;IK#>eq{#;@@Bfm-DK#F?Ig zdhA~e{qge%>aol+F5fk(j+ksecP^)Vw+Cq<+3%3jSF(?QU3WW)-J9V^m)L2UUbD{I z4a$ssnr>-a-~Opo_b1Fn{howU@xEn+IuOY%IheIEG!iN_fc*ZG~tkzj@c=V`)mx9~n{7%z&8Qw(K{59;NW zqb2@Hg7;sXzZj2;{fj{_#E(D^QoQ;t5BlKpk;`pz8M z_vq24OWC|;qwlm$a$1I6T{oHOah@g|cMI>M2K-HsJ=qoEgLd-DNMx7A{c!$btjGSv zpvSxz>i=mH+lwn3Uzx8Zw*h7T$@Vy!IV26kAHc($#Qpm0d z;|tksK##wRgB@Pz`x5l~r%2cz@=w7d3kTlEBCGwc>Z{70EbF`Cui~t#_OOpy-tjwc zDCt<*EQ;J1mA~kv+j@fg{i*%ntvQ~oA;CvEeC+)IGwyC0^qG%W4gI@Hc(K&F27OiS2M3ekN31ughzgmdUTvAwI+e8_e3XP2OZ9`}|L%Tp z;K>|5%HjLt>sM%>Dx5Etr8957)LjrvB1W}WX&WfKpY}fIe+2#UeIDPJ@b3uXQA2<5 zFNU&^e2Va?&#YNXon%m5#Z@=vcG@O2-|$=%8V~L}LVC#4B%~Lrhke%^KEmM>Tz5j_ zRCYb=qps|6VLVyyeX^dbLia7O7sGKXOM*RFXgshd3+ch040^=hD*bwcJsFONCD@a3 zJ(R(o3}wXMDjjdX+%DchW1OUZmvH=xj~_(r^>h~0L%cO;5B|llPXOvGOXduE-|W*Z z;XF*Q^&Bky9ajqCg?MX#2mFg+KLgZPmaJFXf85d#EkQilCVnB$-l_@eAs#j00smsy zcLDX4C3iN=u-dYFnIN8;mdOQX&0Pic5RV%0fZqh{4}tp1l3$KwG&WKb&XalF+Khh4 zwIf2ugLu@S2mfMO_Z?{et1{g@{+e&yAVEB?j+zRuiUS1o5RV#;3;xA;zYXZIG^rjO z`uXSYIm9*Jt5vBleW6XS+TzNKW!64kr1#v{W52iB!f=?(OWCmZ zQwUY^`MC?f_GS{gLv#I-MUhP3_D-hN({2G2@)tv%COAIC-GVYmuonX_-t;>9M#85! zs@~{gNcfE?3hm^T9sPQFUVgA#u-~~HdV2N{;kX_Uj~b2#{>89=3F<3Lo{UtvmNG|p zKa90;cFCOSv)Mf3<3c=Ys0aUISANV|Axc{+FS%Ztu3diAtc+}7j z{EP8^FwkRZ5dHAlD&kC6eLk=3n75JI#eOa9*2RdHFIzfpO!p16O|D+Z<7b{^VA0^< zpxYsA-U1%)iXVR=jE;Eic{Ry6m^|J!(y7LqXr@oyk*RzoBalM=V#w13$A`FEPzDM1 zV&KIQdlTQsSstL#)%~nnb>1$x4xvAmJ?l2#I`Fh~UIl2ky>5qxJDr5@&k&Cq+Jk>F z?5~6R%96qF)@eot3}N$#$F;Y9`Rcfvm7pHtQA0oQFUId}p#N{BO;n;=R-`m9g>j3Y zFLbUaS|x}V;!#6;@Gr*u6+w?>fuEvdOvFU`SurO3z1lJw9ND3`qrC=g*<*duN1Mg8 zIJS%baNh-F>NC%nW!8Ki%7V3)jYmCRLpNDx?CKaICOwW9cN_W4hv97ZcD%oC*eVM7 ziy==F93SFtK^Y|2i-8xr$Hwme@i2_KVA#xz_|nh^KgxSv0L)UtvTHx9)RkGLS)OKk(lfv1msvs9xM1N9+}M5vvuR-G1J zcck-hL3@Zt4Q22zt}6THOs$s2wb~26-$vz+SQcU`#XJ%90-y zp5}~9<<~JD_ptwK`x^t+3F3u#)X)$7i(wx%)K``asXbw4!@=%?c(z^Z8eO2|C8&pd zM}PkVgveK-?|Z z=MVLjC41T)HcV7mAc*Ill0|FZ5sL-&kVgveK-?|xM}YdulFN5Y9W~uRn+T0Jr9)(z zTF*g(ddSlR{UI)xtnXaV{#RwF-_Ggt8t)XubGSwP!^94|1oeEtFhb_34gj1^Yhq7E_%;la0#G+Ylq~0R0JGJkIi)pRW7sZ=faa zdNwM-P9&jTp8*5s>}EI%L<%Ya+P-wft&@&#)f`!VWjH>>%Z4&Y*yj!QV&KK|*Bm%t z*metrcJj))e$o9Jv=IKDr`~!}QukNF&lAWa1;>Lp65uZb^_3;JH#W}JckRpO5sy2! zY(e|>B^H8u$kPP^T#XhTtb?=C!89r5zo%!wC?rcTY3f1Z-*KyM4ev5@+-sfAzn6=LBc+7uonX_ ze$#GigYU{Q6xzuv`q zA?}vE{>8wHo2m}+wLj%S>z{d7k?P)@28PyHaNy}o>J#7g>+GRJ$mPV_(FsNj%Z4&Y*yj!Q zV&KJQHtU_cYYD$cL4Pbmlcx`~e?DGt{oc=Lm*u`zczr`2DHs>xZVCAtLOYO+B)pg% zf9$y#qCIXUhOc_{D&Bb0oQybVVc5Q#1I<`7HZ9nTf6p;kt@--anrS5RR*QhVF-vI7 zvo&?+ZQ$SI?_Ha`zxyzIqHWVfd%~o-EPpW^7vfPv86@nZ275N};??$NhMa9KCOI50 zzS(%z2=xosNNB~`*`;UW$-#<;BQK<76RRD$W0cbm(|d{LrLENuu=BcGckLOkS2xK9 zTiel{XP>9hxh=!bj!kF!{b$S!K1Sw~!lH=O8LRFzJW_Bxh`Uu)`)MQW?<9A7KcCGb92cb4 zu$IHWk9HH(L!KsR4{^c39~SB>OKRq5HC8VY=98(JyK^5+3=qT%d4K^=RrAdo8GhN5 zrwQ}T%clM+X=Q$bcp(ok;Dxwb^7etLI6)-BRy z2WgwrdWwzWb~2*IiTtoU{{GpwR(AHJF41f}z`w3h`i>USd&o8I8aZ$4@1&)p6l3B& zEs0e(zod1Jn@NCDT;7+g-Q+~Ao1ec72_sr+BkgB74k9rr6}P^27n6an4!JaW7(lc# zo3DGeZW@7cfE5yj=!ogAXTj;}RgsNyVbACi5y$@xxQHxluW zi(dC%4rO|uQd9k<)uh+e$#1qAp+w&Df zwjQWj5dGLhO$G=wfryn}`E7 z9*j4d&+r&o%|1}vZXQWLkULn}U@@_~XB=w~F^=i83j(TdAId*}0Ple2%~p8Fgc7?{ zWxf1xdn$?=JvZ>jcq)EU%U7+p9+w$~KVH;}6S~ydv50&1bE(ZDhZRc(p5E6}Hx$R2-bx zEN~b9ovKC2>qVF5^1na8oByR`z}FUjKW*mzd7{EFy3Uu{&1ToEWbY_+z9uN$4*698eDjr*7a7owUboZ-6PHV=TAg+O}qf{=&6MY+t+cyl`7Or;lZ+Qv{g2wj5L11%#xL&h&xyB_@BKK`HI~?CyXIv$$CDMBU*DTu=KZ&8 ze{wUlybwh$h_1QCbci6=1`fYbR-M0p>2FNl^syPgz5us{@0YPz-D8PXpS>d0$6IOq z2%FLs$1dybUOzp3{uEzwQ`Oezm_Z!*GSL5&N=h{Ono5<=);1!hs+nHrw)m2|Yj&Cx zrL7`5LmeZQ{|I68;qDk&N2xG`s0==2<74Jedd*JjQT~L#|4&XCFuGme&BQuo{M%>O z#Kh^cu9tTb|J-{qGNbLT5^4JsY2+U^W{N+Ze=o$i>9=q?Y+_RnqZx}yp*ZPUwH|)# z`oQ_gl5v-G0!$7J7VKyD)YajNJx6)o@EdsXKA<*_h!T7#;uh|y`=yu849Z2UMyrC#|J8_C=gZMweR5JJ41x9*KU zw~Fa|7mbcM9^g&3rnRkzEm=#ZEvS)j=cE(UH=4UJ*Dy;u?n0m4?$u2_H`O%65hE8 z+pVELmMX)$Z5_0)JHho(u9$x$03hiadjfK|-*GiL)dk+1M z_0ZVkrX#$c;C4<&^+RjsviTpESNzU-_a*{ycwn5$l9g?bg?QBR+G7=8KYVJZ@POE< zf9cfPG@oo7`MuemYLVoe(M5%i4Ks-T%mlM(6VH)}rH7aHT%XFWr^dDC?XM_g6Z@gD zoxH|plh=WYN~XoUz5D&CT~~5FGfAIG8|i|l>EztYu-;dXA7}k@&t28c{7zXJ=F@)G z;6|>+iKM6aVY$JB3pDf8rK?-KqsZuneLU~fNh9Lv9p^0b^`tRoCNYh-%%Db!D*bKy zol4WX+4z*=>>)HxJ>PIe#w05GY+lQ5=?6m?*Dl+?gRZJI9li9`goAs3uIta4z4AYI zX4ko(*1*!1x|X!SW|BwtEE_8NFzn3kAI+Iwymgh4<$V5q7{;~q(Jj;7#7K9yMqJxDY`#oym6`ZFawA?Em+~47UQA}s zJdikW(ln+|xSFwN)$O0>f&RuH8Rniez>OrByc_)d*!6TujBP zTMz6SX+yQnlv*Dt^J03t!s$*8*E-Rd*v+1+mW-w@BI5)!la$ER&8Iv+5_y9 z9))I;9(WVo2_r{oSh^G7Z$?TkHLkvNrofBa)gICGcyJ;Sb(!yf&wDY^itKaZ$E;{# zttcKjZ%q_2O1!sq=!;=&e8cd_53X5p;0jtLqt8lJ}6_ zzDoUbe9j#O}`Ly@fjKm|lx6 z{W{uc9dS87y~CEBn~Cbzlw#Gl{CzMxuk^q$O$T;kOal`>wuH)C<;{W?UXdca|*;_HBZ#_56{ybq}v%>DgsNTTvmJS^m z9+CPA!#k7T7^dI6^?dTkjzl%NZL2BmTJieu&UVjdy)YEJJ^yC~G%`iASgW(mg@+yDziBOnVkkJpF-1ohSBBFZ3hu^&P zJ`H$rjODcxjb7SO;KgICJFDr|k0r4*w0?@ZG1(vcW6zRL>&WL0(OF%_?IJVcBPW|E z{CuzD{@N^VzB|Dti0l~s_?@n89NBtt^x)8s{QF@-(yn!u1tJj;!{Z;$lH0ma%953eEalF{N!~E!k#Bfru{X#;I z#rov)usfq#brKT`#f5H9o{S}RSCl@D*}RkWQ~7i-_hXw4BsY8%i8$>@61F59vl8!S z`q|1+z9Sp^63tcfoA`vzA*nS6=uR3M&h%zM_X^t|U(U*a_te%acACCsJL`9N)XP^bEc{8gdMDNw zTyiE2+C*B_9vRQ{q*=K)sUJY5J!@)Fr;Rf?aPGG2kB!@yzWBcJw`0+~eFpHJEAt`M zQ#R1LU)10EweY47I9~i#>qEEEk9d0-w3jJ$n@-4o+lC0WOK%+EWUk&%P%j$m@TUD? zo?ooWnX#*p=PV*C4kR28c(Hitn}|@qpZ8b0g8gg6S%#wL8z-%3(wB&}sy%KMzJLT6 z7_@!-j=z73wshIMc!mWrePgAy)>ll5qKoc5%~`^5iW6@vS+;dFG0mI2@4&DnM5Wj? zWoC^-u;jBdY%a* zsg3M5-O`!D^gb`Iq(*J=BqR5}U1s=r6Y;SvSa<&WWTw}cu(h7o6rL}`xcUYScI{Oc z6R|_<5S`$8l;g#$AMoO1m$I*4pSqs(?0USj`HJR5vCf9J@p&^zaKAT3`dbaj%r+gm zX4hQL`n`Jktn=9w%Zc0cn-T9bCzIjb&NObhCWPs2dUs16rQ=4%m*2K*xPCHO@3h0w z`!V0YTJV?7v8J6AeKhcM@xbb0ww`mLoUYz-*>zmFOuMyzI>B}O{&%3Hg zMdHb)hZhe`6DdtfI`}9%O*~}$f&7;BsmQKoOyPnu{{8wzlj#?WU#A(_Kgd>Vu0cf# zu0fq9*J5}?jl=sK3wxU;UXzeEra@aO8oG3W(xq>F|JdYXN18omd>ioY-)vvz@zH{c zA76TAs@;!>CA^q`9(ZwTnYLM<;!sl2{O;F#kXA9F2KBzOhH%Qrb81W~=dIHZXmR&1i@3 z`|POJYPFS?+H+{>y>_9|tHn&86jeNU%U1_h2G|#rPP)I?8bn0I<@Vi!3rITHH97tU z_F~}0=^oA|&wC#xGbS}iRsIn`eCu`WMXoL<-P(0;+q4TmzqUqeUVI$qLn6l*MVdDr zK^hs%ORX-yeE8{PkG-%Q;ov2R*)-$UMW z*B$J|z>CG2V^5{J`;f9xs?7t79LUtS22)*YI+6=zFI6f!@b|yb1&zKZ*x8Z3efD>H zvf7X+wSW0tIj=9nBg$*#nQl3P>>j2($Hc20NpdrobS1wD(-*z@&wNwtF5#Q$i@EP1 zaNRk3G2_K>VUVn@ZIv>+mx#p^L~4<^ozvxZ`$7fdTF*|gw=%zbLQoIm1#+bw?=2E_xp>AzG2*dIyhl(T zEU;$-KCl-9FUH3ie7=Xz>keDkb;SA)AH94(Xz<^2vA)Epy2AQ8()R(}4wr9;^}L4Y zywSTTv1ikr65dY1UJSgr!H#D+YlbXIEz@#Un7EhEv&7-1Fm6G^pc$@;BiVd&xS77x zPa$E)U45qKa5H^CcQ=K+Z*N(=Qy8}|$}6^svuEGtcssQF(^6JkcZQF%7c*YW6#xE@ z*kZSxPTmcv`G8icI`s3TvO+<<$nMSH2LXL#u3sCJrw#1cqI3yw2YWH_VmLm?u!AKv zPHx{QxPEVxw=;RDGF4C?ylr9|YovI{`raS)IDGW3gtt?$7XvS@k**qY zU~AXZt<9Y^)>`oKpgG)Z{mpqW#mdsDg+3gI!_D-K>Q5feeE`7K{Ylm#s|my(^6L60frCk#lVZ1;@|&Ce{b^Bg@Mmg{qI_lNGsNN=YTh_ zq~;6SsU~|K8NE44P!H|2Z`PY-K6M1YevCMKHir-F#lVZ9AIL?6I<~rg{9nG4f`XHG z>j(LIxJ&aIXm)7Rs2an?o%rK}LWZ<$K6Os!>wG;9AH5>s?G)_Az>B@D4l1jgS?EVR zAN8dD)6Q%iak$y~+hmzH_QEngZ!d?N>9YckE1oN8$og}*nLfbs%A7fm&PvUv+9-SsLtjKH%l3IyY|h2dnT|y^#iv*HC@8r$Te<1 zGVn`gFXs4>0Dq%0_#2hM->AI&&6Kkja{SE@_+<=dcZGe_U@rzlXWp<`R!@$Y`tdctp9R)R20$N@3q$L z?h0b8XFYUKZF{Cqm$9GLk=sw}!|f9Y;J$~zK5DQR11~nRAF?q_-G@Y*haFg#98CJo z_0XBtpMS3$t@FG~hxThoQ4P)Qh2PeZ_`XNft7-G!CyF!^Pqr~!M7;FNtj<1|Pa=+Y zyZ6C}{~n;a`ajz@jg%zzP1q+Onk@Mq0{f`JUM%$UdT_g&wfjRA!TZ?8mR*YXG_5A6 zPrvUtrq0bvQui@@Jj^#4J|~Gi8}?Cyy%_h0vcnLKrWM1-3F0YxG}fryNa5#SpM=4E z+v{`@><`B|jPfoseAgxRY}iK)_G0JrvB{adS5P0^wd_>p zXn#RHjDw}d<_1>Z=jiH}OZIuwIEg)*!ai!S7XvSzd(Jzsq}Y|s2Zx)&xGs-;7v!y+ z%Jdv=rXM~p%YO87JErGwGkrzUcKcqd2I<3iAp4>`)*HBe-hdC<{b?yHj~L*Cebitt zhI%Z;SDUU_5ZPa9KA@dAyzbQV`K7|Yr;4lHOtu9G>$!n?puFH>ZlAZPgT$T<`>4TQ z495rQQWW{6n}3qv`a3e@Nh_DGy9M>mSI>^|@Z;};Fs>|_TOe-gxJ66fU9!)c+DYu$ z6!uYry%>0L*A5-JYuQ_~`Q&i3^=J2do97D4I&6J%xS3uQ&^L}~^6z0BZl)&_AN$#R zcVOcK{`CrD9vQ9g#p+GCecpf%+Wl!ME6*Ln$L*sAdoim=|J*Me_u5!xFgtIg7VTU% z=<*CxBB=j*@P$RtHU4`A?hj?-Zz{)aPe-%$l|Eat&s+3NV$X(s)L<`$ejq!&8X4Em zWh?6s^&piiet7m-86c>4pZE4k$SU3r4*g`w&K5l;f5@n(KUcEPn{xOl?4t&IG4SHN z^JHAnu5oO>INWUg=`1bkKXl1hrsr@oz5anB>#2i`n4ZJU^r|%PbU!bC{R94@yIVBk zyQ`-{S%=%_4fvq`PfMXZj2IW}qXv61)hB=!rs0Z1t$pya=dHnYXs0X?2 zbKSigzjhSt5A9}{)tXZ>D3)D^1a6nQPd7^hs{l&vp(KB^t;rVrBV zET|t^z9qN8C~1BzZ~jf#M-BF3;Kiq=dTI}y@`M1MLZymrdS2rhj+WmWoEp>f0n@LJ z30@Ypnb#jGnp+XyAeZT{O*xs9ZrqOb$JZT>gXI}+pEuxxebitt#_j)fnZrjoe1@=( z8tlcui-Er_lkhic_n-M2mBHUA=5HGX_?ywc`$Lj3oS!c6OU92ld$9n2qcZp#mBHUA z=5Hba{+;=J=7(s$bqqn3yG{j0Ozo$RfavzgRa%Ux~xb`ud@e9?JoTLaer=)&1~ zUz=`bWmtFMznMTX-got%LrzHc&(lQ7J^|)m4Ew0TUJSh0z0Z;+o4dsl@k2MG)7M|H z{R{P#SJcV*xoq>FpItnp@4g(S zUtibpNa|A$DZH?s)_TN&XLSev{5~MrKM(r^n13C5^!!Q+*N z^{_Y*_H#d;z+chyHNksV^ZVWfnn_i6k?_q_4j<+Ac~kH&hJDmvFUGvMMcJ{oMFSe? z!@%F`%zS&{1J64YA4Mk(yVjlEU*j*1i;M36FTA7Eac%Xp6^suJ7C&nGp$WhL8OBW- zsJ8R56+f;C=l=}&z`q#wQA0nFJ%W2b{-DO^ErfcIbMI_yT|19|PCz}#b>}*Ebe}tv zod?v*k`r}Ws7ER6p(iE&&y>SQW%a9Sy{vp(`1s&o4Ew0DzQyQ$yhpYqJPOCrNj_mu9))M~u`*6B9!%j@i5dW$^`ymj=xvh~~VN{M^Vk=v!N@3HLK zCoJdi<6?Z^Ukv-G*$Hz0SR2@=C!gf)XjuPku;qiA6BOC+5bF&pKD>G*+Ny`^WtD3g zJk;GbY$xULQ4XKf`N}#dl`&mJ6{cMTg&m*e-tB@g-Zos;hQ*7x?;0UEi(6J!h}q$d8NhfqyaV zqsH@_^)h8#d85&S>r-Lrp7xrzh6w7%oHy!bJ-w5l9v=_NLDh4bxOr@%96rk7lR7_W z|98n^N&aWK*Dv@N!#-+^Q@mxtwTdaxg6Czlt(IfO%s@eX8;|Tsjf`9c_4s&D4*nSj zN9{si{Vo#!XTsr=`@CQr`>}UZ##lrM_A^wxvbgk~@b7QrMm?noBI)1X{hazimu;H< z^11uI4TQ47|AFQQzGSN9|+di@oL?N*}q7@!}Wjt8HIt$MYh^=rNlEXSp(79B?7hx!8#J z=R2&v*yGZYr4;5BB*Y8yRy&;%&?<=emBapdh`R;;#bAer?+w6<)3y3^E!yVI#*bUr zwf*>y-i#LqR9~9e{0Gl>txnY)rhat=qKWi<8T>ar2Am(8 z+F>mz;{3{C|2)Lq0{>#zM~&^p98YG)8<>^{WtWTw|YW;F3;CEp3L+< za_*X}5mnAOYphvS=Mu_P`S_&>9_Ti{;|`>3(KIQF&D(FT`S zv-#rqJe#kNwGTRvIA_N69G_=;UGdI+<4nz&p5yZb!^V968W$G~@Zt8d$`7Y5&TV6; z%Z`iNo0flYv5u;)kL#gaGyB8E#pi2C_2+mpJ3nZTCB)qV|6@3G zsM(6);&?LCi%zN4eW!Sa@ivYpGrg`&!vz7C`Tl_Gl1Jo-z*KEEF2)COx3GUP^vApy z>Oo>&4D}!}FNS(qQc1!$AubsBKeM=7;9m^;sIk4+%P+<3&3Jyl0>|gse6`Ykys)WF zKQ=EMpJ#fbIpbc0Zm7rfeIyKgc$?-So%>fJ}U)MvQxcmXFyc-lBTky^hT zPiE(b`#~AvZh?O>?4!o^VvZ-X`RH@IVe5m(^%yRWCo_G9Y4O-%GhWZ}WTub0svoq| za&Ri(VDe?w<hQb@UK^UWKL) z;%X|&Am^jYRqHT9q?^je?fez zfVV%`aB;x^AB($%{fl9MN|92$Smvne5}uqY`ubN~ur$v9*%0Dx0Y8F$)L<{>_#659 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.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 D$hE`A literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_6_31gd_xyz/olp.npy b/horton/meanfield/test/cached/water_6_31gd_xyz/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..2e45cf3756427adbb3f7b5d03705b47ca2e9d93f GIT binary patch literal 3952 zcmcgvX-HI26ds)@NUdnGqHWrktSM(9S zYbR{#HNWyU*Wq{m#tfId>;jhV<6Col-V?FbmhJW8NhWJF72V!?`Yz|`(rVyjr{c1I z3_Ep+Ioxu6EBwk?|J1cf=DsTdzsWJ%PX7-u1Q(9`T&d4DaY$g)wy; z-|G4%HUZ@KN0T;_Y>z%<0<)VTxg~yBXeo-DI z{QR_> zZ`h-5q8=g7)BH)_JH4MYo@%_M?;qfK0DPzfzcq5bM14oyr2AwuN)oAuL zrd=2m6jC7b6OT)ET|^&(`i{Cu>k;Km-+O0y`wg@|T$U8b?>87HOFa4dEV)lABmD>V zt4Ye6?(Zyb*zc9&30+B|uT$!mV5d}%fVVH(?q~b)RIWSl=OXu=YW%SO|44P-UFFfy zx~b&<@8_=08~r@`WX120K16As(mH)dO8aOZyGWilGzO`U$J~K_p8EOMcp@)Rza7(^ zn2RuPFghQhpGTjJ{u6y2zJopl^&NE+IPyI5C-M?-yd&t4h^HJ!M(0a9A7Spmyn#L$ f{W1KaUqT;3>pSWZ@;uF-itk-Mclo^km@j_;HC#Th literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_dimer_ghost_fchk/chol.npy b/horton/meanfield/test/cached/water_dimer_ghost_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..3075db435ec384b08ddb6c2b10ba04ec7bf9ac22 GIT binary patch literal 120816 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

hiOaipj0s8> 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 OC+LYjKLYFFy#E2?)x6ID literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_dimer_ghost_fchk/dipoles.npy b/horton/meanfield/test/cached/water_dimer_ghost_fchk/dipoles.npy new file mode 100644 index 0000000000000000000000000000000000000000..a5b8546903096c6b51c60079b9c98072963b4223 GIT binary patch literal 92 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I%oI+{8PwF*dpYtnJe{U07U*fIbC0Mi>8xBvhE literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_dimer_ghost_fchk/dm.npy b/horton/meanfield/test/cached/water_dimer_ghost_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..ede5265e61577262af39bf8c5e7ea810df95de0d GIT binary patch literal 864 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%0A!s||2|@b> zZP$%EXeS-U_Y;DS<8Dt+UD32$IqP3P4~QqY=lk6{;t3oF+?g96AztA6g_O*4b)V2# z6<;LgAokViti0DJOViw-q836Y_h z)<)3hJX1_<#k(6981RvRI|E-p9trUR?2W%P+s{^i0ZG06-FmrvEuD7^`Ro3g!ojb7 zD|waAoY(Ch!mlR|*kFG}%~*$kj|AKq_yY1sh!&Q>=IxVJ^MhY5#_wd73!n^%f%C$wvb241583 zB*Y7_C;T#C`q0ZB?C_wk%IA0VVo~>ACtEN6QmGd^@LOViTKY(0VwAnNC6FpGOeVIrox%hE|P4BMW zl#c}58TbP7NU#ULus_t@?v3_gs#gO(Ux3(>>GAWouz?;<@5}7?^OJar&HY^2vWbAF z3O*8WXW$FSBf%d0!akv71G~^Sj6~|>*R}&Q81O^pKN{!!#NrxHRYz^<%}ad!Y2OL% zmi<*L8SqrWM*{8)d;xhR*n?jff4^e?*P{zaYfo))b6G6{yzxPoM5)-f)~vziA~Nfq z1s$J#!(*#QT(u+Mse+FL+!^=+@<^};ztE#O@j##6a_puI-u>Rf89d~#jcP)^zparW zH%P)_Va1O3TjyV_-}7oW`974V3O*8WXW$FSBcUDqLhytcmma}!Yi+}RR%QgvvN=f(Gw7)o?pe5o3LHh-5Uv;Qr!hFv@bew{x3O*8W zXW$FSBjJ4T3o^;MCBxrLC0(CZ9lktHp5T40oA6x8vEzOAWYC?Eao)Q8{=5plSQs>x z@>Ib`0`3fa0eK|YgI`G9)NY*^dYg>MztmvVp<5F<^~@c$z>6eXH_t6YJdYJy-os0A zbuqQ~Id_YE6FEixww@|@s^B95cLu(IJQDf`zhG0bWBZ=I)g&(|eYazWZqI{n^*5ax z?vS#eOD%WDTx92EY>mBET2A|ClQaEhmPiQ!PZfM5;LgAokVk?&_yu#HOqJy&r`c(a zUh~2(xv*8Me?BqmdVrNvu$ZG3olV@d<&B@K@cE|8c6#V8f4hSPPZfM5;LgAokVk?& z_=Q~W-Zhyk@;m0snf6#pbRL`B$I9$#RT{gn(@sUqZK;JDPSbIzva2<%Y}72ej`Imx zB3=-*U(oi7;Y;V7H09SdgQp5U5^!hW3&+Ce7^^$Xysf{z5;8TbO)AzpxAfG!*K(xB@FeKE9y9vA8tz*7Yu z3Ai)x1+;^n9sC0H-=NC|y)>?l8CUlU=M%IpA$e$+33rwTq2aA)8PI3D_Z z@C(qhgU%fE-=NEecF-|H{Q`KZ;3ENd2EKrHh!@}&pqmFhJLt?o{|)V+mj-=H=uU#y z2c1UfC!!tn2LG#`D(V-&Qw1LhxHIqt*h9PkzW^OT=<`804|;ZJ2mLqHFMy{CJ`!+e z;0tJncmaL^x>C@4f({e(ki3cyDK?u>TGBOzXZUjY9aylC*1(GL7x^apkX z@KmYaL>>w8f*@Wj_;0WWz8J0>`UBn*_(;H=(GGbe#0&5X;D>;>0X_xVfq#JegX;zy z9d>{_qaE@{h!@}&fHwjM1U`p$z_YOayCwSjyW_a~(O+!Gc*8ir{lRrZe{ekVNQf8U z7myD@o&xy;v_rg&agFhYae(`S>xOo)gLnac0pHj7?#1^g+Tr^R&kx2m#v8@~?ho3b zKd|#}^;Gek;`sqj72^%#0QPX*&>#4Pu*9o3H>~Yl7*DlI|Du~tapsZU z`Khxz;tRYF@SK7_i2IE3279-JYQX{B$MqL}~7l12+ zkA(gKUqBuS@dBPxZ!gu|PbLSmcl7SAlizfQUeBf16+_0R^XDPQ`2;P2I}6$`X#3sI z2SSvi_R{N$dS}$Np?(28Rq&DM`8x3hfzJNRu;sv~~9Y25D+Ee8%iLc%EQQ?RjeP7op?T{P1{~WD% zMx7V<{NSl_`8mKBkVnGzGv1T;TM7plW=%24+jHybo9MOFAEobiD|MQfMeChW*M|B9 z;L6}5p?|;^kViti0Kec7!t90prx@4^M&5K~&G@!5NdS+h$#eZS#+f|kIY1??BK zoog5M&Zuic{Q`KZ;3MIDz!#85Lc9RKU>CA@;0wqj!EeJaydB&4{lolh`aG<8u}|bjz&-*U4AeWLt_}4ITs>9b z&cGLtN21>coqnM|&;HTOye68TzqoyE#QGD}40JG1?~J-O)Gu&(s=%FrFCdSE?-2Nf zt{h%$&$Cm5?)95bbuduxjJh`PbGSTJ;LgAokVnGz4*bF*qv`KbMH=b*+Q`3k?!q8N z7CIQHcScKC{?Rp8FR7m!E7cNP4C#k0^4!u>+&_#g00;riAyE9pAMpP(iBD`>x< z?dUJ|Lk9!(&Zuic{Q{S#3fvj^0`f@sPJ~}L-p#Z}yaazfb=P=b(LD;233M<}?~J-O z)Gu&(s=%FrFCdSE?@{=Lk56O9Ul@ItJ`YY)yxr@UXa99QRp?-#-Whdms9)gnRDnAK zUqBuS-`DU9@DsRiQE6Z1sZP5>buduxjJh`PbGSTJ;LgAokVnG%8h+ubZ(fnb08#26 z+B@IZ(7`~xGwRwwmgLJn^T;f(Gg*{?s1g zi9bCa$044;I`oma@e$$$ZhQnj5^!g3e1v#`>lZ4WpOx;oJLHeY&41;o9`znR$Xw{p z>pE~9{wq&4^L5S^{hfFIxL>gMxAjyJPr&}4F1dcYY*7hIZhof{z5; z8TmKlkq|GS-9AO}o@pb$GSJO~J`!{=Q16VoHnamz6?`P%&dBp2kA!#u?Us$XK5q3B zKLXu6=p#V~1NF|RYePHmRKZ6A?u>jQ@<@mm&~B{Zf$tgLCbH1YgFX^;Fi`Kzt!o2M z6?`P%&d6ILkHn1^l=nC8jP{9SVgGl_e_OwR^KtzGbn~E(1RV_2JEN`*?ZH#+(#b~x z?ue|o_JXP?KfIA}}f;uQ`z0Y z#}mtJyf(l!kzM*@&DA1jb2dD*S9RRR4Qx_OQ~R3&A96#}VT)D=PaD5i>*uch9+Hb$ zok6ooH19aEn12p9hI7IZ^;LQ9Wb*Yh_o^e8(DzA@s^#Lv)p4xjyqpixcT;&oCJ&fW zud{#`W8g7j$jfcKmEM!PI$k@>G(>+{=X)xK=81+?RqR#}4drdLdEL)kZ7dJ-+yO7~ zyk2Kq_F_CU;o`BajrS(feDcsS_O5z0VZ3O^K-PboIlI_aMm6Gl7SBS+d|02Tj=apS zAfdU_h7;}4ZVLun9!&f9IKN>dsP05@09M_@CWEi7$etjVq&d-e@=H)cq`z+HE-NmMFgeuwkaq@ND6diWMQB8xFy@peJqZQSzo>G-16DCD^`A-!i zm>&>0Q}vBx`9YeBY^74}mCd;_)SgVgT+`Ue7IYosLD14$)q9Ua8-M;lLC0~o_f7A@ zb{$ti@8bZyWg54Q%-G?*_Q*34^}I^GEb&K-Dm$**ZcE2nC1N`~t*%#tGW}g&i+E9? z!P2bA+r}}g)7p8M?-00IX|1bqjB;Abvr3~U3STph=r;fu)D)Pzn9C;V)N(A z3|sQlgZ0=Owm)t-lF(fY|kOj65Ljv)f`xaR;@582N4N;`q;*^21`NbqxU3kAqOeTAHfcuO&A!q4*__;M@fyj_! zq;B%g30su+63j;lT=Sx6<3SPoMAly1!CveupZ6I!R6T9)qbsEQ8ZX&z?UY$xz$}`MRY8?nURaR z_CAQk{0sPwpETSlEMGB-9Bf#=T_z)r+F3u?ZbISLb|KZ76 z3$eo2KPVE-C$An?z8psF#g6Hz_$YNEJAJcVg0JOS9_9-L?u_^KbC1R;*N>Lc=UmQn zz(dn0B^G|6v{2l3#3b*+wx2ex`R&sS$4uGgZ#?8AQ`^rk&Zl$?&7VY0J9PD<%N(BC zp%3OSHA{;zFDdYCS5>(v!@SGm&M#q`n5LovT$dv=+{4orY4G3|-fMjQb=q=-=q|chmg#HZt%Fo%4+uZ+V)=Gq1RB z+|X&~nW&+xQ2S2$JDu!ZvYrNHGQBk|vW__@FqqF3yntni7siP+EAcS@9P9~Kr#hH1 z!PGvs3tC1T+F9X}HILdAbR2hk9^oyv`VmC$Bm6>K+=9O1LfUNdxR9`cQzY4zy7j(3 zO81$P_!O;a{#WSlQd!eyz^FCvcwJ-FigrDBA1?m9=${y4(Ua8#F&J{!qi3UpdkDy>3vJ;IV~pP10+;Ya^2J8Bkq zuqk(odTE}y$HP3h;8Wb%shKHu&VrFKNL9Mh{S~#RdS_G5E4rrCFLaCACMTC|VDda@ z(xh&2{Y|{y?w`esZex@SWrvsO@pXIJ@-@%Zd^p8Z8ejZ1dA&Rj^X-DSfq7~$UmLFP zrq1~n{cjDc?)%&c{6d-9_m9rodlen? zT5XYb^HpK1=8qkd#0HSAmaDCX4#}j?`@X|>;%ay|c+W~6^te9SkVogE?8G%4SdoQY zoe3jUoYdg+(t?g>iOSha=11+P_Y>Dy(6a2zlAT)mx7&-7m`PsyC5dmq+RQpY;^?WE;C@T8fn1=V87a z&OJWovW=PUq}06Y(IXg`=0SMUVvYCT0W+$-?(TtI`rs$-jkU`Wn$6K zEoN@i-tC3}k*c+;*>ibvp+w`66TRgMYft7cyC_L$Bl4{P4{A>XE$ABma-LH;=37d*8+>l`$n##>$Wsp@9Zx zB~(aAb5SY@h2{)NX(mdhL`0K9DA9Cw844MaS*a*w4pBn=-k-0o-S4x$uk$*mp67Y@ z&uXu|*1q@JXYF^?FCS(^W~j|=IV3gI^q+kW z+U*7Cg?5}#tNL$VF{V%Kf9Dn3^Jrw)gg-rq#O4u-m4+8N*nb;5t{Z>z0CItE<9S}S z*gM{OaUWJb>Uou(R9-P&?dbYIDnB3W1?UA&>A0QoHd%&2M~BNtYZZvJvQgZ<6mCpWY{yXT$ZBqF?~ z(DAmSH9MYpMdH8GwL@4x66^)&g>Ky|%$GNZGAqt3O;8`8%l3Qzq_lRgfrb0eZo`;$x4C@9nfU&5}Eq z=O53$w{tDi zNrs|~q3%=2d>vd$Q~0`WE*2@M=fb?^?b$ zF0<(n+Yf#u*bC4LSE8E-zPPB&oEtb!om2ahi|aH7?J{^bMUs5!zpGSg(>V@j)1b&) zhfy5xh&L1u?j;s?k*n8mxoxoBHC9g0gXnMjj&>*TBf(yPURbkOZ26>XDU7vGs)1q4 zEcQ8^e%){47m@9xR`g2UGR|=FI{(GBsqb z{O9L21b!sg3(yP4+P|-bCjZZOFDp;4q|#IQlN_;m_;~tBkxCBsYX$B~#`_BXHF&BtKL_{%{7A4DAm?jUX?LX=rR4SQ+Y7Uw3A4OW zg)cX&OKeUs*Zs%WsQaliZtd#=-q#83?@{~wX5WXEuP@j&3=3!dNU#^67vB7plb>bq z>k>z~Ndv&s_3uvH!3>G)lFl^%|5 zJN!t;d&sLDUH_GOkKjjwy#T%NCAwVJdEZIq_g>|!%@G~>aD5_muIwHbOagk(l?V(R zL$DtuaLuzDQ_mb1ozBcQ>^t&)_l~^8r6Utoo(Oek@dfyiU@t%~c%|-Jwtq-RUdF(q zhgUZDc4D-j?hJT5RFfrb0eZoO;*I96GHl8Ss^VIG+UfCwbAi*&Q`JIT0lu$ko~otvk1ZN& z#R%{P_>tP*8wPqIsM5+lFuNlz-^HG@#II%=QTSMHQhm6di+!TOH^O>7EOBE02R0Jy zIx*d>&P}gEg~b=(M}oZoz0liSyv)0xiG7}Tj=j9GP^XULKBn*7x63YbhuG!Z&C$@x zL!3m?)=k6uTYco@$BOh?IQJC${(VV~th%yUij|MwhgWH_taQOgjt<+OS3A1?nRywr zt8PAfzrYvZM}oZoy)b>>jUF3Jrm*+b^Yb|ii7ow@){5C$YQL^=B%kbX%qsHYAns#I z)raBc0XMl-y^pJM)84T9fg8Q8%sN4m#TVd5g1rE};MsKT!DF9PR$lFv)T!N8hcT7! zPf7=LBV=FOg36Iog$d$I_LFg1V|q?zc8s0cxK`bPV7%8>FV*}!Bbdb(;75YJ0KKs7 zVQ;+@Lk)KQ^gA9gvdyoBJGgeC&$Tbr9A)lKMbqHiJjAhJzhhaodz0d;JMwK~AJ2a~ zpDOSL_>o{QKrgt&9hqr4zaw9)t;F?^(E({hRj}3XKpXmJ~z_n4<|xR zSt;widmeb+hU0s?$&8rB6dZCIA>{suozDS7jE~(}rO*DJ_+5FG^@FmlluMJ?dCjXG zU9URH^sIyLB~~u*1^AI*FF-Fy+Kqbl?0OpeTxOnoxF~&j7{ir(-4Zr?Ho^YE;Gy(9 znVOt^m&5q^ecciBcojRIkf#rpWlh_`9@F9Lp=>lti zpq^iO>fx1DQu!&JmN&$mJ0QgE|CjfPpP=^hX4jJPZA@pddP2Z%-HZd41}jKiWq&_G z`~BPbRQ0PxX75xk?ezQ5)%R#dbyK;Gk}#_$1br@N650%#U1Qnj3EUa@0{lp@7ihhZ z?l$oB{)tW8QA=_Pb?fhNGv0sndMl)+1)ewTh4Yl07q=zOyKe5tm&xybZJguZUiLoO z>G?U$Q)cq%v1)8T@R5K!17Cn23HAc+=jZHx+mmJlGGo>H4Q?AE%Di?x)jF;1G8b{K z;D_Xnko!=PG>Vn8_Uc9V0@uY1_(;H=fiJ+11bYGUd@e62b(f9dipCAj`my3?!HcIU zi#MK{R)Ba~;EmVk9$KyNyrlsBMsYuiiS#k&f{z5;8TbPHNU#^sZ~n%VheB}!n7yq^ z^WM)*=H7ZPR#Coe5EpT~@Lw12X}$9NVMjhyIWvzX!S!Fc;3ENd2EG7466^)Y6EYS1 zB+uzLVlsq)j|AKq_yYV$ zuoob&RkA_Z#&Z}ca@$O%F3se$Hhfe(9g$SD+*0}I&aT(sBLQ~?z5qWG>;+t}E;wQC{>2JRw?x7B5!NrNn)7JJ;&+kmy@R}d4-j;D`*Qhv7m_yJ`!+e;0vrDsoh?HyvZuZESAZg zV8S*p|Me?u9Ft*Z>z#JFfs6R zbnUoHF8!H*JD)1}NWh(eFTjrkdjaDs;(Fxx_+KS^YdzK!y`M`mR=pdV5-m*-_ii|M z%ZH*Ob!KnHT>An4@R89k@KWN@$?JC!@R5K!17Cn23HAc|-3(pQTDVr1DSA=GEfjjs zjkbSsL&!LUi#STXHt`)JXG#)DTZP@D{5yCh9=){J?NFM^u5Y*=uM&EJ*Lhy`lb59i z3VYVEza#iaz@33Fz>frb0oMza-{K#C>I7pDo8gu5bpqp=aBtM2RUf(FdHXC%IS^*5 zNFGl-+K||-14k&>A3x4^yc^3?1s@5xGw=oYksuFxAtvN!UV2Lm(|S^BWbSQKHZKAA zd=X{|kMoK>+23zc(lD>bgEuqase+FL+!^=+{78@oy|8VkTi;z*mvHMdDm=!VdsKk@ z2jGX;CigqM)NBL?{Um~PUrT?V%>_>td?et`z!%_0LOd-i8%|>=!{t>-Y(CRpb{XKC#UM1`WUgvq$&-rul+JYCiS-Ie;f{z5; z8TbPHNbL36^};!~u}+O&RG4dtWYUcnja=lxz*G?1UDN!2vDRQ~j zHD<)?15S%ZU1!(lpr98!_SzK@@KnJ^0`3fa0e&RNgI+M|nRsltZ#)^PRht!&HIB`P z5;Ek&jQjn<8L8Adlb1U?{3pYNmySHp`pVW`;xi!eVhLlRt|Wo;3ENd z2EG745-tF};Qc_-$gd)gNyyrDVeF%A4B~Q(zN`5L+)g9~%=Bk?-Vt3H6@ z#Ug$IJXP?KfI9$TMPwd1=T;@UgDa}mD) zo+|iAz@33FKpyM`=!MNkl&bswv$5^=hF>=wW0DxG*N>?6+V)eReA1{OHhuv-Rq&C3 zI|E;UJlG4+3%z`Q%#-*&Ut2M_bV;$HvG(<^H8bKQVu@GURriO5+H5|gr{V*v#`qX8 z|8_oA#4muS3O*8WXW$DMAM6F_h3dg)_S-)DLPB+-4+grHk>@YkWT&*4X^V=j+Hvnf zBI_TD$g96q!<;6FUjR=Pd?et`z!xA7_5$>RiPL4dxBF(~6lHtqYVUh>N%WLxpve`d z{3mT9LedjEaEr(B#k0Lmk73t0T#r`?KN7F=yy|JWh+hCt6?`P%&cGLNJ=hD-3#t>1 z8rN1{W`-o3Rn99&VB+kZW~$_ekSPb$)LQC0_WK+X-1w$ZJAgr48{!whQw1LhxHIIz zkAysCi6+(I&2PLJ;+aYSgqZ4 zUU7gH;@Xjq3;mG43UO_SUjR=Pd?et`=m$R%>;>or;>or@M6Iaq4NPC9~a`<5WfJPD)>miopGP=Bf(yPUO-+pW2$TNq2$jgR2 zn#ga7yp!M~Ax|UvA+I6w4R$u4D&pD@zW|;p_(;H=ArF2e*bC4L$lHPZd~}`*_ub0{ElgBcUJg1^AI*FF-GVe+^zV z`hiD`=Z5h>4#iVtzsrFyz>frb0eS&^KJe@y54<$|K6q{z4|q@DBcUJg1^AI*FF-GV z9|GP6`hn+wV}2!YXMXMI^T6j&kNJjqfZqqt4dX$3;0y30!Crt~fd3kPW%Pp|7V{eO z4f6oM51t$PL5@wk9|`sX^aA`L@Kc~4?0UREnAezZm`|kMyEkXQxFJF<5u79^gI2`$Nxb%me&Buos{gAm>HTarP(Xr?UQ+=PS$V zAHNM_k8%IJN_t-NYDd@8a~MqC@> z7igX;aA)8P@FT%qz&y~A?NL5{OAmJ4<-V8tGCXJ@7kMxc?~J%M#4pf1Rp8FR7vM*N zy@2^vQ+^}Zac9T=(Meu`$&Yp9*gP1BcSc+r;umP1DsX4u3-BYsUckH#pm?#OG3hf@ z?&uTb!9ct-;@S|uK=V|AI|E;U9|`sX-XFUQ%_m)?o7v~7bZSCz)Y54JzYjDYiJteo zj_d#OVp+M!gMoNw#I+%Qf##_KcLu%yKN9Q(tOr{C<;S1&RcGht)%bYhXj>%)c`y*~ zjJP($FVH+y;LgAo;75YJfOV(;mjRkG)mK<~3->N9yx%vGDQow`BHkHsZHQl>d8)vj zfiJ+11bYGNTjea7^Y=zruzaVGcK^Y~_V@JP%BPAv7>IX9TpQvSXr3x?XW$F)Bf(z4 zdR@9j_2(y5TCmIL`+<*B9_O!t_(^mhjifeZ2}yUJ5- zDf4?HcDO@N@DanF?kZ2Ut9(A1r^?<4pMQ)u*UWP`+My?q9|?Id5bq3ofsS7Q9|^cK z@CEph@Lfggg$ECIo=vuV!{XF@ZnIlgd8(@U^DNChJNSJ3Wd<70@6Z#t z9>21yJXKmx@RNh{|8_pruFh*(PvHLfl{8P4UwfP{oM&^h#*82#&j?z3;+&{naqsPu&2008X2YK_59|?Id5bun*He44x zRq&C3I|E;U{R4Xe{k&Jm|H}Ob4@cfS;?2Y z@mv4(Byffn3&<{LS@R5K!17CnW2YUhiG(_db3^CPbkT(zck&p)i z@y>{ALqG6T!AAn_41580BkTqA8(~`DR=(YiAa5S>BOwn4;+^TZHtxM;nAym`ovggh9CcSc+r`h%wmJ`!+e;0v&~VK1OxCFlNz zgj{_FdGnAT33)IO?~J%M^aD>7d?et`z!zZG!(KqYsb`C_zmH)U(Byffn3 z&<{LS@R5K!17Cpu0QLgDPdH0V zmx%B9W@=9^)?5us@;*p3kG@=XV}ArwQoGqobY#c(|63`gLH6UflOQlDr5?w7}4dF$BtiQ@x3C4?0F`X-C)awj+aj6ZCYwr5s; zSg^VH-FjA@uTa0ZNmH$f%i&D3>T+!|W#Llqdt)RB_DzESZG-i`8}dRO>!nA(3})0L zU$W{&^S&w*bLL3;81n<`?{S5kCoZd4q{7VWnIP6YM2AG1P28=&M1_4W+`-944u*1! z&^@hl8vTTr=NZr2E+zVLu|E_1e6t2g547z$fW1%GIA*DAg&rfWbFxh`EsELn`;E-b zgZj+zrx(U;soKIA#;!HZ8tg)1ib6CePVLCQtEV-+EJI->Gk@*1k4%UGb93~LVs6io z4EBM7KXLQ6)Z?k|>{)pMzPF=1B7@jt{I0x8NsG@Z3%{weWY0P? zmqtxl;(foDx#EFF4)(Qzf3)|R4IlQ|YOrz~ZIYKq{jw&Fx28MyC_K$@hdDyWut-oq8<9o zHUB9pzh9WK{S12Bv>L3LMS7aWG^9TpOJ+oUEZ9C@fnc95_Km3FSDJXA43)onzk6F4`B2tRE5w)~ zY8Tz|j=suZ=FFeIbLX@ic6>GqT4&ynOe4dKWthVH!^ApeVekswK!W|v;3pp-w@7w> z!ddotrn?K*z1?@4J;u0sm1VEK-_r{+61Y9C6S~34XW?9Xwx4>7%CoaMSIPK{D^jLQ ze2B|u=bH(2XNYQysA;Emsii zzku)fYvDdUzFH-)a_Zt*?Yz<%RxeB$I_s>@>qL^iaAM52>)Xlk?CG5DO0vurMoHxR zPdx_ryXoBVJw5;7RgdcBeS7=(2b}%q9k1t^Z`HuQaKIPn^;&M(5U)Xj+N@r<{yJmN zh>AHx-(l(fSiRAtoyVtj{KTPUjdCAYzrw3R3xnv=U!1+m-aZ=>yPlK%#HA^ITFngX zKL;FR&*Ku6Su?k?`eAU^N(G5Ck2uf^n&leKd!Gi7?LvL-U3hFq6vbx!^t$&}OV2Db zO=`(Rc6{M^VrHplXA(o_jicKv&v85@H#i^iGtt04cfdzf_NjDp&DN zRLTwYlS*gV79(p0C zr9rRew;icpmioC@Zyln!aC`r`ryg_9)XF@1ZPtUmuPtN(v(I+~X&K$*DX}7oGnxs~ z5YkrFz&?b)vt(UUCEtxa#{Pc8R#}WbFs_LMz2N>KZ{nl7Da`Nd&u$&x5yGrmI9xa8 z#xIWBjn^Vq4yv)w(|oq;rK`G*jK%XCQq3zKai6P--3zPp$iaSxz|C@FznRsYe#Oq~ z)HnAhEfUgUpcg{+z116E;Xqd0PS&||OPARE&D*L~`}RM1T>G-)%UIb4g1 z!W3(vV8`bleBNu5<}VKPLbrt_&tIDyC9gKCe_52~ zN8bO<1E?)^{@lQ9((%4K>PUMWo@hms4mQQ?2)@HHUHsX2?eahk?B56+5c{>^cfYQZ@OqG#*EN|6B6mhzcJSgkJRC3U2%TN29N9;bHz=P@U>(*h8q?d63fxQ5|puWF&T7k=C zvgUN4r{uAayoAb4GLAaG+4tzpTK%$&zJth=ZxfS15C^Unp>AdcF1) zb$>oZx|sue0eWFsvYgPvSKElrH{mf0R-V=xnD_nVfP;4I_@3Rren$MGGg03r?8k8w zBXjhMHMOUn;9y@;;M-xlhF_a^Q;D4)c@>T!l8gm`y#T$?&Ku2Z=Y^0<>MDwZqxZ7- ztLCZ!yXq7NF)!EbU-j}7TUN``R1f zleR@?9w7^FuJ3JC&lwuCN6#oFjDvk+!9Vbwxj(q#Y`>1@^5&}OpFcAQ>;>qBO|y3u zPb^DemNgnx?E9idj2~N<_=vl){Wd=6Gx6c6y^PI%Kc$RAQwhk3K8^*VaxHX)_+h9qu< z&gVYDEu3;+sa5eu?{lyZF8CBfdO6zKKOW28=YtF9b{-3v!`chb3s3ADr;9ER1#biUc;a`%zC8bS zK2_KY&hqv%MaDt9!Vg^&`PvfL;(!Q8oOdmPn?2f4C=1`t+w%yVmCh~*j+>B zx$Qv4&ez)i{&p*_n&kKpg##iie~0#mygg*6ecWLc13wb%1?YvRO- z+>UvG8{tv5<8o|&9?kw&HO+g19|`sX^g`xb#~)GeY>Bw^I5%yZ@9cL^&viB)@0-*Z zV~483rCB$)QK!}(9`^ZH0rvR@Uu^htiK)9b<+9%)=IVADJ)B0fek9ln&>E*iRh1v_Fque?0rOBi=s1 ze~{GJBaW;e3HAc?Lbogbvo8WsrS>auzPG|V&SE-qQoqql&E`H=X7K;)m!gGz%fWve zAo}0?emIdMksB4qGw>t9UVvV(`^h8b^C}9=^lFeGoxFM>$ zOMW+SPYg8Luw%J7yYCq7zy4Iwd}l-7U>0A19|`sX^ui0HF_pc(PiEz9T6DBJb&V() zc28V!dPEX;!YjSEJDc>mrknkJ_FvCu_pzbqZh}Y^O&u~fImuqUqAjj%fj=M4Fh}uek9ln&{&BoUd0af zcXv-eG*x1OJ!5L~^^{rs2-5!CIPK#h;KL@qD-&B^JDYtj{%ev5pT6QJ+Y$AmVJJf_c*uK{p0Thz5qWG>;>qB zG1vabAHw#l-q2f8R78VJyDH)N`mreUwA~-OqTNplzH;MVzao2|R~1&w)#zr(;tTL2 z!Crt~DE<3=&C1&~PjaDZkq2pzPg|$yBoad!oPMZD-Zj4{@eLffiJ+1 z1bYE`;p(93`{Pb`;0B&Q6LtwVq!FU;>orw~RZ!QycTx-!IwOeYN?){ba0K>GB@jrA)=p z@%LiPBpB=;3?9lPH}Q7|ggWwg6i>19Z!$d0{+{%G(Z|DIMvLDXk;uxW&+|H7F|T;L zLZ))3`@x>zbzNTduqSw(=T#4Tg4cOo^{^*+o#$1*_%Cmi)f2qh(e>>-)lT<=JwacO z-!be7v;*!;+efe$Xua@uzS}ol19@^O_06gm>u>)r`v~?zGG!k%^ty9L*<`f9^Cq+D z!KtB7JJw&^FTYaH=T5foypFtw{MzHZ*+KP%-se*Uet*!fyU%$G_wm!Dd?M zt>i{cvQ2!6y_4^+|Fz!)?1k0TeiN@^qm2sY>InQkJntzfne;P9;Px2L&iAY1n3?)) zKk$)&I|E;U9|`sX`hOd#Ah+5ej>uKMyc>LH1c}{Q)>bv8f>Rq%`=NT?RCZrqnjdm$ zMMnDifrb0rDQyMb2~z@E}5yMt>N6wt=%dc+)j$`xH*1 zfvNPuxxxhTS+xJUSl2aHUXBp(k$^h`Uw|J8_5$Q(4_mR^two+W{G03WFg%mnye>WR z^j1l(omNml?4j`UiMkHxSTWiBJnQ$7|ChXQJmit`-;um8un}dk^;>J zR?g)!qvsxolOf-ki{ zM*{8)d;xwW*b5lnyYM%rCXH8##)7^!e!KL@#)H!@cM2v zzXOk!-SRdtxmy%FUR;k?3BADUJg@q5an*&-4|nkSz()e^41588B-jhMp14)tx`>JA ziS0Mjm&4@Mh>l^-x(oMza+XJXiyRuZfPm*6d8lu9W#gsncz#H2-Ffz#Kg&}E9|^cK z@CEphAP;)MW;Cb%t8fBY7ybUmq4>3A^83AZ`|bC$`>@k|zVVO5W*1(IV0o(GBLQ~? zz5qWGX<{HVh6MH6g*Y%k$^h`Uw|J8*MVNpzS?~I>~mA%n7$%(b<${}d+heOEb|3y zo^5))_Vmh@>V1F^@KnJ^0`3fa0e&RNgI>rn8=XBwq>PCc6PJ-VAI^xb@8dkmvw%Td zwMWXGm!n_gvg10v%CT?a;}Z;cs^B95cLu%yKN93YFC1U2In3eicBa^6=9+HW#?0aT zm(jU0-VEZm{p)pf)@6pX@(k~fdU8~3Jj+uB9|^cK@CEphAP;&W+ok`@GaGW4lT}M9 zB}G;+hb0VjZ#_ty!$RaR+}SmQ1$z*Yl}@rwTq2aA)8P@FQV-&!(NDWYEu}yWy}~LPhL&QO~P{y};`{ zuX@!=>oe9q9ee@sRKZ6A?hJeZek5EEdO`m7Hw)cIIb`+nsxMEa!inV~7yA$E&lAMu zRPVD2*q6}3YnIpEcd0QfnT=lnPZfM5;LgAoAP@Ee^n#c7k}GvL&yuKKr=}*I-c67% zfaYJDp4K#YHfbF}`~rBY;3ENd2EG7!uos{gGV8oj=@0Y=|Z3yxo(EN}>-B0f_7i$v4 zFMy{CJ`!+e;0urkdjWdk`E8SrMd5$)qN)6J4@nUKJ_0eV49v9N|+4lq2<5gn3yw3Bg$9Qob@eAOof{z5;8TbO) z!(M=17_Vy})Y5EE%!d3K_4C6lg8UTp_jM1M;ffbaWeDOIz*7Yu3Ai)x1;~TF0KKrX zV!rZ%OJ?_LdVOT`Nnx^ZFHOPo zIn^oe@t z27ZODTk3HAc?f~LpKi0HRJ^02Qj%@0wN=yP)a#<6T%8y}u3`@6%B z1bYE`0le6=?YvkTZ(Kb#qiRf;CpcdtsVdAMt(+?GLdixiRJY6BB~CHpDN0rwTq2aA(Ma9|`sX^umhMyCZHF zUuW#5NNc?q7enap>j7KBtdu3rGKgzK`~rBY;3ENdhCKL@U@t%~WZXBX$#*!Nzy5yP zf)|%3=FsbPsO78Okt=-(;@S|u0G=xNNWh&T4}K)r3(yN%iw)A6r={fwg@tQo)=B3e zUmyCV$4zReYe^>mc0N_awIO~1JXP?KfIGAI+3rVzy+G%Sz2$u=UvKz7yx$4mB%%~g zvihOzeYfHHrVrWo3fJRRB7ZEe^StVjClKcm*M|57@KnJ^0`83V@FT%qfL;hqY+f;b zNhxV_S)}{TI+{@#${jT0@&$H0K1(7~QmVKZ;*$4X~<&+ zdjWa@`M8dcS@P-UK`VAWL0&1uJ0q?Q@e9C}>F;ac3&@uSdjWa@dB2d43-^iqRfu;+ zTpQvSfGgAMHSh)GWrMu{y@32;$omC($diS5XT*7d&kvp|^5&r*^2{Os8@`{hP9l#P z@{6G#@^K;F8F6hiPZfM5^aH+tJagd1LN5Tvrt_H5dB1QyUL|m6Ugvq$(|ODg?~J%M z#4muS3O*99hx~lVn+JOVdI9<0ke3bpkjD)1&WLM6`~rBY;3J_Q@CEphU@t%~AkQ4~ zzo8%Ur6JxKacziS0Im!^68ZsOfFB9=0`vm%*&(kF`XMhH;++xKhWG{G%HSiRAMgeE zkzg-CFCcFo^4Xyu^1uDt`BV|_jJP($F925t9|`vfd;xwW*bC4L$nQkw=cDu4;d;DE z;Lg0x^Qx!wFd^Op0{lp@7oZoAr-aTQf_xjugMoNw#I+%Qf##_K zcLu%yKN9Q(=mk0+9r4?cgLr4ewIP0i=BWaA2EG7466^)&1v94f6oM4=b-7cZMAJkzg-C zFVOxF_z&=&;{CzA#(cv(fIK`mj0bXHFF-HQ-`Dsa#d?7E6z>n_HRc=S;rGFF!+0Qv zUp`f=J6I3!p5pzX=QZX5ejhwHj0buFdBt&`&p+MnuClI!CyRPsB|WcswWI4XUese9 z#rlSI2kQa-o?>2OzF{8V_kmuZ$CLbKi=C$+g1tb$KTq~P^{9KUAn^R`Do@qduF*llwIhB4~ zhP^V5|_sg%$SifdIX9TpRjsn{y7ceebFCcFo@*^3v=fOa{GveCNA3Rm?k$^h` zUw|J8-&N?h>Ve1)6Q$JzdGnAT33)IO?~J%M^aD>7d?et`z!%_0!uK2ciAj`&Ctkh4 zAa5S>BOwn4;++xKhJN6wf{z5;8TbPHNcc`fzt4}CZ?JtFOprGZ`H_$Z1M$v?YePTq zRKZ6A?hJeZek6R4qTkn~Bt!SU`Tu%8RpiY>ekA0@*9M*{_(;H=fiJ+1M1Nmj z`LRDv^HB}Ej$+)r%Ff0w;5xKkK;As$M?xM9#5>b*ZQ!Ybj|AKq_yYV$w7p>5+NgWr zA#dV&u$M@=VKbP??hfIFI^#fD-!H0Lffaiy#CxfyU6(4!_gY2Pla^4UvaN1-i*R9M$mbQcG!Ob$AXrKYZJ6R+QDAH@wK}X zA2_&`lSgZEe9J$FlEjEZ`QjM`T;Uu99(G;v^X%;#?Y_ zeVELOGvAsxC6Ejn?0YBe&^dzra%jKHjnRiKH`|s9{9LzBuCq)#XeV%cjK^ql%c6j* z9-Zztq-lToHbHjI)av;U-XH%{-dSS`Uv}$LJsu8$@yE_qSjatahJMqXX)u=Nx;%z z1*xlA!IYfAK2nS1whkog<;#qneM32%yqfgD)AAbFpBwu?(f&k{Akzh7k95SZK|ZhY zmYeUWD{CKh`u7`YSo-#hRLe|W*X33JrTeWizY@XYyK$ZP;I=*`YO^|hpU&_8lgIUU zr~6^wQpgvy3|;Ou=?dw5es=6zDyST^E4i>XzjSIx{z=sHE3q#RzjpL_#5>dV{Ep#A zLObY%O}}nQUy3RvbLWcfUM-zQOs^&7+nCPKF1Y+Zd9)a`KXu~U16}h_vY_va?HlA; zI1Z+R^tt~BW<$wvfjh_j2g7kK>@{jz$()m0sNiXfj~xl2m#oA$sZot|f+ z#e?&lg^UHhKio%Gzpp(e47Sq0%yjxbySiSF-!k+4@-vE^9v}9z#&`uSJp(>yTy_oa zw0^*TZGy@{yXs+qVbwpUvGWx5{7UR+jdrjXpci%}TV#$YGbgFXH+)$ycMg19R!;gs z#iJt)b&1vYlB$(kYdBjIbS{p|+{#f}yti!OnI9bN+ehO+dnZgf>^5|&z`w`-CsFGR z-gm?c<9_*-3s+A)aH1l&)AQ`8#ej-HNlSt65BIV3^ZJE-69;v=UqlzzYwTwY`GS@M zcQu8JM7nkQKCz#*pmNYIVbhJbm9_Ue{XSs7He5&05_tjzZI5=q7jO)F0eZo*h3S|1 zkDizob;3w$yH39A-@Jzm+JCsJb>Fu#o19YcbMy{3BOyu;jX%7RBK9W-1QpMABiN6U z#x*TsMz4>)BY1uzV`HcM;qL^`mxlX0QPV4_GI4yTfA_M1oSEud#MyD;di=_+`a?3_ zfAo4Qq^8C1`tN#imgMy0=bZu8P-Jrp(}SvnwoAKARS4LN8#SRT{5%3U*id z)I31o`6j(BdbntLF_+(SpwDCfQ@WntF;^lif4bM7PRqkStNgA{pTFM4?`!PmN?(uP z@$oLM*Vs3f-}UM99*%80{D^F)*Cp)ZNnelOG4dnvYe%04?u>f)kzg-CFX&f`%-*S7 zO4O^H%59W{*?h5*g}N#O%}y|TZCz3v|H(7lyQt3Sr>VJ?9uYO0ko!3g?-9*I(N!N8 z*Lpil;P;_SY|lRC^$>yEV?6Z!ji~2WZn|)3&S(j(PRpbH*Zkz*{H9rQ2lM>nJN^FA z{t#S`Uzu@7rb$G;BcCU~_Bc;}U!$I1X|b$y!AFkH|M7awPY%wzQ2D-4&#z3P^5y|w zfFG$nPJ@A72&%NQ56re;-}4vIRw5%SrjZ$c8iW?Q*K;SGGx)A0ae&)yFEH2_o90)^ zO#b?2WuS_{^G(soRnBZ>bEoIavUjwE+KPZF!-f7<8&ehG` zpRG<6__^NuG`&)3_F{qCyN z^Ll~f7T3#id<*Rts!W|VvsraPz(T*V9M}usTSDF-h4+rGVF4WA&cGMoM}oaT>xC@? zn-4yC)t^+XywfOrG@sMbE@ykv&6GiV?{Q!+AnpzF?wa_HJ*(K80Cxty06!A!1zIlz zNcU9Fa4F%sSBqE##Bbte6Yd&=KmNJfr%$`>du(;>>gArJdI19t|#06!AeYg#YN znL9)&zi|-r%-5md>%0=Kr_nKWE#Dbjy#v-gthK7Ruoq~as@#+z6BQby*m;Bd;8n^G zN-lbT#hmau&#T@@T`h8POf?7Rfja|VfFB9=0<9M+4JFH6M>lfjN9XPm{dIzqI{$!W z?8cFtT(un8lI%+y*bCs@LQYXYvsZ3X0|&S>@CEphU@y>mVd$%ZWRH=$B>jrR=d{C3 zoX=0E7slR;=eQ@`obBKwL0~U{-wS!uRySrgY0o6Uoq;dFj|6*x)(f)9oAQ51jwUOX zop}Cv)KkukcAV~WJAMXx0X$;JQ(SI!*`{td0qzWZ0e&Rd3$$K1cILXGN1z3H=J$K7 zZTElpfbD+Yaqa$C*b9i~ggocs`xP0{rUbY%@CEphU@y>mA>D1@>HQO%xTBWj6zbOB z;bL8Q*lyp$UH~r|^02=%aA)8P@FT%qp!EXs<{>{4@?ap|8TJCrzwRs_>1$PKccmGE zUDF?=SQM?px5ZtNak?1wrMYU03l&=mlIy(6X!kYv=_*<)9tbHyjIE zLN5r~9_{GwYw(ePI|E;U9|`sX`WL&oav};BlA6$R`?L`^IA)`tC~kNe$XVYf|Moef zN>1Tg1y3KP3tT#W;hyr=1A+So3p_ue7a&*A(ojKJYFl9ntB(Zj2fZL@d$cRjd|=qS zKwRK)p&#@Djs-2Pt+`o`CjIL4_@EaAm4kM^gAbMX?i4(31^u8Ga4cv!d0A?puxDMT z?LX)RLFJ$w;umlXJ`!+e;0y30!CpZ7%PA{U@zc0f|gyy8(}X9DhKWGJ&I#NOV|s7wnsbK9|E2#_(;H=fiJ+1g#OSA zcS5d+ep+foG&P0~W@w4;HgdH9u@8IL`-uB*+!C?CSS5 z{78bzLA$Q5*YG3ZI)awSzaeOQw1XcB$AXr~zaeOQw1XcB$AXr~zaeOQw1XcB$AXrK zcSd`}FMy{CJ`!+e;0tIEdjWcZSH4&}?%glrNa~w^^a!rQuY@0oUpxA|?bnQJHC_0g z0KPz9kKb`u<7I#^@Vh>JzN`Fe;0yHi_#JnZ&j);g-}UM9@b}X7{EmSy@M}k(r}0L_ zwIP0i2Tzs3b>K&Wy#T!cUTj)BFP6^d;F}%g6g_Lc!0!X_1;`b&?5aNm_=2Ev(5|cB z*T5HW9YM>kuGhd91eJq!$jgLdK}+BZg0@FH_6bn^!4~1cQw8d zxHG@&)91SyF9Y0}z8=5huJW&eJM+6feIEE6UC-|rxHG?Y^m&>ef_P`dwejGovOE;v z3-BYsUVvTzpO4PJGtEX9D_=MnFWxHiNuU|xfdg!aG};76)#-(P~x7h5>b=4Op+ z-6iz<=&^H`K@KDE`vBY-{RJ%}Uu!&Cu-->tIk+y(M?yWnl8#5`*B<9-J`(Erm2`X~ zzxFs!^N~=`ucYH;__fD*nvaBfeq~qZHO)ujCkN+gJ|FU6Al?~qZHQl>d8)vjfiJ+1 z1bYE`fzFrK+5BQO9|`x*ucYxte(iCd<|Cn=UrGC~`L)M+nvaBfekJV>;nyDLX+9F_ z`IYqdHNW;aPxFyb&#$D{Ykuu;*c00emFj&cGMoM}oaT>jlJ#V?2<9cxTuPbo>JNNWh(eFTjrkdx6#qh&#k{!+0PE z_5%GKkMCZ5kK#KK-*5P?qV)p45AgfoxnVqzL&q z4*W>47ihfzKLyqUyr+17Ft0J+AP>I}o*TvkIar@*y@2mttUFi_@SfuRq31Q`0e&Am zH;e~zAQ$&ZucN5vRnqgCS3A0%&MS^}6zdz-9jpiRdy09D`G$Fb-v`f)9#4Ws`Pkc? z;87rcfxdr!#~2U4cJz6~FVOY;j`7_1wWH4?eu1v%cZ}bMUpx9d;uq+8e#e*x{Mymy zI~%`%{`7o9-aO<-LLLmnJJWG(;HiR-1l$?;0{lp{y&$XC{Q6MDa)JG=h+n{c3tHm+ z5wtzpvGEJ25U|91DqwTA8R8e%3IYGYdLUqPwi)6V*a`vv!MY=0bG8}c7uX5`|H1ku zU~{%vXX6*pkzPlUHxK!dkOu?t&U9QGc&gwd0e1$z06!9KFZ3$XEgbd_-wF4@uk396 z0AyQ8;@jgQ@~cc?%Ko<(m`}f7FKL{@W&KgI5jA1A zlTMLg`sWTja*iU8cWgDVk+CKEd1aOwM~@T#@%n4l)I>4J8xFaRsWS?8tiMI-JWq^w zo#8_^SpQzI?!FnxEVTK2Yn&T-F(%AQF27xolJ;P3lC( z*L{wo{}!UFd*)#1oRtjnphMo%Ue}c4^-@T|@Vdq3-xC@4s;`mUr54PKRin;74vb>v ze{t1}z8y)1Dk$BFkPl~n=M66YufOX0F?&eQlf83|8O^hbhh!XwGp~w$rZ#=HXVyiv zcpMTnA;`B5d3|P2UeRrG4D)c^3E8P4IZWNSak4?l?u_iTUJBJx$xKWsSw+Hy7r1*g|pP1zJp*!{G|cDFIA#c%^k%>1smfb$=lJ z$FJMaboM#nK6sUirG38KRr6)#@@hxd)88TEgdY{RNFO6RuV1=zt<{EX^}C+&XTvU1 z-Rcs%IW~~_Ub@N3|5*@wUor7@s^c{`lje8RZ+J{MCfA3Jv;31NL&|&hob=+m16h0Z zqI-esVg`BYA;0h3Tl@brpG7Jb4i(y#NhDX_d|v$0iPRU%4DRWCgtXlr(Rc0aD5kBb z$zw%LlT1n)=Jj~+W(N82A@AFl zDG~p9kB+WA^>NAJD6-|u&ee8ubIGk!V_Ob5Z6dp+cAXg9e=QUHLOJV(louK;zYH@ft0 zcv?)Fwzq8^^m-F{@iy+uu@&ctYv1QLeyu*vv^sm;`E%kFD^I3u>hFTHhe^@oe*Lw! zL=uzqfxfqfttE}WO;U#~KTf2-Nz6C?x|2bEf5^*Ud4k+GDIzzI4Y58Em(9efBp>;D z-ib-?u1^Br#xv`dx@`5?w1-%9@40%@zF2~O`n&CwHiShmk({C7w?FzbpC@J48Jss^ z&R&j_h!c%w=1s8No--^bW+dSH6_O{k@jCza8v$Hu@$@q*bQl?9Mh|6c^n+bJi zh-!?gvxxOEW{i(g?2V;q?D)R-H%>a6bC4LxncVzk5kj!PGxqVser@!A1<11v`TR=6 zwef35pQpdCgL~@)NnWcVg|=HI?k7hRNt^Xdx348cF6ND>#o9b3@x_?_GIm$l@nspU z9rB;~{66Mv$$#FXDZOS(&7g2iQ#-+4hg$j4b z+Nh!}SGS)cqsQm>k#4eMB1b;b?3cQMl{anFMWGR1;Y9OJW!;tGe>g4VeZym+V;aB1 z2mNYk`pOxjzI3_j%k5n3^8k5Rub~&J&OCLpdU1?=Ne+6@THs4E%Ox)zejvqYPtqG@ z_(++R7nnEc-0-z#M10|uVVPRjIU9ss{L6l*YYdRzGO6)$0Vl=OJ}7au5*PbPKwf={ zy5fM7Q(3)`+Q;uk)6iVfO{-;@m-#{B>}!-7U!}vi7|48GKFFGtXJq{8zZcT$@DG;|+78^ZLc;cQXxFC<#_Tay}`bbj>z zWZ*=K>t3CG_TvfXPEEiiuMd72-m~rXhm0@dNCfG=mi|7Qi~UO=Ptr+Bp`>^gs~7Hk z5s!>C4kJNTo;54QRuP?npWoIvXL2WG++A(Dy<>bK;ZtR^_st{RB%bRqrYcZOg};f z&(tZ`w3lZ}Zw(#6-DJs*@5_!}cS{FvA}Ren23xp({tJ-LuSC2vzjpL_+8+YFFwp);gVopvWadss6H&=b zlBzc5r?`RzQ+9ez@FzzP_V+tNZf%tki6$>2pI>=qB24O;&)JrT(>3BpiS*(u zxBmA*O`EycF9-6Mz1|(UV)a_qUVvUOdR~%!eeG>hk~~L#!J`Ar_Eytj#)nf_d98~R zB9&q;>or0}uDY zg@Z%M_{{qWdJpB8iZlLOmT7ZXd6VA-yxbPDfqc*JKl-eDGiPGa`bniTLpj=N%V!$8 z_9C|i`fu-_ z%Tm!DkuSQ1?Sm5Y6#Ab(i&_R368H`ZQ& zUbx_JvG3d2X=Li8X&c8m+Aw1IB`1~}__6YC3>W#F)_Xr`m6V%lyjP9nUEQW0Z~mGy zASj|n;g%7(>VDEwL{f^uep8TVRkHtKH@_g(UVvWsF?)y4fAmD!wr4_nkA31sUh8PpgKe`163^OEnzz+zImrg&&J41iLVOjKawaQY;$mMb$a{XU z^8Bp=d)8inUN|r%|HjEDT+;WM!q*CWduCw6qVQ*8d)e`Q3UOOypnQ@POUa+T)_nmn zP!oDIK)#J*dG6Pn+d+;*_0o!OeXq(e*gp&Mc202pcvv!)z+Qk}SRE6t@bt?`rv7c{ zliKL@gp3Q{$a&(=&Xc}Qhs}(t_Azo{CF$lbr!zxRp6ShRdCmPf=iMu#?TZ;h>$7{_ z8BQYDrwj7t6^Z{!*A8J|FF-HMQuW+vpPWlR$V}~)+33KW@0onbRJLP$l^X}t%IPJM zcSEl=eLQMFN_y@n_ka7H)A!>%&?dbEg{~GoJ^g?af z|JT`>hvk(1e;ipFd$!1uButhFgYevB$k${G4K0?CEbT;ST2Lw3Mlu>jLYNj*jK*`T zH26wmiR=u9V#YE|+5P(cu6dp3cb)6%O8Vzq&pGG5Kb>>#=X{>ed%17Jv0<(=9VZijnt{@YS`1$5#b|7v5YV2Gs6g zYB;2 +dEsEww%;Uur3_&cwd7fQ7@1e-UV)H;Ba}1^tCrTH?_xH<@tT%e{c2s zyby6cG%s~^fq`f?`eQvM-|co2;7HU9 zVLbed7P9Xxo36p8F|BTP1Eq=c)Irc^Pmd>IL#b_tXb> z?U%%f(>E-;I6Ipu|JVLai_;HwUoLYOo;?}8u%@)=R@in6i8**>mu6zBb$;38&LYh}DJ7wHKgqg^ z#5>b=$LyV9J_?RRy+B^rm%Y<}k={|UVgK8J!>+n{g|=DxC3&ykC|j?L_OAbJS9#Pu zY)_MpVOp!DrPJmFwv)BL-`~G?fsIhF-^hAx#IJ12{799Zr#`Oc8^MvN7sv~HE{{o? zxbLE9Fx{!a*aORz@!8IP$f6OZDf0GN_woMUj+7R6Jc@j-#B2Kv*zq>`&DXNcq+{L} zR!kSHM@jq*Ss?)lZ+=kt1#l$l1@gk>Mt2T*9Vt-anNLXcvv|EnIEZMQ{`S+QtL5Fq zoulf>0d3qJV>6b>X3aB)M0_(su%mI$P0FPKUUvv7N*2Y9TQvKX3$Jw zp6~9}*6oAVw!?o~W-s5NEj)bWZpy-DQtwW}L~BiuhV?ax2Oa{y0FFexKwijLyZT!E z{Y)j^xq7Q?Q!F-$7RS$z`K_Ihf3BFA`oieG_NCdDE{19L^2Fp#ogBy26RhJ&Jbqup zFMuOaFOV1fcRYE0zTBsV%XhX*WQ!2biP2k3h2?~ffoo2k)cm;1=je$R14NHb ztrKo#8A{d*B_8i<_yuqz>IL$GS5j$S{ls)hyG0iw{pSr?CH+P{O}^aTS`5qaEXk@} ztXckHhdFXw&^~!yszlyfAMl9^ME7w(tThV#y{c0W^ zegPbbdV#!P(=RcgBr;CH zZrr{M_YWG@Stb5yIXNcJ*<0Zkz>%mI$O}7~XKtDQcApY&yv2oPKa5^2Laf$hj;%LT zUY@<`+NnF$x{`xR{qg^{+ z`EIMroHo6C3D&12o@eW;^CnM;lkf}RNYo4D1%v7Bu3bB&;{ygCxHNYE)NrXac`uirsUi< zOf@g(YvZ474)+a}9naTEINsAyrR$O zT`D?W(SEzNi|_o^K$j;fI#0bHU5$EwWuMn)lty*9ol)iML%&m5|LWtv2euj?_G+_K z@2~7LI-$zWQy;&Q((;wR*TE{sQ|po7o#7Y2k*F8cc_DE2<5q2)y~U%_l6;e~dctP& zGK2QULo}~@eL3i3!$yL7LA_pecueHn4`&=c`FS`jdU2x3uiHNPeC`kWDn5Vec0=L5 zpW5BtTjhA@xIQ%w=XIFuP&==@p5XJRZqbW<>iL}4=t8Ht#zV^ai7Nh~ORHkDYEEu( zB{_b3WmVguf2(S{oB9R@yI%iXFI7u0!ydGnYbiFq*aJ5w*H{R>sq zBV}iH5t~CVR{8qWxL?cb+lehLvulTR?JrqZo_6R%&?CV+!!Lj%Q7_PL&XYAa+BfkN=YKe29i_RWdD49T z_sy=Y(M*h5@W|o!$C}im1E1V4$QZ#R&4Orm-Av?eYIidA+4Lw@>b{5o641i8(u`mR~O%YHGM!$S7YV- z10I4N3Emlg0UU{Xfp}vd-?d#>FHzopuixu-x{1_3wW#SY`z~r{7W{XGeXOO_ZU{Q( zxWho$e4p0zj^kh@9>1^Yr?M@1p|bPT$JIJj^hof|@C)Eb)C=@8cC%TNK^wOS57!s_ zx(uizobnA0HTeCo=EU|o-)!vOT&!KWT$^~TOq-KpJUk}0z4HA0`+2xFXzU=+Bf&ev zFMuOaFA(oac#ZUvB|F8NtS#B8Q_MuK)cywUOaIhVdk}OYE3lvN>^dXqw0%3da8YK{ zx-mkDm-5c|p-Ax%=#k)^;TOP>s27OW!tUOR?BZb2SKswk2jiL|?tRZeJ-d`>Uhe8v z-EFCnnDr>K;h@NWv^Cqe?t1u)?)n;b)~h|*;v0b;3Emlg0UU{Xfq18V=j}Relqqa~ zc(bs}h5o|DS?_I-o1Spb-2Hm$iZP;eWrPUn-BV6JdAjF6S9CaSc$?ZT9yLP*dL(#f z_yuqz>ILG3bzUAA_tQ=}@`uz#segBo3wNAvH+Ifn+MzcR*CZ5L$;D&$#Dq`kDvHeG zpCwk)=>(2#jx(Fq$y=gFf_H{r07s%;AYMa<`u8Ku4~l6oCfzma+*b^-{n;bq;%m*+ z4Suz@8hs;9#KqZdnAS~3ZLMG3!ft}{{7RdCweDb?$);=@D4b4Tb9Y<~CoWfeA z6T8h-u5Zl0-y?LY=#k)^;TOP>h(}&HWHsae@Y4BJs&z%^hof|@C)Ebv?DKc*;AByYqXPiV6gw)ni}mzpSp6Uf8bcr zsc=pGGnPYS(!-10$JQ94#6ur~P8B^8yfgd)I1=&53yZ4vcNkVJP6Qbje(}K2MRc1J z`SPRP2JzaYZjEh2Lu9z`-aan}1S#?08_}tvM}l{TUjRoU9(f_ze3@O!hZXW(S;)EC zM~2J(;f5bu*Y%SDn%4=hpUxA(fz6wC+%`*je&E;WRM8{BJHs!4BN30hFzw{ovkxC_ zmjea|{&r~QZ0WPD+C9TYn`GYH306=0uM$(vYw|s=1}pKvL+GcnE%icW=c$jYeFf-L z(Ide-!!Lj%(GPi{>{)z7+tN_6==sjj-@Y9sdVVq6Pn`1?Yj>_*pYF6kjtmIu9ru@; z^89#Tqf4dNA@DtaV%XZQthB;t`5*5A5)F{NC0T9Vo%biP4=Sm8P%*2ODY zOnVa2c~`rY@>sS>$;_}&UA&yle>5upztE|oM}l{TUjRoU9(keL<^96ruhYWjZL6Xg z<#BpzTDLm+{c-Vkv!MQ|t_Nk4<>3w%jnkBP=H?p)|6P9l=v2`o!8^k*fFlu)yx>=8 zFec!7mfVrPHlyR^AbEWE#CscSrO7e>^j#8scAv1R*K@0|(&36@?flw#mFqOosiH@M zcZOd8MpUp>$jk8Ef_^I7QZH0?p8B}jFN01MJrcY#`~o-<{g4+X?S9_Oci1IywAs3#pUTHg zlV;ifEGU1Tz0$HX|1p)aPUCZ{6HjC)*XQ)_c*ehgP8B^8yfgd)@u(Nb3$53engrg> z7jE@(j#-b}FUDz|JI|fwEZ25@Hr+ABQ@MZWukkOSQ$>#i?+m{{Jn9AV!mODwr{CXq z5&8P7ha9^%RIKUHU~fQ+AZ_5PgNv40>E^jd&xd~joho`HcxU(p;!!V<7cwmu9IWrQ zOLTPYcy`3sD@DY*u$|lgYAy>i4y@T8s?+7655d2HP8B^8yfgd)@u(Nb3%h?>`_&(d zSIc)Xhkt3))=he*P58KEoQZH1+oJrtc2b@nd?Wq^bgJl);GN+Yh)2CZUYO@(H^9qr zuM9orQ8J)#XJkQb8AY^`^GXs$TgAbR78S_vX6!7KAw=}c*RvE7yUI=Xdz%l>^|<6l6hiXI8x z8GeCy)C=T=`@i+0leMc!$yd`#qm$nALV|fZ|_3 zr-~j4-Wh&@c+?Bz1>-&S%a&$b6|o8Piw@j8EaDULr}?G1%djbbtc#kh^ShjK9$z53 zZx;9$(5a$Ff_H{rARhGsd7+Q_n3wZ!cF0&4*TKDi2^BqK`u2TOJWcsN z7_NHx@a3RjiGKl|DtaV%XZQu;Q7@1e_WyKp)s&9~VxV#D(jHxsMd-hA8cup~zv0aY zWxQ<8vUnRg@zeEr;7G*%)UDdzh<^c{DtaV%XZQvBr(Pg0beQ)0Ez7re#9x8hxBY4z z7u9`@#yD?UDxVfj^_o_+O1ZvYWLM)pjpGzw8~z1!s_2p6orwpIM7=;>X!`8&p4&G0 z;yATKn3QE>Qw^Td@tt;~+N z{Hz@n{^Oy5WjbF0`fJ74_OE{doho`HcxU2)BT+Aq7woogFD|yR`l)OS zzfjqE>f>tPF1|MW3+PnQBf&e<4>%I_0(qfJ#;q8Whik=Avo5}WX4uFj0i9g>OwiS1 z;34?h@GqcKMUMpUOgwNT>IL$G?IFAK2Wn;ukIl0zJs(9&vn{2GCwoj*zJL6_#@B{_ z0i7y(BzR}yfg@2bkQXLy>Fef@lPuo2cCP);C42d@&7jfeb6u2pysz=K;a@sDO@P6&K$_!rQrqDO*v zCLTBv^#XaJxP5d>&c_F~GYvQ)+XN2a9-p_ma=A0 zNYo4D1%oI1=eWeV2>o+T^Jj*|E9*$%m%;ChuMPhKI#u*Y#DiY|N1|RJFMPdivGZ5g z62;KdL$f#84U)7&e~sT6UmN}fbgJl)Xa~OljzqmcUYPwLWBN0r)$(cY@w39`=;{^p zeE6O5wc%etr-~klc<>A0NYo4Dg#oGiFU$)}lEH>{+Y9E{DB}fv2>n#Hg?Fy(JoRz) zJPY`p@wMS!K&OfxiGJW0z>%mI$O|Dy661S#t`)vt4DyKV)=PPQ;Me$_@wMS!K&Ofx ziFoh};7HU9&c_AXJ zIRB1J7DaKt4qKFLs>I{>HGXG&ZTJ_^siH?B9{d7067>RkVNCG6NaLG@!n9Q*ACnF` zUkLAO{Lc8=@GqcKMUO;0_yuqz>IL$`i1qHn_C;jNo3qaq7nOu7<1-?7+{pB-6oKCv zUmN}fbgJl)hzGv_jzqmcUYOj{F}Kcw|B9SBT>}^B>3%PTWw=DmefKC-X68*t1fFn^akQY2WN9ESOcUx4y`NqyYK32J&EUP~Zg1^gC z=E1=4jIYf-R!%UvK0>N>s_@S63*bo93*?3UK6>{{qR%SN4?jBdVBmMg*M@&Vty6_} zhF<_jqFx{`%o|je-q&ZQ5)XeP^I+h2#@B{_L9J7TcZOd8N1|RJFMRo^t@WxYy5CFq zWtay8zcaoz{0nNGD!eoN0yq-&0(l|9BHPr}IYN1U=&zXv1HUuAHv9`}ohrOD`~o-< z^#Xap(=~3wn!P&RVO8~fYCRI;wX&^xUL5AZ!0(K&4gZ2#rwZ>3zW|Ozy+B?tSzZ#d zyP8g~3*X2*82Fv>wc%e->r~;L;TOP>s29i!zSV7w@@r%(;}iUvc`)!h<7>mepw_9v zJHs!4BT+Aq7j9ngkJ1z-EAhZXmJzyfgd)I1=>&dEw*ZYOQ~nbV-TF z?`!74!0(K&4gZ2#rwZ>3zW|Ozy+B?VY!a3>-TS!mec*k~JQ(<$@wMS!Q0r9To#7Y2 zk*F8Q3pbyft=`*1_deVGaQXCwv!rspm5pn)9;vePIj)}XiFq*aJL7A^zo6Es!aKt+ zfFn^akQZ`GH^*9CzN1`^-G`UfF?-J|pZR|(+J3H1mHDeG>bIi(pQ}@4o~(-ct!V$} z>QtGJtD=4@+W)yaRp$MwsNahAt97asou}Tfo?ndlk(dVqzcclM+P{Dv3Emlg0UU{X zL7f+>s^|M$ohtLCsjs`T&!4MPWnQ+*`d1(ST%9WOzp4AH?DOa9RGDY4vi{Y_KUb&9 ze0J*oD*LR~saAGA$JO)ZF+URXVBmMAUQqiN&?CV+!!Lj%Q7@?Tf_mOO{-27rYMp9D z=c)Ir=K*BiJmyDY9t`}>_}b_Poho`HcxU(pa3tyl+A-e~ahM;8c`)!h<7=ZGI#u*Y z@XqiH;7HU9v}67du7^0xgMr@}UmNYvsiH@McZOd8N1|S!9e#A~8`nb|{Lc8=XopS} zJrcY#`~o-<^#bkiH}ZVAZ(I*?)V?-!s_2p6o#7Y2k<|4b$^sV;t~& zxNlq!?a`^CM}l{TUjRpS@;2Zg#^8I04Gu{{nwBx>UJ;Z@u07s%;pdI)%?*qQ4 ze190%j5pfxe7J914{^Yes26Al9>RNv_W|EizCY@5%{busaNoEd;;8F|s{X!Kk8A$# p%C_pfz_eQ!6dC#Q8Cusm(V3NQdMsCuE7H zR;XZDk%ShE3X|0_aV8EwGCzj1tK+14Uv=l&RJfXj0Fls5KeN)&20)T&zB+PKP`l3eR7-K zo$B*6bklm{dqt~(czqOGd@It(CjJKxD*Y;vuld{5ojCK0A`VXEF&}>Jw(MexNg3zGI`$(tkIMuh(7}2$NcSYq+(p8_4wp!K!)W*^v+C4V6?u>RI!*4m zCiFV;*RgeJl}jC~hgEEUP&ck0u5NNv_mOK819Zn!e*8h#9NPYG-Ds;H+Nxvf_qjdk zFR5btR~FS0%=>hK^^5!4TDiKm&T;qQ7yIB19H2j_8~orrcy6D+IQV7h7-{U~7t{&e z$y@*Y+E`vDG4Ash#2EI|m*Pf49W5%>PmqW956|ElynzGs2X%uUbf7!jSR|fhcuo3o zULMDA)VF&;;=<%8ez98P_D_z)ojRA*93em88oYr6^apzI107pAIu)>Y<@>oYmX~iU zce`IO_d-sQA8-xczyb77H~6uYBlAG%mC(p8Hb?y<4Tckpf6N2;L4MF@@CH5f2X*`3 z92IoM6rN>rgt>!xfSe*fT&}?Z`h&W0{cw4H9yc^u$K(k2UTcNlwa#(Bb9FICG2bwE VFb}vn1=rvW9H2j_8`lqb{tZ~&P_qC4 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_dimer_ghost_fchk/na.npy b/horton/meanfield/test/cached/water_dimer_ghost_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..f28ac0fca970a163e443e8e1c51eace1477cccb8 GIT binary patch literal 1648 zcmZ{keN0nl6vpY)iS7gN1C62)Olfdx zC~B-mK%;`FL=75T~ves$A!}8Oj`$ z>p5^is8qZlG)OAW7k|9Q8*`58?MtT!mcjkXI@3Ga9m&5KX#7&x(W-l(Yx+PmD|XHg z(~BZKK3)$tJgRB;9-?|Kxb|IBBW)%5hGngKTC-cb?(zi-Ji%&ShRlo^&2+T)We?>Y3ZbOe@#xy!8Ny?}@!O(MJ^A%|M&L2ucvfdhiE6&)`Y+Gp zS*0sXnUrKEkNR|3+wIxv2se(UvtSxHACdb zKfQ)h@^_P8CVjCg)pMULYE9s6&q;}-sqE@vjpQgz*p}FT_?vWsJgvHMaT)%9u>K%7 z_<@eCWw=opD-lrVh~~OX>QTb5f`i>Al9w#-8!Lk?x9fEpvZ+Gn?s-^q%{9`PSu0(rHInKHv=;pg+hBe(;?L z)1dK%i|3W3IL}#8Kxf!_TZSW;e&={?Y?)j_$5#6eR>!83r#_iC^Gc30ou#ck_79>q z#x-~Y2j~xSgC2C&oh*FbQ~8!EKU?#p-qt`xw^GMQ5B1S!aTENenExho`c8fCHSib9 zufL+otD?)w<_BDZH*kRdKo5SPBi}2YSb1I~bOt+>o9nE!eCC)XO+o8PRgX{U+yVph zmw2STc5^+?<`nY-uE85PfF5##ALvY`SE b58USzT!S}ofc_vicR%SNpL=VH#|!@fROW(q literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_dimer_ghost_fchk/olp.npy b/horton/meanfield/test/cached/water_dimer_ghost_fchk/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..2459ef77ca0c6e20c847d2fac9c7bb2b8f05b9ad GIT binary patch literal 1648 zcma)+dq`7Z7{-@fAk9lAILpb>axT^%gAr=e&(gf4)>u{)%DhdQiPLSSWoDq^AEoA{ zKp_Z4^MZ;=X)!s>Aj3=(l^IEzSfY}Nki*2*QOKbA~tG6+audZw1X_M?c-gNZ3$bPnd&7WQ>vFKg$-17xv6pObuYnpO|?tb+L9So z=eZ?zOIK?xR4ZbJh|lDS_mOwv<=?Bnz6h{%%JJPF?*dPE`d<9yD*yf}0pWKR9dGgL z3OFTJXzJd%lCpNE$oYX{S*59C-kcy|^&UEs+12y+SU=DSy&gpW^)eCs>TjNFRvUZD zeM6m|RU4sKXNhhW(f)gHkL~j>&LSaWrr zKdIvS*t)?FbkZYYwsfI`)h=P@Z+pQ2l~%E_(!EDXl`?)@7@ei@Fq4N%Cdm`oDe~go z*n5`o-EtG|H?sXf-MD_Zy20Nb9lD$|PAoU4t_q5BDW+}|$}^}Y7A`u1|RcIZ}JST!5cV0e^58*K?k}9{z$zW&8tk6?CMK% zG#wOGvq9%*ZTBl>-ak1S^s$$3<_P%#*We8tpg+)qAL!W1QCa20%F5hRmY3;t%~3vm zFXR;Y0oULS96%3sgCAQtT5XD69x=7DddiB93x2eJ%md^U`QdOahaUQay8UmCg8MwQ z&UB72cQ6l-Q{;!sH8?~H99LML5>XJ&Ou2XD_m>-pztdo6emqZZ{Gx^bJ&Q!?QC^~b8+nJGC)_Rom z<0yMHjY^!zyK5^-E+&>ue$;~PPJRW`ic|YFo&-3;Eyx;H7yTC8V z*FVGvw-xujT@;J^9mno#yxqoVik%bQE}G3r;xOYQ*qkWV|M9KNI4I>)?nk5jJFc_^Jx9k_ZKc|x5sa4^Nh|Y-Dj@o7esb|?58BpE zVW&mPVK!y7A^*_`;t-@fU3)V;JFv>#d9t1Q`sN&sS56J4C)JAfc$HUzrHVqjlQK9?cy#}Mi}=4Z{k(`#(gKim3){M zqi+UnaO7_#(#IH|8*eL2lUzeH1+;%;HuaFuyG*n|#z#Y`V|@2dL~8D+rmP-)PuA}b^})*Pv0WFl*ij)ZFBbA%siTtYHri52dgah<@*sdJ^m^GnlqK7JCOXzyri|&l|h?RV1_5dv6ZPr z6@MrN^>woF%)vY+U36#GSxCD|0Zq8U8%Cpj=mh{ElubUrW@6DxoaI^d@BHz~CA`jhA39x?N>|rU&5avA zmhHDa7M@-Wv>%IOL+#nz_(c!*1K-2upt*<-)_x`w%gP+AK9bbN)O@J`Os6br$+JI2&(BBmeM6!y*ad96Th@rXHH ztpe@C6_+b^{0{omJF|+!I#BSR-*3Axi19PpCUTOhdLhHb@?_Tf7Gx-#^Te8?2Awp# zjA=nc+Xl#@dTScc$0@l5chCPI}$;~KX(ABk70*)Z1R6fCt|msZa>8{-^$Fx=k@Kdm>JTV0otBPxmbY7B!gQ44>qi z#@2dsD3OS1J@M>uRz6rN_8M&Z(%@}D#-2-(JWMC89;cQ4)CtS$65rYHECK1>D%WUN tC5m<~FW!><1m=zkcd!OtVtnu_f|+?@7fSAteP-7^0_!v5y9vH`(7!y>c5wgz literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_dimer_ghost_fchk/orbs_a_dms.npy b/horton/meanfield/test/cached/water_dimer_ghost_fchk/orbs_a_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..ce69e9bb79881962a4eb7e2fea60b0a3e2f06e42 GIT binary patch literal 1648 zcmZ{ke^Aq99LF&%hhQQtwBT}@I=IcFIczNT`*>92S0;lkL3a^923{ka8>0Qt^IE36 z$QVD|)xpN4P$F=i$D)aSAMJ-ygh4pCMQ0qK6sHc-B6kAWo$sf+-SPeBx#zj(^L;(< z&*%O5RK2X-lAb*;NEP(9xIk~tH;JDUi8mG|h@~QN;Vx6DDYqnNm#IMi-?=Kc*sQ;Q zZr+(|)ZgF7$l|3US$wQiv|se#TNo2{{@9JsK2qQ(<@Oy_H1y%<8s#Yy{qowt)|C}K zR3Sexzi0PPH0Z&1Flxo;!|HZgeR4X_-noTrwzsvrCB59T!Vi|dvh7u3H3(XLl6AC< z?A@=WX#{be*P6KECk+%F+u7||v;7mq=(s#}KJrJpN%Ub{`phYMyVmFm^B7p%q11wO zrKEyJJGGAQ$5xV{wIlB=aE^1INOkI))|Y6?#=(kyc?cOQ&-*G#^dfub*Ugqag6iD_ zdcgUIt8*3kZjq(cq+i|LN1kv>wOKoASX``Py-jw*LU#)N4XtBo)VexCCwuQAKUpd0 z_$XCJT*BmJXQqmX6eHt)Z8m%7G?_Xu&r{0s20h?BH9GZM=HXFdnte;Ut)i0gHaNEb z>2K+xjeNs_+~+gshQ^~+`j$RESs?#zdVDh->uNZ9$gLxziJB|k$OOjQ?IdGF`5(at7ws9*^-dEUA!aenM%!I4xLTTU%vcr z6|Fz}tGr}kCVOW}*^!#RMoQTpb)9RyU6L~}JnLiJx$Xs?`yR1AtFix|SNIJ+Kz)!m z=)r&X1xtQO9R8WC5Vn14iI&oS+nXXwoQrSbCc@NKHN96`ebA`PpzVhE+SRdXOpn`R zpJ)xYFki!O@B!+BynzSK$4OTPv-fp#*6i^1$%u5$)H~DW9_!(*6+K={BhK+t`9iM# zn=>5Z7U%ig=hhAJ=pXnReuEECAH+cqIG(JQaQhcGH@&gy(c_6BYOem$XF11Tm-DuV zVw(@omoc8#ey2DzIDto>qJQ9P_zgY)4|#(gaEi^!MN#igaNaf6?zKrB+$CY%Rz=1L zkoUYahI^pULI!!w8|f_Vp&mH%)&0#NJWqpX;~y7xvn%OCfm&IYmrHA_x&#*hR3dLn^JIC#C-|(T0qp!UK0P#gkm;e9( literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_dimer_ghost_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/water_dimer_ghost_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..ad650d8784505f84cbed6b1b554cb10544b78635 GIT binary patch literal 192 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-COVor3bhIdz{LOtAMA;vA*v`L0S?R?D*ylh literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_dimer_ghost_fchk/quads.npy b/horton/meanfield/test/cached/water_dimer_ghost_fchk/quads.npy new file mode 100644 index 0000000000000000000000000000000000000000..0e147db7501c555514667b846ba4b4ea9d848f4b GIT binary patch literal 104 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= qXCxM+0{I$dI+{8PwF*dpD~UIIpWVit`x$^B+y9>-8Yz+t(Lj_mr|IIVB+{TFsWhsDXjYL%r3ejDhBPRts5EKm(v1cY zNttIdWUQ1T;^({X>s-(Aw4eRQZy(3!SO?2~-S71}-{)zw?LMg%Hs+Rgqj-#YcFuG6 z2-x61PgiOl^3g)0M+w-+G6s1(v z|KI=Q6{U7b{ryY8#wo4Z>h>-CqI$d7S^EZ@d0ngBs3He%FgW;xbDifdV|{weItME3=ua)_X2Jj&0$- ze<}|4DbV;uUxqDvko7l`GLQ@dP>akno;@_tqM+guWRFS;BzTy z&OUmu!JZ6$?vtE#w*6o4n{2gl3wmQsMsnS#AIL9C`8RCav?e*e`4{KW?azZdbc4wE zbWcJ5z$gED|L02=4ZB}bWF!}I{@1I_#LdYYrQZFE2R}ZzexH0;&#iyGk0ebh{v7il zr#?v7e%fS5V7}lV{{E4#|9_uHxeVnp&>xsD_y<4#^*jepe-X!e9W?TN_x2;z+j`97~`q-=E82A0X zdn1!ipK!&J)-MCce_Y47y?mkiXx|pRYgfj&)Z}QcpNBMmCgrad_7xr8exJ(`>}k%r zom7Ko%-a9_iPJg8VepZY;o$B6d0*jX|3&vRSW)?TL*wK;2D@na*2EU!Z;D5I?N<`+ zj~m%f`1W_FHm#;h_)VLZWtC`lRkEe znWbH{UaMggw?8mn@DG0AIl!OLkXUy)^&Uo3<;pBRl``-?@ZbMFr6^;QZNGF7ynCux6RzK$dOSJC{ym-=A*THW9w_wyX<+jR7Z>}9;v=t#;RRKtA8 z<5!zhRf|t$pLi(g@;^VnL#~mpng8J*e%xEr?`BHn_qfl4@0Wh3E4`%MpYZGu9)GvN zhroV8{}X9Hg=v4_?;GhK^27T@qe@)b_?}>EvunHWsg*DT#^yiQDAzF&+bi2vA2`Xt z{=$CEqWxE*{R9s9|499VA9x@5^Bj1EBOD)Mqxu&6;tv;?Ux8YUfnArl_W}0TlkV3N z+W%LypU@weFZc&P-)Vl}-w|`w_W0d~TdQ+2qklGX?+@IED7wFcbibC<{*TgQ`#G8R z=QPZh`UgLdANWH*r*2=(|3CZuvn?(r)g>EGKDz(Ggu8CIb?+p1am{16Bd4{@-%*R~ zd2M8_a%d0M7*g~OuuNy3$Db4_+>wJXVj{}_%Ydv<3$shPwg-C%;IiuAEN0goqoW@; zMB`!UDNXec(lGG9B*jebOuvM$Nck^4@^UARR*ue%SFgk>{d(o`T5E{ZoEdpxE$NJ8 z`jx1Ls2t|?pp5y;AD3}#d1#PFr3Y!d@gdVaE|;0tUGk{U2DX5nZa13{qd&j zSFj+>e}VG%FC1mY_aY0;emJux@9;_N9=~L8W2*s?-~FXqVc8+(SeT61v*Ac)xvPNG z3hy)=H1}{>?sPHIeN+7Y^;e#ZO10@lW#!e3mBktT=!k9jN%4{HuTBwMKM^#)Eae}G zm@If%q#eiq(Krz`-kVhMt<2ci#W4FWibX7DiWn2iuQG27TkuBH1@BwbTu6XaipEjj zawaliy!yfqCzzr;rz6r5&f~Qu$;)PbtL6F!Kaf9x@&}CGl*q=l;jWXjHJ`3qgPyl7 zEcI;rN*VNzhCAveoZpQ>R zk_b9qN$OvL`honw-|n~i&5p(G*tGohjF*4=qORbj-EMV}0Y2Z}NAimY8*qF6P+u4C zG3@a&wZKf1VN^GN?_8^Qo`L?%pz{U);0N*pU(C-3b1Nng;tg3kT zMq)hWuIJ1h`@nh^OY26~`CGF=c+8>y&DfKT-{bcFxx%F5PC1wyx&uv1;Pp2iRY8x?j+L=;sF7ADHiH>L2_-e&CN6s(C3W z(u1#O&Me*7^n!bT;6A|quA%z{{a2&?g#I|u`GSA&1Nnj9od4my=-_ki&x2a)MHOnK zPU3_#{iTZsqcLyXxEJYp<(L!N*D|C!8wC_Dn%%MMEFM%}({e00`x;@rEHEWT8Bq+k0k8|Fk$}+&l~O2`jGRE0+fncMh2$ z{n>YI)}JcG8+u>*T$pag*i0Zwx-Whwjm%UN<1V0$nS+Xm88GU~Z5m*#+UE{(r zu6N*qfA9nOWhp;R{`04Em%8v>-$QqHD(H~_>F8evG}X!HR`2sqpf&Nqwt2S4nqI{|(R&$XNd!mlv< z{cF(ayc?ab#`zH7pZZokOX1xO`o0FDT!wNP=uZKiFZc&PkRSMgqkFcO_`JgDpDbi% z3!cJ|pXNhj%ySixVk`bZdkNeD+E0GkADHh;>i-M%1D_B0KjnVvW}SS5`4W@6yJy(b z&lf?ucds8)NXqbc%7tD+|Dm4&v_B8&d?)^gf8cL%y)Bmb;4bd3d+FP>)RI_|sT;QQ zEGOopdB#c!Iua*IX63{aHU#zy`p@PTBh(Yu|H%>l+4)2e;JXwY{v}Wd^Kpm0WtOpf z#lZf;e$Al$7pDCj>HoJG>mU3;e(DtoYAG*uRBYqk1&JPZZ%5vTk#}b^?I*oE49pki z3Vx^;Zf^FudB}j?Gq^u+A4c9C=zk{LduHU_0sr6!@&h048Qhth9wif2UXI6{Z8-)j z5BuPn6vL=PecAX?R?MtDH-%B<p2> zz%;=$?^vucFvIoa(=;YfC}*Pn^FVydZq)wQo_jIyz1QhjVXrJ~W|#XoUoHk8D4CpP z+)#?MQ)T!MUXw>rmZ{~lb@$X&qmEe1v)dF8Db?^8^2~h{KTdnOpc$ zo|dBN3j@S*EXitN-pBJl9>(PlWP=jg8gO0uDq-hB4Rpk=($GcJ8y(2-T;jTGFV{P8 z!9Vzc{J@9LCnZoCH>qEq#2GTFBK9(5)~f!VDO>fCf7Q8w{r!P>-BqP-@lA8dP)*zw z@8z>dY~=JKAHBv9!H;7;W>hP2=L`P9599~F>U!@gow3(3`@SuipDv-0^LPUS{sZ~D zp+DYL(D$_n?F~b@4D<))3;w|m_q%oqHFpC?<=^kSk`A>cPzW^8v`a|H+7Y9DvBcLn-(vsO$%(E{0jjA^?w zl!bxYK)KL==;uS)ADD07fA|N!*rmZr}EAIX^VXg5HkhzaD8J z)A6D%%O)>H>*#(#|Jk|l5bBBRziotn$PfG(tLDs7jwr+Qa}&yC64||CV1Hr1glYei zXg^2#x2OKW599~_xsNt)c|SE`BYGF)=-!UJ53pabS9_w^enNksH^=B)!4JJV4DdHe zM!lOYUPgpH*?TtfK8(CO3uynLpU@weFZc&PkRSM_^q#>Uj{0-*aE?X@c6s6`S03Vp z#nq~J-Ija@XN{TJ9l8st(^G0TcNn7uUlr> ztUN5WIJNkc@jMjyCM{u4SSCKdY|Qd^qEWa(H_XfZLKgN@|FCh+ur`wKODd4)O2_x= zPmaI5Hys1tSU7R>8GUz*Xns4&htJny)R$>KE(cHkGjGD&NHLUvRtT7?n~_ByZ)(P^ z*o?2&G!#$oOTjbtbs4(OeW!PCNgr>iyDVwz-dJ+|%;JA>d8wZ#G(U&(R|z`JGBRku zKXrM&pODc?mvj*vB9 zElYY+FMo<(GlL|(U7cj#B2K2ZKHKyg{4tWGHv` z&4j1N@klQ8ANmRXv7qxUFZ;j!1Ao=>l~$|!T<}yu&zr)+h^%>LzPI77I=OVTjn7IL zp&Mfy_B}6Jfl}#yLI2sg%pt4?Z?6B|5&j`R@Q;4+lUtfBi0 z`*n@>KZy2or2ov(tbgzW`GIfiup3{kk79x;w~OxW$onwz?v%V^`+1nXJKXug-2p%J z?r?KMU*MjNybo}9PSL&XzsdF=`U(B%qIU=UgCEEb_w2e5d(Ysx-|I6h9PPzOM@L!R z;M13SrTZkWC9W8SybRmCgL{r(q0b9a0wu+fr^j%`C7vO@{=03hL(RRlQ|>xMk2#W# zSA^y-y*FnJdT3tUPHd*56@t43OZkUu4Hg-;UDuQ&!<4`0ipaL8FFHiOXm+Aqe<_cCG_Ui$_FNhi~kq1XTs}x6eH#z4F zLYuXFCflrv6qP`2ZYP4g&I=(kKg%x);{}k~cJ(=RImfgY{Ao}>qWDpdx8?Ddaf@E) zDMy+&WYr0x_vWi5YyAfFPE$Yq4Q&3tKTH1MFFf1*(=zaf-q~?4`sJ4PXv$lyJ?2u-?Pd*Qs&Y~ocubw=FMx7xNU7SghBG||Mqi(W@&D*o?AGLe7X zq6=7Gzv|l(%eETIWhj>sr1J&;z0?on2mYxeO{w=^4A&Tb(R;qfUzW6|Cn?PKGC;t8 z@%$p*pQB9fY@76Qil7t;{;oM$|CSY*+%!$~Xs`x>{tVFhf`9M>`GJr6?v&(sjnkQT zpTDBCK?6a4;7>l#_EsrEff!ge#r3?GCAzQGH-*2FM`Q1?{j8$>f%*1dWBs>NKOHnb z@Mqq)pS|?0rI*ga6MGOkU;;T zpX#(fo9KLx{fB?x%lhcj$vYAvh?#g*O>&e-7HI&OxE@Myk3;Ms1_H!NW z5BUE$!aw8(erWja@a;FPNXmrKe4!>q8{OQC~eZTK|pK|LS#Mq`VM(ZAlM;cE=PL?9y z$8Y$mrUw)!H!8k_0;w#Kc1a630;$CQm&nmLSOD{_IwGL zh7MD{@}560rPivE0~uP*bpaprwl>X;pO7|C`+4H>ki|a|nDRSQc;A@GpmFVjyOd>(Z0Rbo1ApNFAJy8ihq#$N8wC9915EOMex#>`L^Np8d1QdzwFq z@-<%%{8?B(opU;3;X}&_B1pfYUBqlSf)wwy=(#&q6bWSyztgc8i>^A}QcK=A8Vxsg z^_&Y|K^oH3T7@mwT;LSotsuY<3ugVc$vzi>yDVLqWuh{{ek&@v}gUVrhd|Ce&Dx7tjs7Lhsd{! zjl1oxx{~D*vl1Vb8KT|7y)y627NHi^i4Q;N>7W&f!+udQIt2O;{rpY)1M~g;AO3;w znTlF{&gv8Ytnp$u!d}+kqU zkWcjfz5cgtxs}{ITJp5K^$5t@b8PR&T)9PZBme{Qnjc?Y?JIR4&c={V2HjFV_W z$GRm;ne(CNtzta>4Rse73Z@#_nw({xLhQbF#fAy0u)iY^%ya z{6x^TJA^i@`tmf&6up-`_bi$V_LJ4*UA0hJAfj zGw16=-27G>omST5Kjv;o?gyS->$^#mcqw$gti;zL1Nr|qf0oX)M(H`#J#Dyj^JyOW)WaC~VpEqNIM%ICHqKUw7trG1!Vz5P56l<* zgCEEb{K2BTwm*s%>EuT`h53(K#?24>rAr)AJfZ~19k!Ru3AQ&(J?&==?GMa1pZcFm z{hXuuxqPqnS561~{q@ec3NMu|LnPg~-?UFQ2RELJ;j~X&L9Vh~e2(RE`w#t`Li-a* z=i9Qz!zN2JM){hA1a&pag6h^a=e-D?Nz#0u)nZhPiX&xKKhi@ zW*Gm={}h$M8Hf%^mZVGG^gt#rS_Y5#xH-a~(K=zPIH_<{Vumt^l5 z1OGfD@b1B6tGzQ({QRXkVHe)j)`#!0S1BGv6#Msw##tBPKTc1Cw)RdZ@BBp;PTW6% z9MhPcU$|)$`jT_HVzh5QR?T*Qp?RF2%oqwPIOjNr*onmPPmrBUqLv;suC-AhlPUj& znO5GeZUf|BI_Po3b*Ogp(J_)qtdAxY%6l&>;CVe<0=0oWQFw zIY~jMZfR`gkdPGFkT@a2M=!~NH=vfG%~C(d9ZWu+%)5v)e! zggy4Dr8p1^lQ8`+#jCjf!4Kpgr2M1ewYIklC+PI$KXDqrElZRA_AJh#Expp_3-06P z74H)ds4Jm>x5m|4vWy+8KF1R-%6n415e~VT1?T*vG?Dkc`I}KgXnz0Klp+C!0)%bG0O3e zI45ngT*i*|iwWchzDsI`@be35$gy#w=NM5VRIgSzhfhwLHflgU7-D!ru`i0e+%^w zejq>aPm5frN&C14Sx0BbO}JH|m)tvl<*%U?-1`9g+er5d`Valgru~8Wf`9N1`GL>& zW(g<%Rm*tASBQIm;6A|q!hS*j=g@vae^$`>f`9M>`GLP_f#M{;8HyxXs-T!LiaVz3joenWsYIaSo8_KX6D26pwHCW>)zj|nTMU?rEOQ`?qrsfKA55Y=peI~@=vs#)D?*f z!%MYPeq<+ZW-j_4tJ>6<%A~GTX^RE(dOj9r!lJ{EGW!HDu*)H(&v>h5C>)BM2CXm;DZ=TRJLp7~-G&#yqn zcbKo+@9Sjrrl@@HU0HQxJJv(brK15iHtTJ=CG5p4PuivVWm~7-t)!n0$p*qmcdn?M z$=fuXHiD}{{am8?ODR82_VIa%I9rDG`bYcl3cJv+-Oi|Mna2G#=NC9u*|>Z8?J&%F zQ+2I4Xc|fQ*uvK$W{5Tk?>R4?*o;SV!9Vzc{FGnw*vyD`tn)HD$8K%*`=4tc8`A1_ zUMoqO)ih!S>tgUWox5a5w-_SEXSDr}2_v0T{aF*I8KZ}I+jW;QKWp3Re1oWe@B{f- zZnyTLW!_Bd3^xSNcMY$;gUp-}@bh>3J=mzXA2Z*C(9Z%Ta);&OLo63Ve_+1g{~h%M z`GH>;`m`y@z>_>~9ec)j>pcwlfxoUfdjTgb9%s{D0vGyuj`j!U>p}g4pJ^c_YyE|t z5%8t>zE9p|nTtg|S2onvEFp=WkHmlc@Im^!C&cP6Y{8DS_rQhzLqC_&{#>H-?f4J> zzz<(Jb^2gSKK7lguC+Z%8~tfe?BiLZitJ>J=Y2K)Q)}Tkx<-50l)GQh|4%lRT^V%~ z(S$+VrzDVzaE8SbT5BhX}Q%Bq#J=)I)v_CLk2kIaE+@tw{&-NyQ z6w-U6JK{dTU8tpd%csxwKautm`op2U0sr6!^25D6K<^p+^Qhj`@m6_rl5y>~DT}Qx z1md(w$|1@%g;=0p!FVO#x7vyyqU2Rh1x}L~D{T1j5aZncXim?XQ#kfk)VMQ$f4^_+ z-1JBNPWkw?`<9;t@c~TEQ28$dGf`6S@j~>BWh@5%oNH=lM%Sm~&qGeHnx=2YT@)@7cfhP_)ts{iy|3dlktvQL)hJ47|W6$wJqdAC^e)L{MrZgHXtP8n) zw*jla>DK3QM`ZUt{;wx3mZ3w3i(fg&_v-DoN>9A{Bn{7A=U%1zLKwIV&CP(H(KP?4 zunoaC_bfxRlsCF}m~J5N$6Vsmm?omLWXFXEZ*M-w?6;+K4#m7XgABFEt>=*^F71>f zSH)7VrA)kv?Za+i+d2b8xePDMWxzl9f&46whhy;jX@yL<6lb~IRO6wJ9&PsZh4ug$ zJnGdYPhJ@0FlFNFR>%b#V)j;#k4;# zU#YMI9k%=Z$Po1d`GMbW)-UXI$CN1a?>uiSZAzxD_H{|kZNkU2AB6gco1qOXmnmVn z4D=uRnN0iBLFcQ(#Hd!wIUw)@{(8bc-z)r7X!9m9NdZ*}Ni!T!R2 z@hyC{e)GU2^2Ru}Blm~Nzx*G!;EQi~i3#|D{J@w0@$^vcww+|G$3J%gKVbKknI`wA z-PU;$X=LvML+=jk6(dOdSxI{d^L3^E!H)pV5Bz7mQo^lsGl(gB&zQ^f{=j|s$le8p zpYGQM+JCq^uCzbpbiUvp{6K!-&u8x$_t*8u&xm}^`*sQkS9J={7I$NqAeG_IW23Ob zm0im7b9qqdF;o7~-rYDgx%s@WNeJ_H(}Z0r@!7ajsoFuzR~nrWzOu#lcQ#h&IiQ;5 zm%^xaZC7wl*?^mj?bl9wnS_DQx4`bVEpH-AWy*0jhoL}DFNY;Cb6z?{Jf)~h_`tuaA8O;ybz24&cMwF%#Ro_!4PO<(Ug zm}F7S&HtpF<$IB!`1i9bQT7uD|K~P2Oo^W|U*VGlB>nX%+qKoMNWWZh@~S6MjI-?W zZz{d1%tGJ1X#;b9)}ECRTpp9V0KI5=Gitx56|7iWkvw`MMr2G!K@8`kH z;*)g-#5nBpH8^wn&sw#Q2|+jCw1|63pTfiCy6&H^s-h$-OY`t^t5Ja3(Y+sA;xKSm zQ7-rgKal@{=0=%O*RN~S&qo@Sj~`9A@vVk^Zhy_YUg=uhT^i_s&H`71M;xqNk~l1} zWFfihS8N`9b`B}w3p*U~av2F*ya|DJOgk_H!V>S6XrD`0=D7%yDe38%nZA_gOAOxeW9N<_rE6H}&uBy&Q9|N;`yz=}4N0MHk~C+I#3F^dI`EK>Nc}!Or);`~yGm)(@vqeh=~2 ziHi)JC9Q~H%JL2sjTL0li}A6`X7M&haIayKinr)$HCfL+oBLu)nZhk7@ryXg^2#H>Uo<599~_=$)H> zR~)^Gm(aTqME4f%LmRyhBkxWP?I-jH<_mKLKhz5Ye6}xnD4yOkLiunXBu3mFf7*ZO z=c~s5eRse=_<{VuhkLg6!NRBaubd(4TYvtL9G!;e_#PF%p=Ze?y%5|}A|HhJ*F}kl z{rRI;?3Ceh#?2G+l<$|T(}`muzr+L{*qDq@ORXNxXp}xR4Hfw^`CxBZfivIu}1~?y~L;7xb-X0O21eap1BG5LA)Tx;LTyCh4K?66B|=R z3%L1>C?EcL`xTEqKG$%7d3D2MhS3cLB2)BSV@{|#lG(aAx%d}Zi#ur z;uGd`ZVFyg6qu_=URqq(dVF>&UV*I@r%qQz-V+YFVWV{=Z2=j}Z8wnErNQDVE*V`Pf2pE%D&j0j=py{d&1QPbISb@a}o zTsQ6v?%7@c(@7u{X{Z0Qw+!Vnu)nZh>uCQE(teKgf1UaVKad~z;mQ`nOK;xh-i5bx zZ{a>XqWjA?;_g5{p+7L+dvvbgXY3I+KjfzO4BevlY~+1_y90X*{fB-+e;C>u@DF|< zKk(t6+4)2#oK(I{a$6alrGbC{9D2-8VW!%Yk(KiP`jiuj9c(Oq|G2`3bYAe>t>2xD zeKa1ZuN?Bj>&&;sD5<63I5UCPxNq{vQl$P?i*g};tbBcxTwEqTx4zu()ZPuucSW>t zic!Gdd&u&8XGv!Yvi^$X0*6R8J3U9o+wlN_rKGl{4S|W!s9BU8E2Z`jPjwU zobdL?1+59pPl2NqlP_wJ_on5C4{$c4vGP*S^A7K2mR!A%v9Ng;(<6EJm#xNFa%sIo zYKYh0Kd-c*(A)N%9Rpr~>qY%!(fq)#w)VYZY;VoD+GL&i*gk3qTe_-VJoM8ZAL{EdcIE0Z-jzz3hv{C4lMlNajLc-cK<0{sZ^ z_fE`C>7IKIo9s$zzqr7L(B3eV%Rql%zTn?(Nwds!*AN8xfe+7Xa$I$C=l)a-`GNm6 ze%zc@TAug^?d5sen;o>Dg!TvKYefC`Q9rvM`Z!-Y>5qUvt^3}E$yd+f`hY*Fw|kt? zF853Wa1`=dbTo5}ls`v*RJK92c{nHzW5kvju#1o_5V zlT#Y+%u9#t(fYH08nn*1bN37SpC9I{z1L0&y}rA9bLIq3^k4oVKk#$!nM&tgzlm4% zZgX~&+>ZR&y=5qusiFG|`;|fazlQenzx;zA$Paw@e1ViJP4^b=Lj~R6d(rIOf&N23 zp+7KRP3j-~Kz`uUdxm^(vG-==eSrOiy950XX73IIy@cL?fA9nOfq#qMv$QFjcrVo0 zbM`R<7CeQjC}dWRddGwhwWD1&cY2x5K-!DP-EsOHkHc)G)C6)CBAZu7e0#Qj)I&4Q z#&900q3ZgZqq`dl@Hn|sd3voz=+B+cHJUmqXb)4=pLSB1@QuFmsOORfiKG0NXZGzq zBc+8FZ1XWIo;6fEJvcMWVx>5$IGp`GS8F%Ux@$lFldcw;_{nQ#pouDCvY%8feJzjb z+RkmbD^iU63m48*uygqP8=Cs@JG$4Q{e~j)$vu)$_<{TjtgneRmtWUZQm8$?-ddld%- zZ{C$EpD*K8U+?>_J#%}o)4a8!D5p3^tH$jVE*`gtucWc7hH@FoW!BO89;5!j&%%GW z^L2pl9pHGAS9~c)>iAl-MwwqVqulm<&qDfKzJ}}v=My1{s86Gy{Gpo)c{AJ1@^FJ1 z$-Z9BxVzlagZ}W-`GWt&$$|r8XR7Hye&Fj~7j%-$)8tIW34sQ~OA+J;eum-*K5dB7UtaZvWIn>u5hO<*@yM`Hr8$`VXOg1ZaNXTST(Lu8zkQS=k%=RD5wqV;cnBDyQqBjw|Kqs)|Mg`VakVqx}h{^A!sGzx@NB^(w)6 zi=RzX5@^InT9OaQ{}JL)E`GN1Vq`D{ZtQ8Snvb<^58*9#(ukN1;e#}R)3&X8` zdcUgO>(9}-Z#Eenw3!lSksZYdhTgfjwQmm6b&|Va;L)jfePCsby)1u$@3QoL_9{p+>$;b6$k*Cz z?H~Q0V<)1wPqiinq=zvFANl^AzEuU8eqTO1-hV!-UmPUVX(5A-lvTEEkv+-0ox5dv z^50+Yl!iQ=c_YUPg3*k{eJtkBanB9c9w(cd{{DTb&%Lzu6V%_%7xb(A%T8Q}9gj{4KLMO8?v;KApL) zOZTZKeA5n{_CeR;w-{Qp>Dzc8b5}HV;fZ;UpVg75#O&@h@!IJ7z@Xrr1+vJj?P1T< z-`{G%Klp+Co#Ql)n(9x|`JnnmX(-EpL;mRg3et|zWP22XdQ}vi-zT^rtxEwzyLR)T z)S;82E3KNfVc$k_2SV8Sf`9Py>YwMx=m1~aE!xDjTZglMa!z?8@6Vb~6N;+s1{QJo zx>Hemhx8m2e!}UNm*PB95gF6KS0;h3W=FIqy;A1(XBnL@_@Aa1`O4|}|J-Zf?`Th+ zyQ*H5leqTdr&mUZd#{0CwY~Ueuitw`YtcUui!RmazSS`RlP zJ%~X6p`RCMe_*~Y7yobnz-Q+rL4O`>)`WXElDmuU7xaHD?dLSwADHj#5&j`R`+Bzol@le~n@ZGp0-uVU7k2+{*IGLNEuB{kkp&f`S-u8S9q0v@k#{Fd{I*tVtxqkuRRxq z6V{;8iX!VQbQb@b^5gnefgD`G@^Oa1&J~k3twl>|{$6dCuRW^v+PC|W2=|Hg{~1_~ z?C%aWmK;zc`>ZCVwzelRYF_x3o4qUgWB6jOfxQu_+Iys6jo4_SRkvq!=LQ$1tow0f zsiQjbX1Vwe%f;Xa&tvm@?iw?w8L5RH*XnfE`vj4$%NdiT1*ABpdfy{+k~g7aUKJUk zNs~Ce9Pg9uC%jN|$BLfArCR9V7(qF~&@?>1qibrPtqYmH<{$5va=HG&59HUA>^c`4 zIZG!h%dO97x0_DbAC8D~&@b%^8caZk%Ny;F+t0t0Hq}E>JxePdfAS@&*UfIH&YFxi zZannhJHH^RvC8Thdte4CIQ!%RpQ|b|rSs*d{`XQpLm@5Bns_GyzPdp0Y|{^J+}}@l zDRKOgXcM*L*NJU z13zsJF1(i;OA>N-9lLpGJsOqEE1>Y6gH63QWnPquBpX;R=CE9D|Dm7dv_CiKd=A)U4?#34!IZ?>WK8|enJ1$X+KkF zf53ms2>*~Dxa_N$&NB5EB>@$eu^8o^rh5hZ3;Pu_bJ@gsN$P0jsG|Mi`Y!+SzpmC* zFhSp+fFF1c@Ok(LzZ^bi!_i^y0>dNz&)zc6M5F_snM)Jc-y?LtglPYvpW=_%y94tz zrvAYXL;3WcasPdN zLZZMD*KOx=RqGk9))e5*Hea?$4QHjUw0SKGrubKXZVuL3&twO{$+%$ZgB zxtn9K&|U9meG-yH$}d~-lWiJKNIBZG_HrtdUnJN!Ud{?@INKhN=0AXe&)<<^l@Qg2 zL*ksX{mbm}FWqa}{ra1krQTul`3_7X3R^-FHh8Jv=&pd=1&cQ^dbhqM3N>frye}?A zl^)upTH8(NzH0@JyM#CI%sj`OjH2pf7|YCm!zlF{i6OtaeL$Fx)(PLa;t&h-y| zAb;S(5G>t3nL|Gx$~RxV>Z#VJn%K9x2}<_X+H;>z4cf9uiZluJGfe^enDtK`N*`1Y z)ZS7IZ>*l!Q#1V09YN>@{;IB`x zDgW(~#1!Qh-dg+40!ze98PA6z@wWvwISI{S82SVA1^+BBfYL> z;6GOwXnr~U0ORs`ZvH}dXRO>hThQUj7RH(Ob0+OiB%Nn(biCUCr~>0}HxqMqL)>tlTYx`hWFxT*_O<-7o0>5bb9n?GO0>6VLkJ zNBu*7;KTFa_58spT_;@+;9p+J8+^`XarYPY3;M51`w9Mmzk&J(Kad~z@ap5!oQQB~J1G8u`DR5#Q z^}3}nlAX#AHox1>^go?lvFfrpzI4jjztdnjuIy&{@HsnIHj74`vcs2bL?4t72Qrzl z-(@t*EN;b;?j{A_ zT#GxYpQSYaCd#)M|7S+1fhLB}Ir7!^8(&cCU=$NHbEUbDz8di#$9E=8CX{g+POf}6 zZWq%&G5_7JOBDcL6m{qN2S1RX{ajdwem=y$PUOJz-twLcejutzeyhwAnsR#& z^QOS##l>l&BL2_75BUH4d8-Js_|=Iv zfn8kw8=2j6w{A&fOocr+huyMbOg&;MJ{{eOBU8JTy7sT(_U9IzFZgG<5!_!NvEN=r z;CWJCF5j=Ii)0`_@Wp%P=iU%amB1#>^vgW0lx?Pqo$+aH)O_`gT} zWYPS#(#;=!y zq5sfNdD@?CbiPs4|2^veAoUOY|Lu1+_n-5<>l0=7R+$pMEzz!3?>3Tnx?j+LJ=#xe z+8^M1QU7|>KjddU{tq9XE3B6j5y(krvL>e4&aA5B?l0`uUfO>P+E2(2eDDu`fIITF zRQ>*jS4;{sPI%+Juu)~)`vChpny~w|N`&pdn13)HJa2jizneyT4PfTQAT`lwY`}NxY_CT?z1%EWpsPWa2IsfT7_ULTZrpBm z!nF|xd0#IVF?J!R%l2u^)Nvsl`)v4=XBiTQDpI<#a~U~8^M_OZrTibgbK9120xm90 z$VT&#sP1j8fZ!6wWR~DVv*ifImQCq%tkp%6wkS6i$jn4Gd6G|aHtu2~ZvWb6vR4q< zhl~ok#3z8P!oy7FZxKYV5108=t)7T_s2}xbY_lLF* z)@&_IQyR|Z;mlOp|5VR-K3V$4A~@x7DgGRFE5-Kj*A0p^))Q+HHXvUO-Q<6M(ZpS^HfP%oVs->3pA1|KO)bS4AbXOpXKm&8D>$=lrd8&KxzhPhHrpz4^f! zyQ=F(T)yg>*SnHeX_B;>sR_G2ije~6TLGpkbWyXa)Q;>23f%tm()oh_Lt&3z23^+R z{yYHuU1!G2UL0?sGk>yM*@=Rs1o8u4bbGjnhm#8F-oi`l*8UO7@+8aDw>TI&dJz6v56K48 z)x@mogod8gDsKOwpH{R#Fki2GtpBki`~#ouiIh%t`^)bk4{ubl-|ne_y#nqux?j-$ zaN5sa+8^NetY-bEQvZ-2_-6m?pA`3A`;~UYt`89;?)UGdf2?#R^XdM=eyyebhkk;8 z;12|`{=pCAhaP@C?N+$?^nA|kHJt&K;qyqg%PzUHa2M`LU!+JES0E$t7? zclZM9AN;&M%jO3@`+OJ9Wtp0~Kg+cLe!UF#{=j`0ru(~u?icj`J?-ao+8;#c3;w|m zNa#AxLuq7rbDB0M+);ivck0X@BgpeT_2a;?@nQi z&%Sx(;Tjo?6XnBm54~!>(kkSM(_}xV?2b-kqDOs_4Sg$yMC=j<10M%7YcGiOrWoa7 z4Xu)Z%JLj0^VZzES@!Z|YH|OlTe$&vyJ-iST1Lu|}CNu9x+cTTcBn(EOL1Sbkz~{;CfhW{gar(t)NIDx7`VtK;)d zEYx8=ry=3kKmM<-?Plh0Og!R}Cy%a5Zg)-zaY41KR6d;QFUCcb`-pPEKlp+C@A78t zR(bcP=J7?T*si=H#4n)YnrF|;d3n8W`YyxXn%#4GWdAtNL))z0jI~XPVJsETemi|e zhI}9T;`GdGI+?e{an(kiWyt01__dSW)KD;;uRQhtW6C)5ghyM+=Nl)ax4*a20Y1;~ zFU1AIXOTj-bHSXiJjnhV-^a4(T?qIt$#0$I^;4M0m+r-Rd#q6k%f*^37ejwwzTltr zP=+8s@b8)$9OgZK8vP#LyQXsREQb8RPdaY;eKmg~^NscrxE-{g_Ow5ZbiPM-v;MuP zpDE)_CG}4ParuunFW}#$lEnS}uI+ElYd0FFp*0`P9W5=d;%>@ypTzlxRTjv5DR1o?r__AnN)ubP}EEEk_B`e(104|IQFzsA%4 zLq8!u@O7wv@B{gQ&*qCHJW=djaHV?-_aTDr?`XQWuvfaYpT}r_V7@KXKlrJo`GH?2 z1^pMN{dAyr$C}O;{DU9J??L%6$D=$EoC8v4$QZ4? zcujXau522k$gy6}l&BTQ9e92S&%fV(wQFb;O03OE)6dMt!WJfPhM9v*Y+$>l#phEv zzr4|6k^aM4-l%-RgZV{RHsJ$vdBZ`bvFd>3i9B;;JI*Wm<;8e>eG$ut=YGG_d3p0H zE2eDH8q+^vd+_^Ej}n8BnaDAB!K(#kIoN3b^!1Oi4^y!;GN$$Ke;0bZYSn>cCsiV( zHSJV#P$h1t6De~1X^$zN8M}iRlS^As7R_&Xm*tbv#>+PX(@98%xi!y<9mH#0mcRL0 zJ+i${St{!9|IgR98M(=&aW3fN(gm@Jhh53RW0OWn4e*nfyTyNv>JMY)ttk3xX`_s4 zSuR##x%de6v!CWybdKS*>RL`lTfLmqd@l+4JaOJMFIVl%7h``(R6 z&NcFEj290_;davd0GsbMeQBas-`r6~cl(m8X6w46pjS78Q&!27uRMA$>)uF{_N6Yh z8#+zU%O%f@znZI~1Ug@L>VFsY1NnhpN}t#F@P@0)E-PgBqgh~5SuqCwv?DzCDtW?@ zz_iuT1v-%o^kxg?LVxt>e8GR7?f?56T7;XQ@|)@NLWZkWw|BU6^8 z45?qif%>xrw@7&Cq_SKlf#ovLf9U5v+8j zNT`3v4}7J^rRLeZzOd{P_Valo2lM{T!DPFR1A7;+#if7tcI16v&eHv=r~Q9O`w9Jl`5vYI!H+b}4}A8y zXUI(Lf9?$f_XqC7H}>w}Ms{zRXSDzRw4cMYKPTvX!9Vzc{Kf3O+F5b`+nc=>vdgD=y1mu z&yT5E!&6P~vPg+#MYgc~&(~}%ZoNbAIeWKALS>ZorvvGiiyCm>33<$@Jb6$!A^s&@ zZ-v*##Fo!2iJMn%7p3ZwIr0iuo;QD|S6!-1{b@2luU?_s`@s1pOFX|ck@g`T&%Kdh zaip1taBeD=yVcA^R5o)OB^;YU5StQnq8H954v!)K-6xR#?Sx#3_R}g%)h?}@@5i|? zk{;t#q1A}{ok_BxF~x|;!o5cmiCKgT$(in>^NTLXS*|QTd;~XhdQWR8ea9LQ{T%c* z?J3K1pZoc>V{*je;5*|ZE#idbAj+qe^55Ty^n)vWn_1iqtd#ZJf4_6OK}ce+x6xeZ z(1w1kK4Noi+~}w2&SN`tW)jIcMXuEeN6DFwKDVSi;lti~cg}V@HA%O0--Cs&Rl~k+ zd2s$SCWS%%kPrAr`sav6pB{XAHmFJSZVZY2=$Fm@cfGLBvw*dGcjJG*(efd$fr|(> z`FupHy^NvuXY8HpE%*P>?WOAb_dgCyR;F`r>FH6HV(l`M(d>DIn6lGyIo026es)v!h5R4j zcf3Ti1=;`J1pWD54 zOmEagd>&ef_<{Ofr1Jmhjq-Uy`3HSgY(#zZ3?cUSX&G(nBQ2YRY4z!6hn)9LGBSL* zr7w_gSUo&HTb)md5x_t2DMIlB_3bo5`3FtQAKp(aq&=Fnf5%0W8OYFhZJB%%)m4!> zU3Zx3FW{d>@%if^;s^9wR8amasQke{=)dqXQU6@>&8SzEqrE8kmC=gU%2+4c8QAqj ze@@N7#ffG!)W6VQ-zolqPsktibE*6xAMg+Q8;3jW$Hh39@50hBfyUo-na?ExX+yIK zm=ABM{`I2zYdOU~a1Z>vqv{L!Lq5)we}QnM|6r<4tC?3m`0H%bnq>7;^9SaGHr2m# zwxa%mzEY+5ETH(gP1P6b3i*KltvyH|>Uc3!K|1VQES9}{L5J=&8`9$QuGE^Ze&iQ= zgYM9|VEoK`X3L}959s!cZRP=Ad~nB9U$5&$-XzyKQIc7%K&pG$9o_T0fMrF?bUgIQ zj1=TOTYH(y8;?IF8twF46c@h!^aS5sM-ud5Ut`_M;WMw@Nsr|AGcm6{@x5F1zBVa+ zqJO*VqZr~XOJ1#^-+Yj@6z9WC^B3RpCcm{e-l*uDV4XOCyBM#x!hb|%p7?q!1~&tJ zjz4ji+Jf2sT_}BQc+cyJ-Vh>rbBuE^>5eb3yGxu6e8Lz$BOcIFp^ohu{o<%E)QF$k z=WMk8jUE1`yZ`XF<}%iKSJRrn%9+?TOPpKi@ev$yv8HtYeg}Cf9~H{~5=#F~v%XT_ z_l4yBs_%V`7(eq;xaJu#p`}c;Z#MCCYo7E%E)Vjk<={n~pb`46$a5)7aV;V+BxEw* zH;4R1>CUEfA%DmR{2vdlEqa{RXJoQ9T!SMi4jZLe-BMfG!#Ml%qfdF|BgXNwUfCWe zC+MH7mZXTpxRYMIXZCHo_md^<71sNw@hfX6N7nUnn+Os3EjM_UKxik&=+KO^w0H)!%klx`6dzhjP9v%^_S0H3?fq&pLpW>&KsxNERzw?)(@&|pB6D=(XXBCJUBj=avj9+II_zBGrKl+Cu@v|}_ zJ${%zzf$s?!e;?uC)HoTKfhZ1j@w-#*tYJ!pPZv+NkIN(RQ?tQE-$xk(8j<&=*#W7 znmBXgI_#8hxPyL}9COREslLT`qP`+Ess4rjDyR4dKEXfew??DHww@iwEEi`v$IXh4BogkgBU*;u;`n`i2fVE~ z7%!_7{SjQXi_GFxntkWp3%X}eTBOGFt>oj;zCHD#-uSMhFxS&%OYj%kq87ij%2-nU zr|;dB-Haz~OS^PU#+nT1`26`~xdJAyBKoX1ZwX%CiS%LL2G5c@&Fsy1oraGM7WVh^ z^ZpcHTZs?T-5QmjhDzJv@uSDv!Z*#rnV%CbkbLWKE5W<>CTsYJ>q+~DXPSiL?iKNy zwT>F#bx5BK(NE9vm9)mdKSAloEOtttd>TTKc6?uh9aa(OyiXWg?~B}9_^ts*kB1nX zHJ5g&K3PiK%_-s7np(y34>G*1ary{8vU((9SpEjR5#>VOM!IA*l@IujU27B`bOy)v zt`yO(Y>L1ho#f#250Ygf{d2@T@!}OW3OI9B{3W5YHO`p+13!-qyLhmjZdSbq%d<$0 z9Hp4K7p1X6qzk#=kU!)D{_kEFIWJJm#r$|JoA~zkbEe)0XFHA8UNfqa(RwW;TgaFx z8z9f4!H3nzNNH>l)5nTKS3X@Kz(uSPJZ&iSZIt!!TJii9ev*WUefYJ_zkbklsrr^T zp!^{ps2Auzq4vA_>%)NHIz@srS*EflH6923oRfi{ew_0pgs)2a5Zl~H(1p5oQ2acm z>I?bLy8b`s5GTMt=)a}*TPM(_Uw_+km8iNbK~Mt|7z+-I|>`Xyq?U4Q@b$th#n z?35{8@>u^Amn85He3nxDC{y)4;d;S2QcjOJH!XkAzxnp3LSL>TZEMxAK$q%!hCxgJ z1F3*XhQYpyJku5~OyTEy#kfXcLW}Az;6IS!6ZirBRf8H@TuEDrxm5lr-$V@b=YKiG zAwAEODI>i9c%Fe1wvy6Kruqu{7y7Ghk>&NWd0g0GHF_w=-=B{HKcJu6Ip@l$v32Zx zz(43ap7s8!8}33=-##@L@T-iez9m^NO;w`iD`GZO|29+ol|}J?o#GSb&MT_EkU!)T zNBIYRblxyRp=WB|kd!_S^MRT>B!T7*K8NDJ?>^$*k>W=T%^ec*hkU@lWjE4?{wP*4 zG`(@60XuN=uHEBZZluc_30B$AF->{zOnCYo$q>xLyN8%%t z{{H*AdU;Iv zX`~PP#`ngmIh{C+8t$DY(u%naYb+c5iPhV< zXYjROB-=O1MBEPIC+dyPPi{B;`}ci^bH^Ehi&x{v{pB+?vFKkEoD^dCMwR_4O-WG_BQ~J$gJ5~qX zIYV|%1XfmA9%K0VzJ6uw>_^+E#^+ZR?}mZyVoDeI2R?Hse!8jpDpL99Qu)uM@&|qB zhp(DmHzn+PjA9$I4ku=E(pG=aoOqulh()}am*q7nM9fP^{RRBT3B1k@&y^$UJR9XY zWjA4z)RRMG;gNQ zhj6NYA74jvXCcLZ0LACN3ux{%Qga9LhkU?4%u6^QtbVT!^*mSJiK|%_sd8;L!Be!m zouf%@(!ZbIkYDu${h3^b*sKfM=*rn*kbo`b!Ys>lkT14?oD^rJC+(-N$kRVt#q+B4x+?Kb&pGHK5Qh9J#!vCxY?OB zj70i^9TRI7bh?rg=E(oKIY|G*kE(6NVn+yo2h(?Taka; zA=9*M`Y^HM?#z-5kz8`9k547AY##G8%k53;HcRIE{m0h5{256k2iTf$@FwEDvkqR~ z@4$m89Nfzl6&ZsCh%Mf$k-rX~t_%4?KH&et<)Z4bC?)pq3H?k8y#LLipTW>xe}i@U zDMQ?z`=HAOJ}jr`jYx;vC0uo`Wp!c4-_Nn?t1a0yKFC^WF8*+f?K0wQ7;|m!OnqYW zc=}X*%|uZCn!i&>!&m*!_|57L(*?Kg1jvrvI=Hap0z>VxWKc z(v5eT`yz3ENxN0=&3!OR7pHXD{6Kvnf9>Tl{!+`WFz^rhu;0c~&%N9dJ~;RXeO6_P ziF8H`KDq^Q3A(`NEC<9-hCQn9i_Iwi#Z*3FT-;Yq&QHR8D1Db5mpr?w^6>RK962c` zj~MZO@+|3GZpmCDBW8W7-jTSKhPVe^;2-#OrT7uyMfF{L9_24X<)2LD5Bks#$5d6C zeIvV#4llSg{Gs(bW8}wcsWyvO^pBmQ>Cg5XV*$ree*yn4SCRXr((7#Tr{yldtn;|}}ET`rUyS`9Y$Ors`KH{Z~fO(S<{qOkza|iks z_^0L$`8DCgzvd3)5BY$9M#sPBneA?yeGBZ~5$b*?a~5f@#kX~v+eK)r;ikU~#eI50 z@cVq7(bw1X(6eTItKU(z1#jby)%oPHpG>*;*22>|9B*}4TKie4opoBbK2z7k4^J8s z@Kf32O7b)e4a@!geSLF|6AR2PD3PEKxh{BA#`){BCGIQH^r&rFI9|EzAXZ_^_$-oU9b3jlrHpfQu;*k0k%F7G|TqVsQ}!v<>YM6342Wa&%pn1L#|vn zrAq=oP+!Pja_8#R%iA?E@DKX1-z{Ayi48j2aPSZMkM+~|U;X`khy4_npxalC_-xyU z_=$By^13U~4#YO}<=q zQ-~koRQqpT;2-#OrTCGi>I?o^RQ?nCD1Xq0`v!rmP#cpcj8@tF#l{UYnfG*dTl8{E z6JHw+x%?dX`}b@#QGWsdn=Wz48~U!q#y9-o+i=Z;0R2N@D1YKqpltqadkp-8KJ2&c zns`t-&4L+fIHgPOahmEY^38YDzwG{^`1hyy1plBPXn^vEe84~G!+ru^kgmXb)VDAn zE_NKBnh(%l5x-GiExL{PbQwkbKz$e0p!^{pYVNRoBiW^@9s zQ@CW&mw~VJ6)$e2gob9}Qr&|uhr<0y4XK8Ox30zEo+@+HI(472v{JR_-r^3%6`ULo z3NUt%1;S!oaT~Nr#d^c0p@*CC(GsK&`&oNvExmip96$DFU2f6AaJ=tW+eelhAC|gV zS5#3h5kGanrE$@BZ`^#=dg0pg9r&^>LXABUa)d>{^ObLJ_LDF01f$)l@oas5@zE;9 z)qC+zFOYxGAKDhVVWspWhSmp!vh0ugiTIxkzQ(n#g$FE{hs2j|pI5R9>o@RxvZKfs zHx;akY>97UiOoOQap%V}V$X4|30kEJI~UM3HADGGP9XnL^KbpAS^bUR-RW1o_xWMc zEYQm{vTGUhHMVt&(TX-BT|tm^yr*W9%_f@fYsJuPS&LEAzJ>4SmH z%@>35>AH|VT)k_eAxPaYhxO=C6wS2Lz5hBo%{r)OHy?ufgh+Z* zKlKmMl?hpSV(*Z30s;E2jwt`*;zs2sZ08c-AM|0riq}$)w|-HiQGH9E@0;o?yvPOh zFZ9>TV~GDb6rbQ9^g$2u0so*6_hBy3sJ@*(AEwV8-P4FqYVMGo?@@hQsJR3Afd2vq z4vXxlKI>tQAYw}`X z#v)EaDBkSW(HlJ2=OsluPCm0Fzm@iLTCU{422=XZrt*%m2bM)rL zVmpyOU+1r8t}~w*QZ~mJ$?TA-*e5_)9P+mK$cIb*h=6K4xOvKnFOxWt!U4lQTtYM^}P9!LJOznl~qJQmE< zv=Xfmn)99Yx-C79wX^Hyg_2(NMg?iw8(LBt@4y0D-GH`LNy=UNB0=tO=L@Yyol-51 zHU0~*1x@#!-PJEV_qq)@kQq=MVXSf9yn@=`V%Go7GJc6XnqgOqAPX4tifxiZ}wy9vpC+cE9&0LwbIIjCB@HIs=knaFtcL#-BxWH_y_&80c}Zz zE(=;s>`%E}&m=MM5Bj2Ev-*7RxiMebo9K!aeEpRwcZnT<8=MSSY3A$}yEp!!Ob zqx`F>d}dMpt111p`rcPfQhu?>)%MR1hu*lUw(|=|`cq|^Ua!sbi=+tC#O%^bJr6yM zSGeF*tK&mD@DF@)QT(V<_5Hd`YT4a;vNTC5e?BUI&`&s;yCwW{C*(`))=bqovabFn zrHfO#xLq0QFW_IA;%*$V&Uf_ngtii8Yv~#dh6{BD+6S)we|nW7>^j!43r@tl+vy z@r8mM*xeMViVrVMaM4BYU{LH?E>A}D#y;y>;v6H#hx=rJ(P^}3$|#D5x~?kC)XYMF+@-2IkE35^9yTu ztY(d?`5v6Zb>f*bza(MbS+SV@_iwl8Zd-mpd*f{4-TO0h3RWy8RD+R!0!R99^e(^f z<_Mt;Z#W&%VQNXu8(W$n<%4s?Z*CNKyV0Ylg=L*HAJ8}Wh;j-1uq7_1+gFep4_J0$ z3ewA>@3CA3^LVawe`nn+S-i?2;Sy_ZAIfKsDe`aJYGkbX$B&5@GWFzSKC)Dl*RnXX z!f4jHeFx&p2aIlBeAW9TY1eiBr-a%bK*S#0j*N)0x{ZQBMxWjXqZ5~5+E^yCa>!&oB z`hSlyq17jfsXsD(ZuG4+JuiKYBnJ9Y{*RxP`8zZ7UiFS-n$IR|Hpt5b*=Z8zwZ6AU z%;v%7Qv4`T^@aSEW^o)Iy(Uis|DbOeSYvt87N?!oQ7X9qQiwgTLI3Su?Tgn;9GH{3 zC*4c$8521UpFZ=fRU=aFAwIW>Ab$8mQGKPJ=}qN-g39M9<^L3=|K^^BOYFICEa;Ej zktgflyp*Ro{QZ%t$kCb1Xw}zOTpBd6xeM&a6eR2Ez(4T0nc@fPYqavV(!Lv#G~OO& z2WLdiO_+C}?-|JJ8P3~fbozsG+HS+To7DM<>AIvW>M!6wh~jfC#SiFvL}iWc`=!Y| zO63p!LEj^DW<~RgnKYr@>t6~9d^NJsOKvDNQzUG27S7*Nw}h~!`WO03n&Ll&;uHLX zzEJ3ZU=6Pd6Y>H7pig=h@?vxa<^-3^ssP$$jWjb7aRZ_%^RU;#UF(ZD9z~NupQiN5H<`apj)#U~pDF)>+mSvO zYguxSemoJbRYxl(vS~%D6FJ|}7laDL+M-#V-+H7_XieWkGdzSl8?8LVpJTcN$ zxe9xLba6@-hx{QQ@PCHuW>t}rCR1HPVP*AFdu&mDuCC@*9@>R5@z$E#vuHsHf!CYt z=3x~ZdJe(SG{}x@rxc=VQ-4T0Y;!y9)>Xw<3q`o?qvUoh>$sf22}? z12@5xZau{h)EDy4mi!-GSpxinemk`v*CMX5jb|1U;2-oq@ofEgCMFeQAYGC(c8VJk zr}(_MAMsOsG_y`ZX*+gl6W=ZweRC{^%BP+3|7#)A|6sg8AnkoFmioQ*P;Lo7bIDjF zU9@Ev_EK5%?&uFU8W+;Vol>WCao`{Ly!Q?9Q%Kbp<&wli=jmdg$4?oc@Av%p<@yhA zj2bpZ7W=K1U>?=_w7j%koawAMt8h-W91+x1|LgiTZ36lW__v|>ETs4W{o_Y0ur=H| z%n~Yp@DKX3IU)h+uLIcM50YPv`WAGdf1$qu4_cfEv=YM#YquYM!Xb=-f6!M=-0QU^ zG@J(cfPd(7Wu>iqwMTb0Nhg#SNKuVQTK+ zkPr9=ec1O-+tfTGVgA5;c(D!jZ#>ITxK=Lf=QSEl)GVR@&Wq5 z7lY^FVil|{bpM?LHodv-mSaSyQu?ct zE-q>+dBXT|Jz;~y>IAxPomA|vlrwbVrBPU+nFGG?(K0KEBlqa48@_$ApSvF--S2)s!N^nom2&jeQ6uYF#o`&#XXrxvo7eCN$>VQN zr5&eW=8+qGpM^gg)MkDOCs=-=>B z`akZQzTy+sEOjEUo1ESudExKp%05T+jc-NyXK2e@{$Nqf;7*xCnArYefbOf!-1h6E zq-b(}88+ReZH)AJb!r89Pw8-9NAYYSzeg8Cpk$BneMUQ@)U}7Ea!UvsAEWsPeHf&h z^dWwp`J(zl{-X=lVV*a~*q<{9`n5(zuLA1$XeWL3H%#n#$leF^ol0uf%+}UqR^Q&@ zlxwR^JU0Je)0DtVI1eH|u@b~j1Q)8W-YS$oh_KaRB%*ScfV6AO0n}6W5HWBdy^{wGkEBoX9gMBW@ z3G{_!w3}C~7iOZz`v_{qiWd}q?O*Rn)>wTOd_3TcdsLwQ0{)p4pG$Tken9uQ>pA&% z4c{3%1a5er+MdGz|DgZKb7IDm>yosI3u(#PR=GyUw4Z*NOrc>$mGQNXE^?U8Rn))G zUmgjF|EArDPuK_aRc(uVuCD*VfPBC|=r@>rIi@%+Ogk)nAUeO#g3vo9{A_oj4gvF_ zlIq``RDS{gG8CWZDSn{7AMc|4A)ipn|8Ytm?QhEL_L$cy$C``%q~;II2bprzzbOi+ zzkq+Kam1&91>)z2E2=N#5BY%q(Dg_k@~BSGBW`iEW5J@>rx&~8NZ#1e(X)xdCyKp#xFJQEi~JtN%GHVFFjn6PJ%w{drjZ$nsZN|@%#=OcdefWxbdByzkl8J75%)K zTkYBFEAi6NcdzX?I^eV=<2JL2HRP)}fz9j2x>>&Ep4xh^!th_K1-xkf>G*E-v`(u9 zG5F#7vC%CXJV>j3$p1c?>6AX45BBAGxM}jfeLZ_Fp!?z2fsFK!u`>#|IrpN%+0qwS z!cPMP8QX-(&a3k|?{87YSDGj;6307?#dfD3(fP)O%XFiBBx{lXkir$0ip-iY&sT{& zHy_i;p_+xk(qZEaq+f)g^(HYPFY#trSQuAdwr7`zct73DM?qqdt2zFY*H557ZZrAy ziQ&341}pKz7Kz?h3QO_xRQ`|;_@^g7`WQH&%bt%-NAA`0JnChT8|T;y9~v?m=u8YQ zi~Y);I|VZY2bIOE7&(f{BhgNu7>B|g$w6B&;=0|AntYKyme6%nU&tTw0{@_o9^b>@ z{u^4Tu2S1d9Q3JkvhQn5ByQ5V9fI3vG+aKu+X1ikMEr1!qxymll^&q;gm z(~kuIa2;MJ`ed8`TeH2SVM1m|)vqn&0s+M54I#u2)VI1#Y%2fgE|iZPj{JlEhVsMq zq5>G1)gNz)@rbbVMf((CA^`#VVvUaYhuMnb9DCK-`~#mh6hFQ+RA2B}@cf;?eD6v| ze3o%=LKfRcjB}?qBL;VH(1E2bv z5kH_0`%Pa#fBN;54Yqray-&wgrA3FzBzNLcqo{wOzw{{n&G`_Y;D5RfJap!AEefsSK-m*1!6iIIhN_I}Lx4fq;wiOY@t-KBoMtkHIS>tgVI(^5TH{u?(m!z6NZ=G7@4vA{XcJRSRd@wX9NN9!?6zoBzHJ#Z0eUD2OHFBxDxwb7Jhq=%52 zr86geeb?f4S9ZPZ)(pf&vy?M^Y*yjsRQ`|;_z(LPpH(BON`rHG@_oJf+=`dEKjQSF zl|KfII$Cyyj23-kp?w>P-elr!_M9=JZJ*Xe*6Dp`v1TkNd06B;1@( zeUnU4{@@q>W@Xt-K6^|1FX?%3&}_E1NDXHp?yj) z@DJBvWz@Z|nfzgogMYYAoe%RhSm!L}9Y%(zg`8v&hHO4d<|BTfzH7!`PUWxl0Og}^ zh5Um)*Vw11(FYdzz8hi-wudgHQTpuvZ~v^L_OYvEIDSGE&a-bC6i(oY-K+`{f(=r7>ks~qtO{^9l0 zSMWdmdXUUIJ(Z9IGNFF?m9vas66OQ+FZ7pq8R8%KOvp$4Kz$*9$OrtlQ~Ge;4?@dz z-5vzs%93dQzn>77^*Mi5BY%qTXT>;oU=G1GWpt^ zeYB;wWt?x%ZlRxT%i~dBP)R>^X3iO(Popd`5sOVl(zfJ>-B$u;o#Q9ASe#km>M05sgX$O7XhS?(ddFydq{u86$x<1jh z?%yc?sW{BqYVfg*qj@oLNekcYdv=&5-H7~ac_Mu{AM87QMfVkGgWY@mKHYjo?=#Q% zlU5{;?=_$upSk=Y-Tlw&qGfw3=rb3#$P9!vv+jxMcr)j3r8^!$`7|HznevZxHZnKO zcyQ`x-dA=muphc_${fhn@H}H4zF%oauYvdBJxwJyIEpu^Ij_L z6elFJyPOn*e$u_E{2?Et6Uu(S2l~@jvNM3gx!;fdc{J1S&zU#!X){kM?l>!A<>VfF zygC@w*LoSspUQ>(er)>d(fy^gu@R+Bp1Zi%b7uPUhAS>g&3`hJka+pn?UvLZ)|-Qf zAHG0TUuqxr*8_Mx=)>dsS?5moZ*2cBxrWl#D#X$Ck4O>@J9c>f{Uux$@Y#PwWQw0T zym3?YjUVru${+Fp|DeC&UepJ5?Qbl!e-?&TM~Z7l+HuAU{tY_~2#LvO>vRv!VxJrM z%%}Jfqv{L(r>~$7*U{sB)PDOgb>XHfi(g;F+g#L3l6eoa=Ns@}p@;Z1$VdEu&h+)) z{`dU{H$Uv6_wE~7NoakM|LS{GjX=*2r9poI|Jy?mpVRf>F|`j3&H>k9HMlIm6~bvw z2rt^X`3#p90rLU+ceMuUFMB(Re~M4w2kHy?Lp~mqf6zz!XE7b_J&%mf(I*&nX#T)_ zfc`y|kNOMv_xXhQO!r6p%1xxt;GbaJHLM% zex$sTTwC>ap-aSsG3dj7T-8`&lEIQkTVb4yTXQ4f5}~c z_3!(aU7kjcEU z|3bTweiBF2iL)_pG4KWZ!-}p)V7&u^m1TzN`0MPlFa0?$=z{_g>d7Y;;H$%*&!fbtjos_z6Xq>o$M7nP5T#%2u#4F~w zib0D6ZXGoHZMC~35xVlTQ4@y?IY&@@o*5BBR&-4qB35~jH(X=RyE?AIwIfjekPrAq zdcN#AhxYsD{pp=^xu=#J&7T~B7~kh@eI+r>kvTvtsycLPxo^61sJsQq|ki)Q!o0u$2T8S$y6j`)H4ULG2o z%73H~Dec?R+ z+ltQn&$;0Fyq`0qFSdMVK|a9$7JkI%)fI>zc>eSi>4N|N)NeZA_^4;=J~FWEkYT>u z7WTQJzp|?i=5f`5k}n9KOza zQ^Ze)9;z?o5BY$9&<7vcLRFG}x84!e{4?s~mgD%Cvv}g-m9qHGvB8<$3pbNX8t%_o zHnWR$pUj$U5Dg~ZYzpBHYW2pIOE1n-QU3dPA|yD%yR6jN?)V}Tx@x8XMao3gWg-SAY+0R#Wdj%3%G>c$ekjdRngB@r;n0e{6xXp$VHult(3d9$Yurap~4u3H)vS#Xo-c1c^V1 zZ5kW%!${-%eVrN(^5knv@y&D7cakGc!*{DEEbz$tD1XQY&Vh72*z@Gy*VSoV4qp2M z-38eDPP@+x$G6WL(pAHT{ZlR8?JuL}SE2fPy+ZjT{Zwqaf6#$daPInj)+*uC&ijI( zUQaCdF1}gp$%;QfluH^<36e{`1`-E=v>y+`J$LZF0?nrcV|(#G!ejmfji=}FbVPV z-}I5*KmMmbZ?nW%`wx+Y`1d%?>l-bTaJUcsg*PGoH$F#v!u|iYg8%<^UoANJ-nK{f zB+Q2edZ>Sy=BU4}uR{FKUxE0%;fwf5%R%*B>x=S7`$RF-#F2m44_)sgw!h;v39-!l z`$r$q{DJu(aro3!|30xq{U!4l@qc*s?I}J}(-1%M<*2@pKjZ`cK_B*obzO?!*2~=? z_{y~^OTXB1<98!N-db*OA+`2*98x7)=?Q$nFSGl6$qmD)M=siU;T3ZP0zQgavik>g zVC9WiH#6v#7@pRxnQ*abCcb7L($|^!^v^E6=ftTmH?8XX#*7s!FQl!T)F8b*V~i8a zhUg;MZ&kdc7LzRp$J%x~uEG1Vo?kSyQo&tS1ZKD`{X(}qxNxZ+widV4cNg=s)F2Pq z>z~azy&f-qwd@0aH;BBHfcyuqu9(t?{lM3MTeEJsX;mxp;D>8=26<$hq%W5EeM@A7 zAK&zNfS9}D=bc3=$9_zh%p))Bt=d@r=*gXi7?jUicjSNh{`+M1idV#_M`Q7?HNxy% z(Eh~)tS0Xr)TEXBjm^1Vo?7yF2KM8mxbwH8-|z5#)wfz8;EE?MvAm2ahmg_^?aWy! zM&zo)D1XQY{3E@s?5|&N9oEU_nr&Iyd>D0pYBgd%e`xPr=dvmTOhi?5C{tAkOP+)3 zyXZK|A9TPsJf6NrEbZ(pPhNtf=NZw^`p^5{HaES;pQRIVzXLh@wQC%4;HP{qsxRpM zZ~LU(PfTBNem%R-|NXiKtnya3kZSK9Jb7O%b8EOKzU34D6raQp;%8vcb*jD@Ihs@X zLq3;nkblrO@ZX!DA7jYg2l@Kv{WaIa9{$=R5oG0J1@mp|H?W@veD1!5__5(d^#z~* zzw4fhI`-}{ODTRB1n{pUiueS6{+s@E|NrfI+JZ5SYaT?ixrP1${?i5!pa1Rk|JUo8 zZdW$!v5O^PK7^Q|{-rHN{k2CE@xMDB@wvto@w1$X>O013uAHxw}G4m~huxp1mO|8n2OFt}g2nOOEwKa`-+_Bzg7f zT7)yVlX;HFKj`Bp7N~f*K4-t5Sg@q=3w_=5|L{9`RNq(pGZ)^!B-r!w2?py%3_Zzn z{#?@Oj{o|2nICuF8K*2Z%;LkJ?LRYq{LHxVY(~V#m|ls@*QSgg#&2j$(zDVDpO|sJz9V2Y z`82lgtQe0fDNf}N`K+*bEh;(V1w*@*R+;If$bLVX>bAY1+WU`@in2ld2P!L8DXZSyxR-agKrrIe7PJKPVr(*S93zXhX16OTci5!r(R%%+ z3z?oc_=oFgzXohQ_8sS{vd4M8RJmQcXodgUf%yD(7V!i1<-PdM_J8tkrt$&*pl_-+ zFh_HdKAyyPc#Gq)J|m>hVApTAeQtaB5fM`1fl~dzpOHJjKk%td@gqak7ksL9ESP`f zbroZSL+JL0vj_(0!~O8^ycka3VI$42VSnCv{qy@@b0U%r&INYSsa)Co1D}x}7EJL2 z`k)6Z_y>KsK7DoJk_pujUB;fH&|j)$h=1S{{7-*9Jf7|!uEQ#6b!l0}`IR`#2X_B* zqW%K@`6iD}@!2zo_<{PiUq|_a9-I%>e_wCFLUPgkf%$M`Rl!vM>b*hzb+Z`p&wPaV z1b(2tkU!)D{?UF7RDV1t)?4@d3QJ67_al#q$gC}wDp}6E=j9*f=fdKe6<0r6y_@vc z(VnHfS_krgPCU$NM0cGmHs8~kF~Ki|nI5Y1&XwjSw9dX* zzbfJseyQ?A`m4=LiBeHto4yB2hzA4mTG18!#Jg+HmZ;yL6A4PlzyF`#Q~JnH6#IOz zKe|4jiB>+QbQ{C2YiTLV=bBrRs(}Ok{*HR5oZDL#-zJ;DEo-}2IR`g>w;p)LninZ? zW@xCDH8Tw5^MFA9>wfh!UEhT=-`%TQ<2qW)Lb{dg{)=8cFu(DLJx%Y+DZ4?>X>v^r>oi$ z&j8{~nLv57|8WxSn@QbIg*suMmK;dfml;iNHG3rzXPHV?Yoq#>Q2Af{(S4MweL3|y zYZ{d!rJu?~=Uqy3*+14E*r`qFreY!mAKgAI&81$a&XmwH^nAAF@83@pyKz);ObYW{ ziuk#^4%HX(N9!_bp8x{%(e+g3h!>}?@u(WxKf12YuIntFruvj5apLOi5{kXaZIm3@M72MLL78}|0s&j7K)$gdMH0p z$~X8w&gK!_SD^BaqMhG!t4{lx33Z+T8uVAQFXI3C5yU6#1N!h7`CCTq7lna7+=ulO zD{c6P<1zx~gXSmHzXnH8e{o47{uk;XKKm$sHfW>zMlezSkQdq~iw63zqWe*_%yu+? zU_Rt$q5l1G0`(X0KTiVj$-|5I**F{37xIUEz(452ez5ZTS01Xce2Dc9&mFs@|`LoEKj<@`e|K7l;m_NeK=13x@1Klj<;ZALWe^#oe0 zu%o89LdK32IPYGGSy`ML*?UYJD%b+m;qhkGt$68`uE-pR<9Jci4(UBh14x&% z?>Me*J4QBtL;m$#kUpI2-{%yf{CZ>PekSIeeU%L6<&SjiseIxn9ngPB)j5vn3p`n2sck}W0Qyzb{Y>oa!L&)W#9gG= z_Kq_=$Ci=6PjfP=FWM)Q+6Q!(Q0IuFbRH72g*!g3$jBwp^G&F8uwRF5oLuyFm%x6q z+;jcX^oV3K`2pgyq6G0XCmq$d_JsOW{^C?VUw0t?pub?C48Z$ahMO# zzq1&qzb=g+{;Tp3pQln0KTzLT66Fv2!1urRf5_%ZAP&tRm=8BRGp71?&=mDo?sLTd zx){VK@RNT7)fee{(;y%4kFGyte_c|4@4D%({XO>k#nn8K0Zp$}@xo4tDtTr!xpPU> zBCKZ?;U2B3M=VSxpFV!Lz+!1IF0m!q_k%%xSQZ%b7 zTEHv}f7-u*U&Q9`=b!|wUKTKL2;UcdVJV;UHhe~)a-M^>6rRg`ziYWQowSxf{(D;b zru5N%KfxD<9{=;XoydO__O5jOj8$ii$=k<-bPp-KrQf>wtZQAOExtNY*g+#e9anYx z@a6cXrQ}{mVIJqJOUczQQ9h3Xk$aJ@2JAa1}c|(1iD{Iu!fds z*e9uzi9Q2WZd?k4=}^D>jp7 zhH#HT_3fwfM|wrn>+VrH|NOrxbbmjV(LQ3hjxU=;kIiZ5+^?zEg=435>Wh1@H1bNi z^$K&&Br=}jXR{irFFHp8_57Oz_y>LHm#~jZo%#KPseQzm=zcicU&cc0miXIfl98Wx z{=(JGq<8$?NY%X4fEHmANLmj(l5=%tex(= z>|Jd}^D-;co{{TKQ{>8+5VWjfNnLr#y<$Z-y*1STiG>QCxk6g){r>m%%wwPS?q5*U z$WjO?5$Ny!!de!nY**Toh%dcf5qNq`jF5ZZYACU8F2Voh5^K$?xAaoczR<-pVo5o= z%w&wM6ee5raisU~LhSqclP(MBy)5ODMS3h(2_i2Y`FCnW`uE44Uzux_!_?|}l4JMD zm(9^)=@suK3xt^31>}*sYH^yxHqm1Rb~-fnvE_e~8P8(z|v zMBm$?Bm13x-yy}aRJ)VDR|MtbiXs2q!UIoa#v^FnsVxsbh|OTD&tmIl|1Rz(|`=QmR~j=Fb8G z@`rp--scFk)?({CHZNtS#WJ%w{A-^FL=Z3jZ2h}#B_eN$I_Z2ridXYpJJ2~Np1Plm z$xl6RD|Tw}Md=GCgK$P%UgQIhL_Fgys_)5Cl>hfyKJDG-WoXG~R0a9|*t7K`9O9JQ zgff{0wv#3PFH~rLao;RM>l6vJe=??6>gIEJ?qO!E_>jw%_k#@lb=A%g4OL9)cSp{v za9-lw3B=FK*QmaZe7`Lo9G*`*wqoXN`&@4(_y>LOwS>&3Z|Te@hfc?epOz)SKj;s= zAGU4H_oj8lY;ybFwg`L5r%cOS&O-=mot@&da|rR1>WS)WCLceQKjhOw`F~95U$5A^ zvUbit_4D77q*-e>$Vf_ScI>iRO-r?T#dS@Cm+-ms@D_*9Fdg~|_^h@<{6Ky6xWD!0 z4+bzj#^WZ|CgsDjIofD2rnPp+b{;xapupK$Ng7q?SY<}Q*NzWv% zj;6#gf&ZBGh);KlAJAVc_hR&Di7D-OBu8WI$3G145BkoB!;*vhMVS5fHI}#T{=o>o zH5_Kz8A(H{Kds^1#`~%pylK#1?t_SbEi1$)_y>JH31c3f`6hoq%?#xO{z1Rzc1Q0d zhXxJt>O@1Y$Jz7Yus-TvqbSs0Zl`Yf71Fdy!$LjB89LHz~%s|_PQ>jV%#JuUyPFXRLM(f(oVd2&cb&c;He4(l2r z;=OzyV=t5^rCMjx@F?Bl7QJU*3$BJU4G2-nIJf`p=y{ z%D&RxRrAB`j8l3a&t#S zuktNJyvY5DOMj38zGVr@N6Z%am;I&oRPNRb?1lGcI^(n@-fUbVVymxAGqN>Z*dcm? zoy*l?i7_}3e8p$?stJ?^r77p%+huJvz2Ys&O zIECAqZP=rWpT*72N8#O~XFV=|NWd4nB0iV@K>RdN_1!v*@-K))`BYKbu2jv=#u$2IlgCkKf+iJ@Q83^sD9>R`v?7vKO0k8%94ne`G-vI z7;GbuZVgt!AN1i-?G1K6K!1HxLj226e1d=UIxbr5sbHIz9XafLz(43`7|RzM+*YIR z*Rh`m^Woze)W4q3QGXfUNBke%gZKn~5-y?oRxUvK|9hUiVe6y$@&@~{=~I{F_4`Du z37S7JA8J;h{{4Tfy?IzoU)Tm*$rwpeiAaUgpjo@KYim*@$uCo+fkGis#!zW8H)xQ# zNitN3c4yZv6-_9Lq-a1yNs2;z?6sfWE3fPQuJ8K%v#vGW&%N&Fe%3k8)EW^~UxJay z{}tKDpWvU;LX=<7AM^nqz&!^%3SZ@KjXm8+L4Sizp8cQ;CUm~^iV>%s{D{qcrh8}j zbn&-bSpL+dIf$^oH>)?a(}!+ZDmCintu;j7yk@Zp(=@oer-ulcm-*hJTo<+|+-(&j z^wkt^hDA-~?okvkpE~#Bl3w~3L;7pZ*_KuVPr}>sm2!;BC;rwIi`MTSzMrscx%AfX zyA7T4MqB&4r3-!ZqFwK{{6V-)X!XVtQszOMiI!GKQO zwo$gXyq2$ZBv!BtbD@Vx8U(p&$kM^{qR&}ZnGh|`p;1obXA&c1kUrmw5r0X=%HsK7 zDslfe%cADqTSWZa`Y!BUo-Ky-xJyZ&4Ih$!ER8z;D)>S5qUrSgc~XUKUpOs=eZ&@XtA?Gkk>qc?TUou&A*7R!-> zGa?DVuRS*ha|?Kc#~vcKI2_-PuUz`gtnqjd5#jmyCqFcR$YTAY{ukSE;J=^UqNd>fyJo{ETVf5BLc!7Mn!(WmD49m}08F4-uc6%x|zSy;6I{k(%Mf8A3*+Y;o;FD>soJI z#rJ1;H$(;4)3S%QJD!|tNu-pIH2ZLLJO=(;!1{+grW5FpGngb@3o5j^>?4rJ{3r=UWA?gNxm<=sKxqbE$35IHz-$->KE|u=wFGJoa8-`NZHZ z?EN6?AKjn~;xkcw&6tAx5B>~%fc!Hg2jv&;MbHPujbY=9>2{4@f4|-8ft?F|BPiC@!K#yg$ui$=j5UcwMvU*Y8jA>i#BpUjugSTXD z#FB{5`gG}x>z*T8Zt<=cTOQl1Rl}2sOzP-%+{g>QVQ@+$^a-zN9;;8PKf_-_e&>HT zHGN4(J!Q3hpNDaeOOFJ%3f;Dvk4ac8pr6iBcOA3&* z9=wV?{czEt*2Uj=NAsR0y{Lc81N}iCq<1ujf0!4V^7c?5#*TA&&937=etUKmeZTC+ z=}8`b?0hn}Z=Hngd|tj8F|KEWXy*v&Fv8J2$rE1Q7oNj>M zvrlCup%Oq!M2}kfp5Mv~O6N~gI{kt7X*BX@ga-1DZ57I|R8|V3Kj6vKb~_o z@knnocPHmoXq=rfeVe|+a# z-WD}$Qe=WadStaA2K*7;P3lZZ^^36K^DxP{cUPOHN|84C&(1t;+0VwGLq<@6`x9H% zl2Bh}cai@UY6oe}yK2VO58$6K`u0-c@>~-1fpY==n>dZ7M|>x+_-<^wgu5Tk#iRNa ze{zwjFQ01U|JhQ=pWvUm5R~7CuaN$rPrP*F+p<9?Ib4X3=C_gl(&+wy`(btks^9y< zwM>11|GkuvKMP3YpSX`GzklM*;o^LqwN>WDXn!~t)|6Dxk~yV~tH0JCZPDV+qv?yp zw4ydllz97T|AWzne13)TiHqgcE_B$NtyVo})#+(l`z(ChSI{rNt{!_-WH5N%W% zEF1sZT~f4-np^JV{np(3Ou$R<==2jpkJX3`Np*5Hy27;TYj1z|e%tIKoY14ALux5QR{tCv?a!p1?khdl{??XIQrFeHJy@H# z_!H?5`fQfW5FNR1A~t)?Cb0yn|MN6GF5fpDcF@G)m#;Tmmi{_RxiY?}VAMMvirYpV zz4J2s+9qQ%(5l2tx?O=38$PDaQ++hGn7r<{{K_rfOFfj|35SvXXy0kBjsYL?2kmvu zx^0cGoM^y@c&I%>eR`@gsC4KW`u3}yyJO!kqKA7U|D3Tw`MqLMn?6Q2fI{a_!ht{F zLwoe%IM3r^vkBl2_^7R?BC{T!tiL*gHs7Lob!_wu!ZHl`^If|ipSv~?4G&L7f1E~{j5Ec5?cDWdAuNIOlQ^oT<1>v5mD5yYcc5Hw>Bf+1uBv{0aJ*8 zt}m~~+%M+)H3Y9oU206sa5!6%v(la(_x|!Ufr2&k)>T#RvYAFC@SHxqY`%5+QDWno z;*s-z{XWk=-^ZJOw(g_7l@Wi{0CNT(&Ifu_;_E*Wv6ERGKkl9oo7*INJWiGV@_bwV zcKR0Y*_NT?-U21!MasTNkse)oP_Vklx{VX*Yk201)c?lPpbzku&AW8xPHh$Lt!m=; za8%HnVxIV13d+ZSz6?M0vV`13utE3;Y2e#-Rn>*_NvZsITr+>tP<<_ETLKS2H3`JnoW@<#qQ&qV&r_d)(yJO<^r(HrRxco6r`eg}ol{T3Hr zhVCD@AL^oRF!d|q^p&Zv;+4q%(Zi8H-47uDe3y-7@{8~}{W*QmcmwB)xeYzVF_XG* zXTQ%PK95Rq1uR2qjI}Bey1Tu5e&k+)mt3cNqNAOE@U-YMLCHwsqv)7V%hvCttLJOC z7ySA=bkpVB&uYYf(`WZnsLiIH?Uz3^C(D4IDiAi);h{S5=X@zuF6I{*?7BZP5rHt#4&{mEsenCJ>zwgIJvY&n1hWX)|fvGnlY?!TS>J z5XWyS8u!V-MVI*RxRATG=~UX?QZAy~@kj2RJ(agy-+#{a+lKTBO+)7<xmUbfm~?@l|%?m-K(mFy#of*}S|r%QT^?b@&!JY)0(l=BK8) ze25>QdS{sU!dm^-%qZX3(@NxNosW*!1*cILCPtqfJyYC>?onW;SH}jxF#vVRuW1>vRu>M)!gz}5lA7t|rhXa4W zXYr`+5eb@W1TAUc5BrdRUs6R%mml37(X0NmY>}_eag(@(1Vc(~*rMBn*fJ>W42^ign}`RUDv1-9PJt zKTkCw|JWRk$Uk?poqK*Ek^e9uyP`#ZRQ0&dmeWmHfDgD=6IGxbza$@5K7aOnvP)LHd|NR;?UrJ36Rw~I} z*ul1WcxzXxc-uk=+O%x2LcGaFdWi8d30$^|kJhE*;dP!%FFGG1^wi&;uuPdxC+rC} zD~`CPkLL3@oXeUc0?GunXt7o6Jr3NoF*{Q~nBI7<>B9I#1zNzB)OIy4 z;Wvo!>^{8FAoLoAx(^t*5|I{<+wLz`Bt$@aSDfT%Fjr-xKJ%_(1l)sJ){FXaMHLTsbK8knSw(_&x zX)${5A<1LIv}O`2bv*M0>B6-0gzv3qr+>=@eP%c!{%jm-bG(3Mkh>-!{p*KetnBFF2uz(-(({h{{*LApq(94x)h!DLd^jiQFA<=%d-g|d8t`EptqY?nJhth$ zJ=#Lpn%$n;Inj)Wu4nzj<`=C?=N=b<|DQM&)UJ$J<2B1|3E&U-sBNH5`kgS%|FnyC z?9nm2xyXtJf0pjAX8hA*HiOBp(Q{cwf7}S^Q|N{G1OAVn6+;h(X%XHbWs3$c9E~CT zbKq<0Y5FYr#E zYT5WxMKK`@@Zp@Fy&l=Qf8dd|D|LhGhWGmh#dl(P^ndRAsx|T_><4_bK9BWv82Fn4 zd{_@H>pMK-!j|1{*A)JBFM|JBTnhN3KHzh8PYvV`abQ36;eJ@Fgz8uS5~?pxP2_*o zO61S~HX#2%e!p*xWAsOOo7ws)X3tr{*3lcbt-;~`f%_qGC92S}jDI{jM>F|Fah$M$`V2gevB`eFRYqQ<%j_*lhQaH|MaBA4u53@{8SeRDK0cby zzccyajoF_L6S=R}CSy(-*n&r)OAN}Vk#Q-~-ggGw<$0?f@ZFadj_cQ39tlXBhy_J2 zlRsm=ketuEVb`wyj^DeESUPHmFkXLdPj9odJgND5Tg8qpaWd~n^{4}D-1u))i>yLE zgz$w@ww0fLw1#-K(>e01=V4y;hNJbgofCi5D6Q6IUmkJqFSzJAoOEiT_51G4 zz-%t-rp7+`%70cBsXBdZ1OHAI;!iZzF!)XJbH*y^dXY-AqQ|M<)93CT>r<=yIu<Y{$sCV)fr&sYBR?j09vZI;&*33wAoDe<* z8@*bw_tU-w+`R+%$#1pjJ-0StDKb@itJzuXUZ2>-Ezj0F}35b2sp%454 z-yrW$S+KSQ_Q_xVV1|hZ8`qZ2???SuqhL#;U!T{4`ch3{{hwRbV0B%a^AX^$#qtyk zk~B!r2Y3U1wXMX(y^Ydr9B1$v9w#D(v3Up|o{w9l^HS z{V9C4U&y6j8@cD1X#6sTT8ercl_#%rgGW4f(i87B9QPN_yP5v0Hc5>jrradWW~%iW zr5t;G>V;(+&&eZDq`1JGkhD1y7I$|hac9QLWiNMh<|5pc;8Hkam@3kdcraR7PpQ<>v66QL^NL}of@i*dnMK0-S|b2U004TUW4>U>o4QL zAI^uy0q+zpv?DWJH)9ohUYtEoIg59g`n;$8?Qr!7;y?Y=TuWjtyN<$Vd!YOxyu!2S_~QeM{Gd)^lV1_0l#@}j?emAIF~;ZhvIl`C==}7r0Ptca^2N|PyU>X^wDMW zu##N=AMy|A^{*D;uH^1l)SpixJaZP$mu)wY$On};_ zF8>30L7o8*wG;*Z2Rzs}un*(FANtU;cpOi-9}0$OGW8oKkLnBj5B>~d{i8P%<@ay{ z(jVc0KHxVBM>+}Sp!r`u-GlBQxE~hjq55srNA=Ydhx{*Tfc&{V1o@|`bq|wYgtLLo zOaJ$m&^cdm{yRQ@gQD||U*C6OS}*dtReSa6%g1?cLA^!#-beWCJjKp)dEch}bo;WD za_)KJ!1*nLt@cann)u-da^LA@-Dh#U*f{>!@iyuC8DIDF2Z_q#<=b`-kvTc7!h)foPW*Fns^KsIJo)Eky>KC7EEdv0g) zF+~_XGKgXIIFGaEVCQYg`6Dy#tSwWd-aV};P@7WEJ>LO+*z<6HWc#ch;apw|&!+Ue z^0grTocCwr`BR!x4qKVOJ50O}+IjQyt2G3xD```T^hbSr(3#~I&YtHyJFbb@j!zYT zG4%_3UVof)4B5DIN-{fd%<0Z^vpUrp(ZrtHnVcVn@{8ik!yrD?9pbIY;+)53easTx z^RO4xiyi`Cs3+mVUwX2Yi1L?gyyfXhl?Cq!{u)_!IW)C!_qfB_RD#e7FzdSiXQC&i2ExiJ3Xf z{R8*IigHxHGLfjh!2jUSPKBwAe{7|CnfyZhKlOq8(x1~~$?UNszASF1j#ZCbX@eEw zPZxaZXcQYtA2!}n_Hv>+fyQ-6v@RD%{TtNX`tcuxiv_voqiDQ}t7GrMx8kp5&Y?HG z3YnC)bTapR6xKbySH9K7Lzu=IJ~{L6A2pgGamKzPrGXcCYqecqk}|Pq$>m9B_ZkqN zE_WKfzR+ic_L*Ub$9>LU5i3?t8uP%0*mR@HZ}OOhbXQ*|!~et}gwMv~cmob6 z`0@!~&n$T)NC%s)tx13Mf|q7wduhlPDPpNEm+v)ym)e5ndrhbe)^T)755mTf^xL`Pf%|#neXgO)gq*$Le~O)&B;iIbr#Bfi_qA zyL`F7RE!*_8|Z`f>99KN{R3?PS%j~2V2JCsw$WJ50v=c1evipv6>n5C-Za33nI?cwx54)rM zqJAN_4){Zh=Bub(a|{(!kF8|m*kNe=IGm4?N*=5rYI}fK5iEG_#z7at$ZH(q&$DOR z82>AY`}WIF3!Ylg54UbuK!1=Q;D0mB z)CBnl@w3C=90OZ+p35KV>#+Ihf4?4$d$Z@gL4p6x=OBNg`F@>IzlzHnS`Ykn2E;o) zAg_fK+JA!^2miBixpA~EkzL=v4~>J*2I5z7d4~HT%@x(}vV2ru)zgvxK`%J3PZG-S z#XO`x%%gZO+4B~%Eu8-)ekm=Kxqsk((71)_7wQZApRyVG)7l^TXYH+xOnwnQ=->bP zF&gjh10TUFOFxVe9&EU12mf~VGlCfGa%;YA?0BNvtX@f@zJvR`C0bWaEzowCjZ2(E zMBaOG_Q!jPzx?8LFH(DVq9SqMoj>iIOm{BCfp%`yTC;`ImJ^yusaNM^84`M}C(};d ztK}t&D)Oe-N)s>Lf_`chDih;QwpmzaSrKW+sL?ahr;#Xr|L+n!d0)ifJ1%!uTd%Z+ zwvR{rH-)cb@B{V_YLN*h3?Xifgi~cxI)N( z_g01yWBjTVmA{#jt?y&Jg07s$_l{JOIP&XzEjxxz+~;DojHnE93!O524q1|Ud%eiu z6nynb(JN-}&fnH#J?LfIr|vyoV#tDEbJP5x^htoo{W(IJR0o z2XLp}Lb#sKSbu(PW&E?`M+KAL-7Q9%uctw5s`ws$T!^ zjS$&aht>+b%-Yx>nBq01LLczqeCYvU&OUr=vZRy5M7}DrK2PHE1na>6o0ragsJ0*t zFI2KAUaWnJ0(@9^QQ+YL&7EpE@CSUD&%QiW%VgExf9H$E=kg|hANl`@2XER0#mLr{zp8bFw}PAsIA6FHLqjz2OMZw-t4-;Imm~j z4F}#2wm;Clv!(kIQ@5%UCNlnK?;RR^xhNIo7x4eDwqs{sTxZ2+ifwV(Sm5jJh%>I%8=6YZm7*P7R)T_Nb^7Et_un{e0qNf}Q6c zk2-(q+uPa9A)XuWTr1z9Lo8k}UZz*(E8lAVQQzgKhSM=mKJS~MvXGvyk}=h5iv;() zY#^VgUJC|)^58RJ>6?Rz%(saDaW#y=-%vvt&kUN#-J`HS+;|T)?V&D(_@Bq+JxVMD z)18Q2tM*0D?ri3dh!&h1xGWC;IQ6pk$q0&ucJKEivA z+mpu_{TsDLI2nkAQuy}MD{iFjrv~D$#oXjaZ3)0vkFjtGZoZ5IKEnA-@#(MA_2VMA zdSr1~AKamuDp7txf7DiT>j5A1)GOY7=uY=4)^Elb;KTV~9r$L(GUQM2&*=pyziT9u z8T}pRB7ORXD0ZqOe%$jB7>Cw(xv9(PL?cPH^Y6_ZZ+ zgWl9Y{N9W`6{{aRQNSPYA>NOcz=!r3?(Df`;fre?Kfgue^bK7tE7=fZ62{?t-FtJ5ua(QubF!gz(3cdr$9~u9*Y#cLv>2ot*M4t4OJ@ z{*9logi)K^BIhSi9_kd;|#x3#Jvit`PBCv2Y5H&z_`IEhl>rzKFKh7HdtTM~a+J?p|Z z`LzW8-dZR}X(3kqRp6?7OcJ%;XAvkM)zpEnL2@+pc#Hz}ZpwA*zt)B^X5}2;= z@i~odV_4n4QM;~9D~~y*N2-QQ4dT<@}<_td?BrxI|XGd2g;Zh#HRHI%4-b-|d{wSX=_-uL|Ggh4Q13I;+vZAMg>L1gm=)US1y0_~z~PCyYPq+$+tM=tQRSJSV|0(__!(Yi+O z`NNiCS?RdP>rf-s=f}DG8R<}lga17q7m|+Su2TnR9G|<)^fV6mfS2dIz+`lUJ`Vf= zALb`tE$E^)c(Qe0#?=$dL;HL%@_)FtoZ^SEz7+5Wd{_ti0Dr)T`GGCm4^N{WGxZB~ z+j1Y>JLtS8N$S)~6G`D7mgh5S=9FqCuLJQ|ePA7{lWV=TGc&T9iHWB*-dX2g1|^MK~Fua|9kz1llv zgr*kp+Z3`D-;dmabq%pUQ6y-LsU2Be?YVJ3zdb@j`m6T|K6W)&k(BlzE+<`|kTK>R z|5Rv3w~y}!eqQ{FjXT2od6=FYGBeg_Cs|_I>?FN$I=1^&vs-l43y#Ojk6{e|9UnI^ z_^)h6rO6(@L>`&4?jU~O8KYtrhPI!1fWMefK#rO=iS#a)tx@>)SpQ(n1#j!zOOSI@sWRYvFDe{cA2=L%;_SvT-A<{*8veoSNd*XP%c z`BZQWyZ+&>5#P+`*B`R~9p@*NxK-{D`C}EiF1=`S;TRV(|FXIuP2 z=|v~uMb6YLO*%_f(~r2j(tT6BG>y=(k z0)N2Yvhi9hJ;jea6`Ee-uP(^(2YlllcFKWEk8$^n-}2`T`T}iyhwsRrYHOSr|8!1` zHZ3+9hdtvzVDtxlcDEz`$60)%7z6%-KT@yYo&=I%l&G1ATx$;C~$*z03WC3U^*~E*tKCFiJ-Co2rcJOCtgKAI^=| zd$RT9h^gI1`hz}y^6&pWLNtF2^S*}eAHY-9LG`O}Cy%Kw@c-rw$e%gp$UoL`f94nA zIkG%#SRML(7g_GQ=%M{b3bl=tM#=;67hg1Ki;ov$^TuO@QDT8+*cBNJ&G)~*czXu6 zLH3#+U3GAO#O5?ptnOOuZr-q37N?RL`|!ldkqs$E+P0#d_+vF1?eG76l!;Li%37#w}2Y%ULdRb8WJ<4x%fj~C4j|}M$@ObBRjN^OmOZ_q5FFm<-(K16`Caostr`)%Y zczuM^KjJ>py(AIg7HVq8Ny+PCppWV&hsNoy2IR++)nx%9`>~R_GyD$e7E(d(EqkB$ zh?3gQs~$}J^>>?;+tvn&hi@iN2PM`8W>4>uVbSC>;Yo@IT zN#~*bNdJZ6`#oQevZsR9Z`Lk;u$jYuqoeO0C;WukQaO@r-L)UTz24#Z$9wS{ zzSpW@(uFTy;p?M*%o>|_fIU|RwNWVPcU}pIv#$c>7yOOJ1r32e;9J}EDb!BQr@Zyv zn*00hA%H*Ni?ylePJYz?`w-xpQNxfw&uLgP{*lJ(NPO@n{CX(T|3gzv{?n6d$Ub-V zlB|u_aKNvK)_H6cIfWiun$COMFo9e#uJK)5VFcs{-(ih#t>?^TaMgxfe0^8p*Z0a; zf7Yra|M=fmDJ~y6hdhEcK3aYJ05v7%+PzE7Sy=^S;^-^4o@N2Q<&mKlRX&%f@maGx zPRW>&i|4Ck{TENL`SE94TN3HhNP+)9#nkUJ|DpXcfr z&I|s9R`Rmrp^f2{RM_3fTYYn95t7H08|*xc=pkRUwu}kx|2-L4&xXgZ-$@$7kJ0zPsS#erj2jz1leU{@=}mbrIk8*6xa6!bdz z0)O+~>_tX<*AeR)*FCZwDolIN9j(4;ga)nWzM^WkE(US9$LUl>2A@_QB`ANa2s7x- zL;L|>A}!yhS)+my`qcNqOf!?}-dg2%UDJxgd9^rseo6Hj>SOB1lL}(Fc)@rw{A2iO z-U1aNT0?UM@v^Y8T(u~iQYm0?>5@){H{Iod^r@OI$M8?GH?fS*ze@#Pd$oPT&Ux9X zWlxUVTKjR2!)Dfnh!|gP$ktFEzCen-FLK>2$kAJL_B)4OGTkwLuyXWx@7T4F8-ZdekI>llnJypoy zOST7eO4gHp0wof6zt`ZwwSfjh3}<7Fo--_-_z1Icy)eh%Tib*@uJeG$1s|k8n<}yy5$eZo*x=a(Hcfok-vxy}(iQXs%Rt zg&vihpm3Ke2%J({tv#Fd$wyp7P*^N5ItgE2g#Y$EEz%(R+m}S5*Ux9I7iCHC=aWgu zKbmg_tEfBTBu({%TZr3IveT;xV}VY6>CA0EPe`?90lwJ!wr^8+EyP>YKagdU4Y32~ zpYJpB(PHEJv#m4RR^pJCiOR^IP>+Cr@Ii7x{FW`a)}7NkWY&eU>pyb%GHG4$>uap2 zX}c@ub;Y0I?ghX>`R@PTwM%(k$ic~B)P&OgVlPGp&A>qCrm4qfu$^a1{We`^Rt?{cUT_%uYUu7$OGsWFrxF!*|^z8t`HN`#KL{kCgIU!@$nA6Y`R@p0L*b1ge5RW6pm&qBe}6&qbJT zaW9dhx5;a2#gCs#?6&S(DIPJ4L^wj+`$kvR{`?>K;yE8a=P~@VMGA)e#z*T-a$w(s z&RCygYgDk)5fK%ZTFY>Q@1HFlEd1MK8?fl-cpu^s!7xey#BVlS|t1Z4s zC3m}BT@?=aD4x7w?KG2}hpfW5I%RRW*U2BewP5l)%Bx-nU1e1skcwV zK=8@Z?6+Nmjvb#Ai(fHuSTbUn2Qhx0|I?O5Q^@=Lb6HAMG+rz*chA)~>G(igmELDg z7E%rv_*3VsF5{om>w4OK;`F$>u&oKJl$k3)-t1YtPE_iaKHvi{xugvaZX?{uQ$Mf! zyt%uO%PY*Yx^g})5u9|&>-!0cUMRCsS~7(Kd{{4Byll>i!DbZj2Yi@spQ@{4acLXp zdl+ZygnPdQy^vnDA<_5A@H_ya!d1AT!1zwlxG!27{EsfelDwwz?9t`LuF;9rhU zhV&99uYiNriF5f!eJ%Dr)5`ht{t?e{R5>*0cl~a(gSE3yFM1V&4{qGOyTQ_-yY2D71$y=THsP9GYE!B(}mqcYpd6B_1XT_o#7vqc8|el&xJpb&f4ewzMZRU z*pKFK;Ha&_!xDeG+YF84W!EML?-6M>lFd4B-KC}3Xx12`FJ3Yab5|Shng7V3G&ebz z$LJ&UC^z9Z|H~4Ev`A4ei_=9RyyGNl3)y}ZbwEnwc-Q=g+<6AhTSo8d*b*U6Y?wXI zFu+cXK=XDa=<_G4f*VgCPXi{khD%Jsojxs?Xf=pl-!j6aXtiv|7m54#Tc zn&B4tzv=(4_fRjK|96UEzv`7AjDMj2|F%VOy#J4U_Ma2{ z`G4X6$^YN@|H5fJiv0htc^GHo{BVeX@`uNovy^?%Oz&-GQ*&dz3Ktj3JHzy6$mNku2R`o9=# zM{F33r|tb8_Z+P2%e|r$zM(X?uXRfCuRlFPOj2l9;9bh(g_!26_x0%zx&_yZzvN7# zw_R)R3kdq#uYiMi_kX^(Ev=d1pWo8W;Irq#2d+c?M0WfJm;bM2Zat$ke0Y&whfBuS zH05duRT`(tzBJmXx2N&3Qg`mOVxfCqciztJDrsi)0seHDMCN79p`4C?@+)NHyrh(y zc0a4z+kcM^T$kWn{ceUEk3)ZnMhFWj7 z?V<+EbM-pr-sbNMR+e+`tHhkiWAsPs`*rzqe;2108i(_lk%-?9_PmMQeH+g=2@yG< zOQ7{HsVn1dF!@FOM3!F_yU&a}7w7}+pFCh+Kc8lm7$+xNefoek@@Lkh_l$qgzAF6H z^80`2kH-7I2Y~urERTMDA-?Iy@Kl?E@$|RrRxSe9pKyGDJjrThL&-^0Xetp7j^Ew`5^q)Jqi3T z8ou9r0;~MXM=<|n%#o$xx+g~9~PY;NbgUH zG4A%i$+w{F6jq3e)8`z@(|HlKxht-CwC--}|K1efK#TBNah5+-Noz6umyUFc`i+mq zWpWUYvE1{2*gvrSQ8C;p{B{N}poSK$p?i!pK4o6}HvGF$+KsdY@=d!B|klQ zY1ViG&AXGJ5Aa3fasRw;VBNqL@L;_B_Q8N)u`hg<2L<}0ekq08)_?e=ls#|%JX$Z4 zgWCSz7aM1#v|m2njMb?Xhx`JMfpJj3l=ID>>)c7eM>;BSdG#*l`;PoLt4|oGxggb)68_0`)@!R?lb5;|}+?5WG)>Zin2mCV-_y6xc`1Ak5 z9mxM*>(RQef8`nc|F3=jU&rBofVdwgr8D)lc?$AB8c${O{1xgO?;HD_(I4WXb^oe2 znE`qHN;U6T!qhL+7x*9i$s3x(_-9~#f#;ubM{sq%#^!L}$uJp1)Q-r}t(_i7Qj$cy z(w6MydD6_z(K*JiD%ynku$x&#+&98eFkGD0#(S5Dag`;D%RcLjC zGh3F-QN+;xuUvfr9-ME}$!QG#mT)HqAI;0;z`CmV$Tsyd!@u|*;wk^|em^KD-7Ded z(y%bzQ<2?^%5L=JUf5nB94z_W$jU{upmy?)+`dAGra4L1bANrvi_yne#+Koa_V?e@ zW(O~w-9FXhujdt?U#@AF8!17X3B<-8dS^?beV=f|uac5R4okj39wgP9%wWfqegyye&yo^?i|S?)1u}*oJy|ex#xYktxK+unXMb1vXIm3 z%#>fRi@xGvb^o<5Kb+P7`@+%RjH%?S={yv_6$kx6PZ$S$7>5?-0U!0hvggU>>T>)C z2l=?dem_8d0S8*(5B-5H@JDg7sWTbd_d3VParJWic+fQIclEicFOfgxmP#`IVR=#! zKKmH`@0bod)Vuue*CElm5r!S2E1gCtxUl-Q4)9wm?$N2NQ%4CB&rBD|-40X0z@Lkj zA^+s|zExCi)8g_!-1Dq}-J^F|B@6g?f*h3v_;9|(kuTMk-Cm4MDX0#KS~s7Ko66;v z<;D8=E551$`4jd7KJ=kw&y52_z@FkgHb`5*egANm7Z;6HGDV1K~&WEyPyE02fq1aaE7NSyqp5N^J9wne`0g>ZlxI$xfA?%cI?$8sIM?{k?_r$q9NoTf z{@?fL)8^+@3dzm62v>~rImEGAv}FBcZxK3vgYrI!d6q=ug1TKJr4#wB8#lkie8n?01av7{z_)%(DG9{_mI5Nipf^rgASg+W@G4F8X(w=wuA-fTnE zY8YP7A3R6k&=f4gvhY05L=(TLs=kD(55`$uhGuCahFC@H<=wJeuDi@O6X#8GoZS`s z$Vh88pTR9G2xf5S>?vUMd9!vp!(XRLF8SS@1vzY-958+ml%#O;HBoW}=utXms&HHWI)N;A0R@+k~%slv0| zRmG!8(C6~|!n);(lH{v7&IjzzZ^IzoA%R()&#sKYXj!}MS9hslZ$`#0i@CED<_-M? z$%a#EnfhyTXViLoig5K^bgbv|_z;SRaKsG5$S_9#ZJFN-n!8-6O&Wd=rmDD5fDiHH zzg*enR}g^5u9$YWyR#Vwd^9hY6F538sbjwrSC`4jp}%nnHcn3d`AjCi7aYDS4eQ#3 zANsM+JEX~*0{(yx@oYlIYA>icj01nbhj`!z@D0QP|FC^S(7$8%;+EE8UDEl&NA*OT z3f_g5uDu(JL%92LeQ!j~;!aV_G=#W&c=SAce}2!8_b**opNQq`zBr5VWy&Gr$?vBq zW8hCb5BcZm5XJb9Z9<&Rixkd;Zd9+xy6PD*F~vS13-E!rTF2$!x5ISEy%D3Etxc7= z`xE8|wxW73hLu*_!tGWBeE6?rAqDubj;cFD7#Paoz#s5o{zjbsgM6j2+<9Rfbc4PS z?ZEhdvBii5=ZVb}@CSTY2l@d2f8oRWf%gO4J3rTEGyX?B@-Vi(+4}9jM*wFaU)0xN z*UPc30CztOJG6s{A4vu!_(mM4Gf8KqQY^e`0LsVHTOp*EjFZ6!WsV%oHa`@V2>0&x(| zQ#?hy_3Gko2Li3nVE29G^0xhSMZ~S>`$mQr9dX^hS4N|s?_WFD@dLl1C^tCdh!U-K zzevXCAVHrgD0}nbwjB5R0?UKLK|ES;;AJx#@&6Lk&fvc%orVoJ7@IS2-?}$0pWKfe zV0mRwNQZjrc2M4B(}U~z({?@cOCEa@KlohV$igu%H*;bKqsyaB^$hO$q~*Q8^)akb zVECgrgIGOB86q7HV2c)gP#khJp4Im)@MPmUlj|)PWVDxE=6DpXYGQDmKj<*HL*9kN zw5@c-Kp%7tV>TcCpT{V9w0qm-ZWFHl*!U#c-;H-~k6J(*n3HIHIqWAZCLVZux~h?n z#!GM|{~SjDd$F}jM>3+Q*+qd`+ASIQK>P~aTR}SS5Va}tQuU%`5gb1FAX0R~t1kwL zT%OV<HcDxeLK3DRGFM(h5yIjUU2*3aL zkyzX;G!FIDKkrpLxx7s*FJS7|MmCtK zFZHBQ#{b~YiUY`(`(NMtBfkUrv-QqBKOBF1nT*h$&E$}rvD1YOkC57O6+4THQ~8O; z;mY^<_qp$DT;9B7k#zP}lV_A0ZZ(U7{APuaQqwpGPaVwH38 zIH48I{2Nw2D<2DX@rUi&;kn$djE`_$QHMuUJyx$tw%RNs<^FidTlKTvQ zscXj={POjyO_ok1NwLj)M>ek6j{(lQRo|kU6DDCg9fLMD{rWz}r^Rt@$I`qpr6)<$ zTuCt+pLZy_w=0lm;jp=`PcMOI=N@`^Yg7quug8QHkK+?~)cr6aCuIvMo%`I8uU*Br=nY(3@F|CT|3_I5=>z_ORxwmZ<>>PM@5jJ6iruB3R|m+bXlY_WwWwgihTI>^Nl${KS-<;*-Xva5NlZ0b7pJlQ1HTRbw? zvw^D*@YQsGPuX zuNI5^Y2tn?&h)c7r`ryzjk`+^J7cbrBAr_=YmvYo;S}N1M;A^y`@@{%ubk|7YVmXu z@jS=+H3(Zgl>8s8C`2qal#$_jW*yEf&a4x{tIJtvz&$osA zu<`sjzOcT^4%OF$J57xLS-$M~qgZ}ETwW0G1`7Er75KAl5*sfG_Hpxp3i3?-n$Hbj z>I?keo7v9zQ{)=*kAC+ZCcmIRYJ=Fi^<(j(xO3?3P;~6;$Rtr)gpD^EHuPJ1BJc8R zhk6t3B0f9**W&;hPlA0E>PNBtB<{RQ_A7?wdZ%-J*e92l4yn`}!YuKz}wa2Drmt3}N`6%}QtR|MzvTSia`$ zK4_CL?Wvk`Vl79|`6s6jn_`^EJCpif;@pvmJP!j2>-wen{2jR4r*YzY_@K|+#q${c z=$v_=2ip!dM7&%{!=b}PWYb~?=-!RPJlek*iI%Mag?TJ= z=S=xf;U+H6*Mi40`9=6n*uXe{;%9RHf%CGuVP?^7H}Q>S+^Vb8gjdY* zNBth^_?tDecgtk(qoR%+D}Gm(E1In&s{QzFuJ*e8lRJ1?v|M;^U*;7-`kPoFqtC@9 zR~Y^%&LlRDmLYq7jK#(OY(ei(cD{z4ufd1t#E-(O?1;;zF1x;{N)d>60OtodC&Ei% z_e*pCzd++V*z?7bh?hEh?j6{_@X$KZ9ET%4*l+#+jMKyEi}0n{^Zojs6r-yU+uywVFf1-UgoX&sZWwCsL|Bk=-ARWco{PnPTfVz4^-Po(l_#beg zMRBtR)K3kC@FM<-1N)$b{b;>VPQzeSUkA^fXZ(-mQ&=BMv;OV(;h#9b8|n(y598_r z);In?bzONpRqOYrTSz4or9l#|ZYA8vuDujgkgKH(kxQ z*zA2MiUuW3NJ3m>7NVqI&U)8AU;5p@*5`fS^*-x)*Lv1_w&NUhRogrIcbRCsq`xqZ ztXG;upJ^>}68(5Bp8NmQR~jGo3GtXkXVtS`J|4&u%V-r&D_huRl-yi->h9;5KSUpH zs4oppmi}KB&h+&*Q?HwALSg z7h>uexkv5oH0*1jVXVYQgh$s7_$|`>{OgjKs_6L?n?9*py4;LmU0>*zc>6uU*)4j>u&&C?Hc=efp&!6&A^v83@!Eqw{;l_PqNj3!C-S)3 zVsw1bIx}G%_Lr0W3XJ?h16PAS{Y8FCj_MXA$}H-0x*zDru&?*t18z$No%y%SzHuw9 zH)VCQ;(>lmO9J9!JR`;BHpfC|Pz9cjeGgl#{i#0WJfwdV_$Z&j5`AKx5Fhc-B5%aU zd9<*uK95Y~r-c3?x)EMS0Pm8J zUvdr}{Ip4)u;0ps*O?hRoFx70FsUK8qrWiTky`^K`m9ylFVRo<0%u8maUJk~er_aj zf4mEpYpZ6c%vZlj>$lWEgQ-wW?ANxS#Ziyau&aRj%AtDSmKa-^giwdW*n+Hg)LDC3$v`k!X<1 z`(^ffv_zaQzg+pG4&k$l#Ay<6VP9_sY!x@675L9gFO}c}Pa|BXP0prJPrn>w(I0rn z5Wa2PtFJ2)`;T9p6r7N%c_^=Ua*gX>W_~8e%;)TGs!uzhog7@I6T7vbPz<<5T<+<= z{)c~+P%p?^6xEp@C-A?M=$uMtA&h0?(oC*J30zT#y z&gX>dWS<%jJe;Y$29NXp-no|SJ0rwzxbPw{wYVEUul_Gd{=vUZ;EVWO&O>xCoa9&f zIV|wwXs}gu_Z8RU4m_GCy8QNyqm8;O zOAGn#{%DCrKX9%9A-|pTN0Ykv3Vj7}cTxL~&OcRXyN~d?PjKTX(9CBVLpyV{xJR-ALgq_9^(Xl{Z2JX`ira! zy2CNyCG;1;C;913^o{2pLhdEqE_JQqO8;_@^e^@o;GAJmpBsP6ljtYRMy_32-#7~V z5Fh#DxHq#XYDgO&Gn7~VH-taougzDcU2*ibm;PN5=YYs_mV+iy;8)FoeMf`s!&G|a zH#x@Q`Zuy(P1dgvi~GKj@lgK4wf*AKG3DldjjnsH#tjpFA3A;KvHlxbKK;uGxvBF+ zxxEIAHrZApjxW5fIO(EBa#2h4$7QA4S%@pd;fe-ly_;}FS$Lg#>Ty-Vf6IA03BJz` zH7{#gPgwsoK+Yshf0(}Z3rt#{6>JrKOfK22b-p+?J4}4zUeGg3 z>mefJJ%b#*={n(ctYW97gg?m#k9K~hUDetB$4TD$kUaB3ye(_G-AVZ_{rPA1^#u_P zt4g>wnH!mor)8NwN6y6N$+n17WTI#H(lMpxIj^s-Df4ATU$?cNe>9g$tLb^H=)+3H z=Wi)pTALy}mueY#w9&|F9#t}D;Dn%LZ?Zm=*_hDlnrf*QyHIE4czUoJIe!GPUc|4O z!~A34phbK4hZ$mat=_nqgPIjk?tUm?1AM;LNPMC{hS{L)x3qE0K636pLcd|WM8|6F6&Y*D`ZuDpLK^DSpI<&d zDP(h*mPj?i#J*Q|Jqq=iv2VUaKgt$E)@{|7{vLL=Mbg|qQ&Of2J5q1FAKuXyMg&Uw3)XoW>UV;io2LQ4j?}N3gY}DK{T*GU6h_O{ zx6-Ib!099OJ@PPf8z<@C7vYwY{sO-v!s}gwoVP?j3s+r`)ECwxgmoAr|96C^9PhB+ zxpMIs8MMsA8>cI~O;#5^XN2*=uTZ!L2AA9H(l?VS$E9;F`@(JHUt}}n>=i7j9A_Z}!KUW~{uVY8-FfhD9xhH%J zUuKgp@P~Z$=Xp-d|`Z@TWO84|rV1I+6NI-_Hu(>L<}B_@RysiN7@euwKU@KE^|f z=S4pp`3yE39~hX_srZ2ERg%;PYUW znY&FfJ;O%kiCxvR+PsVVB`=Q1bIx?$$r69McGd7F7Lhh0v4!D~fEh*NE9G%VvW%pE z->5TQ9S!3;4*6G|@Ri^LAAP2L^qvt@CwAx8&TPGUd);9c<}V5RNL+5fvJaCIv|^L| z2Q6GZ$?Uy2$(nKcI0(Fv|X=l)5YYg??ywv{7eChiEB+r~t^tsXIzsV-oc@)O4sIsR* zFC5>d6?=@`W;o*JO*0EhdH#%&eUrQ?%mX#lvTfb*`E0X`&*SWS`fL_w9T~47eI9yI zzdCht!8|IxzTZCUDCy@;kq?QB`5-n$u!v9M3D0jEF6q8lWYWMPKCXjJ>7p0ZK^?cb zP)kzZ&i-0F@<(1>E%HZv;4Re~`op?1qi!{3aEE>{uTT#i{?*t+e`S0=S;9oquSmtg$FKb$H5wS5_42Gt8%0qMw2zA64?ENPka1_nOOg zGw0TXP~T?fx^PPh@saOHn;g}9O3SI@Z^~k=s5K<+fB&BP-{>V0eZsjiXv9Z6%n#Ts z8u4+xtHu0a-bfz!`?F|?{&9@_VT}6taSurD5g7*gcg2Tw>GKt?!+aq(Zs=l3f8iMH zdD5pXh)?bhDGvDI{Z&W9Ii&BWcaBrXsRwkI^sl>dmZZO6zx4AcFqUDA90DZu#r>Ec z9HT{l9LG>Q`uf*sF;UZo6$jm`6T?{g^D_FORmxcWLjN}tp`UObE$pwOJr|BY`N%=z zr`NF~MHNr-<~$HbZE&c`zW-79IT`npeT=*6v0ug=iWXk?as9t+Zeb4ze^Ybsrycmf zV=j;911o*KgmIS8@A1}KD#FzNPAaxkULT>{C?2ACty|E+MzMou;bFVY&E{Lz7)|_j zYoR&8;|;u8Y=j={gDP(N5VWMKXw;fv=&o`yWGBTiRboCm*L z;T{7&Hx~C}yw3jH$vGYpeNjR_(GRUp*xvpf`T-oQPuF}&pWjHlF6YI4SjQjF&7;P- z88g5( z`Ukv1p-&LM^FC=FasIz7?5`vGQD(Gdb0qx*^U`|<$7s9a!MrptFvk9q)*1Ib3Tcz{ zuW^~u|Mb`OpX!uaJNEyrFXD8Ki}Pr=#rD_rcWXAE zl!l8jhI?oH)R(Zojz%1?(({^ySjd@dDKt0tDwuJ)@rzh_>#!2%@AATVz+Z;<*ykqG zq1Sar;-leF)p51HW#1x28u9GkJ_Js?EJ`spmp)vN)K} z5_o=nc)Q2ll6^@>BcDz+>C3%Veb`NT z1Z%51=Ei{C)@&cu{S~`J`^kPo=GMTAPW4CsV71NVFFbmn%5Ji~RoT-gh@4Z4@0IAK zWo0g+HZ1!5P}ODef7DBhhkR*}d=+vq?kV6Sf0%zr@>j*ZL} z;-I(JOh>SYkA39$;QH6+OK5hpTB6?M>bi@&%3iA0|;E~F73{m{a?GLQJ3 z=cPX{pdYb7o>N$;uk<+##v=uO;IG9a zE?StE>IUc6*sOfg(Z9uk3%on}3;eQ#e8X6(PuvId(z@e(SKC^hb6Mt=7V|x4u(o!# zTC$$;;Haqa-I#*OI{U|3EoQ;y(8O{l7L0L7TCT+JO+0tB!eT2~FDL6Q9Qa-00H=W_ zcs$H2Fc(hrdemcTqxhm*h~o3gQgfL1q!1sh^m7IfFHkry@}Kbd(w40YdJ&%G9P$rv z|NgK8AL33X>jO#r1B7pe@cN4JdW^Q<`-{?&Cbms>3cS}Zxq7Eo=%N<+Rr^5e+@-c1VQ!uoEqzL!6|zG>v&86WpyoN|)K za-utJAs(E=fCrwTL0_n^9q)%%|KFox8kjKAC zf2uNokNqzF9GLn$&_DQB5}X-CSJKb*W1Twl|6BMu19;-SkV9}T5q|9)_80h-6J9ro z&Q-~IdXTzcofAlYS~$>y8V~i+L@U%CaT}|hB>k&VUnuD>IQLD0gF0v+{E#o^AM=C! z2a@`$GKXrH_9%84#uLjt9pLC;yL_C8UQ!(4qgz4O)>^fOFaPn6F3A{dE(cbFH@x(< z;Y{5$w))S2OJRoj^a39+50{(~(eltn@R&Ij2sb8VxY5@oF!LKJD_V0u%O@U{V zY#+7Wp1D9tnZ)5j*FPTXa=buzpFw%u*!>;+`zz@=J(tlVaWr_h+-|g& z=r9ZOa^&0(X^cZP+sWN?_ab>~pnb}x&)x3QNY-1q=g(@Fm0o#f9uw5(#n<>XlxmSq z_r{Ihlz#u3HNQAIu~TjA8?I@e!+SI4|N9OjplJ4aAxvT8^><5nzNha z2kTNn@~^>6SDQEEL5vTnPcbGzF?z01p3SlTURWPtKb&KTa1O;&pikhF%^^OV zPx?L#tQT{LkMY1SKsXPKTf5{tm(z;}{lj_%hx`!-Ev&O#XZ`_Q@OtvVr-9@-me>lC z--pDaUT#vvpXl&=7d)2Kua)Ra74I?9Z#@}|hdg6OwHkKx?{dp`e{}R0@Q%eg6F#}b zw$iu{^V1a%*UuOps_dp1%kFQx;=SATF|~b1*`Bm0d-iDYFcb$@5p#Ay!2%g6|{WOE9HfG^ahoL9J`Oclu4zn>z$e%WZsF=xFb96tl35O zlzV=Z-rm32Gl_#WcL(31L_wCao^Gp?-gX;aAGFL-_#R($=JvNwGHD zF4#5TchlXh;*T#&-VQ9{6sE-AKfB(8{ghZl$+sS04V+2`PS8o9=1-bvEoRTMuF0PR z8kdZv>NcE_>A<(``A*k3?>)6juiy5yk640J&m~SuY~DT6oXvZG?Aq|lTUb?D`CoOu zg|M$1lhfvo93y&JFAC8$xS4d@GpAL5P(l*Kcc(_$C+OW4{gsrfQ{uDm@ijKxVs=#r z|6t!=DkCiJP@8wgr7wGZp8|g)X7BU1k526;sB4<9S0<(Ipj4@M`KpHgLSBz{qmG>R zK1O+Vd$y&aza#Zz+veqK8e*u)o@$v7lENnf&Rq`A4_1}|tHO^k^y+>_BbC~+sH80N zfi?GPht?98d^?(~Gf~FJZ{1CO%+}2P@oC`qAza=$t+ASlb_7rQcR>~mJvjGD*;Q7( zZ&<&1Ga{**F_f~8xOJj*NH``Aq*3)%(N)-Styevj4t2W9)qNAQfStxjNG= zj79#4U*dZ9npH#!HS7M+ZAW<@3i%^`;Dv&UZT9IT-ysy};Q)K*N}#LADVln!T`cNtfbwPzQ@6y!Lhv7VfW2hi-_z ziD^ZG}HQCv!oQc>ZQ?gRkuQ!zrJHx`(emw*36H1Qzu_eV~Oz zpEJH>O`56iBH-s`Js#++5zSgJ?wvON?J5@eBYtA&7^ep3MeG8rVLSU>7|R~7&RCyz zGM$a=8y7lia3potF8y|Y)uR;lm!=2k|3Ii`ZrjM?q<=yv#E-XG^=(kqb|F8=AMvd{ z7f_;T@Lb{Lh9u!r?;J)L(noO(3Qs`B2nPlSJe zA^!oghN2E!xxjH$jK4FLr=2oyQKKV!Fm?BhXVZeHt5a3H#&Y@EA2 z*fhh45^p^ox@O->Dzc1vvuBeLwYkUomye_M`6HC?xo0LDDg8SMN*2GnQIBqh8ML`x zq2L^Uuz0?Ue{N}A)l^4oRMo6e^LobVo;F)$@Z+%!@dq;ZzBM@i`2MTK(gKsxcy845 z+HCsFTMqG^<0wzdsb6T-eh;tz(t8)Fe;Ez&zHy+7p2G7Z#8u*fhYpYY5&z_q-Et}! zY9ufHdE}4ygP#q*SQM>8)?cD7NnMr5d?Pnmc6FB0f;2AT!@}C6LBI3i_gzh6(=Jk@ zuaBSZ@+5&q9_RAE+UUp>ab|WeuFjuj$IcGVZ#?P$@N4Q5 zr>3-i=R&SLXjS$P^{uYkk;g>elxAR6?KeT)1N zKgZ2CHhxa2kRRla_?6H9*r4CQ;kr3(fm1j>o#?PxFjYX7XRHf2jXtG=t{?ydt8DG;VM}q@;g+_NPhi9hHOug95+b zB6$`QzwSKbL4kohxRCV%;dvNvWr=PZX+!z2Pctht_^At`?l#SnXXIV?FKQU@o`d-c zdW2K$IZeyo*`?>M1YJmMI=v7eAZpyo)l7^Q;rgdw1X4lr^6MzY==x_Dh#$$-U-W zE8|zp8PP!ZxFcHnG}@O1ezi3CMRP-v0(H-Nx6z?Tl>@^}UvjXX%uUF@Bf+;ib*L&? zzmRr_UHPxd(>CsM+{(<DaC5cI{Et?8(vPLxab_r1u)Oun+&BeS1*zp66Tw|7;GUcUO4s zn2;K=HF1tRH@jr(WovO3w{Ck(SlIzL3VH0xY7HM$TgE{hK67)9PwT)nFM6)@^~H;I zRQ1L7aJ|eKRN^Y_4DSU(eQa$<49G?G!3*-*hKOiP4a0+IW0DE(tfB->eQWq^Y!Q9 z+{QfOb2d&MdoMI`zdiTMR&9SoPaJbL?_7i#gZOtwysq2XTFmX9=D)S-dj_c!*1bEy zD<(SlhqL<7I%}yx8a+BEugPR+F^&8Y-(|!}wGI0->D4oiO>S+g)t2J7d2 zA`WqEMz7~f)ZcN7KV7JMGk+lqy4K>?wFmkw?e~=6H*&k9MP^Tpw3sge<*EUJizw7* z_qY?i7Maea4*UPIwZ6cUnsrs%DSeU+t@_?<^3Gw#>`|Ig%vV2x*O!6(^<->&k2>SAQjO>!nzI{MqC75p z?}WjR4{Wj85X&Kd#P`+NDW~w^cMkJ|{1M;ILhGxH^y@IC|FmmJ;?ilb5`{j0hDmZZPn-0R8x WRwDE{%(v2*f6NcLUj!a_@BJT3qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I%oI+{8PwF*dp>w09{5(Xf6938VC0Ll*;-2eap literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_hfs_321g_fchk/dm.npy b/horton/meanfield/test/cached/water_hfs_321g_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..195ac8e1409f2d29f4641f23b677cf810882df82 GIT binary patch literal 756 zcmY+CPbdU&6vux!Xm*oQ{v2$LqS?thtd)aie}=R!$Yl>)G}+l4WHn0;qPZxW3yGXu zkjUC3rI^XZ%}GkafpXd6Ae7kneP{Ql@oJ`dZ$9tW_kDkFxi8w=KTt#>WLk>p$zelk z6D1|yA_YV#o-ig1ZEPrE#B|gn+GtW|_2h^)uCv@93E2g`oqOuCuI3XKc=;t4&iU??x0>w}FpFA{ zW>-J0`p~+Cyw6uo&n3YIKcEa+I3N6mT%wLVUf^6OnyOkYt@_*M`O1U%$3hRz2mjvi z^VhSM$tbh0hm`l+A614q3;nE)$BA#l+fIln@cj79@5)uw1_Hw$MT+!y@Mm+&@)f_^h!Q$1z7n)9ErHe+qvFYXKe!_PcN2=qe_&$};+ m+d0ek!L>W^(($ISI|9xJ&-aY)gKKvL`03gm0eYZ?@7XU~L+arG literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_hfs_321g_fchk/er.npy b/horton/meanfield/test/cached/water_hfs_321g_fchk/er.npy new file mode 100644 index 0000000000000000000000000000000000000000..d93c3820a0b7584ba4e569b9156313bcbdaa2fee GIT binary patch literal 228584 zcmce<2T&AQ)b@{AG3T5S6GqI8UULqZMKEAMMO0ACVL>r~iVBKZQ3*ys5D{s;Mg$`U zjF>TpHM{0-zoLIV_4WLxe7FAlu2t48`p%s0x!v>3Ip=xKxq;pLcC&ZLWYN!JX4MfR zCk>xiwONI#2A3vPZ7NiCnK03FqVxD66DE!r`G1eMcXpdJ^6%r5MmxKY{QK`}^=xe_ z82?wdsW7{O?w@7d?=u(YZ1GMc=NJ^VZuvv;A^ub8Vnr8=i1+PF4{3QsSg8Mc#8-Zu zxc0c1yLihD+XD%*>xsQrn|h^c^Or`vE#V%2TeQe`yH!NiR5@zDPmQHcOGTrE%sp;; z9@p&G|6Xq7r(##drMV?LIoo=Rp-r;Q?c6&?v$J=4uS_W$_KOEWmD_Fj8Yv%K>auo? zYmzoUZFsa{z~U4U8abrvo{^`d)8P3&5A)6y75})hW^?EL+Vx|9`s$jiCtv66ab(fZ!I zwE6sf9Lk5pM+)U)i#uuK!(`braT6NmauuGd_B=?Kv|4)|_d!2e1}Ia*FBm_Uetz%q zJ{{lgpKM}hkl!G`u4UdQl&K`PeeRW6;r_DztPj_Z-PIpU<|&pbL|kaJxOwK!Yh=>s zg3~>FMQZkYzvvmaq;iaK`@A-2dzBsX;K3aWOLiSCDy}Q+dp65D?fK#Uvi__O=fVD^ zAD;^4atsn-uUXg9B@b(#$K7t{<(!R=i`ibaTP(9lkjHvf3h6j~nkckyZ|aAzo!aZTF8ye3 z{dwKqi7B&&R9$Fd=V>9Al=4k~BvfCY<#NwIiYk1+c>Z}ld48~`Uw^Kj`FHsPXUxcV zT6~JlT`&O1mn{=?cG{oSsJ%b)F5f4_fLPCOi# ze_HxpF{_jEvO@iH0{pZcUUgfy{?|oAx0PAeS_O&8ucypikgjNU=Dc}ZG&mtb3>f;n zvPcM(IUA%8zWwQ}HeYwb>aE9LoDzGUrKDItKO+75KTLW3B23gPdb!nt^2dz$++ydF z%b6F7`mW7#XZM&OY{qPx^<}xYW@lNC1p_-Nqr|zAJ0`A78Y&Y8TJ9WQWq~$dwMwm- z`_m?g4GT6^yIsspmYsdR&s(>qY4|^Qchb-JoBM_5;3i1cUimUaDB$UEKtayWM;TANP`pD^E{L%8ss8@x4raL1|~1-5HD=|&lqm-oG&(Sk^Q{iZr9%LRzIfZu<@IP&rruz9d;~}NuDKVFWzkY z9Sm6VZv4qRyG8tVLyyr1gXO_DWoP{wyhM1GUGm6zU8wf^xO8aDl_K}{%JomDS=a49 zNAB8k@l&&HTO^+k`)w!At9#I}Qq*iRF{{&&UD`bMpMG@u6k@qWxbLmFC{LQ7OfPGj z{ZH#H+VAh6EI!x!RyiZ`3^}|g^xJX~?XmHq^R0c_=c&BClzs1%P~qpAP}1$jCaE|i zzit+OOq(w|eTCokV+rECga70%TViBO@A5_DoK3<$Vf@|89{aV|aozec{$8oUqfeT@ zKeuhkeNgjHqKbYVR;k^wO^p!U(d3<*(}19 z+J&ARlG=Pf)qe57S|g8n#fpb*)3RP}wLw0Yr;|P6_i6r5SHDf;0&^`C_bd`p%kJqd zZghB1{}1;mqWhHVmruE8RpwlI-e>O=2XWB1&bP9qUF6dhsT-Pgm@7JNoM@ADuz<2} z*U;>5QryMH^6%vIjZ-A}W*rgkyP?i>&A%F$E&sE&wd2Kx#HL=CF3u9Aw^i(N<@**< zb;Go(PSpx1e>m9tbr&ndm9ri0d|I(ocI-8AQXEltbG3FUWbkUu1*j z!ea6B%H>}ykP{|k`m@%Vcx}FYwA)+DuET`yjO504_Z(!_obyK4Ie2EvuS&A>*P2(KH}5Cvmar-Iroa97N%BDc(A{G?Y|-X} zofFp-E80Ui#a;{b{@PAv*>$dN&WY|~_NN&;@*FbaI?u0u468CW>{Puunmzsey`bh% z$J2V4%;&lNyv^LMcN4A$B`i4}b0q=)6Z{ydqBsjB;Ld5P1X`_}1u zZK@Q*tfn5aGyV=9TN;&bV{$JcHztIotmrJ~U3%Z{R`qEji&ewsy@LP#KK$lixb1d} zs(szfzOMV^3+)W`TAR#YE${HW!;gyzarXHG_Z>c!fd2`8W-XTZ+4^rhwQ1<^wZq{( z+WRjb{ZVl5Bp=Z|bhcO85D$5|>6iTumPWsMXA!6C$$#||R&VZ0j9*^s{oA$E z#L1wcxA&D=p~YX|r%&kg4`n^<| zXIk|!A>({r2{mUmelcTL7wPt6@6iV?HkiHF3?qtesaWsNv>c*otK*XMY+c_f1^kzTbV7 zXmq`4?wRY)C3Grp7acXViJ1EHi~p3<%{0HNZ-Y_|77U!F#i#h6;Aeq{Q(uprb6>kZ z1J=YxE}a`MzJIJW<4mq-+0Skk}L8viNr8ouFwf}g#zpS`(cf3Rj}eUgh6>y#?_*{wMf3 zWk)sV=dVv_b_#^wc;$P3v-m45U2dBlB!BiE^lNh?a>J3PPovB8l_X>F#hH~YGSzHLTD4>0~d@cx)@!>&bGmQp@f z?|h}f_JRuWJN_s5IpD8o+w<|qHT$R29WQ*kyNKzwM)Aa{Y1{wCv{gnK^^C{0aUi__^p(=cAXM zjL%cg9^-aow+k0Z34STH#s$ld$F>JMZZO7Si*06DP5a~Tcp}ug{hD4Yq~nc-gA)9< zh$%~iUz}EH{-I!TEU9DV zdWZex%Cf^9N9NxuivMw8xnn|%mS4jE1V1xJR#>>~dXl#OZmRuP=R$_8Iu;`O@5^N4 zQ2UrRpQzfmD`Jz^YeSGYxphkGk+B=)_Svr&=NY<3%U|Jtf}h>auiqZKHb4|_+rqcV zhSEyLdPOCCN^>mpEZRdx7jzGN?C&SyQ%5Cwt<0^?TUewgwhPM};cQ};_#OWf{LFsm zFQtx^B5ph`TK&}dN{a8ho)^Q#GBI*r=5mV)uaGPD4=&nu%s%mQ>CoX-I~Gwc-2D0L z;|nhl6>l@F|J1qip&B<i8viX8JwtK5(2df3va+^4S`nOO7W^ z$hNFO%aKY%Y^?@=t{$j;Ugq^jvG&?ln1&Z`kd3t;5?ZjYh8<(IAUKA^%DIj{m90&w~Mj1F|N~6zM0X zN4*c3B=asTk(Sk{@qzYG^$Ee@8)byGYiy~{O@F&?=WVLh>gRb-@_v)C zO!Dg3!Qm$Jj~w@3Zc(n4VL^=_8|w$z8cg1&JMg&W_xU@LFPK~}FSB{LFQ@e=_gk$%E=EGm;LPtD&#+j-|;{7_!;mztlqD7)5Qh5wJW~d@sOi~4&QB3&=}7b z>UHSBle-?Gb;^M`-8zhsb7er_guTPWm#o{uE2hsjd!1a@!8wf%HvG%$kI* zl9X25sZ=8`5mNp~Naxrkc5ikDIrTXH)h;fvr|X=qt(7c;9$js}yNSjxkpCop$Nyw~EPnN!k(lR!n9(k9Xz#k~WWz^Y z>Rfg==4GCIc-ZQB=}V&Sh6WeTtXm}`TaV~FZhe%@)Y4|akJJT{{2TdC;&=Q{&hupb zp{W&jTowBZe0|WOkgrV3+iQ=_d}CbF>ty9AlUx(Uam&Xe-D>*C!*@Ei3tto}$E1Xo z+Bj~WBt9koN&Jrg$$5O2>`Zn^*dnZ)pS61HSYK}a6%}s-+SdL-@3*SHueKh6d$x=yGkd!{+a_0&h)JGe#DOUbF1_;;)%{;Om-BKH@JHl7iQn-* zIghvB!9I5nrU;)iZx`2pF;}MBHeR>#j`8yx&NU}}+8HTQ4-B*q%|BCG#$Ic%pFW1V8o1`5XM?Z^rD;Z`pTwmfP^L%zocVkxvugkH~)#zvF-MzKw$$ z`-uUUL|jtI!A)x~koCQ1hUdR+{Qms(Dw#F7*)dVS_q*n4`Ml+(L6fJ%r*D$ay3ibJlvdef~lpXll zbXQQ84F)fD-oir3;5DUcSHd5W|0I6L{{%np#Mk}Nw5K9gtdE}Bzv%?I`Ded=9Xc)6 z@H1)8)qM+d?-E@nx8FP5agh;#(OE@jvy)`5XU}zZnY` z2phT9vXG(K=PJ!h)%#)xKMuZ;|J36f__?ujxk96}A2-1_@Uv?`-h6vrM1gOzOttS{ zmM-#@@bB+s! z#lREuX58JkLgV-0kH~)#zjGe&^LqVm7B_pOh_fNLdU==JpshRj`8@ZczCG3+77a_p zmA_qKgX|a<6dpEoo%TBH=|}ue{c--r|KxAR8YN$Sc(}BPq0-d839i-_2Jj93i2Nt< zJMRNO-)tVRu~M6h!a;{`;OCEi?z<{)J0fO0O0sJ-vTu9w5(-qOO`Ly%S$x9{vC-~XA+K;9k+U*h^Dz90m#E5&xuKQ~G5cqfaBYpl8 z{}cS2?pN`&Tc9!CuUkCMvent6;@y$@DRXPa%XL5Rv=JSTiE^c0L{HgzQJ_D8e}_NP z=Rfg3!O!SUcUw6tSG4=nrb%9}Iu~NZlD5Go60+=;Qzzv2>^mn;q^!Q}=_e8e`WE?FQi2|r}lw6(@B?An&I^6ZK81^OBIclaZH z{uBQb{Jb>6KY#T*QajJ5*mn2*{8x%iIbZc2SZJx1fAg9)>aRSNP2*&q8%BNn&T+=T zQ`hF5FSuMgAIJTsj;?#%sftphO*iXSd&?{MZ}9K%NBaCH{wMxn@iNUmgt!<#&+Eu$ z&%O5r3%i9)4}F`z2>(qKZ`Rf!-X}uCH;sQ+`6GS)6Z_z2&LPEb+cYr7i`YNk#MLnR z&>9Wj3Rv5H_bsO*WM+s=1!+b%YIxjV5;yDf57 zYx}MbZbpjAlV+u_NHdN5Szktd{LXR4Y4L`~eVVK`xj$PrSR|%@w^3GP?Y%JH_i76I zCHQyvBYpl8{}cQaz4}bHZeoo07sW5|327ZII>vVU)^+0+>HhOkwq19k#LpnBXLqBI zX!L=qkq2YRYJ={JWEVYaj7#wv-@1-_0ccEzr!Dq z|0I6L{{%l9-7m4VTE%#g$#-0f@F`W4250*oU!5aB^c-bT?N)H0rrSu#)#Z!NRHKfO z NPgz?<$e0mT>g{S4Nb{?tGmS| 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 U35#D?_`|{n7A~;z5>}o80HkQ@M*si- literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_hfs_321g_fchk/na.npy b/horton/meanfield/test/cached/water_hfs_321g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..62b756d8dc39dc780d7a7c3e1c31f46cb7425f49 GIT binary patch literal 1432 zcmZ{keJs>*9LJB%B#Uv!&~P#?Tx2Q_{qo}`)I4*h2VLA9$K*Jgr)x7yQ(`1fOC!xx zY?U$L=DsLoQ(Md0So4t3hHB;Q4TQRFW5u&*de_71@e}bdg*kk^ZX(CZuIa_v%@)gbeB4|8aK@KG)sDiO;>o z)qaOllfAuXr!2|(N5jGkRYt@`cX+L4Vo5C&SDvGU+iJPs$NN-kFRE^`Kft18OYI!6 z*>&W)hQ1S5QenHLM=Cp8K7GF}p!9d2+#EH*8TZVxA&D%n(I zGMmH%yzBhzCZJf_&$a*ZqFrPy-8WeqKT&8!IN5pi%hepF&w3W4R7g^3aDguPV1DQ~ zU)kMAUv?sVarxT#*bPP}U0J5fwj81xi;mffGwn#jw~&zny+o$pk^74E#j2Z*)p9?n z9LHm29;UDZ5{J{tFL%00-kf`68Pc)*LI%{f>#{B488}}GFth34gy6`9bgZ+X( z_&^8x_JS2RlL0%@-nDF0U7o}2r(V<>-sbUv@jZ0mfA|yr!F~_o5B;g3=%Vg;3-U*j zU+eCoP!&WiJQ{wTqI&F@v9oxumr~W)6nh4BF!_T2F*n|W_@fW~)|ai({!&YV`l0>Y z`c3cWibj5sFZdt+JcvK|V1DS+7YDB@XD!H__AWGObBp_c{32iQKl};*V87Ta_+WnM h3vI0|Ubc`<(tAT}G>)*w5VcY(5{$bo*6XKUhz% zI${r$1OuNa1HF2WqxQ;I3SNgu?%VIZOZ50Ro9l4-%Lljf85P~N|7W{}&F|8c{fG8X znVWKQn*C8Dzv!-yN8#rG2ZQ(a^EU2#tHQtDUaDE#sl@j(+#F8UrUFN$_dV;}`8?^uewg{XuTM@$T6zcWewg{0x5a?&|6m{U z=}JWR@l$Yfpx$CQG)30o%*oO{vu*dj%E&*CAupr4PDTu$?Ble$E5TJ&z9&Q=?SZR(_8wUL!onY>ADt%EKB&3-xghbnAC`V#@e2!oSon}@ zAIw}|Xu5%=Pgwea#V?`o{|il@=dck;Y$xn_ zvgxw$oBqx{u>1u}|1kaNG^zGM&D{?*cRwuu!txg^{iE9h;}dHiy1D4(11x{R(myPH z!qN{ceqrGc3m=&KVdkTkXXxbvEdRpt7cBk5(kCqaz~UDc{;=?Yg$t~_1VF;nTc8l>_z`Pt*PuiYrk!6k-&t` zz55xU!0}P%GbO9-`;*LL4k;bnVy`#h*#0XA-`T%g@MNCb?05DsbuJsSoUiY`WM8%{ zGW&Jlnf*pS4jO;fUf4g^aA%p3YlHo)wp?q0gNy9t|E-%~@#&O((=_28#*hPWd#sa> zPO+|dwLdM;_`h@NM|+1^`zG0Bzu51;`1k+F`iF3J9fAkzGG=eHpHLU_d3)%C{TDgX zo=^R9eZTc_;eg{Q@9pKU7^>CnI|En$A^E@Ghs(R+{5Kn#gevwT{0DRY{VJ`z?GEeg zVf^LagNsTdR>JwN!4n_q?A&gDWOm7&MQe83D=+l4X_|HlF8?ZX`A1HfZE${g$S+Sz z`wehD%-pO^TXXI-Z`%*!vnc$CIcd5J&gVPDEv@bJ3(kkBL#GV|;v1beKfo{_T^*zQ ziNrN!9|)?0=_|;2zxjB`Eu89&isvd!R==^owM|jd$@m;jcM4Q2lG$AO0WLowU|yr? z@0|VC>Q?Wpry=6~=c6T)C3Ww>?PL3Ces@u3fg{!~mXB@pH`#zk1&fGpw+7>fhx>?kAJ@c9m zH`j6gyD0bVXW{(X$Hfk%7yiS|fw>QzcF`zGU1|D+pgJZ6p^ayszJr^OZVozst=oK+ z>2_CfntN&2mosv+p6~biu5v_H?XF{IdLLZh z|ED`tnQ{@~)>onOkx}6eTps4WtA>&xHd-g(=6y5$JO9b7PjLRxz1RNz%fGW9N4c|~ iK)JIYTJG#8Q0~|hD0lV~D0lWl%N=_H<&Hh9+yMX#MVIUV literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_hfs_321g_fchk/orbs_a_dms.npy b/horton/meanfield/test/cached/water_hfs_321g_fchk/orbs_a_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..4be736fad48d3f0e5ba206b6f02d75d4671e14b2 GIT binary patch literal 1432 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-#ySdy#+o_`wF*$cwdJwG!L`a;?KQVVn8l@SwEuK=ot8>z_kM@8Tix5= zO|WNxf*D(*n(P91*uTD`vQxuo$oDG-vEIg34blzrryICgHrSY5gcV;eM zwtvoy{oN*EJyIX%?uVJbCC}O5=-&1ATF*Q;?Qib3_pIDlE%!KOKg^yKw|k!rb++02 zOL-gLHCn&_cT_-M%CW_8d8^Gan^r#FXy4Egvf+oyM!5O5PgiSqyU*Sab3e@d;tcC} zlhhCPFW+os@tw00?p~OE&J%Y}J9=o^e&cvs@i$H9;r77f{Ur()8Ocn+Fc%g+F!#gE z&%f|`@xCYPG3;@2V&?n&wblLr_xlb0b;mH|v+FXa?A|uX9^G7+J8;qe=6P1d=Uv1w z52l_&eLaJ?#8sT~Fm`lxuY5ga-|6XUsV~&D{^nzp(rTOaHL+2{Q*q!@?gHJ}_|@J#V?}ZI7r6@NxlW zE_(R@%eS!f57Q4zKd^KI3xAkA%>6KTqnBqr(DDaXKETQa5A5a6epveXgT36@4|6|y Gc?JN?W5j;| literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_hfs_321g_fchk/orbs_a_energies.npy b/horton/meanfield/test/cached/water_hfs_321g_fchk/orbs_a_energies.npy new file mode 100644 index 0000000000000000000000000000000000000000..2a6c733e9eb55a06c2823f718e0e217ebefdbc77 GIT binary patch literal 184 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-#yXlh3bhIdz;!0jY<6v&(E-QymZ#laul7sFd^=(P_~w3DxgBlax=!r> zaH5cF{_6w#S6F;X)84YzK1RXDV%6eP_ANJJ?w{j$Z*N!L^!NJD_x8PM4-dUr{mp*s c{Nj*Zqb{Nks*l>+DQvO}y609Ig6ng9R* literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_hfs_321g_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/water_hfs_321g_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..d4076a9be1427fe5016cb278c8df473933a05b16 GIT binary patch literal 184 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-#yXlh3bhIdz{LOtAMA;vA*#qB0W|9yDgXcg literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_hfs_321g_fchk/quads.npy b/horton/meanfield/test/cached/water_hfs_321g_fchk/quads.npy new file mode 100644 index 0000000000000000000000000000000000000000..9251f4dd6edba1ab6468648f99f2880542f0fe84 GIT binary patch literal 104 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= uXCxM+0{I$dI+{8PwF*dpYtfG6{WDqitIS)IsPaW%l05?hLqqSShJ64vs~_qB literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_m05_321g_fchk/chol.npy b/horton/meanfield/test/cached/water_m05_321g_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..a34f198e3a02e301d648821b8e72c35de3878b8d GIT binary patch literal 56864 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_m05_321g_fchk/dm.npy b/horton/meanfield/test/cached/water_m05_321g_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..cabae3813027f2ac1387c7f71606cf5ce502e61b GIT binary patch literal 756 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_m05_321g_fchk/na.npy b/horton/meanfield/test/cached/water_m05_321g_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..91af73c2039397ff470dc78986d210ec41a6d476 GIT binary patch literal 756 zcmYk4Pe>GD7{(`plwBx|4hbEmU6$EwK}0=dwzG9uJfsGqW<<5FV_~-H?jEAD@VG@~ z8I|RqSfxJ{h7`5v;(W6n5~TDX9wJJrTkNII3(arpgZ)nPe)Hqud7tkYZEkBi*11Iq zE0?uyBN2^j^{Up;Q>z73t*1Ypj7MUp`{UgP_u)ui!m#fX=OP1!J^QO`0%~>5zJNNU z{y#3)w@>2eqol~Z3Y*_wd^X#EiM=`hM>D33>V@ShQKjwjOeJ*D@})F%^1_kDj^G0m ze(u@0=$&Fu1J&JvHq~;r5Zd(_|>lu~#p11WNUSRQqKK#XKi#5<5^TIq_-W{yC;kLf+FLUP1 zM&^)Y@sA($;fH6=SU(q*(qm_@r}HCG@8;o2@q74fdNzD5eSbCTbM=<^*cbn3bKs4V zF6-ZNcyB5BuUDKj`!SPg}&wZm2S75 zC$r9cVq!2TS@I`O@?qa%|M1y-PTcIgGhKJ9X*$%g?#mvy>*Kx1A8k&te`a`h<%;0j zW7lfRv3v48xa5C6mc!RZ35?1StMd6JLp4t~%_TlP%$L3W4y$y0U*|M)>) G_Utct$~s>F literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_m05_321g_fchk/olp.npy b/horton/meanfield/test/cached/water_m05_321g_fchk/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..b12a7869d5c9b80858e0896e5f996b97a81b1fc3 GIT binary patch literal 756 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-#ySdy#+o_`wF*$c#lX;DKP6JtzEoj{&8{oTb__u9(^<=I`Kb?kw>{qp z=1-XT+OA;IvVE%F+iZe+^zA_ELHg7yD{L2K&jPE7o^#YTe0TR=wwcmEIiMNIJMHYm zoA-g#i)uf$1DOv}57HNH69(1;QkUenZn1l{HJqP#b@3vYT9A7{=0nssfXxNz(SF>p zcvGP*oDUL%sRgl70YV>0JTmS-+^)b2yBF*Kid+oxFUbAG=mVs z4?-`deK574@C1bq$iL|B2Zam53wT7h;tLf1$a-<< z1FGEzRJ#upzo7U6g+C#EFtxDs082Zd@C1bqEbV~Y12P|^9+u8v=>e8@K;aJxPgvRk NxgX>nkXvBs3;^De)yx0@ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_m05_321g_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/water_m05_321g_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..a8bb1b2379ccf4a641ef0ed021283201b3d6ee14 GIT binary patch literal 1432 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I$-#ySdy#+o_`wF*$cWmEM-mzO2g{)?x$!EUz$_RF3u@$8v&&fZL|AofVx z{{0M4P{!_f|M=5w`}<^E_~lYI+uN3Gyx6hzoxP-gtY+HLclI!KQ@J{%8(c5iGhB~i zR}MI{-=a<@m+jJp{YJ`fUWdQ0w>Lez>+J3=)9t@|+Bp2Wd))q{OG_N{>Ai4!+WY2R z`F{M>{+<-9xxK&+Dm6W}et)A0EG1G;!Vi{ryHa zCd5p?zW+FDJ!{*LcyxcqsC|B{=&ZiVx!_7|sF zhOC71VdnN8%-{O3e*1nHpG9T?+Z^& z^K9E%$0ZG_T?s zw>o%XoM+NO`*q8wy*T=1>3#u0&iv)~p2F2Z&wO-FQ@R2g6+V3umpD2%dqfd+~jDy=&noIREC5%kJy_1vXA%Fa#Syd%bR&dp4776VBeOzkw<*rI=K1EK7Eb%lApRC=6;y@dP*Mq zre%Gwzp;TsOm4|CxO-vt-CO=i>LA1P{YTO#UFDKH54Q&=M z{=zF))YI%XVAx~jV|cIVLYIAi@aoG|s>dIJG@V`Eq`F;1FT$d!d~v|-wG{v9RL6T literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_m05_321g_fchk/orbs_a_occs.npy b/horton/meanfield/test/cached/water_m05_321g_fchk/orbs_a_occs.npy new file mode 100644 index 0000000000000000000000000000000000000000..d4076a9be1427fe5016cb278c8df473933a05b16 GIT binary patch literal 184 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= gXCxM+0{I$-#yXlh3bhIdz{LOtAMA;vA*#qB0W|9yDgXcg literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_m05_321g_fchk/quads.npy b/horton/meanfield/test/cached/water_m05_321g_fchk/quads.npy new file mode 100644 index 0000000000000000000000000000000000000000..fb076a859df028763a0bca30b57ba13781cd70fc GIT binary patch literal 104 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+l>qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= uXCxM+0{I$dI+{8PwF*dpt2r!he|*+Cm6Cr2DtF(^uxDUkSdz!qz7GI6eIM}v literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/chol.npy b/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/chol.npy new file mode 100644 index 0000000000000000000000000000000000000000..75f543ebc1250032cba2baf9fa88f33fc2f4b0ee GIT binary patch literal 11056 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/dm.npy b/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/dm.npy new file mode 100644 index 0000000000000000000000000000000000000000..c5ad4520c3a556729c96af95e5027cc1d0812859 GIT binary patch literal 276 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 literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/kin.npy b/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/kin.npy new file mode 100644 index 0000000000000000000000000000000000000000..0b4cd75c566125ee418af28598f147940c62a289 GIT binary patch literal 472 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%|Itu2RItsN4aKQB_LVWv023rSaW&P}=#-sZgaDdXMV(F*C681CBt2%lf zNW;`G$c}f=zw^=_hc*U~sq0@Hu!qs;>No>}PhYcQaX=S`@fGF25;#A!Yu{V;QI z(J=ik9op&ddoI~$#vReUx_ifdn16A(8>U{%`tJh0pcnQ|3bDNzLgn_b@PX+=cR$R0 In0lCg0C}Boi2wiq literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/na.npy b/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/na.npy new file mode 100644 index 0000000000000000000000000000000000000000..4d4c8519fc89794767efa2cd501509f7b31ad91b GIT binary patch literal 472 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%|Itu2RItsN4aKQCVBc}h*T|WmNcBf4ZCuJR+s=8#9^7`xf2U;L0d+RGJWL&oj#;zfpvfO)oboXD z!`uTiAEy6K219S6i;^bV9w literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/olp.npy b/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/olp.npy new file mode 100644 index 0000000000000000000000000000000000000000..62bb3f3f20b4d4a74e47d7bed27ae406dc85803e GIT binary patch literal 472 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%|Itu2RItsN4aKN?cyYK)1|KHo^|F2IC@HuDCfCI$*t#`d3v&KH)-o7*E zfiz6LbG9u|#|NDH#CoTvU)ylcK1NAa8bqTTpXKg@SAX!jL#LIWT*uG{Gl!6Vm^xf^ zCe;4E-94hp;WzDHC1o;heR5zw%)c=Aqw9yOH%tJBpO>24=O?Y_;Nb)FFS`3-=EKy# Hg6anV8LoL> literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/orbs_a_coeffs.npy b/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/orbs_a_coeffs.npy new file mode 100644 index 0000000000000000000000000000000000000000..19ca931d90c46d017a33a2f162c3f8c6898ff0e2 GIT binary patch literal 472 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%|Itu2RItsN4aKQCvyG!4y^Y85wV*P{t&!64DLf`3;-_bxj(WLuHY%6!# zTO2C7Wjyz|P2)SY;Dnfi`;Ql0|68X)ynA99Q*nI7k!Z`-DMxI zJ!PVj-nIQZnQwjV-1o$O*1HorJMVt5VJ!KvFnZM^do6|5IowMg*>CC%x8_;3*=B`f z?T0mA*YEi)bt0a1|3RCNM{*vi-2c6Y0SrFabN$T}>CIklBNNoSAfjpVp1h1#YivYP z?Ek8-;R@Zl$zH}N=@5V1efzp*>-{cackS1@=t+1!eP-kM`h?z+)LZuJkL0DUig~r4 zJ9GPqiq{qU4X<|DSu`E7*SukM(#q+Mz2e1-Gd5dXv@cq8-Brr=hE3R>QkAV&U+#bN zKC5r@w^#Nvd4rQc`qqg>J~0RCdt^QH98ll>wz$AsAbkv1#VzW-KeYMaXJ@+&sIReA KN_Eq>SNj3*B;QZ~ literal 0 HcmV?d00001 diff --git a/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/orbs_a_dms.npy b/horton/meanfield/test/cached/water_sto3g_hf_g03_fchk/orbs_a_dms.npy new file mode 100644 index 0000000000000000000000000000000000000000..a5ad0e8a07eb592a0efaeb99d71e7728dfbd8c31 GIT binary patch literal 472 zcmbR27wQ`j$;jZwP_3SlTAW;@Zl$1ZlV+i=qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= zXCxM+0{I%|Itu2RItsN4aKJTZ_Fp5p>mTe7Z27UYQtHfpL56AX_itThztvFtO3ay^ zHa=|zN51kcu($D2-m>n*g#DiuY-|D1F!lXg@7(8q_s-s4W`2F7>4p6VWLmDz+RvOX57TeEH-%Vg`W*{eBJt # # -- +from contextlib import contextmanager - +import matplotlib.pyplot as pt import numpy as np +from os import path -from horton.cext import compute_nucnuc -from horton.context import context -from horton.gbasis.gobasis import get_gobasis +import gobasis_data +import mol_data as mdata +from horton import GOBasis from horton.grid.molgrid import BeckeMolGrid -from horton.io.iodata import IOData from ..builtin import RDiracExchange, UDiracExchange from ..convergence import convergence_error_eigen from ..gridgroup import RGridGroup, UGridGroup @@ -36,7 +37,7 @@ ULibXCMGGA, RLibXCHybridMGGA from ..observable import RTwoIndexTerm, RDirectTerm, RExchangeTerm from ..observable import UTwoIndexTerm, UDirectTerm, UExchangeTerm -from ..occ import AufbauOccModel, FixedOccModel +from ..occ import AufbauOccModel from ..orbitals import Orbitals from ..scf_oda import check_cubic @@ -46,7 +47,7 @@ 'helper_compute', 'check_hf_cs_hf', 'check_lih_os_hf', 'check_water_cs_hfs', 'check_n2_cs_hfs', 'check_h3_os_hfs', 'check_h3_os_pbe', 'check_co_cs_pbe', - 'check_vanadium_sc_hf', 'check_water_cs_m05', 'check_methyl_os_tpss', + 'check_water_cs_m05', 'check_methyl_os_tpss', ] @@ -326,14 +327,13 @@ def helper_compute(ham, *orbs): def check_hf_cs_hf(scf_solver): - fn_fchk = context.get_fn('test/hf_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + fname = 'hf_sto3g_fchk' + + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) + external = {'nn': load_nn(fname)} terms = [ RTwoIndexTerm(kin, 'kin'), RDirectTerm(er, 'hartree'), @@ -342,15 +342,16 @@ def check_hf_cs_hf(scf_solver): ] ham = REffHam(terms, external) occ_model = AufbauOccModel(5) + orb_alpha = load_orbs_alpha(fname) - check_solve(ham, scf_solver, occ_model, olp, kin, na, mol.orb_alpha) + check_solve(ham, scf_solver, occ_model, olp, kin, na, orb_alpha) # test orbital energies expected_energies = np.array([ -2.59083334E+01, -1.44689996E+00, -5.57467136E-01, -4.62288194E-01, -4.62288194E-01, 5.39578910E-01, ]) - assert abs(mol.orb_alpha.energies - expected_energies).max() < 1e-5 + assert abs(orb_alpha.energies - expected_energies).max() < 1e-5 ham.compute_energy() # compare with g09 @@ -362,14 +363,13 @@ def check_hf_cs_hf(scf_solver): def check_lih_os_hf(scf_solver): - fn_fchk = context.get_fn('test/li_h_3-21G_hf_g09.fchk') - mol = IOData.from_file(fn_fchk) - - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + fname = 'li_h_3_21G_hf_g09_fchk' + + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) + external = {'nn': load_nn(fname)} terms = [ UTwoIndexTerm(kin, 'kin'), UDirectTerm(er, 'hartree'), @@ -379,7 +379,10 @@ def check_lih_os_hf(scf_solver): ham = UEffHam(terms, external) occ_model = AufbauOccModel(2, 1) - check_solve(ham, scf_solver, occ_model, olp, kin, na, mol.orb_alpha, mol.orb_beta) + orb_alpha = load_orbs_alpha(fname) + orb_beta = load_orbs_beta(fname) + + check_solve(ham, scf_solver, occ_model, olp, kin, na, orb_alpha, orb_beta) expected_alpha_energies = np.array([ -2.76116635E+00, -7.24564188E-01, -1.79148636E-01, -1.28235698E-01, @@ -391,8 +394,8 @@ def check_lih_os_hf(scf_solver): -1.25264964E-01, -1.24605870E-02, 5.12761388E-03, 7.70499854E-03, 7.70499854E-03, 2.85176080E-02, 1.13197479E+00, ]) - assert abs(mol.orb_alpha.energies - expected_alpha_energies).max() < 1e-5 - assert abs(mol.orb_beta.energies - expected_beta_energies).max() < 1e-5 + assert abs(orb_alpha.energies - expected_alpha_energies).max() < 1e-5 + assert abs(orb_beta.energies - expected_beta_energies).max() < 1e-5 ham.compute_energy() # compare with g09 @@ -404,36 +407,39 @@ def check_lih_os_hf(scf_solver): def check_water_cs_hfs(scf_solver): - fn_fchk = context.get_fn('test/water_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + fname = 'water_hfs_321g_fchk' + mdata = load_mdata(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) + + external = {'nn': load_nn(fname)} terms = [ RTwoIndexTerm(kin, 'kin'), RDirectTerm(er, 'hartree'), - RGridGroup(mol.obasis, grid, [ + RGridGroup(get_obasis(fname), grid, [ RDiracExchange(), ]), RTwoIndexTerm(na, 'ne'), ] ham = REffHam(terms, external) + orb_alpha = load_orbs_alpha(fname) # The convergence should be reasonable, not perfect because of limited # precision in Gaussian fchk file and different integration grids: - assert convergence_error_eigen(ham, olp, mol.orb_alpha) < 3e-5 + assert convergence_error_eigen(ham, olp, orb_alpha) < 3e-5 # Recompute the orbitals and orbital energies. This should be reasonably OK. - dm_alpha = mol.orb_alpha.to_dm() + dm_alpha = load_orbsa_dms(fname) ham.reset(dm_alpha) ham.compute_energy() fock_alpha = np.zeros(dm_alpha.shape) ham.compute_fock(fock_alpha) - mol.orb_alpha.from_fock(fock_alpha, olp) + orb_alpha.from_fock(fock_alpha, olp) expected_energies = np.array([ -1.83691041E+01, -8.29412411E-01, -4.04495188E-01, -1.91740814E-01, @@ -442,7 +448,7 @@ def check_water_cs_hfs(scf_solver): 2.71995350E+00 ]) - assert abs(mol.orb_alpha.energies - expected_energies).max() < 2e-4 + assert abs(load_orbs_alpha(fname).energies - expected_energies).max() < 2e-4 assert abs(ham.cache['energy_ne'] - -1.977921986200E+02) < 1e-7 assert abs(ham.cache['energy_kin'] - 7.525067610865E+01) < 1e-9 assert abs( @@ -452,7 +458,7 @@ def check_water_cs_hfs(scf_solver): # Converge from scratch and check energies occ_model = AufbauOccModel(5) - check_solve(ham, scf_solver, occ_model, olp, kin, na, mol.orb_alpha) + check_solve(ham, scf_solver, occ_model, olp, kin, na, load_orbs_alpha(fname)) ham.compute_energy() assert abs(ham.cache['energy_ne'] - -1.977921986200E+02) < 1e-4 @@ -463,21 +469,21 @@ def check_water_cs_hfs(scf_solver): def check_n2_cs_hfs(scf_solver): - fn_fchk = context.get_fn('test/n2_hfs_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'veryfine', + fname = 'n2_hfs_sto3g_fchk' + mdata = load_mdata(fname) + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], 'veryfine', random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) + external = {'nn': load_nn(fname)} libxc_term = RLibXCLDA('x') terms1 = [ RTwoIndexTerm(kin, 'kin'), RDirectTerm(er, 'hartree'), - RGridGroup(mol.obasis, grid, [libxc_term]), + RGridGroup(get_obasis(fname), grid, [libxc_term]), RTwoIndexTerm(na, 'ne'), ] ham1 = REffHam(terms1, external) @@ -486,14 +492,14 @@ def check_n2_cs_hfs(scf_solver): terms2 = [ RTwoIndexTerm(kin, 'kin'), RDirectTerm(er, 'hartree'), - RGridGroup(mol.obasis, grid, [builtin_term]), + RGridGroup(get_obasis(fname), grid, [builtin_term]), RTwoIndexTerm(na, 'ne'), ] ham2 = REffHam(terms2, external) # Compare the potential computed by libxc with the builtin implementation - energy1, focks1 = helper_compute(ham1, mol.orb_alpha) - energy2, focks2 = helper_compute(ham2, mol.orb_alpha) + energy1, focks1 = helper_compute(ham1, load_orbs_alpha(fname)) + energy2, focks2 = helper_compute(ham2, load_orbs_alpha(fname)) libxc_pot = ham1.cache.load('pot_libxc_lda_x_alpha') builtin_pot = ham2.cache.load('pot_x_dirac_alpha') # Libxc apparently approximates values of the potential below 1e-4 with zero. @@ -506,13 +512,13 @@ def check_n2_cs_hfs(scf_solver): # The convergence should be reasonable, not perfect because of limited # precision in Gaussian fchk file: - assert convergence_error_eigen(ham1, olp, mol.orb_alpha) < 1e-5 - assert convergence_error_eigen(ham2, olp, mol.orb_alpha) < 1e-5 + assert convergence_error_eigen(ham1, olp, load_orbs_alpha(fname)) < 1e-5 + assert convergence_error_eigen(ham2, olp, load_orbs_alpha(fname)) < 1e-5 occ_model = AufbauOccModel(7) for ham in ham1, ham2: # Converge from scratch - check_solve(ham, scf_solver, occ_model, olp, kin, na, mol.orb_alpha) + check_solve(ham, scf_solver, occ_model, olp, kin, na, load_orbs_alpha(fname)) # test orbital energies expected_energies = np.array([ @@ -520,7 +526,7 @@ def check_n2_cs_hfs(scf_solver): -3.16017655E-01, -3.16017655E-01, -2.12998316E-01, 6.84030479E-02, 6.84030479E-02, 7.50192517E-01, ]) - assert abs(mol.orb_alpha.energies - expected_energies).max() < 3e-5 + assert abs(load_orbs_alpha(fname).energies - expected_energies).max() < 3e-5 ham.compute_energy() assert abs(ham.cache['energy_ne'] - -2.981579553570E+02) < 1e-5 @@ -534,21 +540,21 @@ def check_n2_cs_hfs(scf_solver): def check_h3_os_hfs(scf_solver): - fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'veryfine', + fname = 'h3_hfs_321g_fchk' + mdata = load_mdata(fname) + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], 'veryfine', random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) + external = {'nn': load_nn(fname)} libxc_term = ULibXCLDA('x') terms1 = [ UTwoIndexTerm(kin, 'kin'), UDirectTerm(er, 'hartree'), - UGridGroup(mol.obasis, grid, [libxc_term]), + UGridGroup(get_obasis(fname), grid, [libxc_term]), UTwoIndexTerm(na, 'ne'), ] ham1 = UEffHam(terms1, external) @@ -557,14 +563,14 @@ def check_h3_os_hfs(scf_solver): terms2 = [ UTwoIndexTerm(kin, 'kin'), UDirectTerm(er, 'hartree'), - UGridGroup(mol.obasis, grid, [builtin_term]), + UGridGroup(get_obasis(fname), grid, [builtin_term]), UTwoIndexTerm(na, 'ne'), ] ham2 = UEffHam(terms2, external) # Compare the potential computed by libxc with the builtin implementation - energy1, focks1 = helper_compute(ham1, mol.orb_alpha, mol.orb_beta) - energy2, focks2 = helper_compute(ham2, mol.orb_alpha, mol.orb_beta) + energy1, focks1 = helper_compute(ham1, load_orbs_alpha(fname), load_orbs_beta(fname)) + energy2, focks2 = helper_compute(ham2, load_orbs_alpha(fname), load_orbs_beta(fname)) libxc_pot = ham1.cache.load('pot_libxc_lda_x_both')[:, 0] builtin_pot = ham2.cache.load('pot_x_dirac_alpha') # Libxc apparently approximates values of the potential below 1e-4 with zero. @@ -577,25 +583,26 @@ def check_h3_os_hfs(scf_solver): # The convergence should be reasonable, not perfect because of limited # precision in Gaussian fchk file: - assert convergence_error_eigen(ham1, olp, mol.orb_alpha, mol.orb_beta) < 1e-5 - assert convergence_error_eigen(ham2, olp, mol.orb_alpha, mol.orb_beta) < 1e-5 + assert convergence_error_eigen(ham1, olp, load_orbs_alpha(fname), load_orbs_beta(fname)) < 1e-5 + assert convergence_error_eigen(ham2, olp, load_orbs_alpha(fname), load_orbs_beta(fname)) < 1e-5 occ_model = AufbauOccModel(2, 1) for ham in ham1, ham2: # Converge from scratch - check_solve(ham, scf_solver, occ_model, olp, kin, na, mol.orb_alpha, mol.orb_beta) + check_solve(ham, scf_solver, occ_model, olp, kin, na, load_orbs_alpha(fname), + load_orbs_beta(fname)) # test orbital energies expected_energies = np.array([ -4.93959157E-01, -1.13961330E-01, 2.38730924E-01, 7.44216538E-01, 8.30143356E-01, 1.46613581E+00 ]) - assert abs(mol.orb_alpha.energies - expected_energies).max() < 1e-5 + assert abs(load_orbs_alpha(fname).energies - expected_energies).max() < 1e-5 expected_energies = np.array([ -4.34824166E-01, 1.84114514E-04, 3.24300545E-01, 7.87622756E-01, 9.42415831E-01, 1.55175481E+00 ]) - assert abs(mol.orb_beta.energies - expected_energies).max() < 1e-5 + assert abs(load_orbs_beta(fname).energies - expected_energies).max() < 1e-5 ham.compute_energy() # compare with g09 @@ -611,19 +618,19 @@ def check_h3_os_hfs(scf_solver): def check_co_cs_pbe(scf_solver): - fn_fchk = context.get_fn('test/co_pbe_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'fine', + fname = 'co_pbe_sto3g_fchk' + mdata = load_mdata(fname) + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], 'fine', random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) + external = {'nn': load_nn(fname)} terms = [ RTwoIndexTerm(kin, 'kin'), RDirectTerm(er, 'hartree'), - RGridGroup(mol.obasis, grid, [ + RGridGroup(get_obasis(fname), grid, [ RLibXCGGA('x_pbe'), RLibXCGGA('c_pbe'), ]), @@ -632,16 +639,16 @@ def check_co_cs_pbe(scf_solver): ham = REffHam(terms, external) # Test energy before scf - energy, focks = helper_compute(ham, mol.orb_alpha) + energy, focks = helper_compute(ham, load_orbs_alpha(fname)) assert abs(energy - -1.116465967841901E+02) < 1e-4 # The convergence should be reasonable, not perfect because of limited # precision in Gaussian fchk file: - assert convergence_error_eigen(ham, olp, mol.orb_alpha) < 1e-5 + assert convergence_error_eigen(ham, olp, load_orbs_alpha(fname)) < 1e-5 # Converge from scratch occ_model = AufbauOccModel(7) - check_solve(ham, scf_solver, occ_model, olp, kin, na, mol.orb_alpha) + check_solve(ham, scf_solver, occ_model, olp, kin, na, load_orbs_alpha(fname)) # test orbital energies expected_energies = np.array([ @@ -649,7 +656,7 @@ def check_co_cs_pbe(scf_solver): -3.48686522E-01, -3.48686522E-01, -2.06049056E-01, 5.23730418E-02, 5.23730418E-02, 6.61093726E-01 ]) - assert abs(mol.orb_alpha.energies - expected_energies).max() < 1e-2 + assert abs(load_orbs_alpha(fname).energies - expected_energies).max() < 1e-2 ham.compute_energy() # compare with g09 @@ -662,19 +669,19 @@ def check_co_cs_pbe(scf_solver): def check_h3_os_pbe(scf_solver): - fn_fchk = context.get_fn('test/h3_pbe_321g.fchk') - mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'veryfine', + fname = 'h3_pbe_321g_fchk' + mdata = load_mdata(fname) + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], 'veryfine', random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) + external = {'nn': load_nn(fname)} terms = [ UTwoIndexTerm(kin, 'kin'), UDirectTerm(er, 'hartree'), - UGridGroup(mol.obasis, grid, [ + UGridGroup(get_obasis(fname), grid, [ ULibXCGGA('x_pbe'), ULibXCGGA('c_pbe'), ]), @@ -683,31 +690,32 @@ def check_h3_os_pbe(scf_solver): ham = UEffHam(terms, external) # compute the energy before converging - dm_alpha = mol.orb_alpha.to_dm() - dm_beta = mol.orb_beta.to_dm() + dm_alpha = load_orbsa_dms(fname) + dm_beta = load_orbsb_dms(fname) ham.reset(dm_alpha, dm_beta) ham.compute_energy() assert abs(ham.cache['energy'] - -1.593208400939354E+00) < 1e-5 # The convergence should be reasonable, not perfect because of limited # precision in Gaussian fchk file: - assert convergence_error_eigen(ham, olp, mol.orb_alpha, mol.orb_beta) < 2e-6 + assert convergence_error_eigen(ham, olp, load_orbs_alpha(fname), load_orbs_beta(fname)) < 2e-6 # Converge from scratch occ_model = AufbauOccModel(2, 1) - check_solve(ham, scf_solver, occ_model, olp, kin, na, mol.orb_alpha, mol.orb_beta) + check_solve(ham, scf_solver, occ_model, olp, kin, na, load_orbs_alpha(fname), + load_orbs_beta(fname)) # test orbital energies expected_energies = np.array([ -5.41141676E-01, -1.56826691E-01, 2.13089637E-01, 7.13565167E-01, 7.86810564E-01, 1.40663544E+00 ]) - assert abs(mol.orb_alpha.energies - expected_energies).max() < 2e-5 + assert abs(load_orbs_alpha(fname).energies - expected_energies).max() < 2e-5 expected_energies = np.array([ -4.96730336E-01, -5.81411249E-02, 2.73586652E-01, 7.41987185E-01, 8.76161160E-01, 1.47488421E+00 ]) - assert abs(mol.orb_beta.energies - expected_energies).max() < 2e-5 + assert abs(load_orbs_beta(fname).energies - expected_energies).max() < 2e-5 ham.compute_energy() # compare with g09 @@ -719,47 +727,42 @@ def check_h3_os_pbe(scf_solver): assert abs(ham.cache['energy_nn'] - 1.8899186021) < 1e-8 -def check_vanadium_sc_hf(scf_solver): - """Try to converge the SCF for the neutral vanadium atom with fixe fractional occupations. - - Parameters - ---------- - scf_solver : one of the SCFSolver types in HORTON - A configured SCF solver that must be tested. - """ - # vanadium atoms - numbers = np.array([23]) - pseudo_numbers = numbers.astype(float) - coordinates = np.zeros((1, 3), float) - - # Simple basis set - obasis = get_gobasis(coordinates, numbers, 'def2-tzvpd') - - # Compute integrals - olp = obasis.compute_overlap() - kin = obasis.compute_kinetic() - na = obasis.compute_nuclear_attraction(coordinates, pseudo_numbers) - er = obasis.compute_electron_repulsion() - - # Setup of restricted HF Hamiltonian - terms = [ - RTwoIndexTerm(kin, 'kin'), - RDirectTerm(er, 'hartree'), - RExchangeTerm(er, 'x_hf'), - RTwoIndexTerm(na, 'ne'), - ] - ham = REffHam(terms) - - # Define fractional occupations of interest. (Spin-compensated case) - occ_model = FixedOccModel(np.array([1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, - 1.0, 1.0, 0.5])) - - # Allocate orbitals and make the initial guess - orb_alpha = Orbitals(obasis.nbasis) - guess_core_hamiltonian(olp, kin + na, orb_alpha) - - # SCF test - check_solve(ham, scf_solver, occ_model, olp, kin, na, orb_alpha) +# TODO: Move to higher level test (cached integrals are too big to isolate) +# def check_vanadium_sc_hf(scf_solver): +# """Try to converge the SCF for the neutral vanadium atom with fixed fractional occupations. +# +# Parameters +# ---------- +# scf_solver : one of the SCFSolver types in HORTON +# A configured SCF solver that must be tested. +# """ +# fname = "vanadium_cs_hf" +# +# # Compute integrals +# olp = load_olp(fname) +# kin = load_kin(fname) +# na = load_na(fname) +# er = load_er(fname) +# +# # Setup of restricted HF Hamiltonian +# terms = [ +# RTwoIndexTerm(kin, 'kin'), +# RDirectTerm(er, 'hartree'), +# RExchangeTerm(er, 'x_hf'), +# RTwoIndexTerm(na, 'ne'), +# ] +# ham = REffHam(terms) +# +# # Define fractional occupations of interest. (Spin-compensated case) +# occ_model = FixedOccModel(np.array([1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, +# 1.0, 1.0, 0.5])) +# +# # Allocate orbitals and make the initial guess +# orb_alpha = Orbitals(olp.shape[0]) +# guess_core_hamiltonian(olp, kin + na, orb_alpha) +# +# # SCF test +# check_solve(ham, scf_solver, occ_model, olp, kin, na, orb_alpha) def check_water_cs_m05(scf_solver): @@ -770,44 +773,45 @@ def check_water_cs_m05(scf_solver): scf_solver : one of the SCFSolver types in HORTON A configured SCF solver that must be tested. """ - fn_fchk = context.get_fn('test/water_m05_321g.fchk') - mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'fine', + fname = 'water_m05_321g_fchk' + mdata = load_mdata(fname) + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], 'fine', random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) + external = {'nn': load_nn(fname)} libxc_term = RLibXCHybridMGGA('xc_m05') terms = [ RTwoIndexTerm(kin, 'kin'), RDirectTerm(er, 'hartree'), - RGridGroup(mol.obasis, grid, [libxc_term]), + RGridGroup(get_obasis(fname), grid, [libxc_term]), RExchangeTerm(er, 'x_hf', libxc_term.get_exx_fraction()), RTwoIndexTerm(na, 'ne'), ] ham = REffHam(terms, external) # compute the energy before converging - dm_alpha = mol.orb_alpha.to_dm() + dm_alpha = load_orbsa_dms(fname) ham.reset(dm_alpha) ham.compute_energy() assert abs(ham.cache['energy'] - -75.9532086800) < 1e-3 # The convergence should be reasonable, not perfect because of limited # precision in the molden file: - assert convergence_error_eigen(ham, olp, mol.orb_alpha) < 1e-3 + orb_alpha = load_orbs_alpha(fname) + assert convergence_error_eigen(ham, olp, orb_alpha) < 1e-3 # keep a copy of the orbital energies - expected_alpha_energies = mol.orb_alpha.energies.copy() + expected_alpha_energies = orb_alpha.energies.copy() # Converge from scratch occ_model = AufbauOccModel(5) - check_solve(ham, scf_solver, occ_model, olp, kin, na, mol.orb_alpha) + check_solve(ham, scf_solver, occ_model, olp, kin, na, orb_alpha) # test orbital energies - assert abs(mol.orb_alpha.energies - expected_alpha_energies).max() < 2e-3 + assert abs(orb_alpha.energies - expected_alpha_energies).max() < 2e-3 ham.compute_energy() # compare with @@ -827,19 +831,19 @@ def check_methyl_os_tpss(scf_solver): scf_solver : one of the SCFSolver types in HORTON A configured SCF solver that must be tested. """ - fn_fchk = context.get_fn('test/methyl_tpss_321g.fchk') - mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, 'fine', + fname = 'methyl_tpss_321g_fchk' + mdata = load_mdata(fname) + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], 'fine', random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) + external = {'nn': load_nn(fname)} terms = [ UTwoIndexTerm(kin, 'kin'), UDirectTerm(er, 'hartree'), - UGridGroup(mol.obasis, grid, [ + UGridGroup(get_obasis(fname), grid, [ ULibXCMGGA('x_tpss'), ULibXCMGGA('c_tpss'), ]), @@ -848,27 +852,28 @@ def check_methyl_os_tpss(scf_solver): ham = UEffHam(terms, external) # compute the energy before converging - dm_alpha = mol.orb_alpha.to_dm() - dm_beta = mol.orb_beta.to_dm() + dm_alpha = load_orbsa_dms(fname) + dm_beta = load_orbsb_dms(fname) ham.reset(dm_alpha, dm_beta) ham.compute_energy() assert abs(ham.cache['energy'] - -39.6216986265) < 1e-3 # The convergence should be reasonable, not perfect because of limited # precision in the molden file: - assert convergence_error_eigen(ham, olp, mol.orb_alpha, mol.orb_beta) < 1e-3 + assert convergence_error_eigen(ham, olp, load_orbs_alpha(fname), load_orbs_beta(fname)) < 1e-3 # keep a copy of the orbital energies - expected_alpha_energies = mol.orb_alpha.energies.copy() - expected_beta_energies = mol.orb_beta.energies.copy() + expected_alpha_energies = load_orbs_alpha(fname).energies.copy() + expected_beta_energies = load_orbs_beta(fname).energies.copy() # Converge from scratch occ_model = AufbauOccModel(5, 4) - check_solve(ham, scf_solver, occ_model, olp, kin, na, mol.orb_alpha, mol.orb_beta) + check_solve(ham, scf_solver, occ_model, olp, kin, na, load_orbs_alpha(fname), + load_orbs_beta(fname)) # test orbital energies - assert abs(mol.orb_alpha.energies - expected_alpha_energies).max() < 2e-3 - assert abs(mol.orb_beta.energies - expected_beta_energies).max() < 2e-3 + assert abs(load_orbs_alpha(fname).energies - expected_alpha_energies).max() < 2e-3 + assert abs(load_orbs_beta(fname).energies - expected_beta_energies).max() < 2e-3 ham.compute_energy() # compare with @@ -878,3 +883,132 @@ def check_methyl_os_tpss(scf_solver): ham.cache['energy_libxc_mgga_c_tpss'] - 21.55131145126) < 1e-2 assert abs(ham.cache['energy'] - -39.6216986265) < 1e-3 assert abs(ham.cache['energy_nn'] - 9.0797839705) < 1e-5 + + +def _compose_fn(subpath, fn, ext=".npy"): + cur_pth = path.split(__file__)[0] + pth = cur_pth + "/cached/{}/{}{}".format(fn, subpath, ext) + return np.load(pth).astype(np.float64) + + +def load_json(fn): + return _compose_fn("er", fn) + # cur_pth = path.split(__file__)[0] + # pth = cur_pth + "/cached/json/{}".format(fn) + # with open(pth) as fh: + # a = np.array(json.load(fh)) + # return a + + +def load_quad(fn): + return _compose_fn("quads", fn) + + +def load_dipole(fn): + return _compose_fn("dipoles", fn) + + +def load_dm(fn): + return _compose_fn("dm", fn) + + +def load_olp(fn): + return _compose_fn("olp", fn) + + +def load_na(fn): + return _compose_fn("na", fn) + + +def load_nn(fn): + return getattr(mdata, fn)['nucnuc'] + + +def load_kin(fn): + return _compose_fn("kin", fn) + + +def load_er(fn): + return _compose_fn("er", fn) + + +def load_er_chol(fn): + return _compose_fn("chol", fn) + + +def load_orbsa_energies(fn): + return _compose_fn("orbs_a_energies", fn) + + +def load_orbsa_coeffs(fn): + return _compose_fn("orbs_a_coeffs", fn) + + +def load_orbsa_occs(fn): + return _compose_fn("orbs_a_occs", fn) + + +def load_orbsa_dms(fn): + return _compose_fn("orbs_a_dms", fn) + + +def load_orbs_alpha(fn): + orb_coeffs = load_orbsa_coeffs(fn) + orb_occs = load_orbsa_occs(fn) + orb_energies = load_orbsa_energies(fn) + orb = Orbitals(*orb_coeffs.shape) + orb.coeffs[:] = orb_coeffs + orb.occupations[:] = orb_occs + orb.energies[:] = orb_energies + return orb + + +def load_orbsb_coeffs(fn): + return _compose_fn("orbs_b_coeffs", fn) + + +def load_orbsb_occs(fn): + return _compose_fn("orbs_b_occs", fn) + + +def load_orbsb_dms(fn): + return _compose_fn("orbs_b_dms", fn) + + +def load_orbsb_energies(fn): + return _compose_fn("orbs_b_energies", fn) + + +def load_orbs_beta(fn): + orb_coeffs = load_orbsb_coeffs(fn) + orb_occs = load_orbsb_occs(fn) + orb_energies = load_orbsb_energies(fn) + orb = Orbitals(*orb_coeffs.shape) + orb.coeffs[:] = orb_coeffs + orb.occupations[:] = orb_occs + orb.energies[:] = orb_energies + return orb + + +def load_mdata(fn): + return getattr(mdata, fn) + + +def get_obasis(fn): + params = getattr(gobasis_data, fn) + return GOBasis(*params) + + +@contextmanager +def numpy_seed(seed=1): + """Temporarily set NumPy's random seed to a given number. + + Parameters + ---------- + seed : int + The seed for NumPy's random number generator. + """ + state = np.random.get_state() + np.random.seed(seed) + yield None + np.random.set_state(state) diff --git a/horton/meanfield/test/gobasis_data.py b/horton/meanfield/test/gobasis_data.py new file mode 100644 index 00000000..38bffde8 --- /dev/null +++ b/horton/meanfield/test/gobasis_data.py @@ -0,0 +1,289 @@ +from numpy import array + +h3_hfs_321g_fchk = (array([[0.0000000000000000e+00, 0.0000000000000000e+00, + 1.3228082900000000e+00], + [0.0000000000000000e+00, 0.0000000000000000e+00, + 0.0000000000000000e+00], + [1.6199729399999999e-16, 0.0000000000000000e+00, + -1.3228082900000000e+00]]), array([0, 0, 1, 1, 2, 2]), + array([2, 1, 2, 1, 2, 1]), array([0, 0, 0, 0, 0, 0]), + array([5.4471780000000001, 0.82454724, 0.18319158, + 5.4471780000000001, 0.82454724, 0.18319158, + 5.4471780000000001, 0.82454724, 0.18319158]), + array([0.156284979, 0.9046908769999999, 1., + 0.156284979, 0.9046908769999999, 1., + 0.156284979, 0.9046908769999999, 1.])) +water_dimer_ghost_fchk = (array([[-0.937840183, 0.868767289, 0.], + [0.208982201, 2.2744296799999999, 0.], + [-0.734015408, 3.8242198100000002, 0.], + [-0.937842198, -3.7089190200000002, 0.], + [0.208982201, -2.30325487, 0.], + [-0.7340174229999999, -0.753466502, 0.]]), + array([0, 1, 1, 1, 2, 3, 4, 4, 4, 5]), + array([3, 3, 3, 3, 3, 3, 3, 3, 3, 3]), + array([0, 0, 0, 1, 0, 0, 0, 0, 1, 0]), + array([3.4252509099999999, 0.6239137300000001, 0.168855404, + 130.7093209999999885, 23.8088660999999995, 6.4436083100000001, + 5.03315132, 1.16959612, 0.38038896, + 5.03315132, 1.16959612, 0.38038896, + 3.4252509099999999, 0.6239137300000001, 0.168855404, + 3.4252509099999999, 0.6239137300000001, 0.168855404, + 130.7093209999999885, 23.8088660999999995, 6.4436083100000001, + 5.03315132, 1.16959612, 0.38038896, + 5.03315132, 1.16959612, 0.38038896, + 3.4252509099999999, 0.6239137300000001, 0.168855404]), + array([0.154328967, 0.535328142, 0.444634542, 0.154328967, + 0.535328142, 0.444634542, -0.0999672292, 0.399512826, + 0.700115469, 0.155916275, 0.607683719, 0.391957393, + 0.154328967, 0.535328142, 0.444634542, 0.154328967, + 0.535328142, 0.444634542, 0.154328967, 0.535328142, + 0.444634542, -0.0999672292, 0.399512826, 0.700115469, + 0.155916275, 0.607683719, 0.391957393, 0.154328967, + 0.535328142, 0.444634542])) +n2_hfs_sto3g_fchk = (array([[0.0000000000000000e+00, 0.0000000000000000e+00, + 1.0506877299999999e+00], + [1.2867213700000000e-16, 0.0000000000000000e+00, + -1.0506877299999999e+00]]), array([0, 0, 0, 1, 1, 1]), + array([3, 3, 3, 3, 3, 3]), array([0, 0, 1, 0, 0, 1]), + array([99.1061689999999942, 18.0523124000000017, 4.88566024, + 3.7804558799999999, 0.878496645, 0.285714374, + 3.7804558799999999, 0.878496645, 0.285714374, + 99.1061689999999942, 18.0523124000000017, 4.88566024, + 3.7804558799999999, 0.878496645, 0.285714374, + 3.7804558799999999, 0.878496645, 0.285714374]), + array([0.154328967, 0.535328142, 0.444634542, -0.0999672292, + 0.399512826, 0.700115469, 0.155916275, 0.607683719, + 0.391957393, 0.154328967, 0.535328142, 0.444634542, + -0.0999672292, 0.399512826, 0.700115469, 0.155916275, + 0.607683719, 0.391957393])) +he_sp_orbital_fchk = (array([[0., 0., 0.]]), array([0, 0, 0, 0, 0, 0]), array([1, 1, 1, 1, 1, 1]), + array([0, 0, 0, 0, 0, 1]), + array([98.1243000000000052, 14.7689000000000004, 3.3188300000000002, + 0.874047, 0.244564, 0.75]), array([1., 1., 1., 1., 1., 1.])) +he_spdf_orbital_fchk = ( +array([[0., 0., 0.]]), array([0, 0, 0, 0]), array([1, 1, 1, 1]), array([0, 1, 2, 3]), +array([0.04819, 0.1626, 0.351, 0.6906]), array([1., 1., 1., 1.])) +water_m05_321g_fchk = (array([[0.0000000000000000e+00, 1.4812372599999999e+00, + -8.3791363799999996e-01], + [0.0000000000000000e+00, 0.0000000000000000e+00, + 2.0947841000000000e-01], + [-1.8139924700000000e-16, -1.4812372599999999e+00, + -8.3791363799999996e-01]]), array([0, 0, 1, 1, 1, 1, 1, 2, 2]), + array([2, 1, 3, 2, 2, 1, 1, 2, 1]), array([0, 0, 0, 0, 1, 0, 1, 0, 0]), + array([5.4471780000000001e+00, 8.2454724000000001e-01, + 1.8319157999999999e-01, 3.2203699999999998e+02, + 4.8430799999999998e+01, 1.0420600000000000e+01, + 7.4029400000000001e+00, 1.5762000000000000e+00, + 7.4029400000000001e+00, 1.5762000000000000e+00, + 3.7368400000000002e-01, 3.7368400000000002e-01, + 5.4471780000000001e+00, 8.2454724000000001e-01, + 1.8319157999999999e-01]), array([0.156284979, 0.9046908769999999, 1., + 0.0592393934, 0.351499961, + 0.707657921, + -0.404453583, 1.2215617599999999, + 0.244586107, + 0.853955373, 1., 1., + 0.156284979, 0.9046908769999999, + 1.])) +h3_pbe_321g_fchk = (array([[0.0000000000000000e+00, 0.0000000000000000e+00, + 1.3228082900000000e+00], + [0.0000000000000000e+00, 0.0000000000000000e+00, + 0.0000000000000000e+00], + [1.6199729399999999e-16, 0.0000000000000000e+00, + -1.3228082900000000e+00]]), array([0, 0, 1, 1, 2, 2]), + array([2, 1, 2, 1, 2, 1]), array([0, 0, 0, 0, 0, 0]), + array([5.4471780000000001, 0.82454724, 0.18319158, + 5.4471780000000001, 0.82454724, 0.18319158, + 5.4471780000000001, 0.82454724, 0.18319158]), + array([0.156284979, 0.9046908769999999, 1., + 0.156284979, 0.9046908769999999, 1., + 0.156284979, 0.9046908769999999, 1.])) +helium_hf_sto3g_fchk = (array([[0., 0., 0.]]), array([0]), array([3]), array([0]), + array([6.3624213899999997, 1.1589229999999999, 0.313649791]), + array([0.154328967, 0.535328142, 0.444634542])) +h_sto3g_fchk = (array([[0., 0., 0.]]), array([0]), array([3]), array([0]), + array([3.4252509099999999, 0.6239137300000001, 0.168855404]), + array([0.154328967, 0.535328142, 0.444634542])) +# benzene_sto3g_fchk = (array([[0.0000000000000000e+00, 2.6456167499999999e+00, +# 0.0000000000000000e+00], +# [-2.2911713200000001e+00, 1.3228083799999999e+00, +# 0.0000000000000000e+00], +# [-2.2911713200000001e+00, -1.3228083799999999e+00, +# 0.0000000000000000e+00], +# [-8.8817842000000006e-16, -2.6456167499999999e+00, +# 0.0000000000000000e+00], +# [2.2911713200000001e+00, -1.3228083799999999e+00, +# 0.0000000000000000e+00], +# [2.2911713200000001e+00, 1.3228083799999999e+00, +# 0.0000000000000000e+00], +# [-4.0733756500000000e+00, 2.3517645300000001e+00, +# -1.2631368700000000e-23], +# [-4.0733756500000000e+00, -2.3517645300000001e+00, +# -2.8800807799999998e-16], +# [-1.3322676300000001e-15, -4.7035290600000002e+00, +# -1.2631368700000000e-23], +# [4.0733756500000000e+00, -2.3517645300000001e+00, +# -1.2631368700000000e-23], +# [4.0733756500000000e+00, 2.3517645300000001e+00, +# 4.9884465800000005e-16], +# [3.9968028900000001e-15, 4.7035290600000002e+00, +# -1.2631368700000000e-23]]), +# array([0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, +# 5, 6, 7, 8, 9, 10, 11]), +# array([3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, +# 3]), +# array([0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, +# 0]), +# array([71.6168373000000003, 13.0450963000000009, 3.5305121599999998, +# 2.94124936, 0.683483096, 0.222289916, +# 2.94124936, 0.683483096, 0.222289916, +# 71.6168373000000003, 13.0450963000000009, 3.5305121599999998, +# 2.94124936, 0.683483096, 0.222289916, +# 2.94124936, 0.683483096, 0.222289916, +# 71.6168373000000003, 13.0450963000000009, 3.5305121599999998, +# 2.94124936, 0.683483096, 0.222289916, +# 2.94124936, 0.683483096, 0.222289916, +# 71.6168373000000003, 13.0450963000000009, 3.5305121599999998, +# 2.94124936, 0.683483096, 0.222289916, +# 2.94124936, 0.683483096, 0.222289916, +# 71.6168373000000003, 13.0450963000000009, 3.5305121599999998, +# 2.94124936, 0.683483096, 0.222289916, +# 2.94124936, 0.683483096, 0.222289916, +# 71.6168373000000003, 13.0450963000000009, 3.5305121599999998, +# 2.94124936, 0.683483096, 0.222289916, +# 2.94124936, 0.683483096, 0.222289916, +# 3.4252509099999999, 0.6239137300000001, 0.168855404, +# 3.4252509099999999, 0.6239137300000001, 0.168855404, +# 3.4252509099999999, 0.6239137300000001, 0.168855404, +# 3.4252509099999999, 0.6239137300000001, 0.168855404, +# 3.4252509099999999, 0.6239137300000001, 0.168855404, +# 3.4252509099999999, 0.6239137300000001, 0.168855404]), +# array([0.154328967, 0.535328142, 0.444634542, -0.0999672292, +# 0.399512826, 0.700115469, 0.155916275, 0.607683719, +# 0.391957393, 0.154328967, 0.535328142, 0.444634542, +# -0.0999672292, 0.399512826, 0.700115469, 0.155916275, +# 0.607683719, 0.391957393, 0.154328967, 0.535328142, +# 0.444634542, -0.0999672292, 0.399512826, 0.700115469, +# 0.155916275, 0.607683719, 0.391957393, 0.154328967, +# 0.535328142, 0.444634542, -0.0999672292, 0.399512826, +# 0.700115469, 0.155916275, 0.607683719, 0.391957393, +# 0.154328967, 0.535328142, 0.444634542, -0.0999672292, +# 0.399512826, 0.700115469, 0.155916275, 0.607683719, +# 0.391957393, 0.154328967, 0.535328142, 0.444634542, +# -0.0999672292, 0.399512826, 0.700115469, 0.155916275, +# 0.607683719, 0.391957393, 0.154328967, 0.535328142, +# 0.444634542, 0.154328967, 0.535328142, 0.444634542, +# 0.154328967, 0.535328142, 0.444634542, 0.154328967, +# 0.535328142, 0.444634542, 0.154328967, 0.535328142, +# 0.444634542, 0.154328967, 0.535328142, 0.444634542])) +water_hfs_321g_fchk = (array([[0.0000000000000000e+00, 1.4812372599999999e+00, + -8.3791363799999996e-01], + [0.0000000000000000e+00, 0.0000000000000000e+00, + 2.0947841000000000e-01], + [-1.8139924700000000e-16, -1.4812372599999999e+00, + -8.3791363799999996e-01]]), array([0, 0, 1, 1, 1, 1, 1, 2, 2]), + array([2, 1, 3, 2, 2, 1, 1, 2, 1]), array([0, 0, 0, 0, 1, 0, 1, 0, 0]), + array([5.4471780000000001e+00, 8.2454724000000001e-01, + 1.8319157999999999e-01, 3.2203699999999998e+02, + 4.8430799999999998e+01, 1.0420600000000000e+01, + 7.4029400000000001e+00, 1.5762000000000000e+00, + 7.4029400000000001e+00, 1.5762000000000000e+00, + 3.7368400000000002e-01, 3.7368400000000002e-01, + 5.4471780000000001e+00, 8.2454724000000001e-01, + 1.8319157999999999e-01]), array([0.156284979, 0.9046908769999999, 1., + 0.0592393934, 0.351499961, + 0.707657921, + -0.404453583, 1.2215617599999999, + 0.244586107, + 0.853955373, 1., 1., + 0.156284979, 0.9046908769999999, + 1.])) +water_sto3g_hf_g03_fchk = (array([[0., 0., 0.], + [0., 0., 1.7952398300000001], + [1.69257101, 0., -0.5984063469999999]]), array([0, 0, 0, 1, 2]), + array([3, 3, 3, 3, 3]), array([0, 0, 1, 0, 0]), + array([130.7093209999999885, 23.8088660999999995, 6.4436083100000001, + 5.03315132, 1.16959612, 0.38038896, + 5.03315132, 1.16959612, 0.38038896, + 3.4252509099999999, 0.6239137300000001, 0.168855404, + 3.4252509099999999, 0.6239137300000001, 0.168855404]), + array([0.154328967, 0.535328142, 0.444634542, -0.0999672292, + 0.399512826, 0.700115469, 0.155916275, 0.607683719, + 0.391957393, 0.154328967, 0.535328142, 0.444634542, + 0.154328967, 0.535328142, 0.444634542])) +co_pbe_sto3g_fchk = (array([[0., 0., -1.2180634699999999], + [0., 0., 0.913547605]]), array([0, 0, 0, 1, 1, 1]), + array([3, 3, 3, 3, 3, 3]), array([0, 0, 1, 0, 0, 1]), + array([71.6168373000000003, 13.0450963000000009, 3.5305121599999998, + 2.94124936, 0.683483096, 0.222289916, + 2.94124936, 0.683483096, 0.222289916, + 130.7093209999999885, 23.8088660999999995, 6.4436083100000001, + 5.03315132, 1.16959612, 0.38038896, + 5.03315132, 1.16959612, 0.38038896]), + array([0.154328967, 0.535328142, 0.444634542, -0.0999672292, + 0.399512826, 0.700115469, 0.155916275, 0.607683719, + 0.391957393, 0.154328967, 0.535328142, 0.444634542, + -0.0999672292, 0.399512826, 0.700115469, 0.155916275, + 0.607683719, 0.391957393])) +ch3_hf_sto3g_fchk = (array([[0.358528636, 0.360868439, 0.360868439], + [-0.307236803, -0.309472858, 2.16905613], + [-0.307236803, 2.16905613, -0.309472858], + [2.16078891, -0.315607772, -0.315607772]]), array([0, 0, 0, 1, 2, 3]), + array([3, 3, 3, 3, 3, 3]), array([0, 0, 1, 0, 0, 0]), + array([71.6168373000000003, 13.0450963000000009, 3.5305121599999998, + 2.94124936, 0.683483096, 0.222289916, + 2.94124936, 0.683483096, 0.222289916, + 3.4252509099999999, 0.6239137300000001, 0.168855404, + 3.4252509099999999, 0.6239137300000001, 0.168855404, + 3.4252509099999999, 0.6239137300000001, 0.168855404]), + array([0.154328967, 0.535328142, 0.444634542, -0.0999672292, + 0.399512826, 0.700115469, 0.155916275, 0.607683719, + 0.391957393, 0.154328967, 0.535328142, 0.444634542, + 0.154328967, 0.535328142, 0.444634542, 0.154328967, + 0.535328142, 0.444634542])) +methyl_tpss_321g_fchk = (array([[0.0000000000000000e+00, 0.0000000000000000e+00, + 0.0000000000000000e+00], + [2.6469779600000001e-23, 2.1731850499999998e+00, + 6.2007975699999997e-24], + [-1.8820334599999999e+00, -1.0865925299999999e+00, + 6.2007975699999997e-24], + [1.8820334599999999e+00, -1.0865925299999999e+00, + 6.2007975699999997e-24]]), + array([0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3]), + array([3, 2, 2, 1, 1, 2, 1, 2, 1, 2, 1]), + array([0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0]), + array([172.2560000000000002, 25.9109000000000016, 5.5333500000000004, + 3.6649799999999999, 0.770545, 3.6649799999999999, + 0.770545, 0.195857, 0.195857, + 5.4471780000000001, 0.82454724, 0.18319158, + 5.4471780000000001, 0.82454724, 0.18319158, + 5.4471780000000001, 0.82454724, 0.18319158]), + array([0.0617669074, 0.358794043, 0.700713084, + -0.395895162, 1.2158343599999999, 0.236459947, + 0.860618806, 1., 1., + 0.156284979, 0.9046908769999999, 1., + 0.156284979, 0.9046908769999999, 1., + 0.156284979, 0.9046908769999999, 1.])) +li_h_3_21G_hf_g09_fchk = (array([[0., 0., 1.11419479], + [0., 0., -3.3425843799999999]]), array([0, 0, 0, 0, 0, 1, 1]), + array([3, 2, 2, 1, 1, 2, 1]), array([0, 0, 1, 0, 1, 0, 0]), + array([3.6838200000000001e+01, 5.4817200000000001e+00, + 1.1132700000000000e+00, 5.4020500000000005e-01, + 1.0225500000000000e-01, 5.4020500000000005e-01, + 1.0225500000000000e-01, 2.8564500000000000e-02, + 2.8564500000000000e-02, 5.4471780000000001e+00, + 8.2454724000000001e-01, 1.8319157999999999e-01]), + array([0.0696686638, 0.381346349, 0.681702624, + -0.263126406, 1.14338742, 0.161545971, + 0.915662835, 1., 1., + 0.156284979, 0.9046908769999999, 1.])) +hf_sto3g_fchk = (array([[0., 0., 0.190484394], + [0., 0., -1.71435955]]), array([0, 0, 0, 1]), array([3, 3, 3, 3]), + array([0, 0, 1, 0]), + array([166.6791340000000048, 30.3608122999999992, 8.2168206700000006, + 6.4648032500000001, 1.5022812400000001, 0.488588486, + 6.4648032500000001, 1.5022812400000001, 0.488588486, + 3.4252509099999999, 0.6239137300000001, 0.168855404]), + array([0.154328967, 0.535328142, 0.444634542, -0.0999672292, + 0.399512826, 0.700115469, 0.155916275, 0.607683719, + 0.391957393, 0.154328967, 0.535328142, 0.444634542])) diff --git a/horton/meanfield/test/mol_data.py b/horton/meanfield/test/mol_data.py new file mode 100644 index 00000000..652aebc3 --- /dev/null +++ b/horton/meanfield/test/mol_data.py @@ -0,0 +1,142 @@ +from numpy import array + +h3_hfs_321g_fchk = {'nucnuc': 1.889918606421797, 'numbers': array([1, 1, 1]), + 'coordinates': array([[0.0000000000000000e+00, 0.0000000000000000e+00, + 1.3228082900000000e+00], + [0.0000000000000000e+00, 0.0000000000000000e+00, + 0.0000000000000000e+00], + [1.6199729399999999e-16, 0.0000000000000000e+00, + -1.3228082900000000e+00]]), + 'pseudo_numbers': array([1., 1., 1.])} +water_dimer_ghost_fchk = {'nucnuc': 9.1571789976254827, 'numbers': array([1, 8, 1]), + 'coordinates': array([[-0.937840183, 0.868767289, 0.], + [0.208982201, 2.2744296799999999, 0.], + [-0.734015408, 3.8242198100000002, 0.]]), + 'pseudo_numbers': array([1., 8., 1.])} +# h2_azirine_xyz = {'nucnuc': 64.647801652969974, 'numbers': array([7, 6, 6, 1, 1, 1]), +# 'coordinates': array([[-1.1393158861411228, 0.9913503298550888, 0.], +# [1.6527544767275271, 0.2864824819024618, 0.], +# [-0.5134385905864042, -1.2778328117575508, 0.], +# [2.6146250788934444, 0.6708527775420444, +# 1.7544217427324904], +# [2.6144361062800523, 0.6710417501554367, +# -1.7546107153458825], +# [-0.9227532711937474, -3.2949264871050952, 0.]]), +# 'pseudo_numbers': array([7., 6., 6., 1., 1., 1.])} +n2_hfs_sto3g_fchk = {'nucnuc': 23.318060447893497, 'numbers': array([7, 7]), + 'coordinates': array([[0.0000000000000000e+00, 0.0000000000000000e+00, + 1.0506877299999999e+00], + [1.2867213700000000e-16, 0.0000000000000000e+00, + -1.0506877299999999e+00]]), + 'pseudo_numbers': array([7., 7.])} +he_sp_orbital_fchk = {'nucnuc': 0.0, 'numbers': array([2]), 'coordinates': array([[0., 0., 0.]]), + 'pseudo_numbers': array([2.])} +he_spdf_orbital_fchk = {'nucnuc': 0.0, 'numbers': array([2]), 'coordinates': array([[0., 0., 0.]]), + 'pseudo_numbers': array([2.])} +water_m05_321g_fchk = {'nucnuc': 9.1571750519170614, 'numbers': array([1, 8, 1]), + 'coordinates': array([[0.0000000000000000e+00, 1.4812372599999999e+00, + -8.3791363799999996e-01], + [0.0000000000000000e+00, 0.0000000000000000e+00, + 2.0947841000000000e-01], + [-1.8139924700000000e-16, -1.4812372599999999e+00, + -8.3791363799999996e-01]]), + 'pseudo_numbers': array([1., 8., 1.])} +h3_pbe_321g_fchk = {'nucnuc': 1.889918606421797, 'numbers': array([1, 1, 1]), + 'coordinates': array([[0.0000000000000000e+00, 0.0000000000000000e+00, + 1.3228082900000000e+00], + [0.0000000000000000e+00, 0.0000000000000000e+00, + 0.0000000000000000e+00], + [1.6199729399999999e-16, 0.0000000000000000e+00, + -1.3228082900000000e+00]]), + 'pseudo_numbers': array([1., 1., 1.])} +helium_hf_sto3g_fchk = {'nucnuc': 0.0, 'numbers': array([2]), 'coordinates': array([[0., 0., 0.]]), + 'pseudo_numbers': array([2.])} +h_sto3g_fchk = {'nucnuc': 0.0, 'numbers': array([1]), 'coordinates': array([[0., 0., 0.]]), + 'pseudo_numbers': array([1.])} +# benzene_sto3g_fchk = {'nucnuc': 202.7136874711675, +# 'numbers': array([6, 6, 6, 6, 6, 6, 1, 1, 1, 1, 1, 1]), +# 'coordinates': array([[0.0000000000000000e+00, 2.6456167499999999e+00, +# 0.0000000000000000e+00], +# [-2.2911713200000001e+00, 1.3228083799999999e+00, +# 0.0000000000000000e+00], +# [-2.2911713200000001e+00, -1.3228083799999999e+00, +# 0.0000000000000000e+00], +# [-8.8817842000000006e-16, -2.6456167499999999e+00, +# 0.0000000000000000e+00], +# [2.2911713200000001e+00, -1.3228083799999999e+00, +# 0.0000000000000000e+00], +# [2.2911713200000001e+00, 1.3228083799999999e+00, +# 0.0000000000000000e+00], +# [-4.0733756500000000e+00, 2.3517645300000001e+00, +# -1.2631368700000000e-23], +# [-4.0733756500000000e+00, -2.3517645300000001e+00, +# -2.8800807799999998e-16], +# [-1.3322676300000001e-15, -4.7035290600000002e+00, +# -1.2631368700000000e-23], +# [4.0733756500000000e+00, -2.3517645300000001e+00, +# -1.2631368700000000e-23], +# [4.0733756500000000e+00, 2.3517645300000001e+00, +# 4.9884465800000005e-16], +# [3.9968028900000001e-15, 4.7035290600000002e+00, +# -1.2631368700000000e-23]]), +# 'pseudo_numbers': array([6., 6., 6., 6., 6., 6., 1., 1., 1., 1., 1., 1.])} +water_hfs_321g_fchk = {'nucnuc': 9.1571750519170614, 'numbers': array([1, 8, 1]), + 'coordinates': array([[0.0000000000000000e+00, 1.4812372599999999e+00, + -8.3791363799999996e-01], + [0.0000000000000000e+00, 0.0000000000000000e+00, + 2.0947841000000000e-01], + [-1.8139924700000000e-16, -1.4812372599999999e+00, + -8.3791363799999996e-01]]), + 'pseudo_numbers': array([1., 8., 1.])} +water_sto3g_hf_g03_fchk = {'nucnuc': 9.2535671885715303, 'numbers': array([8, 1, 1]), + 'coordinates': array([[0., 0., 0.], + [0., 0., 1.7952398300000001], + [1.69257101, 0., -0.5984063469999999]]), + 'pseudo_numbers': array([8., 1., 1.])} +co_pbe_sto3g_fchk = {'nucnuc': 22.518179119518791, 'numbers': array([6, 8]), + 'coordinates': array([[0., 0., -1.2180634699999999], + [0., 0., 0.913547605]]), + 'pseudo_numbers': array([6., 8.])} +ch3_hf_sto3g_fchk = {'nucnuc': 9.6788934784715845, 'numbers': array([6, 1, 1, 1]), + 'coordinates': array([[0.358528636, 0.360868439, 0.360868439], + [-0.307236803, -0.309472858, 2.16905613], + [-0.307236803, 2.16905613, -0.309472858], + [2.16078891, -0.315607772, -0.315607772]]), + 'pseudo_numbers': array([6., 1., 1., 1.])} +methyl_tpss_321g_fchk = {'nucnuc': 9.0797839763629522, 'numbers': array([6, 1, 1, 1]), + 'coordinates': array([[0.0000000000000000e+00, 0.0000000000000000e+00, + 0.0000000000000000e+00], + [2.6469779600000001e-23, 2.1731850499999998e+00, + 6.2007975699999997e-24], + [-1.8820334599999999e+00, -1.0865925299999999e+00, + 6.2007975699999997e-24], + [1.8820334599999999e+00, -1.0865925299999999e+00, + 6.2007975699999997e-24]]), + 'pseudo_numbers': array([6., 1., 1., 1.])} +li_h_3_21G_hf_g09_fchk = {'nucnuc': 0.67313184826252004, 'numbers': array([3, 1]), + 'coordinates': array([[0., 0., 1.11419479], + [0., 0., -3.3425843799999999]]), + 'pseudo_numbers': array([3., 1.])} +hf_sto3g_fchk = {'nucnuc': 4.7247965001798597, 'numbers': array([9, 1]), + 'coordinates': array([[0., 0., 0.190484394], + [0., 0., -1.71435955]]), 'pseudo_numbers': array([9., 1.])} +water_xyz = {'nucnuc': 9.1571750364299866, 'numbers': array([1, 8, 1]), + 'coordinates': array([[1.4812372636344324, -0.9301912332568615, -0.], + [-0., 0.1172008148257961, -0.], + [-1.4812372636344324, -0.9301912332568615, -0.]]), + 'pseudo_numbers': array([1., 8., 1.])} +neon_6_31gd_xyz = {'nucnuc': 0.0, 'numbers': array([10]), 'coordinates': array([[0., 0., 0.]]), + 'pseudo_numbers': array([10.])} +water_6_31gd_xyz = {'nucnuc': 9.1571750364299866, 'numbers': array([1, 8, 1]), + 'coordinates': array([[1.48123726, -0.93019123, -0.], + [-0., 0.11720081, -0.], + [-1.48123726, -0.93019123, -0.]]), + 'pseudo_numbers': array([1., 8., 1.])} +# h2_azirine_3_21g_xyz = {'nucnuc': 64.647801652969974, 'numbers': array([7, 6, 6, 1, 1, 1]), +# 'coordinates': array([[-1.13931589, 0.99135033, 0.], +# [1.65275448, 0.28648248, 0.], +# [-0.51343859, -1.27783281, 0.], +# [2.61462508, 0.67085278, 1.75442174], +# [2.61443611, 0.67104175, -1.75461072], +# [-0.92275327, -3.29492649, 0.]]), +# 'pseudo_numbers': array([7., 6., 6., 1., 1., 1.])} diff --git a/horton/gbasis/test/strip_io.py b/horton/meanfield/test/strip_io.py similarity index 51% rename from horton/gbasis/test/strip_io.py rename to horton/meanfield/test/strip_io.py index 6ed9ebc4..d6bf2467 100755 --- a/horton/gbasis/test/strip_io.py +++ b/horton/meanfield/test/strip_io.py @@ -1,11 +1,11 @@ #!/usr/bin/env python import json +from glob import glob +import numpy as np from os import mkdir from horton import * -import numpy as np -from glob import glob log.set_level(log.silent) np.set_printoptions(precision=16) @@ -22,9 +22,21 @@ def grep_file(): # if ".json" in i: # skipped.append((filename, i)) # continue + if "%s" in i: + skipped.append((filename, i)) + continue + if "test/" in i: - fn, san_fn = santize_fn(i) - filenames.append((fn, "cached/" + san_fn)) + fn, san_fn = sanitize_fn(i) + print fn, san_fn + filenames.append((fn, san_fn)) + + # with open("test_utils.py") as fh: + # for i in fh: + # if ".fchk" in i: + # fn, san_fn = unsanitize_fn(i) + # print fn, san_fn + # filenames.append((fn, san_fn)) filenames = set(filenames) filenames2 = set() @@ -32,7 +44,7 @@ def grep_file(): for fn, san_fn in filenames: try: - mkdir(san_fn) + mkdir("cached/" + san_fn) except OSError: pass @@ -42,10 +54,14 @@ def grep_file(): if "fchk" in san_fn: flog = fn[:-4] + "log" + print fn, flog try: mol = IOData.from_file(context.get_fn(fn), context.get_fn(flog)) save_ints(mol, san_fn) except IOError: + print "No log file", flog + mol = IOData.from_file(context.get_fn(fn)) + save_ints(mol, san_fn) pass filenames2.add((fn, san_fn)) @@ -56,6 +72,7 @@ def grep_file(): try: i(mol, san_fn) except AttributeError: + print "Error on", i, san_fn pass print "-" * 80 @@ -67,7 +84,13 @@ def grep_file(): print(s) -def santize_fn(line): +def unsanitize_fn(line): + fn = line.split("'")[1] + san_fn = fn.replace(".", "_").replace("-", "_") + return "test/" + fn, san_fn + + +def sanitize_fn(line): if "\'" in line: fn = line.split("'")[1] else: @@ -76,58 +99,75 @@ def santize_fn(line): return fn, san_fn +lookup = {"olp": "compute_overlap", "kin": "compute_kinetic", "na": "compute_nuclear_attraction", + "er": "compute_electron_repulsion", "chol": "compute_electron_repulsion_cholesky", } + + def save_ints(mol, san_fn): - for i in ("olp", "kin", "na", "er", "two_mo"): + for i in ("olp", "kin", "na", "er", "two_mo", "chol"): try: - np.save("{}/{}".format(san_fn, i), getattr(mol, i).astype(np.float32)) + np.save("{}/{}".format("cached/" + san_fn, i), getattr(mol, i)) except AttributeError: + print "Generating ints", i, "on", san_fn + if i == "two_mo": + continue + + if i == "na": + int = getattr(mol.obasis, lookup[i])(mol.coordinates, mol.pseudo_numbers) + else: + int = getattr(mol.obasis, lookup[i])() + np.save("{}/{}".format("cached/" + san_fn, i), int) pass def save_gobasis_params(mol, san_fn): obasis = mol.obasis print san_fn + " = ", - print(obasis.centers, obasis.shell_map, obasis.nprims, obasis.shell_types, obasis.alphas, obasis.con_coeffs) + print(obasis.centers, obasis.shell_map, obasis.nprims, obasis.shell_types, obasis.alphas, + obasis.con_coeffs) def save_dms(mol, san_fn): dm = mol.get_dm_full().astype(np.float32) - np.save(san_fn + "/dm", dm) + np.save("cached/" + san_fn + "/dm", dm) def save_exps(mol, san_fn): orba = mol.orb_alpha - np.save(san_fn + "/orbs_a_coeffs", orba.coeffs) - np.save(san_fn + "/orbs_a_occs", orba.occupations) - np.save(san_fn + "/orbs_a_dms", orba.to_dm()) + np.save("cached/" + san_fn + "/orbs_a_coeffs", orba.coeffs) + np.save("cached/" + san_fn + "/orbs_a_occs", orba.occupations) + np.save("cached/" + san_fn + "/orbs_a_dms", orba.to_dm()) + np.save("cached/" + san_fn + "/orbs_a_energies", orba.energies) orbb = mol.orb_beta - np.save(san_fn + "/orbs_b_coeffs", orbb.coeffs) - np.save(san_fn + "/orbs_b_occs", orbb.occupations) - np.save(san_fn + "/orbs_b_dms", orbb.to_dm()) + np.save("cached/" + san_fn + "/orbs_b_coeffs", orbb.coeffs) + np.save("cached/" + san_fn + "/orbs_b_occs", orbb.occupations) + np.save("cached/" + san_fn + "/orbs_b_dms", orbb.to_dm()) + np.save("cached/" + san_fn + "/orbs_b_energies", orbb.energies) def save_moldata(mol, san_fn): d = {"coordinates": mol.coordinates, "numbers": mol.numbers, - "pseudo_numbers": mol.pseudo_numbers} + "pseudo_numbers": mol.pseudo_numbers, + "nucnuc": compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} print san_fn + "=", print(d) def save_quads(mol, san_fn): quad = mol.quadrupole_moment.astype(np.float32) - np.save(san_fn + "/quads", quad) + np.save("cached/" + san_fn + "/quads", quad) def save_dipoles(mol, san_fn): dipole = mol.dipole_moment.astype(np.float32) - np.save(san_fn + "/dipoles", dipole) + np.save("cached/" + san_fn + "/dipoles", dipole) def save_json(json_fn, san_fn): with open(json_fn) as fh: arr = np.array(json.load(fh)) - np.save(san_fn + "/er", arr) + np.save("cached/" + san_fn + "/er", arr) grep_file() diff --git a/horton/meanfield/test/test_builtin.py b/horton/meanfield/test/test_builtin.py index 4031947d..a2f90110 100644 --- a/horton/meanfield/test/test_builtin.py +++ b/horton/meanfield/test/test_builtin.py @@ -18,24 +18,27 @@ # along with this program; if not, see # # -- - - import numpy as np -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import +from horton.grid import BeckeMolGrid +from horton.meanfield.test.common import load_mdata, load_er, load_orbsa_dms, load_orbsb_dms, \ + get_obasis +from .. import REffHam, RDirectTerm, RGridGroup, RBeckeHartree, UEffHam, UDirectTerm, UGridGroup, \ + UBeckeHartree def test_becke_hartree_n2_hfs_sto3g(): - fn_fchk = context.get_fn('test/n2_hfs_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False, + fname = 'n2_hfs_sto3g_fchk' + mdata = load_mdata(fname) + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False, mode='keep') - er = mol.obasis.compute_electron_repulsion() + er = load_er(fname) ham1 = REffHam([RDirectTerm(er, 'hartree')]) - ham2 = REffHam([RGridGroup(mol.obasis, grid, [RBeckeHartree(8)])]) + ham2 = REffHam([RGridGroup(get_obasis(fname), grid, [RBeckeHartree(8)])]) - dm_alpha = mol.orb_alpha.to_dm() + dm_alpha = load_orbsa_dms(fname) ham1.reset(dm_alpha) ham2.reset(dm_alpha) energy1 = ham1.compute_energy() @@ -50,17 +53,18 @@ def test_becke_hartree_n2_hfs_sto3g(): def test_becke_hartree_h3_hfs_321g(): - fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False, + fname = 'h3_hfs_321g_fchk' + mdata = load_mdata(fname) + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False, mode='keep') - er = mol.obasis.compute_electron_repulsion() + er = load_er(fname) ham1 = UEffHam([UDirectTerm(er, 'hartree')]) - ham2 = UEffHam([UGridGroup(mol.obasis, grid, [UBeckeHartree(8)])]) + ham2 = UEffHam([UGridGroup(get_obasis(fname), grid, [UBeckeHartree(8)])]) - dm_alpha = mol.orb_alpha.to_dm() - dm_beta = mol.orb_beta.to_dm() + dm_alpha = load_orbsa_dms(fname) + dm_beta = load_orbsb_dms(fname) ham1.reset(dm_alpha, dm_beta) ham2.reset(dm_alpha, dm_beta) energy1 = ham1.compute_energy() diff --git a/horton/meanfield/test/test_cache.py b/horton/meanfield/test/test_cache.py index c8cd0a9b..08f0f875 100644 --- a/horton/meanfield/test/test_cache.py +++ b/horton/meanfield/test/test_cache.py @@ -20,10 +20,11 @@ # -- + import numpy as np from nose.tools import assert_raises -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import +from ..cache import JustOnceClass, just_once, Cache class Example(JustOnceClass): @@ -112,16 +113,16 @@ def test_alloc1(): def test_alloc2(): c = Cache() - tmp, new = c.load('egg', alloc=(5,10)) + tmp, new = c.load('egg', alloc=(5, 10)) assert new assert (tmp == 0).all() - assert tmp.shape == (5,10) + assert tmp.shape == (5, 10) assert issubclass(tmp.dtype.type, float) tmp[3] = 1 bis = c.load('egg') assert bis is tmp assert (bis[3] == 1).all() - tris, new = c.load('egg', alloc=(5,10)) + tris, new = c.load('egg', alloc=(5, 10)) assert not new assert tris is tmp @@ -137,17 +138,17 @@ def test_multiple(): def test_allocation(): c = Cache() assert 'egg' not in c - ar1, new = c.load('egg', alloc=(5,10)) + ar1, new = c.load('egg', alloc=(5, 10)) assert new assert (ar1 == 0).all() - assert ar1.shape == (5,10) + assert ar1.shape == (5, 10) assert issubclass(ar1.dtype.type, float) assert 'egg' in c assert 'bar' not in c with assert_raises(TypeError): c.load('egg', alloc=10) with assert_raises(TypeError): - c.load('egg', alloc=(10,5)) + c.load('egg', alloc=(10, 5)) ar1[:] = 1.0 c.clear() assert 'egg' not in c @@ -156,18 +157,18 @@ def test_allocation(): with assert_raises(KeyError): ar2 = c.load('egg') # properly load it anew - ar2, new = c.load('egg', alloc=(5,10)) + ar2, new = c.load('egg', alloc=(5, 10)) assert new - assert ar2 is ar1 # still the same array, just cleared. + assert ar2 is ar1 # still the same array, just cleared. assert 'egg' in c # simple load should now work ar3 = c.load('egg') assert ar3 is ar1 # clear again and use different alloc c.clear() - ar4, new = c.load('egg', alloc=(5,1,2)) + ar4, new = c.load('egg', alloc=(5, 1, 2)) assert new - assert ar4.shape == (5,1,2) + assert ar4.shape == (5, 1, 2) assert not ar4 is ar1 diff --git a/horton/meanfield/test/test_gridgroup.py b/horton/meanfield/test/test_gridgroup.py index 86a6ec42..4480fa20 100644 --- a/horton/meanfield/test/test_gridgroup.py +++ b/horton/meanfield/test/test_gridgroup.py @@ -22,22 +22,26 @@ from nose.tools import assert_raises -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import +from horton.grid import BeckeMolGrid +from horton.meanfield.test.common import get_obasis, load_mdata, load_orbs_alpha +from .. import RGridGroup, RLibXCMGGA, UGridGroup +from ..cache import Cache def test_gridgroup_density_cutoff(): # prepare some molecule - fn_fchk = context.get_fn('test/co_pbe_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) + fname = 'co_pbe_sto3g_fchk' + mdata = load_mdata(fname) + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) # make and populate a fake cache object (normally done by the effective # hamiltonian) cache = Cache() - cache['dm_alpha'] = mol.orb_alpha.to_dm() + cache['dm_alpha'] = load_orbs_alpha(fname).to_dm() # normal use case - rgg = RGridGroup(mol.obasis, grid, [RLibXCMGGA('c_tpss')]) + rgg = RGridGroup(get_obasis(fname), grid, [RLibXCMGGA('c_tpss')]) alpha_basics = rgg._update_grid_basics(cache, 'alpha') mask1 = alpha_basics[:, 0] >= 1e-9 mask2 = alpha_basics[:, 0] == 0.0 @@ -45,16 +49,17 @@ def test_gridgroup_density_cutoff(): assert (alpha_basics[mask2, :] == 0.0).all() # use all grid points - rgg = RGridGroup(mol.obasis, grid, [RLibXCMGGA('c_tpss')], density_cutoff=0.0) + rgg = RGridGroup(get_obasis(fname), grid, [RLibXCMGGA('c_tpss')], density_cutoff=0.0) alpha_basics = rgg._update_grid_basics(cache, 'alpha') assert (alpha_basics[:, 0] >= 0.0).all() def test_gridgroup_exceptions(): # prepare some molecule - fn_fchk = context.get_fn('test/co_pbe_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) + fname = 'co_pbe_sto3g_fchk' + mdata = load_mdata(fname) + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) # make and populate a fake cache object (normally done by the effective # hamiltonian) @@ -64,14 +69,14 @@ def test_gridgroup_exceptions(): go.df_level = -1 # trigger errors # restricted case - rgg = RGridGroup(mol.obasis, grid, [go]) + rgg = RGridGroup(get_obasis(fname), grid, [go]) with assert_raises(ValueError): rgg._update_grid_basics(cache, 'alpha') with assert_raises(ValueError): rgg._get_potentials(cache) # unrestricted case - ugg = UGridGroup(mol.obasis, grid, [go]) + ugg = UGridGroup(get_obasis(fname), grid, [go]) with assert_raises(ValueError): ugg._update_grid_basics(cache, 'alpha') with assert_raises(ValueError): diff --git a/horton/meanfield/test/test_guess.py b/horton/meanfield/test/test_guess.py index 3ca5a275..c192be76 100644 --- a/horton/meanfield/test/test_guess.py +++ b/horton/meanfield/test/test_guess.py @@ -22,34 +22,37 @@ import numpy as np -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import +from horton.meanfield.test.common import load_orbs_alpha, load_orbs_beta, get_obasis, load_na, \ + load_kin, load_olp +from .. import guess_core_hamiltonian def test_guess_hamcore_cs(): - fn_fchk = context.get_fn('test/hf_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - guess_core_hamiltonian(olp, kin + na, mol.orb_alpha) + fname = 'hf_sto3g_fchk' + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + orb_alpha = load_orbs_alpha(fname) + guess_core_hamiltonian(olp, kin + na, orb_alpha) # just a few simple checks - assert abs(mol.orb_alpha.energies[0] - ( - -2.59083334E+01)) > 1e-5 # values from fchk must be overwritten - assert (mol.orb_alpha.energies.argsort() == np.arange(mol.obasis.nbasis)).all() + assert abs( + orb_alpha.energies[0] - (-2.59083334E+01)) > 1e-5 # values from fchk must be overwritten + assert (orb_alpha.energies.argsort() == np.arange(olp.shape[0])).all() def test_guess_hamcore_os(): - fn_fchk = context.get_fn('test/li_h_3-21G_hf_g09.fchk') - mol = IOData.from_file(fn_fchk) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - guess_core_hamiltonian(olp, kin + na, mol.orb_alpha, mol.orb_beta) + fname = 'li_h_3_21G_hf_g09_fchk' + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + orb_alpha = load_orbs_alpha(fname) + orb_beta = load_orbs_beta(fname) + guess_core_hamiltonian(olp, kin + na, orb_alpha, orb_beta) # just a few simple checks - assert abs(mol.orb_alpha.energies[0] - ( + assert abs(orb_alpha.energies[0] - ( -2.76116635E+00)) > 1e-5 # values from fchk must be overwritten assert abs( - mol.orb_beta.energies[0] - (-2.76031162E+00)) > 1e-5 # values from fchk must be overwritten - assert (mol.orb_alpha.energies.argsort() == np.arange(mol.obasis.nbasis)).all() - assert abs(mol.orb_alpha.energies - mol.orb_beta.energies).max() < 1e-10 - assert abs(mol.orb_alpha.coeffs - mol.orb_beta.coeffs).max() < 1e-10 + orb_beta.energies[0] - (-2.76031162E+00)) > 1e-5 # values from fchk must be overwritten + assert (orb_alpha.energies.argsort() == np.arange(get_obasis(fname).nbasis)).all() + assert abs(orb_alpha.energies - orb_beta.energies).max() < 1e-10 + assert abs(orb_alpha.coeffs - orb_beta.coeffs).max() < 1e-10 diff --git a/horton/meanfield/test/test_hamiltonian.py b/horton/meanfield/test/test_hamiltonian.py index 95b74a16..5aee6cc2 100644 --- a/horton/meanfield/test/test_hamiltonian.py +++ b/horton/meanfield/test/test_hamiltonian.py @@ -20,60 +20,65 @@ # -- -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from .common import check_interpolation, helper_compute +from horton.grid import BeckeMolGrid +from .common import check_interpolation, helper_compute, load_mdata, load_kin, load_na, load_er, \ + load_nn, load_orbs_alpha, load_orbs_beta, get_obasis, load_olp +from .. import UTwoIndexTerm, UDirectTerm, UExchangeTerm, UEffHam, RTwoIndexTerm, RDirectTerm, \ + RGridGroup, RDiracExchange, REffHam, RExchangeTerm, PlainSCFSolver, AufbauOccModel, \ + convergence_error_eigen def test_energy_hydrogen(): - fn_fchk = context.get_fn('test/h_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() + fname = 'h_sto3g_fchk' + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) terms = [ UTwoIndexTerm(kin, 'kin'), UDirectTerm(er, 'hartree'), UExchangeTerm(er, 'x_hf'), UTwoIndexTerm(na, 'ne'), ] - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + external = {'nn': load_nn(fname)} ham = UEffHam(terms, external) - helper_compute(ham, mol.orb_alpha, mol.orb_beta) + helper_compute(ham, load_orbs_alpha(fname), load_orbs_beta(fname)) + print ham.cache['energy'] - -4.665818503844346E-01 assert abs(ham.cache['energy'] - -4.665818503844346E-01) < 1e-8 def test_cubic_interpolation_hfs_cs(): - fn_fchk = context.get_fn('test/water_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() + fname = 'water_hfs_321g_fchk' + mdata = load_mdata(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) terms = [ RTwoIndexTerm(kin, 'kin'), RDirectTerm(er, 'hartree'), - RGridGroup(mol.obasis, grid, [ + RGridGroup(get_obasis(fname), grid, [ RDiracExchange(), ]), RTwoIndexTerm(na, 'ne'), ] ham = REffHam(terms) - check_interpolation(ham, olp, kin, na, [mol.orb_alpha]) + check_interpolation(ham, olp, kin, na, [load_orbs_alpha(fname)]) def test_perturbation(): - fn_fchk = context.get_fn('test/n2_hfs_sto3g.fchk') - mol = IOData.from_file(fn_fchk) + fname = 'n2_hfs_sto3g_fchk' + mdata = load_mdata(fname) scf_solver = PlainSCFSolver(maxiter=1024) # Without perturbation - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) terms = [ RTwoIndexTerm(kin, 'kin'), RDirectTerm(er, 'hartree'), @@ -83,15 +88,17 @@ def test_perturbation(): ham = REffHam(terms) occ_model = AufbauOccModel(7) - assert convergence_error_eigen(ham, olp, mol.orb_alpha) > 1e-8 - scf_solver(ham, olp, occ_model, mol.orb_alpha) - assert convergence_error_eigen(ham, olp, mol.orb_alpha) < 1e-8 + orb_alpha = load_orbs_alpha(fname) + + assert convergence_error_eigen(ham, olp, orb_alpha) > 1e-8 + scf_solver(ham, olp, occ_model, orb_alpha) + assert convergence_error_eigen(ham, olp, orb_alpha) < 1e-8 energy0 = ham.compute_energy() # Construct a perturbation based on the Mulliken AIM operator - assert mol.obasis.nbasis % 2 == 0 - nfirst = mol.obasis.nbasis / 2 - operator = mol.obasis.compute_overlap().copy() + assert get_obasis(fname).nbasis % 2 == 0 + nfirst = get_obasis(fname).nbasis / 2 + operator = load_olp(fname).copy() operator[:nfirst, nfirst:] *= 0.5 operator[nfirst:, :nfirst] *= 0.5 operator[nfirst:, nfirst:] = 0.0 @@ -113,9 +120,10 @@ def test_perturbation(): perturbation, ] ham = REffHam(terms) - assert convergence_error_eigen(ham, olp, mol.orb_alpha) > 1e-8 - scf_solver(ham, olp, occ_model, mol.orb_alpha) - assert convergence_error_eigen(ham, olp, mol.orb_alpha) < 1e-8 + orb_alpha = load_orbs_alpha(fname) + assert convergence_error_eigen(ham, olp, orb_alpha) > 1e-8 + scf_solver(ham, olp, occ_model, orb_alpha) + assert convergence_error_eigen(ham, olp, orb_alpha) < 1e-8 energy1 = ham.compute_energy() energy1 -= ham.cache['energy_pert'] @@ -127,12 +135,12 @@ def test_perturbation(): def test_ghost_hf(): - fn_fchk = context.get_fn('test/water_dimer_ghost.fchk') - mol = IOData.from_file(fn_fchk) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers, ) - er = mol.obasis.compute_electron_repulsion() + fname = 'water_dimer_ghost_fchk' + mdata = load_mdata(fname) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) terms = [ RTwoIndexTerm(kin, 'kin'), RDirectTerm(er, 'hartree'), @@ -142,4 +150,4 @@ def test_ghost_hf(): ham = REffHam(terms) # The convergence should be reasonable, not perfect because of limited # precision in Gaussian fchk file: - assert convergence_error_eigen(ham, olp, mol.orb_alpha) < 1e-5 + assert convergence_error_eigen(ham, olp, load_orbs_alpha(fname)) < 1e-5 diff --git a/horton/meanfield/test/test_indextransform.py b/horton/meanfield/test/test_indextransform.py index 69409fdb..ee367e5c 100644 --- a/horton/meanfield/test/test_indextransform.py +++ b/horton/meanfield/test/test_indextransform.py @@ -23,8 +23,12 @@ import numpy as np from nose.tools import assert_raises -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from ..indextransform import _parse_four_index_transform_orbs +from horton.meanfield.test.common import load_olp, load_kin, load_na, load_er, load_nn, load_mdata, \ + load_er_chol +from .. import Orbitals, guess_core_hamiltonian, RTwoIndexTerm, RDirectTerm, RExchangeTerm, REffHam, \ + AufbauOccModel, CDIISSCFSolver +from ..indextransform import _parse_four_index_transform_orbs, four_index_transform, \ + four_index_transform_cholesky, split_core_active, split_core_active_cholesky def test_parse_index_transform_orbs(): @@ -85,25 +89,25 @@ def helper_hf(olp, ecore, one, two, nocc): return ham.cache['energy'], orb_alpha -def prepare_hf(mol, basis_str): +def prepare_hf(fname): # Input structure - obasis = get_gobasis(mol.coordinates, mol.numbers, basis_str) + mdata = load_mdata(fname) # Compute Gaussian integrals - olp = obasis.compute_overlap() - kin = obasis.compute_kinetic() - na = obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + olp = load_olp(fname) # FIXME: Doesn't take into account basis_str + kin = load_kin(fname) + na = load_na(fname) one = kin + na - two = obasis.compute_electron_repulsion() + two = load_er(fname) - enucnuc = compute_nucnuc(mol.coordinates, mol.pseudo_numbers) - return obasis, olp, kin, na, one, two, enucnuc + enucnuc = load_nn(fname) + return olp, kin, na, one, two, enucnuc -def check_core_active_blank(mol, basis_str): - obasis, olp, kin, na, one, two, enucnuc = prepare_hf(mol, basis_str) +def check_core_active_blank(fname): + olp, kin, na, one, two, enucnuc = prepare_hf(fname) ncore = 0 - nactive = obasis.nbasis + nactive = olp.shape[0] one_small, two_small, ecore = \ split_core_active(one, two, enucnuc, None, ncore, nactive) np.testing.assert_allclose(two, two_small) @@ -111,16 +115,17 @@ def check_core_active_blank(mol, basis_str): np.testing.assert_allclose(one, one_small) -def check_core_active(mol, basis_str, ncore, nactive): +def check_core_active(fname, ncore, nactive): # A) Run a simple HF calculation on the given IOData in the given basis - obasis, olp, kin, na, one, two, enucnuc = prepare_hf(mol, basis_str) + olp, kin, na, one, two, enucnuc = prepare_hf(fname) + mdata = load_mdata(fname) # Decide how to occupy the orbitals - assert mol.numbers.sum() % 2 == 0 - nocc = mol.numbers.sum() / 2 + assert mdata['numbers'].sum() % 2 == 0 + nocc = mdata['numbers'].sum() / 2 assert ncore + nactive > nocc - enucnuc = compute_nucnuc(mol.coordinates, mol.pseudo_numbers) + enucnuc = load_nn(fname) energy1, orb_alpha1 = helper_hf(olp, enucnuc, one, two, nocc) # B1) Get integrals for the active space, using tensordot transformation @@ -141,24 +146,22 @@ def check_core_active(mol, basis_str, ncore, nactive): def test_core_active_neon(): - mol = IOData( - coordinates=np.zeros((1, 3), float), - numbers=np.array([10], int) - ) - check_core_active_blank(mol, '6-31+g(d)') - check_core_active(mol, '6-31+g(d)', 2, 6) + fname = "neon_6_31gd_xyz" + check_core_active_blank(fname) + check_core_active(fname, 2, 6) def test_core_active_water(): - mol = IOData.from_file(context.get_fn('test/water.xyz')) - check_core_active_blank(mol, '6-31+g(d)') - check_core_active(mol, '6-31+g(d)', 1, 6) + fname = 'water_6_31gd_xyz' + check_core_active_blank(fname) + check_core_active(fname, 1, 6) -def test_core_active_2h_azirine(): - mol = IOData.from_file(context.get_fn('test/h2-azirine.xyz')) - check_core_active_blank(mol, '3-21g') - check_core_active(mol, '3-21g', 3, 15) +# TODO: Move to higher level test +# def test_core_active_h2_azirine(): +# fname = 'h2_azirine_3_21g_xyz' +# check_core_active_blank(fname) +# check_core_active(fname, 3, 15) def helper_hf_cholesky(olp, ecore, one, two_vecs, nocc): @@ -191,25 +194,25 @@ def helper_hf_cholesky(olp, ecore, one, two_vecs, nocc): return ham.cache['energy'], orb_alpha -def prepare_hf_cholesky(mol, basis_str): +def prepare_hf_cholesky(fname): # Input structure - obasis = get_gobasis(mol.coordinates, mol.numbers, basis_str) + mdata = load_mdata(fname) # Compute Gaussian integrals - olp = obasis.compute_overlap() - kin = obasis.compute_kinetic() - na = obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) one = kin + na - two_vecs = obasis.compute_electron_repulsion_cholesky() + two_vecs = load_er_chol(fname) - enucnuc = compute_nucnuc(mol.coordinates, mol.pseudo_numbers) - return obasis, olp, kin, na, one, two_vecs, enucnuc + enucnuc = load_nn(fname) + return olp, kin, na, one, two_vecs, enucnuc -def check_core_active_cholesky_blank(mol, basis_str): - obasis, olp, kin, na, one, two_vecs, enucnuc = prepare_hf_cholesky(mol, basis_str) +def check_core_active_cholesky_blank(fname): + olp, kin, na, one, two_vecs, enucnuc = prepare_hf_cholesky(fname) ncore = 0 - nactive = obasis.nbasis + nactive = olp.shape[0] one_small, two_vecs_small, ecore = \ split_core_active_cholesky(one, two_vecs, enucnuc, None, ncore, nactive) np.testing.assert_allclose(two_vecs, two_vecs_small) @@ -217,13 +220,14 @@ def check_core_active_cholesky_blank(mol, basis_str): np.testing.assert_allclose(one, one_small) -def check_core_active_cholesky(mol, basis_str, ncore, nactive): +def check_core_active_cholesky(fname, ncore, nactive): # A) Run a simple HF calculation on the given IOData in the given basis - obasis, olp, kin, na, one, two_vecs, enucnuc = prepare_hf_cholesky(mol, basis_str) + olp, kin, na, one, two_vecs, enucnuc = prepare_hf_cholesky(fname) + mdata = load_mdata(fname) # Decide how to occupy the orbitals - assert mol.numbers.sum() % 2 == 0 - nocc = mol.numbers.sum() / 2 + assert mdata['numbers'].sum() % 2 == 0 + nocc = mdata['numbers'].sum() / 2 assert ncore + nactive > nocc energy1, orb_alpha1 = helper_hf_cholesky(olp, enucnuc, one, two_vecs, nocc) @@ -246,21 +250,18 @@ def check_core_active_cholesky(mol, basis_str, ncore, nactive): def test_core_active_neon_cholesky(): - mol = IOData( - coordinates=np.zeros((1, 3), float), - numbers=np.array([10], int) - ) - check_core_active_cholesky_blank(mol, '6-31+g(d)') - check_core_active_cholesky(mol, '6-31+g(d)', 2, 6) + fname = "neon_6_31gd_xyz" + check_core_active_cholesky_blank(fname) + check_core_active_cholesky(fname, 2, 6) def test_core_active_water_cholesky(): - mol = IOData.from_file(context.get_fn('test/water.xyz')) - check_core_active_cholesky_blank(mol, '6-31+g(d)') - check_core_active_cholesky(mol, '6-31+g(d)', 1, 6) - - -def test_core_active_2h_azirine_cholesky(): - mol = IOData.from_file(context.get_fn('test/h2-azirine.xyz')) - check_core_active_cholesky_blank(mol, '3-21g') - check_core_active_cholesky(mol, '3-21g', 3, 15) + fname = 'water_6_31gd_xyz' + check_core_active_cholesky_blank(fname) + check_core_active_cholesky(fname, 1, 6) + +# TODO: Move to higher level test +# def test_core_active_h2_azirine_cholesky(): +# fname = 'h2_azirine_3_21g_xyz' +# check_core_active_cholesky_blank(fname) +# check_core_active_cholesky(fname, 3, 15) diff --git a/horton/meanfield/test/test_libxc.py b/horton/meanfield/test/test_libxc.py index f2098664..74b16f9b 100644 --- a/horton/meanfield/test/test_libxc.py +++ b/horton/meanfield/test/test_libxc.py @@ -20,357 +20,381 @@ # -- + from nose.plugins.skip import SkipTest from nose.tools import assert_raises -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import +from horton.grid import BeckeMolGrid from .common import check_interpolation, \ - check_dot_hessian, check_dot_hessian_polynomial, check_dot_hessian_cache + check_dot_hessian, check_dot_hessian_polynomial, check_dot_hessian_cache, load_olp, load_kin, \ + load_na, get_obasis, load_mdata, load_orbs_alpha, load_orbsa_dms, load_orbs_beta, \ + load_orbsb_dms, load_er +from .. import RGridGroup, RLibXCGGA, REffHam, RLibXCLDA, RLibXCHybridGGA, UGridGroup, ULibXCGGA, \ + RLibXCMGGA, UEffHam, ULibXCLDA, ULibXCHybridGGA, UExchangeTerm, ULibXCMGGA, RLibXCWrapper, \ + RLibXCHybridMGGA, ULibXCHybridMGGA def setup_gga_cs(name): """Prepare data structures for R-GGA calculation in CO.""" - fn_fchk = context.get_fn('test/co_pbe_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - mol.dm_alpha = mol.orb_alpha.to_dm() - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + fname = 'co_pbe_sto3g_fchk' + mdata = load_mdata(fname) + dm_alpha = load_orbsa_dms(fname) + orb_alpha = load_orbs_alpha(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) terms = [ - RGridGroup(mol.obasis, grid, [ + RGridGroup(get_obasis(fname), grid, [ RLibXCGGA(name), ]), ] ham = REffHam(terms) - return mol, olp, kin, na, ham + return dm_alpha, olp, kin, na, ham, orb_alpha def test_cubic_interpolation_c_pbe_cs(): - mol, olp, kin, na, ham = setup_gga_cs('c_pbe') - check_interpolation(ham, olp, kin, na, [mol.orb_alpha]) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_gga_cs('c_pbe') + check_interpolation(ham, olp, kin, na, [orb_alpha]) def test_dot_hessian_c_pbe_cs(): - mol, _olp, _kin, _na, ham = setup_gga_cs('c_pbe') - check_dot_hessian(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_gga_cs('c_pbe') + check_dot_hessian(ham, dm_alpha) def test_dot_hessian_c_pbe_cs_polynomial(): - mol, olp, kin, na, ham = setup_gga_cs('c_pbe') - check_dot_hessian_polynomial(olp, kin + na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_gga_cs('c_pbe') + check_dot_hessian_polynomial(olp, kin + na, ham, [orb_alpha], is_hf=False, extent=0.00005) def test_dot_hessian_c_pbe_cs_cache(): - mol, _olp, _kin, _na, ham = setup_gga_cs('c_pbe') - check_dot_hessian_cache(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_gga_cs('c_pbe') + check_dot_hessian_cache(ham, dm_alpha) def test_cubic_interpolation_x_pbe_cs(): - mol, olp, kin, na, ham = setup_gga_cs('x_pbe') - check_interpolation(ham, olp, kin, na, [mol.orb_alpha]) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_gga_cs('x_pbe') + check_interpolation(ham, olp, kin, na, [orb_alpha]) def test_dot_hessian_x_pbe_cs(): - mol, _olp, _kin, _na, ham = setup_gga_cs('x_pbe') - check_dot_hessian(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_gga_cs('x_pbe') + check_dot_hessian(ham, dm_alpha) def test_dot_hessian_x_pbe_cs_polynomial(): - mol, olp, kin, na, ham = setup_gga_cs('x_pbe') - check_dot_hessian_polynomial(olp, kin + na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_gga_cs('x_pbe') + check_dot_hessian_polynomial(olp, kin + na, ham, [orb_alpha], is_hf=False, extent=0.00005) def test_dot_hessian_x_pbe_cs_cache(): - mol, _olp, _kin, _na, ham = setup_gga_cs('x_pbe') - check_dot_hessian_cache(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_gga_cs('x_pbe') + check_dot_hessian_cache(ham, dm_alpha) def setup_hfs_cs(): """Prepare data structures for R-HFS (x-functional-only) calculation on CO.""" - fn_fchk = context.get_fn('test/co_pbe_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - mol.dm_alpha = mol.orb_alpha.to_dm() + fname = 'co_pbe_sto3g_fchk' + mdata = load_mdata(fname) + dm_alpha = load_orbsa_dms(fname) + orb_alpha = load_orbs_alpha(fname) - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], 'coarse', random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) terms = [ - RGridGroup(mol.obasis, grid, [ + RGridGroup(get_obasis(fname), grid, [ RLibXCLDA('x'), ]), ] ham = REffHam(terms) - return mol, olp, kin, na, ham + return dm_alpha, olp, kin, na, ham, orb_alpha def test_cubic_interpolation_hfs_cs(): - mol, olp, kin, na, ham = setup_hfs_cs() - check_interpolation(ham, olp, kin, na, [mol.orb_alpha]) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_hfs_cs() + check_interpolation(ham, olp, kin, na, [orb_alpha]) def test_dot_hessian_hfs_cs(): - mol, _olp, _kin, _na, ham = setup_hfs_cs() - check_dot_hessian(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_hfs_cs() + check_dot_hessian(ham, dm_alpha) def test_dot_hessian_hfs_cs_polynomial(): - mol, olp, kin, na, ham = setup_hfs_cs() - check_dot_hessian_polynomial(olp, kin + na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_hfs_cs() + check_dot_hessian_polynomial(olp, kin + na, ham, [orb_alpha], is_hf=False, extent=0.00005) def test_dot_hessian_hfs_cs_cache(): - mol, _olp, _kin, _na, ham = setup_hfs_cs() - check_dot_hessian_cache(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_hfs_cs() + check_dot_hessian_cache(ham, dm_alpha) def setup_x_pbe_c_vwn_cs(): """Setup data structure for mixed GGA+LDA calculation.""" # mixing of GGA and LDA - fn_fchk = context.get_fn('test/water_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - mol.dm_alpha = mol.orb_alpha.to_dm() - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + fname = 'water_hfs_321g_fchk' + mdata = load_mdata(fname) + dm_alpha = load_orbsa_dms(fname) + orb_alpha = load_orbs_alpha(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) terms = [ - RGridGroup(mol.obasis, grid, [ + RGridGroup(get_obasis(fname), grid, [ RLibXCGGA('x_pbe'), RLibXCLDA('c_vwn'), ]), ] ham = REffHam(terms) - return mol, olp, kin, na, ham + return dm_alpha, olp, kin, na, ham, orb_alpha def test_cubic_interpolation_x_pbe_c_vwn_cs(): - mol, olp, kin, na, ham = setup_x_pbe_c_vwn_cs() - check_interpolation(ham, olp, kin, na, [mol.orb_alpha]) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_x_pbe_c_vwn_cs() + check_interpolation(ham, olp, kin, na, [orb_alpha]) def test_dot_hessian_x_pbe_c_vwn_cs(): - mol, _olp, _kin, _na, ham = setup_x_pbe_c_vwn_cs() - check_dot_hessian(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_x_pbe_c_vwn_cs() + check_dot_hessian(ham, dm_alpha) def test_dot_hessian_x_pbe_c_vwn_cs_polynomial(): - mol, olp, kin, na, ham = setup_x_pbe_c_vwn_cs() - check_dot_hessian_polynomial(olp, kin + na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_x_pbe_c_vwn_cs() + check_dot_hessian_polynomial(olp, kin + na, ham, [orb_alpha], is_hf=False, extent=0.00005) def test_dot_hessian_x_pbe_c_vwn_cs_cache(): - mol, _olp, _kin, _na, ham = setup_x_pbe_c_vwn_cs() - check_dot_hessian_cache(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_x_pbe_c_vwn_cs() + check_dot_hessian_cache(ham, dm_alpha) def setup_c_vwn_cs(): """Prepare data structures for R-VWN (c-functional-only) calculation on water.""" - fn_fchk = context.get_fn('test/water_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - mol.dm_alpha = mol.orb_alpha.to_dm() - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + fname = 'water_hfs_321g_fchk' + mdata = load_mdata(fname) + dm_alpha = load_orbsa_dms(fname) + orb_alpha = load_orbs_alpha(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) terms = [ - RGridGroup(mol.obasis, grid, [ + RGridGroup(get_obasis(fname), grid, [ RLibXCLDA('c_vwn'), ]), ] ham = REffHam(terms) - return mol, olp, kin, na, ham + return dm_alpha, olp, kin, na, ham, orb_alpha def test_cubic_interpolation_c_vwn_cs(): - mol, olp, kin, na, ham = setup_c_vwn_cs() - check_interpolation(ham, olp, kin, na, [mol.orb_alpha]) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_c_vwn_cs() + check_interpolation(ham, olp, kin, na, [orb_alpha]) def test_dot_hessian_c_vwn_cs(): - mol, _olp, _kin, _na, ham = setup_c_vwn_cs() - check_dot_hessian(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_c_vwn_cs() + check_dot_hessian(ham, dm_alpha) def test_dot_hessian_c_vwn_cs_polynomial(): - mol, olp, kin, na, ham = setup_c_vwn_cs() - check_dot_hessian_polynomial(olp, kin + na, ham, [mol.orb_alpha], is_hf=False, extent=0.00005) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_c_vwn_cs() + check_dot_hessian_polynomial(olp, kin + na, ham, [orb_alpha], is_hf=False, extent=0.00005) def test_dot_hessian_c_vwn_cs_cache(): - mol, _olp, _kin, _na, ham = setup_c_vwn_cs() - check_dot_hessian_cache(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_c_vwn_cs() + check_dot_hessian_cache(ham, dm_alpha) def setup_o3lyp_cs(): """Prepare data structures for R-O3LYP (xc-functional-only) calculation on water.""" - fn_fchk = context.get_fn('test/water_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - mol.dm_alpha = mol.orb_alpha.to_dm() - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + fname = 'water_hfs_321g_fchk' + mdata = load_mdata(fname) + dm_alpha = load_orbsa_dms(fname) + orb_alpha = load_orbs_alpha(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) libxc_term = RLibXCHybridGGA('xc_o3lyp') terms = [ - RGridGroup(mol.obasis, grid, [libxc_term]), + RGridGroup(get_obasis(fname), grid, [libxc_term]), ] ham = REffHam(terms) - return mol, olp, kin, na, ham + return dm_alpha, olp, kin, na, ham, orb_alpha def test_cubic_interpolation_o3lyp_cs(): - mol, olp, kin, na, ham = setup_o3lyp_cs() - check_interpolation(ham, olp, kin, na, [mol.orb_alpha]) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_o3lyp_cs() + check_interpolation(ham, olp, kin, na, [orb_alpha]) def test_dot_hessian_o3lyp_cs(): - mol, _olp, _kin, _na, ham = setup_o3lyp_cs() - check_dot_hessian(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_o3lyp_cs() + check_dot_hessian(ham, dm_alpha) def test_dot_hessian_o3lyp_cs_polynomial(): raise SkipTest("We should use more robust tests for derivatives.") - # mol, olp, kin, na, ham = setup_o3lyp_cs() - # check_dot_hessian_polynomial(olp, kin+na, ham, [mol.orb_alpha], is_hf=False, extent=0.00001) + # dm_alpha, olp, kin, na, ham, orb_alpha = setup_o3lyp_cs() + # check_dot_hessian_polynomial(olp, kin+na, ham, [orb_alpha], is_hf=False, extent=0.00001) def test_dot_hessian_o3lyp_cs_cache(): - mol, _olp, _kin, _na, ham = setup_o3lyp_cs() - check_dot_hessian_cache(ham, mol.dm_alpha) + dm_alpha, olp, kin, na, ham, orb_alpha = setup_o3lyp_cs() + check_dot_hessian_cache(ham, dm_alpha) def test_cubic_interpolation_x_tpss_cs(): - fn_fchk = context.get_fn('test/water_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + fname = 'water_hfs_321g_fchk' + mdata = load_mdata(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) terms = [ - RGridGroup(mol.obasis, grid, [RLibXCMGGA('x_tpss')]), + RGridGroup(get_obasis(fname), grid, [RLibXCMGGA('x_tpss')]), ] ham = REffHam(terms) - check_interpolation(ham, olp, kin, na, [mol.orb_alpha]) + check_interpolation(ham, olp, kin, na, [load_orbs_alpha(fname)]) def test_cubic_interpolation_c_pbe_os(): - fn_fchk = context.get_fn('test/h3_pbe_321g.fchk') - mol = IOData.from_file(fn_fchk) - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + fname = 'h3_pbe_321g_fchk' + mdata = load_mdata(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) terms = [ - UGridGroup(mol.obasis, grid, [ + UGridGroup(get_obasis(fname), grid, [ ULibXCGGA('c_pbe'), ]), ] ham = UEffHam(terms) - check_interpolation(ham, olp, kin, na, [mol.orb_alpha, mol.orb_beta]) + check_interpolation(ham, olp, kin, na, [load_orbs_alpha(fname), load_orbs_beta(fname)]) def test_cubic_interpolation_x_pbe_os(): - fn_fchk = context.get_fn('test/h3_pbe_321g.fchk') - mol = IOData.from_file(fn_fchk) - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + fname = 'h3_pbe_321g_fchk' + mdata = load_mdata(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) terms = [ - UGridGroup(mol.obasis, grid, [ + UGridGroup(get_obasis(fname), grid, [ ULibXCGGA('x_pbe'), ]), ] ham = UEffHam(terms) - check_interpolation(ham, olp, kin, na, [mol.orb_alpha, mol.orb_beta]) + check_interpolation(ham, olp, kin, na, [load_orbs_alpha(fname), load_orbs_beta(fname)]) def setup_hfs_os(): """Prepare data structures for U_HFS (x-functional-only) calculation in H3 radical.""" - fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - mol.dm_alpha = mol.orb_alpha.to_dm() - mol.dm_beta = mol.orb_beta.to_dm() - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + fname = 'h3_hfs_321g_fchk' + mdata = load_mdata(fname) + dm_alpha = load_orbsa_dms(fname) + dm_beta = load_orbsb_dms(fname) + orb_alpha = load_orbs_alpha(fname) + orb_beta = load_orbs_beta(fname) + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) terms = [ - UGridGroup(mol.obasis, grid, [ + UGridGroup(get_obasis(fname), grid, [ ULibXCLDA('x'), ]), ] ham = UEffHam(terms) - return mol, olp, kin, na, ham + return dm_alpha, dm_beta, olp, kin, na, ham, orb_alpha, orb_beta def test_cubic_interpolation_hfs_os(): - mol, olp, kin, na, ham = setup_hfs_os() - check_interpolation(ham, olp, kin, na, [mol.orb_alpha, mol.orb_beta]) + dm_alpha, dm_beta, olp, kin, na, ham, orb_alpha, orb_beta = setup_hfs_os() + check_interpolation(ham, olp, kin, na, [orb_alpha, orb_beta]) def test_cubic_interpolation_x_pbe_c_vwn_os(): # mixing of LDA and GGA - fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + fname = 'h3_hfs_321g_fchk' + mdata = load_mdata(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) terms = [ - UGridGroup(mol.obasis, grid, [ + UGridGroup(get_obasis(fname), grid, [ ULibXCGGA('x_pbe'), ULibXCLDA('c_vwn'), ]), ] ham = UEffHam(terms) - check_interpolation(ham, olp, kin, na, [mol.orb_alpha, mol.orb_beta]) + check_interpolation(ham, olp, kin, na, [load_orbs_alpha(fname), load_orbs_beta(fname)]) def test_cubic_interpolation_o3lyp_os(): - fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() + fname = 'h3_hfs_321g_fchk' + mdata = load_mdata(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) libxc_term = ULibXCHybridGGA('xc_o3lyp') terms = [ - UGridGroup(mol.obasis, grid, [libxc_term]), + UGridGroup(get_obasis(fname), grid, [libxc_term]), UExchangeTerm(er, 'x_hf', libxc_term.get_exx_fraction()), ] ham = UEffHam(terms) - check_interpolation(ham, olp, kin, na, [mol.orb_alpha, mol.orb_beta]) + check_interpolation(ham, olp, kin, na, [load_orbs_alpha(fname), load_orbs_beta(fname)]) def test_cubic_interpolation_x_tpss_os(): # mixing of LDA and GGA - fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - - grid = BeckeMolGrid(mol.coordinates, mol.numbers, mol.pseudo_numbers, random_rotate=False) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + fname = 'h3_hfs_321g_fchk' + mdata = load_mdata(fname) + + grid = BeckeMolGrid(mdata['coordinates'], mdata['numbers'], mdata['pseudo_numbers'], + random_rotate=False) + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) terms = [ - UGridGroup(mol.obasis, grid, [ULibXCMGGA('x_tpss')]), + UGridGroup(get_obasis(fname), grid, [ULibXCMGGA('x_tpss')]), ] ham = UEffHam(terms) - check_interpolation(ham, olp, kin, na, [mol.orb_alpha, mol.orb_beta]) + check_interpolation(ham, olp, kin, na, [load_orbs_alpha(fname), load_orbs_beta(fname)]) def test_functionals_present(): diff --git a/horton/meanfield/test/test_observable.py b/horton/meanfield/test/test_observable.py index c74a54d9..293c6ed5 100644 --- a/horton/meanfield/test/test_observable.py +++ b/horton/meanfield/test/test_observable.py @@ -20,25 +20,28 @@ # -- """Unit tests for horton/meanfield/observable.py.""" -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import from .common import check_dot_hessian, \ - check_dot_hessian_polynomial, check_dot_hessian_cache + check_dot_hessian_polynomial, check_dot_hessian_cache, load_orbsa_dms, load_orbsb_dms, load_olp, \ + load_kin, load_na, load_er, load_er_chol, load_orbs_alpha, load_orbs_beta + +from .. import RTwoIndexTerm, RDirectTerm, RExchangeTerm, REffHam, UTwoIndexTerm, UDirectTerm, \ + UExchangeTerm, UEffHam def setup_rhf_case(cholesky=False): """Prepare data structures for R-HF calculation on Water.""" - fn_fchk = context.get_fn('test/water_sto3g_hf_g03.fchk') - mol = IOData.from_file(fn_fchk) - mol.dm_alpha = mol.orb_alpha.to_dm() + fname = 'water_sto3g_hf_g03_fchk' + dm_alpha = load_orbsa_dms(fname) + orb_alpha = load_orbs_alpha(fname) # RHF Effective Hamiltonian - olp = mol.obasis.compute_overlap() - core = mol.obasis.compute_kinetic() - mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers, core) + olp = load_olp(fname) + core = load_kin(fname) + core += load_na(fname) if cholesky: - er = mol.obasis.compute_electron_repulsion_cholesky() + er = load_er_chol(fname) else: - er = mol.obasis.compute_electron_repulsion() + er = load_er(fname) terms = [ RTwoIndexTerm(core, 'core'), RDirectTerm(er, 'hartree'), @@ -46,51 +49,53 @@ def setup_rhf_case(cholesky=False): ] ham = REffHam(terms) - return mol, olp, core, ham + return dm_alpha, olp, core, ham, orb_alpha def test_dot_hessian_rhf_polynomial(): - mol, olp, core, ham = setup_rhf_case() - check_dot_hessian_polynomial(olp, core, ham, [mol.orb_alpha]) + dma, olp, core, ham, orb_alpha = setup_rhf_case() + check_dot_hessian_polynomial(olp, core, ham, [orb_alpha]) def test_dot_hessian_rhf_fd(): - mol, _olp, _core, ham = setup_rhf_case() - check_dot_hessian(ham, mol.dm_alpha) + dma, olp, core, ham, orb_alpha = setup_rhf_case() + check_dot_hessian(ham, dma) def test_cache_dot_hessian_rhf(): - mol, _olp, _core, ham = setup_rhf_case() - check_dot_hessian_cache(ham, mol.dm_alpha) + dma, olp, core, ham, orb_alpha = setup_rhf_case() + check_dot_hessian_cache(ham, dma) def test_dot_hessian_rhf_polynomial_cholesky(): - mol, olp, core, ham = setup_rhf_case(True) - check_dot_hessian_polynomial(olp, core, ham, [mol.orb_alpha]) + dma, olp, core, ham, orb_alpha = setup_rhf_case(True) + check_dot_hessian_polynomial(olp, core, ham, [orb_alpha]) def test_dot_hessian_rhf_fd_cholesky(): - mol, _olp, _core, ham = setup_rhf_case(True) - check_dot_hessian(ham, mol.dm_alpha) + dma, olp, core, ham, orb_alpha = setup_rhf_case(True) + check_dot_hessian(ham, dma) def test_cache_dot_hessian_rhf_cholesky(): - mol, _olp, _core, ham = setup_rhf_case(True) - check_dot_hessian_cache(ham, mol.dm_alpha) + dma, olp, core, ham, orb_alpha = setup_rhf_case(True) + check_dot_hessian_cache(ham, dma) def setup_uhf_case(cholesky=False): """Prepare data structures for UHF calculation.""" - fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - mol.dm_alpha = mol.orb_alpha.to_dm() - mol.dm_beta = mol.orb_beta.to_dm() + fname = 'h3_hfs_321g_fchk' + dma = load_orbsa_dms(fname) + dmb = load_orbsb_dms(fname) + + orb_alpha = load_orbs_alpha(fname) + orb_beta = load_orbs_beta(fname) # UHF Effective Hamiltonian - olp = mol.obasis.compute_overlap() - core = mol.obasis.compute_kinetic() - mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers, core) - er = mol.obasis.compute_electron_repulsion() + olp = load_olp(fname) + core = load_kin(fname) + core += load_na(fname) + er = load_er(fname) terms = [ UTwoIndexTerm(core, 'core'), UDirectTerm(er, 'hartree'), @@ -98,34 +103,34 @@ def setup_uhf_case(cholesky=False): ] ham = UEffHam(terms) - return mol, olp, core, ham + return dma, dmb, olp, core, ham, orb_alpha, orb_beta def test_dot_hessian_uhf_polynomial(): - mol, olp, core, ham = setup_uhf_case() - check_dot_hessian_polynomial(olp, core, ham, [mol.orb_alpha, mol.orb_beta]) + dma, dmb, olp, core, ham, orb_alpha, orb_beta = setup_uhf_case() + check_dot_hessian_polynomial(olp, core, ham, [orb_alpha, orb_beta]) def test_dot_hessian_uhf_fd(): - mol, _olp, _core, ham = setup_uhf_case() - check_dot_hessian(ham, mol.dm_alpha, mol.dm_beta) + dma, dmb, olp, core, ham, orb_alpha, orb_beta = setup_uhf_case() + check_dot_hessian(ham, dma, dmb) def test_cache_dot_hessian_uhf(): - mol, _olp, _core, ham = setup_uhf_case() - check_dot_hessian_cache(ham, mol.dm_alpha, mol.dm_beta) + dma, dmb, olp, core, ham, orb_alpha, orb_beta = setup_uhf_case() + check_dot_hessian_cache(ham, dma, dmb) def test_dot_hessian_uhf_polynomial_cholesky(): - mol, olp, core, ham = setup_uhf_case(True) - check_dot_hessian_polynomial(olp, core, ham, [mol.orb_alpha, mol.orb_beta]) + dma, dmb, olp, core, ham, orb_alpha, orb_beta = setup_uhf_case(True) + check_dot_hessian_polynomial(olp, core, ham, [orb_alpha, orb_beta]) def test_dot_hessian_uhf_fd_cholesky(): - mol, _olp, _core, ham = setup_uhf_case(True) - check_dot_hessian(ham, mol.dm_alpha, mol.dm_beta) + dma, dmb, olp, core, ham, orb_alpha, orb_beta = setup_uhf_case(True) + check_dot_hessian(ham, dma, dmb) def test_cache_dot_hessian_uhf_cholesky(): - mol, _olp, _core, ham = setup_uhf_case(True) - check_dot_hessian_cache(ham, mol.dm_alpha, mol.dm_beta) + dma, dmb, olp, core, ham, orb_alpha, orb_beta = setup_uhf_case(True) + check_dot_hessian_cache(ham, dma, dmb) diff --git a/horton/meanfield/test/test_occ.py b/horton/meanfield/test/test_occ.py index 03722682..e3b53e74 100644 --- a/horton/meanfield/test/test_occ.py +++ b/horton/meanfield/test/test_occ.py @@ -22,7 +22,8 @@ import numpy as np -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import +from .common import load_orbs_alpha, load_orbs_beta +from .. import Orbitals, AufbauOccModel, FermiOccModel, FixedOccModel def test_occ_aufbau_cs(): @@ -62,47 +63,47 @@ def test_occ_aufbau_os(): def test_fermi_occ_model_cs_helium(): - fn_fchk = context.get_fn('test/helium_hf_sto3g.fchk') - mol = IOData.from_file(fn_fchk) + fname = 'helium_hf_sto3g_fchk' occ_model = FermiOccModel(1.0) - occ_model.assign(mol.orb_alpha) - assert (mol.orb_alpha.occupations == [1.0]).all() + occ_model.assign(load_orbs_alpha(fname)) + assert (load_orbs_alpha(fname).occupations == [1.0]).all() def test_fermi_occ_model_cs(): - fn_fchk = context.get_fn('test/water_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) + fname = 'water_hfs_321g_fchk' for temperature in 300, 3000, 10000, 30000: occ_model = FermiOccModel(5.0, temperature=temperature) - occ_model.assign(mol.orb_alpha) - occ = mol.orb_alpha.occupations + occ_model.assign(load_orbs_alpha(fname)) + occ = load_orbs_alpha(fname).occupations assert abs(occ.sum() - 5.0) < 1e-8 assert (occ[1:] <= occ[:-1]).all() def test_fermi_occ_model_os(): - fn_fchk = context.get_fn('test/li_h_3-21G_hf_g09.fchk') - mol = IOData.from_file(fn_fchk) + fname = 'li_h_3_21G_hf_g09_fchk' for temperature in 300, 3000, 10000, 30000: occ_model = FermiOccModel(1.9, 1.1, temperature=temperature) - occ_model.assign(mol.orb_alpha, mol.orb_beta) - occ_a = mol.orb_alpha.occupations + orb_alpha = load_orbs_alpha(fname) + orb_beta = load_orbs_beta(fname) + occ_model.assign(orb_alpha, orb_beta) + occ_a = orb_alpha.occupations assert abs(occ_a.sum() - 1.9) < 1e-8 assert (occ_a[1:] <= occ_a[:-1]).all() - occ_b = mol.orb_beta.occupations + occ_b = orb_beta.occupations assert abs(occ_b.sum() - 1.1) < 1e-8 assert (occ_b[1:] <= occ_b[:-1]).all() def test_fixed_occ_model_os(): - fn_fchk = context.get_fn('test/li_h_3-21G_hf_g09.fchk') - mol = IOData.from_file(fn_fchk) + fname = 'li_h_3_21G_hf_g09_fchk' occs_alpha = np.array([2.0, 0.0, 0.5]) occs_beta = np.array([0.0, 0.5, 0.0, 0.0]) occ_model = FixedOccModel(occs_alpha, occs_beta) - mol.orb_alpha.occupations[:] = 0.2 - occ_model.assign(mol.orb_alpha, mol.orb_beta) - assert (mol.orb_alpha.occupations[:len(occs_alpha)] == occs_alpha).all() - assert (mol.orb_alpha.occupations[len(occs_alpha):] == 0.0).all() - assert (mol.orb_beta.occupations[:len(occs_beta)] == occs_beta).all() - assert (mol.orb_beta.occupations[len(occs_beta):] == 0.0).all() + load_orbs_alpha(fname).occupations[:] = 0.2 + orb_alpha = load_orbs_alpha(fname) + orb_beta = load_orbs_beta(fname) + occ_model.assign(orb_alpha, orb_beta) + assert (orb_alpha.occupations[:len(occs_alpha)] == occs_alpha).all() + assert (orb_alpha.occupations[len(occs_alpha):] == 0.0).all() + assert (orb_beta.occupations[:len(occs_beta)] == occs_beta).all() + assert (orb_beta.occupations[len(occs_beta):] == 0.0).all() diff --git a/horton/meanfield/test/test_orbitals.py b/horton/meanfield/test/test_orbitals.py index 23eb03c7..f0b089e4 100644 --- a/horton/meanfield/test/test_orbitals.py +++ b/horton/meanfield/test/test_orbitals.py @@ -24,8 +24,10 @@ import numpy as np from nose.tools import assert_raises -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import +from horton.meanfield.test.common import load_mdata, load_olp, load_orbs_alpha, load_orbs_beta, \ + load_dm from horton.test.common import numpy_seed +from .. import Orbitals # @@ -254,10 +256,10 @@ def check_case(orb0): def test_orbitals_naturals(): - fn_fchk = context.get_fn('test/ch3_hf_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - overlap = mol.obasis.compute_overlap() - dm = mol.orb_alpha.to_dm() + fname = 'ch3_hf_sto3g_fchk' + mdata = load_mdata(fname) + overlap = load_olp(fname) + dm = load_orbs_alpha(fname).to_dm() orb = Orbitals(dm.shape[0]) orb.derive_naturals(dm, overlap) assert orb.occupations.min() > -1e-6 @@ -266,53 +268,53 @@ def test_orbitals_naturals(): def test_orbitals_homo_lumo_ch3_hf(): - fn_fchk = context.get_fn('test/ch3_hf_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - assert mol.orb_alpha.get_homo_index() == 4 - assert mol.orb_beta.get_homo_index() == 3 - assert mol.orb_alpha.get_lumo_index() == 5 - assert mol.orb_beta.get_lumo_index() == 4 - assert mol.orb_alpha.get_homo_index(1) == 3 - assert mol.orb_beta.get_homo_index(1) == 2 - assert mol.orb_alpha.get_lumo_index(1) == 6 - assert mol.orb_beta.get_lumo_index(1) == 5 - assert abs(mol.orb_alpha.get_homo_energy() - -3.63936540E-01) < 1e-8 - assert abs(mol.orb_alpha.get_homo_energy(1) - -5.37273275E-01) < 1e-8 - assert abs(mol.orb_alpha.get_lumo_energy() - 6.48361367E-01) < 1e-8 - assert abs(mol.orb_beta.get_homo_energy() - -5.18988806E-01) < 1e-8 - assert abs(mol.orb_beta.get_homo_energy(1) - -5.19454722E-01) < 1e-8 - assert abs(mol.orb_beta.get_lumo_energy() - 3.28562907E-01) < 1e-8 - assert abs(mol.orb_alpha.homo_energy - -3.63936540E-01) < 1e-8 - assert abs(mol.orb_alpha.lumo_energy - 6.48361367E-01) < 1e-8 - assert abs(mol.orb_beta.homo_energy - -5.18988806E-01) < 1e-8 - assert abs(mol.orb_beta.lumo_energy - 3.28562907E-01) < 1e-8 + fname = 'ch3_hf_sto3g_fchk' + mdata = load_mdata(fname) + assert load_orbs_alpha(fname).get_homo_index() == 4 + assert load_orbs_beta(fname).get_homo_index() == 3 + assert load_orbs_alpha(fname).get_lumo_index() == 5 + assert load_orbs_beta(fname).get_lumo_index() == 4 + assert load_orbs_alpha(fname).get_homo_index(1) == 3 + assert load_orbs_beta(fname).get_homo_index(1) == 2 + assert load_orbs_alpha(fname).get_lumo_index(1) == 6 + assert load_orbs_beta(fname).get_lumo_index(1) == 5 + assert abs(load_orbs_alpha(fname).get_homo_energy() - -3.63936540E-01) < 1e-8 + assert abs(load_orbs_alpha(fname).get_homo_energy(1) - -5.37273275E-01) < 1e-8 + assert abs(load_orbs_alpha(fname).get_lumo_energy() - 6.48361367E-01) < 1e-8 + assert abs(load_orbs_beta(fname).get_homo_energy() - -5.18988806E-01) < 1e-8 + assert abs(load_orbs_beta(fname).get_homo_energy(1) - -5.19454722E-01) < 1e-8 + assert abs(load_orbs_beta(fname).get_lumo_energy() - 3.28562907E-01) < 1e-8 + assert abs(load_orbs_alpha(fname).homo_energy - -3.63936540E-01) < 1e-8 + assert abs(load_orbs_alpha(fname).lumo_energy - 6.48361367E-01) < 1e-8 + assert abs(load_orbs_beta(fname).homo_energy - -5.18988806E-01) < 1e-8 + assert abs(load_orbs_beta(fname).lumo_energy - 3.28562907E-01) < 1e-8 with assert_raises(ValueError): - mol.orb_alpha.get_homo_index(-1) + load_orbs_alpha(fname).get_homo_index(-1) with assert_raises(ValueError): - mol.orb_alpha.get_lumo_index(-1) + load_orbs_alpha(fname).get_lumo_index(-1) def test_orbitals_to_dm1(): - fn_fchk = context.get_fn('test/water_hfs_321g.fchk') - mol = IOData.from_file(fn_fchk) - dm = mol.orb_alpha.to_dm() + fname = 'water_hfs_321g_fchk' + mdata = load_mdata(fname) + dm = load_orbs_alpha(fname).to_dm() dm *= 2 - np.testing.assert_almost_equal(dm, mol.get_dm_full()) + np.testing.assert_almost_equal(dm, load_dm(fname)) np.testing.assert_almost_equal(dm, dm.T) def test_orbitals_to_dm2(): - fn_fchk = context.get_fn('test/ch3_hf_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - dm = mol.orb_alpha.to_dm() + mol.orb_beta.to_dm() - np.testing.assert_almost_equal(dm, mol.get_dm_full()) + fname = 'ch3_hf_sto3g_fchk' + mdata = load_mdata(fname) + dm = load_orbs_alpha(fname).to_dm() + load_orbs_beta(fname).to_dm() + np.testing.assert_almost_equal(dm, load_dm(fname)) np.testing.assert_almost_equal(dm, dm.T) def test_orbitals_to_dm3(): - fn_fchk = context.get_fn('test/ch3_hf_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - dm = mol.orb_alpha.to_dm(other=mol.orb_beta) + fname = 'ch3_hf_sto3g_fchk' + mdata = load_mdata(fname) + dm = load_orbs_alpha(fname).to_dm(other=load_orbs_beta(fname)) assert (dm != dm.T).any() diff --git a/horton/meanfield/test/test_project.py b/horton/meanfield/test/test_project.py index 8cbe53ec..6b8e5282 100644 --- a/horton/meanfield/test/test_project.py +++ b/horton/meanfield/test/test_project.py @@ -25,41 +25,41 @@ def test_project_msg_identical(): - mol = IOData.from_file(context.get_fn('test/water_sto3g_hf_g03.fchk')) + mol = IOData.from_file(context.get_fn('test/water_sto3g_hf_g03_fchk')) orb = Orbitals(mol.obasis.nbasis) - project_orbitals_mgs(mol.obasis, mol.obasis, mol.orb_alpha, orb) + project_orbitals_mgs(mol.obasis, mol.obasis, load_orbs_alpha(fname), orb) assert (orb.energies == 0.0).all() - assert (orb.occupations == mol.orb_alpha.occupations).all() - assert abs(orb.coeffs[:, :-2] - mol.orb_alpha.coeffs[:, :-2]).max() < 1e-9 + assert (orb.occupations == load_orbs_alpha(fname).occupations).all() + assert abs(orb.coeffs[:, :-2] - load_orbs_alpha(fname).coeffs[:, :-2]).max() < 1e-9 assert (orb.coeffs[:, -2:] == 0.0).all() def test_project_ortho_basis_identical(): - mol = IOData.from_file(context.get_fn('test/water_sto3g_hf_g03.fchk')) + mol = IOData.from_file(context.get_fn('test/water_sto3g_hf_g03_fchk')) orb = Orbitals(mol.obasis.nbasis) - project_orbitals_ortho(mol.obasis, mol.obasis, mol.orb_alpha, orb) + project_orbitals_ortho(mol.obasis, mol.obasis, load_orbs_alpha(fname), orb) assert (orb.energies == 0.0).all() - assert (orb.occupations == mol.orb_alpha.occupations).all() - assert abs(orb.coeffs - mol.orb_alpha.coeffs).max() < 1e-9 + assert (orb.occupations == load_orbs_alpha(fname).occupations).all() + assert abs(orb.coeffs - load_orbs_alpha(fname).coeffs).max() < 1e-9 def test_project_ortho_olp_identical(): - mol = IOData.from_file(context.get_fn('test/water_sto3g_hf_g03.fchk')) + mol = IOData.from_file(context.get_fn('test/water_sto3g_hf_g03_fchk')) orb = Orbitals(mol.obasis.nbasis) - project_orbitals_ortho(mol.obasis, mol.obasis, mol.orb_alpha, orb) + project_orbitals_ortho(mol.obasis, mol.obasis, load_orbs_alpha(fname), orb) assert (orb.energies == 0.0).all() - assert (orb.occupations == mol.orb_alpha.occupations).all() - assert abs(orb.coeffs - mol.orb_alpha.coeffs).max() < 1e-9 + assert (orb.occupations == load_orbs_alpha(fname).occupations).all() + assert abs(orb.coeffs - load_orbs_alpha(fname).coeffs).max() < 1e-9 def test_project_msg_larger(): # Load STO3G system and keep essential results - mol = IOData.from_file(context.get_fn('test/water_sto3g_hf_g03.fchk')) + mol = IOData.from_file(context.get_fn('test/water_sto3g_hf_g03_fchk')) obasis0 = mol.obasis - orb0 = mol.orb_alpha + orb0 = load_orbs_alpha(fname) # Upgrade the basis to 3-21G and project - obasis1 = get_gobasis(mol.coordinates, mol.numbers, '3-21G') + obasis1 = get_gobasis(mdata['coordinates'], mdata['numbers'], '3-21G') orb1 = Orbitals(obasis1.nbasis) project_orbitals_mgs(obasis0, obasis1, orb0, orb1) assert (orb1.energies == 0.0).all() @@ -72,7 +72,7 @@ def test_project_msg_larger(): # Setup HF hamiltonian and compute energy kin = obasis1.compute_kinetic() - na = obasis1.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + na = obasis1.compute_nuclear_attraction(mdata['coordinates'], mdata['pseudo_numbers']) er = obasis1.compute_electron_repulsion() terms = [ RTwoIndexTerm(kin, 'kin'), @@ -100,13 +100,13 @@ def test_project_msg_larger(): def test_project_msg_smaller(): # Load 3-21G system and keep essential results - mol = IOData.from_file(context.get_fn('test/li_h_3-21G_hf_g09.fchk')) + mol = IOData.from_file(context.get_fn('test/li_h_3_21G_hf_g09_fchk')) obasis0 = mol.obasis - orb0_alpha = mol.orb_alpha - orb0_beta = mol.orb_beta + orb0_alpha = load_orbs_alpha(fname) + orb0_beta = load_orbs_beta(fname) # Downgrade the basis to sto-3g and project - obasis1 = get_gobasis(mol.coordinates, mol.numbers, 'sto-3g') + obasis1 = get_gobasis(mdata['coordinates'], mdata['numbers'], 'sto-3g') orb1_alpha = Orbitals(obasis1.nbasis) orb1_beta = Orbitals(obasis1.nbasis) project_orbitals_mgs(obasis0, obasis1, orb0_alpha, orb1_alpha) @@ -125,7 +125,7 @@ def test_project_msg_smaller(): # Setup HF hamiltonian and compute energy kin = obasis1.compute_kinetic() - na = obasis1.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + na = obasis1.compute_nuclear_attraction(mdata['coordinates'], mdata['pseudo_numbers']) er = obasis1.compute_electron_repulsion() terms = [ UTwoIndexTerm(kin, 'kin'), @@ -149,7 +149,7 @@ def get_basis_pair_geometry(): """Prepare two basis sets that only differ in geometry""" # Create initial system mol = IOData.from_file(context.get_fn('test/water.xyz')) - obasis0 = get_gobasis(mol.coordinates, mol.numbers, 'sto-3g') + obasis0 = get_gobasis(mdata['coordinates'], mdata['numbers'], 'sto-3g') orb0 = Orbitals(obasis0.nbasis) # Occupy all orbitals such that orthogonality is well tested @@ -158,16 +158,16 @@ def get_basis_pair_geometry(): # core-hamiltonian guess olp = obasis0.compute_overlap() kin = obasis0.compute_kinetic() - na = obasis0.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) + na = obasis0.compute_nuclear_attraction(mdata['coordinates'], mdata['pseudo_numbers']) guess_core_hamiltonian(olp, kin + na, orb0) # Internal consistency check orb0.check_orthonormality(obasis0.compute_overlap()) # Change geometry - mol.coordinates[1, 2] += 0.5 - mol.coordinates[0, 1] -= 1.5 - obasis1 = get_gobasis(mol.coordinates, mol.numbers, 'sto-3g') + mdata['coordinates'][1, 2] += 0.5 + mdata['coordinates'][0, 1] -= 1.5 + obasis1 = get_gobasis(mdata['coordinates'], mdata['numbers'], 'sto-3g') orb1 = Orbitals(obasis1.nbasis) return obasis0, obasis1, orb0, orb1 diff --git a/horton/meanfield/test/test_quadprog.py b/horton/meanfield/test/test_quadprog.py index 4f1c6648..362cdb25 100644 --- a/horton/meanfield/test/test_quadprog.py +++ b/horton/meanfield/test/test_quadprog.py @@ -20,15 +20,15 @@ # -- + import numpy as np from nose.plugins.attrib import attr from nose.tools import assert_raises -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.quadprog import FeasibilityError, BoundedError, ConvergenceError, \ +from common import numpy_seed +from ..quadprog import FeasibilityError, BoundedError, ConvergenceError, \ _counter_to_free, find_1d_root, solve_safe, diagonal_form, \ - solve_constrained, solve_radius -from horton.test.common import numpy_seed + solve_constrained, solve_radius, QPSolver def test_counter_to_free(): @@ -48,16 +48,16 @@ def test_find_1d_root(): # at least 1.0. (See 'this is why'.) cases = [ (-0.5, 0.1, np.sin, 0.0), - (-10.0, 10.0, (lambda x: 2*(x-5)), 5.0), - (-1.0, 2.0, (lambda x: np.exp(x)-1), 0.0), - (-1.0, 2.0, (lambda x: np.exp(x)-2), np.log(2.0)), - (0.0, 3.0, np.cos, np.pi/2), + (-10.0, 10.0, (lambda x: 2 * (x - 5)), 5.0), + (-1.0, 2.0, (lambda x: np.exp(x) - 1), 0.0), + (-1.0, 2.0, (lambda x: np.exp(x) - 2), np.log(2.0)), + (0.0, 3.0, np.cos, np.pi / 2), ] eps = 1e-5 for x0, x2, fn, solution in cases: x1, y1 = find_1d_root(fn, (x0, fn(x0)), (x2, fn(x2)), eps) assert abs(y1) < eps - assert abs(x1-solution) < eps # <--- this is why + assert abs(x1 - solution) < eps # <--- this is why def test_solve_safe(): @@ -88,7 +88,7 @@ def get_random_problem(nx=8, nl=None, posdef=False, epscn=1e-4): The maximum condition number for a and r. ''' if nl is None: - nl = np.random.randint(0, nx/2) + nl = np.random.randint(0, nx / 2) while True: # construct a a = np.random.normal(0, 1, (nx, nx)) @@ -96,17 +96,17 @@ def get_random_problem(nx=8, nl=None, posdef=False, epscn=1e-4): a = np.dot(a, a.T) # resymmetrize in all cases because some blas implementations do not return # an exactly symmetric a times a^T. - a = 0.5*(a + a.T) + a = 0.5 * (a + a.T) # avoid too ill-conditioned problems (rarely happens) absevals = abs(np.linalg.eigvalsh(a)) - if absevals.min() < epscn*absevals.max(): + if absevals.min() < epscn * absevals.max(): continue b = np.random.normal(0, 1, nx) r = np.random.normal(0, 1, (nl, nx)) if nl > 0: # avoid too ill-conditioned problems (rarely happens) abssingvals = abs(np.linalg.svd(r, full_matrices=False)[1]) - if abssingvals.min() < epscn*abssingvals.max(): + if abssingvals.min() < epscn * abssingvals.max(): continue s = np.random.normal(0, 1, nl) return a, b, r, s @@ -117,12 +117,12 @@ def test_diagonal_form_nl0(): # nl = 0 a, b, r, s = get_random_problem(nl=0) x0, basis, evals, evecs, b_diag = diagonal_form(a, b, r, s) - x1 = np.dot(evecs, b_diag/evals) + x1 = np.dot(evecs, b_diag / evals) x2 = solve_constrained(a, b, r, s) - assert abs(x1 - x2).max() < 1e-8*abs(x1).max() + assert abs(x1 - x2).max() < 1e-8 * abs(x1).max() assert x0 is None assert basis is None - assert abs(np.dot(evecs*evals, evecs.T) - a).max() < 1e-10 + assert abs(np.dot(evecs * evals, evecs.T) - a).max() < 1e-10 assert abs(np.dot(evecs, b_diag) - b).max() < 1e-10 @@ -136,10 +136,10 @@ def test_diagonal_form_nl4(): assert evals.shape == (3,) assert evecs.shape == (3, 3) assert b_diag.shape == (3,) - x3 = x0 + np.dot(basis.T, np.dot(evecs, b_diag/evals)) + x3 = x0 + np.dot(basis.T, np.dot(evecs, b_diag / evals)) x4 = solve_constrained(a, b, r, s) try: - assert abs(x3 - x4).max() < 1e-8*abs(x3).max() + assert abs(x3 - x4).max() < 1e-8 * abs(x3).max() except: print i, 5 print np.linalg.eigvalsh(a) @@ -169,7 +169,7 @@ def test_diagonal_form_nl8(): assert b_diag is None x5 = solve_constrained(a, b, r, s) try: - assert abs(x0 - x5).max() < 1e-8*abs(x0).max() + assert abs(x0 - x5).max() < 1e-8 * abs(x0).max() except: print i, 8 print np.linalg.eigvalsh(a) @@ -184,47 +184,47 @@ def test_solve_radius_posdef_nl0(): for i in xrange(100): a, b, r, s = get_random_problem(nl=0, posdef=True) radius = np.random.uniform(1e-5, 1e2) - center = np.random.normal(0, 0.3*radius, len(b)) + center = np.random.normal(0, 0.3 * radius, len(b)) x1 = solve_radius(a, b, center, radius, r, s) - assert np.linalg.norm(x1 - center) < radius*(1 + 1e-3) + assert np.linalg.norm(x1 - center) < radius * (1 + 1e-3) x2 = solve_constrained(a, b, r, s) - cost1 = np.dot(x1, 0.5*np.dot(a, x1) - b) - cost2 = np.dot(x2, 0.5*np.dot(a, x2) - b) + cost1 = np.dot(x1, 0.5 * np.dot(a, x1) - b) + cost2 = np.dot(x2, 0.5 * np.dot(a, x2) - b) assert cost2 - cost1 < 1e-10 - if np.linalg.norm(x2 - center) < radius*(1 - 1e-3): - assert abs(x1 - x2).max() < 1e-6*abs(x1).max() + if np.linalg.norm(x2 - center) < radius * (1 - 1e-3): + assert abs(x1 - x2).max() < 1e-6 * abs(x1).max() def test_solve_radius_posdef_nl4(): for i in xrange(100): a, b, r, s = get_random_problem(nl=4, posdef=True) radius = np.random.uniform(1e-5, 1e2) - center = np.random.normal(0, 0.5*radius, len(b)) + center = np.random.normal(0, 0.5 * radius, len(b)) try: x1 = solve_radius(a, b, center, radius, r, s) except FeasibilityError: continue - assert np.linalg.norm(x1 - center) < radius*(1 + 1e-3) + assert np.linalg.norm(x1 - center) < radius * (1 + 1e-3) x2 = solve_constrained(a, b, r, s) - cost1 = np.dot(x1, 0.5*np.dot(a, x1) - b) - cost2 = np.dot(x2, 0.5*np.dot(a, x2) - b) + cost1 = np.dot(x1, 0.5 * np.dot(a, x1) - b) + cost2 = np.dot(x2, 0.5 * np.dot(a, x2) - b) assert cost2 - cost1 < 1e-10 - if np.linalg.norm(x2 - center) < radius*(1 - 1e-3): - assert abs(x1 - x2).max() < 1e-6*abs(x1).max() + if np.linalg.norm(x2 - center) < radius * (1 - 1e-3): + assert abs(x1 - x2).max() < 1e-6 * abs(x1).max() def test_solve_radius_posdef_nl8(): for i in xrange(100): a, b, r, s = get_random_problem(nl=8, posdef=True) radius = np.random.uniform(1e-5, 1e2) - center = np.random.normal(0, 0.5*radius, len(b)) + center = np.random.normal(0, 0.5 * radius, len(b)) try: x1 = solve_radius(a, b, center, radius, r, s) except FeasibilityError: continue - assert np.linalg.norm(x1 - center) < radius*(1 + 1e-3) + assert np.linalg.norm(x1 - center) < radius * (1 + 1e-3) x2 = solve_safe(r, s) - assert abs(x1 - x2).max() < 1e-6*abs(x1).max() + assert abs(x1 - x2).max() < 1e-6 * abs(x1).max() def test_qps_infeasible(): @@ -233,8 +233,8 @@ def test_qps_infeasible(): a = np.diag(np.random.uniform(2.0, 5.0, nx)) b = np.random.normal(0.0, 1.0, nx) r = np.zeros((nl, nx)) - r[:,:2] = np.random.normal(0.0, 1.0, (nl, 2)) - s = np.random.normal(0.0, 1.0, nl) + r[:, :2] = np.random.normal(0.0, 1.0, (nl, 2)) + s = np.random.normal(0.0, 1.0, nl) qps = QPSolver(a, b, r, s) free = np.array([False, False, True, True]) with assert_raises(FeasibilityError): @@ -247,8 +247,8 @@ def test_qps_infeasible_radius(): a = np.diag(np.random.uniform(2.0, 5.0, nx)) b = np.random.normal(0.0, 1.0, nx) r = np.zeros((nl, nx)) - r[:,:2] = np.random.normal(0.0, 1.0, (nl, 2)) - s = np.random.normal(0.0, 1.0, nl) + r[:, :2] = np.random.normal(0.0, 1.0, (nl, 2)) + s = np.random.normal(0.0, 1.0, nl) center = np.random.normal(0, 1, nx) qps = QPSolver(a, b, r, s) free = np.array([False, False, True, True]) @@ -283,7 +283,7 @@ def get_random_free(qps): def test_get_free_problem(): for i0 in xrange(100): qps = QPSolver(*get_random_problem()) - for i1 in xrange(max(1, qps.nl), qps.nx+1): + for i1 in xrange(max(1, qps.nl), qps.nx + 1): free = np.zeros(qps.nx, dtype=bool) free[:i1] = True a_free, b_free, r_free, s_free = qps.get_free_problem(free) @@ -318,7 +318,7 @@ def test_solve_qps(): if i1 == 0: free = np.ones(qps.nx, dtype=bool) else: - with numpy_seed(i0*100 + i1): + with numpy_seed(i0 * 100 + i1): free = get_random_free(qps) x = qps.solve(free) qps.check_feasible(x, free) @@ -338,7 +338,7 @@ def test_solve_qps_radius_posdef(): qps.check_feasible(x, free) cost_x = qps.compute_cost(x) assert cost_x < cost_center - assert np.linalg.norm(x - center) <= radius*1.001 + assert np.linalg.norm(x - center) <= radius * 1.001 def test_solve_qps_radius(): @@ -355,12 +355,12 @@ def test_solve_qps_radius(): qps.check_feasible(x, free) cost_x = qps.compute_cost(x) assert cost_x < cost_center - assert np.linalg.norm(x - center) <= radius*1.001 + assert np.linalg.norm(x - center) <= radius * 1.001 def test_brute_simple(): a = np.identity(5) - b = -2*np.ones(5) + b = -2 * np.ones(5) r = np.ones((1, 5)) s = np.array([5]) qps = QPSolver(a, b, r, s) @@ -461,17 +461,26 @@ def test_brute_local(): def test_brute_case1(): qps = QPSolver( np.array([ - [5.8818949999422374, -0.77419795370541555, 0.39341617187739442, 2.0623472342526616, 0.70305696723217903, 0.43927082926019057], - [-0.77419795370541555, 1.2417514864801085, -0.87970058018596486, -2.2750064483132406, -0.53127538666014551, 0.54723718046867531], - [0.39341617187739442, -0.87970058018596486, 8.1424259636396421, 2.0743354833933023, -0.8451551155934458, -0.87608149252282963], - [2.0623472342526616, -2.2750064483132406, 2.0743354833933023, 6.0910659702544807, -1.0972631644140005, -0.23028504167149105], - [0.70305696723217903, -0.53127538666014551, -0.8451551155934458, -1.0972631644140005, 5.565314789423871, -3.7575632324834198], - [0.43927082926019057, 0.54723718046867531, -0.87608149252282963, -0.23028504167149105, -3.7575632324834198, 5.2499593294744216], + [5.8818949999422374, -0.77419795370541555, 0.39341617187739442, 2.0623472342526616, + 0.70305696723217903, 0.43927082926019057], + [-0.77419795370541555, 1.2417514864801085, -0.87970058018596486, -2.2750064483132406, + -0.53127538666014551, 0.54723718046867531], + [0.39341617187739442, -0.87970058018596486, 8.1424259636396421, 2.0743354833933023, + -0.8451551155934458, -0.87608149252282963], + [2.0623472342526616, -2.2750064483132406, 2.0743354833933023, 6.0910659702544807, + -1.0972631644140005, -0.23028504167149105], + [0.70305696723217903, -0.53127538666014551, -0.8451551155934458, -1.0972631644140005, + 5.565314789423871, -3.7575632324834198], + [0.43927082926019057, 0.54723718046867531, -0.87608149252282963, -0.23028504167149105, + -3.7575632324834198, 5.2499593294744216], ]), - np.array([0.79794082940662259, 1.7133727997077115, 0.52660856271888534, 0.87508447140496493, 1.4399900959090817, 1.890635603184891]), + np.array([0.79794082940662259, 1.7133727997077115, 0.52660856271888534, 0.87508447140496493, + 1.4399900959090817, 1.890635603184891]), np.array([ - [-0.3066400060217162, 0.4347344395513979, -2.3801164580913214, -0.090650765867039226, 0.086345721171055323, 1.1449625586344025], - [-0.279502458226559, 0.59702302554570619, 0.21989715465365572, -0.11013881571319613, 0.16478641607527697, 0.93466512224244058], + [-0.3066400060217162, 0.4347344395513979, -2.3801164580913214, -0.090650765867039226, + 0.086345721171055323, 1.1449625586344025], + [-0.279502458226559, 0.59702302554570619, 0.21989715465365572, -0.11013881571319613, + 0.16478641607527697, 0.93466512224244058], ]), np.array([-0.99746332627189982, 1.1089528830442121]), ) @@ -482,17 +491,27 @@ def test_brute_case1(): def test_brute_case2(): qps = QPSolver( np.array([ - [7.7777678491839488, -4.1394215100441691, -0.93496478768154112, -2.5636063412433505, 0.4152351107141245, 2.1325362349317176], - [-4.1394215100441691, 5.3966791477501044, -0.078655286246388428, 0.84760054283629427, 0.85251884466077499, -4.1538822573446677], - [-0.93496478768154112, -0.078655286246388428, 3.2776150136403599, 0.66562278015287957, -2.01031234900845, -1.3170956617298368], - [-2.5636063412433505, 0.84760054283629427, 0.66562278015287957, 8.0220111474488096, -2.8503515897516283, -1.2294009495541263], - [0.4152351107141245, 0.85251884466077499, -2.01031234900845, -2.8503515897516283, 2.3078909975036965, 0.51158004287230041], - [2.1325362349317176, -4.1538822573446677, -1.3170956617298368, -1.2294009495541263, 0.51158004287230041, 4.753207067427045], + [7.7777678491839488, -4.1394215100441691, -0.93496478768154112, -2.5636063412433505, + 0.4152351107141245, 2.1325362349317176], + [-4.1394215100441691, 5.3966791477501044, -0.078655286246388428, 0.84760054283629427, + 0.85251884466077499, -4.1538822573446677], + [-0.93496478768154112, -0.078655286246388428, 3.2776150136403599, 0.66562278015287957, + -2.01031234900845, -1.3170956617298368], + [-2.5636063412433505, 0.84760054283629427, 0.66562278015287957, 8.0220111474488096, + -2.8503515897516283, -1.2294009495541263], + [0.4152351107141245, 0.85251884466077499, -2.01031234900845, -2.8503515897516283, + 2.3078909975036965, 0.51158004287230041], + [2.1325362349317176, -4.1538822573446677, -1.3170956617298368, -1.2294009495541263, + 0.51158004287230041, 4.753207067427045], ]), - np.array([0.084122796400789776, 0.13248005552515144, -0.011337219032290116, -0.32808318842735468, -0.1942335218652631, 0.42946358838556126]), + np.array( + [0.084122796400789776, 0.13248005552515144, -0.011337219032290116, -0.32808318842735468, + -0.1942335218652631, 0.42946358838556126]), np.array([ - [0.058947500030390558, 2.8343622100824701, 1.3178663807154574, 0.63164184657317068, 0.83782836334183131, -0.051926442369153891], - [-0.31073645606613759, -0.50172261649450467, 0.1826071399900123, 1.5181979800166607, -0.67838760926895592, -0.40545902742915829], + [0.058947500030390558, 2.8343622100824701, 1.3178663807154574, 0.63164184657317068, + 0.83782836334183131, -0.051926442369153891], + [-0.31073645606613759, -0.50172261649450467, 0.1826071399900123, 1.5181979800166607, + -0.67838760926895592, -0.40545902742915829], ]), np.array([-0.57685125471751075, -1.2399862660238066]), ) @@ -503,17 +522,27 @@ def test_brute_case2(): def test_brute_case3(): qps = QPSolver( np.array([ - [10.949643502677578, -6.4848706832640168, -2.2855976904588635, 6.2603152305513392, -1.0445724421867459, 2.9962572283103555], - [-6.4848706832640168, 8.3170212543577193, 0.27469715271157841, -4.6215940087176399, 2.712716602561124, -4.8477069972400084], - [-2.2855976904588635, 0.27469715271157841, 14.769272405279011, -0.051505059995286595, -0.49106152710130235, -2.1282377916520616], - [6.2603152305513392, -4.6215940087176399, -0.051505059995286595, 6.772933209165914, 0.31613657279823015, 4.2766554080787502], - [-1.0445724421867459, 2.712716602561124, -0.49106152710130235, 0.31613657279823015, 3.741204058931006, -1.7853429804383523], - [2.9962572283103555, -4.8477069972400084, -2.1282377916520616, 4.2766554080787502, -1.7853429804383523, 6.9502814568206386], + [10.949643502677578, -6.4848706832640168, -2.2855976904588635, 6.2603152305513392, + -1.0445724421867459, 2.9962572283103555], + [-6.4848706832640168, 8.3170212543577193, 0.27469715271157841, -4.6215940087176399, + 2.712716602561124, -4.8477069972400084], + [-2.2855976904588635, 0.27469715271157841, 14.769272405279011, -0.051505059995286595, + -0.49106152710130235, -2.1282377916520616], + [6.2603152305513392, -4.6215940087176399, -0.051505059995286595, 6.772933209165914, + 0.31613657279823015, 4.2766554080787502], + [-1.0445724421867459, 2.712716602561124, -0.49106152710130235, 0.31613657279823015, + 3.741204058931006, -1.7853429804383523], + [2.9962572283103555, -4.8477069972400084, -2.1282377916520616, 4.2766554080787502, + -1.7853429804383523, 6.9502814568206386], ]), - np.array([0.81811916699197473, -0.2839108577501086, -0.52580285068573052, 1.1168945191958584, 0.51473677332239764, 0.40132813088081393]), + np.array( + [0.81811916699197473, -0.2839108577501086, -0.52580285068573052, 1.1168945191958584, + 0.51473677332239764, 0.40132813088081393]), np.array([ - [0.60693853800344977, -1.602707177915851, -0.045461208556361564, -1.3574337407982444, -1.0194532203245703, -0.11007054336981964], - [0.41595858414246062, 0.20880157188047851, -1.1189280276138425, -1.3021514511281107, 0.10768134383771397, 1.7556828215121263], + [0.60693853800344977, -1.602707177915851, -0.045461208556361564, -1.3574337407982444, + -1.0194532203245703, -0.11007054336981964], + [0.41595858414246062, 0.20880157188047851, -1.1189280276138425, -1.3021514511281107, + 0.10768134383771397, 1.7556828215121263], ]), np.array([0.51812694007155591, -0.82287154751311653]), ) @@ -524,16 +553,25 @@ def test_brute_case3(): def test_brute_case4(): qps = QPSolver( np.array([ - [0.7990546151426382, 0.60159970689434261, 0.25038104422335095, 0.9107186394321235, -0.057596715716904341, 0.36415173883112567], - [0.60159970689434261, 0.071406318978636474, -0.18682517604341942, 0.1408876305178936, -1.4706046610777006, 0.95698263756937496], - [0.25038104422335095, -0.18682517604341942, -0.76023253647318112, -0.65971813975561078, 0.091128703324063975, 0.72341372601515963], - [0.9107186394321235, 0.1408876305178936, -0.65971813975561078, -1.3564464302489747, 0.14486671746488211, 0.37478117023135221], - [-0.057596715716904341, -1.4706046610777006, 0.091128703324063975, 0.14486671746488211, -0.44189735537298425, 0.77868082771555558], - [0.36415173883112567, 0.95698263756937496, 0.72341372601515963, 0.37478117023135221, 0.77868082771555558, 0.15083792086070447], + [0.7990546151426382, 0.60159970689434261, 0.25038104422335095, 0.9107186394321235, + -0.057596715716904341, 0.36415173883112567], + [0.60159970689434261, 0.071406318978636474, -0.18682517604341942, 0.1408876305178936, + -1.4706046610777006, 0.95698263756937496], + [0.25038104422335095, -0.18682517604341942, -0.76023253647318112, -0.65971813975561078, + 0.091128703324063975, 0.72341372601515963], + [0.9107186394321235, 0.1408876305178936, -0.65971813975561078, -1.3564464302489747, + 0.14486671746488211, 0.37478117023135221], + [-0.057596715716904341, -1.4706046610777006, 0.091128703324063975, 0.14486671746488211, + -0.44189735537298425, 0.77868082771555558], + [0.36415173883112567, 0.95698263756937496, 0.72341372601515963, 0.37478117023135221, + 0.77868082771555558, 0.15083792086070447], ]), - np.array([-2.1492020469280524, 1.5260662967668095, 0.91429181277522631, -0.26822566090243904, -0.34729383842661415, 0.67908749141704505]), + np.array( + [-2.1492020469280524, 1.5260662967668095, 0.91429181277522631, -0.26822566090243904, + -0.34729383842661415, 0.67908749141704505]), np.array([ - [-0.41015693790806101, -0.3029115511740868, -0.68741014841460135, 0.16295599958248516, -0.8286427429967762, -0.22428931788921946], + [-0.41015693790806101, -0.3029115511740868, -0.68741014841460135, 0.16295599958248516, + -0.8286427429967762, -0.22428931788921946], ]), np.array([-0.75113559150400466]), ) @@ -562,15 +600,22 @@ def test_brute_case6(): # all fixed is not a good idea ... qps = QPSolver( np.array([ - [-1.6170622392405418, -1.1110660450798633, 0.15534256626761522, -0.035521902704618108, -0.7461985258486824, 0.10251918427316184], - [-1.1110660450798633, -0.34288398900411249, -0.87112101192198466, -1.0723409286884387, 0.77890683895688473, 0.64749152585353753], - [0.15534256626761522, -0.87112101192198466, -0.47456930397068336, 1.0664188304998987, 0.52494441816706661, -1.1798151543302824], - [-0.035521902704618108, -1.0723409286884387, 1.0664188304998987, -0.062964411407941484, -0.2032160752170718, 1.7280732016323954], - [-0.7461985258486824, 0.77890683895688473, 0.52494441816706661, -0.2032160752170718, -1.6672524270549614, -0.0079015689549524204], - [0.10251918427316184, 0.64749152585353753, -1.1798151543302824, 1.7280732016323954, -0.0079015689549524204, -2.4093790812393414], + [-1.6170622392405418, -1.1110660450798633, 0.15534256626761522, -0.035521902704618108, + -0.7461985258486824, 0.10251918427316184], + [-1.1110660450798633, -0.34288398900411249, -0.87112101192198466, -1.0723409286884387, + 0.77890683895688473, 0.64749152585353753], + [0.15534256626761522, -0.87112101192198466, -0.47456930397068336, 1.0664188304998987, + 0.52494441816706661, -1.1798151543302824], + [-0.035521902704618108, -1.0723409286884387, 1.0664188304998987, -0.062964411407941484, + -0.2032160752170718, 1.7280732016323954], + [-0.7461985258486824, 0.77890683895688473, 0.52494441816706661, -0.2032160752170718, + -1.6672524270549614, -0.0079015689549524204], + [0.10251918427316184, 0.64749152585353753, -1.1798151543302824, 1.7280732016323954, + -0.0079015689549524204, -2.4093790812393414], ]), - np.array([-1.628027986608761, -1.680081567157873, 0.12815213529315533, -0.38201939028605525, 0.77151603852902884, 0.50875081807696942]), - np.zeros((0,6)), + np.array([-1.628027986608761, -1.680081567157873, 0.12815213529315533, -0.38201939028605525, + 0.77151603852902884, 0.50875081807696942]), + np.zeros((0, 6)), np.array([]), ) with assert_raises(BoundedError): @@ -599,17 +644,27 @@ def test_brute_case8(): # find_brute returns a solution that is not exactly on the equality constraints. qps = QPSolver( np.array([ - [-0.70841731236733996, -1.2971293403402491, 0.90762745129580269, 0.086526845993940282, 0.83018921812606727, 0.31381838847861343], - [-1.2971293403402491, -1.9408646843381616, -0.89540919308959155, -0.024479335288883169, 1.0775985944280677, -0.52650657733203432], - [0.90762745129580269, -0.89540919308959155, 0.40612490363321968, 0.014668804820934134, 0.5370600831832697, -0.39964394635396933], - [0.086526845993940282, -0.024479335288883169, 0.014668804820934134, 0.015929091021452374, -0.79212879441047745, 0.016890690484653692], - [0.83018921812606727, 1.0775985944280677, 0.5370600831832697, -0.79212879441047745, -0.88786447750589015, -0.034978317332826636], - [0.31381838847861343, -0.52650657733203432, -0.39964394635396933, 0.016890690484653692, -0.034978317332826636, -0.18343755938048792], + [-0.70841731236733996, -1.2971293403402491, 0.90762745129580269, 0.086526845993940282, + 0.83018921812606727, 0.31381838847861343], + [-1.2971293403402491, -1.9408646843381616, -0.89540919308959155, -0.024479335288883169, + 1.0775985944280677, -0.52650657733203432], + [0.90762745129580269, -0.89540919308959155, 0.40612490363321968, 0.014668804820934134, + 0.5370600831832697, -0.39964394635396933], + [0.086526845993940282, -0.024479335288883169, 0.014668804820934134, + 0.015929091021452374, -0.79212879441047745, 0.016890690484653692], + [0.83018921812606727, 1.0775985944280677, 0.5370600831832697, -0.79212879441047745, + -0.88786447750589015, -0.034978317332826636], + [0.31381838847861343, -0.52650657733203432, -0.39964394635396933, 0.016890690484653692, + -0.034978317332826636, -0.18343755938048792], ]), - np.array([-0.97667398736166677, -0.26674955274778495, 1.3971837428664151, -0.7548208542900311, 0.20143172017397515, 0.70870382939012788]), + np.array( + [-0.97667398736166677, -0.26674955274778495, 1.3971837428664151, -0.7548208542900311, + 0.20143172017397515, 0.70870382939012788]), np.array([ - [0.23201895073676565, 1.2815806707407724, -0.48070981450845679, -0.086198330259237302, -0.24520586286913254, -0.17363911537396109], - [-0.68428995101920931, -1.0316773608304244, -0.17545371137719318, -0.2729594433963799, 0.19735403185101402, -0.97249697065508856], + [0.23201895073676565, 1.2815806707407724, -0.48070981450845679, -0.086198330259237302, + -0.24520586286913254, -0.17363911537396109], + [-0.68428995101920931, -1.0316773608304244, -0.17545371137719318, -0.2729594433963799, + 0.19735403185101402, -0.97249697065508856], ]), np.array([0.41079612937870091, -1.6343480803544916]), eps=1e-6, @@ -622,17 +677,27 @@ def test_brute_case9(): # mismatch equality constraints (posdef) qps = QPSolver( np.array([ - [4.3206954954195442, 1.0995193491529669, -1.8495021618983287, 0.72617849172585236, -1.7933578310574625, -3.3858794413657338], - [1.0995193491529669, 7.4747802231556353, -7.4921796351274246, -1.5044955980863084, -2.9385575178317112, -2.5930622344533512], - [-1.8495021618983287, -7.4921796351274246, 11.271691407429426, -0.13747973098167873, 3.0801710797885811, 2.9305864693055015], - [0.72617849172585236, -1.5044955980863084, -0.13747973098167873, 7.1223220952346562, 6.3309090398866426, 0.89431284768332786], - [-1.7933578310574625, -2.9385575178317112, 3.0801710797885811, 6.3309090398866426, 10.48601433755171, 2.3729785411834676], - [-3.3858794413657338, -2.5930622344533512, 2.9305864693055015, 0.89431284768332786, 2.3729785411834676, 3.6504940434519155], + [4.3206954954195442, 1.0995193491529669, -1.8495021618983287, 0.72617849172585236, + -1.7933578310574625, -3.3858794413657338], + [1.0995193491529669, 7.4747802231556353, -7.4921796351274246, -1.5044955980863084, + -2.9385575178317112, -2.5930622344533512], + [-1.8495021618983287, -7.4921796351274246, 11.271691407429426, -0.13747973098167873, + 3.0801710797885811, 2.9305864693055015], + [0.72617849172585236, -1.5044955980863084, -0.13747973098167873, 7.1223220952346562, + 6.3309090398866426, 0.89431284768332786], + [-1.7933578310574625, -2.9385575178317112, 3.0801710797885811, 6.3309090398866426, + 10.48601433755171, 2.3729785411834676], + [-3.3858794413657338, -2.5930622344533512, 2.9305864693055015, 0.89431284768332786, + 2.3729785411834676, 3.6504940434519155], ]), - np.array([-0.20354699990469935, 1.8853961326540016, -0.7319189254058831, 0.065576550436379791, -0.94479064660325729, 1.0746348777770884]), + np.array( + [-0.20354699990469935, 1.8853961326540016, -0.7319189254058831, 0.065576550436379791, + -0.94479064660325729, 1.0746348777770884]), np.array([ - [1.2485461200060213, 1.2175464308211492, 1.0092841327024706, 2.7899706809845943, -0.92878294027396968, -0.35937248238222808], - [-0.31042069923722482, 1.3203168967639625, 0.71261924983670422, 1.199582577635893, 0.2304738785590868, 0.15518540117148097], + [1.2485461200060213, 1.2175464308211492, 1.0092841327024706, 2.7899706809845943, + -0.92878294027396968, -0.35937248238222808], + [-0.31042069923722482, 1.3203168967639625, 0.71261924983670422, 1.199582577635893, + 0.2304738785590868, 0.15518540117148097], ]), np.array([0.40260474485255499, -0.48930086847135434]), eps=1e-6, @@ -644,17 +709,27 @@ def test_brute_case9(): def test_local_case1(): qps = QPSolver( np.array([ - [12.98721885864512, -4.6588586635198244, -0.91546482655448469, -5.9789922145586925, 2.7503595102379421, 1.5317082550812957], - [-4.6588586635198244, 7.0326437030982909, -1.2068162572718182, 4.1152385083361009, -0.486080361964501, -0.92288125639729679], - [-0.91546482655448469, -1.2068162572718182, 7.0824548119378132, -3.4096249540917754, -0.9217331851519901, -1.5005654709949769], - [-5.9789922145586925, 4.1152385083361009, -3.4096249540917754, 11.89628880624144, -3.6316543061999216, 0.42944160122592212], - [2.7503595102379421, -0.486080361964501, -0.9217331851519901, -3.6316543061999216, 3.3531338144290426, 0.49086672463256498], - [1.5317082550812957, -0.92288125639729679, -1.5005654709949769, 0.42944160122592212, 0.49086672463256498, 0.86607069729952701], + [12.98721885864512, -4.6588586635198244, -0.91546482655448469, -5.9789922145586925, + 2.7503595102379421, 1.5317082550812957], + [-4.6588586635198244, 7.0326437030982909, -1.2068162572718182, 4.1152385083361009, + -0.486080361964501, -0.92288125639729679], + [-0.91546482655448469, -1.2068162572718182, 7.0824548119378132, -3.4096249540917754, + -0.9217331851519901, -1.5005654709949769], + [-5.9789922145586925, 4.1152385083361009, -3.4096249540917754, 11.89628880624144, + -3.6316543061999216, 0.42944160122592212], + [2.7503595102379421, -0.486080361964501, -0.9217331851519901, -3.6316543061999216, + 3.3531338144290426, 0.49086672463256498], + [1.5317082550812957, -0.92288125639729679, -1.5005654709949769, 0.42944160122592212, + 0.49086672463256498, 0.86607069729952701], ]), - np.array([-1.7640856679361303, -0.57087943458650181, -0.13374131333031397, 0.34522781648137341, 0.068577833332047478, -0.11172137814018418]), + np.array( + [-1.7640856679361303, -0.57087943458650181, -0.13374131333031397, 0.34522781648137341, + 0.068577833332047478, -0.11172137814018418]), np.array([ - [0.43101465265031758, 0.086243316821451532, 0.056467524174045318, -0.83513643817703564, -0.95396057797839307, -1.1277118607292189], - [-0.063668029637385076, 1.2248051747709392, 0.17965412995933414, -0.55365467576520333, -0.42904406085688018, -1.9683318875692319], + [0.43101465265031758, 0.086243316821451532, 0.056467524174045318, -0.83513643817703564, + -0.95396057797839307, -1.1277118607292189], + [-0.063668029637385076, 1.2248051747709392, 0.17965412995933414, -0.55365467576520333, + -0.42904406085688018, -1.9683318875692319], ]), np.array([0.65794380142477105, 0.038165380592388352]), ) @@ -667,18 +742,28 @@ def test_local_case2(): # problem with new_cost < cost qps = QPSolver( np.array([ - [7.4629736594322331, -0.78748447995959669, 0.39350017508027152, -0.68307208660912533, 4.9135859685012173, 1.3191440233541152], - [-0.78748447995959669, 2.8455612103600143, -2.3777176627456003, -2.0647887688885893, -0.8494420668115783, 1.0362029379461384], - [0.39350017508027152, -2.3777176627456003, 7.1282320417634413, 1.1073706764518034, 1.6754999335349345, 0.24762190846137289], - [-0.68307208660912533, -2.0647887688885893, 1.1073706764518034, 2.4252041096631261, -0.69785432183912288, -0.55618812054465072], - [4.9135859685012173, -0.8494420668115783, 1.6754999335349345, -0.69785432183912288, 4.4961443889941322, 0.56183256135502446], - [1.3191440233541152, 1.0362029379461384, 0.24762190846137289, -0.55618812054465072, 0.56183256135502446, 1.9755149613389364], + [7.4629736594322331, -0.78748447995959669, 0.39350017508027152, -0.68307208660912533, + 4.9135859685012173, 1.3191440233541152], + [-0.78748447995959669, 2.8455612103600143, -2.3777176627456003, -2.0647887688885893, + -0.8494420668115783, 1.0362029379461384], + [0.39350017508027152, -2.3777176627456003, 7.1282320417634413, 1.1073706764518034, + 1.6754999335349345, 0.24762190846137289], + [-0.68307208660912533, -2.0647887688885893, 1.1073706764518034, 2.4252041096631261, + -0.69785432183912288, -0.55618812054465072], + [4.9135859685012173, -0.8494420668115783, 1.6754999335349345, -0.69785432183912288, + 4.4961443889941322, 0.56183256135502446], + [1.3191440233541152, 1.0362029379461384, 0.24762190846137289, -0.55618812054465072, + 0.56183256135502446, 1.9755149613389364], ]), - np.array([-0.036326161624374083, 0.93442606896402636, 2.3465206569805046, 0.60013364713670336, -0.065360649313220678, 0.74605936179230847]), - np.zeros((0,6)), + np.array( + [-0.036326161624374083, 0.93442606896402636, 2.3465206569805046, 0.60013364713670336, + -0.065360649313220678, 0.74605936179230847]), + np.zeros((0, 6)), np.array([]), ) - guess = np.array([0.060781020807135232, 0.094832047408032777, 1.1736098312337082, 0.27679006326937744, 0.08915412896212016, 2.7251320294146675]) + guess = np.array( + [0.060781020807135232, 0.094832047408032777, 1.1736098312337082, 0.27679006326937744, + 0.08915412896212016, 2.7251320294146675]) cost, x = qps.find_local(guess, 1.0) qps.check_solution(x) @@ -687,21 +772,33 @@ def test_local_case3(): # problem with tmin > 0 qps = QPSolver( np.array([ - [3.0416282731277371, -1.4216164332936789, 0.46036692207941887, 0.8646633606722256, 0.37224511445850084, 0.49853885743325299], - [-1.4216164332936789, 10.48010471548946, -5.0724948663530656, 0.51685701382721216, -5.7757019664518729, -2.654913315245504], - [0.46036692207941887, -5.0724948663530656, 4.6454659562180787, -2.8459087108315506, 2.2400328467875963, 3.5852631057103288], - [0.8646633606722256, 0.51685701382721216, -2.8459087108315506, 6.9625681947633717, 0.0065222059726193216, -4.072767567818075], - [0.37224511445850084, -5.7757019664518729, 2.2400328467875963, 0.0065222059726193216, 7.0132899829952953, -0.99707593216694956], - [0.49853885743325299, -2.654913315245504, 3.5852631057103288, -4.072767567818075, -0.99707593216694956, 4.6945205762054307], + [3.0416282731277371, -1.4216164332936789, 0.46036692207941887, 0.8646633606722256, + 0.37224511445850084, 0.49853885743325299], + [-1.4216164332936789, 10.48010471548946, -5.0724948663530656, 0.51685701382721216, + -5.7757019664518729, -2.654913315245504], + [0.46036692207941887, -5.0724948663530656, 4.6454659562180787, -2.8459087108315506, + 2.2400328467875963, 3.5852631057103288], + [0.8646633606722256, 0.51685701382721216, -2.8459087108315506, 6.9625681947633717, + 0.0065222059726193216, -4.072767567818075], + [0.37224511445850084, -5.7757019664518729, 2.2400328467875963, 0.0065222059726193216, + 7.0132899829952953, -0.99707593216694956], + [0.49853885743325299, -2.654913315245504, 3.5852631057103288, -4.072767567818075, + -0.99707593216694956, 4.6945205762054307], ]), - np.array([-0.45709100400275965, -1.8550340629069841, -0.22415042613116959, 0.42530295591391204, 0.99077132382609068, 0.44684458290517975]), + np.array( + [-0.45709100400275965, -1.8550340629069841, -0.22415042613116959, 0.42530295591391204, + 0.99077132382609068, 0.44684458290517975]), np.array([ - [-0.32925296164525752, 0.34285843523483472, -1.1876007007262734, -0.34405996689960999, -0.48748723186183124, -0.84790951916486579], - [0.34748864320332279, -1.4306241151049646, 0.48663092329413032, 0.36880547559765398, 0.5830781797631559, 0.56629405720887827], + [-0.32925296164525752, 0.34285843523483472, -1.1876007007262734, -0.34405996689960999, + -0.48748723186183124, -0.84790951916486579], + [0.34748864320332279, -1.4306241151049646, 0.48663092329413032, 0.36880547559765398, + 0.5830781797631559, 0.56629405720887827], ]), np.array([-0.8042070619771764, -0.8113771733846965]), ) - guess = np.array([0.33919202323040087, 1.4357688663259185, 0.128273057926652, 0.84509497913350029, 0.99165656530820734, 0.30459867095075666]) + guess = np.array( + [0.33919202323040087, 1.4357688663259185, 0.128273057926652, 0.84509497913350029, + 0.99165656530820734, 0.30459867095075666]) cost, x = qps.find_local(guess, 1.0) qps.check_solution(x) @@ -710,20 +807,30 @@ def test_local_case4(): # Impossible to converge qps = QPSolver( np.array([ - [-0.41833209771758612, 0.062887697148893529, -0.016088048200215366, -0.050445141412105376, 0.28111333503256047, 0.34422748081701854], - [0.062887697148893529, -0.37785375633297413, 0.95384534852986791, -0.17966631075461084, -0.54690073408327788, 0.74422105092988078], - [-0.016088048200215366, 0.95384534852986791, -0.93407522326505077, 0.46787002711838876, 0.87574341703436942, -0.74308895418662135], - [-0.050445141412105376, -0.17966631075461084, 0.46787002711838876, 0.095602896288350628, -0.43330607692880641, -0.09673966777597498], - [0.28111333503256047, -0.54690073408327788, 0.87574341703436942, -0.43330607692880641, 0.08109348599752926, 1.8753235082158164], - [0.34422748081701854, 0.74422105092988078, -0.74308895418662135, -0.09673966777597498, 1.8753235082158164, -0.29575516753680142], + [-0.41833209771758612, 0.062887697148893529, -0.016088048200215366, + -0.050445141412105376, 0.28111333503256047, 0.34422748081701854], + [0.062887697148893529, -0.37785375633297413, 0.95384534852986791, -0.17966631075461084, + -0.54690073408327788, 0.74422105092988078], + [-0.016088048200215366, 0.95384534852986791, -0.93407522326505077, 0.46787002711838876, + 0.87574341703436942, -0.74308895418662135], + [-0.050445141412105376, -0.17966631075461084, 0.46787002711838876, 0.095602896288350628, + -0.43330607692880641, -0.09673966777597498], + [0.28111333503256047, -0.54690073408327788, 0.87574341703436942, -0.43330607692880641, + 0.08109348599752926, 1.8753235082158164], + [0.34422748081701854, 0.74422105092988078, -0.74308895418662135, -0.09673966777597498, + 1.8753235082158164, -0.29575516753680142], ]), - np.array([-1.369335961961399, 1.167500700090857, 0.21414477811997978, 2.5649100860678695, -1.9806821349849604, -1.5754238007215169]), + np.array([-1.369335961961399, 1.167500700090857, 0.21414477811997978, 2.5649100860678695, + -1.9806821349849604, -1.5754238007215169]), np.array([ - [-0.41956342254107903, 0.71674035950201276, -1.5770905037800305, 0.43181073722954405, -0.97223306449577329, -0.62828793519627313], + [-0.41956342254107903, 0.71674035950201276, -1.5770905037800305, 0.43181073722954405, + -0.97223306449577329, -0.62828793519627313], ]), np.array([-0.33651216328153544]), ) - guess = np.array([1.4532630642344062, 0.72265262030217081, 0.065281886690390367, 0.1839421913168558, 0.20535723808514028, 0.03429655200129661]) + guess = np.array( + [1.4532630642344062, 0.72265262030217081, 0.065281886690390367, 0.1839421913168558, + 0.20535723808514028, 0.03429655200129661]) with assert_raises(ConvergenceError): qps.find_local(guess, 1.0) @@ -732,21 +839,33 @@ def test_local_case5(): # slow convergence qps = QPSolver( np.array([ - [0.79079907934182903, 0.011808066578099186, -1.0980998280784657, -0.68897546615676319, -0.10555819609322133, -0.0094175398403186783], - [0.011808066578099186, -1.2570947595949307, -0.25176742901500682, 0.43452314945243631, -0.51301954393280846, -0.31209650217715923], - [-1.0980998280784657, -0.25176742901500682, 1.6781911482939742, -0.70553038981825766, 0.54040995405217274, 0.10204140147104501], - [-0.68897546615676319, 0.43452314945243631, -0.70553038981825766, 0.12542537761324651, 0.40866389380559537, 0.18486598005512384], - [-0.10555819609322133, -0.51301954393280846, 0.54040995405217274, 0.40866389380559537, -0.92415498156459686, 0.95932603388371385], - [-0.0094175398403186783, -0.31209650217715923, 0.10204140147104501, 0.18486598005512384, 0.95932603388371385, 0.23569100050886349], + [0.79079907934182903, 0.011808066578099186, -1.0980998280784657, -0.68897546615676319, + -0.10555819609322133, -0.0094175398403186783], + [0.011808066578099186, -1.2570947595949307, -0.25176742901500682, 0.43452314945243631, + -0.51301954393280846, -0.31209650217715923], + [-1.0980998280784657, -0.25176742901500682, 1.6781911482939742, -0.70553038981825766, + 0.54040995405217274, 0.10204140147104501], + [-0.68897546615676319, 0.43452314945243631, -0.70553038981825766, 0.12542537761324651, + 0.40866389380559537, 0.18486598005512384], + [-0.10555819609322133, -0.51301954393280846, 0.54040995405217274, 0.40866389380559537, + -0.92415498156459686, 0.95932603388371385], + [-0.0094175398403186783, -0.31209650217715923, 0.10204140147104501, 0.18486598005512384, + 0.95932603388371385, 0.23569100050886349], ]), - np.array([-0.46333818345367495, 0.21257179073800472, 0.62688340581190316, 2.2623297911779567, 0.50819379925975028, -0.6943526670820328]), + np.array( + [-0.46333818345367495, 0.21257179073800472, 0.62688340581190316, 2.2623297911779567, + 0.50819379925975028, -0.6943526670820328]), np.array([ - [-1.2657558954797123, -0.58071957697534726, 1.7286979572389156, 0.79253342400981885, -0.92638488825515308, 0.42858228723662439], - [-0.91371314768106349, -0.33354701632644296, 0.29090276846263258, 0.025115507692647247, -1.4686929816358802, 0.12857290086890488], + [-1.2657558954797123, -0.58071957697534726, 1.7286979572389156, 0.79253342400981885, + -0.92638488825515308, 0.42858228723662439], + [-0.91371314768106349, -0.33354701632644296, 0.29090276846263258, 0.025115507692647247, + -1.4686929816358802, 0.12857290086890488], ]), np.array([2.7532334775271505, -0.48328722498961846]), ) - guess = np.array([0.17076836616570085, 0.11727673011988589, 1.1886537627251008, 1.675822839903278, 0.48066423537800507, 0.23286211070422069]) + guess = np.array( + [0.17076836616570085, 0.11727673011988589, 1.1886537627251008, 1.675822839903278, + 0.48066423537800507, 0.23286211070422069]) cost, x = qps.find_local(guess, 1.0) qps.check_solution(x) @@ -756,18 +875,28 @@ def test_local_case6(): # the trust radius should not be too small... solved. qps = QPSolver( np.array([ - [3.049138030515488, -2.267339701331577, 1.6452178953594849, -1.1114025762214919, -1.4683391262333996, -2.8949938905463575], - [-2.267339701331577, 4.0639013616185977, -0.85512669477123537, 0.16765289716466125, 0.54721401159266114, 2.3075404741986758], - [1.6452178953594849, -0.85512669477123537, 4.4883269223774871, -5.4322963136631426, -2.5999282829704065, -4.2203649379170152], - [-1.1114025762214919, 0.16765289716466125, -5.4322963136631426, 11.291537524605506, 2.1266925840689384, -0.15939236254485001], - [-1.4683391262333996, 0.54721401159266114, -2.5999282829704065, 2.1266925840689384, 3.3080344785127451, 2.7570212908688965], - [-2.8949938905463575, 2.3075404741986758, -4.2203649379170152, -0.15939236254485001, 2.7570212908688965, 10.413810265914657], + [3.049138030515488, -2.267339701331577, 1.6452178953594849, -1.1114025762214919, + -1.4683391262333996, -2.8949938905463575], + [-2.267339701331577, 4.0639013616185977, -0.85512669477123537, 0.16765289716466125, + 0.54721401159266114, 2.3075404741986758], + [1.6452178953594849, -0.85512669477123537, 4.4883269223774871, -5.4322963136631426, + -2.5999282829704065, -4.2203649379170152], + [-1.1114025762214919, 0.16765289716466125, -5.4322963136631426, 11.291537524605506, + 2.1266925840689384, -0.15939236254485001], + [-1.4683391262333996, 0.54721401159266114, -2.5999282829704065, 2.1266925840689384, + 3.3080344785127451, 2.7570212908688965], + [-2.8949938905463575, 2.3075404741986758, -4.2203649379170152, -0.15939236254485001, + 2.7570212908688965, 10.413810265914657], ]), - np.array([2.1051178688693808, 0.77034513234528068, -0.066413262422188549, -1.161467599974259, -1.145284458324215, 1.9115896887435808]), - np.zeros((0,6)), + np.array( + [2.1051178688693808, 0.77034513234528068, -0.066413262422188549, -1.161467599974259, + -1.145284458324215, 1.9115896887435808]), + np.zeros((0, 6)), np.array([]), ) - guess = np.array([1.1218006104444309, 0.055845280862766397, 0.5678162968457573, 0.64202055422478232, 0.79817332647621919, 0.4492255175376717]) + guess = np.array( + [1.1218006104444309, 0.055845280862766397, 0.5678162968457573, 0.64202055422478232, + 0.79817332647621919, 0.4492255175376717]) cost, x = qps.find_local(guess, 10.0) qps.check_solution(x) @@ -776,22 +905,33 @@ def test_local_case7(): # local search seems to beat global one? qps = QPSolver( np.array([ - [-0.70579902180480114, -0.4327726229988561, 0.24228757421240607, 0.51418623618564996, 1.0632780675093283, -1.2852213384501507], - [-0.4327726229988561, -1.0084276903656637, 0.27249303018293985, 1.3760173009608194, 0.67570216250059412, 0.52160016838454792], - [0.24228757421240607, 0.27249303018293985, -0.125476715180112, -0.21437197456564006, 0.92014307041811716, 0.77230951003769155], - [0.51418623618564996, 1.3760173009608194, -0.21437197456564006, 0.11169101328138263, -0.58757562610076719, 0.54870518654715494], - [1.0632780675093283, 0.67570216250059412, 0.92014307041811716, -0.58757562610076719, 1.3791708665173121, -0.44585251609595422], - [-1.2852213384501507, 0.52160016838454792, 0.77230951003769155, 0.54870518654715494, -0.44585251609595422, -1.5140735372378349], + [-0.70579902180480114, -0.4327726229988561, 0.24228757421240607, 0.51418623618564996, + 1.0632780675093283, -1.2852213384501507], + [-0.4327726229988561, -1.0084276903656637, 0.27249303018293985, 1.3760173009608194, + 0.67570216250059412, 0.52160016838454792], + [0.24228757421240607, 0.27249303018293985, -0.125476715180112, -0.21437197456564006, + 0.92014307041811716, 0.77230951003769155], + [0.51418623618564996, 1.3760173009608194, -0.21437197456564006, 0.11169101328138263, + -0.58757562610076719, 0.54870518654715494], + [1.0632780675093283, 0.67570216250059412, 0.92014307041811716, -0.58757562610076719, + 1.3791708665173121, -0.44585251609595422], + [-1.2852213384501507, 0.52160016838454792, 0.77230951003769155, 0.54870518654715494, + -0.44585251609595422, -1.5140735372378349], ]), - np.array([-2.2854963174099305, -0.70412551963528325, -0.20443019124351977, -1.750838749153953, 0.92664898509539495, -1.3205815413488067]), + np.array( + [-2.2854963174099305, -0.70412551963528325, -0.20443019124351977, -1.750838749153953, + 0.92664898509539495, -1.3205815413488067]), np.array([ - [-1.4834034545177326, 0.61696635160928115, 1.2902252770986995, -0.96826004067118876, -1.865873147282245, 2.1304980879954329], + [-1.4834034545177326, 0.61696635160928115, 1.2902252770986995, -0.96826004067118876, + -1.865873147282245, 2.1304980879954329], ]), np.array([-1.8919484511303895]), ) cost0, x0 = qps.find_brute() qps.check_solution(x0) - guess = np.array([0.66874113007080915, 0.38269689497818871, 0.43551620861147256, 1.7616957362635119, 0.87395834895248681, 0.76907570723573859]) + guess = np.array( + [0.66874113007080915, 0.38269689497818871, 0.43551620861147256, 1.7616957362635119, + 0.87395834895248681, 0.76907570723573859]) cost1, x1 = qps.find_local(guess, 10.0) qps.check_solution(x1) assert cost0 - cost1 < qps.eps @@ -803,18 +943,40 @@ def test_local_case8(): # this also works. qps = QPSolver( np.array([ - [-0, -0.80335249114943963, -0.4810486491314947, -0.089239349136249757, -0.15436494944003698, -0.35230777891029419, -0.28555315037639062, -0.19177912108670014, -0.21585294726538962, -0.26476652332778627], - [-0.80335249114943963, -0, -0.040921462946748477, -0.38027796950886028, -0.2660150289073222, -0.098718781279508505, -0.13982199557364083, -0.22452799188664585, -0.19912180157206549, -0.15608175980106864], - [-0.4810486491314947, -0.040921462946748477, -0, -0.17321382433037158, -0.099670821942954291, -0.014896131374744215, -0.031613318232015075, -0.075875344294711766, -0.061676589860272912, -0.039439435052052829], - [-0.089239349136249757, -0.38027796950886028, -0.17321382433037158, -0, -0.010168990909519948, -0.092711943454681034, -0.059610136408235093, -0.02078877416074576, -0.029532988876905364, -0.049855163352130916], - [-0.15436494944003698, -0.2660150289073222, -0.099670821942954291, -0.010168990909519948, -0, -0.041590858093009331, -0.020646513109756626, -0.0020336615488893983, -0.0051892404310116547, -0.015133796800792965], - [-0.35230777891029419, -0.098718781279508505, -0.014896131374744215, -0.092711943454681034, -0.041590858093009331, -0, -0.0036392226383412662, -0.025764057353654835, -0.017631978012037308, -0.0066142161822391188], - [-0.28555315037639062, -0.13982199557364083, -0.031613318232015075, -0.059610136408235093, -0.020646513109756626, -0.0036392226383412662, -0, -0.010041713436219624, -0.0052548807969650113, -0.00044679245518608468], - [-0.19177912108670014, -0.22452799188664585, -0.075875344294711766, -0.02078877416074576, -0.0020336615488893983, -0.025764057353654835, -0.010041713436219624, -0, -0.00076870247709948103, -0.006272367939274659], - [-0.21585294726538962, -0.19912180157206549, -0.061676589860272912, -0.029532988876905364, -0.0051892404310116547, -0.017631978012037308, -0.0052548807969650113, -0.00076870247709948103, -0, -0.0026493882418954229], - [-0.26476652332778627, -0.15608175980106864, -0.039439435052052829, -0.049855163352130916, -0.015133796800792965, -0.0066142161822391188, -0.00044679245518608468, -0.006272367939274659, -0.0026493882418954229, -0], + [-0, -0.80335249114943963, -0.4810486491314947, -0.089239349136249757, + -0.15436494944003698, -0.35230777891029419, -0.28555315037639062, -0.19177912108670014, + -0.21585294726538962, -0.26476652332778627], + [-0.80335249114943963, -0, -0.040921462946748477, -0.38027796950886028, + -0.2660150289073222, -0.098718781279508505, -0.13982199557364083, -0.22452799188664585, + -0.19912180157206549, -0.15608175980106864], + [-0.4810486491314947, -0.040921462946748477, -0, -0.17321382433037158, + -0.099670821942954291, -0.014896131374744215, -0.031613318232015075, + -0.075875344294711766, -0.061676589860272912, -0.039439435052052829], + [-0.089239349136249757, -0.38027796950886028, -0.17321382433037158, -0, + -0.010168990909519948, -0.092711943454681034, -0.059610136408235093, + -0.02078877416074576, -0.029532988876905364, -0.049855163352130916], + [-0.15436494944003698, -0.2660150289073222, -0.099670821942954291, + -0.010168990909519948, -0, -0.041590858093009331, -0.020646513109756626, + -0.0020336615488893983, -0.0051892404310116547, -0.015133796800792965], + [-0.35230777891029419, -0.098718781279508505, -0.014896131374744215, + -0.092711943454681034, -0.041590858093009331, -0, -0.0036392226383412662, + -0.025764057353654835, -0.017631978012037308, -0.0066142161822391188], + [-0.28555315037639062, -0.13982199557364083, -0.031613318232015075, + -0.059610136408235093, -0.020646513109756626, -0.0036392226383412662, -0, + -0.010041713436219624, -0.0052548807969650113, -0.00044679245518608468], + [-0.19177912108670014, -0.22452799188664585, -0.075875344294711766, + -0.02078877416074576, -0.0020336615488893983, -0.025764057353654835, + -0.010041713436219624, -0, -0.00076870247709948103, -0.006272367939274659], + [-0.21585294726538962, -0.19912180157206549, -0.061676589860272912, + -0.029532988876905364, -0.0051892404310116547, -0.017631978012037308, + -0.0052548807969650113, -0.00076870247709948103, -0, -0.0026493882418954229], + [-0.26476652332778627, -0.15608175980106864, -0.039439435052052829, + -0.049855163352130916, -0.015133796800792965, -0.0066142161822391188, + -0.00044679245518608468, -0.006272367939274659, -0.0026493882418954229, -0], ]), - np.array([96.74931669030984, 97.210304973486174, 97.2575693294621, 97.462260931861223, 97.472700776115133, 97.518784700439411, 97.5224733817101, 97.535582111324103, 97.536350310192589, 97.539372850065561]), + np.array([96.74931669030984, 97.210304973486174, 97.2575693294621, 97.462260931861223, + 97.472700776115133, 97.518784700439411, 97.5224733817101, 97.535582111324103, + 97.536350310192589, 97.539372850065561]), np.array([ [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], ]), @@ -829,19 +991,43 @@ def test_local_case9(): # yet another hard case for convergence qps = QPSolver( np.array([ - [-0, -241.45520097844334, -81.025811808215622, -66.646386842604926, -90.984366008742555, -52.004805821364386, -70.425468607943742, -57.366620069719914, -55.1877804833006, -53.705769566242907, -56.391096977161254], - [-241.45520097844334, -0, -162.135903992414, -90.262677632643232, -70.276892079044018, -92.875705599218321, -72.28463739472835, -79.197990735263048, -82.586075985622472, -83.994287707438332, -78.796070159949906], - [-81.025811808215622, -162.135903992414, -0, -87.28951414271836, -48.242358569534147, -28.742953020160229, -49.101136904866735, -32.105000819299548, -40.850665783027893, -30.057423682337586, -33.735044181468567], - [-66.646386842604926, -90.262677632643232, -87.28951414271836, -0, -57.659521455279005, -24.69684419657078, -20.307639293415008, -21.441458536207293, -11.199312043260591, -19.974590362450328, -17.916540652877458], - [-90.984366008742555, -70.276892079044018, -48.242358569534147, -57.659521455279005, -0, -27.948974737346248, -13.712164271081321, -14.218021097302355, -30.862156391808355, -19.790364207820602, -17.217970999822271], - [-52.004805821364386, -92.875705599218321, -28.742953020160229, -24.69684419657078, -27.948974737346248, -0, -18.060952321337993, -4.025388940084369, -3.8482396016948144, -1.8363489948160066, -3.644582361475031], - [-70.425468607943742, -72.28463739472835, -49.101136904866735, -20.307639293415008, -13.712164271081321, -18.060952321337993, -0, -5.93835013335962, -10.593591943371536, -8.6487068864670533, -5.644151180036971], - [-57.366620069719914, -79.197990735263048, -32.105000819299548, -21.441458536207293, -14.218021097302355, -4.025388940084369, -5.93835013335962, -0, -4.241229635355424, -0.7847837230720387, -0.29680249521985047], - [-55.1877804833006, -82.586075985622472, -40.850665783027893, -11.199312043260591, -30.862156391808355, -3.8482396016948144, -10.593591943371536, -4.241229635355424, -0, -2.1191260827439748, -2.4949817756629358], - [-53.705769566242907, -83.994287707438332, -30.057423682337586, -19.974590362450328, -19.790364207820602, -1.8363489948160066, -8.6487068864670533, -0.7847837230720387, -2.1191260827439748, -0, -0.46855762948329982], - [-56.391096977161254, -78.796070159949906, -33.735044181468567, -17.916540652877458, -17.217970999822271, -3.644582361475031, -5.644151180036971, -0.29680249521985047, -2.4949817756629358, -0.46855762948329982, -0], + [-0, -241.45520097844334, -81.025811808215622, -66.646386842604926, -90.984366008742555, + -52.004805821364386, -70.425468607943742, -57.366620069719914, -55.1877804833006, + -53.705769566242907, -56.391096977161254], + [-241.45520097844334, -0, -162.135903992414, -90.262677632643232, -70.276892079044018, + -92.875705599218321, -72.28463739472835, -79.197990735263048, -82.586075985622472, + -83.994287707438332, -78.796070159949906], + [-81.025811808215622, -162.135903992414, -0, -87.28951414271836, -48.242358569534147, + -28.742953020160229, -49.101136904866735, -32.105000819299548, -40.850665783027893, + -30.057423682337586, -33.735044181468567], + [-66.646386842604926, -90.262677632643232, -87.28951414271836, -0, -57.659521455279005, + -24.69684419657078, -20.307639293415008, -21.441458536207293, -11.199312043260591, + -19.974590362450328, -17.916540652877458], + [-90.984366008742555, -70.276892079044018, -48.242358569534147, -57.659521455279005, -0, + -27.948974737346248, -13.712164271081321, -14.218021097302355, -30.862156391808355, + -19.790364207820602, -17.217970999822271], + [-52.004805821364386, -92.875705599218321, -28.742953020160229, -24.69684419657078, + -27.948974737346248, -0, -18.060952321337993, -4.025388940084369, -3.8482396016948144, + -1.8363489948160066, -3.644582361475031], + [-70.425468607943742, -72.28463739472835, -49.101136904866735, -20.307639293415008, + -13.712164271081321, -18.060952321337993, -0, -5.93835013335962, -10.593591943371536, + -8.6487068864670533, -5.644151180036971], + [-57.366620069719914, -79.197990735263048, -32.105000819299548, -21.441458536207293, + -14.218021097302355, -4.025388940084369, -5.93835013335962, -0, -4.241229635355424, + -0.7847837230720387, -0.29680249521985047], + [-55.1877804833006, -82.586075985622472, -40.850665783027893, -11.199312043260591, + -30.862156391808355, -3.8482396016948144, -10.593591943371536, -4.241229635355424, -0, + -2.1191260827439748, -2.4949817756629358], + [-53.705769566242907, -83.994287707438332, -30.057423682337586, -19.974590362450328, + -19.790364207820602, -1.8363489948160066, -8.6487068864670533, -0.7847837230720387, + -2.1191260827439748, -0, -0.46855762948329982], + [-56.391096977161254, -78.796070159949906, -33.735044181468567, -17.916540652877458, + -17.217970999822271, -3.644582361475031, -5.644151180036971, -0.29680249521985047, + -2.4949817756629358, -0.46855762948329982, -0], ]), - np.array([219.88503892388073, 206.47122847047703, 264.95062224390711, 282.07819206858949, 285.59235059522575, 303.26503791957691, 298.61126236074369, 307.14088474324785, 304.05986518939471, 307.14000745089061, 307.31174519920341]), + np.array([219.88503892388073, 206.47122847047703, 264.95062224390711, 282.07819206858949, + 285.59235059522575, 303.26503791957691, 298.61126236074369, 307.14088474324785, + 304.05986518939471, 307.14000745089061, 307.31174519920341]), np.array([ [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0], ]), @@ -857,18 +1043,28 @@ def test_local_case10(): # This turned out to be a trust radius that was too small. qps = QPSolver( np.array([ - [3.6420954087755524, -3.0520276574272556, 0.8600212081041877, -0.27002779932504622, -1.4149411955120152, -1.7656114953692559], - [-3.0520276574272556, 5.2980117879019053, -0.51863311310056681, -3.1078082667477691, 1.2965118123600228, 2.5974001710229837], - [0.8600212081041877, -0.51863311310056681, 2.2859933272503223, 0.38632978005515767, 0.24074547614702529, -2.5864818874051134], - [-0.27002779932504622, -3.1078082667477691, 0.38632978005515767, 4.5718542781367075, 0.31035781257497425, -2.2997148639134855], - [-1.4149411955120152, 1.2965118123600228, 0.24074547614702529, 0.31035781257497425, 3.592559354700823, -0.32310839292740823], - [-1.7656114953692559, 2.5974001710229837, -2.5864818874051134, -2.2997148639134855, -0.32310839292740823, 4.1635594436043855], + [3.6420954087755524, -3.0520276574272556, 0.8600212081041877, -0.27002779932504622, + -1.4149411955120152, -1.7656114953692559], + [-3.0520276574272556, 5.2980117879019053, -0.51863311310056681, -3.1078082667477691, + 1.2965118123600228, 2.5974001710229837], + [0.8600212081041877, -0.51863311310056681, 2.2859933272503223, 0.38632978005515767, + 0.24074547614702529, -2.5864818874051134], + [-0.27002779932504622, -3.1078082667477691, 0.38632978005515767, 4.5718542781367075, + 0.31035781257497425, -2.2997148639134855], + [-1.4149411955120152, 1.2965118123600228, 0.24074547614702529, 0.31035781257497425, + 3.592559354700823, -0.32310839292740823], + [-1.7656114953692559, 2.5974001710229837, -2.5864818874051134, -2.2997148639134855, + -0.32310839292740823, 4.1635594436043855], ]), - np.array([0.6827237762636329, 0.61262449970997035, -0.10526820438669089, -0.3423860463506388, -0.60158021270458772, -0.32020790415623457]), - np.zeros((0,6)), + np.array( + [0.6827237762636329, 0.61262449970997035, -0.10526820438669089, -0.3423860463506388, + -0.60158021270458772, -0.32020790415623457]), + np.zeros((0, 6)), np.array([]), ) - guess = np.array([0.4183733839886043, 1.685868545495764, 0.91029464030598595, 0.20609014773347709, 0.41772085105136075, 0.21627704946572152]) + guess = np.array( + [0.4183733839886043, 1.685868545495764, 0.91029464030598595, 0.20609014773347709, + 0.41772085105136075, 0.21627704946572152]) cost, x = qps.find_local(guess, 100.0) qps.check_solution(x) @@ -878,23 +1074,34 @@ def test_local_case11(): # current eps parameters. qps = QPSolver( np.array([ - [2.9180906444949501, -1.2533029767785395, 0.90478564555244811, 1.2787545043913675, 0.021113032381065766, -0.4116750982169069], - [-1.2533029767785395, 5.6632299906311987, 1.4008760670203191, -2.0390934015965536, -0.85045793596990116, 0.73218455692376505], - [0.90478564555244811, 1.4008760670203191, 5.2855381382892999, 2.677903087938867, 1.9188439544442164, -1.9709008178264937], - [1.2787545043913675, -2.0390934015965536, 2.677903087938867, 4.993172076325008, 1.4299089422151234, -0.74354828220123381], - [0.021113032381065766, -0.85045793596990116, 1.9188439544442164, 1.4299089422151234, 3.1450801244239486, -0.0036684167027846853], - [-0.4116750982169069, 0.73218455692376505, -1.9709008178264937, -0.74354828220123381, -0.0036684167027846853, 2.5434283210738671], + [2.9180906444949501, -1.2533029767785395, 0.90478564555244811, 1.2787545043913675, + 0.021113032381065766, -0.4116750982169069], + [-1.2533029767785395, 5.6632299906311987, 1.4008760670203191, -2.0390934015965536, + -0.85045793596990116, 0.73218455692376505], + [0.90478564555244811, 1.4008760670203191, 5.2855381382892999, 2.677903087938867, + 1.9188439544442164, -1.9709008178264937], + [1.2787545043913675, -2.0390934015965536, 2.677903087938867, 4.993172076325008, + 1.4299089422151234, -0.74354828220123381], + [0.021113032381065766, -0.85045793596990116, 1.9188439544442164, 1.4299089422151234, + 3.1450801244239486, -0.0036684167027846853], + [-0.4116750982169069, 0.73218455692376505, -1.9709008178264937, -0.74354828220123381, + -0.0036684167027846853, 2.5434283210738671], ]), - np.array([-0.29192463967063931, -1.8024178730096532, 0.88758128602009223, 2.3598192316830855, -1.1550614364716303, 0.31271490996557316]), + np.array( + [-0.29192463967063931, -1.8024178730096532, 0.88758128602009223, 2.3598192316830855, + -1.1550614364716303, 0.31271490996557316]), np.array([ - [-1.5989252225397905, 0.81244820675095797, -1.6307964553181504, -0.4456644455138748, 3.3167580671951278, -0.73081081535097092], + [-1.5989252225397905, 0.81244820675095797, -1.6307964553181504, -0.4456644455138748, + 3.3167580671951278, -0.73081081535097092], ]), np.array([1.7184957352780219]), eps=1e-6, ) cost0, x0 = qps.find_brute() qps.check_solution(x0) - guess = np.array([0.5527936565693109, 1.2295737022405098, 0.68854432659855258, 0.11250382959013361, 0.84458517701828661, 0.0340219228211837]) + guess = np.array( + [0.5527936565693109, 1.2295737022405098, 0.68854432659855258, 0.11250382959013361, + 0.84458517701828661, 0.0340219228211837]) cost, x1 = qps.find_local(guess, 100.0) qps.check_solution(x1) assert abs(x0 - x1).max() < qps.eps diff --git a/horton/meanfield/test/test_response.py b/horton/meanfield/test/test_response.py index 94f6a55a..33dcf99f 100644 --- a/horton/meanfield/test/test_response.py +++ b/horton/meanfield/test/test_response.py @@ -20,17 +20,22 @@ # -- + import numpy as np -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import +from horton.meanfield.test.common import get_obasis, load_orbs_alpha, load_orbs_beta +from horton.part import get_mulliken_operators +from .. import compute_noninteracting_response + +def check_response(fname): + operators = get_mulliken_operators(get_obasis(fname)) + orbs = [load_orbs_alpha(fname)] + try: + orbs.append(load_orbs_beta(fname)) + except IOError: + pass -def check_response(fn): - mol = IOData.from_file(fn) - operators = get_mulliken_operators(mol.obasis) - orbs = [mol.orb_alpha] - if hasattr(mol, 'orb_beta'): - orbs.append(mol.orb_beta) for orb in orbs: response = compute_noninteracting_response(orb, operators) assert np.isfinite(response).all() @@ -41,15 +46,15 @@ def check_response(fn): def test_response_water_sto3g(): - fn_fchk = context.get_fn('test/water_sto3g_hf_g03.fchk') - check_response(fn_fchk) + fname = 'water_sto3g_hf_g03_fchk' + check_response(fname) def test_response_h3_321g(): - fn_fchk = context.get_fn('test/h3_hfs_321g.fchk') - check_response(fn_fchk) - + fname = 'h3_hfs_321g_fchk' + check_response(fname) -def test_response_benzene(): - fn_fchk = context.get_fn('test/benzene-sto3g.fchk') - check_response(fn_fchk) +# TODO: Move to higher level test +# def test_response_benzene(): +# fname = 'benzene_sto3g_fchk' +# check_response(fname) diff --git a/horton/meanfield/test/test_rotate.py b/horton/meanfield/test/test_rotate.py index 32f79f05..47192c82 100644 --- a/horton/meanfield/test/test_rotate.py +++ b/horton/meanfield/test/test_rotate.py @@ -20,41 +20,49 @@ # -- + import numpy as np from nose.plugins.attrib import attr -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import +from common import load_kin, load_orbs_alpha, load_olp, get_obasis +from horton.grid import get_random_rotation # TODO: Remove random rotation? +from .. import Orbitals +from ..rotate import rotate_coeffs @attr('slow') def test_rotation_energy(): - mol = IOData.from_file(context.get_fn('test/he_spdf_orbital.fchk')) - kin = mol.obasis.compute_kinetic() - e0 = np.einsum('ab,ba', kin, mol.orb_alpha.to_dm()) + fname = 'he_spdf_orbital_fchk' + kin = load_kin(fname) + e0 = np.einsum('ab,ba', kin, load_orbs_alpha(fname).to_dm()) for irep in xrange(100): rmat = get_random_rotation() - mol.orb_alpha.coeffs[:] = rotate_coeffs(mol.orb_alpha.coeffs, mol.obasis, rmat) - e1 = np.einsum('ab,ba', kin, mol.orb_alpha.to_dm()) + orb_alpha = load_orbs_alpha(fname) + orb_alpha.coeffs[:] = rotate_coeffs(load_orbs_alpha(fname).coeffs, + get_obasis(fname).shell_types, rmat) + e1 = np.einsum('ab,ba', kin, load_orbs_alpha(fname).to_dm()) assert abs(e0 - e1) < 1e-10 def test_rotation_sp(): - mol = IOData.from_file(context.get_fn('test/he_sp_orbital.fchk')) + fname = 'he_sp_orbital_fchk' rmat = np.array([[0.0, -1.0, 0.0], [1.0, 0.0, 0.0], [0.0, 0.0, 1.0]]) - assert (mol.orb_alpha.coeffs[5:7, 3:5] == [[0, 1], [1, 0]]).all() - mol.orb_alpha.coeffs[:] = rotate_coeffs(mol.orb_alpha.coeffs, mol.obasis, rmat) - assert (mol.orb_alpha.coeffs[5:7, 3:5] == [[-1, 0], [0, 1]]).all() + assert (load_orbs_alpha(fname).coeffs[5:7, 3:5] == [[0, 1], [1, 0]]).all() + orb_alpha = load_orbs_alpha(fname) + orb_alpha.coeffs[:] = rotate_coeffs(load_orbs_alpha(fname).coeffs, + get_obasis(fname).shell_types, rmat) + assert (orb_alpha.coeffs[5:7, 3:5] == [[-1, 0], [0, 1]]).all() -def test_rotation_orhonormal(): - obasis = get_gobasis(np.zeros((1, 3)), np.array([10]), 'cc-pvtz', pure=False) - overlap = obasis.compute_overlap() +def test_rotation_orthonormal(): + # obasis = get_gobasis(np.zeros((1, 3)), np.array([10]), 'cc-pvtz', pure=False) + overlap = load_olp("rotation_orthonormal") def helper(begin, end): # prepare random orbitals in selected range norb = end - begin assert norb > 0 - orb = Orbitals(obasis.nbasis) + orb = Orbitals(overlap.shape[0]) orb.occupations[:norb] = 1 # fill with random orbitals and lowdin orthogonalize # orb.coeffs[begin:end,:norb] = np.random.normal(0, 1, (norb, norb)) @@ -69,7 +77,8 @@ def helper(begin, end): rmat = get_random_rotation() # rmat = np.array([[0, 1, 0], [0, 0, 1], [1, 0, 0]]) # rmat = get_rotation_matrix(np.array([0, 0, 1]), np.pi/4) - orb.coeffs[:, :norb] = rotate_coeffs(orb.coeffs[:, :norb], obasis, rmat) + shell_types = np.array([0, 0, 0, 0, 1, 1, 1, 2, 2, 3]) # From test system + orb.coeffs[:, :norb] = rotate_coeffs(orb.coeffs[:, :norb], shell_types, rmat) orb.check_normalization(overlap) helper(0, 4) # all s-type basis functions diff --git a/horton/meanfield/test/test_scf.py b/horton/meanfield/test/test_scf.py index 149c12e8..d71f7872 100644 --- a/horton/meanfield/test/test_scf.py +++ b/horton/meanfield/test/test_scf.py @@ -22,9 +22,10 @@ from nose.tools import assert_raises -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import from .common import check_hf_cs_hf, check_lih_os_hf, \ - check_vanadium_sc_hf + load_olp, load_kin, load_na, load_er +from .. import PlainSCFSolver, AufbauOccModel, Orbitals, RTwoIndexTerm, \ + RDirectTerm, RExchangeTerm, REffHam def test_hf_cs_hf(): @@ -35,9 +36,10 @@ def test_lih_os_hf(): check_lih_os_hf(PlainSCFSolver(threshold=1e-10)) -def test_vanadium_sc_hf(): - with assert_raises(NoSCFConvergence): - check_vanadium_sc_hf(PlainSCFSolver(threshold=1e-10, maxiter=10)) +# TODO: Move to higher level test +# def test_vanadium_sc_hf(): +# with assert_raises(NoSCFConvergence): +# check_vanadium_sc_hf(PlainSCFSolver(threshold=1e-10, maxiter=10)) def test_hf_cs_hf_level_shift(): @@ -48,23 +50,21 @@ def test_lih_os_hf_level_shift(): check_lih_os_hf(PlainSCFSolver(threshold=1e-10, level_shift=0.02)) -def test_vanadium_sc_hf_level_shift(): - with assert_raises(ValueError): - check_vanadium_sc_hf(PlainSCFSolver(threshold=1e-10, level_shift=-0.1)) +# TODO: Move to higher level test +# def test_vanadium_sc_hf_level_shift(): +# with assert_raises(ValueError): +# check_vanadium_sc_hf(PlainSCFSolver(threshold=1e-10, level_shift=-0.1)) def test_hf_water_321g_mistake(): # When one forgets to construct the initial guess, some error must be # raised... - fn_xyz = context.get_fn('test/water.xyz') - mol = IOData.from_file(fn_xyz) - obasis = get_gobasis(mol.coordinates, mol.numbers, '3-21G') + fname = 'water_3_21G_xyz' occ_model = AufbauOccModel(5) - orb_alpha = Orbitals(obasis.nbasis) - olp = obasis.compute_overlap() - kin = obasis.compute_kinetic() - na = obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = obasis.compute_electron_repulsion() + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) terms = [ RTwoIndexTerm(kin, 'kin'), RDirectTerm(er, 'hartree'), @@ -73,5 +73,6 @@ def test_hf_water_321g_mistake(): ] ham = REffHam(terms) scf_solver = PlainSCFSolver() + orb_alpha = Orbitals(olp.shape[0]) with assert_raises(AssertionError): scf_solver(ham, olp, occ_model, orb_alpha) diff --git a/horton/meanfield/test/test_scf_cdiis.py b/horton/meanfield/test/test_scf_cdiis.py index fc5b8f5c..7c33f8fc 100644 --- a/horton/meanfield/test/test_scf_cdiis.py +++ b/horton/meanfield/test/test_scf_cdiis.py @@ -20,14 +20,13 @@ # -- -from nose.tools import assert_raises - -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import from .common import check_hf_cs_hf, check_lih_os_hf, \ check_water_cs_hfs, check_n2_cs_hfs, check_h3_os_hfs, check_h3_os_pbe, \ - check_co_cs_pbe, check_vanadium_sc_hf, check_water_cs_m05, \ + check_co_cs_pbe, check_water_cs_m05, \ check_methyl_os_tpss +from .. import CDIISSCFSolver + def test_hf_cs_hf(): check_hf_cs_hf(CDIISSCFSolver(threshold=1e-7)) @@ -57,9 +56,10 @@ def test_h3_os_pbe(): check_h3_os_pbe(CDIISSCFSolver(threshold=1e-6)) -def test_vanadium_sc_hf(): - with assert_raises(NoSCFConvergence): - check_vanadium_sc_hf(CDIISSCFSolver(threshold=1e-10, maxiter=10)) +# TODO: Move to higher level test +# def test_vanadium_sc_hf(): +# with assert_raises(NoSCFConvergence): +# check_vanadium_sc_hf(CDIISSCFSolver(threshold=1e-10, maxiter=10)) def test_water_cs_m05(): diff --git a/horton/meanfield/test/test_scf_ediis.py b/horton/meanfield/test/test_scf_ediis.py index 96da0161..eb06b419 100644 --- a/horton/meanfield/test/test_scf_ediis.py +++ b/horton/meanfield/test/test_scf_ediis.py @@ -22,13 +22,14 @@ import numpy as np from nose.plugins.attrib import attr -from nose.tools import assert_raises -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import from .common import check_hf_cs_hf, check_lih_os_hf, \ check_water_cs_hfs, check_n2_cs_hfs, check_h3_os_hfs, check_h3_os_pbe, \ - check_co_cs_pbe, check_vanadium_sc_hf, check_water_cs_m05, \ - check_methyl_os_tpss + check_co_cs_pbe, check_water_cs_m05, \ + check_methyl_os_tpss, load_mdata, load_olp, load_kin, load_na, load_er, load_nn, \ + load_orbs_alpha, load_orbs_beta +from .. import EDIISSCFSolver, NoSCFConvergence, RTwoIndexTerm, RDirectTerm, RExchangeTerm, REffHam, \ + AufbauOccModel, UTwoIndexTerm, UDirectTerm, UExchangeTerm, UEffHam, guess_core_hamiltonian def test_hf_cs_hf(): @@ -63,9 +64,10 @@ def test_h3_os_pbe(): check_h3_os_pbe(EDIISSCFSolver(threshold=1e-6)) -def test_vanadium_sc_hf(): - with assert_raises(NoSCFConvergence): - check_vanadium_sc_hf(EDIISSCFSolver(threshold=1e-10, maxiter=10)) +# TODO: Move to higher level test +# def test_vanadium_sc_hf(): +# with assert_raises(NoSCFConvergence): +# check_vanadium_sc_hf(EDIISSCFSolver(threshold=1e-10, maxiter=10)) def test_water_cs_m05(): @@ -77,14 +79,14 @@ def test_methyl_os_tpss(): def test_interpol_hf_cs_hf(): - fn_fchk = context.get_fn('test/hf_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + fname = 'hf_sto3g_fchk' + mdata = load_mdata(fname) + + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) + external = {'nn': load_nn(fname)} terms = [ RTwoIndexTerm(kin, 'kin'), RDirectTerm(er, 'hartree'), @@ -94,19 +96,19 @@ def test_interpol_hf_cs_hf(): ham = REffHam(terms, external) occ_model = AufbauOccModel(5) - orbs = [mol.orb_alpha] + orbs = [load_orbs_alpha(fname)] check_interpol_hf(ham, orbs, olp, kin, na, occ_model) def test_interpol_lih_os_hf(): - fn_fchk = context.get_fn('test/li_h_3-21G_hf_g09.fchk') - mol = IOData.from_file(fn_fchk) - - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() - external = {'nn': compute_nucnuc(mol.coordinates, mol.pseudo_numbers)} + fname = 'li_h_3_21G_hf_g09_fchk' + mdata = load_mdata(fname) + + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) + external = {'nn': load_nn(fname)} terms = [ UTwoIndexTerm(kin, 'kin'), UDirectTerm(er, 'hartree'), @@ -116,7 +118,7 @@ def test_interpol_lih_os_hf(): ham = UEffHam(terms, external) occ_model = AufbauOccModel(2, 1) - orbs = [mol.orb_alpha, mol.orb_beta] + orbs = [load_orbs_alpha(fname), load_orbs_beta(fname)] check_interpol_hf(ham, orbs, olp, kin, na, occ_model) diff --git a/horton/meanfield/test/test_scf_ediis2.py b/horton/meanfield/test/test_scf_ediis2.py index 24730e9f..59bd1ff6 100644 --- a/horton/meanfield/test/test_scf_ediis2.py +++ b/horton/meanfield/test/test_scf_ediis2.py @@ -21,13 +21,12 @@ from nose.plugins.attrib import attr -from nose.tools import assert_raises -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import from .common import check_hf_cs_hf, check_lih_os_hf, \ check_water_cs_hfs, check_n2_cs_hfs, check_h3_os_hfs, check_h3_os_pbe, \ - check_co_cs_pbe, check_vanadium_sc_hf, check_water_cs_m05, \ + check_co_cs_pbe, check_water_cs_m05, \ check_methyl_os_tpss +from .. import EDIIS2SCFSolver def test_hf_cs_hf(): @@ -61,9 +60,10 @@ def test_h3_os_pbe(): check_h3_os_pbe(EDIIS2SCFSolver(threshold=1e-6)) -def test_vanadium_sc_hf(): - with assert_raises(NoSCFConvergence): - check_vanadium_sc_hf(EDIIS2SCFSolver(threshold=1e-10, maxiter=10)) +# TODO: move to higher level test. Integrals too big +# def test_vanadium_sc_hf(): +# with assert_raises(NoSCFConvergence): +# check_vanadium_sc_hf(EDIIS2SCFSolver(threshold=1e-10, maxiter=10)) def test_water_cs_m05(): diff --git a/horton/meanfield/test/test_scf_oda.py b/horton/meanfield/test/test_scf_oda.py index 2d7a6645..8c612744 100644 --- a/horton/meanfield/test/test_scf_oda.py +++ b/horton/meanfield/test/test_scf_oda.py @@ -24,11 +24,13 @@ from nose.plugins.attrib import attr from nose.tools import assert_raises -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import from .common import check_hf_cs_hf, check_lih_os_hf, \ check_water_cs_hfs, check_n2_cs_hfs, check_h3_os_hfs, check_h3_os_pbe, \ - check_co_cs_pbe, check_vanadium_sc_hf, check_water_cs_m05, \ - check_methyl_os_tpss + check_co_cs_pbe, check_water_cs_m05, \ + check_methyl_os_tpss, load_mdata, load_olp, load_kin, load_na, load_er, load_orbs_alpha, \ + load_orbs_beta +from .. import ODASCFSolver, AufbauSpinOccModel, UTwoIndexTerm, UDirectTerm, \ + UExchangeTerm, UEffHam, guess_core_hamiltonian, check_dm def test_hf_cs_hf(): @@ -63,9 +65,10 @@ def test_h3_os_pbe(): check_h3_os_pbe(ODASCFSolver(threshold=1e-6)) -def test_vanadium_sc_hf(): - with assert_raises(NoSCFConvergence): - check_vanadium_sc_hf(ODASCFSolver(threshold=1e-10, maxiter=10)) +# TODO: Move to higher level test +# def test_vanadium_sc_hf(): +# with assert_raises(NoSCFConvergence): +# check_vanadium_sc_hf(ODASCFSolver(threshold=1e-10, maxiter=10)) def test_water_cs_m05(): @@ -102,14 +105,14 @@ def test_find_min_quadratic(): def test_aufbau_spin(): - fn_fchk = context.get_fn('test/li_h_3-21G_hf_g09.fchk') - mol = IOData.from_file(fn_fchk) + fname = 'li_h_3_21G_hf_g09_fchk' + mdata = load_mdata(fname) occ_model = AufbauSpinOccModel(3) - olp = mol.obasis.compute_overlap() - kin = mol.obasis.compute_kinetic() - na = mol.obasis.compute_nuclear_attraction(mol.coordinates, mol.pseudo_numbers) - er = mol.obasis.compute_electron_repulsion() + olp = load_olp(fname) + kin = load_kin(fname) + na = load_na(fname) + er = load_er(fname) terms = [ UTwoIndexTerm(kin, 'kin'), UDirectTerm(er, 'hartree'), @@ -119,10 +122,12 @@ def test_aufbau_spin(): ham = UEffHam(terms) # Construct an initial state with unstable spin polarization - guess_core_hamiltonian(olp, kin + na, mol.orb_alpha, mol.orb_beta) - mol.orb_alpha.occupations[:3] = 1 - mol.orb_beta.occupations[:] = 0 - dms = [mol.orb_alpha.to_dm(), mol.orb_beta.to_dm()] + orb_alpha = load_orbs_alpha(fname) + orb_beta = load_orbs_beta(fname) + guess_core_hamiltonian(olp, kin + na, orb_alpha, orb_beta) + orb_alpha.occupations[:3] = 1 + orb_beta.occupations[:] = 0 + dms = [orb_alpha.to_dm(), orb_beta.to_dm()] # converge scf and check the spins scf_solver = ODASCFSolver(1e-6) # On some machines, 1e-8 does not work. diff --git a/horton/meanfield/test/test_utils.py b/horton/meanfield/test/test_utils.py index d4225b9a..de1712ae 100644 --- a/horton/meanfield/test/test_utils.py +++ b/horton/meanfield/test/test_utils.py @@ -19,55 +19,58 @@ # # -- -from nose.plugins.skip import SkipTest - import numpy as np +from nose.plugins.skip import SkipTest -from horton import * # pylint: disable=wildcard-import,unused-wildcard-import -from horton.meanfield.moments import get_ncart_cumul, get_cartesian_powers +from common import load_olp, load_orbs_alpha, load_orbs_beta +from ..moments import get_ncart_cumul, get_cartesian_powers +from ..utils import get_spin, get_homo_lumo, get_level_shift -def check_spin(fn_fchk, sz0, ssq0, eps): - path_fchk = context.get_fn('test/%s' % fn_fchk) - mol = IOData.from_file(path_fchk) - olp = mol.obasis.compute_overlap() - if hasattr(mol, 'orb_beta'): - sz, ssq = get_spin(mol.orb_alpha, mol.orb_beta, olp) +def check_spin(fname, sz0, ssq0, eps): + olp = load_olp(fname) + orb_alpha = load_orbs_alpha(fname) + try: + orb_beta = load_orbs_beta(fname) + sz, ssq = get_spin(orb_alpha, orb_beta, olp) assert abs(sz - sz0) < eps assert abs(ssq - ssq0) < eps - sz, ssq = get_spin(mol.orb_beta, mol.orb_alpha, olp) + sz, ssq = get_spin(orb_beta, orb_alpha, olp) assert abs(sz + sz0) < eps assert abs(ssq - ssq0) < eps - sz, ssq = get_spin(mol.orb_alpha, mol.orb_alpha, olp) + except IOError: + pass + sz, ssq = get_spin(orb_alpha, orb_alpha, olp) assert abs(sz) < eps assert abs(ssq) < eps def test_spin_li_h(): - check_spin('li_h_3-21G_hf_g09.fchk', 0.5, 0.75, 1e-7) + check_spin('li_h_3_21G_hf_g09_fchk', 0.5, 0.75, 1e-7) def test_spin_h3_hfs(): - check_spin('h3_hfs_321g.fchk', 0.5, 0.7530, 1e-4) + check_spin('h3_hfs_321g_fchk', 0.5, 0.7530, 1e-4) def test_spin_h3_pbe(): - check_spin('h3_pbe_321g.fchk', 0.5, 0.7530, 1e-4) + check_spin('h3_pbe_321g_fchk', 0.5, 0.7530, 1e-4) def test_spin_ch3_hf(): - check_spin('ch3_hf_sto3g.fchk', 0.5, 0.7632, 1e-4) + check_spin('ch3_hf_sto3g_fchk', 0.5, 0.7632, 1e-4) def test_spin_water_hf(): - check_spin('water_sto3g_hf_g03.fchk', 0.0, 0.0, 1e-8) + check_spin('water_sto3g_hf_g03_fchk', 0.0, 0.0, 1e-8) -def check_homo_lumo(fn_fchk, homo_energy0, lumo_energy0, eps=1e-8): - mol = IOData.from_file(context.get_fn('test/%s' % fn_fchk)) - orbs = [mol.orb_alpha] - if hasattr(mol, 'orb_beta'): - orbs.append(mol.orb_beta) +def check_homo_lumo(fname, homo_energy0, lumo_energy0, eps=1e-8): + orbs = [load_orbs_alpha(fname)] + try: + orbs.append(load_orbs_beta(fname)) + except IOError: + pass homo_energy, lumo_energy = get_homo_lumo(*orbs) assert abs(homo_energy - homo_energy0) < eps if lumo_energy0 is None: @@ -77,29 +80,28 @@ def check_homo_lumo(fn_fchk, homo_energy0, lumo_energy0, eps=1e-8): def test_homo_lumo_water_hf(): - check_homo_lumo('water_sto3g_hf_g03.fchk', -3.87671783E-01, 6.03082408E-01) + check_homo_lumo('water_sto3g_hf_g03_fchk', -3.87671783E-01, 6.03082408E-01) def test_homo_lumo_ch3_hf(): - check_homo_lumo('ch3_hf_sto3g.fchk', -3.63936540E-01, 3.28562907E-01) + check_homo_lumo('ch3_hf_sto3g_fchk', -3.63936540E-01, 3.28562907E-01) def test_homo_lumo_h(): - check_homo_lumo('atom_001_001_hf_sto3g.fchk', -4.66581850E-01, 3.08024094E-01) + check_homo_lumo('atom_001_001_hf_sto3g_fchk', -4.66581850E-01, 3.08024094E-01) def test_homo_lumo_he(): - check_homo_lumo('helium_hf_sto3g.fchk', -8.76035508E-01, None) + check_homo_lumo('helium_hf_sto3g_fchk', -8.76035508E-01, None) def test_level_shift(): - fn_fchk = context.get_fn('test/helium_hf_sto3g.fchk') - mol = IOData.from_file(fn_fchk) - overlap = mol.obasis.compute_overlap() - dm_alpha1 = mol.orb_alpha.to_dm() + fname = 'helium_hf_sto3g_fchk' + overlap = load_olp(fname) + dm_alpha1 = load_orbs_alpha(fname).to_dm() ls_alpha = get_level_shift(dm_alpha1, overlap) - mol.orb_alpha.from_fock(ls_alpha, overlap) - dm_alpha2 = mol.orb_alpha.to_dm() + load_orbs_alpha(fname).from_fock(ls_alpha, overlap) + dm_alpha2 = load_orbs_alpha(fname).to_dm() np.testing.assert_allclose(dm_alpha1, dm_alpha2) @@ -130,5 +132,6 @@ def test_get_cartesian_powers(): assert tmp.shape == (get_ncart_cumul(lmax), 3) assert (tmp == cartesian_powers[:len(tmp)]).all() + def test_rotate_cartesian_moments(): raise SkipTest("Need a rotate cartesian moment test")

bFMip7!wnBH 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