diff --git a/External/YAeHMOP/EHTTools.cpp b/External/YAeHMOP/EHTTools.cpp index fcaea63a7..e78fe5d59 100644 --- a/External/YAeHMOP/EHTTools.cpp +++ b/External/YAeHMOP/EHTTools.cpp @@ -1,5 +1,5 @@ // -// Copyright (C) 2018 Greg Landrum +// Copyright (C) 2018-2020 Greg Landrum // #include "EHTTools.h" #include @@ -21,7 +21,8 @@ const std::string _EHTChargeMatrix = "_EHTChargeMatrix"; // thread at a time. This mutex enforces that. std::mutex yaehmop_mutex; -bool runMol(const ROMol &mol, EHTResults &results, int confId) { +bool runMol(const ROMol &mol, EHTResults &results, int confId, + bool preserveHamiltonianAndOverlapMatrices) { std::lock_guard lock(yaehmop_mutex); // ----------------------------- @@ -126,6 +127,25 @@ bool runMol(const ROMol &mol, EHTResults &results, int confId) { memcpy(static_cast(results.reducedOverlapPopulationMatrix.get()), static_cast(properties.ROP_mat), sz * sizeof(double)); + results.orbitalEnergies = std::make_unique(num_orbs); + std::memcpy(static_cast(results.orbitalEnergies.get()), + static_cast(eigenset.val), num_orbs * sizeof(double)); + + if (preserveHamiltonianAndOverlapMatrices) { + // these need to be recalculated, because they were overwritten during the + // calculation + R_space_overlap_matrix(unit_cell, details, Overlap_R, num_orbs, + tot_overlaps, orbital_lookup_table, 0); + full_R_space_Hamiltonian(unit_cell, details, Overlap_R, Hamil_R, num_orbs, + orbital_lookup_table, 1); + sz = num_orbs * num_orbs * sizeof(double); + results.hamiltonianMatrix = std::make_unique(sz); + std::memcpy(static_cast(results.hamiltonianMatrix.get()), + static_cast(Hamil_R.mat), sz); + results.overlapMatrix = std::make_unique(sz); + std::memcpy(static_cast(results.overlapMatrix.get()), + static_cast(Overlap_R.mat), sz); + } cleanup_memory(); fclose(nullfile); diff --git a/External/YAeHMOP/EHTTools.h b/External/YAeHMOP/EHTTools.h index 01b9a0a02..5c4cf7c78 100644 --- a/External/YAeHMOP/EHTTools.h +++ b/External/YAeHMOP/EHTTools.h @@ -1,5 +1,5 @@ // -// Copyright (C) 2018 by Greg Landrum +// Copyright (C) 2018-2020 by Greg Landrum // #ifndef EHTTOOLS_H_20181226 #define EHTTOOLS_H_20181226 @@ -24,11 +24,14 @@ struct RDKIT_EHTLIB_EXPORT EHTResults { unsigned int numAtoms; unsigned int numOrbitals; unsigned int numElectrons; + std::unique_ptr overlapMatrix; + std::unique_ptr hamiltonianMatrix; std::unique_ptr overlapPopulationMatrix; std::unique_ptr reducedOverlapPopulationMatrix; std::unique_ptr chargeMatrix; std::unique_ptr reducedChargeMatrix; std::unique_ptr atomicCharges; + std::unique_ptr orbitalEnergies; double fermiEnergy; double totalEnergy; EHTResults() = default; @@ -38,7 +41,9 @@ struct RDKIT_EHTLIB_EXPORT EHTResults { //! Runs an extended Hueckel calculation for a molecule //! The results are returned in the EHTResults structure -RDKIT_EHTLIB_EXPORT bool runMol(const ROMol &mol, EHTResults &results, int confId = -1); +RDKIT_EHTLIB_EXPORT bool runMol( + const ROMol &mol, EHTResults &results, int confId = -1, + bool preserveHamiltonianAndOverlapMatrices = false); } // namespace EHTTools } // namespace RDKit diff --git a/External/YAeHMOP/Wrap/rdEHTTools.cpp b/External/YAeHMOP/Wrap/rdEHTTools.cpp index c90a99b31..40867bfbe 100644 --- a/External/YAeHMOP/Wrap/rdEHTTools.cpp +++ b/External/YAeHMOP/Wrap/rdEHTTools.cpp @@ -46,9 +46,10 @@ boost::python::object transfer_to_python(T *t) { return python::object(handle); } -PyObject *getMatrixProp(const double *mat, unsigned int dim1, unsigned int dim2) { +PyObject *getMatrixProp(const double *mat, unsigned int dim1, + unsigned int dim2) { if (!mat) { - throw_value_error("matrix has not be initialized"); + throw_value_error("matrix has not been initialized"); } npy_intp dims[2]; dims[0] = dim1; @@ -63,7 +64,7 @@ PyObject *getMatrixProp(const double *mat, unsigned int dim1, unsigned int dim2) } PyObject *getSymmMatrixProp(const double *mat, unsigned int sz) { if (!mat) { - throw_value_error("matrix has not be initialized"); + throw_value_error("matrix has not been initialized"); } npy_intp dims[1]; dims[0] = sz * (sz + 1) / 2; @@ -77,7 +78,7 @@ PyObject *getSymmMatrixProp(const double *mat, unsigned int sz) { } PyObject *getVectorProp(const double *mat, unsigned int sz) { if (!mat) { - throw_value_error("vector has not be initialized"); + throw_value_error("vector has not been initialized"); } npy_intp dims[1]; dims[0] = sz; @@ -90,7 +91,8 @@ PyObject *getVectorProp(const double *mat, unsigned int sz) { return PyArray_Return(res); } PyObject *getChargeMatrix(EHTTools::EHTResults &self) { - return getMatrixProp(self.reducedChargeMatrix.get(), self.numAtoms, self.numOrbitals); + return getMatrixProp(self.reducedChargeMatrix.get(), self.numAtoms, + self.numOrbitals); } PyObject *getOPMatrix(EHTTools::EHTResults &self) { @@ -101,11 +103,35 @@ PyObject *getOPMatrix(EHTTools::EHTResults &self) { PyObject *getCharges(EHTTools::EHTResults &self) { return getVectorProp(self.atomicCharges.get(), self.numAtoms); } -python::tuple runCalc(const RDKit::ROMol &mol, int confId) { + +PyObject *getOrbitalEnergies(EHTTools::EHTResults &self) { + return getVectorProp(self.orbitalEnergies.get(), self.numOrbitals); +} + +python::tuple runCalc(const RDKit::ROMol &mol, int confId, bool keepMatrices) { auto eRes = new RDKit::EHTTools::EHTResults(); - bool ok = RDKit::EHTTools::runMol(mol, *eRes, confId); + bool ok = RDKit::EHTTools::runMol(mol, *eRes, confId, keepMatrices); return python::make_tuple(ok, transfer_to_python(eRes)); } +PyObject *getHamiltonian(EHTTools::EHTResults &self) { + if (!self.hamiltonianMatrix) { + throw_value_error( + "Hamiltonian not available, set keepOverlapAndHamiltonianMatrices=True " + "to preserve it."); + } + return getMatrixProp(self.hamiltonianMatrix.get(), self.numOrbitals, + self.numOrbitals); +} +PyObject *getOverlapMatrix(EHTTools::EHTResults &self) { + if (!self.overlapMatrix) { + throw_value_error( + "Overlap matrix not available, set " + "keepOverlapAndHamiltonianMatrices=True " + "to preserve it."); + } + return getMatrixProp(self.overlapMatrix.get(), self.numOrbitals, + self.numOrbitals); +} } // end of anonymous namespace @@ -116,7 +142,8 @@ struct EHT_wrapper { python::class_( "EHTResults", docString.c_str(), python::no_init) .def_readonly("numOrbitals", &RDKit::EHTTools::EHTResults::numOrbitals) - .def_readonly("numElectrons", &RDKit::EHTTools::EHTResults::numElectrons) + .def_readonly("numElectrons", + &RDKit::EHTTools::EHTResults::numElectrons) .def_readonly("fermiEnergy", &RDKit::EHTTools::EHTResults::fermiEnergy) .def_readonly("totalEnergy", &RDKit::EHTTools::EHTResults::totalEnergy) .def("GetReducedChargeMatrix", getChargeMatrix, @@ -124,7 +151,13 @@ struct EHT_wrapper { .def("GetReducedOverlapPopulationMatrix", getOPMatrix, "returns the reduced overlap population matrix") .def("GetAtomicCharges", getCharges, - "returns the calculated atomic charges"); + "returns the calculated atomic charges") + .def("GetHamiltonian", getHamiltonian, + "returns the symmetric Hamiltonian matrix") + .def("GetOverlapMatrix", getOverlapMatrix, + "returns the symmetric overlap matrix") + .def("GetOrbitalEnergies", getOrbitalEnergies, + "returns the energies of the molecular orbitals as a vector"); docString = R"DOC(Runs an extended Hueckel calculation for a molecule. @@ -133,13 +166,16 @@ The molecule should have at least one conformation ARGUMENTS: - mol: molecule to use - confId: (optional) conformation to use + - keepOverlapAndHamiltonianMatrices: (optional) triggers storing the overlap + and hamiltonian matrices in the EHTResults object RETURNS: a 2-tuple: - a boolean indicating whether or not the calculation succeeded - an EHTResults object with the results )DOC"; python::def("RunMol", runCalc, - (python::arg("mol"), python::arg("confId") = -1), + (python::arg("mol"), python::arg("confId") = -1, + python::arg("keepOverlapAndHamiltonianMatrices") = false), docString.c_str()); } }; diff --git a/External/YAeHMOP/Wrap/testEHTTools.py b/External/YAeHMOP/Wrap/testEHTTools.py index 48e469b32..936d5157a 100755 --- a/External/YAeHMOP/Wrap/testEHTTools.py +++ b/External/YAeHMOP/Wrap/testEHTTools.py @@ -15,58 +15,83 @@ from rdkit.Chem import rdEHTTools class TestCase(unittest.TestCase): - def setUp(self): - pass + def setUp(self): + pass - def test1(self): - mol = Chem.MolFromMolFile(os.path.join( - RDConfig.RDBaseDir, "External", "YAeHMOP", "test_data", "benzene.mol"), removeHs=False) - self.assertEqual(mol.GetNumAtoms(), 12) - ok, res = rdEHTTools.RunMol(mol) - self.assertTrue(ok) - chgs = res.GetAtomicCharges() - self.assertAlmostEqual(chgs[1], -0.026, places=3) - self.assertAlmostEqual(chgs[7], 0.026, places=3) + def test1(self): + mol = Chem.MolFromMolFile( + os.path.join(RDConfig.RDBaseDir, "External", "YAeHMOP", "test_data", "benzene.mol"), + removeHs=False) + self.assertEqual(mol.GetNumAtoms(), 12) + ok, res = rdEHTTools.RunMol(mol) + self.assertTrue(ok) + chgs = res.GetAtomicCharges() + self.assertAlmostEqual(chgs[1], -0.026, places=3) + self.assertAlmostEqual(chgs[7], 0.026, places=3) - def test2(self): - mol = Chem.MolFromMolFile(os.path.join( - RDConfig.RDBaseDir, "External", "YAeHMOP", "test_data", "benzene.mol"), removeHs=False) - self.assertEqual(mol.GetNumAtoms(), 12) - ok, res = rdEHTTools.RunMol(mol) - self.assertTrue(ok) - self.assertEqual(res.numOrbitals,30) - self.assertEqual(res.numElectrons,30) - cm = res.GetReducedChargeMatrix() - self.assertEqual(cm.shape, (12, res.numOrbitals)) - for i in range(6): - self.assertAlmostEqual(cm[i][0], 0.161, places=3) - self.assertAlmostEqual(cm[i+6][0], 0.005, places=3) - self.assertAlmostEqual(cm[i][6], 0.1066, places=3) - self.assertAlmostEqual(cm[i+6][6], 0.060, places=3) - self.assertAlmostEqual(cm[i][9], 0.167, places=3) - self.assertAlmostEqual(cm[i+6][9], 0.000, places=3) + def test2(self): + mol = Chem.MolFromMolFile( + os.path.join(RDConfig.RDBaseDir, "External", "YAeHMOP", "test_data", "benzene.mol"), + removeHs=False) + self.assertEqual(mol.GetNumAtoms(), 12) + ok, res = rdEHTTools.RunMol(mol) + self.assertTrue(ok) + self.assertEqual(res.numOrbitals, 30) + self.assertEqual(res.numElectrons, 30) + cm = res.GetReducedChargeMatrix() + self.assertEqual(cm.shape, (12, res.numOrbitals)) + for i in range(6): + self.assertAlmostEqual(cm[i][0], 0.161, places=3) + self.assertAlmostEqual(cm[i + 6][0], 0.005, places=3) + self.assertAlmostEqual(cm[i][6], 0.1066, places=3) + self.assertAlmostEqual(cm[i + 6][6], 0.060, places=3) + self.assertAlmostEqual(cm[i][9], 0.167, places=3) + self.assertAlmostEqual(cm[i + 6][9], 0.000, places=3) - def test3(self): - mol = Chem.MolFromMolFile(os.path.join( - RDConfig.RDBaseDir, "External", "YAeHMOP", "test_data", "benzene.mol"), removeHs=False) - self.assertEqual(mol.GetNumAtoms(), 12) - ok, res = rdEHTTools.RunMol(mol) - self.assertTrue(ok) - opm = res.GetReducedOverlapPopulationMatrix() - self.assertEqual(opm.shape, (int(12 * 13 / 2),)) - self.assertAlmostEqual(opm[0], 2.7035, 3) - self.assertAlmostEqual(opm[2], 2.7035, 3) - self.assertAlmostEqual(opm[3], -0.0785, 3) + def test3(self): + mol = Chem.MolFromMolFile( + os.path.join(RDConfig.RDBaseDir, "External", "YAeHMOP", "test_data", "benzene.mol"), + removeHs=False) + self.assertEqual(mol.GetNumAtoms(), 12) + ok, res = rdEHTTools.RunMol(mol) + self.assertTrue(ok) + opm = res.GetReducedOverlapPopulationMatrix() + self.assertEqual(opm.shape, (int(12 * 13 / 2), )) + self.assertAlmostEqual(opm[0], 2.7035, 3) + self.assertAlmostEqual(opm[2], 2.7035, 3) + self.assertAlmostEqual(opm[3], -0.0785, 3) - def test1(self): - mol = Chem.MolFromMolFile(os.path.join( - RDConfig.RDBaseDir, "External", "YAeHMOP", "test_data", "benzene.mol"), removeHs=False) - self.assertEqual(mol.GetNumAtoms(), 12) - ok, res = rdEHTTools.RunMol(mol) - self.assertTrue(ok) - self.assertAlmostEqual(res.fermiEnergy, -12.804, places=3) - self.assertAlmostEqual(res.totalEnergy, -535.026, places=3) + def test4(self): + mol = Chem.MolFromMolFile( + os.path.join(RDConfig.RDBaseDir, "External", "YAeHMOP", "test_data", "benzene.mol"), + removeHs=False) + self.assertEqual(mol.GetNumAtoms(), 12) + ok, res = rdEHTTools.RunMol(mol) + self.assertTrue(ok) + self.assertAlmostEqual(res.fermiEnergy, -12.804, places=3) + self.assertAlmostEqual(res.totalEnergy, -535.026, places=3) + + def test5(self): + mol = Chem.MolFromMolFile( + os.path.join(RDConfig.RDBaseDir, "External", "YAeHMOP", "test_data", "benzene.mol"), + removeHs=False) + self.assertEqual(mol.GetNumAtoms(), 12) + ok, res = rdEHTTools.RunMol(mol, keepOverlapAndHamiltonianMatrices=True) + self.assertTrue(ok) + orbEs = res.GetOrbitalEnergies() + self.assertAlmostEqual(orbEs[0], -29.6302, places=3) + self.assertAlmostEqual(orbEs[14], -12.804, places=3) + self.assertAlmostEqual(orbEs[29], 67.0404, places=3) + + hamil = res.GetHamiltonian() + self.assertAlmostEqual(hamil[0, 0], -21.4000, places=3) + self.assertAlmostEqual(hamil[0, 4], -15.3224, places=3) + self.assertAlmostEqual(hamil[4, 0], 0.0000, places=3) + overlap = res.GetOverlapMatrix() + self.assertAlmostEqual(overlap[0, 0], 1.0000, places=3) + self.assertAlmostEqual(overlap[0, 4], 0.4091, places=3) + self.assertAlmostEqual(overlap[4, 0], 0.0000, places=3) if __name__ == '__main__': - unittest.main() + unittest.main() diff --git a/External/YAeHMOP/test1.cpp b/External/YAeHMOP/test1.cpp index 14904b8db..685dcb71e 100644 --- a/External/YAeHMOP/test1.cpp +++ b/External/YAeHMOP/test1.cpp @@ -37,7 +37,9 @@ TEST_CASE("benzene", "[basics]") { REQUIRE(mol); REQUIRE(mol->getNumAtoms() == 12); EHTTools::EHTResults res; - REQUIRE(EHTTools::runMol(*mol, res)); + int confId = -1; + bool preserveMatrices = true; + REQUIRE(EHTTools::runMol(*mol, res, confId, preserveMatrices)); CHECK(res.numElectrons == 30); CHECK(res.numOrbitals == 30); CHECK(res.numAtoms == 12); @@ -48,17 +50,40 @@ TEST_CASE("benzene", "[basics]") { CHECK(res.atomicCharges[i] == Approx(0.026).margin(0.001)); } for (unsigned int i = 0; i < 6; ++i) { - CHECK(res.reducedChargeMatrix[i*res.numOrbitals] == Approx(0.1615).margin(0.001)); - CHECK(res.reducedChargeMatrix[i*res.numOrbitals+6] == Approx(0.1066).margin(0.001)); - CHECK(res.reducedChargeMatrix[i*res.numOrbitals+9] == Approx(0.1667).margin(0.001)); + CHECK(res.reducedChargeMatrix[i * res.numOrbitals] == + Approx(0.1615).margin(0.001)); + CHECK(res.reducedChargeMatrix[i * res.numOrbitals + 6] == + Approx(0.1066).margin(0.001)); + CHECK(res.reducedChargeMatrix[i * res.numOrbitals + 9] == + Approx(0.1667).margin(0.001)); } for (unsigned int i = 6; i < 12; ++i) { - CHECK(res.reducedChargeMatrix[i*res.numOrbitals] == Approx(0.0052).margin(0.001)); - CHECK(res.reducedChargeMatrix[i*res.numOrbitals+6] == Approx(0.0600).margin(0.001)); - CHECK(res.reducedChargeMatrix[i*res.numOrbitals+9] == Approx(0.0000).margin(0.001)); + CHECK(res.reducedChargeMatrix[i * res.numOrbitals] == + Approx(0.0052).margin(0.001)); + CHECK(res.reducedChargeMatrix[i * res.numOrbitals + 6] == + Approx(0.0600).margin(0.001)); + CHECK(res.reducedChargeMatrix[i * res.numOrbitals + 9] == + Approx(0.0000).margin(0.001)); } + CHECK(res.orbitalEnergies[0] == Approx(-29.6302).margin(0.001)); + CHECK(res.orbitalEnergies[14] == Approx(-12.804).margin(0.001)); + CHECK(res.orbitalEnergies[29] == Approx(67.0404).margin(0.001)); + CHECK(res.totalEnergy == Approx(-535.026).margin(0.001)); CHECK(res.fermiEnergy == Approx(-12.804).margin(0.001)); + + CHECK(res.hamiltonianMatrix[0 * res.numOrbitals + 0] == + Approx(-21.4000).margin(0.001)); + CHECK(res.hamiltonianMatrix[0 * res.numOrbitals + 4] == + Approx(-15.3224).margin(0.001)); + CHECK(res.hamiltonianMatrix[4 * res.numOrbitals + 0] == + Approx(0.0000).margin(0.001)); + CHECK(res.overlapMatrix[0 * res.numOrbitals + 0] == + Approx(1.0000).margin(0.001)); + CHECK(res.overlapMatrix[0 * res.numOrbitals + 4] == + Approx(0.4091).margin(0.001)); + CHECK(res.overlapMatrix[4 * res.numOrbitals + 0] == + Approx(0.0000).margin(0.001)); } #endif #if 1 diff --git a/External/YAeHMOP/test_data/benzene.b b/External/YAeHMOP/test_data/benzene.b new file mode 100644 index 000000000..78c9b5888 --- /dev/null +++ b/External/YAeHMOP/test_data/benzene.b @@ -0,0 +1,32 @@ +Benzene + + +Molecular + + +Geometry +12 +C 1.236700 -0.644200 -0.035000 +C 1.175700 0.749200 -0.043100 +C -0.060900 1.393500 -0.008200 +C -1.236600 0.644200 0.035000 +C -1.175700 -0.749200 0.043200 +C 0.060900 -1.393500 0.008200 +H 2.200100 -1.146100 -0.062200 +H 2.091700 1.333000 -0.076800 +H -0.108400 2.479100 -0.014500 +H -2.200100 1.146100 0.062300 +H -2.091700 -1.333000 0.076800 +H 0.108400 -2.479100 0.014500 + + + +charge +0 + +Print +net charges +overlap +hamiltonian +end_print + diff --git a/External/YAeHMOP/test_data/benzene.b.out b/External/YAeHMOP/test_data/benzene.b.out new file mode 100644 index 000000000..6780fb852 --- /dev/null +++ b/External/YAeHMOP/test_data/benzene.b.out @@ -0,0 +1,707 @@ +#BIND_OUTPUT version: 3.0 + +#JOB_TITLE: Benzene + +; ********* Atoms within the unit cell: ********* +# NUMBER OF ATOMS: + 12 +# ATOMIC POSITIONS + 1 C 1.236700 -0.644200 -0.035000 + 2 C 1.175700 0.749200 -0.043100 + 3 C -0.060900 1.393500 -0.008200 + 4 C -1.236600 0.644200 0.035000 + 5 C -1.175700 -0.749200 0.043200 + 6 C 0.060900 -1.393500 0.008200 + 7 H 2.200100 -1.146100 -0.062200 + 8 H 2.091700 1.333000 -0.076800 + 9 H -0.108400 2.479100 -0.014500 + 10 H -2.200100 1.146100 0.062300 + 11 H -2.091700 -1.333000 0.076800 + 12 H 0.108400 -2.479100 0.014500 + + +# ******** Extended Hueckel Parameters ******** +; FORMAT quantum number orbital: Hii, , exponent1, , + +ATOM: C Atomic number: 6 # Valence Electrons: 4 + 2S: -21.4000 1.6250 + 2P: -11.4000 1.6250 +ATOM: H Atomic number: 1 # Valence Electrons: 1 + 1S: -13.6000 1.3000 + +; Number of orbitals +#Num_Orbitals: 30 +; --- Overlap Matrix S(R) --- + C( 1) 2s C( 1) 2px C( 1) 2py + C( 1) 2s 1.0000 0.0000 0.0000 + C( 1) 2px 0.0000 1.0000 0.0000 + C( 1) 2py 0.0000 0.0000 1.0000 + C( 1) 2pz 0.0000 0.0000 0.0000 + C( 2) 2s 0.0000 0.0000 0.0000 + C( 2) 2px 0.0000 0.0000 0.0000 + C( 2) 2py 0.0000 0.0000 0.0000 + C( 2) 2pz 0.0000 0.0000 0.0000 + C( 3) 2s 0.0000 0.0000 0.0000 + C( 3) 2px 0.0000 0.0000 0.0000 + C( 3) 2py 0.0000 0.0000 0.0000 + C( 3) 2pz 0.0000 0.0000 0.0000 + C( 4) 2s 0.0000 0.0000 0.0000 + C( 4) 2px 0.0000 0.0000 0.0000 + C( 4) 2py 0.0000 0.0000 0.0000 + C( 4) 2pz 0.0000 0.0000 0.0000 + C( 5) 2s 0.0000 0.0000 0.0000 + C( 5) 2px 0.0000 0.0000 0.0000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 1) 2pz C( 2) 2s C( 2) 2px + C( 1) 2s 0.0000 0.4091 0.0181 + C( 1) 2px 0.0000 -0.0181 0.2454 + C( 1) 2py 0.0000 0.4146 0.0252 + C( 1) 2pz 1.0000 -0.0024 -0.0001 + C( 2) 2s 0.0000 1.0000 0.0000 + C( 2) 2px 0.0000 0.0000 1.0000 + C( 2) 2py 0.0000 0.0000 0.0000 + C( 2) 2pz 0.0000 0.0000 0.0000 + C( 3) 2s 0.0000 0.0000 0.0000 + C( 3) 2px 0.0000 0.0000 0.0000 + C( 3) 2py 0.0000 0.0000 0.0000 + C( 3) 2pz 0.0000 0.0000 0.0000 + C( 4) 2s 0.0000 0.0000 0.0000 + C( 4) 2px 0.0000 0.0000 0.0000 + C( 4) 2py 0.0000 0.0000 0.0000 + C( 4) 2pz 0.0000 0.0000 0.0000 + C( 5) 2s 0.0000 0.0000 0.0000 + C( 5) 2px 0.0000 0.0000 0.0000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 2) 2py C( 2) 2pz C( 3) 2s + C( 1) 2s -0.4146 0.0024 0.0873 + C( 1) 2px 0.0252 -0.0001 -0.0611 + C( 1) 2py -0.3295 0.0033 0.0960 + C( 1) 2pz 0.0033 0.2465 0.0013 + C( 2) 2s 0.0000 0.0000 0.4091 + C( 2) 2px 0.0000 0.0000 -0.3679 + C( 2) 2py 1.0000 0.0000 0.1917 + C( 2) 2pz 0.0000 1.0000 0.0104 + C( 3) 2s 0.0000 0.0000 1.0000 + C( 3) 2px 0.0000 0.0000 0.0000 + C( 3) 2py 0.0000 0.0000 0.0000 + C( 3) 2pz 0.0000 0.0000 0.0000 + C( 4) 2s 0.0000 0.0000 0.0000 + C( 4) 2px 0.0000 0.0000 0.0000 + C( 4) 2py 0.0000 0.0000 0.0000 + C( 4) 2pz 0.0000 0.0000 0.0000 + C( 5) 2s 0.0000 0.0000 0.0000 + C( 5) 2px 0.0000 0.0000 0.0000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 3) 2px C( 3) 2py C( 3) 2pz + C( 1) 2s 0.0611 -0.0960 -0.0013 + C( 1) 2px -0.0164 0.0801 0.0011 + C( 1) 2py 0.0801 -0.0912 -0.0017 + C( 1) 2pz 0.0011 -0.0017 0.0346 + C( 2) 2s 0.3679 -0.1917 -0.0104 + C( 2) 2px -0.2071 0.2363 0.0128 + C( 2) 2py 0.2363 0.1233 -0.0067 + C( 2) 2pz 0.0128 -0.0067 0.2461 + C( 3) 2s 0.0000 0.0000 0.0000 + C( 3) 2px 1.0000 0.0000 0.0000 + C( 3) 2py 0.0000 1.0000 0.0000 + C( 3) 2pz 0.0000 0.0000 1.0000 + C( 4) 2s 0.0000 0.0000 0.0000 + C( 4) 2px 0.0000 0.0000 0.0000 + C( 4) 2py 0.0000 0.0000 0.0000 + C( 4) 2pz 0.0000 0.0000 0.0000 + C( 5) 2s 0.0000 0.0000 0.0000 + C( 5) 2px 0.0000 0.0000 0.0000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 4) 2s C( 4) 2px C( 4) 2py + C( 1) 2s 0.0441 0.0533 -0.0278 + C( 1) 2px -0.0533 -0.0594 0.0389 + C( 1) 2py 0.0278 0.0389 -0.0049 + C( 1) 2pz 0.0015 0.0021 -0.0011 + C( 2) 2s 0.0873 0.1136 0.0049 + C( 2) 2px -0.1136 -0.1417 -0.0077 + C( 2) 2py -0.0049 -0.0077 0.0343 + C( 2) 2pz 0.0037 0.0057 0.0002 + C( 3) 2s 0.4091 0.3498 0.2229 + C( 3) 2px -0.3498 -0.1636 -0.2613 + C( 3) 2py -0.2229 -0.2613 0.0799 + C( 3) 2pz 0.0129 0.0151 0.0096 + C( 4) 2s 1.0000 0.0000 0.0000 + C( 4) 2px 0.0000 1.0000 0.0000 + C( 4) 2py 0.0000 0.0000 1.0000 + C( 4) 2pz 0.0000 0.0000 0.0000 + C( 5) 2s 0.0000 0.0000 0.0000 + C( 5) 2px 0.0000 0.0000 0.0000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 4) 2pz C( 5) 2s C( 5) 2px + C( 1) 2s -0.0015 0.0873 0.1136 + C( 1) 2px 0.0021 -0.1136 -0.1416 + C( 1) 2py -0.0011 -0.0049 -0.0077 + C( 1) 2pz 0.0153 0.0037 0.0057 + C( 2) 2s -0.0037 0.0441 0.0507 + C( 2) 2px 0.0057 -0.0507 -0.0522 + C( 2) 2py 0.0002 -0.0323 -0.0431 + C( 2) 2pz 0.0344 0.0019 0.0025 + C( 3) 2s -0.0129 0.0873 0.0525 + C( 3) 2px 0.0151 -0.0525 -0.0030 + C( 3) 2py 0.0096 -0.1009 -0.0723 + C( 3) 2pz 0.2459 0.0024 0.0017 + C( 4) 2s 0.0000 0.4091 -0.0181 + C( 4) 2px 0.0000 0.0181 0.2454 + C( 4) 2py 0.0000 -0.4146 0.0252 + C( 4) 2pz 1.0000 0.0024 -0.0001 + C( 5) 2s 0.0000 1.0000 0.0000 + C( 5) 2px 0.0000 0.0000 1.0000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 5) 2py C( 5) 2pz C( 6) 2s + C( 1) 2s 0.0049 -0.0037 0.4091 + C( 1) 2px -0.0077 0.0057 -0.3498 + C( 1) 2py 0.0343 0.0002 -0.2229 + C( 1) 2pz 0.0002 0.0344 0.0129 + C( 2) 2s 0.0323 -0.0019 0.0873 + C( 2) 2px -0.0431 0.0025 -0.0525 + C( 2) 2py -0.0120 0.0016 -0.1009 + C( 2) 2pz 0.0016 0.0153 0.0024 + C( 3) 2s 0.1009 -0.0024 0.0441 + C( 3) 2px -0.0723 0.0017 0.0026 + C( 3) 2py -0.1045 0.0033 -0.0600 + C( 3) 2pz 0.0033 0.0345 0.0004 + C( 4) 2s 0.4146 -0.0024 0.0873 + C( 4) 2px 0.0252 -0.0001 0.0611 + C( 4) 2py -0.3295 0.0034 -0.0960 + C( 4) 2pz 0.0034 0.2465 -0.0013 + C( 5) 2s 0.0000 0.0000 0.4091 + C( 5) 2px 0.0000 0.0000 0.3679 + C( 5) 2py 1.0000 0.0000 -0.1917 + C( 5) 2pz 0.0000 1.0000 -0.0104 + C( 6) 2s 0.0000 0.0000 1.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 6) 2px C( 6) 2py C( 6) 2pz + C( 1) 2s 0.3498 0.2229 -0.0129 + C( 1) 2px -0.1636 -0.2613 0.0151 + C( 1) 2py -0.2613 0.0799 0.0096 + C( 1) 2pz 0.0151 0.0096 0.2459 + C( 2) 2s 0.0525 0.1009 -0.0024 + C( 2) 2px -0.0030 -0.0723 0.0017 + C( 2) 2py -0.0723 -0.1045 0.0033 + C( 2) 2pz 0.0017 0.0033 0.0345 + C( 3) 2s -0.0026 0.0600 -0.0004 + C( 3) 2px 0.0152 0.0041 0.0000 + C( 3) 2py 0.0041 -0.0795 0.0006 + C( 3) 2pz 0.0000 0.0006 0.0154 + C( 4) 2s -0.0611 0.0960 0.0013 + C( 4) 2px -0.0164 0.0801 0.0011 + C( 4) 2py 0.0801 -0.0912 -0.0017 + C( 4) 2pz 0.0011 -0.0017 0.0346 + C( 5) 2s -0.3679 0.1917 0.0104 + C( 5) 2px -0.2071 0.2363 0.0128 + C( 5) 2py 0.2363 0.1233 -0.0067 + C( 5) 2pz 0.0128 -0.0067 0.2461 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 1.0000 0.0000 0.0000 + C( 6) 2py 0.0000 1.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 1.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + H( 7) 1s H( 8) 1s H( 9) 1s + C( 1) 2s 0.4943 0.1039 0.0100 + C( 1) 2px 0.4367 0.0527 -0.0055 + C( 1) 2py -0.2275 0.1218 0.0128 + C( 1) 2pz -0.0123 -0.0026 0.0000 + C( 2) 2s 0.1039 0.4942 0.1039 + C( 2) 2px 0.0631 0.4152 -0.0791 + C( 2) 2py -0.1168 0.2646 0.1065 + C( 2) 2pz -0.0012 -0.0153 0.0018 + C( 3) 2s 0.0100 0.1039 0.4942 + C( 3) 2px 0.0093 0.1326 -0.0215 + C( 3) 2py -0.0104 -0.0037 0.4921 + C( 3) 2pz -0.0002 -0.0042 -0.0029 + C( 4) 2s 0.0038 0.0100 0.1039 + C( 4) 2px 0.0048 0.0137 0.0695 + C( 4) 2py -0.0025 0.0028 0.1130 + C( 4) 2pz -0.0001 -0.0005 -0.0030 + C( 5) 2s 0.0100 0.0038 0.0100 + C( 5) 2px 0.0139 0.0045 0.0044 + C( 5) 2py -0.0016 0.0029 0.0133 + C( 5) 2pz -0.0004 -0.0002 -0.0002 + C( 6) 2s 0.1039 0.0100 0.0038 + C( 6) 2px 0.1318 0.0083 -0.0002 + C( 6) 2py 0.0152 0.0112 0.0054 + C( 6) 2pz -0.0043 -0.0003 0.0000 + H( 7) 1s 1.0000 0.0439 0.0013 + H( 8) 1s 0.0000 1.0000 0.0439 + H( 9) 1s 0.0000 0.0000 1.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + H( 10) 1s H( 11) 1s H( 12) 1s + C( 1) 2s 0.0038 0.0100 0.1039 + C( 1) 2px -0.0048 -0.0137 -0.0695 + C( 1) 2py 0.0025 -0.0028 -0.1130 + C( 1) 2pz 0.0001 0.0005 0.0030 + C( 2) 2s 0.0100 0.0038 0.0100 + C( 2) 2px -0.0139 -0.0045 -0.0044 + C( 2) 2py 0.0016 -0.0029 -0.0133 + C( 2) 2pz 0.0004 0.0002 0.0002 + C( 3) 2s 0.1039 0.0100 0.0038 + C( 3) 2px -0.1318 -0.0083 0.0002 + C( 3) 2py -0.0152 -0.0112 -0.0054 + C( 3) 2pz 0.0043 0.0003 0.0000 + C( 4) 2s 0.4942 0.1039 0.0100 + C( 4) 2px -0.4367 -0.0527 0.0055 + C( 4) 2py 0.2275 -0.1218 -0.0128 + C( 4) 2pz 0.0124 0.0026 0.0000 + C( 5) 2s 0.1039 0.4942 0.1039 + C( 5) 2px -0.0631 -0.4152 0.0791 + C( 5) 2py 0.1168 -0.2646 -0.1065 + C( 5) 2pz 0.0012 0.0152 -0.0018 + C( 6) 2s 0.0100 0.1039 0.4942 + C( 6) 2px -0.0093 -0.1326 0.0215 + C( 6) 2py 0.0104 0.0037 -0.4921 + C( 6) 2pz 0.0002 0.0042 0.0029 + H( 7) 1s 0.0003 0.0013 0.0439 + H( 8) 1s 0.0013 0.0003 0.0013 + H( 9) 1s 0.0439 0.0013 0.0003 + H( 10) 1s 1.0000 0.0439 0.0013 + H( 11) 1s 0.0000 1.0000 0.0439 + H( 12) 1s 0.0000 0.0000 1.0000 + + +; --- Hamiltonian H(R) --- + C( 1) 2s C( 1) 2px C( 1) 2py + C( 1) 2s -21.4000 0.0000 0.0000 + C( 1) 2px 0.0000 -11.4000 0.0000 + C( 1) 2py 0.0000 0.0000 -11.4000 + C( 1) 2pz 0.0000 0.0000 0.0000 + C( 2) 2s 0.0000 0.0000 0.0000 + C( 2) 2px 0.0000 0.0000 0.0000 + C( 2) 2py 0.0000 0.0000 0.0000 + C( 2) 2pz 0.0000 0.0000 0.0000 + C( 3) 2s 0.0000 0.0000 0.0000 + C( 3) 2px 0.0000 0.0000 0.0000 + C( 3) 2py 0.0000 0.0000 0.0000 + C( 3) 2pz 0.0000 0.0000 0.0000 + C( 4) 2s 0.0000 0.0000 0.0000 + C( 4) 2px 0.0000 0.0000 0.0000 + C( 4) 2py 0.0000 0.0000 0.0000 + C( 4) 2pz 0.0000 0.0000 0.0000 + C( 5) 2s 0.0000 0.0000 0.0000 + C( 5) 2px 0.0000 0.0000 0.0000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 1) 2pz C( 2) 2s C( 2) 2px + C( 1) 2s 0.0000 -15.3224 -0.5466 + C( 1) 2px 0.0000 0.5466 -4.8954 + C( 1) 2py 0.0000 -12.4867 -0.5031 + C( 1) 2pz -11.4000 0.0726 0.0029 + C( 2) 2s 0.0000 -21.4000 0.0000 + C( 2) 2px 0.0000 0.0000 -11.4000 + C( 2) 2py 0.0000 0.0000 0.0000 + C( 2) 2pz 0.0000 0.0000 0.0000 + C( 3) 2s 0.0000 0.0000 0.0000 + C( 3) 2px 0.0000 0.0000 0.0000 + C( 3) 2py 0.0000 0.0000 0.0000 + C( 3) 2pz 0.0000 0.0000 0.0000 + C( 4) 2s 0.0000 0.0000 0.0000 + C( 4) 2px 0.0000 0.0000 0.0000 + C( 4) 2py 0.0000 0.0000 0.0000 + C( 4) 2pz 0.0000 0.0000 0.0000 + C( 5) 2s 0.0000 0.0000 0.0000 + C( 5) 2px 0.0000 0.0000 0.0000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 2) 2py C( 2) 2pz C( 3) 2s + C( 1) 2s 12.4867 -0.0726 -3.2707 + C( 1) 2px -0.5031 0.0029 1.8404 + C( 1) 2py 6.5739 -0.0668 -2.8901 + C( 1) 2pz -0.0668 -4.9171 -0.0380 + C( 2) 2s 0.0000 0.0000 -15.3212 + C( 2) 2px 0.0000 0.0000 11.0805 + C( 2) 2py -11.4000 0.0000 -5.7732 + C( 2) 2pz 0.0000 -11.4000 -0.3127 + C( 3) 2s 0.0000 0.0000 -21.4000 + C( 3) 2px 0.0000 0.0000 0.0000 + C( 3) 2py 0.0000 0.0000 0.0000 + C( 3) 2pz 0.0000 0.0000 0.0000 + C( 4) 2s 0.0000 0.0000 0.0000 + C( 4) 2px 0.0000 0.0000 0.0000 + C( 4) 2py 0.0000 0.0000 0.0000 + C( 4) 2pz 0.0000 0.0000 0.0000 + C( 5) 2s 0.0000 0.0000 0.0000 + C( 5) 2px 0.0000 0.0000 0.0000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 3) 2px C( 3) 2py C( 3) 2pz + C( 1) 2s -1.8404 2.8901 0.0380 + C( 1) 2px 0.3272 -1.5975 -0.0210 + C( 1) 2py -1.5975 1.8185 0.0330 + C( 1) 2pz -0.0210 0.0330 -0.6897 + C( 2) 2s -11.0805 5.7732 0.3127 + C( 2) 2px 4.1325 -4.7150 -0.2554 + C( 2) 2py -4.7150 -2.4603 0.1331 + C( 2) 2pz -0.2554 0.1331 -4.9097 + C( 3) 2s 0.0000 0.0000 0.0000 + C( 3) 2px -11.4000 0.0000 0.0000 + C( 3) 2py 0.0000 -11.4000 0.0000 + C( 3) 2pz 0.0000 0.0000 -11.4000 + C( 4) 2s 0.0000 0.0000 0.0000 + C( 4) 2px 0.0000 0.0000 0.0000 + C( 4) 2py 0.0000 0.0000 0.0000 + C( 4) 2pz 0.0000 0.0000 0.0000 + C( 5) 2s 0.0000 0.0000 0.0000 + C( 5) 2px 0.0000 0.0000 0.0000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 4) 2s C( 4) 2px C( 4) 2py + C( 1) 2s -1.6524 -1.6049 0.8360 + C( 1) 2px 1.6049 1.1843 -0.7769 + C( 1) 2py -0.8360 -0.7769 0.0976 + C( 1) 2pz -0.0454 -0.0422 0.0220 + C( 2) 2s -3.2711 -3.4220 -0.1489 + C( 2) 2px 3.4220 2.8262 0.1531 + C( 2) 2py 0.1489 0.1531 -0.6836 + C( 2) 2pz -0.1108 -0.1138 -0.0050 + C( 3) 2s -15.3208 -10.5344 -6.7138 + C( 3) 2px 10.5344 3.2629 5.2131 + C( 3) 2py 6.7138 5.2131 -1.5943 + C( 3) 2pz -0.3871 -0.3006 -0.1916 + C( 4) 2s -21.4000 0.0000 0.0000 + C( 4) 2px 0.0000 -11.4000 0.0000 + C( 4) 2py 0.0000 0.0000 -11.4000 + C( 4) 2pz 0.0000 0.0000 0.0000 + C( 5) 2s 0.0000 0.0000 0.0000 + C( 5) 2px 0.0000 0.0000 0.0000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 4) 2pz C( 5) 2s C( 5) 2px + C( 1) 2s 0.0454 -3.2705 -3.4214 + C( 1) 2px -0.0422 3.4214 2.8258 + C( 1) 2py 0.0220 0.1489 0.1530 + C( 1) 2pz -0.3059 -0.1109 -0.1140 + C( 2) 2s 0.1108 -1.6526 -1.5260 + C( 2) 2px -0.1138 1.5260 1.0411 + C( 2) 2py -0.0050 0.9725 0.8591 + C( 2) 2pz -0.6865 -0.0560 -0.0495 + C( 3) 2s 0.3871 -3.2708 -1.5812 + C( 3) 2px -0.3006 1.5812 0.0607 + C( 3) 2py -0.1916 3.0392 1.4432 + C( 3) 2pz -4.9057 -0.0729 -0.0346 + C( 4) 2s 0.0000 -15.3224 0.5457 + C( 4) 2px 0.0000 -0.5457 -4.8955 + C( 4) 2py 0.0000 12.4867 -0.5022 + C( 4) 2pz -11.4000 -0.0735 0.0030 + C( 5) 2s 0.0000 -21.4000 0.0000 + C( 5) 2px 0.0000 0.0000 -11.4000 + C( 5) 2py 0.0000 0.0000 0.0000 + C( 5) 2pz 0.0000 0.0000 0.0000 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 5) 2py C( 5) 2pz C( 6) 2s + C( 1) 2s -0.1489 0.1109 -15.3192 + C( 1) 2px 0.1530 -0.1140 10.5340 + C( 1) 2py -0.6834 -0.0050 6.7130 + C( 1) 2pz -0.0050 -0.6864 -0.3870 + C( 2) 2s -0.9725 0.0560 -3.2708 + C( 2) 2px 0.8591 -0.0495 1.5812 + C( 2) 2py 0.2403 -0.0315 3.0392 + C( 2) 2pz -0.0315 -0.3053 -0.0728 + C( 3) 2s -3.0392 0.0729 -1.6522 + C( 3) 2px 1.4432 -0.0346 -0.0790 + C( 3) 2py 2.0838 -0.0665 1.8082 + C( 3) 2pz -0.0665 -0.6886 -0.0106 + C( 4) 2s -12.4867 0.0735 -3.2710 + C( 4) 2px -0.5022 0.0030 -1.8405 + C( 4) 2py 6.5739 -0.0676 2.8904 + C( 4) 2pz -0.0676 -4.9171 0.0380 + C( 5) 2s 0.0000 0.0000 -15.3212 + C( 5) 2px 0.0000 0.0000 -11.0805 + C( 5) 2py -11.4000 0.0000 5.7732 + C( 5) 2pz 0.0000 -11.4000 0.3136 + C( 6) 2s 0.0000 0.0000 -21.4000 + C( 6) 2px 0.0000 0.0000 0.0000 + C( 6) 2py 0.0000 0.0000 0.0000 + C( 6) 2pz 0.0000 0.0000 0.0000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + C( 6) 2px C( 6) 2py C( 6) 2pz + C( 1) 2s -10.5340 -6.7130 0.3870 + C( 1) 2px 3.2636 5.2126 -0.3005 + C( 1) 2py 5.2126 -1.5942 -0.1915 + C( 1) 2pz -0.3005 -0.1915 -4.9050 + C( 2) 2s -1.5812 -3.0392 0.0728 + C( 2) 2px 0.0607 1.4433 -0.0346 + C( 2) 2py 1.4433 2.0839 -0.0664 + C( 2) 2pz -0.0346 -0.0664 -0.6886 + C( 3) 2s 0.0790 -1.8082 0.0106 + C( 3) 2px -0.3034 -0.0827 0.0005 + C( 3) 2py -0.0827 1.5864 -0.0111 + C( 3) 2pz 0.0005 -0.0111 -0.3070 + C( 4) 2s 1.8405 -2.8904 -0.0380 + C( 4) 2px 0.3271 -1.5976 -0.0210 + C( 4) 2py -1.5976 1.8188 0.0330 + C( 4) 2pz -0.0210 0.0330 -0.6898 + C( 5) 2s 11.0805 -5.7732 -0.3136 + C( 5) 2px 4.1325 -4.7150 -0.2561 + C( 5) 2py -4.7150 -2.4603 0.1334 + C( 5) 2pz -0.2561 0.1334 -4.9097 + C( 6) 2s 0.0000 0.0000 0.0000 + C( 6) 2px -11.4000 0.0000 0.0000 + C( 6) 2py 0.0000 -11.4000 0.0000 + C( 6) 2pz 0.0000 0.0000 -11.4000 + H( 7) 1s 0.0000 0.0000 0.0000 + H( 8) 1s 0.0000 0.0000 0.0000 + H( 9) 1s 0.0000 0.0000 0.0000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + H( 7) 1s H( 8) 1s H( 9) 1s + C( 1) 2s -15.5501 -3.2693 -0.3144 + C( 1) 2px -9.5955 -1.1571 0.1214 + C( 1) 2py 4.9990 -2.6759 -0.2819 + C( 1) 2pz 0.2709 0.0566 -0.0019 + C( 2) 2s -3.2695 -15.5482 -3.2691 + C( 2) 2px -1.3865 -9.1218 1.7377 + C( 2) 2py 2.5652 -5.8137 -2.3410 + C( 2) 2pz 0.0259 0.3356 -0.0387 + C( 3) 2s -0.3144 -3.2694 -15.5497 + C( 3) 2px -0.2041 -2.9133 0.4731 + C( 3) 2py 0.2293 0.0819 -10.8123 + C( 3) 2pz 0.0049 0.0928 0.0627 + C( 4) 2s -0.1186 -0.3144 -3.2692 + C( 4) 2px -0.1045 -0.3005 -1.5268 + C( 4) 2py 0.0544 -0.0622 -2.4832 + C( 4) 2pz 0.0030 0.0101 0.0670 + C( 5) 2s -0.3144 -0.1186 -0.3144 + C( 5) 2px -0.3047 -0.0994 -0.0964 + C( 5) 2py 0.0358 -0.0633 -0.2914 + C( 5) 2pz 0.0095 0.0036 0.0052 + C( 6) 2s -3.2690 -0.3144 -0.1186 + C( 6) 2px -2.8948 -0.1833 0.0051 + C( 6) 2py -0.3348 -0.2461 -0.1177 + C( 6) 2pz 0.0953 0.0077 0.0007 + H( 7) 1s -13.6000 -1.0442 -0.0301 + H( 8) 1s 0.0000 -13.6000 -1.0442 + H( 9) 1s 0.0000 0.0000 -13.6000 + H( 10) 1s 0.0000 0.0000 0.0000 + H( 11) 1s 0.0000 0.0000 0.0000 + H( 12) 1s 0.0000 0.0000 0.0000 + H( 10) 1s H( 11) 1s H( 12) 1s + C( 1) 2s -0.1186 -0.3144 -3.2690 + C( 1) 2px 0.1045 0.3004 1.5268 + C( 1) 2py -0.0544 0.0622 2.4829 + C( 1) 2pz -0.0030 -0.0101 -0.0670 + C( 2) 2s -0.3144 -0.1186 -0.3144 + C( 2) 2px 0.3047 0.0994 0.0964 + C( 2) 2py -0.0358 0.0633 0.2914 + C( 2) 2pz -0.0095 -0.0036 -0.0052 + C( 3) 2s -3.2690 -0.3144 -0.1186 + C( 3) 2px 2.8947 0.1833 -0.0051 + C( 3) 2py 0.3348 0.2461 0.1177 + C( 3) 2pz -0.0954 -0.0077 -0.0007 + C( 4) 2s -15.5484 -3.2691 -0.3144 + C( 4) 2px 9.5951 1.1572 -0.1214 + C( 4) 2py -4.9982 2.6756 0.2820 + C( 4) 2pz -0.2719 -0.0566 0.0019 + C( 5) 2s -3.2695 -15.5482 -3.2691 + C( 5) 2px 1.3865 9.1219 -1.7377 + C( 5) 2py -2.5652 5.8137 2.3410 + C( 5) 2pz -0.0259 -0.3346 0.0388 + C( 6) 2s -0.3144 -3.2694 -15.5497 + C( 6) 2px 0.2041 2.9133 -0.4731 + C( 6) 2py -0.2292 -0.0819 10.8123 + C( 6) 2pz -0.0049 -0.0928 -0.0627 + H( 7) 1s -0.0076 -0.0301 -1.0442 + H( 8) 1s -0.0301 -0.0076 -0.0301 + H( 9) 1s -1.0442 -0.0301 -0.0076 + H( 10) 1s -13.6000 -1.0442 -0.0301 + H( 11) 1s 0.0000 -13.6000 -1.0442 + H( 12) 1s 0.0000 0.0000 -13.6000 + + + +# ******* Energies (in eV) and Occupation Numbers ******* +1:---> -29.6302 [2.000 Electrons] +2:---> -25.9874 [2.000 Electrons] +3:---> -25.9871 [2.000 Electrons] +4:---> -20.3719 [2.000 Electrons] +5:---> -20.3713 [2.000 Electrons] +6:---> -17.4138 [2.000 Electrons] +7:---> -16.6094 [2.000 Electrons] +8:---> -14.9472 [2.000 Electrons] +9:---> -14.9471 [2.000 Electrons] +10:---> -14.5301 [2.000 Electrons] +11:---> -14.2938 [2.000 Electrons] +12:---> -13.4081 [2.000 Electrons] +13:---> -13.4076 [2.000 Electrons] +14:---> -12.8042 [2.000 Electrons] +15:---> -12.8038 [2.000 Electrons] +16:---> -8.30729 [0.000 Electrons] +17:---> -8.30635 [0.000 Electrons] +18:---> -4.7058 [0.000 Electrons] +19:---> 3.67608 [0.000 Electrons] +20:---> 3.68046 [0.000 Electrons] +21:---> 10.4728 [0.000 Electrons] +22:---> 10.4983 [0.000 Electrons] +23:---> 10.4994 [0.000 Electrons] +24:---> 14.0807 [0.000 Electrons] +25:---> 15.3177 [0.000 Electrons] +26:---> 32.5886 [0.000 Electrons] +27:---> 32.5998 [0.000 Electrons] +28:---> 47.5602 [0.000 Electrons] +29:---> 47.5706 [0.000 Electrons] +30:---> 67.0404 [0.000 Electrons] +Total_Energy: -535.026 + +; Net Atomic Charges for 30.000 electrons: +1 C: -0.026034 +2 C: -0.025962 +3 C: -0.026026 +4 C: -0.025974 +5 C: -0.025981 +6 C: -0.026033 +7 H: 0.026026 +8 H: 0.025975 +9 H: 0.026021 +10 H: 0.025984 +11 H: 0.025984 +12 H: 0.026020 +; Total Charge is: 0.000000