diff --git a/other/materials_designer/atomman-mat3ra.ipynb b/other/materials_designer/atomman-mat3ra.ipynb new file mode 100644 index 00000000..9b4dc23e --- /dev/null +++ b/other/materials_designer/atomman-mat3ra.ipynb @@ -0,0 +1,130 @@ +{ + "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(system)\n", + "system = system.supersize(2,2,1)\n", + "system.atoms_df()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Add a vacancy defect\n", + "defected_system = am.defect.vacancy(system, ptd_id=0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Convert back to Mat3ra material\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)" + ] + } + ], + "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 +} 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 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 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