From 3694f552e52a779526337fba2354d2457d122f86 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Sun, 21 Sep 2025 16:30:27 -0700 Subject: [PATCH 1/5] update: add atomman whl --- .../atomman-1.4.11-cp311-cp311-emscripten_3_1_45_wasm32.whl | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 packages/atomman-1.4.11-cp311-cp311-emscripten_3_1_45_wasm32.whl diff --git a/packages/atomman-1.4.11-cp311-cp311-emscripten_3_1_45_wasm32.whl b/packages/atomman-1.4.11-cp311-cp311-emscripten_3_1_45_wasm32.whl new file mode 100644 index 00000000..8d059570 --- /dev/null +++ b/packages/atomman-1.4.11-cp311-cp311-emscripten_3_1_45_wasm32.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f41fc33cc6376917f5456d3148c4608830f6e2ee511bb33ca9cc356d2f08290 +size 1404930 From daf4d9466a30b76428d36ffac9f009dec37c5534 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Sun, 21 Sep 2025 17:08:18 -0700 Subject: [PATCH 2/5] update: add pyyaml whl --- packages/pyyaml-6.0.2-cp311-cp311-emscripten_3_1_45_wasm32.whl | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 packages/pyyaml-6.0.2-cp311-cp311-emscripten_3_1_45_wasm32.whl diff --git a/packages/pyyaml-6.0.2-cp311-cp311-emscripten_3_1_45_wasm32.whl b/packages/pyyaml-6.0.2-cp311-cp311-emscripten_3_1_45_wasm32.whl new file mode 100644 index 00000000..92d0099b --- /dev/null +++ b/packages/pyyaml-6.0.2-cp311-cp311-emscripten_3_1_45_wasm32.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:347008012573054557b0c019af72349127457a8537bd9d33f7618c4708b2ef7b +size 45465 From 88f35652845197b08ed08094d737c756c175c81e Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Sun, 21 Sep 2025 17:10:28 -0700 Subject: [PATCH 3/5] update: add pymongo whl --- .../pymongo-4.15.1-cp311-cp311-emscripten_3_1_45_wasm32.whl | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 packages/pymongo-4.15.1-cp311-cp311-emscripten_3_1_45_wasm32.whl diff --git a/packages/pymongo-4.15.1-cp311-cp311-emscripten_3_1_45_wasm32.whl b/packages/pymongo-4.15.1-cp311-cp311-emscripten_3_1_45_wasm32.whl new file mode 100644 index 00000000..ab4ef6d3 --- /dev/null +++ b/packages/pymongo-4.15.1-cp311-cp311-emscripten_3_1_45_wasm32.whl @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcb58333ef5307dd3f307c06734eca510686f45351b1accd818e4892d0ccb7cc +size 731908 From f540812812fedac5863488b8ea32ba36c499892f Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Sun, 21 Sep 2025 17:36:27 -0700 Subject: [PATCH 4/5] update: add atomman mat3ra example nb --- other/materials_designer/atomman-mat3ra.ipynb | 136 ++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 other/materials_designer/atomman-mat3ra.ipynb diff --git a/other/materials_designer/atomman-mat3ra.ipynb b/other/materials_designer/atomman-mat3ra.ipynb new file mode 100644 index 00000000..3ca59907 --- /dev/null +++ b/other/materials_designer/atomman-mat3ra.ipynb @@ -0,0 +1,136 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Atomman and Mat3ra integration example\n", + "\n", + "Installing both packages and related dependencies in JupyterLite/pyodide,\n", + "Loading material from environment or Standata\n", + "Using Atomman to create a vacancy defect in a material.\n", + "Converting back to Mat3ra material and visualizing it." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# import Mat3ra related packages\n", + "import sys\n", + "\n", + "if sys.platform == \"emscripten\":\n", + " import micropip\n", + "\n", + " # Install and import atomman related packages\n", + " micropip.uninstall(\"packaging\")\n", + " await micropip.install(\"packaging==24.1\")\n", + " await micropip.install(\"https://files.mat3ra.com/uploads/pyyaml-6.0.2-cp311-cp311-emscripten_3_1_45_wasm32.whl\")\n", + " await micropip.install(\"https://files.mat3ra.com/uploads/pymongo-4.15.1-cp311-cp311-emscripten_3_1_45_wasm32.whl\")\n", + " await micropip.install(\"https://files.mat3ra.com/uploads/atomman-1.4.11-cp311-cp311-emscripten_3_1_45_wasm32.whl\",keep_going=True)\n", + "\n", + " # Install and import mat3ra related packages\n", + " await micropip.install(\"mat3ra-api-examples\", deps=False)\n", + " await micropip.install('mat3ra-utils')\n", + " await micropip.install('mat3ra-standata', deps=False)\n", + " from mat3ra.utils.jupyterlite.packages import install_packages\n", + " await install_packages(\"\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Load material from inputs\n", + "from utils.jupyterlite import get_materials\n", + "from mat3ra.made.tools.convert import to_poscar\n", + "from mat3ra.standata.materials import Materials\n", + "from mat3ra.made.material import Material\n", + "\n", + "materials = get_materials(globals())\n", + "material = materials[0] or Material.create(Materials.get_by_name_first_match(\"Si\"))\n", + "\n", + "poscar = to_poscar(material)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import atomman as am\n", + "# Load poscar and pass in prop dictionary\n", + "system = am.load('poscar', poscar)\n", + "print(poscar_system)\n", + "system = system.supersize(2,2,1)\n", + "system.atoms_df()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "defected_system = am.defect.vacancy(system, ptd_id=0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "from mat3ra.made.tools.convert import from_poscar\n", + "\n", + "defected_system_poscar = defected_system.dump(\"poscar\")\n", + "defected_material = Material.create(from_poscar(defected_system_poscar))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from utils.visualize import visualize_materials\n", + "\n", + "visualize_materials(defected_material)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python (Pyodide)", + "language": "python", + "name": "python" + }, + "language_info": { + "codemirror_mode": { + "name": "python", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} From fc39c9e54425d097c9b95374e53308e3f74cc752 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Sun, 21 Sep 2025 17:37:46 -0700 Subject: [PATCH 5/5] chore: fix issues --- other/materials_designer/atomman-mat3ra.ipynb | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/other/materials_designer/atomman-mat3ra.ipynb b/other/materials_designer/atomman-mat3ra.ipynb index 3ca59907..9b4dc23e 100644 --- a/other/materials_designer/atomman-mat3ra.ipynb +++ b/other/materials_designer/atomman-mat3ra.ipynb @@ -66,7 +66,7 @@ "import atomman as am\n", "# Load poscar and pass in prop dictionary\n", "system = am.load('poscar', poscar)\n", - "print(poscar_system)\n", + "print(system)\n", "system = system.supersize(2,2,1)\n", "system.atoms_df()" ] @@ -77,6 +77,7 @@ "metadata": {}, "outputs": [], "source": [ + "# Add a vacancy defect\n", "defected_system = am.defect.vacancy(system, ptd_id=0)" ] }, @@ -86,7 +87,7 @@ "metadata": {}, "outputs": [], "source": [ - "\n", + "# Convert back to Mat3ra material\n", "from mat3ra.made.tools.convert import from_poscar\n", "\n", "defected_system_poscar = defected_system.dump(\"poscar\")\n", @@ -103,13 +104,6 @@ "\n", "visualize_materials(defected_material)" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": {