Repository: materialsproject/custodian
Pull request #233 (2022-11-01 01:13:10)

SCF Handler Patch
Previous SCF handler assumed that input file would be present and attribute "is_ot" could be defined. This is not actually true, and the handler is initialized before the input file is actually written. Instead, check for is_ot during the handler check method. Extraneous info that was collected by assuming the input file has been removed.




Patch:
diff --git a/custodian/cp2k/handlers.py b/custodian/cp2k/handlers.py
index ac8ace56..50253b43 100644
--- a/custodian/cp2k/handlers.py
+++ b/custodian/cp2k/handlers.py
@@ -18,7 +18,6 @@ import itertools
 import os
 import re
 import time
-from typing import Sequence
 
 import numpy as np
 from monty.os.path import zpath
@@ -26,7 +25,6 @@ from monty.re import regrep
 from monty.serialization import dumpfn
 from pymatgen.io.cp2k.inputs import Cp2kInput, Keyword
 from pymatgen.io.cp2k.outputs import Cp2kOutput
-from pymatgen.io.cp2k.utils import get_aux_basis
 
 from custodian.cp2k.interpreter import Cp2kModder
 from custodian.cp2k.utils import get_conv, restart, tail
@@ -154,29 +152,6 @@ class UnconvergedScfErrorHandler(ErrorHandler):
         self.errors = None
         self.scf = None
         self.restart = None
-        self.mixing_hierarchy = ["BROYDEN_MIXING", "BROYDEN_MIXING_LINEAR", "PULAY_MIXING", "PULAY_MIXING_LINEAR"]
-        if os.path.exists(zpath(self.input_file)):
-            ci = Cp2kInput.from_file(zpath(self.input_file))
-            if ci["GLOBAL"]["RUN_TYPE"].values[0].__str__().upper() in [
-                "ENERGY",
-                "ENERGY_FORCE",
-                "WAVEFUNCTION_OPTIMIZATION",
-                "WFN_OPT",
-            ]:
-                self.is_static = True
-            else:
-                self.is_static = False
-            self.is_ot = ci.check("FORCE_EVAL/DFT/SCF/OT")
-            if ci.check("FORCE_EVAL/DFT/SCF/MIXING"):
-                method = (
-                    ci.by_path("FORCE_EVAL/DFT/SCF/MIXING")
-                    .get("METHOD", Keyword("METHOD", "DIRECT_P_MIXING"))
-                    .values[0]
-                )
-                alpha = ci.by_path("FORCE_EVAL/DFT/SCF/MIXING").get("ALPHA", Keyword("ALPHA", 0.4)).values[0]
-                beta = ci.by_path("FORCE_EVAL/DFT/SCF/MIXING").get("BETA", Keyword("BETA", 0.5)).values[0]
-                ext = "_LINEAR" if (beta > 1 and alpha < 0.1) else ""
-                self.mixing_hierarchy = [m for m in self.mixing_hierarchy if m != method.upper() + ext]
 
     def check(self):
         """
@@ -185,6 +160,8 @@ class UnconvergedScfErrorHandler(ErrorHandler):
         # Checks output file for errors.
         out = Cp2kOutput(self.output_file, auto_load=False, verbose=False)
         out.convergence()
+        ci = Cp2kInput.from_file(zpath(self.input_file))
+        self.is_ot = ci.check("FORCE_EVAL/DFT/SCF/OT")
         if out.filenames.get("restart"):
             self.restart = out.filenames["restart"][-1]
 
@@ -909,47 +886,6 @@ class NumericalPrecisionHandler(ErrorHandler):
                             },
                         }
                     )
-            for k, v in ci.by_path("FORCE_EVAL/SUBSYS").subsections.items():
-                if v.name.upper() == "KIND":
-                    el = v.get("ELEMENT").values or v.section_parameters
-                    el = el[0]
-                    bs = ci.by_path("FORCE_EVAL/SUBSYS")[k].get("BASIS_SET", None)
-                    if isinstance(bs, Sequence):
-                        for i, _bs in enumerate(bs):
-                            if "AUX_FIT" in [val.upper() for val in bs[i].values]:
-                                aux = None
-                                if el == "Li":  # special case of Li aux basis
-                                    aux = get_aux_basis({el: "cFIT4-SR"})
-                                elif not bs[i].values[1].startswith("cp"):
-                                    aux = get_aux_basis({el: None}, "cpFIT")
-                                    if not aux.get(el, "").startswith("cpFIT"):
-                                        aux = None
-                                if aux:
-                                    bs.keywords.pop(i)
-                                    actions.append(
-                                        {
-                                            "dict": self.input_file,
-                                            "action": {
-                                                "_set": {
-                                                    "FORCE_EVAL": {"SUBSYS": {k: {"BASIS_SET": "AUX_FIT " + aux[el]}}}
-                                                }
-                                            },
-                                        }
-                                    )
-                                    for _bs in bs:
-                                        actions.append(
-                                            {
-                                                "dict": self.input_file,
-                                                "action": {
-                                                    "_inc": {
-                                                        "FORCE_EVAL": {
-                                                            "SUBSYS": {k: {"BASIS_SET": " ".join(_bs.values)}}
-                                                        }
-                                                    }
-                                                },
-                                            }
-                                        )
-                                    break
 
             m = regrep(
                 self.output_file,


Test patch:
diff --git a/custodian/cp2k/tests/test_handlers.py b/custodian/cp2k/tests/test_handlers.py
index 3da6e3ab..26085b0b 100644
--- a/custodian/cp2k/tests/test_handlers.py
+++ b/custodian/cp2k/tests/test_handlers.py
@@ -41,13 +41,8 @@ class HandlerTests(unittest.TestCase):
         time.sleep(1)  # for frozenhandler
 
         shutil.copy(os.path.join(self.TEST_FILES_DIR, "cp2k.inp.orig"), os.path.join(self.TEST_FILES_DIR, "cp2k.inp"))
-        shutil.copy(
-            os.path.join(self.TEST_FILES_DIR, "cp2k.inp.hybrid.orig"),
-            os.path.join(self.TEST_FILES_DIR, "cp2k.inp.hybrid"),
-        )
 
         self.input_file = os.path.join(self.TEST_FILES_DIR, "cp2k.inp")
-        self.input_file_hybrid = os.path.join(self.TEST_FILES_DIR, "cp2k.inp.hybrid")
 
         self.output_file_preconditioner = os.path.join(self.TEST_FILES_DIR, "cp2k.out.precondstuck")
         self.output_file_choleesky = os.path.join(self.TEST_FILES_DIR, "cp2k.out.cholesky")
@@ -60,6 +55,7 @@ class HandlerTests(unittest.TestCase):
         self.modder = Cp2kModder(filename=self.input_file)
 
     def test(self):
+        """Ensure modder works"""
         kwdlst = KeywordList(
             keywords=[Keyword("BASIS_SET_FILE_NAME", "FILE1"), Keyword("BASIS_SET_FILE_NAME", "FILE2")]
         )
@@ -75,7 +71,13 @@ class HandlerTests(unittest.TestCase):
         self.assertEqual(self.modder.ci["FORCE_EVAL"]["METHOD"], Keyword("METHOD", "NOT QA"))
         self.assertIsInstance(self.modder.ci["FORCE_EVAL"]["DFT"]["BASIS_SET_FILE_NAME"], KeywordList)
 
+    def test_handler_inits(self):
+        """Ensure handlers initialize fine without real input/output files"""
+        for handler in [AbortHandler, FrozenJobErrorHandler, NumericalPrecisionHandler, UnconvergedScfErrorHandler]:
+            handler()
+
     def test_frozenjobhandler(self):
+        """Handler for frozen job"""
         h = FrozenJobErrorHandler(input_file=self.input_file, output_file=self.output_file_preconditioner, timeout=1)
         self.assertTrue(h.check())
         ci = StaticSet.from_file(self.input_file)
@@ -97,33 +99,44 @@ class HandlerTests(unittest.TestCase):
         h.check()
 
     def test_uncoverge_handler(self):
+        """Handler for SCF handling not working"""
         ci = StaticSet.from_file(self.input_file)
-        self.assertEqual(ci["force_eval"]["dft"]["scf"]["ot"]["minimizer"], Keyword("MINIMIZER", "DIIS"))
         h = UnconvergedScfErrorHandler(input_file=self.input_file, output_file=self.output_file_unconverged)
         h.check()
+        self.assertTrue(h.is_ot)
+        self.assertEqual(ci["force_eval"]["dft"]["scf"]["ot"]["minimizer"], Keyword("MINIMIZER", "DIIS"))
         actions = h.correct()
         self.assertTrue(actions["errors"], ["Non-converging Job"])
         ci = StaticSet.from_file(self.input_file)
         self.assertEqual(ci["force_eval"]["dft"]["scf"]["ot"]["minimizer"], Keyword("MINIMIZER", "CG"))
 
+        # Fake diag check. Turns on mixing
+        h.is_ot = False
+        actions = h.correct()
+        self.assertTrue(actions["errors"], ["Non-converging Job"])
+        ci = StaticSet.from_file(self.input_file)
+        self.assertEqual(ci["force_eval"]["dft"]["scf"]["MIXING"]["ALPHA"], Keyword("ALPHA", 0.1))
+
     def test_abort_handler(self):
+        """Checks if cp2k called abort"""
         h = AbortHandler(input_file=self.input_file, output_file=self.output_file_choleesky)
         self.assertTrue(h.check())
 
     def test_imprecision_handler(self):
-
-        # Hybrid
-        h = NumericalPrecisionHandler(self.input_file_hybrid, output_file=self.output_file_imprecise, max_same=3)
+        """Check for low precision leading to stagnant SCF"""
+        h = NumericalPrecisionHandler(self.input_file, output_file=self.output_file_imprecise, max_same=3)
         self.assertTrue(h.check())
         c = h.correct()
         self.assertTrue(c["errors"], ["Unsufficient precision"])
 
     def test_std_out(self):
+        """Errors sent to the std out instead of cp2k out"""
         h = StdErrHandler(std_err=self.output_file_stderr)
         self.assertTrue(h.check())
         h.correct()
 
     def test_conv(self):
+        """Check that SCF convergence can be read"""
         self.assertEqual(len(get_conv(self.output_file_conv)), 45)
 
 
diff --git a/test_files/cp2k/cp2k.inp b/test_files/cp2k/cp2k.inp
index 01eb3df1..502284d8 100644
--- a/test_files/cp2k/cp2k.inp
+++ b/test_files/cp2k/cp2k.inp
@@ -6,136 +6,6 @@
 			B 4.465864 12.631372 7.735104
 			C 0.0 0.0 15.470208
 		&END CELL
-		&COORD 
-			Si 0.0 0.0 3.867552 
-			Si 0.0 0.0 0.0 
-			Si 0.0 0.0 7.735104 
-			Si 0.0 0.0 11.602656 
-			Si 14.514062 3.157843 9.66888 
-			Si 14.514062 3.157843 13.536432 
-			Si 14.514062 3.157843 17.403984 
-			Si 14.514062 3.157843 21.271535999999998 
-			Si 15.630528 6.315686 11.602656 
-			Si 15.630528 6.315686 15.470208 
-			Si 15.630528 6.315686 19.33776 
-			Si 15.630528 6.315686 23.205312 
-			Si 16.746994 9.473529000000003 13.536432 
-			Si 16.746994 9.473529000000003 17.403984 
-			Si 16.746994 9.473529000000003 21.271535999999998 
-			Si 16.746994 9.473529000000003 25.139088 
-			Si 3.3493989999999996 0.0 1.933776 
-			Si 3.3493989999999996 0.0 5.801328 
-			Si 3.3493989999999996 0.0 9.66888 
-			Si 3.3493989999999996 0.0 13.536432 
-			Si 4.465865 3.157843 3.867552 
-			Si 4.465865 3.157843 7.735104 
-			Si 4.465865 3.157843 11.602656 
-			Si 4.465865 3.157843 15.470208 
-			Si 5.582331 6.315686 5.801328 
-			Si 5.582331 6.315686 9.66888 
-			Si 5.582331 6.315686 13.536432 
-			Si 5.582331 6.315686 17.403984 
-			Si 6.698797 9.473529000000003 7.735104 
-			Si 6.698797 9.473529000000003 11.602656 
-			Si 6.698797 9.473529000000003 15.470208 
-			Si 6.698797 9.473529000000003 19.33776 
-			Si 6.698797999999999 0.0 3.867552 
-			Si 6.698797999999999 0.0 7.735104 
-			Si 6.698797999999999 0.0 11.602656 
-			Si 6.698797999999999 0.0 15.470208 
-			Si 7.815263999999999 3.157843 5.801328 
-			Si 7.815263999999999 3.157843 9.66888 
-			Si 7.815263999999999 3.157843 13.536432 
-			Si 7.815263999999999 3.157843 17.403984 
-			Si 8.93173 6.315686 7.735104 
-			Si 8.93173 6.315686 11.602656 
-			Si 8.93173 6.315686 15.470208 
-			Si 8.93173 6.315686 19.33776 
-			Si 10.048196 9.473529000000003 9.66888 
-			Si 10.048196 9.473529000000003 13.536432 
-			Si 10.048196 9.473529000000003 17.403984 
-			Si 10.048196 9.473529000000003 21.271535999999998 
-			Si 10.048197 0.0 5.801328 
-			Si 10.048197 0.0 9.66888 
-			Si 10.048197 0.0 13.536432 
-			Si 10.048197 0.0 17.403984 
-			Si 11.164663000000001 3.157843 7.735104 
-			Si 11.164663000000001 3.157843 11.602656 
-			Si 11.164663000000001 3.157843 15.470208 
-			Si 11.164663000000001 3.157843 19.33776 
-			Si 12.281128999999998 6.315686 9.668879999999998 
-			Si 12.281128999999998 6.315686 13.536431999999998 
-			Si 12.281128999999998 6.315686 17.403983999999998 
-			Si 12.281128999999998 6.315686 21.271535999999998 
-			Si 13.397594999999997 9.473529000000003 11.602656 
-			Si 13.397594999999997 9.473529000000003 15.470208 
-			Si 13.397594999999997 9.473529000000003 19.33776 
-			Si 13.397594999999997 9.473529000000003 23.205312 
-			Si 4.62089681486463 2.4929932610544006 11.16461557147248 
-			Si 4.62089681486463 2.4929932610544006 15.03216757147248 
-			Si 4.62089681486463 2.4929932610544006 18.89971957147248 
-			Si 4.62089681486463 2.4929932610544006 7.297063571472477 
-			Si 5.73736281486463 5.6508362610544 13.09839157147248 
-			Si 5.73736281486463 5.6508362610544 16.96594357147248 
-			Si 5.73736281486463 5.6508362610544 20.83349557147248 
-			Si 5.73736281486463 5.6508362610544 9.23083957147248 
-			Si 6.85382881486463 8.808679261054403 15.03216757147248 
-			Si 6.85382881486463 8.808679261054403 18.89971957147248 
-			Si 6.85382881486463 8.808679261054403 22.767271571472477 
-			Si 6.85382881486463 8.808679261054403 11.164615571472483 
-			Si 7.97029481486463 11.9665222610544 16.96594357147248 
-			Si 7.97029481486463 11.9665222610544 20.83349557147248 
-			Si 7.97029481486463 11.9665222610544 24.70104757147248 
-			Si 7.97029481486463 11.9665222610544 13.098391571472483 
-			Si 7.970295814864629 2.4929932610544006 13.09839157147248 
-			Si 7.970295814864629 2.4929932610544006 16.96594357147248 
-			Si 7.970295814864629 2.4929932610544006 20.83349557147248 
-			Si 7.970295814864629 2.4929932610544006 9.23083957147248 
-			Si 9.08676181486463 5.6508362610544 15.03216757147248 
-			Si 9.08676181486463 5.6508362610544 18.89971957147248 
-			Si 9.08676181486463 5.6508362610544 22.767271571472477 
-			Si 9.08676181486463 5.6508362610544 11.164615571472483 
-			Si 10.20322781486463 8.808679261054403 16.96594357147248 
-			Si 10.20322781486463 8.808679261054403 20.83349557147248 
-			Si 10.20322781486463 8.808679261054403 24.70104757147248 
-			Si 10.20322781486463 8.808679261054403 13.098391571472483 
-			Si 11.31969381486463 11.9665222610544 18.89971957147248 
-			Si 11.31969381486463 11.9665222610544 22.767271571472477 
-			Si 11.31969381486463 11.9665222610544 26.63482357147248 
-			Si 11.31969381486463 11.9665222610544 15.032167571472476 
-			Si 11.31969481486463 2.4929932610544006 15.03216757147248 
-			Si 11.31969481486463 2.4929932610544006 18.89971957147248 
-			Si 11.31969481486463 2.4929932610544006 22.767271571472477 
-			Si 11.31969481486463 2.4929932610544006 11.164615571472483 
-			Si 12.43616081486463 5.6508362610544 16.96594357147248 
-			Si 12.43616081486463 5.6508362610544 20.83349557147248 
-			Si 12.43616081486463 5.6508362610544 24.70104757147248 
-			Si 12.43616081486463 5.6508362610544 13.098391571472483 
-			Si 13.552626814864631 8.808679261054403 18.89971957147248 
-			Si 13.552626814864631 8.808679261054403 22.767271571472477 
-			Si 13.552626814864631 8.808679261054403 26.63482357147248 
-			Si 13.552626814864631 8.808679261054403 15.032167571472476 
-			Si 14.669092814864628 11.9665222610544 20.83349557147248 
-			Si 14.669092814864628 11.9665222610544 24.70104757147248 
-			Si 14.669092814864628 11.9665222610544 28.568599571472483 
-			Si 14.669092814864628 11.9665222610544 16.96594357147248 
-			Si 1.2714978148646294 2.4929932610544006 9.230839571472481 
-			Si 1.2714978148646294 2.4929932610544006 13.09839157147248 
-			Si 1.2714978148646294 2.4929932610544006 16.96594357147248 
-			Si 1.2714978148646294 2.4929932610544006 5.363287571472483 
-			Si 2.387963814864629 5.6508362610544 11.164615571472481 
-			Si 2.387963814864629 5.6508362610544 15.032167571472476 
-			Si 2.387963814864629 5.6508362610544 18.89971957147248 
-			Si 2.387963814864629 5.6508362610544 7.297063571472476 
-			Si 3.504429814864627 8.808679261054403 13.09839157147248 
-			Si 3.504429814864627 8.808679261054403 16.96594357147248 
-			Si 3.504429814864627 8.808679261054403 20.833495571472483 
-			Si 3.504429814864627 8.808679261054403 9.230839571472478 
-			Si 4.620895814864629 11.9665222610544 15.032167571472478 
-			Si 4.620895814864629 11.9665222610544 18.89971957147248 
-			Si 4.620895814864629 11.9665222610544 22.767271571472477 
-			Si 4.620895814864629 11.9665222610544 11.164615571472483
-		&END COORD
 		&KIND Si
 			ELEMENT Si
 			MAGNETIZATION 0.0
@@ -158,6 +28,7 @@
 			MAX_SCF 20
 			EPS_SCF 1e-07
 			SCF_GUESS RESTART
+			ADDED_MOS 1000
 			&OT 
 				PRECONDITIONER FULL_SINGLE_INVERSE
 				ENERGY_GAP 0.01
@@ -167,6 +38,14 @@
 				MAX_SCF 20
 				EPS_SCF 1e-07
 			&END OUTER_SCF
+			&MIXING 
+				METHOD BROYDEN_MIXING
+				ALPHA 0.1
+			&END MIXING
+			&SMEAR 
+				ELEC_TEMP 300
+				METHOD FERMI_DIRAC
+			&END SMEAR
 		&END SCF
 		&MGRID 
 			CUTOFF 1200 ! Cutoff in [Ry] for finest level of the MG.
diff --git a/test_files/cp2k/cp2k.inp.orig b/test_files/cp2k/cp2k.inp.orig
index b57b2c21..154b7f1f 100644
--- a/test_files/cp2k/cp2k.inp.orig
+++ b/test_files/cp2k/cp2k.inp.orig
@@ -6,136 +6,6 @@
 			B 4.465864 12.631372 7.735104
 			C 0.0 0.0 15.470208
 		&END 
-		&COORD 
-			Si 0.0 0.0 0.0
-			Si 0.0 0.0 3.867552
-			Si 0.0 0.0 7.735104
-			Si 0.0 0.0 11.602656
-			Si 14.514062 3.157843 9.66888
-			Si 14.514062 3.157843 13.536432
-			Si 14.514062 3.157843 17.403984
-			Si 14.514062 3.157843 21.271535999999998
-			Si 15.630528 6.315686 11.602656
-			Si 15.630528 6.315686 15.470208
-			Si 15.630528 6.315686 19.33776
-			Si 15.630528 6.315686 23.205312
-			Si 16.746994 9.473529000000003 13.536432
-			Si 16.746994 9.473529000000003 17.403984
-			Si 16.746994 9.473529000000003 21.271535999999998
-			Si 16.746994 9.473529000000003 25.139088
-			Si 3.3493989999999996 0.0 1.933776
-			Si 3.3493989999999996 0.0 5.801328
-			Si 3.3493989999999996 0.0 9.66888
-			Si 3.3493989999999996 0.0 13.536432
-			Si 4.465865 3.157843 3.867552
-			Si 4.465865 3.157843 7.735104
-			Si 4.465865 3.157843 11.602656
-			Si 4.465865 3.157843 15.470208
-			Si 5.582331 6.315686 5.801328
-			Si 5.582331 6.315686 9.66888
-			Si 5.582331 6.315686 13.536432
-			Si 5.582331 6.315686 17.403984
-			Si 6.698797 9.473529000000003 7.735104
-			Si 6.698797 9.473529000000003 11.602656
-			Si 6.698797 9.473529000000003 15.470208
-			Si 6.698797 9.473529000000003 19.33776
-			Si 6.698797999999999 0.0 3.867552
-			Si 6.698797999999999 0.0 7.735104
-			Si 6.698797999999999 0.0 11.602656
-			Si 6.698797999999999 0.0 15.470208
-			Si 7.815263999999999 3.157843 5.801328
-			Si 7.815263999999999 3.157843 9.66888
-			Si 7.815263999999999 3.157843 13.536432
-			Si 7.815263999999999 3.157843 17.403984
-			Si 8.93173 6.315686 7.735104
-			Si 8.93173 6.315686 11.602656
-			Si 8.93173 6.315686 15.470208
-			Si 8.93173 6.315686 19.33776
-			Si 10.048196 9.473529000000003 9.66888
-			Si 10.048196 9.473529000000003 13.536432
-			Si 10.048196 9.473529000000003 17.403984
-			Si 10.048196 9.473529000000003 21.271535999999998
-			Si 10.048197 0.0 5.801328
-			Si 10.048197 0.0 9.66888
-			Si 10.048197 0.0 13.536432
-			Si 10.048197 0.0 17.403984
-			Si 11.164663000000001 3.157843 7.735104
-			Si 11.164663000000001 3.157843 11.602656
-			Si 11.164663000000001 3.157843 15.470208
-			Si 11.164663000000001 3.157843 19.33776
-			Si 12.281128999999998 6.315686 9.668879999999998
-			Si 12.281128999999998 6.315686 13.536431999999998
-			Si 12.281128999999998 6.315686 17.403983999999998
-			Si 12.281128999999998 6.315686 21.271535999999998
-			Si 13.397594999999997 9.473529000000003 11.602656
-			Si 13.397594999999997 9.473529000000003 15.470208
-			Si 13.397594999999997 9.473529000000003 19.33776
-			Si 13.397594999999997 9.473529000000003 23.205312
-			Si 4.62089681486463 2.4929932610544006 11.16461557147248
-			Si 4.62089681486463 2.4929932610544006 15.03216757147248
-			Si 4.62089681486463 2.4929932610544006 18.89971957147248
-			Si 4.62089681486463 2.4929932610544006 7.297063571472477
-			Si 5.73736281486463 5.6508362610544 13.09839157147248
-			Si 5.73736281486463 5.6508362610544 16.96594357147248
-			Si 5.73736281486463 5.6508362610544 20.83349557147248
-			Si 5.73736281486463 5.6508362610544 9.23083957147248
-			Si 6.85382881486463 8.808679261054403 15.03216757147248
-			Si 6.85382881486463 8.808679261054403 18.89971957147248
-			Si 6.85382881486463 8.808679261054403 22.767271571472477
-			Si 6.85382881486463 8.808679261054403 11.164615571472483
-			Si 7.97029481486463 11.9665222610544 16.96594357147248
-			Si 7.97029481486463 11.9665222610544 20.83349557147248
-			Si 7.97029481486463 11.9665222610544 24.70104757147248
-			Si 7.97029481486463 11.9665222610544 13.098391571472483
-			Si 7.970295814864629 2.4929932610544006 13.09839157147248
-			Si 7.970295814864629 2.4929932610544006 16.96594357147248
-			Si 7.970295814864629 2.4929932610544006 20.83349557147248
-			Si 7.970295814864629 2.4929932610544006 9.23083957147248
-			Si 9.08676181486463 5.6508362610544 15.03216757147248
-			Si 9.08676181486463 5.6508362610544 18.89971957147248
-			Si 9.08676181486463 5.6508362610544 22.767271571472477
-			Si 9.08676181486463 5.6508362610544 11.164615571472483
-			Si 10.20322781486463 8.808679261054403 16.96594357147248
-			Si 10.20322781486463 8.808679261054403 20.83349557147248
-			Si 10.20322781486463 8.808679261054403 24.70104757147248
-			Si 10.20322781486463 8.808679261054403 13.098391571472483
-			Si 11.31969381486463 11.9665222610544 18.89971957147248
-			Si 11.31969381486463 11.9665222610544 22.767271571472477
-			Si 11.31969381486463 11.9665222610544 26.63482357147248
-			Si 11.31969381486463 11.9665222610544 15.032167571472476
-			Si 11.31969481486463 2.4929932610544006 15.03216757147248
-			Si 11.31969481486463 2.4929932610544006 18.89971957147248
-			Si 11.31969481486463 2.4929932610544006 22.767271571472477
-			Si 11.31969481486463 2.4929932610544006 11.164615571472483
-			Si 12.43616081486463 5.6508362610544 16.96594357147248
-			Si 12.43616081486463 5.6508362610544 20.83349557147248
-			Si 12.43616081486463 5.6508362610544 24.70104757147248
-			Si 12.43616081486463 5.6508362610544 13.098391571472483
-			Si 13.552626814864631 8.808679261054403 18.89971957147248
-			Si 13.552626814864631 8.808679261054403 22.767271571472477
-			Si 13.552626814864631 8.808679261054403 26.63482357147248
-			Si 13.552626814864631 8.808679261054403 15.032167571472476
-			Si 14.669092814864628 11.9665222610544 20.83349557147248
-			Si 14.669092814864628 11.9665222610544 24.70104757147248
-			Si 14.669092814864628 11.9665222610544 28.568599571472483
-			Si 14.669092814864628 11.9665222610544 16.96594357147248
-			Si 1.2714978148646294 2.4929932610544006 9.230839571472481
-			Si 1.2714978148646294 2.4929932610544006 13.09839157147248
-			Si 1.2714978148646294 2.4929932610544006 16.96594357147248
-			Si 1.2714978148646294 2.4929932610544006 5.363287571472483
-			Si 2.387963814864629 5.6508362610544 11.164615571472481
-			Si 2.387963814864629 5.6508362610544 15.032167571472476
-			Si 2.387963814864629 5.6508362610544 18.89971957147248
-			Si 2.387963814864629 5.6508362610544 7.297063571472476
-			Si 3.504429814864627 8.808679261054403 13.09839157147248
-			Si 3.504429814864627 8.808679261054403 16.96594357147248
-			Si 3.504429814864627 8.808679261054403 20.833495571472483
-			Si 3.504429814864627 8.808679261054403 9.230839571472478
-			Si 4.620895814864629 11.9665222610544 15.032167571472478
-			Si 4.620895814864629 11.9665222610544 18.89971957147248
-			Si 4.620895814864629 11.9665222610544 22.767271571472477
-			Si 4.620895814864629 11.9665222610544 11.164615571472483
-		&END 
 		&KIND Si
 			ELEMENT Si
 			MAGNETIZATION 0.0