From b6767c68d1e137d1b02918a2b4544df6653bb9e5 Mon Sep 17 00:00:00 2001 From: Daniel Pozsar Date: Fri, 8 Nov 2024 17:57:28 +0100 Subject: [PATCH] testing input.fdf and reading input.fdf --- input.fdf | 36 ++++++++++++------------- test.ipynb | 79 +++++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 78 insertions(+), 37 deletions(-) diff --git a/input.fdf b/input.fdf index 99b25bd..050a17e 100644 --- a/input.fdf +++ b/input.fdf @@ -1,23 +1,23 @@ -InputFile /Users/danielpozsar/Downloads/nojij/Fe3GeTe2/monolayer/soc/lat3_791/Fe3GeTe2.fdf -OutputFile ./Fe3GeTe2_notebook +InputFile /Users/danielpozsar/Downloads/nojij/Fe3GeTe2/monolayer/soc/lat3_791/Fe3GeTe2.fdf # comment test +OutputFile ./Fe3GeTe2_notebook # comment test -ScfXcfOrientation [ 0 0 1 ] +ScfXcfOrientation [ 0 0 1 ] # comment test + # comment test +%block XCF_Rotation # comment test + 1 0 0 0 1 0 0 0 1 # comment test + 0 1 0 1 0 0 0 0 1 # comment test + 0 0 1 1 0 0 0 1 0 # comment test +%endblock XCFRotation # comment test -%block XCF_Rotation - 1 0 0 0 1 0 0 0 1 - 0 1 0 1 0 0 0 0 1 - 0 0 1 1 0 0 0 1 0 -%endblock XCFRotation - -%block MagneticEntities +%block MagneticEntities # comment test Cluster 4 5 # this is a list of atoms AtomShell 3 2 # this is one atom and shell index AtomShell 4 2 # this is one atom and shell index AtomShell 5 2 # this is one atom and shell index AtomOrbital 3 # this is one atom and orbital index -ExplicitOrbital # this is a slice of orbital index +Orbitals # this is a slice of orbital index %endblock MagneticEntities @@ -26,19 +26,19 @@ ExplicitOrbital # this is a slice of orbital index 0 1 0 0 0 0 2 0 0 0 1 2 0 0 0 - 0 2 -1 -1 0 + 0 2 -1 -1 0 # comment test 1 2 -1 -1 0 0 2 -1 0 0 1 2 -1 0 0 1 2 -2 0 0 - 1 2 -3 0 0 + 1 2 -3 0 0 # comment test %endblock Pairs INTEGRAL.Kset 3 INTEGRAL.Kdirs xy -INTEGRAL.Ebot -13 -INTEGRAL.Eset 300 -INTEGRAL.Esetp 1000 +INTEGRAL.Ebot -13 # comment test +INTEGRAL.Eset 300 # comment test +INTEGRAL.Esetp 1000 # comment test -GREEN.ParallelSolver False -PadawanMode True \ No newline at end of file +GREEN.ParallelSolver False # comment test +PadawanMode True # comment test \ No newline at end of file diff --git a/test.ipynb b/test.ipynb index cc3d5b7..1ddcb62 100644 --- a/test.ipynb +++ b/test.ipynb @@ -76,10 +76,14 @@ "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "[{'ai': 0, 'aj': 1, 'Ruc': array([0, 0, 0])}, {'ai': 0, 'aj': 2, 'Ruc': array([0, 0, 0])}, {'ai': 1, 'aj': 2, 'Ruc': array([0, 0, 0])}, {'ai': 0, 'aj': 2, 'Ruc': array([-1, -1, 0])}, {'ai': 1, 'aj': 2, 'Ruc': array([-1, -1, 0])}, {'ai': 0, 'aj': 2, 'Ruc': array([-1, 0, 0])}, {'ai': 1, 'aj': 2, 'Ruc': array([-1, 0, 0])}, {'ai': 1, 'aj': 2, 'Ruc': array([-2, 0, 0])}, {'ai': 1, 'aj': 2, 'Ruc': array([-3, 0, 0])}]\n" + "ename": "TypeError", + "evalue": "'NoneType' object is not iterable", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[0;32mIn[58], line 28\u001b[0m\n\u001b[1;32m 26\u001b[0m magnetic_entities \u001b[38;5;241m=\u001b[39m fdf\u001b[38;5;241m.\u001b[39mget(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMagneticEntities\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 27\u001b[0m fdf_magnetic_entities \u001b[38;5;241m=\u001b[39m []\n\u001b[0;32m---> 28\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m mag_ent \u001b[38;5;129;01min\u001b[39;00m magnetic_entities:\n\u001b[1;32m 29\u001b[0m row \u001b[38;5;241m=\u001b[39m mag_ent\u001b[38;5;241m.\u001b[39msplit()\n\u001b[1;32m 30\u001b[0m dat \u001b[38;5;241m=\u001b[39m []\n", + "\u001b[0;31mTypeError\u001b[0m: 'NoneType' object is not iterable" ] } ], @@ -93,24 +97,54 @@ "fdf_parameters[\"scf_xcf_orientation\"] = np.array(fdf.get(\"ScfXcfOrientation\"))\n", "\n", "rotations = fdf.get(\"XCF_Rotation\")\n", - "fdf_rot = []\n", - "for rot in rotations:\n", - " dat = np.array(rot.split(), dtype=float)\n", - " o = dat[:3]\n", - " vw = dat[3:]\n", - " vw = vw.reshape(2, 3)\n", - " fdf_rot.append(dict(o=o, vw=vw))\n", - "fdf_parameters[\"ref_xcf_orientations\"] = fdf_rot\n", + "if rotations is None:\n", + " pass\n", + "else:\n", + " fdf_rot = []\n", + " for rot in rotations:\n", + " dat = np.array(rot.split()[:9], dtype=float)\n", + " o = dat[:3]\n", + " vw = dat[3:]\n", + " vw = vw.reshape(2, 3)\n", + " fdf_rot.append(dict(o=o, vw=vw))\n", + " fdf_parameters[\"ref_xcf_orientations\"] = fdf_rot\n", "\n", "pairs = fdf.get(\"Pairs\")\n", - "fdf_pairs = []\n", - "for fdf_pair in pairs:\n", - " dat = np.array(fdf_pair.split(), dtype=int)\n", - " my_pair = dict(ai=dat[0], aj=dat[1], Ruc=np.array(dat[2:]))\n", - " fdf_pairs.append(fdf_pair)\n", + "if pairs in None:\n", + " pass\n", + "else:\n", + " fdf_pairs = []\n", + " for fdf_pair in pairs:\n", + " dat = np.array(fdf_pair.split()[:5], dtype=int)\n", + " my_pair = dict(ai=dat[0], aj=dat[1], Ruc=np.array(dat[2:]))\n", + " fdf_pairs.append(my_pair)\n", + "\n", + "magnetic_entities = fdf.get(\"MagneticEntities\")\n", + "if magnetic_entities is None:\n", + " pass\n", + "else:\n", + " fdf_magnetic_entities = []\n", + " for mag_ent in magnetic_entities:\n", + " row = mag_ent.split()\n", + " dat = []\n", + " for string in row:\n", + " if string.find(\"#\") != -1:\n", + " break\n", + " dat.append(string)\n", + " if dat[0] == \"Cluster\" or \"cluster\":\n", + " fdf_magnetic_entities.append(dict(atom=dat[1:]))\n", + " continue\n", + " elif dat[0] == \"AtomShell\" or \"Atomshell\" or \"atomShell\" or \"atomshell\":\n", + " fdf_magnetic_entities.append(dict(atom=dat[1], l=dat[2:]))\n", + " continue\n", + " elif dat[0] == \"AtomOrbital\" or \"Atomorbital\" or \"tomOrbital\" or \"atomorbital\":\n", + " continue\n", + " elif dat[0] == \"Orbitals\" or \"orbitals\":\n", + " continue\n", + " else:\n", + " print(\"Unrecognizable magnetic entity in fdf\")\n", + " break\n", "\n", - "pairs = fdf.get(\"Pairs\")\n", - "fdf_magnetic_entities = []\n", "\n", "fdf_parameters[\"kset\"] = fdf.get(\"INTEGRAL.Kset\")\n", "fdf_parameters[\"kdirs\"] = fdf.get(\"INTEGRAL.Kdirs\")\n", @@ -121,6 +155,13 @@ "fdf_parameters[\"padawan_mode\"] = fdf.get(\"PadawanMode\")" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": 4,