diff --git a/dfttools/output.py b/dfttools/output.py index 1742750..39a3a58 100644 --- a/dfttools/output.py +++ b/dfttools/output.py @@ -969,8 +969,6 @@ def _get_ks_states(self, ev_start, eigenvalues, scf_iter, n_ks_states): eigenvalues["occupation"][scf_iter][i] = float(values[1]) eigenvalues["eigenvalue_eV"][scf_iter][i] = float(values[3]) - # return eigenvalues - def get_all_ks_eigenvalues(self) -> Union[dict, Tuple[dict, dict]]: """ Get all Kohn-Sham eigenvalues from a calculation. @@ -988,8 +986,10 @@ def get_all_ks_eigenvalues(self) -> Union[dict, Tuple[dict, dict]]: Raises ------ + ItemNotFoundError + the 'output_level full' keyword was not found in the calculation ValueError - the calculation was not spin polarised + could not determine if the calculation was spin polarised """ # Check if the calculation was spin polarised @@ -1019,9 +1019,9 @@ def get_all_ks_eigenvalues(self) -> Union[dict, Tuple[dict, dict]]: n = 0 # Count the current SCF iteration for i, line in enumerate(self.lines): if target_line in line: - n += 1 # Get the KS states from this line until the next empty line self._get_ks_states(i + 1, eigenvalues, n, n_ks_states) + n += 1 return eigenvalues @@ -1083,6 +1083,8 @@ def get_final_ks_eigenvalues(self) -> Union[dict, Tuple[dict, dict]]: ------ ValueError the calculation was not spin polarised + ValueError + the final KS states were not found in aims.out file """ # Check if the calculation was spin polarised @@ -1095,11 +1097,15 @@ def get_final_ks_eigenvalues(self) -> Union[dict, Tuple[dict, dict]]: target_line = "State Occupation Eigenvalue [Ha] Eigenvalue [eV]" # Iterate backwards from end of aims.out to find the final KS eigenvalues + final_ev_start = None for i, line in enumerate(reversed(self.lines)): if target_line == line.strip(): final_ev_start = -i break + if final_ev_start is None: + raise ValueError("Final KS states not found in aims.out file.") + if not spin_polarised: eigenvalues = { "state": np.zeros((1, n_ks_states), dtype=int), @@ -1143,6 +1149,11 @@ def get_pert_soc_ks_eigenvalues(self) -> dict: ------- dict The perturbative SOC kohn-sham eigenvalues + + Raises + ------ + ValueError + the final KS states were not found in aims.out file """ # Get the number of KS states @@ -1153,15 +1164,17 @@ def get_pert_soc_ks_eigenvalues(self) -> dict: " Eigenvalue [eV] Level Spacing [eV]" ) - print(target_line) - # Iterate backwards from end of aims.out to find the perturbative SOC # eigenvalues + final_ev_start = None for i, line in enumerate(reversed(self.lines)): if target_line == line.strip(): final_ev_start = -i break + if final_ev_start is None: + raise ValueError("Final KS states not found in aims.out file.") + eigenvalues = { "state": np.zeros(n_ks_states, dtype=int), "occupation": np.zeros(n_ks_states, dtype=float), diff --git a/tests/fixtures/default_aims_calcs/1/control.in b/tests/fixtures/default_aims_calcs/1/control.in index b96e17e..1c3266b 100644 --- a/tests/fixtures/default_aims_calcs/1/control.in +++ b/tests/fixtures/default_aims_calcs/1/control.in @@ -1,4 +1,5 @@ xc pbe +output_level full ################################################################################ # # FHI-aims code project diff --git a/tests/fixtures/default_aims_calcs/2/control.in b/tests/fixtures/default_aims_calcs/2/control.in index 2273b45..0695f35 100644 --- a/tests/fixtures/default_aims_calcs/2/control.in +++ b/tests/fixtures/default_aims_calcs/2/control.in @@ -1,6 +1,7 @@ xc pbe spin collinear default_initial_moment 1 +output_level full ################################################################################ # # FHI-aims code project diff --git a/tests/fixtures/default_aims_calcs/3/control.in b/tests/fixtures/default_aims_calcs/3/control.in index c74ad4a..67eeabc 100644 --- a/tests/fixtures/default_aims_calcs/3/control.in +++ b/tests/fixtures/default_aims_calcs/3/control.in @@ -2,6 +2,7 @@ xc pbe spin collinear default_initial_moment 1 include_spin_orbit non_self_consistent +output_level full ################################################################################ # # FHI-aims code project diff --git a/tests/test_output.py b/tests/test_output.py index ffd1b80..3b2e10a 100644 --- a/tests/test_output.py +++ b/tests/test_output.py @@ -35,9 +35,6 @@ def aims_out(self, request, run_aims): with open(f"{cwd}/test_references.yaml", "r") as references: self.ref_data = yaml.safe_load(references) - # Set class attribute to check in xfail tests - # self._run_aims = False if run_aims is False else True - @property def _aims_fixture_no(self) -> int: return int(self.ao.aims_out_path.split("/")[-2]) @@ -161,49 +158,8 @@ def test_get_change_of_forces(self): with pytest.raises(ValueError): self.ao.get_change_of_forces() - def get_change_of_sum_of_eigenvalues(self): - pass - - # TODO: currently a palceholder - # def test_all_output_functions(self_9):, # aims = aims_out_9 - - # aims.get_geometry() - # aims.get_parameters() - # aims.check_exit_normal() - # aims.get_change_of_total_energy() - # # aims.get_change_of_forces() - # aims.get_change_of_sum_of_eigenvalues() - # # aims.get_maximum_force() - # aims.get_final_energy() - # aims.get_energy_corrected() - # aims.get_total_energy_T0() - # aims.get_energy_uncorrected() - # # aims.get_energy_without_vdw() - # aims.get_HOMO_energy() - # aims.get_LUMO_energy() - # # aims.get_vdw_energy() - # aims.get_exchange_correlation_energy() - # aims.get_electrostatic_energy() - # aims.get_kinetic_energy() - # aims.get_sum_of_eigenvalues() - # aims.get_cx_potential_correction() - # aims.get_free_atom_electrostatic_energy() - # aims.get_entropy_correction() - # aims.get_hartree_energy_correction() - # # aims.get_ionic_embedding_energy() - # # aims.get_density_embedding_energy() - # # aims.get_nonlocal_embedding_energy() - # # aims.get_external_embedding_energy() - # # aims.get_forces() - # aims.check_spin_polarised() - # aims.get_conv_params() - # aims.get_n_relaxation_steps() - # aims.get_n_scf_iters() - # aims.get_i_scf_conv_acc() - # aims.get_n_initial_ks_states() - # # aims.get_all_ks_eigenvalues()# -> functionality does not work - # aims.get_final_ks_eigenvalues() - # # aims.get_pert_soc_ks_eigenvalues()# -> not great but may work if that output is there + # TODO + # def get_change_of_sum_of_eigenvalues(self): def test_check_spin_polarised(self): if self._aims_fixture_no in [2, 3]: @@ -268,9 +224,30 @@ def compare_n_initial_ks_states(): with pytest.warns(UserWarning): compare_n_initial_ks_states() - # TODO Setup YAML files for storing the expected values for the following tests - # def test_get_all_ks_eigenvalues(self): + def test_get_all_ks_eigenvalues(self): + if self._aims_fixture_no == 1: + assert self.ao.get_all_ks_eigenvalues() == self.ref_data["eigenvalues"] + elif self._aims_fixture_no == 2: + spin_up, spin_down = self.ao.get_all_ks_eigenvalues() + assert spin_up == self.ref_data["su_eigenvalues"] + assert spin_down == self.ref_data["sd_eigenvalues"] + else: + with pytest.raises(ValueError): + self.ao.get_all_ks_eigenvalues() + # TODO # def get_final_ks_eigenvalues_test(self): - # def get_pert_soc_ks_eigenvalues_test(self): + def test_get_pert_soc_ks_eigenvalues(self): + if self._aims_fixture_no == 3: + assert ( + self.ao.get_pert_soc_ks_eigenvalues() + == self.ref_data["pert_soc_eigenvalues"] + ) + else: + with pytest.raises(ValueError): + self.ao.get_pert_soc_ks_eigenvalues() + + +# TODO +# class TestELSIOutput: diff --git a/tests/test_references.yaml b/tests/test_references.yaml index 5e54960..2f31d67 100644 --- a/tests/test_references.yaml +++ b/tests/test_references.yaml @@ -31,6 +31,66 @@ all_energies: conv_params: - {charge_density: 0.0, sum_eigenvalues: 0.0, total_energy: 0.0, total_force: 0.0} - {charge_density: 1.0e-10, sum_eigenvalues: 1.0e-06, total_energy: 1.0e-12, total_force: 1.0e-08} +eigenvalues: + eigenvalue_eV: + - [-517.86899, -29.76884, -16.97123, -13.81016, -11.83018, -1.35898, 0.86956, 5.87767, + 6.78809, 8.24353, 13.76122] + - [-516.80985, -29.25115, -16.5258, -13.28054, -11.27807, -1.23398, 1.0433, 6.10722, + 7.0287, 8.40693, 13.91174] + - [-510.781, -26.29177, -14.04123, -10.29043, -8.16828, -0.4706, 2.11215, 7.52221, + 8.53643, 9.3769, 14.83419] + - [-514.79495, -27.52028, -15.02285, -11.51816, -9.45562, -0.69193, 1.73433, 6.94484, + 7.86959, 9.13777, 14.63923] + - [-511.97296, -25.69845, -13.46772, -9.69448, -7.57379, -0.12274, 2.49243, 7.8492, + 8.81138, 9.84746, 15.38738] + - [-511.90237, -25.65042, -13.42673, -9.65082, -7.5282, -0.10606, 2.51358, 7.87239, + 8.8366, 9.8654, 15.41017] + - [-511.52712, -25.36531, -13.18178, -9.38784, -7.25574, -0.00172, 2.64489, 8.01435, + 8.98817, 9.98027, 15.55281] + - [-511.28761, -25.19278, -13.03354, -9.22252, -7.08779, 0.06091, 2.72469, 8.10566, + 9.0845, 10.05204, 15.63608] + - [-511.25438, -25.1656, -13.01025, -9.19703, -7.0615, 0.07136, 2.73763, 8.12002, + 9.09975, 10.06376, 15.65003] + - [-511.26147, -25.17353, -13.01731, -9.20432, -7.06878, 0.068, 2.73354, 8.11585, + 9.09547, 10.06007, 15.64531] + - [-511.26286, -25.17444, -13.01808, -9.20523, -7.0697, 0.06768, 2.73313, 8.11534, + 9.09494, 10.05969, 15.64492] + - [-511.26229, -25.17407, -13.01776, -9.20486, -7.06933, 0.06781, 2.7333, 8.11554, + 9.09515, 10.05984, 15.64509] + - [-511.26229, -25.17408, -13.01777, -9.20487, -7.06934, 0.06781, 2.73329, 8.11554, + 9.09515, 10.05984, 15.64508] + - [-511.26229, -25.17408, -13.01777, -9.20487, -7.06934, 0.06781, 2.73329, 8.11554, + 9.09515, 10.05984, 15.64508] + occupation: + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [2.0, 2.0, 2.0, 2.0, 2.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + state: + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] energy_diffs: - [0.4663, 1.408, -0.4107, 0.5095, 0.004077, 0.01574, 0.003194, 2.061e-05, 7.458e-06, -3.721e-07, 3.822e-07, 1.599e-08] @@ -62,6 +122,162 @@ energy_diffs: 0.01499, -0.002865, 0.0002206, 7.186e-05, 6.018e-06] - [-2.158, -0.07087, 0.04834, 0.1184, -0.003943, 0.0103, -0.001032, 0.004801, 0.002519, 0.001141, 7.119e-06] +pert_soc_eigenvalues: + eigenvalue_eV: [-511.262291, -511.262291, -25.174078, -25.174077, -13.017798, -13.017797, + -9.204901, -9.2049, -7.069313, -7.069308, 0.067805, 0.067807, 2.733286, 2.733288, + 8.11545, 8.115453, 9.095212, 9.095215, 10.059874, 10.059877, 15.645085, 15.645085, + 21.072085, 21.072085, 24.079014, 24.079016, 26.219576, 26.219577, 30.403992, 30.403994, + 31.362158, 31.362159, 41.232863, 41.232865, 52.742833, 52.742835, 55.352395, 55.352395, + 62.232037, 62.23204, 65.196308, 65.196311, 65.664698, 65.6647, 78.988497, 78.988497, + 87.540326, 87.540326] + level_spacing_eV: [0.0, 0.0, 486.088213, 1.0e-06, 12.156279, 1.0e-06, 3.812896, + 2.0e-06, 2.135587, 5.0e-06, 7.137113, 2.0e-06, 2.665478, 2.0e-06, 5.382162, 2.0e-06, + 0.979759, 3.0e-06, 0.96466, 3.0e-06, 5.585208, 0.0, 5.427, 0.0, 3.006929, 2.0e-06, + 2.14056, 1.0e-06, 4.184415, 2.0e-06, 0.958164, 1.0e-06, 9.870704, 1.0e-06, 11.509968, + 2.0e-06, 2.609559, 0.0, 6.879642, 2.0e-06, 2.964268, 3.0e-06, 0.468387, 1.0e-06, + 13.323797, 0.0, 8.551829, 0.0] + occupation: [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0] + state: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48] + unperturbed_eigenvalue_eV: [-511.262291, -511.262291, -25.174077, -25.174076, -13.017766, + -13.017765, -9.204869, -9.204868, -7.069342, -7.069337, 0.067807, 0.067809, 2.733291, + 2.733293, 8.115536, 8.115538, 9.095146, 9.095149, 10.059839, 10.059842, 15.645084, + 15.645085, 21.072073, 21.072073, 24.079012, 24.079015, 26.219576, 26.219577, 30.403992, + 30.403994, 31.362156, 31.362157, 41.232863, 41.232865, 52.742834, 52.742836, 55.352393, + 55.352393, 62.232042, 62.232045, 65.196308, 65.196311, 65.664693, 65.664694, 78.988493, + 78.988494, 87.54032, 87.54032] +sd_eigenvalues: + eigenvalue_eV: + - [-516.99626, -27.6931, -14.43195, -12.05831, -10.37048, 0.54454, 3.43369, 6.78259, + 7.62782, 9.45321, 17.73824] + - [-515.94456, -27.27757, -14.10768, -11.61468, -9.88909, 0.55882, 3.45285, 6.97129, + 7.83592, 9.55327, 17.62883] + - [-507.94087, -24.15203, -11.8137, -8.30806, -6.32908, 0.75431, 3.78614, 8.58317, + 9.63008, 10.37983, 17.12936] + - [-514.85453, -27.07332, -14.41899, -11.13836, -9.14838, -0.18978, 2.39589, 7.14015, + 8.04582, 9.44033, 15.60993] + - [-512.5688, -26.10328, -13.78916, -10.04339, -7.93146, -0.2342, 2.3602, 7.66115, + 8.61457, 9.71372, 15.31425] + - [-511.26244, -25.38186, -13.19142, -9.38371, -7.24212, -0.01559, 2.64569, 8.00287, + 8.99045, 9.9534, 15.5731] + - [-511.15924, -25.11325, -12.95825, -9.18235, -7.03228, 0.10724, 2.77874, 8.12604, + 9.11702, 10.07496, 15.71941] + - [-511.28912, -25.21204, -13.04425, -9.23609, -7.10317, 0.05965, 2.72535, 8.09718, + 9.07655, 10.04709, 15.64491] + - [-511.22391, -25.14004, -12.98471, -9.17045, -7.03788, 0.0853, 2.75512, 8.13622, + 9.11521, 10.07899, 15.66936] + - [-511.26214, -25.17764, -13.02074, -9.20712, -7.07152, 0.0665, 2.73197, 8.1143, + 9.09395, 10.05859, 15.64405] + - [-511.25631, -25.17128, -13.01534, -9.20186, -7.06621, 0.06892, 2.73477, 8.11731, + 9.09705, 10.06116, 15.64673] + - [-511.26221, -25.17401, -13.01772, -9.20486, -7.06931, 0.06782, 2.73331, 8.11552, + 9.09517, 10.05982, 15.64514] + - [-511.26237, -25.17412, -13.01779, -9.20491, -7.06939, 0.0678, 2.73329, 8.11551, + 9.09512, 10.05983, 15.6451] + - [-511.26229, -25.17408, -13.01777, -9.20487, -7.06934, 0.06781, 2.73329, 8.11554, + 9.09515, 10.05984, 15.64508] + - [-511.26229, -25.17408, -13.01777, -9.20487, -7.06934, 0.06781, 2.73329, 8.11554, + 9.09515, 10.05984, 15.64508] + occupation: + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + state: + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] +su_eigenvalues: + eigenvalue_eV: + - [-517.6604, -30.45955, -17.83482, -14.48079, -12.38289, -1.9008, 0.15183, 5.59143, + 6.51097, 7.84369, 12.69308] + - [-516.5708, -29.90038, -17.35373, -13.90306, -11.78314, -1.76025, 0.34759, 5.83883, + 6.76864, 8.02295, 12.85688] + - [-508.25758, -25.61589, -13.76957, -9.5498, -7.29267, -0.56021, 2.02599, 7.94853, + 9.01309, 9.47738, 14.27921] + - [-515.04061, -27.91927, -15.51907, -11.86362, -9.75342, -1.02731, 1.2906, 6.79387, + 7.70765, 8.94455, 13.98558] + - [-512.52721, -26.06166, -13.83143, -10.00905, -7.89826, -0.29415, 2.26263, 7.70537, + 8.63645, 9.71449, 15.03124] + - [-511.2305, -25.34407, -13.20809, -9.35607, -7.2142, -0.04552, 2.59472, 8.03466, + 9.00753, 9.95598, 15.4063] + - [-511.14874, -25.10678, -12.96626, -9.1822, -7.03091, 0.08738, 2.754, 8.12292, + 9.11333, 10.06157, 15.67484] + - [-511.2808, -25.20555, -13.0511, -9.23337, -7.09943, 0.04624, 2.70682, 8.09938, + 9.07681, 10.04104, 15.60326] + - [-511.22209, -25.14092, -12.98752, -9.17311, -7.03957, 0.07852, 2.74795, 8.13157, + 9.11191, 10.07222, 15.66337] + - [-511.26094, -25.17668, -13.02176, -9.20657, -7.07064, 0.06474, 2.72946, 8.11479, + 9.09421, 10.05791, 15.638] + - [-511.25569, -25.17078, -13.01565, -9.20163, -7.06577, 0.06808, 2.7337, 8.1173, + 9.09706, 10.06062, 15.6445] + - [-511.26222, -25.17402, -13.01773, -9.20484, -7.06925, 0.06787, 2.73335, 8.11555, + 9.0952, 10.05986, 15.64517] + - [-511.26235, -25.17411, -13.0178, -9.2049, -7.06937, 0.06779, 2.73327, 8.11552, + 9.09513, 10.05982, 15.64505] + - [-511.26229, -25.17408, -13.01777, -9.20487, -7.06934, 0.06781, 2.73329, 8.11554, + 9.09515, 10.05984, 15.64508] + - [-511.26229, -25.17408, -13.01777, -9.20487, -7.06934, 0.06781, 2.73329, 8.11554, + 9.09515, 10.05984, 15.64508] + occupation: + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + - [1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] + state: + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] + - [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] timings: - [0.042, 0.045, 0.038, 0.037, 0.036, 0.038, 0.033, 0.036, 0.032, 0.032, 0.031, 0.023] - [0.033, 0.033, 0.033, 0.034, 0.035, 0.035, 0.036, 0.036, 0.036, 0.036, 0.036, 0.036,