From 2ead456524531fda3b768cf70167c92bea05166f Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Thu, 7 Aug 2025 19:26:51 -0700 Subject: [PATCH 001/147] chore: remove external uploads mentions --- lang/en/docs/external/actions/create.md | 83 ------------------- lang/en/docs/external/actions/overview.md | 7 -- lang/en/docs/external/overview.md | 23 ----- lang/en/docs/external/status.md | 21 ----- lang/en/docs/external/ui/explorer.md | 11 --- lang/en/docs/getting-started/useful-links.md | 1 - lang/en/docs/jobs/projects.md | 4 - .../docs/tutorials/other/external-upload.json | 80 ------------------ .../docs/tutorials/other/external-upload.md | 54 ------------ lang/en/docs/tutorials/overview.md | 1 - mkdocs.yml | 11 --- scripts/generate_index_of_sub_section.py | 1 - 12 files changed, 297 deletions(-) delete mode 100644 lang/en/docs/external/actions/create.md delete mode 100644 lang/en/docs/external/actions/overview.md delete mode 100644 lang/en/docs/external/overview.md delete mode 100644 lang/en/docs/external/status.md delete mode 100644 lang/en/docs/external/ui/explorer.md delete mode 100644 lang/en/docs/tutorials/other/external-upload.json delete mode 100644 lang/en/docs/tutorials/other/external-upload.md diff --git a/lang/en/docs/external/actions/create.md b/lang/en/docs/external/actions/create.md deleted file mode 100644 index 1f842b336..000000000 --- a/lang/en/docs/external/actions/create.md +++ /dev/null @@ -1,83 +0,0 @@ -# Create External Uploads - -Creating new External Uploads follows [the general explanation](../../entities-general/actions/create.md) - clicking the "Create" button . - -It is assumed that the uploaded files belong to a single [command-line job](../../jobs-cli/overview.md) originated outside of the Exabyte platform. - -## Open Upload Dialog - -Clicking "Create" as prescribed above takes the user to the Upload Dialog where the data can be uploaded. The dialog contains the following parameters. - -### Name - -The name of the Job - -### Job Script File - -The name of (or path to) the [Job script file](../../jobs-cli/batch-scripts). Will be parsed and shown inside the job as input file after upload is complete. - -### Standard Output file - -The name of (or path to) the file containing the standard (textual) output. Will be parsed and shown inside the job as the outpuf file after upload is complete. - -### Description - -Human-readable description of the uploaded data (optional). - -### File archive - -The file archive containing the data. The following must be asserted: - -1. the archive type is ".zip" -2. the size of the archive is less than the maximum size (as shown in the helper message) -3. the archive contains the job files at the top level - -To demonstrate the last point, here's an acceptable content of the archive: - -```text -# Desired archive content -. -|____CONTCAR -|____DOSCAR -|____EIGENVAL -|____IBZKPT -|____INCAR -|____job.rms -|____KPOINTS -|____OSZICAR -|____OUTCAR -|____PCDAT -|____POSCAR -|____vasprun.xml -``` - -and, below is the equivalent nested structure that should be **avoided**: - -```text -# Undesired content -. -|____directory -| |____CONTCAR -| |____DOSCAR -| |____EIGENVAL -| |____IBZKPT -| |____INCAR -| |____job.rms -| |____KPOINTS -| |____OSZICAR -| |____OUTCAR -| |____PCDAT -| |____POSCAR -| |____vasprun.xml -``` - -!!!note "Creating an archive on a UNIX-based system" - If we assume that `job_dir` is the folder containing the job files, the archive can be created using the following example command: `cd job_dir; zip -r9 ../archive.zip . ; cd -` - -## Click "Submit" - -When ready, click "Submit" button to initiate the upload. - -## Demonstration - -For a more detailed demonstration on how external uploads can be created consult the [corresponding tutorial](../../tutorials/other/external-upload.md) diff --git a/lang/en/docs/external/actions/overview.md b/lang/en/docs/external/actions/overview.md deleted file mode 100644 index 1806695f5..000000000 --- a/lang/en/docs/external/actions/overview.md +++ /dev/null @@ -1,7 +0,0 @@ -# External Uploads Actions - -The following set of actions can be performed in the context of External Uploads, using the corresponding [Explorer Interface](../ui/explorer.md). They complement the actions of general applicability [introduced elsewhere](../../entities-general/actions/overview.md). - -## [Create](create.md) - -There are a few specific aspects of the general [Create](../../entities-general/actions/create.md) action which are worth noticing, as explained [here](create.md). diff --git a/lang/en/docs/external/overview.md b/lang/en/docs/external/overview.md deleted file mode 100644 index 7cad8ae78..000000000 --- a/lang/en/docs/external/overview.md +++ /dev/null @@ -1,23 +0,0 @@ -# External Uploads - -In this section we review the concept of External Uploads that can contribute to the creation of [Entities](../entities-general/overview.md) within our platform. - -External data, as it is clear from the name, originates outside of the Exabyte platform, and can be **organized** according to the classification employed within the platform. We introduce the concept of an External Upload - an operation where external data is uploaded to the platform and parsed. - -## View Entities extracted from External Data - -We associate the Entities (eg. Materials, Properties) extracted from external data within a single upload task with a [Job](../jobs/overview.md). And place each such job into a separate [project](../jobs/projects.md#external-project) called "External". - -## [Status](status.md) - -External Uploads have statuses attributed to them as explained [here](status.md). - -## User Interface - -### [Explorer](ui/explorer.md) - -External Uploads Explorer is another specific implementation of the [Explorer](../entities-general/ui/explorer.md) component and is explained [in this page](ui/explorer.md). - -## [Actions](actions/overview.md) - -Some actions pertain specifically to External Uploads, and are introduced [in this page](actions/overview.md). diff --git a/lang/en/docs/external/status.md b/lang/en/docs/external/status.md deleted file mode 100644 index fe6d01f69..000000000 --- a/lang/en/docs/external/status.md +++ /dev/null @@ -1,21 +0,0 @@ -# External Upload Status Indicators - -Items listed under the External Uploads [Explorer](ui/explorer.md) can be in one of the following possible statuses, appearing under its corresponding letter/color badge. - -## Active - -Badge: A - -The "Active" status highlights the fact that the External Upload task is currently in the process of being executed. - -## Finished - -Badge: F - -When the (upload) task is "Finished", (without errors) the status is updated accordingly. - -## Error - -Badge: E - -An "Error" status indicates that the task execution terminated as a result of encountering an error. diff --git a/lang/en/docs/external/ui/explorer.md b/lang/en/docs/external/ui/explorer.md deleted file mode 100644 index ab26aef26..000000000 --- a/lang/en/docs/external/ui/explorer.md +++ /dev/null @@ -1,11 +0,0 @@ -# External Uploads Explorer - -External Uploads Explorer allows users to monitor the uploaded items. Readers can consult the [general explanation of the Explorer interface](../../entities-general/ui/explorer.md) to learn more. - -## Accessing External Uploads Explorer - -Users can navigate to this page by using the corresponding link inside the [Left-hand sidebar](../../ui/left-sidebar.md). - -## Status Indicators - -An important property present in the items list is the [Status indicator](../status.md) present under the "Status" column. diff --git a/lang/en/docs/getting-started/useful-links.md b/lang/en/docs/getting-started/useful-links.md index 6b388789d..2b43dfa06 100644 --- a/lang/en/docs/getting-started/useful-links.md +++ b/lang/en/docs/getting-started/useful-links.md @@ -29,7 +29,6 @@ Some useful information when getting started with the Exabyte.io platform.
  • Example programmatic usage via Jupyter/command-line (CLI):
  • diff --git a/lang/en/docs/jobs/projects.md b/lang/en/docs/jobs/projects.md index a58289b5e..4f5c9eb7c 100644 --- a/lang/en/docs/jobs/projects.md +++ b/lang/en/docs/jobs/projects.md @@ -47,10 +47,6 @@ The Project Status is indicated in [Project Explorer](ui/projects-explorer.md#st Each new Account is initialized with a default project named "Default". It is initially set to be [shared publicly](../collaboration/sharing/access-levels.md) with all platform users. Higher levels of privacy for this and all [subsequently created Projects](actions/create-delete-project.md) can be set when an appropriate [service level](../pricing/service-levels.md) is attributed to the account. -## "External" Project - -Jobs created through [External Uploads](../external/overview.md) are placed into the corresponding project. - ## Project Page Each Project has its own dedicated page, listing all the contained Jobs among other properties. We review Projects Pages [here](ui/project-page.md). diff --git a/lang/en/docs/tutorials/other/external-upload.json b/lang/en/docs/tutorials/other/external-upload.json deleted file mode 100644 index baa0536f7..000000000 --- a/lang/en/docs/tutorials/other/external-upload.json +++ /dev/null @@ -1,80 +0,0 @@ -{ - "descriptionLinks": [ - "Upload External Data: https://docs.mat3ra.com/tutorials/other/external-upload/" - ], - "description": "This tutorial demonstrates how external command-line calculation data can be uploaded to Exabyte Platform to be parsed and organized.", - "tags": [ - { - "...": "../../metadata/general.json#/tags" - } - ], - "title": "Exabyte.io Tutorial: Upload External Job Data", - "youTubeCaptions": [ - { - "text": "Upload External Data tutorial.", - "endTime": "00:00:02.000", - "startTime": "00:00:00.000" - }, - { - "text": "Here's a folder containing data for an example VASP calculation. It contains a flat list of files, including this FCC Germanium structure.", - "endTime": "00:00:10.000", - "startTime": "00:00:02.500" - }, - { - "text": "Let us now compress the files into a zip archive, that we will use to initiate an External Upload.", - "endTime": "00:00:16.500", - "startTime": "00:00:10.500" - }, - { - "text": "Next, we open the Exabyte platform and navigate to the External Uploads page.", - "endTime": "00:00:21.000", - "startTime": "00:00:17.000" - }, - { - "text": "From here, we open the upload dialog and fill in the upload information form.", - "endTime": "00:00:24.000", - "startTime": "00:00:21.500" - }, - { - "text": "Pay attention to the Job Script File and Standard Output File, as their content will be visible upon completion.", - "endTime": "00:00:33.500", - "startTime": "00:00:24.500" - }, - { - "text": "Let's select the archive we prepared earlier and submit the form.", - "endTime": "00:00:40.500", - "startTime": "00:00:37.500" - }, - { - "text": "The upload task will become active, and will shortly finish, turning from orange to green.", - "endTime": "00:00:51.500", - "startTime": "00:00:46.500" - }, - { - "text": "Next, we find the newly created Job inside the External project. Let's open the projects page and navigate to 'External'. The new job is the last entry.", - "endTime": "00:01:06.000", - "startTime": "00:00:57.000" - }, - { - "text": "Open the job. It contains the results (properties) and material information extracted from the uploaded data.", - "endTime": "00:01:18.000", - "startTime": "00:01:10.000" - }, - { - "text": "All job files are now also available on the platform.", - "endTime": "00:01:34.000", - "startTime": "00:01:31.500" - }, - { - "text": "The input and output for the workflow are extracted too, as we hereby demonstrate.", - "endTime": "00:01:41.500", - "startTime": "00:01:37.500" - }, - { - "text": "This is how one can upload external data to the Exabyte platform.", - "endTime": "00:01:47.500", - "startTime": "00:01:42.500" - } - ], - "youTubeId": "oxTm1a4qnLQ" -} diff --git a/lang/en/docs/tutorials/other/external-upload.md b/lang/en/docs/tutorials/other/external-upload.md deleted file mode 100644 index 2fe999566..000000000 --- a/lang/en/docs/tutorials/other/external-upload.md +++ /dev/null @@ -1,54 +0,0 @@ -# Upload an External command-line Job - -This page explains how to initiate an [External Upload](../../external/overview.md) to parse and organize a folder with a data from an external calculation. - -## Notes - -In the present example we use example data from a [VASP](../../software-directory/modeling/vasp/overview.md) calculation, however the directives work for other simulation engines too. - -The platform will attempt to extract the [Entities](../../entities-general/overview.md), such as [Materials](../../materials/overview.md) and [Properties](../../properties/overview.md) from the calculation data in failsafe manner. - -## Prepare an archive - -First, arrange all the files inside a folder. Then create a .zip archive with the data. On a UNIX-based operating system this could be done in command line or righ-hand context menu. The command-line routine could be, for example: - -```bash -cd JOB_DIRECTORY -zip -r9 ../archive.zip . -``` - -## Upload archive - -### Open Upload Dialog - -Navigate to the [External Uploads Explorer](../../external/ui/explorer.md) page and initiate the upload task [creation](../../external/actions/create.md). Inside the Upload Dialog one can set the name of the and its human-readable description as desired. These will be used for the Job created inside the [External Project](../../jobs/projects.md#external-project) when the upload is complete. - -### Fill the form data - -Pay attention to the [job script file](../../external/actions/create.md#job-script-file) and the [standard output](../../external/actions/create.md#standard-output-file). They will be used as the input/output files for the job accordingly. - -### Submit the dialog - -Use the file selector to select the archive prepared in the previous step. When finished, click "Submit" button to initiate the upload. - -## View the External Job - -### Wait for the task to finish - -The [status](../../external/status.md) of the upload will be set to "A" - active, while the upload task is in progress. When the task finished, the status will change to "F" - finished. - -### Navigate into External Project - -In order to view the job, navigate into the list of Projects from the [Left-hand sidebar](../../ui/left-sidebar.md#), then navigate into the [External Project](../../jobs/projects.md#external-project). - -### View the latest Job - -The latest job inside the project is the one containing the uploaded data. The platform will attempt to extract the Materials, Properties, input/output files and administrative information about the job and make it available in the same manner as for the jobs originating inside the platform. - -## Animation - -In the following animation, we demonstrate the above-mentioned steps: we create a non-nested ".zip" archive from the calculation data, upload it to the platform and view the Job (with Materials and Properties) created inside the "External" project as a result. - -
    - -
    diff --git a/lang/en/docs/tutorials/overview.md b/lang/en/docs/tutorials/overview.md index 9f5f0f521..6aab800b7 100644 --- a/lang/en/docs/tutorials/overview.md +++ b/lang/en/docs/tutorials/overview.md @@ -65,7 +65,6 @@ sidebar navigation. - [Accessing the Platform](platform-access.md) - [Jupyter Notebook](other/jupyter.md) - [Restart from Previous Job](other/restart-job.md) - - [Upload External Job Data](other/external-upload.md) - [TensorFlow (GPU)](general-functionality/tensorflow-gpu.md) - Materials - [Overview](materials/overview.md) diff --git a/mkdocs.yml b/mkdocs.yml index 55d5ec961..c56ed29a0 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -211,7 +211,6 @@ nav: - Accessing the Platform: tutorials/platform-access.md - Jupyter Notebook: tutorials/other/jupyter.md - Restart from Previous Job: tutorials/other/restart-job.md - - Upload External Job Data: tutorials/other/external-upload.md - TensorFlow (GPU): tutorials/general-functionality/tensorflow-gpu.md - Materials: - Overview: tutorials/materials/overview.md @@ -641,16 +640,6 @@ nav: - View Jobs List: jobs-cli/actions/view-job-list.md - - External Uploads: - - Overview: external/overview.md - - Status: external/status.md - - User Interface: - - Explorer: external/ui/explorer.md - - Actions: - - Overview: external/actions/overview.md - - Create: external/actions/create.md - - - Properties: - Overview: properties/overview.md - Lifecycle: diff --git a/scripts/generate_index_of_sub_section.py b/scripts/generate_index_of_sub_section.py index 8f4306ff5..76c26c099 100644 --- a/scripts/generate_index_of_sub_section.py +++ b/scripts/generate_index_of_sub_section.py @@ -123,7 +123,6 @@ def gen_index(config, section): # - General Functionality # - [Jupyter Notebook](other/jupyter.md) # - [Restart from Previous Job](other/restart-job.md) -# - [Upload External Job Data](other/external-upload.md) # - [TensorFlow (GPU)](general-functionality/tensorflow-gpu.md) # - Materials # - [Overview](materials/overview.md) From e3e0f911c25e420918f24b9995796274d988e914 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Fri, 8 Aug 2025 14:38:43 -0700 Subject: [PATCH 002/147] update: add images --- .../4-3d-editor-coordinates.webp | 3 +++ .../4-threejs-editor-coordinates.webp | 3 --- .../4-toggle-measure-coordinates.webp | 3 +++ 3 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-3d-editor-coordinates.webp delete mode 100644 images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-threejs-editor-coordinates.webp create mode 100644 images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-toggle-measure-coordinates.webp diff --git a/images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-3d-editor-coordinates.webp b/images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-3d-editor-coordinates.webp new file mode 100644 index 000000000..30488f002 --- /dev/null +++ b/images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-3d-editor-coordinates.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c33dd78db8565a405e4611aa52470b9cc320c95cb5e4c7c412d83e05e70cbc88 +size 15420 diff --git a/images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-threejs-editor-coordinates.webp b/images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-threejs-editor-coordinates.webp deleted file mode 100644 index 011968021..000000000 --- a/images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-threejs-editor-coordinates.webp +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ea3f3d21e176f539fe8bdde11d3c5a2ee296521e844d2ad9a98aaed22bce5e5a -size 153052 diff --git a/images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-toggle-measure-coordinates.webp b/images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-toggle-measure-coordinates.webp new file mode 100644 index 000000000..ef38d706e --- /dev/null +++ b/images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-toggle-measure-coordinates.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48d8b1d7268b9cc05cfe604c119c7476491fe2ef99aabf2beb06d2b12813eb5a +size 20198 From f38404c384a813af28b49907d35a130f6115d5b8 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Fri, 8 Aug 2025 14:39:02 -0700 Subject: [PATCH 003/147] update: use coords copy --- .../specific/defect-point-substitution-graphene.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/defect-point-substitution-graphene.md b/lang/en/docs/tutorials/materials/specific/defect-point-substitution-graphene.md index c5cd3408c..124456f34 100644 --- a/lang/en/docs/tutorials/materials/specific/defect-point-substitution-graphene.md +++ b/lang/en/docs/tutorials/materials/specific/defect-point-substitution-graphene.md @@ -43,12 +43,14 @@ We then use the [Advanced](../../../materials-designer/header-menu/advanced/supe ![Supercell Creation for Graphene](../../../images/tutorials/materials/defects/defect_creation_point_substitution_graphene/2-advanced-supercell.webp "Supercell Graphene") ## 2. Identify Defect Sites. +Next, we can toggle the coordinates measurement in the editor to identify the crystal site positions for the defects. -Next, we open the [3D editor](../../../materials-designer/3d-editor.md) to identify the crystal site positions for the defects. +![Coordinates Measurement](../../../images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-toggle-measure-coordinates.webp "3D Editor Toggle Coordinates") -![3D Editor](../../../images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-threejs-editor-coordinates.webp "3D Editor") +Clicking on each atom will copy the coordinates of the atom to the clipboard as an array, which can then be pasted into the cell of the notebook and used to assign the defect coordinates. + +![3D Editor Coordinates](../../../images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-3d-editor-coordinates.webp "3D Editor Coordinates Copying") -Hover over the atoms to get the coordinates of the atoms to replace. Then copy/paste these coordinates into a text file for later use. ## 3. Create Nitrogen Defects and Vacancies. From ba951ff04f7e33fb46177e8ae6eb6e8119118e82 Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Fri, 8 Aug 2025 14:45:59 -0700 Subject: [PATCH 004/147] update: use coords copy 2 --- .../4-3d-editor-coordinates.webp | 3 +++ .../4-threejs-editor-coordinates.webp | 3 --- .../specific/defect-point-pair-gallium-nitride.md | 9 ++++++--- 3 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 images/tutorials/materials/defects/defect_point_pair_gallium_nitride/4-3d-editor-coordinates.webp delete mode 100644 images/tutorials/materials/defects/defect_point_pair_gallium_nitride/4-threejs-editor-coordinates.webp diff --git a/images/tutorials/materials/defects/defect_point_pair_gallium_nitride/4-3d-editor-coordinates.webp b/images/tutorials/materials/defects/defect_point_pair_gallium_nitride/4-3d-editor-coordinates.webp new file mode 100644 index 000000000..c6e728362 --- /dev/null +++ b/images/tutorials/materials/defects/defect_point_pair_gallium_nitride/4-3d-editor-coordinates.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2dd6c7a300f8dedb41a1a2bcf0808fec5046914b497e93c2e23990cdd444109 +size 20612 diff --git a/images/tutorials/materials/defects/defect_point_pair_gallium_nitride/4-threejs-editor-coordinates.webp b/images/tutorials/materials/defects/defect_point_pair_gallium_nitride/4-threejs-editor-coordinates.webp deleted file mode 100644 index 8b19ef50b..000000000 --- a/images/tutorials/materials/defects/defect_point_pair_gallium_nitride/4-threejs-editor-coordinates.webp +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:996813cb8c291f0e1c019893c922f93d99c62bfa29b2512c46a34a298d7eed3f -size 66834 diff --git a/lang/en/docs/tutorials/materials/specific/defect-point-pair-gallium-nitride.md b/lang/en/docs/tutorials/materials/specific/defect-point-pair-gallium-nitride.md index 41818a692..290748d42 100644 --- a/lang/en/docs/tutorials/materials/specific/defect-point-pair-gallium-nitride.md +++ b/lang/en/docs/tutorials/materials/specific/defect-point-pair-gallium-nitride.md @@ -50,11 +50,14 @@ We then use the [Advanced](../../../materials-designer/header-menu/advanced/supe ## 2. Identify Defect Sites. -Next, we open the [3D editor](../../../materials-designer/3d-editor.md) to identify the crystal site positions for the defects. +Next, we can toggle the coordinates measurement in the editor to identify the crystal site positions for the defects. -![3D Editor](../../../images/tutorials/materials/defects/defect_point_pair_gallium_nitride/4-threejs-editor-coordinates.webp "3D Editor") +![Coordinates Measurement](../../../images/tutorials/materials/defects/defect_creation_point_substitution_graphene/4-toggle-measure-coordinates.webp "3D Editor Toggle Coordinates") + +Clicking on each atom will copy the coordinates of the atom to the clipboard as an array, which can then be pasted into the cell of the notebook and used to assign the defect coordinates. + +![3D Editor Coordinates](../../../images/tutorials/materials/defects/defect_point_pair_gallium_nitride/4-3d-editor-coordinates.webp "3D Editor Coordinates Copying") -Hover over the atoms to get the coordinates of the atoms to replace. Then copy/paste these coordinates into a text file for later use. `[1.608, 4.642, 5.240]` for the Mg substitution defect and `[1.608, 4.642, 7.210]` for the nitrogen vacancy. From d7fe18d302bb87737c78e96fb252c844fedfd7ec Mon Sep 17 00:00:00 2001 From: VsevolodX Date: Fri, 8 Aug 2025 16:23:11 -0700 Subject: [PATCH 005/147] update: sync docs with NBs (gemini-cli) 2 --- ...-planar-grain-boundary-2d-boron-nitride.md | 41 +++++++----- ...om-island-molybdenum-disulfide-platinum.md | 63 ++++++++++--------- .../defect-point-interstitial-tin-oxide.md | 20 +++--- .../defect-point-pair-gallium-nitride.md | 31 +++++---- .../defect-point-substitution-graphene.md | 43 +++++++------ .../defect-point-vacancy-boron-nitride.md | 21 ++++--- .../defect-surface-adatom-graphene.md | 46 +++++++++----- .../defect-surface-island-titanium-nitride.md | 33 ++++++---- .../specific/defect-surface-step-platinum.md | 39 ++++++------ ...ioxide-hafnium-dioxide-titanium-nitride.md | 31 ++++++--- .../interface-2d-2d-graphene-boron-nitride.md | 37 +++++++---- ...nterface-2d-3d-graphene-silicon-dioxide.md | 27 +++++--- .../interface-3d-3d-copper-silicon-dioxide.md | 27 +++++--- ...mensurate-lattices-molybdenum-disulfide.md | 14 ++++- ...layer-twisted-nanoribbons-boron-nitride.md | 15 +++-- .../materials/specific/nanocluster-gold.md | 8 ++- ...erface-film-xy-position-graphene-nickel.md | 45 +++++++++---- .../passivation-edge-nanowire-silicon.md | 42 +++++++------ .../specific/passivation-surface-silicon.md | 41 ++++++++---- .../specific/perturbation-ripples-graphene.md | 50 +++++++++++++-- .../specific/slab-strontium-titanate.md | 7 ++- 21 files changed, 433 insertions(+), 248 deletions(-) diff --git a/lang/en/docs/tutorials/materials/specific/defect-planar-grain-boundary-2d-boron-nitride.md b/lang/en/docs/tutorials/materials/specific/defect-planar-grain-boundary-2d-boron-nitride.md index 80eca1687..def6efaa7 100644 --- a/lang/en/docs/tutorials/materials/specific/defect-planar-grain-boundary-2d-boron-nitride.md +++ b/lang/en/docs/tutorials/materials/specific/defect-planar-grain-boundary-2d-boron-nitride.md @@ -54,21 +54,33 @@ Find and open `create_grain_boundary_film.ipynb`. Edit the grain boundary parame `EDGE_INCLUSION_TOLERANCE = 0.0` -- Edge inclusion parameter, in Angstroms. Controls the overlap of the second phase onto the first phase. ```python +# Material selection +MATERIAL_INDEX = 0 # Index in the list of materials + # Grain boundary parameters TARGET_TWIST_ANGLE = 9.0 # in degrees -BOUNDARY_GAP = 0.0 # Gap between orientations in X direction -XY_SUPERCELL_MATRIX = [[1, 0], [0, 2]] +BOUNDARY_GAP = 0.0 # Gap between two orientations in X direction, in Angstroms +XY_SUPERCELL_MATRIX = [[1, 0], [0, 2]] # Supercell matrix to be applied to each of the orientations before matching +MILLER_INDICES = (0, 0, 1) # Miller indices for the supercell matching +VACUUM = 10.0 # Vacuum thickness in Angstroms, added to the top and bottom of the grain boundary # Search algorithm parameters -MAX_REPETITION = None +MAX_REPETITION = None # Maximum supercell matrix element value ANGLE_TOLERANCE = 0.5 # in degrees -RETURN_FIRST_MATCH = True +RETURN_FIRST_MATCH = True # If True, returns first solution within tolerance -# Distance tolerance for atom merging +# Distance tolerance for two atoms to be considered too close. +# Used when merging two orientations to remove the atoms of the first one. +# Should be less than the expected bond length DISTANCE_TOLERANCE = 1.43 # in Angstroms -# Edge inclusion parameter +# How much to expand inclusion of the edge atoms for both orientations and fill in the gap region. +# A fine-tuning parameter EDGE_INCLUSION_TOLERANCE = 0.0 # in Angstroms + +# Visualization parameters +SHOW_INTERMEDIATE_STEPS = True +CELL_REPETITIONS_FOR_VISUALIZATION = [3, 3, 1] ``` ![Notebook Setup](../../../images/tutorials/materials/defects/defect_planar_grain_boundary_2d_boron_nitride/2-jl-setup-nb-gb.webp "Notebook Setup") @@ -95,21 +107,16 @@ Open JupyterLite Session and find `create_point_defect.ipynb` notebook. Select the h-BN grain boundary structure as input material and configure the adatom defect parameters in the "1.1. Set Notebook Parameters" section: ```python -DEFECT_TYPE = "interstitial" # (e.g. "vacancy", "substitution", "interstitial") -SITE_ID = None # Site index of the defect -COORDINATE = [0.5, 0.45, 0.5] # Position of the defect in crystal coordinates -APPROXIMATE_COORDINATE = None # Approximate coordinates of the defect in crystal coordinates -CHEMICAL_ELEMENT = "N" # Element to be placed at the site (ignored for vacancy) - +# Selected material will be used as a unit cell to create a supercell first. SUPERCELL_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] -# List of dictionaries with defect parameters DEFECT_CONFIGS = [ { - "defect_type": DEFECT_TYPE, - "coordinate": COORDINATE, - "chemical_element": CHEMICAL_ELEMENT, - } + "type": "interstitial", + "coordinate": [0.5, 0.45, 0.5], # Crystal coordinates + "element": "N", + "placement_method": "closest_site", + }, ] ``` diff --git a/lang/en/docs/tutorials/materials/specific/defect-point-adatom-island-molybdenum-disulfide-platinum.md b/lang/en/docs/tutorials/materials/specific/defect-point-adatom-island-molybdenum-disulfide-platinum.md index 0d0050560..3ef947277 100644 --- a/lang/en/docs/tutorials/materials/specific/defect-point-adatom-island-molybdenum-disulfide-platinum.md +++ b/lang/en/docs/tutorials/materials/specific/defect-point-adatom-island-molybdenum-disulfide-platinum.md @@ -53,47 +53,48 @@ Find and open the `create_adatom_defect.ipynb` notebook. Select MoS2 as input ma Set up the slab and defect parameters in the notebook: ```python -# Slab parameters -MILLER_INDICES = (0, 0, 1) # MoS2 basal plane -SLAB_THICKNESS = 1 # Single layer -VACUUM = 10.0 # in Angstrom -SUPERCELL_MATRIX = [[3, 0, 0], [0, 3, 0], [0, 0, 1]] # 3x3 supercell +# Index in the list of materials, to access as materials[MATERIAL_INDEX] +MATERIAL_INDEX = 0 +ELEMENT = "Pt" # Chemical element of the adatom -# Defect configurations for all Pt atoms +# Dictionaries are validated and converted to AdatomDefectDict objects below DEFECT_CONFIGS = [ { - "defect_type": "adatom", - "placement_method": "coordinate", - "chemical_element": "Pt", - "position_on_surface": [5/9, 4/9], # First Pt: atop central Mo - "distance_z": 1.2, # Distance from surface S atoms - "use_cartesian_coordinates": False + "type": "adatom", + "coordinate_2d": [5/9, 4/9], # Crystal coordinates on the surface (x, y) + "distance_z": 1.2, # Method to place the adatom + "element": ELEMENT, }, { - "defect_type": "adatom", - "placement_method": "coordinate", - "chemical_element": "Pt", - "position_on_surface": [2/9, 4/9], # Second Pt: next clockwise atop Mo - "distance_z": 1.2, # Distance from surface S atoms - "use_cartesian_coordinates": False + "type": "adatom", + "coordinate_2d": [2/9, 4/9], # Crystal coordinates on the surface (x, y) + "distance_z": 1.2, # Method to place the adatom + "element": ELEMENT, }, { - "defect_type": "adatom", - "placement_method": "coordinate", - "chemical_element": "Pt", - "position_on_surface": [5/9, 7/9], # Third Pt: next clockwise atop Mo - "distance_z": 1.2, # Distance from surface S atoms - "use_cartesian_coordinates": False + "type": "adatom", + "coordinate_2d": [5/9, 7/9], # Crystal coordinates on the surface (x, y) + "distance_z": 1.2, # Method to place the adatom + "element": ELEMENT, }, { - "defect_type": "adatom", - "placement_method": "coordinate", - "chemical_element": "Pt", - "position_on_surface": [4/9, 5/9], # Fourth Pt: centered atop S - "distance_z": 1.6, # Distance between Pt atom layers, in Angstrom - "use_cartesian_coordinates": False - } + "type": "adatom", + "coordinate_2d": [4/9, 5/9], # Crystal coordinates on the surface (x, y) + "distance_z": 1.6, # Method to place the adatom + "element": ELEMENT, + }, ] + + +PLACEMENT_METHOD = "new_crystal_site" # Method to place the adatom, e.g., "new_crystal_site", "exact_coordinate", "equidistant" + + +# Slab parameters +MILLER_INDICES = (0, 0, 1) # Miller indices of the surface +SLAB_THICKNESS = 1 # Thickness of the slab in unit cells +VACUUM = 10.0 # Vacuum thickness in Angstrom +XY_SUPERCELL_MATRIX = [[3, 0], [0, 3]] # Supercell matrix for the slab +TERMINATION_FORMULA = None # Stoichiometric formula of the slab termination to be used. ``` Key parameters explained: diff --git a/lang/en/docs/tutorials/materials/specific/defect-point-interstitial-tin-oxide.md b/lang/en/docs/tutorials/materials/specific/defect-point-interstitial-tin-oxide.md index 28aad98fc..c1c9fe56e 100644 --- a/lang/en/docs/tutorials/materials/specific/defect-point-interstitial-tin-oxide.md +++ b/lang/en/docs/tutorials/materials/specific/defect-point-interstitial-tin-oxide.md @@ -54,23 +54,21 @@ We'll modify its parameters to create the Sn-vacancy O-interstitial defects acco Replace the default parameters in section 1.1 with: ```python -# Supercell parameters. +# Selected material will be used as a unit cell to create a supercell first. SUPERCELL_MATRIX = [[2, 0, 0], [0, 2, 0], [0, 0, 2]] -# Defect parameters. DEFECT_CONFIGS = [ { - "defect_type": "vacancy", - # Coordiante will be resolved to nearest atom. - "approximate_coordinate": [0.0, 0.25, 0.525], + "type": "vacancy", + "coordinate": [0.0, 0.25, 0.525], # Crystal coordinates + "placement_method": "closest_site", }, { - "defect_type": "interstitial", - # Coordiante will be resolved to nearest Voronoi site. - "coordinate": [0.0, 0.25, 0.35], - "chemical_element": "O", - "placement_method": "voronoi_site" - } + "type": "interstitial", + "coordinate": [0.0, 0.25, 0.35], # Crystal coordinates + "element": "O", + "placement_method": "voronoi_site", + }, ] ``` ![Defect Parameters](../../../images/tutorials/materials/defects/defect_point_interstitial_tin_oxide/3-jl-setup-nb.webp "Defect parameters for O-interstitial in SnO") diff --git a/lang/en/docs/tutorials/materials/specific/defect-point-pair-gallium-nitride.md b/lang/en/docs/tutorials/materials/specific/defect-point-pair-gallium-nitride.md index 290748d42..91200b293 100644 --- a/lang/en/docs/tutorials/materials/specific/defect-point-pair-gallium-nitride.md +++ b/lang/en/docs/tutorials/materials/specific/defect-point-pair-gallium-nitride.md @@ -82,21 +82,28 @@ Next, edit `create_point_defect_pair.ipynb` notebook to modify the parameters by Copy the below content and edit the "1.1. Set up defect parameters" cell in the notebook as follows: ```python +from types import SimpleNamespace + +# Selected material will be used as a unit cell to create a supercell first. SUPERCELL_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] # List of dictionaries with defect parameters -PRIMARY_DEFECT_CONFIG = { - "defect_type": "substitution", - "approximate_coordinate": [1.608, 4.642, 5.240], - "chemical_element": "Mg", - "use_cartesian_coordinates": True, -} - -SECONDARY_DEFECT_CONFIG = { - "defect_type": "vacancy", - "approximate_coordinate": [1.608, 4.642, 7.210], - "use_cartesian_coordinates": True, -} +PRIMARY_DEFECT_CONFIG = SimpleNamespace( + defect_type="substitution", + coordinate=[1.608, 4.642, 5.240], # Approx. coord that will be resolved to the closest site + use_cartesian_coordinates=True, # Use cartesian or crystal coordinates + chemical_element="Mg", + # "site_id": 0, # Index of the atom in the host material + # "coordinate": None, # Exact position (override the approximate coordinate) +) + +SECONDARY_DEFECT_CONFIG = SimpleNamespace( + defect_type="vacancy", + approximate_coordinate=[1.608, 4.642, 7.210], # Approx. coord that will be resolved to the closest site + use_cartesian_coordinates=True, + # "site_id": 0, # Index of the atom in the host material + # "coordinate": None, # Exact position (override the approximate coordinate) +) ``` Here's the visual of the updated content: diff --git a/lang/en/docs/tutorials/materials/specific/defect-point-substitution-graphene.md b/lang/en/docs/tutorials/materials/specific/defect-point-substitution-graphene.md index 124456f34..d54ebe34f 100644 --- a/lang/en/docs/tutorials/materials/specific/defect-point-substitution-graphene.md +++ b/lang/en/docs/tutorials/materials/specific/defect-point-substitution-graphene.md @@ -73,39 +73,38 @@ Next, edit `create_point_defect.ipynb` notebook to modify the parameters by addi Copy the below content and edit the "1.1. Set up defect parameters" cell in the notebook as follows: ```python -DEFECT_TYPE = "substitution" -SITE_ID = None # `from_site_id` method will be ignored -COORDINATE = None # default method will be ignored -APPROXIMATE_COORDINATE = None -CHEMICAL_ELEMENT = "N" +# Selected material will be used as a unit cell to create a supercell first. SUPERCELL_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] -USE_CARTESIAN_COORDINATES = True DEFECT_CONFIGS = [ { - "defect_type": "substitution", - "approximate_coordinate": [4.9, 2.85, 10], - "chemical_element": CHEMICAL_ELEMENT, - "use_cartesian_coordinates": USE_CARTESIAN_COORDINATES + "type": "substitution", + "coordinate": [4.9, 2.85, 10], + "element": "N", + "placement_method": "closest_site", + "use_cartesian_coordinates": True }, { - "defect_type": "substitution", - "approximate_coordinate": [3.7, 4.9, 10], - "chemical_element": CHEMICAL_ELEMENT, - "use_cartesian_coordinates": USE_CARTESIAN_COORDINATES + "type": "substitution", + "coordinate": [3.7, 4.9, 10], + "element": "N", + "placement_method": "closest_site", + "use_cartesian_coordinates": True }, { - "defect_type": "substitution", - "approximate_coordinate": [2.45, 2.85, 10], - "chemical_element": CHEMICAL_ELEMENT, - "use_cartesian_coordinates": USE_CARTESIAN_COORDINATES + "type": "substitution", + "coordinate": [2.45, 2.85, 10], + "element": "N", + "placement_method": "closest_site", + "use_cartesian_coordinates": True }, { - "defect_type": "vacancy", - "approximate_coordinate": [3.7, 3.55, 10], - "use_cartesian_coordinates": USE_CARTESIAN_COORDINATES + "type": "vacancy", + "coordinate": [3.7, 3.55, 10], + "placement_method": "closest_site", + "use_cartesian_coordinates": True }, -] +] ``` Here's the visual of the updated content: diff --git a/lang/en/docs/tutorials/materials/specific/defect-point-vacancy-boron-nitride.md b/lang/en/docs/tutorials/materials/specific/defect-point-vacancy-boron-nitride.md index fac376944..465eaedcb 100644 --- a/lang/en/docs/tutorials/materials/specific/defect-point-vacancy-boron-nitride.md +++ b/lang/en/docs/tutorials/materials/specific/defect-point-vacancy-boron-nitride.md @@ -59,11 +59,15 @@ Select the "Advanced > [JupyterLite Transformation](../../../materials-designer/ Find and open `create_nanoribbon.ipynb` in the list of notebooks. Edit the nanoribbon parameters in section 1.1 of the notebook: ```python -WIDTH = 3 # in number of unit cells -LENGTH = 6 # in number of unit cells -VACUUM_WIDTH = 0 # in number of unit cells -VACUUM_LENGTH = 0 # in number of unit cells -EDGE_TYPE = "zigzag" # "zigzag" or "armchair" +# Index in the list of materials, to access as materials[MATERIAL_INDEX] +MATERIAL_INDEX = 0 + +# Widths and lengths are in number of unit cells +WIDTH = 3 # in unit cells +LENGTH = 6 # in unit cells +VACUUM_WIDTH = 0 # in Angstroms +VACUUM_LENGTH = 0 # in Angstroms +EDGE_TYPE = "zigzag" # "zigzag" or "armchair" ``` ![Nanoribbon Parameters](../../../images/tutorials/materials/defects/defect_point_vacancy_boron_nitride/2-jl-nb-setup-nanoribbon.webp "Nanoribbon Parameters") @@ -92,11 +96,14 @@ After creating the nanoribbon, we'll introduce the vacancy defect using the poin Open `create_point_defect.ipynb` and modify the defect configuration parameters: ```python +# Selected material will be used as a unit cell to create a supercell first. SUPERCELL_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]] + DEFECT_CONFIGS = [ { - "defect_type": "vacancy", - "approximate_coordinate": [0.5, 0.5, 0.5], + "type": "vacancy", + "coordinate": [0.5, 0.5, 0.5], + "placement_method": "closest_site", "use_cartesian_coordinates": False } ] diff --git a/lang/en/docs/tutorials/materials/specific/defect-surface-adatom-graphene.md b/lang/en/docs/tutorials/materials/specific/defect-surface-adatom-graphene.md index 263a55da1..663e810ac 100644 --- a/lang/en/docs/tutorials/materials/specific/defect-surface-adatom-graphene.md +++ b/lang/en/docs/tutorials/materials/specific/defect-surface-adatom-graphene.md @@ -64,18 +64,30 @@ Next, edit `create_adatom_defect.ipynb` notebook to modify the parameters by cha Copy the content below and adjust the "1.1. Set up slab parameters" cell in the notebook: ```python -DEFECT_TYPE = "adatom" -PLACEMENT_METHOD = "equidistant" -CHEMICAL_ELEMENT = "Li" -APPROXIMATE_POSITION_ON_SURFACE = [0.5, 0.5] -USE_CARTESIAN_COORDINATES = False -DISTANCE_Z = 1.71 +# Index in the list of materials, to access as materials[MATERIAL_INDEX] +MATERIAL_INDEX = 0 +ELEMENT = "Li" # Chemical element of the adatom + +# Dictionaries are validated and converted to AdatomDefectDict objects below +DEFECT_CONFIGS = [ + { + "type": "adatom", + "coordinate_2d": [0.5, 0.5], # Crystal coordinates on the surface (x, y) + "distance_z": 1.71, # Method to place the adatom + "element": ELEMENT, + } +] + + +PLACEMENT_METHOD = "equidistant" # Method to place the adatom, e.g., "new_crystal_site", "exact_coordinate", "equidistant" + # Slab parameters -MILLER_INDICES = (0, 0, 1) -SLAB_THICKNESS = 1 -VACUUM = 6 -SUPERCELL_MATRIX = [[4, 0, 0], [0, 4, 0], [0, 0, 1]] +MILLER_INDICES = (0, 0, 1) # Miller indices of the surface +SLAB_THICKNESS = 1 # Thickness of the slab in unit cells +VACUUM = 6.0 # Vacuum thickness in Angstrom +XY_SUPERCELL_MATRIX = [[4, 0], [0, 4]] # Supercell matrix for the slab +TERMINATION_FORMULA = None # Stoichiometric formula of the slab termination to be used. ``` ### 2.3. Run the notebook. @@ -111,7 +123,7 @@ For example, to create a Graphene structure with a Na adatom, adjust the paramet ```python CHEMICAL_ELEMENT = "Na" -APPROXIMATE_POSITION_ON_SURFACE = [0.5, 0.5] +COORDINATE_2D = [0.5, 0.5] DISTANCE_Z = 2.28 ``` @@ -120,7 +132,7 @@ DISTANCE_Z = 2.28 For K adatom on hollow site: ```python CHEMICAL_ELEMENT = "K" -APPROXIMATE_POSITION_ON_SURFACE = [0.5, 0.5] +COORDINATE_2D = [0.5, 0.5] DISTANCE_Z = 2.60 ``` @@ -130,7 +142,7 @@ DISTANCE_Z = 2.60 For Ca adatom on hollow site: ```python CHEMICAL_ELEMENT = "Ca" -APPROXIMATE_POSITION_ON_SURFACE = [0.5, 0.5] +COORDINATE_2D = [0.5, 0.5] DISTANCE_Z = 2.29 ``` @@ -140,7 +152,7 @@ DISTANCE_Z = 2.29 For Al adatom on hollow site: ```python CHEMICAL_ELEMENT = "Al" -APPROXIMATE_POSITION_ON_SURFACE = [0.5, 0.5] +COORDINATE_2D = [0.5, 0.5] DISTANCE_Z = 2.13 ``` @@ -150,7 +162,7 @@ DISTANCE_Z = 2.13 For Ga adatom on hollow site: ```python CHEMICAL_ELEMENT = "Ga" -APPROXIMATE_POSITION_ON_SURFACE = [0.5, 0.5] +COORDINATE_2D = [0.5, 0.5] DISTANCE_Z = 2.20 ``` @@ -160,7 +172,7 @@ DISTANCE_Z = 2.20 For In adatom on hollow site: ```python CHEMICAL_ELEMENT = "In" -APPROXIMATE_POSITION_ON_SURFACE = [0.5, 0.5] +COORDINATE_2D = [0.5, 0.5] DISTANCE_Z = 2.45 ``` @@ -170,7 +182,7 @@ DISTANCE_Z = 2.45 For Sn adatom on top site: ```python CHEMICAL_ELEMENT = "Sn" -APPROXIMATE_POSITION_ON_SURFACE = [7/12, 5/12] +COORDINATE_2D = [7/12, 5/12] DISTANCE_Z = 2.82 ``` diff --git a/lang/en/docs/tutorials/materials/specific/defect-surface-island-titanium-nitride.md b/lang/en/docs/tutorials/materials/specific/defect-surface-island-titanium-nitride.md index 1119fa8e2..5a4a3b9fd 100644 --- a/lang/en/docs/tutorials/materials/specific/defect-surface-island-titanium-nitride.md +++ b/lang/en/docs/tutorials/materials/specific/defect-surface-island-titanium-nitride.md @@ -63,10 +63,12 @@ MILLER_INDICES = (0, 0, 1) THICKNESS = 3 # in atomic layers VACUUM = 10.0 # in angstroms XY_SUPERCELL_MATRIX = [[10, 0], [0, 10]] -USE_ORTHOGONAL_Z = True +USE_ORTHOGONAL_C = True USE_CONVENTIONAL_CELL = True -# Index of the termination pair to be selected +# Stoichiometric formula of the slab termination to be used. +SLAB_TERMINATION_FORMULA = None +# if None, the index of all possible terminations will be used TERMINATION_INDEX = 0 ``` @@ -125,25 +127,32 @@ Notice, that we did not create the slab yet, so it is necessary to provide slab Copy the below content and edit the "1.1. Set up defect parameters" cell in the notebook as follows: ```python -ISLAND_SHAPE = 'box' -AUTO_ADD_VACUUM = True -VACUUM_THICKNESS = 10.0 -NUMBER_OF_ADDED_LAYERS = 0.5 - -BOX_PARAMETERS = { +# Shape-specific parameters +# Choose the island shape: 'cylinder', 'sphere', 'box', or 'triangular_prism' +# and the corresponding parameters +SHAPE_PARAMETERS = { + 'shape': 'box', 'min_coordinate': [0.25, 0.2, 0], - 'max_coordinate': [0.65, 0.6, 1], - "use_cartesian_coordinates": False + 'max_coordinate': [0.65, 0.6, 1] } +# Common parameters +CENTER_POSITION = [0.5, 0.5, 0.5] # Center of the island +USE_CARTESIAN_COORDINATES = False # Use Cartesian coordinates for the island +NUMBER_OF_ADDED_LAYERS = 0.5 # Number of layers to add to the island + +# Vacuum parameters for builder +AUTO_ADD_VACUUM = True # Automatically add vacuum to the slab +VACUUM_THICKNESS = 10.0 # Thickness of the vacuum + +# Slab parameters for creating a new slab if provided material is not a slab DEFAULT_SLAB_PARAMETERS = { "miller_indices": (0,0,1), "thickness": 3, "vacuum": 0.0, - "use_orthogonal_z": True, + "use_orthogonal_c": True, "xy_supercell_matrix": [[10, 0], [0, 10]] } - ``` Here's the visual of the updated content: diff --git a/lang/en/docs/tutorials/materials/specific/defect-surface-step-platinum.md b/lang/en/docs/tutorials/materials/specific/defect-surface-step-platinum.md index cc2058789..78a2380cc 100644 --- a/lang/en/docs/tutorials/materials/specific/defect-surface-step-platinum.md +++ b/lang/en/docs/tutorials/materials/specific/defect-surface-step-platinum.md @@ -59,13 +59,19 @@ Select "Advanced > [JupyterLite Transformation](../../../materials-designer/head Open a `create_slab.ipynb` notebook and set up the slab parameters in the "1.1. Set up notebook" cell: ```python -MATERIAL_NAME = "Pt" +# Enable interactive selection of terminations via UI prompt +IS_TERMINATIONS_SELECTION_INTERACTIVE = False + MILLER_INDICES = (2, 1, 1) THICKNESS = 6 # in atomic layers VACUUM = 10.0 # in angstroms XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] -USE_ORTHOGONAL_Z = True +USE_ORTHOGONAL_C = True USE_CONVENTIONAL_CELL = True + +# Stoichiometric formula of the slab termination to be used. +SLAB_TERMINATION_FORMULA = None +# if None, the index of all possible terminations will be used TERMINATION_INDEX = 0 ``` @@ -104,34 +110,27 @@ First, open `create_terrace_defect.ipynb`and select Pt as the input material. ```python # Material selection -# Which material to use from input list -MATERIAL_INDEX = 0 - -# Terrace parameters: -# Normal vector describing a plane that cuts the terrace from added layers (Miller indices) -CUT_DIRECTION = [0,1,1] -# Point the cutting plane passes through, in crystal coordinates -PIVOT_COORDINATE = [0.5, 0.5, 0.5] -# Height of terrace in atomic layers -NUMBER_OF_ADDED_LAYERS = 1 -# Use cartesian instead of crystal coordinates -USE_CARTESIAN_COORDINATES = False -# Rotate to match periodic boundary conditions -ROTATE_TO_MATCH_PBC = True +MATERIAL_INDEX = 0 # Which material to use from input list + +# Terrace parameters +CUT_DIRECTION = [0, 1, 1] # Normal vector describing a plane that cuts the terrace from added layers (Miller indices) +PIVOT_COORDINATE = [0.5, 0.5, 0.5] # Point the cutting plane passes through, in crystal coordinates +NUMBER_OF_ADDED_LAYERS = 1 # Height of terrace in atomic layers +USE_CARTESIAN_COORDINATES = False # Use cartesian instead of crystal coordinates +ROTATE_TO_MATCH_PBC = True # Rotate to match periodic boundary conditions # Slab parameters for creating a new slab if provided material is not a slab DEFAULT_SLAB_PARAMETERS = { - "miller_indices": (1,1,1), + "miller_indices": (1, 1, 1), "thickness": 6, "vacuum": 10.0, - "use_orthogonal_z": True, + "USE_ORTHOGONAL_C": True, "xy_supercell_matrix": [[2, 0], [0, 2]] } # Visualization parameters SHOW_INTERMEDIATE_STEPS = True -# Structure repeat in view -CELL_REPETITIONS_FOR_VISUALIZATION = [1, 1, 1] +CELL_REPETITIONS_FOR_VISUALIZATION = [1, 1, 1] # Structure repeat in view ``` ![Terrace Parameters](../../../images/tutorials/materials/defects/defect_surface_step_platinum/4-jl-setup-nb-terrace.webp "Terrace Parameters") diff --git a/lang/en/docs/tutorials/materials/specific/heterostructure-silicon-silicon-dioxide-hafnium-dioxide-titanium-nitride.md b/lang/en/docs/tutorials/materials/specific/heterostructure-silicon-silicon-dioxide-hafnium-dioxide-titanium-nitride.md index 0c5012ed1..72dc6bd4f 100644 --- a/lang/en/docs/tutorials/materials/specific/heterostructure-silicon-silicon-dioxide-hafnium-dioxide-titanium-nitride.md +++ b/lang/en/docs/tutorials/materials/specific/heterostructure-silicon-silicon-dioxide-hafnium-dioxide-titanium-nitride.md @@ -101,28 +101,39 @@ Run the notebook to create and pass the TiN slab to Materials Designer. Open `create_interface_with_min_strain_zsl.ipynb` and configure: ```python -MAX_AREA = 200 # Maximum area for strain matching -MAX_AREA_RATIO_TOLERANCE = 0.25 # Maximum area ratio tolerance -MAX_ANGLE_TOLERANCE = 0.15 # Maximum angle tolerance -MAX_LENGTH_TOLERANCE = 0.15 # Maximum length tolerance - FILM_INDEX = 1 # SiO2 FILM_MILLER_INDICES = (1, 0, 0) FILM_THICKNESS = 3 -FILM_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] +FILM_TERMINATION_FORMULA = None # if None, the first termination will be used FILM_VACUUM = 0.0 -FILM_USE_ORTHOGONAL_Z = True +FILM_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] +FILM_USE_ORTHOGONAL_C = True # Changed from FILM_USE_ORTHOGONAL_Z SUBSTRATE_INDEX = 0 # Si SUBSTRATE_MILLER_INDICES = (1, 0, 0) SUBSTRATE_THICKNESS = 4 -SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] +SUBSTRATE_TERMINATION_FORMULA = None # if None, the first termination will be used SUBSTRATE_VACUUM = 5.0 -SUBSTRATE_USE_ORTHOGONAL_Z = True +SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] +SUBSTRATE_USE_ORTHOGONAL_C = True # Changed from SUBSTRATE_USE_ORTHOGONAL_Z INTERFACE_DISTANCE = 2.5 # Angstroms INTERFACE_VACUUM = 5.0 # Angstroms -TERMINATION_PAIR_INDEX = 0 + +# Whether to convert materials to conventional cells before creating slabs. +# To create interfaces with smaller cells, set this flag to False. (and pass already conventional cells as input) +USE_CONVENTIONAL_CELL = True + +# Maximum area for the superlattice search algorithm (the final interface area will be smaller) +MAX_AREA = 200 # in Angstrom^2 +# Additional fine-tuning parameters (increase values to get more strained matches): +MAX_AREA_TOLERANCE = 0.25 # in Angstrom^2 +MAX_LENGTH_TOLERANCE = 0.15 +MAX_ANGLE_TOLERANCE = 0.15 + +# Whether to reduce the resulting interface cell to the primitive cell after the interface creation. +# If the reduction causes unexpected results, try increasing the `MAX_AREA` for search. +REDUCE_RESULT_CELL_TO_PRIMITIVE = True ``` We set a higher tolerances to achieve smaller cell with higher strain of the film (SiO2). diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md b/lang/en/docs/tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md index 6aed6233d..d8314c2e9 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-2d-graphene-boron-nitride.md @@ -71,26 +71,39 @@ Adjust the "1.1. Set up slab parameters" cell in the notebook according to: # Enable interactive selection of terminations via UI prompt IS_TERMINATIONS_SELECTION_INTERACTIVE = False -FILM_INDEX = 1 # Index in the list of materials, to access as materials[FILM_INDEX] +FILM_INDEX = 1 # Index in the list of materials, to access as materials[FILM_INDEX] FILM_MILLER_INDICES = (0, 0, 1) FILM_THICKNESS = 1 # in atomic layers +FILM_TERMINATION_FORMULA = None # if None, the first termination will be used FILM_VACUUM = 0.0 # in angstroms FILM_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] -FILM_USE_ORTHOGONAL_Z = True +FILM_USE_ORTHOGONAL_C = True SUBSTRATE_INDEX = 0 SUBSTRATE_MILLER_INDICES = (0, 0, 1) SUBSTRATE_THICKNESS = 1 # in atomic layers +SUBSTRATE_TERMINATION_FORMULA = None # if None, the first termination will be used SUBSTRATE_VACUUM = 0.0 # in angstroms SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] -SUBSTRATE_USE_ORTHOGONAL_Z = True - -# Maximum area for the superlattice search algorithm -MAX_AREA = 50 # in Angstrom^2 -# Set the termination pair indices -TERMINATION_PAIR_INDEX = 0 # Will be overridden in interactive selection is used -INTERFACE_DISTANCE = 3.4 # in Angstrom -INTERFACE_VACUUM = 20.0 # in Angstrom +SUBSTRATE_USE_ORTHOGONAL_C = True + +INTERFACE_DISTANCE = 3.4 # Gap between substrate and film, in Angstrom +INTERFACE_VACUUM = 20.0 # Vacuum over film, in Angstrom + +# Whether to convert materials to conventional cells before creating slabs. +# To create interfaces with smaller cells, set this flag to False. (and pass already conventional cells as input) +USE_CONVENTIONAL_CELL = True + +# Maximum area for the superlattice search algorithm (the final interface area will be smaller) +MAX_AREA = 50 # in Angstrom^2 +# Additional fine-tuning parameters (increase values to get more strained matches): +MAX_AREA_TOLERANCE = 0.09 # in Angstrom^2 +MAX_LENGTH_TOLERANCE = 0.05 +MAX_ANGLE_TOLERANCE = 0.02 + +# Whether to reduce the resulting interface cell to the primitive cell after the interface creation. +# If the reduction causes unexpected results, try increasing the `MAX_AREA` for search. +REDUCE_RESULT_CELL_TO_PRIMITIVE = True ``` ![Notebook setup](../../../images/tutorials/materials/interfaces/interface_2d_2d_graphene_boron_nitride/2-jl-setup-notebook.webp "Notebook setup") @@ -126,8 +139,8 @@ a = selected_interface.lattice.a shifted_interface = interface_displace_part( interface=selected_interface, displacement=[0, n * a / np.sqrt(3), 0], - use_cartesian_coordinates=True) - + use_cartesian_coordinates=True, +) ``` ![Shift Interface](../../../images/tutorials/materials/interfaces/interface_2d_2d_graphene_boron_nitride/4-jl-setup-shift.webp "Shift Interface") diff --git a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md index 8c88720fa..aad0330f5 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md +++ b/lang/en/docs/tutorials/materials/specific/interface-2d-3d-graphene-silicon-dioxide.md @@ -71,23 +71,36 @@ IS_TERMINATIONS_SELECTION_INTERACTIVE = False FILM_INDEX = 1 # Index in the list of materials, to access as materials[FILM_INDEX] FILM_MILLER_INDICES = (0, 0, 1) FILM_THICKNESS = 1 # in atomic layers +FILM_TERMINATION_FORMULA = None # if None, the first termination will be used FILM_VACUUM = 0.0 # in angstroms FILM_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] -FILM_USE_ORTHOGONAL_Z = True +FILM_USE_ORTHOGONAL_C = True SUBSTRATE_INDEX = 0 SUBSTRATE_MILLER_INDICES = (0, 0, 1) SUBSTRATE_THICKNESS = 7 # in atomic layers (for 14 bilayers -- from manuscript) +SUBSTRATE_TERMINATION_FORMULA = None # if None, the first termination will be used SUBSTRATE_VACUUM = 0.0 # in angstroms SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] -SUBSTRATE_USE_ORTHOGONAL_Z = True +SUBSTRATE_USE_ORTHOGONAL_C = True -# Maximum area for the superlattice search algorithm +INTERFACE_DISTANCE = 2.58 # Gap between substrate and film, in Angstrom +INTERFACE_VACUUM = 20.0 # Vacuum over film, in Angstrom + +# Whether to convert materials to conventional cells before creating slabs. +# To create interfaces with smaller cells, set this flag to False. (and pass already conventional cells as input) +USE_CONVENTIONAL_CELL = True + +# Maximum area for the superlattice search algorithm (the final interface area will be smaller) MAX_AREA = 150 # in Angstrom^2 -# Set the termination pair indices -TERMINATION_PAIR_INDICES = [1] # For O-terminated -INTERFACE_DISTANCE = 2.58 # in Angstrom -- from manuscript -INTERFACE_VACUUM = 20.0 # in Angstrom -- from manuscript +# Additional fine-tuning parameters (increase values to get more strained matches): +MAX_AREA_TOLERANCE = 0.09 # in Angstrom^2 +MAX_LENGTH_TOLERANCE = 0.05 +MAX_ANGLE_TOLERANCE = 0.02 + +# Whether to reduce the resulting interface cell to the primitive cell after the interface creation. +# If the reduction causes unexpected results, try increasing the `MAX_AREA` for search. +REDUCE_RESULT_CELL_TO_PRIMITIVE = True ``` ![Notebook Setup](../../../images/tutorials/materials/interfaces/interface_2d_3d_graphene_silicon_dioxide/2-jl-setup-notebook.webp "Notebook Setup") diff --git a/lang/en/docs/tutorials/materials/specific/interface-3d-3d-copper-silicon-dioxide.md b/lang/en/docs/tutorials/materials/specific/interface-3d-3d-copper-silicon-dioxide.md index 75723837e..6445f4b97 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-3d-3d-copper-silicon-dioxide.md +++ b/lang/en/docs/tutorials/materials/specific/interface-3d-3d-copper-silicon-dioxide.md @@ -74,23 +74,36 @@ IS_TERMINATIONS_SELECTION_INTERACTIVE = False FILM_INDEX = 1 # Index in the list of materials, to access as materials[FILM_INDEX] FILM_MILLER_INDICES = (0, 0, 1) FILM_THICKNESS = 3 # in atomic layers +FILM_TERMINATION_FORMULA = None # if None, the first termination will be used FILM_VACUUM = 0.0 # in angstroms FILM_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] -FILM_USE_ORTHOGONAL_Z = True +FILM_USE_ORTHOGONAL_C = True SUBSTRATE_INDEX = 0 SUBSTRATE_MILLER_INDICES = (0, 0, 1) SUBSTRATE_THICKNESS = 3 # in atomic layers +SUBSTRATE_TERMINATION_FORMULA = None # if None, the first termination will be used SUBSTRATE_VACUUM = 0.0 # in angstroms SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] -SUBSTRATE_USE_ORTHOGONAL_Z = True +SUBSTRATE_USE_ORTHOGONAL_C = True -# Maximum area for the superlattice search algorithm +INTERFACE_DISTANCE = 2.4 # Gap between substrate and film, in Angstrom +INTERFACE_VACUUM = 18.0 # Vacuum over film, in Angstrom + +# Whether to convert materials to conventional cells before creating slabs. +# To create interfaces with smaller cells, set this flag to False. (and pass already conventional cells as input) +USE_CONVENTIONAL_CELL = True + +# Maximum area for the superlattice search algorithm (the final interface area will be smaller) MAX_AREA = 150 # in Angstrom^2 -# Set the termination pair indices -TERMINATION_PAIR_INDEX = 0 -INTERFACE_DISTANCE = 2.4 # in Angstrom -INTERFACE_VACUUM = 18.0 # in Angstrom +# Additional fine-tuning parameters (increase values to get more strained matches): +MAX_AREA_TOLERANCE = 0.09 # in Angstrom^2 +MAX_LENGTH_TOLERANCE = 0.05 +MAX_ANGLE_TOLERANCE = 0.02 + +# Whether to reduce the resulting interface cell to the primitive cell after the interface creation. +# If the reduction causes unexpected results, try increasing the `MAX_AREA` for search. +REDUCE_RESULT_CELL_TO_PRIMITIVE = True ``` ![Notebook setup](../../../images/tutorials/materials/interfaces/interface_3d_3d_copper_cristobalite/1-jl-setup-notebook.webp "Notebook setup") diff --git a/lang/en/docs/tutorials/materials/specific/interface-bilayer-twisted-commensurate-lattices-molybdenum-disulfide.md b/lang/en/docs/tutorials/materials/specific/interface-bilayer-twisted-commensurate-lattices-molybdenum-disulfide.md index 6836d6680..504ca060d 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-bilayer-twisted-commensurate-lattices-molybdenum-disulfide.md +++ b/lang/en/docs/tutorials/materials/specific/interface-bilayer-twisted-commensurate-lattices-molybdenum-disulfide.md @@ -59,7 +59,7 @@ Adjust the "1.1. Set up slab parameters" cell in the notebook according to: ```python # Material selection and basic parameters -FILM_INDEX = 0 # Index in the list of materials, to access as materials[FILM_INDEX] +FILM_INDEX = 0 # Index in the list of materials, to access as materials[FILM_INDEX] SUBSTRATE_INDEX = None # Can be None to use same material as film # Twisted interface parameters @@ -67,11 +67,19 @@ TARGET_TWIST_ANGLE = 22.0 # in degrees INTERFACE_DISTANCE = 6.5 # in Angstroms INTERFACE_VACUUM = 20.0 # in Angstroms -# Search algorithm parameters -MAX_REPETITION = 6 # Maximum supercell matrix element value +# Commensurate interface parameters (following the test pattern) ANGLE_TOLERANCE = 0.5 # in degrees +MAX_SUPERCELL_MATRIX_INT = 6 # Maximum supercell matrix element value RETURN_FIRST_MATCH = True # If True, returns first solution within tolerance +# Slab creation parameters +MILLER_INDICES = (0, 0, 1) # Miller indices for slab creation +NUMBER_OF_LAYERS = 1 # Number of layers in the slab +USE_CONVENTIONAL_CELL = True +USE_ORTHOGONAL_C = True + +STACKING_DIRECTION = "z" # Stacking direction for the slab, can be "x", "y", or "z" + # Visualization parameters SHOW_INTERMEDIATE_STEPS = True VISUALIZE_REPETITIONS = [3, 3, 1] diff --git a/lang/en/docs/tutorials/materials/specific/interface-bilayer-twisted-nanoribbons-boron-nitride.md b/lang/en/docs/tutorials/materials/specific/interface-bilayer-twisted-nanoribbons-boron-nitride.md index 1e6d94e5c..d38a12362 100644 --- a/lang/en/docs/tutorials/materials/specific/interface-bilayer-twisted-nanoribbons-boron-nitride.md +++ b/lang/en/docs/tutorials/materials/specific/interface-bilayer-twisted-nanoribbons-boron-nitride.md @@ -53,23 +53,26 @@ Next, edit `create_twisted_interface_with_nanoribbons.ipynb` notebook to modify Adjust the "1.1. Set up slab parameters" cell in the notebook according to: ```python -FILM_INDEX = 0 # Index in the list of materials, to access as materials[FILM_INDEX] +# Material selection and basic parameters +FILM_INDEX = 0 # Index in the list of materials, to access as materials[FILM_INDEX] SUBSTRATE_INDEX = None # Can be None to use same material as film -# Interface parameters -TWIST_ANGLE = 2.64 # in degrees +# Twisted interface parameters +TARGET_TWIST_ANGLE = 2.64 # in degrees INTERFACE_DISTANCE = 3.23 # in Angstroms INTERFACE_VACUUM = 20.0 # in Angstroms # Nanoribbon parameters RIBBON_WIDTH = 50 # Width of the nanoribbon in unit cells RIBBON_LENGTH = 50 # Length of the nanoribbon in unit cells -VACUUM_X = 5.0 # Vacuum along x on both sides, in Angstroms -VACUUM_Y = 5.0 # Vacuum along y on both sides, in Angstroms +VACUUM_WIDTH = 15.0 # Vacuum width around ribbons in Angstroms +VACUUM_LENGTH = 15.0 # Vacuum length around ribbons in Angstroms +VACUUM_X = 2.0 # Additional vacuum along x on both sides, in Angstroms +VACUUM_Y = 2.0 # Additional vacuum along y on both sides, in Angstroms # Visualization parameters SHOW_INTERMEDIATE_STEPS = True -VISUALIZE_REPETITIONS = [1, 1, 1] +VISUALIZE_REPETITIONS = [3, 3, 1] ``` ![Notebook setup](../../../images/tutorials/materials/interfaces/twisted-bilayer-boron-nitride/jl-set-nb.png "Notebook setup") diff --git a/lang/en/docs/tutorials/materials/specific/nanocluster-gold.md b/lang/en/docs/tutorials/materials/specific/nanocluster-gold.md index bcc6f78c2..237d19cf5 100644 --- a/lang/en/docs/tutorials/materials/specific/nanocluster-gold.md +++ b/lang/en/docs/tutorials/materials/specific/nanocluster-gold.md @@ -57,7 +57,9 @@ Cuboctahedron shape is achieved by setting parameters of the octahedron to be in Copy the content below and adjust the "1.1. Set up slab parameters" cell in the notebook: ```python -shape = ASENanoparticleShapesEnum.OCTAHEDRON +from mat3ra.made.tools.build.pristine_structures.zero_dimensional.nanoparticle import NanoparticleShapesEnum + +shape = NanoparticleShapesEnum.OCTAHEDRON parameters = { "length": 5, "cutoff": 2 @@ -101,7 +103,7 @@ To create the rest of the structures set the `shape` and other parameters accord For Cuboctahedron with 147 atoms: ```python -shape = ASENanoparticleShapesEnum.OCTAHEDRON +shape = NanoparticleShapesEnum.OCTAHEDRON parameters = { "length": 7, "cutoff": 3 @@ -113,7 +115,7 @@ parameters = { For Cuboctahedron with 309 atoms: ```python -shape = ASENanoparticleShapesEnum.OCTAHEDRON +shape = NanoparticleShapesEnum.OCTAHEDRON parameters = { "length": 9, "cutoff": 4 diff --git a/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel.md b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel.md index cd8e24c56..a828e20e6 100644 --- a/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel.md +++ b/lang/en/docs/tutorials/materials/specific/optimization-interface-film-xy-position-graphene-nickel.md @@ -54,18 +54,39 @@ Edit the notebook parameters to create the Gr/Ni(111) interface: ```python # Material selection -SUBSTRATE_NAME = "Nickel" -FILM_NAME = "Graphene" +FILM_INDEX = 1 # Index in the list of materials, to access as materials[FILM_INDEX] +FILM_MILLER_INDICES = (0, 0, 1) +FILM_THICKNESS = 1 # in atomic layers +FILM_TERMINATION_FORMULA = None # if None, the first termination will be used +FILM_VACUUM = 0.0 # in angstroms +FILM_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] +FILM_USE_ORTHOGONAL_C = True -# Slab parameters +SUBSTRATE_INDEX = 0 SUBSTRATE_MILLER_INDICES = (1, 1, 1) SUBSTRATE_THICKNESS = 4 # in atomic layers -FILM_THICKNESS = 1 # in atomic layers +SUBSTRATE_TERMINATION_FORMULA = None # if None, the first termination will be used +SUBSTRATE_VACUUM = 0.0 # in angstroms +SUBSTRATE_XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] +SUBSTRATE_USE_ORTHOGONAL_C = True + +INTERFACE_DISTANCE = 2.58 # Gap between substrate and film, in Angstrom +INTERFACE_VACUUM = 20.0 # Vacuum over film, in Angstrom + +# Whether to convert materials to conventional cells before creating slabs. +# To create interfaces with smaller cells, set this flag to False. (and pass already conventional cells as input) +USE_CONVENTIONAL_CELL = True -# Interface parameters +# Maximum area for the superlattice search algorithm (the final interface area will be smaller) MAX_AREA = 50 # in Angstrom^2 -INTERFACE_DISTANCE = 2.58 # in Angstrom from literature -INTERFACE_VACUUM = 20.0 # in Angstrom +# Additional fine-tuning parameters (increase values to get more strained matches): +MAX_AREA_TOLERANCE = 0.09 # in Angstrom^2 +MAX_LENGTH_TOLERANCE = 0.05 +MAX_ANGLE_TOLERANCE = 0.02 + +# Whether to reduce the resulting interface cell to the primitive cell after the interface creation. +# If the reduction causes unexpected results, try increasing the `MAX_AREA` for search. +REDUCE_RESULT_CELL_TO_PRIMITIVE = True ``` ![Interface Parameters](../../../images/tutorials/materials/optimization/optimization_interface_film_xy_position_graphene_nickel/2-jl-setup-nb-interface.webp "Interface parameters for Gr/Ni(111)") @@ -89,14 +110,16 @@ Find and open the `optimize_film_position.ipynb` notebook which will help us fin Configure the optimization parameters: ```python +MATERIAL_INDEX = 0 # Index of the material to optimize # Grid parameters GRID_SIZE = (20, 20) # Resolution of the x-y grid -GRID_RANGE_X = (-0.5, 0.5) # Range in crystal coordinates -GRID_RANGE_Y = (-0.5, 0.5) -USE_CARTESIAN = False # Use crystal coordinates +GRID_RANGE_X = (-0.5, 0.5) # Range to search in x direction +GRID_RANGE_Y = (-0.5, 0.5) # Range to search in y direction +USE_CARTESIAN = False # Whether to use Cartesian coordinates # Visualization parameters -STRUCTURE_REPETITIONS = [3, 3, 1] +SHOW_3D_LANDSCAPE = False # Whether to show 3D energy landscape +STRUCTURE_REPETITIONS = [3, 3, 1] # Repetitions for structure visualization ``` Key parameters explained: diff --git a/lang/en/docs/tutorials/materials/specific/passivation-edge-nanowire-silicon.md b/lang/en/docs/tutorials/materials/specific/passivation-edge-nanowire-silicon.md index 743558b98..479afcb4d 100644 --- a/lang/en/docs/tutorials/materials/specific/passivation-edge-nanowire-silicon.md +++ b/lang/en/docs/tutorials/materials/specific/passivation-edge-nanowire-silicon.md @@ -79,19 +79,21 @@ For that, edit `create_nanowire_custom_shape.ipynb` notebook to modify the param ```python from typing import List import numpy as np -from mat3ra.made.tools.utils.coordinate import CoordinateCondition -# Flag to use Cartesian coordinates for the center and radii -USE_CARTESIAN_COORDINATES = False - -# Miller indices of the nanowire direction -MILLER_INDICES= (1,1,0) -# Supercell matrix to cut the cylinder from -SUPERCELL_MATRIX = [[3, 0, 0], [0, 2, 0], [0, 0, 2]] -# Vacuum thickness on the sides in Angstroms -VACUUM = 10.0 +from mat3ra.made.tools.helpers import CoordinateCondition + +# Cross-section shape parameters +CENTER_COORDINATE = [0.5, 0.5, 0.5] # Center of the cylinder in units specified by flag below +MAJOR_RADIUS = 0.25 # Cylinder wire radius in units specified by the flag below +MINOR_RADIUS = 0.1 # Cylinder wire radius in units specified by the flag below +USE_CARTESIAN_COORDINATES = False # Flag to use Cartesian coordinates for the center and radii + +# Wire parameters +MILLER_INDICES= (1,1,0) # Miller indices of the nanowire direction +SUPERCELL_MATRIX = [[3, 0, 0], [0, 2, 0], [0, 0, 2]] # Supercell matrix to cut the cylinder from +VACUUM = 10.0 # Vacuum thickness on the sides in Angstroms ALIGN_ALONG_X = False -# Custom Coordinate Condition for +# Custom Coordinate Condition for a hollow cylinder shape class CustomCoordinateCondition(CoordinateCondition): vertices: List[List[float]] @@ -163,16 +165,20 @@ IS_COORDINATION_SELECTION_INTERACTIVE = False MATERIAL_INDEX = 0 -BOND_LENGTH = 1.46 # in Angstroms -PASSIVANT = "H" # Chemical symbol of the passivant -COORDINATION_SEARCH_RADIUS = 2.5 # in Angstroms (sphere in which to search for neighbors) -COORDINATION_THRESHOLD = 3 # Coordination number below which to passivate -MAX_BONDS_TO_SATURATE = 2 # Maximum number of bonds to saturate +# Passivation parameters +PASSIVANT = "H" # Chemical element for passivating atom +BOND_LENGTH = 1.46 # Distance from atom to passivant, in Angstroms -SYMMETRY_TOLERANCE = 0.1 +# Undercoordinated atoms search algorithm parameters +COORDINATION_THRESHOLD = 3 # Coordination threshold, below which passivation is applied to the atom +COORDINATION_SEARCH_RADIUS = 2.5 # Distance to look for neighbors for coordination, in Angstroms +NUMBER_OF_BONDS_TO_PASSIVATE = 2 # Number of bonds to passivate per undercoordinated atom +SYMMETRY_TOLERANCE = 0.1 # Tolerance for symmetry analysis of existing bonds + +# Visualization parameters SHOW_INTERMEDIATE_STEPS = True -CELL_REPETITIONS_FOR_VISUALIZATION = [1, 1, 1] +CELL_REPETITIONS_FOR_VISUALIZATION = [1, 1, 1] # Structure repeat in view ``` Here's the visual of the updated content: diff --git a/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon.md b/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon.md index 7e94c262c..45847c885 100644 --- a/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon.md +++ b/lang/en/docs/tutorials/materials/specific/passivation-surface-silicon.md @@ -54,8 +54,8 @@ SUPERCELL_MATRIX = [ [0, 0, 1] ] -# or use the scaling factor. -SCALING_FACTOR = None # [3, 3, 1]. +# or use the scaling factor +SCALING_FACTOR = None # [3, 3, 1] ``` Also add to the "Get input materials" cell the following code to adjust the Si atom position: @@ -106,17 +106,32 @@ Find and open the `passivate_slab.ipynb` notebook to add hydrogen atoms to the s Configure the following parameters for hydrogen passivation: ```python -# Passivation parameters. -PASSIVANT = "H" # Chemical symbol for hydrogen. -BOND_LENGTH = 1.46 # Si-H bond length in Angstroms. -SURFACE = "top" # Passivate only the top surface. - -# Surface detection parameters. -SHADOWING_RADIUS = 1.8 # In Angstroms. -DEPTH = 0.5 # In Angstroms. - -# Visualization parameters. -CELL_REPETITIONS_FOR_VISUALIZATION = [1, 1, 1] +# Material selection +MATERIAL_INDEX = 0 # Which material to use from input list + +# Passivation parameters +PASSIVANT = "H" # Chemical symbol of passivating atom +BOND_LENGTH = 1.46 # Distance from surface to passivant, in Angstroms +SURFACE = "top" # Which surface to passivate: "top", "bottom" or "both" + +# Surface detection parameters +SHADOWING_RADIUS = 1.8 # Radius to exclude subsurface atoms, in Angstroms +DEPTH = 0.5 # How deep to look for surface atoms, in Angstroms + +BYPASS_SLAB_CREATION = False # If True, will use input material directly + +# Slab parameters for creating a new slab if previous option is set to True +DEFAULT_SLAB_PARAMETERS = { + "miller_indices": (0, 0, 1), + "thickness": 3, + "vacuum": 10.0, + "USE_ORTHOGONAL_C": True, + "xy_supercell_matrix": [[3, 0], [0, 3]] +} + +# Visualization parameters +SHOW_INTERMEDIATE_STEPS = True +CELL_REPETITIONS_FOR_VISUALIZATION = [1, 1, 1] # Structure repeat in view ``` Key parameters explained: diff --git a/lang/en/docs/tutorials/materials/specific/perturbation-ripples-graphene.md b/lang/en/docs/tutorials/materials/specific/perturbation-ripples-graphene.md index d5822bb01..1ca98c0a6 100644 --- a/lang/en/docs/tutorials/materials/specific/perturbation-ripples-graphene.md +++ b/lang/en/docs/tutorials/materials/specific/perturbation-ripples-graphene.md @@ -52,12 +52,15 @@ Find `create_nanoribbon.ipynb` in the list of notebooks and click/double-click t Edit notebook to set the nanoribbon parameters: ```python +# Index in the list of materials, to access as materials[MATERIAL_INDEX] +MATERIAL_INDEX = 0 + # Widths and lengths are in number of unit cells -WIDTH = 40 -VACUUM_WIDTH = 10 -LENGTH = 40 -VACUUM_LENGTH = 10 -EDGE_TYPE = "zigzag" # "zigzag" or "armchair" +WIDTH = 40 # in unit cells +LENGTH = 40 # in unit cells +VACUUM_WIDTH = 10.0 # in Angstroms +VACUUM_LENGTH = 10.0 # in Angstroms +EDGE_TYPE = "zigzag" # "zigzag" or "armchair" ``` ![Setup Nanoribbon Parameters](../../../images/tutorials/materials/defects/perturbation_ripple_graphene/2-jl-setup-nb-nanoribbon.webp "Setup Nanoribbon Parameters") @@ -81,12 +84,47 @@ Next, we need to set up the parameters for creating rippled graphene. Edit notebook in 1.2. to set generic perturbation parameters: ```python +import sympy as sp + # Set whether to preserve geodesic distance and scale the cell accordingly to match PBC PRESERVE_GEODESIC_DISTANCE = False +# Set the supercell matrix to apply to original material +SUPERCELL_MATRIX = [[40, 0, 0], [0, 40, 0], [0, 0, 1]] + # Set whether to use Cartesian coordinates for the perturbation function USE_CARTESIAN_COORDINATES = False -MATERIAL_NAME = "Graphene" + +# Variables for the perturbation function (for SymPy) +variable_names = ["x", "y", "z"] +x, y, z = sp.symbols(variable_names) + +# Set the parameters for the perturbation function +AMPLITUDE = 0.09 # Ripple amplitude +WAVELENGTH = 0.2 # Wavelength of ripples +EDGE_WIDTH = 0.25 # Width of edge effect +PHASE_X = 0.0 # Phase shift for x direction +PHASE_Y = sp.pi/2 # Phase shift for y direction + +# Create edge masks for both x and y using polynomial functions +left_edge_x = sp.Max(0, (EDGE_WIDTH - x) / EDGE_WIDTH) +right_edge_x = sp.Max(0, (x - (1 - EDGE_WIDTH)) / EDGE_WIDTH) +left_edge_y = sp.Max(0, (EDGE_WIDTH - y) / EDGE_WIDTH) +right_edge_y = sp.Max(0, (y - (1 - EDGE_WIDTH)) / EDGE_WIDTH) + +# Combine edge masks +edge_mask_x = left_edge_x + right_edge_x +edge_mask_y = left_edge_y + right_edge_y +edge_mask = edge_mask_x + edge_mask_y + +# Wave pattern +wave_pattern = ( + sp.sin(2 * sp.pi * x / WAVELENGTH + PHASE_X) * + sp.sin(2 * sp.pi * y / WAVELENGTH + PHASE_Y) +) + +# Combine waves with edge mask +custom_sympy_function = AMPLITUDE * wave_pattern * edge_mask ``` Then modify section 1.3 to define the custom perturbation function: diff --git a/lang/en/docs/tutorials/materials/specific/slab-strontium-titanate.md b/lang/en/docs/tutorials/materials/specific/slab-strontium-titanate.md index 6834cee1e..7864bb0e1 100644 --- a/lang/en/docs/tutorials/materials/specific/slab-strontium-titanate.md +++ b/lang/en/docs/tutorials/materials/specific/slab-strontium-titanate.md @@ -64,7 +64,6 @@ Terminations can be selected interactively by setting the `IS_TERMINATIONS_SELEC Edit notebook in 1.1. to set parameters of slab: ```python - # Enable interactive selection of terminations via UI prompt IS_TERMINATIONS_SELECTION_INTERACTIVE = False @@ -72,10 +71,12 @@ MILLER_INDICES = (0, 1, 1) THICKNESS = 3 # in atomic layers VACUUM = 10.0 # in angstroms XY_SUPERCELL_MATRIX = [[1, 0], [0, 1]] -USE_ORTHOGONAL_Z = True +USE_ORTHOGONAL_C = True USE_CONVENTIONAL_CELL = True -# Index of the termination to be selected +# Stoichiometric formula of the slab termination to be used. +SLAB_TERMINATION_FORMULA = None +# if None, the index of all possible terminations will be used TERMINATION_INDEX = 0 ``` From 17cc4677b245052bfdca80e6e1a3111f0b604853 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Fri, 22 Aug 2025 09:55:07 -0700 Subject: [PATCH 006/147] chore: remove ExabyteML --- .../machine-learning/exabyte/data.md | 13 ------------- .../machine-learning/exabyte/overview.md | 10 ---------- lang/en/docs/tutorials/ml/predict-ml-properties.md | 1 + lang/en/docs/tutorials/ml/train-ml-model.md | 1 + lang/en/docs/tutorials/overview.md | 3 --- mkdocs.yml | 3 --- 6 files changed, 2 insertions(+), 29 deletions(-) delete mode 100644 lang/en/docs/software-directory/machine-learning/exabyte/data.md delete mode 100644 lang/en/docs/software-directory/machine-learning/exabyte/overview.md diff --git a/lang/en/docs/software-directory/machine-learning/exabyte/data.md b/lang/en/docs/software-directory/machine-learning/exabyte/data.md deleted file mode 100644 index bd73b7c21..000000000 --- a/lang/en/docs/software-directory/machine-learning/exabyte/data.md +++ /dev/null @@ -1,13 +0,0 @@ -# Exabyte Machine Learning: Structured Representation - -We present in what follows the [structured representation](../../../data-structured/overview.md) for the [Exabyte Machine Learning](overview.md). - -=== "Schema" - ``` json - --8<-- "data/esse/schema/software_directory/ml/exabyteml.json" - ``` - -=== "Example" - ``` json - --8<-- "data/esse/example/software_directory/ml/exabyteml.json" - ``` diff --git a/lang/en/docs/software-directory/machine-learning/exabyte/overview.md b/lang/en/docs/software-directory/machine-learning/exabyte/overview.md deleted file mode 100644 index 513a4027d..000000000 --- a/lang/en/docs/software-directory/machine-learning/exabyte/overview.md +++ /dev/null @@ -1,10 +0,0 @@ -# Exabyte Machine Learning Engine - -We provide a proof-of-concept support for [Machine Learning](../../../models-directory/machine-learning/overview.md) through the **Exabyte Machine Learning (Exabyte-ML) engine**, which is based upon the [Linear Regression](../../../methods-directory/linear-regression/overview.md) computational and statistical method. - -The currently implemented version of this engine is 0.2.0. - -## Accessibility - -Exabyte-ML is accessible via the [subworkflow editor interface](../../../workflow-designer/subworkflow-editor/overview.md). Pre-assembled ML workflows can be imported directly from the [Workflows Bank](../../../workflows/bank.md). - diff --git a/lang/en/docs/tutorials/ml/predict-ml-properties.md b/lang/en/docs/tutorials/ml/predict-ml-properties.md index f0fd0f23e..e7807ac2d 100644 --- a/lang/en/docs/tutorials/ml/predict-ml-properties.md +++ b/lang/en/docs/tutorials/ml/predict-ml-properties.md @@ -1,3 +1,4 @@ +[//]: # (This tutorial is deprecated) # Machine Learning: Predict New Properties In the present tutorial page, we will explore how the results of the [Train Model](train-ml-model.md) derived from [Machine Learning (ML)](../../models-directory/machine-learning/overview.md) can be used to predict new material [properties](../../properties/overview.md) by [linear regression](../../methods-directory/linear-regression/overview.md), such as implemented by the [Exabyte Machine Learning Engine](../../software-directory/machine-learning/exabyte/overview.md). diff --git a/lang/en/docs/tutorials/ml/train-ml-model.md b/lang/en/docs/tutorials/ml/train-ml-model.md index 6faefd74b..209793d06 100644 --- a/lang/en/docs/tutorials/ml/train-ml-model.md +++ b/lang/en/docs/tutorials/ml/train-ml-model.md @@ -1,3 +1,4 @@ +[//]: # (This tutorial is deprecated) # Machine Learning: Train Linear Regression This tutorial demonstrates how to build a [machine learning (ML)](../../models-directory/machine-learning/overview.md) **training model** based upon a set of [materials](../../materials/overview.md) called **"train materials"**. This model can then be used to predict the [properties](../../properties/overview.md) of another set called **"target materials"**, based on the procedure outlined in a [separate tutorial](predict-ml-properties.md). diff --git a/lang/en/docs/tutorials/overview.md b/lang/en/docs/tutorials/overview.md index 9f5f0f521..4de760d32 100644 --- a/lang/en/docs/tutorials/overview.md +++ b/lang/en/docs/tutorials/overview.md @@ -17,9 +17,6 @@ sidebar navigation. - [Magnetic Moment on Atoms by Specie](templating/set-magnetic-moment.md) - Machine Learning (ML) - [Overview](ml/overview.md) - - ExabyteML (legacy) - - [Train ML Model](ml/train-ml-model.md) - - [Predict New Properties](ml/predict-ml-properties.md) - Python ML - [Training a Regression Model](python-ml/train-regression-model.md) - [Predictions with Regression](python-ml/predict-with-regression.md) diff --git a/mkdocs.yml b/mkdocs.yml index 55d5ec961..f2a4aea8a 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -161,9 +161,6 @@ nav: - Machine Learning (ML): # Differentiate between Legacy and PythonML tutorials in Overview - Overview: tutorials/ml/overview.md - - ExabyteML (legacy): - - Train ML Model: tutorials/ml/train-ml-model.md - - Predict New Properties: tutorials/ml/predict-ml-properties.md - Python ML: - Training a Regression Model: tutorials/python-ml/train-regression-model.md #Todo: Tutorial demonstrates how to share a trained model with another user From 938b1900405d3bab91e2b64e3ed68078eb97e753 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Fri, 22 Aug 2025 10:04:01 -0700 Subject: [PATCH 007/147] chore: update community programs page --- lang/en/docs/other/community-programs.md | 91 +++++++++++------------- 1 file changed, 40 insertions(+), 51 deletions(-) diff --git a/lang/en/docs/other/community-programs.md b/lang/en/docs/other/community-programs.md index bcbf81f35..db59b89cd 100644 --- a/lang/en/docs/other/community-programs.md +++ b/lang/en/docs/other/community-programs.md @@ -1,65 +1,57 @@ # Community Programs -> Last updated: Nov 3, 2019 +> Last updated: Aug 22, 2025 - - -## Limited Free Access for Academic Users - -!!!note "The Free Access Program completed in May of 2020." - The last Free Access Program completed as of 2020/05. Users are still welcome to submit their information for any future similar programs. +https://docs.google.com/forms/d/e/1FAIpQLSfgghQdRn8sBKespFk3FZSiEoTUmtR0cLhDn0d_rNmtcA-gZg/viewform?usp=dialog +As below: -For users with current academic affiliation we can provide computational resources free of charge on a case-by-case basis. +1. Fill + in + this online form +2. For new users - submit a registration request using an email address associated with your academic institution + include the information requested in **3**. +3. For existing users - if you use a personal email address during the registration, send an email to " + support@mat3ra.com" from the email address associated with your academic institution (ie. hosted on a ".edu" domain) + with a subject containing "Free Access for Academic Users" -### Applying for Limited Free Access +we will review and enable access as appropriate. We will prioritize applications providing detailed information about +the applicants (ie. Google Scholar, ResearchGate profile(s), links to prior publications) and the nature of the +anticipated work. -As below: - -1. Fill in this online form -2. For new users - submit a registration request using an email address associated with your academic institution include the information requested in **3**. -3. For existing users - if you use a personal email address during the registration, send an email to "support@exabyte.io" from the email address associated with your academic institution (ie. hosted on a ".edu" domain) with a subject containing "Free Access for Academic Users" - -we will review and enable access as appropriate. We will prioritize applications providing detailed information about the applicants (ie. Google Scholar, ResearchGate profile(s), links to prior publications) and the nature of the anticipated work. - ### Conditions -Free access is limited to certain compute resources only and is subject to other limitations as below. We will consider adjusting the limitations according to the user feedback received. Contact "support@exabyte.io" for this. - +Free access is limited to certain compute resources only and is subject to other limitations as below. We will consider +adjusting the limitations according to the user feedback received. Contact "support@mat3ra.com" for this. + #### Limitations -| Feature | Explanation | -| :------: | :----------: | -| Max nodes per job | 1 | -| Max cores per job | 4 | -| Max job walltime | 24 hours | -| Max job queued per user | 4 | -| Available Queues | "D" only | -| Available Resources | "cluster-009" only | -| Included Disk Quota | 10 Gb | +To be specified later. Similar to the below: + +| Feature | Explanation | +|:-----------------------:|:------------------:| +| Max nodes per job | 1 | +| Max cores per job | 4 | +| Max job walltime | 24 hours | +| Max job queued per user | 4 | +| Available Queues | "D" only | +| Available Resources | "cluster-101" only | +| Included Disk Quota | 10 Gb | #### Acknowledgements -Any/all published work derived from the Limited Free Access program must include the following Acknowledgement text and citation below. +Any/all published work derived from the Limited Free Access program must include the following Acknowledgement text and +citation below. **Acknowledgement text** @@ -89,9 +81,6 @@ In Bibtex format: #### Publicity -We plan to select some of the work performed under the Limited Free Access program to be highlighted in the online publication sources together with the cloud provider(s) enabling the computational infrastructure. - - -## Reach out to us - -We are friendly people like you, why not reach out to us with your suggestions and ideas? You may contact us at info@exabyte.io. If you are interested in joining our team, write to hi@exabyte.io with your resume and cover letter. +We plan to select some of the work performed under the Limited Free Access program to be highlighted in the online +publication sources together with the cloud provider(s) enabling the computational infrastructure. +We will contact the users in advance to request permission for this. From b0f1bf6213d64befc58a410869ae8b8897fa60d2 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Mon, 25 Aug 2025 01:40:18 -0700 Subject: [PATCH 008/147] update: release version --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index f2a4aea8a..c139458de 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -30,7 +30,7 @@ extra_javascript: copyright: Exabyte Inc. All rights reserved. | Back to platform extra: - version: "2025.5.29" + version: "2025.8.21" preload_javascript: - /extra/js/preload_hotjar.js - /extra/js/preload.js From ff8b68778c86e6ecf28ea929991caf1c83b2ed69 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 7 Oct 2025 19:03:16 -0700 Subject: [PATCH 009/147] chore: update HW descriptions for AWS, AZ --- lang/en/docs/infrastructure/clusters/aws.md | 86 ++++++++----------- lang/en/docs/infrastructure/clusters/azure.md | 81 ++++++++--------- 2 files changed, 71 insertions(+), 96 deletions(-) diff --git a/lang/en/docs/infrastructure/clusters/aws.md b/lang/en/docs/infrastructure/clusters/aws.md index 0ce6e8ee4..0d94f5bbd 100644 --- a/lang/en/docs/infrastructure/clusters/aws.md +++ b/lang/en/docs/infrastructure/clusters/aws.md @@ -4,37 +4,32 @@ This page contains information about clusters hosted on Amazon Web Services[^1] ## Clusters -The following table provides information about available clusters on Amazon Web Services (AWS) cloud computing platform. The latest cluster status can be found on Clusters page in web application. +The following table provides information about available clusters on Amazon Web Services (AWS) cloud computing platform. +The latest cluster status can be found on Clusters +page in web application. -| Name | Master Hostname | Location | -| :---: | :---: | :---: | -| cluster-001 | master-production-20160630-cluster-001.exabyte.io | West US | +| Name | Master Hostname | Location | +|:-------------:|:---------------------------------------------------:|:--------:| +| `cluster-002` | `master-production-20250821-cluster-001.mat3ra.com` | West US | ## Queues -The list of currently enabled queues is given below. Price per core hour is shown in relation to the [relative unit price](../../pricing/service-levels.md#comparison-table) and is subject to change at any time. Total number of nodes can be increased upon [request](../../ui/support.md). - -| Name | Category[^2] | Mode[^3] | Charge Policy[^4] | Price | Max Nodes per Job+ | Max Nodes Total | -| :---: | :---: | :---: | :---: | :---: | :---: | :---: | -| D | debug | debug | core-seconds | 2.251 | 1 | 10 | -| OR | ordinary | regular | core-seconds | 1.000 | 1 | 10 | -| OR4 | ordinary | regular | core-seconds | 1.126 | 1 | 20 | -| OR8 | ordinary | regular | core-seconds | 1.126 | 1 | 20 | -| OR16 | ordinary | regular | core-seconds | 1.126 | 1 | 20 | -| OF | ordinary | fast | core-hours | 1.000 | ≤5 | 100 | -| OFplus| ordinary | fast | core-hours | 0.962 | ≤5 | 10 | -| SR | saving | regular | core-seconds | 0.200 | 1 | 10 | -| SR4 | saving | regular | core-seconds | 0.225 | 1 | 20 | -| SR8 | saving | regular | core-seconds | 0.225 | 1 | 20 | -| SR16 | saving | regular | core-seconds | 0.225 | 1 | 20 | -| SF | saving | fast | core-hours | 0.200 | ≤5 | 100 | -| SFplus| saving | fast | core-hours | 0.379 | ≤5 | 10 | -| GOF | ordinary | fast | core-hours | 8.655 | ≤5 | 10 | -| G4OF | ordinary | fast | core-hours | 8.655 | ≤5 | 10 | -| G8OF | ordinary | fast | core-hours | 8.655 | ≤5 | 10 | -| GSF | saving | fast | core-hours | 3.370 | ≤5 | 10 | -| G4SF | saving | fast | core-hours | 4.158 | ≤5 | 10 | -| G8SF | saving | fast | core-hours | 4.335 | ≤5 | 10 | +The list of currently enabled queues is given below. Price per core hour is shown in relation to +the [relative unit price](../../pricing/service-levels.md#comparison-table) and is subject to change at any time. Total +number of nodes can be increased upon [request](../../ui/support.md). + +| Name | Category[^2] | Mode[^3] | Charge Policy[^4] | Price | Max Nodes per Job+ | Max Nodes Total | +|:------:|:------------:|:--------:|:-----------------:|:-----:|:-----------------------------:|:---------------:| +| D | debug | debug | core-seconds | 2.251 | 1 | 10 | +| OR | ordinary | regular | core-seconds | 1.000 | 1 | 10 | +| OF | ordinary | fast | core-hours | 1.000 | 10 | 100 | +| OFplus | ordinary | fast | core-hours | 0.962 | 5 | 10 | +| SR | saving | regular | core-seconds | 0.200 | 1 | 10 | +| SF | saving | fast | core-hours | 0.200 | 10 | 100 | +| SFplus | saving | fast | core-hours | 0.379 | 5 | 10 | +| GOF | ordinary | fast | core-hours | 8.655 | 5 | 10 | +| GSF | saving | fast | core-hours | 1.731 | 5 | 10 | +| G4OF | ordinary | fast | core-hours | 8.655 | 5 | 10 | + please contact support to inquire about attempting a larger node count per job @@ -42,31 +37,22 @@ The list of currently enabled queues is given below. Price per core hour is show The following table contains hardware specifications for the above queues. -| Name | CPU[^5] | Cores per Node | GPU[^6] | GPU per Node | Memory (GB) | Bandwidth (Gbps) | -| :---: | :---: | :---: | :---: | :---: | :---: | :---: | -| D | c-3 | 8 | - | - | 15 | ≤10 | -| OR | c-3 | 36 | - | - | 60 | ≤10 | -| OR4 | c-3 | 4 | - | - | 7.5 | ≤10 | -| OR8 | c-3 | 8 | - | - | 15 | ≤10 | -| OR16 | c-3 | 16 | - | - | 30 | ≤10 | -| OF | c-3 | 36 | - | - | 60 | 10 | -| OFplus| c-5 | 72 | - | - | 144 | 25 | -| SR | c-3 | 36 | - | - | 60 | 10 | -| SR4 | c-3 | 4 | - | - | 7.5 | ≤10 | -| SR8 | c-3 | 8 | - | - | 15 | ≤10 | -| SR16 | c-3 | 16 | - | - | 30 | ≤10 | -| SF | c-3 | 36 | - | - | 60 | 10 | -| SFplus| c-5 | 72 | - | - | 144 | 25 | -| GOF | c-4 | 8 | g-1 | 1 | 61 | 10 | -| G4OF | c-4 | 32 | g-1 | 4 | 244 | 10 | -| G8OF | c-4 | 64 | g-1 | 8 | 488 | 25 | -| GSF | c-4 | 8 | g-1 | 1 | 61 | 10 | -| G4SF | c-4 | 32 | g-1 | 4 | 244 | 10 | -| G8SF | c-4 | 64 | g-1 | 8 | 488 | 25 | - +| Name | CPU[^5] | Cores per Node | GPU[^6] | GPU per Node | Memory (GB) | Bandwidth (Gbps) | Instance Type | +|:------:|:-------:|:--------------:|:-------:|:------------:|:-----------:|:----------------:|:-------------------:| +| D | c-3 | 4 | - | - | 15 | ≤10 | c4.2xlarge | +| OR | c-3 | 36 | - | - | 60 | ≤10 | c4.8xlarge | +| OF | c-3 | 36 | - | - | 60 | 10 | c4.8xlarge | +| OFplus | c-5 | 72 | - | - | 192 | 100 | c5n.18xlarge | +| SR | c-3 | 36 | - | - | 60 | 10 | c4.8xlarge | +| SF | c-3 | 36 | - | - | 60 | 10 | c4.8xlarge | +| SFplus | c-5 | 72 | - | - | 192 | 100 | c5n.18xlarge | +| GOF | c-8 | 8 | g-3 | 8 | 1152 | 400 | p4d.24xlarge | +| GSF | c-8 | 8 | g-3 | 8 | 1152 | 400 | p4d.24xlarge | +| G4OF | c-4 | 32 | g-4 | 1 | 256 | 10 | p5.4xlarge | !!! note "Hyper-threading" - Hyper-threading[^7] is enabled on all AWS compute nodes by default. It is recommended to use half of available cores on each compute node (e.g 18 cores on OF queue) if the application does not benefit from the extra virtual cores. +Hyper-threading[^7] is enabled on all AWS compute nodes by default. It is recommended to use half of available cores on +each compute node (e.g. 18 cores on OF queue) if the application does not benefit from the extra virtual cores. ## Links diff --git a/lang/en/docs/infrastructure/clusters/azure.md b/lang/en/docs/infrastructure/clusters/azure.md index a6ef99162..fb148f516 100644 --- a/lang/en/docs/infrastructure/clusters/azure.md +++ b/lang/en/docs/infrastructure/clusters/azure.md @@ -4,70 +4,59 @@ This page contains information about clusters hosted on Microsoft Azure[^1] and ## Clusters -The following table provides information about available clusters on Microsoft Azure cloud computing platform. The latest cluster status can be found on Clusters page in web application. +The following table provides information about available clusters on Microsoft Azure cloud computing platform. The +latest cluster status can be found on Clusters page +in web application. -| Name | Hostname | Location | -| :---: | :---: | :---: | -| cluster-007 | master-production-20160630-cluster-007.exabyte.io | East US | +| Name | Hostname | Location | +|:-----------:|:-------------------------------------------------:|:--------:| +| cluster-003 | master-production-20250821-cluster-003.mat3ra.com | East US | ## Queues -The list of currently enabled queues is given below. Price per core hour is shown in relation to the [relative unit price](../../pricing/service-levels.md#comparison-table) and is subject to change at any time. Total number of nodes can be increased upon [request](../../ui/support.md). - -| Name | Category[^2] | Mode[^3] | Charge Policy[^4] | Price | Max Nodes per Job+ | Max Nodes Total | -| :---: | :---: | :---: | :---: | :---: | :---: | :---: | -| D | debug | debug | core-seconds | 4.002 | 1 | 10 | -| OR | ordinary | regular | core-seconds | 1.275 | 1 | 10 | -| OF | ordinary | fast | core-hours | 1.275 | ≤5 | 100 | -| OFplus| ordinary | fast | core-hours | 1.275 | 5 | 10 | -| SR | saving | regular | core-seconds | 0.379 | 1 | 10 | -| SF | saving | fast | core-hours | 0.379 | 1* | 100 | -| SFplus | saving | fast | core-hours | 0.379 | 5 | 10 | -| GPOF | ordinary | fast | core-hours | 6.110 | ≤5 | 10 | -| GP2OF | ordinary | fast | core-hours | 6.110 | ≤5 | 10 | -| GP4OF | ordinary | fast | core-hours | 6.110 | ≤5 | 10 | -| GPSF | saving | fast | core-hours | 1.222 | ≤5 | 10 | -| GP2SF | saving | fast | core-hours | 1.222 | ≤5 | 10 | -| GP4SF | saving | fast | core-hours | 1.222 | ≤5 | 10 | +The list of currently enabled queues is given below. Price per core hour is shown in relation to +the [relative unit price](../../pricing/service-levels.md#comparison-table) and is subject to change at any time. Total +number of nodes can be increased upon [request](../../ui/support.md). -+ please contact support to inquire about attempting a larger node count per job - -* presently the infrastructure limitations are not allowing for the multi-node communication in SF queue, so only single-node jobs should be attempted (as of Oct 2022) +| Name | Category[^2] | Mode[^3] | Charge Policy[^4] | Price | Max Nodes per Job+ | Max Nodes Total | +|:------:|:------------:|:--------:|:-----------------:|:-----:|:-----------------------------:|:---------------:| +| D | debug | ordinary | core-seconds | 4.002 | 1 | 10 | +| OR | regular | ordinary | core-seconds | 1.275 | 1 | 10 | +| SR | regular | saving | core-seconds | 0.379 | 1 | 10 | +| OF | fast | ordinary | core-hours | 1.275 | 5 | 100 | +| SF | fast | saving | core-hours | 0.379 | 5 | 100 | +| GPOF | fast | ordinary | core-hours | 6.110 | 5 | 10 | +| GPSF | fast | saving | core-hours | 1.222 | 5 | 10 | ++ please contact support to inquire about attempting a larger node count per job ## Hardware Specifications -The following table contains hardware specifications for the above queues. - -| Name | CPU[^5] | Cores per Node | GPU[^6] | GPU per Node | Memory (GB) | Bandwidth (Gb/sec) | -| :---: | :---: | :---: | :---: | :---: | :---: | :---: | -| D | c-7 | 16 | - | - | 32 | ≤10 | -| OR | c-6 | 44 | - | - | 352 | 100 | -| OF | c-6 | 44 | - | - | 352 | 100 | -| OFplus| c-6 | 44 | - | - | 352 | 100 | -| SR | c-6 | 44 | - | - | 352 | 100 | -| SF | c-6 | 44 | - | - | 352 | 100 | -| SFPlus| c-6 | 44 | - | - | 352 | 100 | -| GPOF | c-2 | 6 | g-2 | 1 | 112 | 10 | -| GP2OF | c-2 | 12 | g-2 | 2 | 224 | 10 | -| GP4OF | c-2 | 24 | g-2 | 4 | 448 | 10 | -| GPSF | c-2 | 6 | g-2 | 1 | 112 | 10 | -| GP2SF | c-2 | 12 | g-2 | 2 | 224 | 10 | -| GP4SF | c-2 | 24 | g-2 | 4 | 448 | 10 | +The following table contains hardware specifications for the above queues. + +| Name | Cores per Node | GPU per Node | Memory (GB) | Bandwidth (Gb/sec) | VM Size | +|:------:|:--------------:|:------------:|:-----------:|:------------------:|:------------------------:| +| D | 8 | - | 2 | ≤10 | Standard_F8s_v2 | +| OR | 44 | - | 352 | 100 | Standard_HC44rs | +| OF | 44 | - | 352 | 100 | Standard_HC44rs | +| SR | 44 | - | 352 | 100 | Standard_HC44rs | +| SF | 44 | - | 352 | 100 | Standard_HC44rs | +| GPOF | 40 | 1 | 320 | 40 | Standard_NC40ads_H100_v5 | +| GPSF | 40 | 1 | 320 | 40 | Standard_NC40ads_H100_v5 | ## Links [^1]: [Microsoft Azure, Website](https://azure.microsoft.com/en-us/) -[^2]: [Queue Cost Categories, Website](../resource/category.md#cost-categories) +[^2]: [Queue Cost Categories, this documentation](../resource/category.md#cost-categories) -[^3]: [Queue Provision Modes, Website](../resource/category.md#provision-modes) +[^3]: [Queue Provision Modes, this documentation](../resource/category.md#provision-modes) -[^4]: [Charge polices, Website](../resource/queues.md#charge-policies) +[^4]: [Charge polices, this documentation](../resource/queues.md#charge-policies) -[^5]: [CPU types, Website](hardware.md#cpu-types) +[^5]: [CPU types, this documentation](hardware.md#cpu-types) -[^6]: [GPU types, Website](hardware.md#gpu-types) +[^6]: [GPU types, this documentation](hardware.md#gpu-types) [^7]: [Azure high performance compute virtual machines, Website](https://docs.microsoft.com/en-us/azure/virtual-machines/linux/sizes-hpc) From ebb64298bedb390811838bf7260bc546fb82f894 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 7 Oct 2025 19:03:24 -0700 Subject: [PATCH 010/147] chore: update HW descriptions for AWS, AZ --- .../docs/infrastructure/clusters/hardware.md | 51 +++++++++++-------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/lang/en/docs/infrastructure/clusters/hardware.md b/lang/en/docs/infrastructure/clusters/hardware.md index e39154b20..ad48897e6 100644 --- a/lang/en/docs/infrastructure/clusters/hardware.md +++ b/lang/en/docs/infrastructure/clusters/hardware.md @@ -1,6 +1,6 @@ # Hardware Specifications -Our computing resources are hosted by trusted vendors: [Amazon Web Services](aws.md) and [Microsoft Azure](azure.md). +Our computing resources are hosted by trusted vendors: [Amazon Web Services](aws.md) and [Microsoft Azure](azure.md). We support IBM SoftLayer[^1], Rackspace[^2] and Google Cloud[^3] can deploy capacity there on a short notice. The following shows the CPU and GPU hardware specification on aforementioned vendors. @@ -9,34 +9,37 @@ The following shows the CPU and GPU hardware specification on aforementioned ven The following table shows different types of CPUs available in our platform. -| Name | Type | Processor Base Frequency (GHz) | -| :---: | :---: | :---: | -| c-1 | Intel Xeon E5-2667-v3[^4] | 3.20 | -| c-2 | Intel Xeon E5-2690-v4[^5] | 2.60 | -| c-3 | Intel Xeon E5-2666-v3[^6] | 2.90 | -| c-4 | Intel Xeon E5-2686-v4[^7] | 2.30 | -| c-5 | Intel Xeon Platinum[^6a] | 3.00 | -| c-6 | Intel Xeon Platinum 8168[^8] | 2.70 | -| c-7 | Intel Xeon E5-2673-v3[^11] | 2.40 | +| Name | Type | Processor Base Frequency (GHz) | +|:----:|:------------------------------:|:------------------------------:| +| c-1 | Intel Xeon E5-2667-v3[^4] | 3.20 | +| c-2 | Intel Xeon E5-2690-v4[^5] | 2.60 | +| c-3 | Intel Xeon E5-2666-v3[^6] | 2.90 | +| c-4 | Intel Xeon E5-2686-v4[^7] | 2.30 | +| c-5 | Intel Xeon Platinum[^6a] | 3.00 | +| c-6 | Intel Xeon Platinum 8168[^8] | 2.70 | +| c-7 | Intel Xeon E5-2673-v3[^11] | 2.40 | +| c-8 | Intel Xeon Platinum 8275L[^11] | 3.00 | +| c-9 | AMD EPYC 7R13[^12] | 3.60 | ## GPU Types The following table shows different types of GPUs the GPU-enabled compute nodes are provisioned with. -| Name | Type | -| :---: | :---: | -| g-1 | NVIDIA V100[^9] | -| g-2 | NVIDIA P100[^10] | - +| Name | Type | +|:----:|:----------------:| +| g-3 | NVIDIA A100[^9] | +| g-4 | NVIDIA H100[^10] | ## Available Resources -As of Apr, 2018 our major compute and storage systems (per cluster) are as explained below. The total number of cores is administratively limited by our agreements with the cloud vendors, and cen be extended further upon request. Elastically grown file system lets us reach to 8 exabytes (EB) of disk space per single cluster. +As of 2025 our major compute and storage systems (per cluster) are as explained below. +The total number of cores is administratively limited by our agreements with the cloud vendors, and +can be extended further upon request. -| Provider | Total cores | Total Memory (GB) | Total Disk (EB) | -| :--------- | :--------: | :---------------: | :-------------: | -| AWS | 36,000 | 60,000 | 8 | -| Azure | 10,000 | 20,000 | 8 | +| Provider | Total cores | Total Memory (GB) | Total Disk (EB) | +|:---------|:-----------:|:-----------------:|:---------------:| +| AWS | 36,000 | 60,000 | 8 | +| Azure | 10,000 | 20,000 | 8 | ## Links @@ -58,10 +61,14 @@ As of Apr, 2018 our major compute and storage systems (per cluster) are as expla [^8]: [HC-Series, Microsoft Azure documentation](https://docs.microsoft.com/en-us/azure/virtual-machines/hc-series) -[^9]: [NVIDIA Tesla V100, online product documentation](https://www.nvidia.com/en-us/data-center/tesla-v100/) +[^9]: [NVIDIA A100, online product documentation](https://www.nvidia.com/en-us/data-center/a100/) -[^10]: [NVIDIA Tesla P100, online product documentation](https://www.nvidia.com/en-us/data-center/tesla-p100/) +[^10]: [NVIDIA H100, online product documentation](https://www.nvidia.com/en-us/data-center/h100/) [^11]: [F-Series VM Sizes, Azure](https://azure.microsoft.com/en-us/blog/f-series-vm-size/) +[^11]: [p4d.24xlarge VM Sizes, AWS](https://aws.amazon.com/ec2/instance-types/p4/) + +[^12]: [p5.4xlarge VM Sizes, AWS](https://aws.amazon.com/ec2/instance-types/p5/) + ///FOOTNOTES GO HERE/// From 62150e66191c28c8b82083a58a90192761b71b9f Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 7 Oct 2025 19:03:37 -0700 Subject: [PATCH 011/147] feat: add GCP description --- .../en/docs/infrastructure/clusters/google.md | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 lang/en/docs/infrastructure/clusters/google.md diff --git a/lang/en/docs/infrastructure/clusters/google.md b/lang/en/docs/infrastructure/clusters/google.md new file mode 100644 index 000000000..486ee4a52 --- /dev/null +++ b/lang/en/docs/infrastructure/clusters/google.md @@ -0,0 +1,57 @@ +# Google Cloud Platform + +This page contains information about clusters hosted on Google Cloud Platform[^1] and their hardware specifications. + +## Clusters + +The following table provides information about available clusters on Google Cloud Platform cloud computing platform. The +latest cluster status can be found on Clusters page +in web application. + +| Name | Hostname | Location | +|:-----------:|:-------------------------------------------------:|:----------:| +| cluster-001 | master-production-20250821-cluster-001.mat3ra.com | US-Central | + +## Queues + +The list of currently enabled queues is given below. Price per core hour is shown in relation to +the [relative unit price](../../pricing/service-levels.md#comparison-table) and is subject to change at any time. Total +number of nodes can be increased upon [request](../../ui/support.md). + +| Name | Category[^2] | Mode[^3] | Charge Policy[^4] | Price | Max Nodes per Job+ | Max Nodes Total | +|:----:|:------------:|:--------:|:-----------------:|:-----:|:-----------------------------:|:---------------:| +| D | debug | ordinary | core-seconds | 4.002 | 1 | 1 | +| OR | regular | ordinary | core-seconds | 1.275 | 1 | 1 | +| OF | fast | ordinary | core-hours | 1.275 | 5 | 2 | +| GOF | fast | ordinary | core-hours | 6.110 | 5 | 1 | + ++ please contact support to inquire about attempting a larger node count per job + +## Hardware Specifications + +The following table contains hardware specifications for the above queues. + +| Name | Cores per Node | GPU per Node | Memory (GB) | Bandwidth (Gb/sec) | VM Size | +|:----:|:--------------:|:------------:|:-----------:|:------------------:|:--------------:| +| D | 2 | - | 15 | ≤10 | n1-standard-4 | +| OR | 4 | - | 15 | ≤10 | h3-standard-88 | +| OF | 4 | - | 15 | 10 | h3-standard-88 | +| GOF | 12 | 1 | 85 | 100 | a2-highgpu-1g | + +## Links + +[^1]: [Google Cloud Platform, Website](https://cloud.google.com/) + +[^2]: [Queue Cost Categories, this documentation](../resource/category.md#cost-categories) + +[^3]: [Queue Provision Modes, this documentation](../resource/category.md#provision-modes) + +[^4]: [Charge polices, this documentation](../resource/queues.md#charge-policies) + +[^5]: [CPU types, this documentation](hardware.md#cpu-types) + +[^6]: [GPU types, this documentation](hardware.md#gpu-types) + +[^7]: [Google Cloud VM instances, Website](https://cloud.google.com/compute/docs/machine-types) + +///FOOTNOTES GO HERE/// From 74a0b53382ddc1c0f6352e5c35820dd07aef08ab Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 7 Oct 2025 19:03:57 -0700 Subject: [PATCH 012/147] feat: add free tier description --- .../infrastructure/clusters/cluster-101.md | 40 ++++++++ lang/en/docs/other/community-programs.md | 96 +++++++++++++------ 2 files changed, 108 insertions(+), 28 deletions(-) create mode 100644 lang/en/docs/infrastructure/clusters/cluster-101.md diff --git a/lang/en/docs/infrastructure/clusters/cluster-101.md b/lang/en/docs/infrastructure/clusters/cluster-101.md new file mode 100644 index 000000000..cdc778ed2 --- /dev/null +++ b/lang/en/docs/infrastructure/clusters/cluster-101.md @@ -0,0 +1,40 @@ +# Cluster-101 + +## Overview + +This cluster is hosted on [Microsoft Azure][^1] infrastructure and is intended to provide free compute resources. + +| Name | Hostname | Location | +|:-----------:|:-------------------------------------------------:|:--------:| +| cluster-103 | master-production-20250821-cluster-103.mat3ra.com | East US | + +## Queues + +The list of currently enabled queues is given below. + +The price factor is shown in relation to the [relative unit price](../../pricing/service-levels.md#comparison-table). + +The price factor if 10E-4 means that the cost of using this queue is 0.0001 times the cost of using the base queue (OR). +This is intended to provide free compute resources and keep the accounting of resource usage. + +| Name | Category[^2] | Mode[^3] | Charge Policy[^4] | Price Factor | Max Nodes per Job+ | Max Nodes Total | +|:----:|:------------:|:--------:|:-----------------:|:------------:|:-----------------------------:|:---------------:| +| D | debug | ordinary | core-seconds | 10E-4 | 1 | 1 | +| OR | regular | saving | core-seconds | 10E-4 | 1 | 0 | +| SR | regular | saving | core-seconds | 10E-4 | 1 | 1 | +| OF | fast | saving | core-hours | 10E-4 | 5 | 0 | +| SF | fast | saving | core-hours | 10E-4 | 5 | 1 | +| GPOF | fast | saving | core-hours | 10E-4 | 5 | 0 | +| GPSF | fast | saving | core-hours | 10E-4 | 5 | 1 | + ++ please contact support to inquire about attempting a larger node count per job + +## Hardware Specifications + +See [Azure Queues](azure.md) for more information. + +# Links + +[^1]: [Microsoft Azure, Website](https://azure.microsoft.com/en-us/) + +///FOOTNOTES GO HERE/// diff --git a/lang/en/docs/other/community-programs.md b/lang/en/docs/other/community-programs.md index db59b89cd..19217fb72 100644 --- a/lang/en/docs/other/community-programs.md +++ b/lang/en/docs/other/community-programs.md @@ -1,15 +1,43 @@ # Community Programs -> Last updated: Aug 22, 2025 +> Last updated: Oct 7, 2025 -## Limited Free Compute for the Platform Users. +## 1. Free Compute Tier for the Platform Users. -!!!note "The Limited Free Compute Program starting in 2025." -The Limited Free Compute Program is starting in 2025. Users are still welcome to submit their information. +In collaboration with our cloud provider partners, we are offering a Limited Free Compute program for our platform +users. -The program is targeted for users with current academic affiliations, however, we will consider private parties as well. -Anyone can participate. For the selected users, we will provide computational resources free of charge on a case-by-case -basis. +The primary goal of this program is to support academic research and education in the field of materials science and +enable the community to explore the capabilities of our platform. + +The program is targeted for users with current academic affiliations, however, we welcome private parties as well. + +The free tier access is available through [cluster-101](../infrastructure/clusters/cluster-101.md) only. + +### 1.1. Free Compute Eligibility. + +To be eligible for the Limited Free Compute program, users must meet the following criteria: + +- Be a registered user of the platform. +- Have a valid academic affiliation (eg. student, faculty, researcher) or be a private party interested in exploring the + platform capabilities. +- If affiliated with an academic institution, use an email address associated with the institution (ie. hosted on a " + .edu" domain) during the registration. +- (Optional) Provide information about the nature of the anticipated work (eg. research topic, educational purpose, + etc.) +- Agree to the conditions outlined below. + +### 1.2. Applying for Free Compute. + +As of now, no seprate application is needed. If you meet the eligibility criteria above, you can start using the +platform and its resources right away. + +We will review the user base periodically and reach out to the users who meet the eligibility criteria to inform them +about the program and its benefits. + +And consequently, we will screen out the users who do not meet the criteria. + + + +### 1.3. Free Compute Conditions. -Free access is limited to certain compute resources only and is subject to other limitations as below. We will consider -adjusting the limitations according to the user feedback received. Contact "support@mat3ra.com" for this. +Free access is limited to the certain compute resources and is subject to other limitations as below. -#### Limitations +#### 1.3.1. Limitations -To be specified later. Similar to the below: +As below: | Feature | Explanation | |:-----------------------:|:------------------:| | Max nodes per job | 1 | -| Max cores per job | 4 | -| Max job walltime | 24 hours | -| Max job queued per user | 4 | +| Max cores per job | Per Queue Policy | +| Max job walltime | Per Queue Policy | +| Max job queued per user | 10 | | Available Queues | "D" only | | Available Resources | "cluster-101" only | | Included Disk Quota | 10 Gb | -#### Acknowledgements +For more information, please see [cluster-101](../infrastructure/clusters/cluster-101.md). + +## 2. Acknowledgements -Any/all published work derived from the Limited Free Access program must include the following Acknowledgement text and -citation below. +Any/all published work derived from any of the Community Programs listed here must include the following acknowledgement +and citation. **Acknowledgement text** ```text -The authors performed this work partially or in full using the Exabyte.io -platform, a web-based computational ecosystem for the development of new -materials and chemicals [REFERENCE TO THE BELOW CITATION]. +The authors performed this work partially or in full using the Mat3ra.com +platform [REFERENCE TO THE BELOW CITATION]. ``` **Citation** ```text -Timur Bazhirov, "Data-centric online ecosystem for digital materials science", -arxiv.org preprint, 2019, https://arxiv.org/abs/1902.10838 +Timur Bazhirov, "Data-centric online ecosystem for digital materials science.", +arxiv.org preprint, 2019, https://arxiv.org/abs/1902.10838 ``` In Bibtex format: ```bibtex -@article{Exabyte.io-Platform-Reference, +@article{Mat3ra-Platform-Reference, title={Data-centric online ecosystem for digital materials science}, author={Bazhirov, Timur}, journal={arxiv.org/abs/1902.10838}, @@ -79,8 +109,18 @@ In Bibtex format: } ``` -#### Publicity +## 3. Publicity. + +We plan to select some of the work performed under the Free Compute Tier to be highlighted in the online +publication sources, similar to the below: + +- [Enabling new Science through Accessible Cloud HPC](https://www.mat3ra.com/news-and-blog-posts/enabling-new-science-through-accessible-modeling-and-simulations) +- [Scientific Computing on Cloud Infrastructure](https://blogs.oracle.com/cloud-infrastructure/post/exabyteio-for-scientific-computing-on-oracle-cloud-infrastructure-hpc) + +We will contact select users in advance to request permission for this. If you are interested in having your work +highlighted, please let us know by sending an email to `support@mat3ra.com`. + +## 4. Feedback. -We plan to select some of the work performed under the Limited Free Access program to be highlighted in the online -publication sources together with the cloud provider(s) enabling the computational infrastructure. -We will contact the users in advance to request permission for this. +We welcome feedback from the users of the Community Programs listed here. Please send your feedback, suggestions, and +any issues you encounter to `support@mat3ra.com`. From 17c6652c1e924af1da49f478cef1fab8b3053282 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 7 Oct 2025 19:04:15 -0700 Subject: [PATCH 013/147] chore: add migration page --- lang/en/docs/migrating-to-new-platform.md | 2 ++ mkdocs.yml | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 lang/en/docs/migrating-to-new-platform.md diff --git a/lang/en/docs/migrating-to-new-platform.md b/lang/en/docs/migrating-to-new-platform.md new file mode 100644 index 000000000..ba4367a91 --- /dev/null +++ b/lang/en/docs/migrating-to-new-platform.md @@ -0,0 +1,2 @@ +# Migrating to the New Platform +TBA diff --git a/mkdocs.yml b/mkdocs.yml index f2a4aea8a..0c6927bf5 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -30,7 +30,7 @@ extra_javascript: copyright: Exabyte Inc. All rights reserved. | Back to platform extra: - version: "2025.5.29" + version: "2025.9.25" preload_javascript: - /extra/js/preload_hotjar.js - /extra/js/preload.js @@ -121,6 +121,7 @@ plugins: nav: - Home: index.md + - Migrating to New Platform, Q4.2025: migrating-to-new-platform.md # INTRODUCTION - Getting Started: From a988255e2255647b6f97e72859ca22c3a867df42 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 7 Oct 2025 19:15:23 -0700 Subject: [PATCH 014/147] chore: add migration directives --- lang/en/docs/migrating-to-new-platform.md | 84 ++++++++++++++++++++++- 1 file changed, 82 insertions(+), 2 deletions(-) diff --git a/lang/en/docs/migrating-to-new-platform.md b/lang/en/docs/migrating-to-new-platform.md index ba4367a91..92bb0b1c9 100644 --- a/lang/en/docs/migrating-to-new-platform.md +++ b/lang/en/docs/migrating-to-new-platform.md @@ -1,2 +1,82 @@ -# Migrating to the New Platform -TBA +# Migrating to the New Mat3ra Platform (Q4 2025) + +> Last updated Oct 7, 2025. + +We are excited to announce the immediate availability of the new iteration of the Mat3ra platform. This is a significant upgrade over previous monthly releases and introduces new infrastructure, compute options, and improvements to the overall user experience. + +!!! note "Important": For a smooth transition, both the old and the new platform versions will remain operational through the end of 2025. See the timeline below. + +--- + +## What’s New + +- **Free compute tier (cluster-101)** + - A new always-available free tier via `cluster-101`. + - Read more: [Free Tier and Community Access](other/community-programs.md) and [Cluster-101](infrastructure/clusters/cluster-101.md). + +- **New cloud infrastructure setup** + - Google Cloud Platform via `cluster-001` — see [GCP clusters](infrastructure/clusters/google.md) + - Amazon Web Services via `cluster-002` — see [AWS clusters](infrastructure/clusters/aws.md) + - Microsoft Azure via `cluster-003` — see [Azure clusters](infrastructure/clusters/azure.md) + - Updated set of instance types across providers, including larger CPU and GPU options + +- **Operating system upgrade** + - Base OS updated to RHEL 9 across the new platform infrastructure + +- **Apptainer-based application deployment** + - Modernized packaging and runtime isolation for scientific applications + - See: [Jobs via Command Line](jobs-cli/overview.md) for updated CLI usage and examples + - We welcome contributions for additional applications your workflows require + +--- + +## Where to Access + +- New platform (now available): `https://platform-new.mat3ra.com` +- Current/old platform: `https://platform.mat3ra.com` +- New documentation: `https://docs-new.mat3ra.com` +- New login node: `https://login-new.mat3ra.com` + +You can sign in to the new platform with the same credentials you use for the current platform. + +--- + +## Migration Timeline + +- **Now → Oct 31, 2025** + - Both old and new platforms are live. You can explore and begin migrating at your convenience. + +- **On/after Nov 1, 2025** + - `https://platform.mat3ra.com` will route to the new platform + - The old platform will remain accessible at `https://platform-old.mat3ra.com` + - Equivalent routing changes will apply to related URLs (docs, login) + +- **On/after Jan 1, 2026** + - Only the new platform will remain available + +--- + +## What Gets Migrated Automatically + +- Application data stored in the platform database (entities, metadata, workflows, settings) is migrated automatically. + +## What Does NOT Migrate Automatically + +- Runtime files and bulk data stored on disk do not migrate automatically. Due to updated infrastructure libraries and layout in the new environment, data migration from legacy cluster homes and shares is handled on a case-by-case basis. + +> Tip: Review data locations under [Data on Disk > Directory Structure](data-on-disk/directories.md) and [Infrastructure > Login Node Directories](infrastructure/login/directories.md) to plan your migration. + +--- + +## Recommended Migration Steps + +1. Sign in to the new platform at `https://platform-new.mat3ra.com` and verify access +2. Review your workflows for compatibility; see updated examples under [Jobs via Command Line](jobs-cli/overview.md) +3. Identify runtime data to transfer (e.g., project files, job outputs) from legacy cluster homes +4. Contact us for assistance with bulk data migration and best practices +5. Validate your workflows on the new clusters (e.g., `cluster-001`, `cluster-002`, `cluster-003`, `cluster-101`) + +## Contact and Support + +- For migration help (data movement, cluster selection, workflow updates), contact your Mat3ra representative or reach us via Support Widget in the platform header or `support@mat3ra.com`. +- If you require a specific application or environment, please let us know — we welcome contributions and requests to expand supported software. From 5dad3472cb1798e06ca3c15452f3b0a1ee84afeb Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 7 Oct 2025 19:45:12 -0700 Subject: [PATCH 015/147] chore: add apptainer descrtipion --- .../docs/jobs-cli/batch-scripts/apptainer.md | 57 +++++++++++++++++++ lang/en/docs/jobs-cli/overview.md | 4 ++ lang/en/docs/migrating-to-new-platform.md | 10 ++++ mkdocs.yml | 1 + 4 files changed, 72 insertions(+) create mode 100644 lang/en/docs/jobs-cli/batch-scripts/apptainer.md diff --git a/lang/en/docs/jobs-cli/batch-scripts/apptainer.md b/lang/en/docs/jobs-cli/batch-scripts/apptainer.md new file mode 100644 index 000000000..9cdaafb41 --- /dev/null +++ b/lang/en/docs/jobs-cli/batch-scripts/apptainer.md @@ -0,0 +1,57 @@ +# Apptainer and Environment Modules + +On the new platform, environment modules integrate with Apptainer to provide consistent, containerized runtimes for HPC applications. When you `module load` an application, the module system: + +- Resolves and loads required dependencies (e.g., `gcc`, `mpi`) +- Sets per-application environment variables (e.g., `$EXEC_CMD_VASP`, `$EXEC_CMD_QE`) +- Updates a convenience variable `$EXEC_CMD` to the most recently loaded application's command +- Maintains `$EXEC_CMDS` as a colon-separated list of loaded application exec variables (e.g., `EXEC_CMD_VASP:EXEC_CMD_QE`) + +## Example session + +```bash +>>>> module load espresso/6.3-gcc-openmpi-openblas +The module gcc/11.2.0 is loaded +The module mpi/ompi-4.1.1 is loaded +The module espresso/6.3-gcc-openmpi-openblas is loaded + +Loading espresso/6.3-gcc-openmpi-openblas + Loading requirement: gcc/11.2.0 mpi/ompi-4.1.1 + +>>>> echo $EXEC_CMD +apptainer exec --bind /export,/scratch,/dropbox,/cluster-001-share \ + /export/compute/software/applications/espresso/6.3-gcc-openmpi-openblas/image.sif + +>>>> echo $EXEC_CMDS +EXEC_CMD_QE + +>>>> echo $EXEC_CMD_QE +apptainer exec --bind /export,/scratch,/dropbox,/cluster-001-share \ + /export/compute/software/applications/espresso/6.3-gcc-openmpi-openblas/image.sif + +>>>> module load vasp/5.4.4-gcc-openmpi-openblas-fftw-scalapack +The module vasp/5.4.4-gcc-openmpi-openblas-fftw-scalapack is loaded + +>>>> echo $EXEC_CMDS +EXEC_CMD_VASP:EXEC_CMD_QE + +>>>> echo $EXEC_CMD +apptainer exec --bind /export,/scratch,/dropbox,/cluster-001-share \ + /export/compute/software/applications/vasp/5.4.4-gcc-openmpi-openblas-fftw-scalapack/image.sif + +>>>> echo $EXEC_CMD_VASP +apptainer exec --bind /export,/scratch,/dropbox,/cluster-001-share \ + /export/compute/software/applications/vasp/5.4.4-gcc-openmpi-openblas-fftw-scalapack/image.sif +``` + +Notes: +- The Apptainer command binds common platform directories into the container (e.g., `/export`, `/scratch`, `/dropbox`, and the cluster share such as `/cluster-001-share`). +- `$EXEC_CMD` always points to the last loaded application's container exec command. +- Use per-app variables (e.g., `$EXEC_CMD_VASP`, `$EXEC_CMD_QE`) when you need to be explicit in job scripts. + +## Using in job scripts + +See: +- [Jobs via Command Line](../overview.md) +- [Batch Scripts > General Structure](general-structure.md) +- [Batch Scripts > Sample Scripts](sample-scripts.md) diff --git a/lang/en/docs/jobs-cli/overview.md b/lang/en/docs/jobs-cli/overview.md index 00cd9580f..939817811 100644 --- a/lang/en/docs/jobs-cli/overview.md +++ b/lang/en/docs/jobs-cli/overview.md @@ -14,6 +14,10 @@ We describe the accounting aspects of Job submission via CLI, such as specifying The actions pertaining to Jobs submission and execution under the CLI are reviewed [in this section](actions/overview.md) of the documentation. Other general actions concerning the CLI, such as the loading of modules, the compilation of new applications or the creation of new python environments, are described [separately](../cli/actions/overview.md). +## Apptainer and Environment Modules + +For the new platform, CLI workflows use Apptainer-backed modules that set `$EXEC_CMD` variables for containerized execution. See: [Apptainer and Environment Modules](batch-scripts/apptainer.md) + ## [Tutorials](../tutorials/jobs-cli/overview.md) We provide tutorials guiding the user through the complete procedure for submitting jobs via CLI, and subsequently retrieving the corresponding results under the [Web Interface](../ui/overview.md) of our platform. These tutorials are introduced [here](../tutorials/jobs-cli/overview.md). diff --git a/lang/en/docs/migrating-to-new-platform.md b/lang/en/docs/migrating-to-new-platform.md index 92bb0b1c9..35055aa9e 100644 --- a/lang/en/docs/migrating-to-new-platform.md +++ b/lang/en/docs/migrating-to-new-platform.md @@ -76,6 +76,16 @@ You can sign in to the new platform with the same credentials you use for the cu 4. Contact us for assistance with bulk data migration and best practices 5. Validate your workflows on the new clusters (e.g., `cluster-001`, `cluster-002`, `cluster-003`, `cluster-101`) +## CLI and Environment Modules with Apptainer + +See examples of module loading, `$EXEC_CMD`, and containerized execution in: [Apptainer and Environment Modules](jobs-cli/batch-scripts/apptainer.md) + +### Using in job scripts + +As below: + +``` + ## Contact and Support - For migration help (data movement, cluster selection, workflow updates), contact your Mat3ra representative or reach us via Support Widget in the platform header or `support@mat3ra.com`. diff --git a/mkdocs.yml b/mkdocs.yml index 87f6af217..79bdc1c12 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -628,6 +628,7 @@ nav: - General Structure: jobs-cli/batch-scripts/general-structure.md - Directives: jobs-cli/batch-scripts/directives.md - Working Directory: jobs-cli/batch-scripts/directories.md + - Apptainer & Environment Modules: jobs-cli/batch-scripts/apptainer.md - Sample Scripts: jobs-cli/batch-scripts/sample-scripts.md - Actions: - Overview: jobs-cli/actions/overview.md From ec56a3163f4b990eb8c8c4378909cc67ab3160e7 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 7 Oct 2025 19:51:52 -0700 Subject: [PATCH 016/147] chore: update mpirun commands --- lang/en/docs/jobs-cli/batch-scripts/sample-scripts.md | 6 ++++-- lang/en/docs/tutorials/jobs-cli/job-cli-example.md | 5 +++-- lang/en/docs/tutorials/jobs-cli/qe-gpu.md | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lang/en/docs/jobs-cli/batch-scripts/sample-scripts.md b/lang/en/docs/jobs-cli/batch-scripts/sample-scripts.md index 5db49325c..934990dd7 100644 --- a/lang/en/docs/jobs-cli/batch-scripts/sample-scripts.md +++ b/lang/en/docs/jobs-cli/batch-scripts/sample-scripts.md @@ -23,7 +23,8 @@ This example requests 1 node with 2 processors (cores) for 10 minutes, in the De cd $PBS_O_WORKDIR module load espresso -mpirun -np $PBS_NP pw.x -in pw.input +# $EXEC_CMD is set by the environment module +mpirun -np $PBS_NP $EXEC_CMD pw.x -in pw.input ``` ## On-demand regular (OR) @@ -44,5 +45,6 @@ This example requests 1 node and 16 cores for 10 minutes, on the OR [queue](../. cd $PBS_O_WORKDIR module load vasp -mpirun -np $PBS_NP vasp +# $EXEC_CMD is set by the environment module +mpirun -np $PBS_NP $EXEC_CMD vasp ``` diff --git a/lang/en/docs/tutorials/jobs-cli/job-cli-example.md b/lang/en/docs/tutorials/jobs-cli/job-cli-example.md index dcd658d76..35513d9cc 100644 --- a/lang/en/docs/tutorials/jobs-cli/job-cli-example.md +++ b/lang/en/docs/tutorials/jobs-cli/job-cli-example.md @@ -112,7 +112,8 @@ Secondly, we prepare the [Batch Script](../../jobs-cli/batch-scripts/overview.md module add espresso cd $PBS_O_WORKDIR -mpirun -np $PBS_NP pw.x -in pw.in > pw.out +# $EXEC_CMD is set by the environment module +mpirun -np $PBS_NP $EXEC_CMD pw.x -in pw.in > pw.out ``` Just like before, we are using template variables again instead of the [project](../../jobs/projects.md) name and email. Variables starting with `$PBS` are automatically set by the [resource manager](../../infrastructure/resource/overview.md), and are known as the ["PBS Directives"](../../jobs-cli/batch-scripts/directives.md). @@ -258,7 +259,7 @@ EOF module add espresso cd \$PBS_O_WORKDIR -mpirun -np \$PBS_NP pw.x -in srzro3_${celldm1}.in | tee srzro3_${celldm1}.out +mpirun -np \$PBS_NP $EXEC_CMD pw.x -in srzro3_${celldm1}.in | tee srzro3_${celldm1}.out EOF qsub run_QE_${celldm1}.pbs done diff --git a/lang/en/docs/tutorials/jobs-cli/qe-gpu.md b/lang/en/docs/tutorials/jobs-cli/qe-gpu.md index edede9f5a..cc2705319 100644 --- a/lang/en/docs/tutorials/jobs-cli/qe-gpu.md +++ b/lang/en/docs/tutorials/jobs-cli/qe-gpu.md @@ -41,7 +41,7 @@ with 8 OpenMP threads. ```bash module load espresso/7.4-cuda-12.4-cc-70 export OMP_NUM_THREADS=8 -mpirun -np 1 pw.x -npool 1 -ndiag 1 -in pw.cuo.scf.in > pw.cuo.gpu.scf.out +mpirun -np 1 $EXEC_CMD pw.x -npool 1 -ndiag 1 -in pw.cuo.scf.in > pw.cuo.gpu.scf.out ``` 6. Finally, we can submit our job using: From cfefb5de28fb1f3d2e4147539b572ea02426914f Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Wed, 8 Oct 2025 20:12:32 -0700 Subject: [PATCH 017/147] Update mkdocs.yml --- mkdocs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 79bdc1c12..dd39c79d8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -83,8 +83,8 @@ theme: name: material custom_dir: theme palette: - primary: indigo - accent: indigo + primary: deep purple + accent: deep purple logo: "images/logo/logo-white.png" favicon: "images/logo/favicon.ico" icon: From 83f27f31165550e937eb287c0d4c892ee8de77df Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Wed, 8 Oct 2025 20:25:59 -0700 Subject: [PATCH 018/147] update: colors, icons, cleanups --- images/logo/favicon.ico | Bin 1150 -> 0 bytes images/logo/favicon.svg | 19 +++++ lang/en/docs/migrating-to-new-platform.md | 83 ++++++++++++---------- mkdocs.yml | 4 +- 4 files changed, 68 insertions(+), 38 deletions(-) delete mode 100644 images/logo/favicon.ico create mode 100644 images/logo/favicon.svg diff --git a/images/logo/favicon.ico b/images/logo/favicon.ico deleted file mode 100644 index e8f843742907d922f206ea1cca21f54968810913..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmbu8Pb)-W6o=2CMq@+Dmawo@43c~p8;i+;n%Pk7d(7Fjo;m0Jo%5Ub+a`wN zfJ4}V2~bZh?L614*<-IBy&Lcd?>XnhF(~`htff9ZdhZKbsk6!1Tf=k$e zZWw_xNY`VoX3ZXZ_2`Y(WIHy<$8*hnlQ%^*`|WAup3Gmbb)Yq28q|LCyRW@^l7Eie z`*r}HiJ#`LQQL=GmBomgdx>*ZaKye|mqb7ZIJupK;^$ QO2lSghPj_|U-cs51OFd9KL7v# diff --git a/images/logo/favicon.svg b/images/logo/favicon.svg new file mode 100644 index 000000000..1c189c0a9 --- /dev/null +++ b/images/logo/favicon.svg @@ -0,0 +1,19 @@ + + + + + + + + diff --git a/lang/en/docs/migrating-to-new-platform.md b/lang/en/docs/migrating-to-new-platform.md index 35055aa9e..7fe8da2ba 100644 --- a/lang/en/docs/migrating-to-new-platform.md +++ b/lang/en/docs/migrating-to-new-platform.md @@ -1,32 +1,44 @@ -# Migrating to the New Mat3ra Platform (Q4 2025) +# Migrating to The New Platform (Q4 2025) > Last updated Oct 7, 2025. -We are excited to announce the immediate availability of the new iteration of the Mat3ra platform. This is a significant upgrade over previous monthly releases and introduces new infrastructure, compute options, and improvements to the overall user experience. +We are excited to announce the immediate availability of the new iteration of the Mat3ra platform. This is a significant +upgrade over previous monthly releases and introduces new infrastructure, compute options, and improvements to the +overall user experience. -!!! note "Important": For a smooth transition, both the old and the new platform versions will remain operational through the end of 2025. See the timeline below. +!!! note "Important": For a smooth transition, both the old and the new platform versions will remain operational +through the end of 2025. See the timeline below. --- ## What’s New -- **Free compute tier (cluster-101)** - - A new always-available free tier via `cluster-101`. - - Read more: [Free Tier and Community Access](other/community-programs.md) and [Cluster-101](infrastructure/clusters/cluster-101.md). +### Free compute tier (cluster-101) -- **New cloud infrastructure setup** - - Google Cloud Platform via `cluster-001` — see [GCP clusters](infrastructure/clusters/google.md) - - Amazon Web Services via `cluster-002` — see [AWS clusters](infrastructure/clusters/aws.md) - - Microsoft Azure via `cluster-003` — see [Azure clusters](infrastructure/clusters/azure.md) - - Updated set of instance types across providers, including larger CPU and GPU options +A new always-available free tier via `cluster-101`. Read +more: [Free Tier and Community Access](other/community-programs.md) +and [Cluster-101](infrastructure/clusters/cluster-101.md). -- **Operating system upgrade** - - Base OS updated to RHEL 9 across the new platform infrastructure +### New cloud infrastructure setup -- **Apptainer-based application deployment** - - Modernized packaging and runtime isolation for scientific applications - - See: [Jobs via Command Line](jobs-cli/overview.md) for updated CLI usage and examples - - We welcome contributions for additional applications your workflows require +As below: + +- Google Cloud Platform via `cluster-001` — see [GCP clusters](infrastructure/clusters/google.md) +- Amazon Web Services via `cluster-002` — see [AWS clusters](infrastructure/clusters/aws.md) +- Microsoft Azure via `cluster-003` — see [Azure clusters](infrastructure/clusters/azure.md) +- Updated set of instance types across providers, including larger CPU and GPU options + +### Operating system upgrade + +Base OS updated to RHEL 9 across the new platform infrastructure + +### Apptainer-based application deployment + +As below: + +- Modernized packaging and runtime isolation for scientific applications +- See: [Jobs via Command Line](jobs-cli/batch-scripts/apptainer.md) for updated CLI usage and examples +- We welcome contributions for additional applications your workflows require --- @@ -43,28 +55,30 @@ You can sign in to the new platform with the same credentials you use for the cu ## Migration Timeline -- **Now → Oct 31, 2025** - - Both old and new platforms are live. You can explore and begin migrating at your convenience. +- **Now → Oct 31, 2025**: + - Both old and new platforms are live. You can explore and begin migrating at your convenience. - **On/after Nov 1, 2025** - - `https://platform.mat3ra.com` will route to the new platform - - The old platform will remain accessible at `https://platform-old.mat3ra.com` - - Equivalent routing changes will apply to related URLs (docs, login) + - `https://platform.mat3ra.com` will route to the new platform + - The old platform will remain accessible at `https://platform-old.mat3ra.com` + - Equivalent routing changes will apply to related URLs (docs, login) - **On/after Jan 1, 2026** - - Only the new platform will remain available + - Only the new platform will remain available --- ## What Gets Migrated Automatically -- Application data stored in the platform database (entities, metadata, workflows, settings) is migrated automatically. +Application data stored in the platform database (entities, metadata, workflows, settings) is migrated automatically. ## What Does NOT Migrate Automatically -- Runtime files and bulk data stored on disk do not migrate automatically. Due to updated infrastructure libraries and layout in the new environment, data migration from legacy cluster homes and shares is handled on a case-by-case basis. +Runtime files and bulk data stored on disk do not migrate automatically. Due to updated infrastructure libraries and +layout in the new environment, data migration from legacy cluster homes and shares is handled on a case-by-case basis. -> Tip: Review data locations under [Data on Disk > Directory Structure](data-on-disk/directories.md) and [Infrastructure > Login Node Directories](infrastructure/login/directories.md) to plan your migration. +> Tip: Review data locations under [Data on Disk > Directory Structure](data-on-disk/directories.md) +> and [Infrastructure > Login Node Directories](infrastructure/login/directories.md) to plan your migration. --- @@ -78,15 +92,12 @@ You can sign in to the new platform with the same credentials you use for the cu ## CLI and Environment Modules with Apptainer -See examples of module loading, `$EXEC_CMD`, and containerized execution in: [Apptainer and Environment Modules](jobs-cli/batch-scripts/apptainer.md) - -### Using in job scripts - -As below: - -``` +See examples of module loading, `$EXEC_CMD`, and containerized execution +in: [Apptainer and Environment Modules](jobs-cli/batch-scripts/apptainer.md) -## Contact and Support +## Contact Support -- For migration help (data movement, cluster selection, workflow updates), contact your Mat3ra representative or reach us via Support Widget in the platform header or `support@mat3ra.com`. -- If you require a specific application or environment, please let us know — we welcome contributions and requests to expand supported software. +- For migration help (data movement, cluster selection, workflow updates), contact your Mat3ra representative or reach + us via Support Widget in the platform header or `support@mat3ra.com`. +- If you require a specific application or environment, please let us know — we welcome contributions and requests to + expand supported software. diff --git a/mkdocs.yml b/mkdocs.yml index 79bdc1c12..58385ad21 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -86,7 +86,7 @@ theme: primary: indigo accent: indigo logo: "images/logo/logo-white.png" - favicon: "images/logo/favicon.ico" + favicon: "images/logo/favicon.svg" icon: edit: material/pencil repo: fontawesome/brands/github @@ -121,7 +121,7 @@ plugins: nav: - Home: index.md - - Migrating to New Platform, Q4.2025: migrating-to-new-platform.md + - Migrating to New Platform: migrating-to-new-platform.md # INTRODUCTION - Getting Started: From af91e10003ae76fa3183f3ba634f9421259e6891 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Wed, 8 Oct 2025 21:49:24 -0700 Subject: [PATCH 019/147] update: index.md + migration --- lang/en/docs/index.md | 66 +++++++++++++---------- lang/en/docs/migrating-to-new-platform.md | 2 +- 2 files changed, 40 insertions(+), 28 deletions(-) diff --git a/lang/en/docs/index.md b/lang/en/docs/index.md index a3855224f..4fd665ccc 100644 --- a/lang/en/docs/index.md +++ b/lang/en/docs/index.md @@ -1,42 +1,54 @@ # Mat3ra Documentation -[**Mat3ra**](https://platform.mat3ra.com) is a cloud-native accessible and collaborative platform for materials modeling from the atomic scale. Our platform makes it easier for scientists, engineers, and researchers to **design new materials** and **predict their properties** using *first-principles* approaches and *AI/ML* techniques. - -First-principles approach does not require any knowledge of experimental observations, instead solely takes into account the atomistic description of material (e.g., constituent atoms, crystal structure, lattice constant, etc.) to compute desired properties thanks to [Density Functional Theory](https://en.wikipedia.org/wiki/Density_functional_theory){:target='_blank'} and its numerical implementations. When enough data is present, the AI/ML techniques can be applied to discover trends and accelerate predictions. Our platform also helps users collaborate, share and gather obtained knowledge with others. - -The present documentation explains how the platform works in detail. +Mat3ra is a platform for materials modeling from the atoms up. This documentation explains how to use the platform to +design new materials and predict their properties using physics-based and AI/ML models powered by cloud HPC. +!!!note "Migrating to the New Platform (Q4 2025)" + Existing users: see [Migrating to the New Platform](migrating-to-new-platform.md) for timelines and guidance. ## Quick start -You can skip straight to our tutorial summarizing [first steps](getting-started/run-first-simulation/web-interface.md). There you will learn how to set up and run [density functional theory](models-directory/dft/overview.md) calculation to obtain [electronic band structure](properties-directory/non-scalar/bandstructure.md) of silicon, a semiconducting material widely used in making electronic chips. - +- [Run your first simulation (web)](getting-started/run-first-simulation/web-interface.md) +- [Run your first CLI job](getting-started/run-first-simulation/cli-job.md) +- [Content highlights](getting-started/content-highlights.md) + +## Popular topics + +- **Access the platform**: [Platform access guide](tutorials/platform-access.md) +- **Jobs via CLI**: [Overview](jobs-cli/overview.md) · Batch scripts + ([Overview](jobs-cli/batch-scripts/overview.md), + [General structure](jobs-cli/batch-scripts/general-structure.md), + [Directives](jobs-cli/batch-scripts/directives.md), + [Working directory](jobs-cli/batch-scripts/directories.md), + [Apptainer & Modules](jobs-cli/batch-scripts/apptainer.md), + [Samples](jobs-cli/batch-scripts/sample-scripts.md)) +- **Remote connection**: [SSH](remote-connection/ssh.md) · [Web Terminal](remote-connection/web-terminal.md) · + [Remote Desktop](remote-connection/remote-desktop.md) +- **Data locations and quotas**: [Data on disk: directories](data-on-disk/directories.md) · + [Quotas](data-on-disk/quotas.md) +- **Clusters**: [Overview](infrastructure/clusters/overview.md) · + [Cluster-101 (free tier)](infrastructure/clusters/cluster-101.md) · + [AWS](infrastructure/clusters/aws.md) · [Azure](infrastructure/clusters/azure.md) · + [GCP](infrastructure/clusters/google.md) +- **Materials**: [Overview](materials/overview.md) · [Import from files](materials/import-from-files.md) +- **Models**: [DFT overview](models-directory/dft/overview.md) +- **Properties**: [Overview](properties/overview.md) · [Band structure](properties-directory/non-scalar/bandstructure.md) +- **Workflows**: [Overview](workflows/overview.md) · [Designer](workflow-designer/overview.md) +- **REST API**: [Overview](rest-api/overview.md) ## Searching -If you are looking for a specific topic of interest, please use the search box on top to quickly locate relevant pages. - -The [Links](#links) section below lists resources containing more in-depth explanations about what we are building and why[^1] and example case studies[^2]. - +Use the search box at the top to quickly find specific topics across the documentation. -## Contents - -The navigation bar on the left serves as the table of contents for the whole documentation while the table of contents on the right lists content headers under the current page. You may click on any top-level items on the left sidebar to expand the corresponding section. The [content highlights page](getting-started/content-highlights.md) has a brief overview of various features available in Mat3ra platform and links to them. +## How this site is organized +The left sidebar is the global table of contents. Click any top-level item to expand sections. For a high-level tour of +major features, see [Content highlights](getting-started/content-highlights.md). ## Support -We reply to support requests within 24 hours. Our team can be contacted during working hours Pacific Time through: - -- Email: support@mat3ra.com -- Phone: +1 (510) 473-7770 -- Via web widget: click **Support** button at the bottom of our web application. - -!!! tip "Let us hear your feedback" - In case you find that something is missing or if you still have questions after reading this documentation, please contact us. - - -## Links +We respond to support requests within 24 hours during working hours (Pacific Time). See +[Help & Support](other/support.md) for ways to get assistance. -[^1]: [What is materials discovery cloud, article](https://www.linkedin.com/pulse/how-we-design-world-tomorrow-what-materials-discovery-timur-bazhirov) -[^2]: [Mat3ra: case studies](https://mat3ra.com/case-studies) +!!! tip "Help us improve" +If something is missing or unclear, please open the [Help & Support](other/support.md) page and get in touch. diff --git a/lang/en/docs/migrating-to-new-platform.md b/lang/en/docs/migrating-to-new-platform.md index 7fe8da2ba..41daa23ac 100644 --- a/lang/en/docs/migrating-to-new-platform.md +++ b/lang/en/docs/migrating-to-new-platform.md @@ -6,7 +6,7 @@ We are excited to announce the immediate availability of the new iteration of th upgrade over previous monthly releases and introduces new infrastructure, compute options, and improvements to the overall user experience. -!!! note "Important": For a smooth transition, both the old and the new platform versions will remain operational +!!!note "Important": For a smooth transition, both the old and the new platform versions will remain operational through the end of 2025. See the timeline below. --- From 8ccc0f4fd35cc7ff48056f4695a76a9e8c12a1b7 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Wed, 8 Oct 2025 21:52:35 -0700 Subject: [PATCH 020/147] update: index.md --- lang/en/docs/index.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lang/en/docs/index.md b/lang/en/docs/index.md index 4fd665ccc..7b083c4c9 100644 --- a/lang/en/docs/index.md +++ b/lang/en/docs/index.md @@ -1,5 +1,3 @@ -# Mat3ra Documentation - Mat3ra is a platform for materials modeling from the atoms up. This documentation explains how to use the platform to design new materials and predict their properties using physics-based and AI/ML models powered by cloud HPC. @@ -51,4 +49,4 @@ We respond to support requests within 24 hours during working hours (Pacific Tim [Help & Support](other/support.md) for ways to get assistance. !!! tip "Help us improve" -If something is missing or unclear, please open the [Help & Support](other/support.md) page and get in touch. + If something is missing or unclear, please open the [Help & Support](other/support.md) page and get in touch. From 8c7bbf46e4b6c7198e5f9ecc769aa7d662bda86c Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Wed, 8 Oct 2025 22:08:52 -0700 Subject: [PATCH 021/147] update: build-tests.yml - deploy branch --- .github/workflows/build-tests.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-tests.yml b/.github/workflows/build-tests.yml index 26aca33b1..0daed6b97 100644 --- a/.github/workflows/build-tests.yml +++ b/.github/workflows/build-tests.yml @@ -16,9 +16,10 @@ jobs: os: ["ubuntu-24.04"] python-version: - "3.10" - - "3.11" - - "3.12" - - "3.13" + # No need to run with many Py versions - as long as one is passing, we should be OK + # - "3.11" + # - "3.12" + # - "3.13" steps: - name: Checkout repository and submodules @@ -40,7 +41,7 @@ jobs: needs: - run-py-tests runs-on: ubuntu-24.04 - if: (github.repository != 'Exabyte-io/template-definitions-js-py') && (github.ref_name == 'master') + if: (github.ref_name == 'main') steps: - name: Checkout this repository From ca9f60c03ddf9902a5a511998f90a20d0a5d30e8 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Wed, 8 Oct 2025 22:18:36 -0700 Subject: [PATCH 022/147] fix: typo --- lang/en/docs/infrastructure/clusters/cluster-101.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lang/en/docs/infrastructure/clusters/cluster-101.md b/lang/en/docs/infrastructure/clusters/cluster-101.md index cdc778ed2..5d951354d 100644 --- a/lang/en/docs/infrastructure/clusters/cluster-101.md +++ b/lang/en/docs/infrastructure/clusters/cluster-101.md @@ -6,7 +6,7 @@ This cluster is hosted on [Microsoft Azure][^1] infrastructure and is intended t | Name | Hostname | Location | |:-----------:|:-------------------------------------------------:|:--------:| -| cluster-103 | master-production-20250821-cluster-103.mat3ra.com | East US | +| cluster-101 | master-production-20250821-cluster-101.mat3ra.com | East US | ## Queues From 4b515c8376bc747a4c71214914b55ece696c01e4 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Wed, 8 Oct 2025 22:19:04 -0700 Subject: [PATCH 023/147] fix: formatting --- .../en/docs/infrastructure/clusters/cluster-101.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lang/en/docs/infrastructure/clusters/cluster-101.md b/lang/en/docs/infrastructure/clusters/cluster-101.md index 5d951354d..e6bb855ee 100644 --- a/lang/en/docs/infrastructure/clusters/cluster-101.md +++ b/lang/en/docs/infrastructure/clusters/cluster-101.md @@ -19,13 +19,13 @@ This is intended to provide free compute resources and keep the accounting of re | Name | Category[^2] | Mode[^3] | Charge Policy[^4] | Price Factor | Max Nodes per Job+ | Max Nodes Total | |:----:|:------------:|:--------:|:-----------------:|:------------:|:-----------------------------:|:---------------:| -| D | debug | ordinary | core-seconds | 10E-4 | 1 | 1 | -| OR | regular | saving | core-seconds | 10E-4 | 1 | 0 | -| SR | regular | saving | core-seconds | 10E-4 | 1 | 1 | -| OF | fast | saving | core-hours | 10E-4 | 5 | 0 | -| SF | fast | saving | core-hours | 10E-4 | 5 | 1 | -| GPOF | fast | saving | core-hours | 10E-4 | 5 | 0 | -| GPSF | fast | saving | core-hours | 10E-4 | 5 | 1 | +| D | debug | ordinary | core-seconds | 1.0E-4 | 1 | 1 | +| OR | regular | saving | core-seconds | 1.0E-4 | 1 | 0 | +| SR | regular | saving | core-seconds | 1.0E-4 | 1 | 1 | +| OF | fast | saving | core-hours | 1.0E-4 | 5 | 0 | +| SF | fast | saving | core-hours | 1.0E-4 | 5 | 1 | +| GPOF | fast | saving | core-hours | 1.0E-4 | 5 | 0 | +| GPSF | fast | saving | core-hours | 1.0E-4 | 5 | 1 | + please contact support to inquire about attempting a larger node count per job From 39721bb44587f74522eba36c266ef74d26b43dc4 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Thu, 9 Oct 2025 01:08:34 -0700 Subject: [PATCH 024/147] chore: update sw directory --- lang/en/docs/software-directory/overview.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lang/en/docs/software-directory/overview.md b/lang/en/docs/software-directory/overview.md index 7734c4cce..455465b13 100644 --- a/lang/en/docs/software-directory/overview.md +++ b/lang/en/docs/software-directory/overview.md @@ -21,12 +21,13 @@ The platform currently offers the choice between the following software engines | [VASP](modeling/vasp/overview.md) | 5.3.5-5.4.4 | 1, 3 | | [LAMMPS](modeling/lammps.md) | 11-2016, 12-2018, 1-2022 | 3 | | [NWChem](modeling/nwchem.md) | 6.6, 7.0.2 | 3 | + + ## Machine Learning From d43bfc0ad567f9aca6515227619eb00d7931e6c8 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Thu, 9 Oct 2025 01:08:47 -0700 Subject: [PATCH 025/147] chore: update title --- mkdocs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 3a6995cd5..c5c397a81 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,9 +1,9 @@ # get docs dir from the environment. Defaults to lang/en/docs. docs_dir: !!python/object/apply:os.getenv ["DOCS_DIR", "lang/en/docs"] -site_name: Mat3ra Documentation +site_name: Platform Documentation site_url: https://docs.mat3ra.com -site_description: Documentation for the users of Mat3ra materials modeling platform. +site_description: Mat3ra platform documentation. dev_addr: "localhost:8000" repo_name: 'exabyte-io/documentation' From e28711e7438ab45f75ef917dffad96bfed804fdf Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Thu, 9 Oct 2025 01:56:15 -0700 Subject: [PATCH 026/147] chore: update build-tests.yml --- .github/workflows/build-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-tests.yml b/.github/workflows/build-tests.yml index 0daed6b97..15235f2d6 100644 --- a/.github/workflows/build-tests.yml +++ b/.github/workflows/build-tests.yml @@ -3,10 +3,10 @@ name: Build tests and GitHub release on: push: branches: - - master + - main pull_request: branches: - - master + - main jobs: run-py-tests: From f3531295aa1d7dc36a338bb48fa86ff2e3d05aa7 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Wed, 15 Oct 2025 15:55:50 -0700 Subject: [PATCH 027/147] chore: update edit_uri --- mkdocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mkdocs.yml b/mkdocs.yml index c5c397a81..0db9cab87 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -8,7 +8,7 @@ dev_addr: "localhost:8000" repo_name: 'exabyte-io/documentation' repo_url: 'https://github.com/exabyte-io/documentation' -edit_uri: 'edit/master/lang/en/docs/' +edit_uri: 'edit/main/lang/en/docs/' extra_css: - https://cdnjs.cloudflare.com/ajax/libs/material-design-iconic-font/2.2.0/css/material-design-iconic-font.min.css - extra/css/general.css From afedf5a770dab2b62182f49a9775212e86a4bbe2 Mon Sep 17 00:00:00 2001 From: Pranab Das <31024886+pranabdas@users.noreply.github.com> Date: Sat, 6 Dec 2025 11:12:53 +0800 Subject: [PATCH 028/147] SOF-7764: instruction on how to add application container with apptainer (#334) * SOF-7764: instruction on how to add application container with apptainer * chore: bump deps * add references to apptainer and singularity user doc * chore * chore * add more details * edit * openmpi lib is embedded as runpath * include how to build containers in mat3ra cluster * remove old guide to compile directly on host * remove unused link * chore: bump minor deps * add details about sandbox mode * use latest node lts for netlify build * remove node.js from netlify config * chore * edit * edit wordings * note about cache + minor edits * edits * add a example job script * chore: update add-software.md * put espresso def under collapsible section --------- Co-authored-by: Timur Bazhirov --- .github/workflows/build-tests.yml | 8 +- .github/workflows/s3-deploy.yml | 4 +- lang/en/docs/cli/actions/add-software.md | 271 +++++++++++++++++++++-- mkdocs.yml | 3 +- netlify.toml | 1 - requirements.txt | 35 +-- 6 files changed, 276 insertions(+), 46 deletions(-) diff --git a/.github/workflows/build-tests.yml b/.github/workflows/build-tests.yml index 15235f2d6..6c9cb976a 100644 --- a/.github/workflows/build-tests.yml +++ b/.github/workflows/build-tests.yml @@ -23,14 +23,14 @@ jobs: steps: - name: Checkout repository and submodules - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 lfs: true submodules: true - name: Setup python 3 - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python-version }} @@ -45,12 +45,12 @@ jobs: steps: - name: Checkout this repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: lfs: true - name: Checkout actions repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: repository: Exabyte-io/actions token: ${{ secrets.BOT_GITHUB_TOKEN }} diff --git a/.github/workflows/s3-deploy.yml b/.github/workflows/s3-deploy.yml index 702ed0f12..4832248f5 100644 --- a/.github/workflows/s3-deploy.yml +++ b/.github/workflows/s3-deploy.yml @@ -18,14 +18,14 @@ jobs: AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_SECRET_KEY }} steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 lfs: true submodules: true - name: Set python 3 version - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: "3.10" diff --git a/lang/en/docs/cli/actions/add-software.md b/lang/en/docs/cli/actions/add-software.md index 4492d08e8..0860d23a7 100644 --- a/lang/en/docs/cli/actions/add-software.md +++ b/lang/en/docs/cli/actions/add-software.md @@ -1,34 +1,263 @@ -# Add New Software +# Add New Software -The user can compile new software on the [Command Line Interface](../overview.md) (CLI). This is helpful, for example, after introducing some changes or patches to the source code. In order to compile such new software a special permission is required to access the master nodes of our [computational clusters](../../infrastructure/clusters/overview.md), where the compilation shall be performed. This permission can be requested by following [these instructions](../../ui/support.md). +## Overview +Users can compile their own software via the +[Command Line Interface](../overview.md) (CLI). This is helpful, for example, +after introducing some changes or patches to the source code, or if users need +to run a specific version of an application that is not installed "globally". +Most of the globally installed applications are currently distributed as +Apptainer[^1] (Singularity[^2]) containers, bundled with all required +dependencies. This ensures that each application is isolated and avoids +dependency conflicts. If you plan to run an application that is not installed in +our cluster, we encourage you to package your code and its dependencies as an +Apptainer/Singularity container. If you already have a Docker image, it +can be converted into an Apptainer/Singularity image. -We also explain how to add python packages to the environment [in this page](create-python-env.md). +## Experiment in Sandbox mode -## Example: New Quantum ESPRESSO Version +Apptainer's sandbox mode is helpful for testing and fine-tuning the build steps +interactively. To start it, first initialize a sandbox with `--sandbox` or `-s` +flag: +```bash +apptainer build --sandbox qe_sandbox/ docker://almalinux:9 +``` + +The above command will extract the entire Linux OS tree (`/bin`, `/etc`, `/usr`) +from the AlmaLinux 9 Docker image to a subdirectory named `qe_sandbox`. + +Now, to install packages and save them to the sandbox folder, we can enter into +the container in shell (interactive) mode with write permission (use +`--writable` or `-w` flag). We will also need `--fakeroot` or `-f` flag to +Install software as root inside the container: + +```bash +apptainer shell --writable --fakeroot qe_sandbox/ +``` + +Once inside the Apptainer shell, we can install packages and run commands +interactively, as we would normally do from the terminal, for example: + +```bash +dnf install gcc +``` + +Once you are happy with the sandbox, have tested the build steps, and installed +everything you need, `exit` from the Apptainer shell mode. + + +## Build container + +### Build from a sandbox folder + +We may either package the sandbox directory into a final image: +```bash +apptainer build -f espresso.sif qe_sandbox/ +``` + +After the container is built and saved as an SIF image, we may delete our +sandbox folder. We need to set appropriate permissions to be able to delete: + +```bash +chmod -R u+rwX qe_sandbox +rm -rf qe_sandbox +``` + +### Build from a definition file + +Instead of converting the sandbox folder to an SIF image, we may first create an +Apptainer definition with the finalized build steps. Below is an example +Apptainer/Singularity definition to build a Quantum ESPRESSO container +along with its dependencies. + +??? example "Example Apptainer definition (click to expand)" + ```singularity title="espresso.def" + Bootstrap: docker # (1)! + From: almalinux:9 # (2)! + + %labels # (3)! + Maintainer Mat3ra.com + Version QE-7.5-gcc-openmpi-openblas + + %environment # (4)! + export PATH=/usr/lib64/openmpi/bin:/opt/qe-7.5/bin:$PATH + + %post # (5)! + # enable additional repos + dnf install -y epel-release + dnf config-manager --set-enabled crb + + # install dependencies + dnf install -y autoconf \ + gcc \ + gcc-c++ \ + gcc-gfortran \ + git \ + make \ + fftw-devel \ + openblas \ + openblas-devel \ + openmpi-devel \ + scalapack-openmpi-devel \ + wget + + # download QE and compile + VERSION=7.5 + INSTALL_PREFIX="/opt/qe-$VERSION" + BUILD_DIR=~/tmp + mkdir $BUILD_DIR + + cd $BUILD_DIR + wget https://gitlab.com/QEF/q-e/-/archive/qe-${VERSION}/q-e-qe-${VERSION}.tar.gz + tar -xf q-e-qe-${VERSION}.tar.gz + cd q-e-qe-${VERSION} + + export PATH=/usr/lib64/openmpi/bin:$PATH + export FFLAGS="-O2 -fallow-argument-mismatch" + export FCFLAGS="-O2 -fallow-argument-mismatch" + + ./configure --prefix=${INSTALL_PREFIX} MPIF90=mpif90 CC=mpicc F90=gfortran F77=gfortran \ + --with-scalapack=yes \ + BLAS_LIBS="-lopenblas" LAPACK_LIBS="-lopenblas" \ + LDFLAGS="-Wl,-rpath,/usr/lib64/openmpi/lib -Wl,-rpath,/usr/lib64" + + make all -j$(nproc) + make install + + # cleanup + rm -rf $BUILD_DIR + dnf clean all && rm -rf /var/lib/dnf /var/cache/dnf /var/cache/yum + ``` + + 1. Bootstrap from a Docker image + 2. Select base image + 3. Set Metadata such as version, maintainer details, etc. + 4. Set runtime environment variables + 5. Build routine, under the `post` section -The user might wish to compile a version of the [Quantum ESPRESSO](../../software-directory/modeling/quantum-espresso/overview.md) simulation package different from the ones offered [through environment modules](modules-actions.md#list-available-modules). This new versions might also include modifications to the source code by the user. +### Build Considerations -We refer to the official documentation [^1] for the instructions on how to compile Quantum ESPRESSO via CLI. Sample routines that allow for the compilation are demonstrated below: +#### Running resource-intensive builds in batch mode +Prototyping the build is convenient using sandbox mode, but when the routines +are clear and the `.def` file is ready, we suggest that users submit a +[PBS batch script]( ../../jobs-cli/batch-scripts/overview.md) to perform the +build tasks. This ensures that the resource-intensive build process runs on a +compute node rather than the login node itself. As a side "perk", by doing so, +we assert that the compute environment is equivalent to the build environment. + +```bash title="build-qe.pbs" +#!/bin/bash +#PBS -N Build_QE +#PBS -j oe +#PBS -l nodes=1 +#PBS -l ppn=4 +#PBS -l walltime=00:01:00:00 +#PBS -q OR +#PBS -m abe +#PBS -M info@mat3ra.com + +cd $PBS_O_WORKDIR +apptainer build espresso.sif espresso.def +``` + +#### Porting large libraries from the host + +Large libraries such as the Intel OneAPI suite and NVIDIA HPC SDK, which are +several gigabytes in size, can be mapped from our cluster host instead of +bundling together with the application. However, this is not applicable if one +needs a different version of these libraries than the one provided. + + +## Run jobs using Apptainer + +Once the container is built, we are ready to run applications packaged in it. A +simple PBS job script would look like: + +```bash title="run-qe.pbs" +#!/bin/bash +#PBS -N Run_QE +#PBS -j oe +#PBS -l nodes=1 +#PBS -l ppn=4 +#PBS -l walltime=00:24:00:00 +#PBS -q OR +#PBS -m abe +#PBS -M info@mat3ra.com + +cd $PBS_O_WORKDIR + +apptainer exec --bind /export,/scratch,/dropbox,/cluster-001-share \ + /path/to/espresso.sif pw.x -in pw.in > pw.out +``` + +Above we `--bind` several host paths to the container so that we can use items +such as pseudopotential files stored under those locations. Submit job with: +```bash +qsub run-qe.pbs +``` + +Monitor job status: ```bash -# Create temporary directory -mkdir q-e-compilation && cd q-e-compilation +qstat +``` + +Once the job is completed, all output files will be saved under the directory +from which the job was submitted. Please follow [this documentation page]( +../../jobs-cli/batch-scripts/apptainer.md) to find more about Apptainer +integration. For practical templates, please visit[CLI job examples]( +https://github.com/Exabyte-io/cli-job-examples). + + +## Transfer external images + +You can build containers on your local machine or use pull pre-built ones from +sources such as [NVIDIA GPU Cloud]( +https://catalog.ngc.nvidia.com/orgs/hpc/containers/quantum_espresso). + +If Apptainer is installed locally, build the container using: + +```bash +apptainer build espresso.sif espresso.def +``` + +Once built, you can push the image to a container registry such as the +[GitHub Container Registry]( +https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry). + +```bash +apptainer push espresso.sif oras://ghcr.io///: +``` + +Then, pull the image from the login node:: + +```bash +apptainer pull oras://ghcr.io///: +``` + +!!! tip + - You may use GitHub workflow to build images and push to GHCR. + - When pulling a Docker image, Apptainer will automatically convert and save it as + SIF file. + +Alternatively, you can copy the local image file directly to the cluster +via SCP: + +```bash +scp espresso.sif @login.mat3ra.com:/cluster-001-home// +``` + +## Other Notes -# Download and upack the archive -wget https://github.com/QEF/q-e/archive/qe-6.3MaX.tar.gz -tar -xvzf qe-6.3MaX.tar.gz -cd q-e-qe-6.3MaX/ +### Cleaning Cache -# Load modules -module load mpi/ompi-110 openblas/218-g-540 -./configure -make libfox -make pw -``` +Apptainer can use a significant amount of cache disc space. We can use +`--disable-cache` flag or clean Apptainer cache periodically with: -!!! warning "Compilation routines are given for demonstration only" - The commands below are present to demonstrate the approach only and are limited in applicability. They do not include any consideration of the optimization of parallel performance, for example. +``` +apptainer cache clean --force +``` ## Links -[^1]: [User’s Guide for Quantum ESPRESSO, Document](https://www.quantum-espresso.org/Doc/user_guide.pdf) +[^1]: [Apptainer User Guide](https://apptainer.org/docs/user/latest/) +[^2]: [Singularity User Guide](https://docs.sylabs.io/guides/latest/user-guide/) diff --git a/mkdocs.yml b/mkdocs.yml index 0db9cab87..19f8c9174 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -30,7 +30,7 @@ extra_javascript: copyright: Exabyte Inc. All rights reserved. | Back to platform extra: - version: "2025.9.25" + version: "2025.11.27" preload_javascript: - /extra/js/preload_hotjar.js - /extra/js/preload.js @@ -96,6 +96,7 @@ theme: features: - announce.dismiss - content.action.edit + - content.code.annotate - content.code.copy - content.tooltips - navigation.footer diff --git a/netlify.toml b/netlify.toml index b74e2fd9c..5fffc8006 100644 --- a/netlify.toml +++ b/netlify.toml @@ -4,4 +4,3 @@ [build.environment] PYTHON_VERSION = "3.10" - NODE_VERSION = "20" diff --git a/requirements.txt b/requirements.txt index ad4f730bf..eeb1786aa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,40 +1,40 @@ babel==2.17.0 backports-abc==0.5 -backrefs==5.8 +backrefs==5.9 cachetools==5.5.2 certifi==2025.4.26 chardet==4.0.0 -charset-normalizer==3.4.2 +charset-normalizer==3.4.4 click==8.2.1 colorama==0.4.6 enum34==1.1.10 exabyte-json-include==2020.10.19 ghp-import==2.1.0 gitdb==4.0.12 -GitPython==3.1.44 +GitPython==3.1.45 google-api-core==2.21.0 google-api-python-client==2.149.0 google-auth==2.35.0 -google-auth-httplib2==0.2.0 +google-auth-httplib2==0.2.1 google-cloud-texttospeech==2.18.0 googleapis-common-protos==1.65.0 grpcio==1.66.2 grpcio-status==1.66.2 httplib2==0.22.0 -idna==3.10 +idna==3.11 importlib_metadata==8.5.0 Jinja2==3.1.6 -latexcodec==3.0.0 +latexcodec==3.0.1 livereload==2.6.3 -Markdown==3.8 -MarkupSafe==3.0.2 +Markdown==3.10 +MarkupSafe==3.0.3 mergedeep==1.3.4 mkdocs==1.6.1 mkdocs-bibtex==2.16.2 mkdocs-get-deps==0.2.0 mkdocs-git-revision-date-localized-plugin==1.2.9 mkdocs-macros-plugin==1.2.0 -mkdocs-material==9.6.14 +mkdocs-material==9.6.23 mkdocs-material-extensions==1.3.1 oauth2client==4.1.3 packaging==25.0 @@ -42,28 +42,29 @@ paginate==0.5.7 pathspec==0.12.1 platformdirs==4.3.8 proto-plus==1.24.0 -protobuf==5.28.3 +protobuf==5.29.5 pyasn1==0.6.1 pyasn1_modules==0.4.2 pybtex==0.24.0 -Pygments==2.19.1 -pymdown-extensions==10.15 -pypandoc==1.15 +Pygments==2.19.2 +pymdown-extensions==10.16.1 +pypandoc==1.16.2 pyparsing==3.1.4 python-dateutil==2.9.0.post0 pytz==2024.2 -PyYAML==6.0.2 +PyYAML==6.0.3 pyyaml_env_tag==1.1 regex==2024.9.11 -requests==2.32.3 +requests==2.32.5 rsa==4.9.1 +setuptools==80.9.0 singledispatch==3.4.0.4 six==1.17.0 smmap==5.0.2 termcolor==2.5.0 -tornado==6.5.1 +tornado==6.5.2 uritemplate==4.1.1 -urllib3==2.4.0 +urllib3==2.5.0 validators==0.34.0 watchdog==6.0.0 zipp==3.20.2 From ed93eec25a62adb9a5055a6e0ba11b7018eedc55 Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Wed, 17 Dec 2025 17:00:40 -0800 Subject: [PATCH 029/147] Update content-highlights.md --- lang/en/docs/getting-started/content-highlights.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lang/en/docs/getting-started/content-highlights.md b/lang/en/docs/getting-started/content-highlights.md index 4550fca85..ba67f94e0 100644 --- a/lang/en/docs/getting-started/content-highlights.md +++ b/lang/en/docs/getting-started/content-highlights.md @@ -1,10 +1,10 @@ # Content Highlights -This page helps users quickly grasp the content of documentation. Use the table of contents on the left or the search bar in the header for more. +This page helps users quickly grasp the content of the documentation. Use the table of contents on the left or the search bar in the header for more. ## Login -We support two main login connection methods: through [Web Interface](../ui/overview.md), and [Command Line Interface (CLI)](../cli/overview.md). One must have a valid username and password in order to login via either. Secure shell sessions use [key-based authentication](../remote-connection/ssh.md#generate-ssh-keys). Users logged-in through the web interface can, without additional authentication, also access the CLI via the [Web Terminal](../remote-connection/web-terminal.md), and have a [Remote Desktop Environment](../remote-connection/remote-desktop.md) option available to them. +We support two main login connection methods: through [Web Interface](../ui/overview.md), and [Command Line Interface (CLI)](../cli/overview.md). One must have a valid username and password in order to log in via either. Secure shell sessions use [key-based authentication](../remote-connection/ssh.md#generate-ssh-keys). Users logged in through the web interface can, without additional authentication, also access the CLI via the [Web Terminal](../remote-connection/web-terminal.md), and have a [Remote Desktop Environment](../remote-connection/remote-desktop.md) option available to them. The user can find out more about such connection methods under the [connection options page](../remote-connection/overview.md). The - login page is where the platform can be accessed. @@ -19,11 +19,11 @@ We highlight three ways to input material geometries: > [Combinatorial sets](../materials-designer/header-menu/advanced/combinatorial-set.md), for example, make it possible to rapidly create a large number of material geometries. -> [Toggle "isNonPeriodic"](../materials-designer/header-menu/edit.md), for example, makes it possible to a create a non-periodic structure, i.e. a molecule. +> [Toggle "isNonPeriodic"](../materials-designer/header-menu/edit.md), for example, makes it possible to create a non-periodic structure, i.e., a molecule. ## Running Simulations -We allow users to simulate materials to extract desired [properties](../properties/overview.md). In order to do so, one needs to [construct](../workflow-designer/overview.md) a simulation [workflow](../workflows/overview.md). For many properties we have a set of workflows available in the [workflows bank](../workflows/bank.md) that are available for [copy](../workflows/actions/copy-bank.md) by users. +We allow users to simulate materials to extract desired [properties](../properties/overview.md). In order to do so, one needs to [construct](../workflow-designer/overview.md) a simulation [workflow](../workflows/overview.md). For many properties, we have a set of workflows available in the [workflows bank](../workflows/bank.md) that are available for [copy](../workflows/actions/copy-bank.md) by users. ### Workflows @@ -65,11 +65,11 @@ Advanced users connecting to our CLI may [submit jobs directly through it](../jo --> -## Exabyte Data Convention +## Data Convention We employ a [data convention](../data-structured/overview.md) that supports storing materials, simulations and properties in an organized and easy-to-navigate manner. It is designed with collaborative access to data in mind, and has a flexible permission scheme allowing for complete privacy or wide publicity. -We store all data about simulations and materials. Data originated from web application is automatically organized and searchable within the web interface. Data originated on command line is [accessible from within the web application](../data-in-objectstorage/overview.md), and can also be further imported and organized for future search and potential use in advanced analytics / data mining / machine learning applications. We further explain our approach [here](../data/overview.md). +We store all data about simulations and materials. Data originated from a web application is automatically organized and searchable within the web interface. Data originated on the command line is [accessible from within the web application](../data-in-objectstorage/overview.md), and can also be further imported and organized for future search and potential use in advanced analytics / data mining / machine learning applications. We further explain our approach [here](../data/overview.md). Find out more under the following pages: @@ -80,7 +80,7 @@ Find out more under the following pages: ## Account-related Items -Other considerations related to accounts, their service and data ownership/permissions can be found under the links below: +Other considerations related to accounts, their service, and data ownership/permissions can be found under the links below: - [accounts and their types](../accounts/overview.md) - [service levels and pricing](../pricing/service-levels.md) From 58b91d47152f4d91592686b9ad2c052bdd1c6d34 Mon Sep 17 00:00:00 2001 From: Pranab Das <31024886+pranabdas@users.noreply.github.com> Date: Thu, 18 Dec 2025 09:22:59 +0800 Subject: [PATCH 030/147] SOF-7764: how to build containerized applications with gpu support (#337) * SOF-7764: how to build containerized applications with gpu support * chore: wording * Update add-software.md * chore: formatting --------- Co-authored-by: Timur Bazhirov --- lang/en/docs/cli/actions/add-software.md | 105 ++++++++++++++++++----- 1 file changed, 83 insertions(+), 22 deletions(-) diff --git a/lang/en/docs/cli/actions/add-software.md b/lang/en/docs/cli/actions/add-software.md index 0860d23a7..5594d67c8 100644 --- a/lang/en/docs/cli/actions/add-software.md +++ b/lang/en/docs/cli/actions/add-software.md @@ -2,22 +2,23 @@ ## Overview Users can compile their own software via the -[Command Line Interface](../overview.md) (CLI). This is helpful, for example, -after introducing some changes or patches to the source code, or if users need +[Command Line Interface](../overview.md) (CLI). This is helpful if users need to run a specific version of an application that is not installed "globally". -Most of the globally installed applications are currently distributed as +The globally installed applications are currently distributed as Apptainer[^1] (Singularity[^2]) containers, bundled with all required dependencies. This ensures that each application is isolated and avoids -dependency conflicts. If you plan to run an application that is not installed in -our cluster, we encourage you to package your code and its dependencies as an -Apptainer/Singularity container. If you already have a Docker image, it -can be converted into an Apptainer/Singularity image. +dependency conflicts. -## Experiment in Sandbox mode +When planning to run an application that is not installed in +our cluster, we encourage packaging code and its dependencies as an +Apptainer/Singularity container. Existing Docker images +can be converted into an Apptainer/Singularity images. +## Using Sandbox mode Apptainer's sandbox mode is helpful for testing and fine-tuning the build steps interactively. To start it, first initialize a sandbox with `--sandbox` or `-s` flag: + ```bash apptainer build --sandbox qe_sandbox/ docker://almalinux:9 ``` @@ -28,7 +29,7 @@ from the AlmaLinux 9 Docker image to a subdirectory named `qe_sandbox`. Now, to install packages and save them to the sandbox folder, we can enter into the container in shell (interactive) mode with write permission (use `--writable` or `-w` flag). We will also need `--fakeroot` or `-f` flag to -Install software as root inside the container: +install software as root inside the container: ```bash apptainer shell --writable --fakeroot qe_sandbox/ @@ -45,9 +46,9 @@ Once you are happy with the sandbox, have tested the build steps, and installed everything you need, `exit` from the Apptainer shell mode. -## Build container +## Building containers -### Build from a sandbox folder +### Build from a Sandbox folder We may either package the sandbox directory into a final image: ```bash @@ -134,6 +135,11 @@ along with its dependencies. 4. Set runtime environment variables 5. Build routine, under the `post` section +Now we are ready to build the container with: +```bash +apptainer build espresso.sif espresso.def +``` + ### Build Considerations #### Running resource-intensive builds in batch mode @@ -163,10 +169,71 @@ apptainer build espresso.sif espresso.def #### Porting large libraries from the host Large libraries such as the Intel OneAPI suite and NVIDIA HPC SDK, which are -several gigabytes in size, can be mapped from our cluster host instead of +several gigabytes in size, can be mapped from the cluster host instead of bundling together with the application. However, this is not applicable if one needs a different version of these libraries than the one provided. +This can be done by using the `--bind` directives and passing the appropriate +library location from the host, e.g., from +`/cluster-001-share/compute/software/libraries` or +`/export/compute/software/libraries/`. + +See the GPU example below for more details. + +#### Building containers with GPU support + +To run applications with GPU acceleration, first, we need to compile the +GPU code with appropriate GPU libraries used, which is done during the container +build phase. Here, we will describe how we can compile our application code +using NVIDIA HPC SDK (which includes CUDA libraries) and package the compiled +code as a containerized application. + +The process works even on systems without GPU devices or drivers, +thanks to the availability of dummy shared objects (e.g., +`libcuda.so`) in recent versions of the NVHPC SDK and CUDA Toolkit. These dummy +libraries allow the linker to complete compilation without requiring an actual +GPU. + +NVIDIA HPC SDK (or CUDA Toolkit) is a large package, +typically several gigabytes in size. Unless a specific version of CUDA is +required, it’s more efficient to map the NVHPC installation available on +the host cluster. Currently, NVHPC 25.3 with CUDA 12.8 is installed in the +Mat3ra clusters. This version matches the NVIDIA driver version on the cluster's +compute nodes. + +We build our GPU containers in two stages: + +1. **Base Image and Compilation Stage**: Install NVHPC and all other +dependencies, and compile the application code. +2. **Slim Production Image**: Create a final production container by copying +only the compiled application and smaller dependencies (if any) into a new base +image, omitting the NVHPC SDK. + +To run such a container, we must `--bind` the NVHPC paths from the host and set +appropriate `PATH` and `LD_LIBRARY_PATH` for apptainer. Specialized software +libraries are installed under `/export/compute/software` in Mat3ra clusters. +Also, to map the NVIDIA GPU drivers from the compute node, we must use the +`--nv` flag. Now, to set `PATH` inside apptainer, we can set +`APPTAINERENV_PREPEND_PATH` (or `APPTAINERENV_APPEND_PATH`) on the host. +However, for other ENV variables, such special Apptainer variables are not +present, so we can use the `APPTAINERENV_` prefix for them. So a typical job +script would look like: + +```bash +export APPTAINERENV_PREPEND_PATH="/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/comm_libs/12.8/hpcx/hpcx-2.22.1/hcoll/bin:/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/comm_libs/12.8/hpcx/hpcx-2.22.1/ompi/bin:/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/comm_libs/12.8/hpcx/hpcx-2.22.1/ucx/mt/bin:/export/compute/software/compilers/gcc/11.2.0/bin" + +export APPTAINERENV_LD_LIBRARY_PATH="/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/comm_libs/12.8/hpcx/hpcx-2.22.1/hcoll/lib:/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/comm_libs/12.8/hpcx/hpcx-2.22.1/ompi/lib:/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/comm_libs/12.8/hpcx/hpcx-2.22.1/nccl_rdma_sharp_plugin/lib:/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/comm_libs/12.8/hpcx/hpcx-2.22.1/sharp/lib:/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/comm_libs/12.8/hpcx/hpcx-2.22.1/ucx/mt/lib:/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/comm_libs/12.8/hpcx/hpcx-2.22.1/ucx/mt/lib/ucx:/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/comm_libs/12.8/nccl/lib:/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/compilers/lib:/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/cuda/12.8/lib64:/export/compute/software/libraries/nvhpc-25.3-cuda-12.8/Linux_x86_64/25.3/math_libs/12.8/lib64:/export/compute/software/compilers/gcc/11.2.0/lib64:\${LD_LIBRARY_PATH}" + +apptainer exec --nv --bind /export,/cluster-001-share pw.x -in pw.in > pw.out +``` + +To understand the details about library paths, one may inspect modulefiles (e.g., +`/cluster-001-share/compute/modulefiles/applications/espresso/7.4.1-cuda-12.8 `) +available in our clusters and [job scripts]( +https://github.com/Exabyte-io/cli-job-examples/blob/main/espresso/gpu/job.gpu.pbs) +to see how it is implemented. Do not forget to use a GPU-enabled queue, +such as [GOF](../../infrastructure/clusters/google.md) to submit your GPU jobs. + ## Run jobs using Apptainer @@ -214,14 +281,8 @@ You can build containers on your local machine or use pull pre-built ones from sources such as [NVIDIA GPU Cloud]( https://catalog.ngc.nvidia.com/orgs/hpc/containers/quantum_espresso). -If Apptainer is installed locally, build the container using: - -```bash -apptainer build espresso.sif espresso.def -``` - -Once built, you can push the image to a container registry such as the -[GitHub Container Registry]( +If the container is build locally, you can push the image to a container +registry such as the [GitHub Container Registry]( https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry). ```bash @@ -236,8 +297,8 @@ apptainer pull oras://ghcr.io///: Date: Fri, 19 Dec 2025 09:47:55 +0800 Subject: [PATCH 031/147] chore: update the sandbox example --- lang/en/docs/cli/actions/add-software.md | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lang/en/docs/cli/actions/add-software.md b/lang/en/docs/cli/actions/add-software.md index 5594d67c8..2197c0e8d 100644 --- a/lang/en/docs/cli/actions/add-software.md +++ b/lang/en/docs/cli/actions/add-software.md @@ -20,11 +20,11 @@ interactively. To start it, first initialize a sandbox with `--sandbox` or `-s` flag: ```bash -apptainer build --sandbox qe_sandbox/ docker://almalinux:9 +apptainer build --sandbox gcc_sandbox/ docker://almalinux:9 ``` The above command will extract the entire Linux OS tree (`/bin`, `/etc`, `/usr`) -from the AlmaLinux 9 Docker image to a subdirectory named `qe_sandbox`. +from the AlmaLinux 9 Docker image to a subdirectory named `gcc_sandbox`. Now, to install packages and save them to the sandbox folder, we can enter into the container in shell (interactive) mode with write permission (use @@ -32,7 +32,7 @@ the container in shell (interactive) mode with write permission (use install software as root inside the container: ```bash -apptainer shell --writable --fakeroot qe_sandbox/ +apptainer shell --writable --fakeroot gcc_sandbox/ ``` Once inside the Apptainer shell, we can install packages and run commands @@ -52,15 +52,20 @@ everything you need, `exit` from the Apptainer shell mode. We may either package the sandbox directory into a final image: ```bash -apptainer build -f espresso.sif qe_sandbox/ +apptainer build -f gcc.sif gcc_sandbox/ +``` + +We can verify that our container is working with: +```bash +apptainer exec gcc.sif gcc --version ``` After the container is built and saved as an SIF image, we may delete our sandbox folder. We need to set appropriate permissions to be able to delete: ```bash -chmod -R u+rwX qe_sandbox -rm -rf qe_sandbox +chmod -R u+rwX gcc_sandbox +rm -rf gcc_sandbox ``` ### Build from a definition file From 2ac21c985627aa73bd53775f3160bb122a90863a Mon Sep 17 00:00:00 2001 From: Pranab Das <31024886+pranabdas@users.noreply.github.com> Date: Tue, 13 Jan 2026 13:40:54 +0800 Subject: [PATCH 032/147] SOF-7810: improve introduction in the landing page (#340) * SOF-7810: update introduction * SOF-7810: rearrange how to use the doc section --- lang/en/docs/index.md | 51 +++++++++++++++++++++++++++++++------------ mkdocs.yml | 2 +- 2 files changed, 38 insertions(+), 15 deletions(-) diff --git a/lang/en/docs/index.md b/lang/en/docs/index.md index 7b083c4c9..d8162cfa4 100644 --- a/lang/en/docs/index.md +++ b/lang/en/docs/index.md @@ -1,8 +1,38 @@ -Mat3ra is a platform for materials modeling from the atoms up. This documentation explains how to use the platform to -design new materials and predict their properties using physics-based and AI/ML models powered by cloud HPC. +Mat3ra.com offers a comprehensive high-performance computing (HPC) solution in +the cloud with a special focus on materials simulation for both academia and +industry. We offer an intuitive web interface for designing new materials, +managing workflows, running simulations, and organizing results and data in a +more collaborative, accessible, and efficient way. + +Certainly, the command line interface (CLI) will remain a powerful choice among +the advanced HPC users, so not only do we offer SSH connection to our platform, +but we also offer a web terminal feature that can be used from any web browser +on any device without the need for an SSH client or terminal application. + +Finally, we offer API access to our platform that allows integrating our +platform features with other tools and applications, including access from +within the Python Jupyter Notebook, a popular tool among data scientists and +machine learning engineers. + +We are here to be part of your journey to accelerate your R&D on materials +design and discovery in the AI/ML era. This documentation explains how you can +use our platform to design new materials and simulate their properties using +physics-based and AI/ML models powered by cloud HPC. !!!note "Migrating to the New Platform (Q4 2025)" - Existing users: see [Migrating to the New Platform](migrating-to-new-platform.md) for timelines and guidance. + Existing users: see [Migrating to the New Platform]( + migrating-to-new-platform.md) for timelines and guidance. + + +## How to use this documentation + +The left sidebar is the global table of contents. Click any top-level item to +expand sections. For a high-level tour of major features, see +[Content highlights](getting-started/content-highlights.md). + +Please use the search box at the top to quickly find specific topics across the +documentation. + ## Quick start @@ -34,19 +64,12 @@ design new materials and predict their properties using physics-based and AI/ML - **Workflows**: [Overview](workflows/overview.md) · [Designer](workflow-designer/overview.md) - **REST API**: [Overview](rest-api/overview.md) -## Searching - -Use the search box at the top to quickly find specific topics across the documentation. - -## How this site is organized - -The left sidebar is the global table of contents. Click any top-level item to expand sections. For a high-level tour of -major features, see [Content highlights](getting-started/content-highlights.md). ## Support -We respond to support requests within 24 hours during working hours (Pacific Time). See -[Help & Support](other/support.md) for ways to get assistance. +We respond to support requests within 24 hours during working hours (Pacific +Time). See [Help & Support](other/support.md) for ways to get assistance. !!! tip "Help us improve" - If something is missing or unclear, please open the [Help & Support](other/support.md) page and get in touch. + If something is missing or unclear, please open the [Help & Support]( + other/support.md) page and get in touch. diff --git a/mkdocs.yml b/mkdocs.yml index 19f8c9174..e5e70c5fc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -121,7 +121,7 @@ plugins: bibliography_template: "{{author}} ({{year}}). {{title}}. {{journal}}. {{volume}}. {{pages}}." nav: - - Home: index.md + - Home: index.md - Migrating to New Platform: migrating-to-new-platform.md # INTRODUCTION From fcf499b3b19a4b55ee2d475d84031f8e868c93de Mon Sep 17 00:00:00 2001 From: Timur Bazhirov Date: Tue, 13 Jan 2026 19:16:44 -0800 Subject: [PATCH 033/147] chore: update version --- mkdocs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index 19f8c9174..0e9b40b9f 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -30,7 +30,7 @@ extra_javascript: copyright: Exabyte Inc. All rights reserved. | Back to platform extra: - version: "2025.11.27" + version: "2025.12.25" preload_javascript: - /extra/js/preload_hotjar.js - /extra/js/preload.js @@ -48,7 +48,7 @@ extra: property: UA-69270713-5 jupyterlite: origin_url: https://jupyterlite.mat3ra.com/retro/notebooks - # Ucomment to use lab instead of notebook + # Uncomment to use lab instead of notebook # origin_url: https://jupyterlite.mat3ra.com/lab/tree notebooks_path_root: made From c1c50f417ca30439b7aa8e8f015030b891f13120 Mon Sep 17 00:00:00 2001 From: Pranab Das <31024886+pranabdas@users.noreply.github.com> Date: Fri, 16 Jan 2026 15:25:06 +0800 Subject: [PATCH 034/147] update doc on running jobs via web ui (#342) * chore: update version * SOF-7810: update doc on running jobs via web ui * SOF-7810: update gifs and screenshots * SOF-7810: add more screenshots and improve description --------- Co-authored-by: Timur Bazhirov --- .../run-first-simulation-create-job.webp | 3 + .../run-first-simulation-edit-unit.webp | 3 + .../run-first-simulation-import-workflow.gif | 4 +- ...un-first-simulation-submit-view-output.gif | 3 - .../run-first-simulation-tab-1-materials.png | 3 - .../run-first-simulation-tab-1-materials.webp | 3 + .../run-first-simulation-tab-2-workflow.gif | 3 - .../run-first-simulation-tab-2-workflow.webp | 3 + .../run-first-simulation-tab-3-compute.png | 3 - .../run-first-simulation-tab-3-compute.webp | 3 + ...un-first-simulation-view-bandstructure.png | 3 - ...n-first-simulation-view-bandstructure.webp | 3 + .../run-first-simulation-view-results.gif | 3 - .../run-first-simulation/web-interface.md | 223 ++++++++++++++---- lang/en/docs/index.md | 4 +- mkdocs.yml | 4 +- requirements.txt | 2 +- 17 files changed, 204 insertions(+), 69 deletions(-) create mode 100644 images/getting-started/run-first-simulation-create-job.webp create mode 100644 images/getting-started/run-first-simulation-edit-unit.webp mode change 100755 => 100644 images/getting-started/run-first-simulation-import-workflow.gif delete mode 100644 images/getting-started/run-first-simulation-submit-view-output.gif delete mode 100644 images/getting-started/run-first-simulation-tab-1-materials.png create mode 100644 images/getting-started/run-first-simulation-tab-1-materials.webp delete mode 100644 images/getting-started/run-first-simulation-tab-2-workflow.gif create mode 100644 images/getting-started/run-first-simulation-tab-2-workflow.webp delete mode 100644 images/getting-started/run-first-simulation-tab-3-compute.png create mode 100644 images/getting-started/run-first-simulation-tab-3-compute.webp delete mode 100644 images/getting-started/run-first-simulation-view-bandstructure.png create mode 100644 images/getting-started/run-first-simulation-view-bandstructure.webp delete mode 100644 images/getting-started/run-first-simulation-view-results.gif diff --git a/images/getting-started/run-first-simulation-create-job.webp b/images/getting-started/run-first-simulation-create-job.webp new file mode 100644 index 000000000..920134df0 --- /dev/null +++ b/images/getting-started/run-first-simulation-create-job.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e136f7c2d3cd83211c624f552fd0732c728a668ee6b269a8f090e65e2a2a4f84 +size 103876 diff --git a/images/getting-started/run-first-simulation-edit-unit.webp b/images/getting-started/run-first-simulation-edit-unit.webp new file mode 100644 index 000000000..f7d815a1d --- /dev/null +++ b/images/getting-started/run-first-simulation-edit-unit.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dcadeda73b5699f88dcc57ffb86484cf83d84a5a8f82c53eda1cbe221480e71e +size 46782 diff --git a/images/getting-started/run-first-simulation-import-workflow.gif b/images/getting-started/run-first-simulation-import-workflow.gif old mode 100755 new mode 100644 index 4a4910129..ce9e830e5 --- a/images/getting-started/run-first-simulation-import-workflow.gif +++ b/images/getting-started/run-first-simulation-import-workflow.gif @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fa9eabac256bd6459d1822944da1d9ebcc286dfcdb8b46c0c6003e49a8bee4a3 -size 642376 +oid sha256:1e1421681a8ce2b8135b6d7ef94e72fe922e61e8afc7d348d0d5402e398e2bd9 +size 1558454 diff --git a/images/getting-started/run-first-simulation-submit-view-output.gif b/images/getting-started/run-first-simulation-submit-view-output.gif deleted file mode 100644 index 9e3729984..000000000 --- a/images/getting-started/run-first-simulation-submit-view-output.gif +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5a06fc7e0515306d61253accda2a96c3fa88e6eca8a023e56996aca1e2c21ce7 -size 1581803 diff --git a/images/getting-started/run-first-simulation-tab-1-materials.png b/images/getting-started/run-first-simulation-tab-1-materials.png deleted file mode 100644 index 52e9e287f..000000000 --- a/images/getting-started/run-first-simulation-tab-1-materials.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:60bcda17d5e0ddcc02bc5cae6ceca09dca95790f55fabfd0476dcb4aa0759c4e -size 56812 diff --git a/images/getting-started/run-first-simulation-tab-1-materials.webp b/images/getting-started/run-first-simulation-tab-1-materials.webp new file mode 100644 index 000000000..3c7ecde65 --- /dev/null +++ b/images/getting-started/run-first-simulation-tab-1-materials.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:096b4df29d5567df22e0383f5a57ea50267e18f842c6320e50a51e3fca074df8 +size 47634 diff --git a/images/getting-started/run-first-simulation-tab-2-workflow.gif b/images/getting-started/run-first-simulation-tab-2-workflow.gif deleted file mode 100644 index 86dfff5af..000000000 --- a/images/getting-started/run-first-simulation-tab-2-workflow.gif +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3411367e75411fa98c88eb5bc4487f51072748a2ec2f1829f9052e7fd1bd61e7 -size 2456106 diff --git a/images/getting-started/run-first-simulation-tab-2-workflow.webp b/images/getting-started/run-first-simulation-tab-2-workflow.webp new file mode 100644 index 000000000..df87ece99 --- /dev/null +++ b/images/getting-started/run-first-simulation-tab-2-workflow.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13336fe354d133f82c161a3ad050aeabb26f82756e00aa1e63675dd753c4ac1f +size 49070 diff --git a/images/getting-started/run-first-simulation-tab-3-compute.png b/images/getting-started/run-first-simulation-tab-3-compute.png deleted file mode 100644 index f1c7cabeb..000000000 --- a/images/getting-started/run-first-simulation-tab-3-compute.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:23c5a3093b6ac0e8c94b2087a08e0dbf5d1cb2ca4fcbf0403df60a1beef69a5d -size 41430 diff --git a/images/getting-started/run-first-simulation-tab-3-compute.webp b/images/getting-started/run-first-simulation-tab-3-compute.webp new file mode 100644 index 000000000..05a0f8bbb --- /dev/null +++ b/images/getting-started/run-first-simulation-tab-3-compute.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48bca09e03c030ad0eb08075435e8aeb837b90e5fcc4a6545bec26d2f6d3c419 +size 49612 diff --git a/images/getting-started/run-first-simulation-view-bandstructure.png b/images/getting-started/run-first-simulation-view-bandstructure.png deleted file mode 100644 index 64ff7df07..000000000 --- a/images/getting-started/run-first-simulation-view-bandstructure.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:45db7dbe32b756b3156ba6131e04ae44844db5f35bd8461e0239e9eabddea15b -size 105677 diff --git a/images/getting-started/run-first-simulation-view-bandstructure.webp b/images/getting-started/run-first-simulation-view-bandstructure.webp new file mode 100644 index 000000000..0ab29cb13 --- /dev/null +++ b/images/getting-started/run-first-simulation-view-bandstructure.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50da4b90baa9a605de98f554ae581afa4f4b08d57f36a3ec07e39f910859bfb6 +size 68988 diff --git a/images/getting-started/run-first-simulation-view-results.gif b/images/getting-started/run-first-simulation-view-results.gif deleted file mode 100644 index ceaff30b3..000000000 --- a/images/getting-started/run-first-simulation-view-results.gif +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ca2165723897af19ea2f8e81667ad4219c24e1c552b977fd76e1fb00cafee009 -size 1350745 diff --git a/lang/en/docs/getting-started/run-first-simulation/web-interface.md b/lang/en/docs/getting-started/run-first-simulation/web-interface.md index 96ad543ee..193266445 100644 --- a/lang/en/docs/getting-started/run-first-simulation/web-interface.md +++ b/lang/en/docs/getting-started/run-first-simulation/web-interface.md @@ -1,80 +1,213 @@ -# Jobs via Web Interface +# Running Jobs via Web Interface + +This page explains how to run a simple [density functional theory calculation]( +../../models-directory/dft/overview.md) to obtain [electronic band structure]( +../../properties-directory/non-scalar/bandstructure.md) of silicon via our main +[Web Interface](../../ui/overview.md). + +Before going into the detailed step-by-step instructions, first we present a +short video tutorial to get an overview of the process and look-and-feel of +various UI components of Mat3ra web platform. + +
    + +
    + +Running a job in Mat3ra web platform involves three main steps: + +1. Specify the material system by creating or importing crystal structure +2. Create or import workflow, which specifies the simulation steps +3. Create and submit job, where we set material(s), workflow steps and various + compute parameters. + +Each [account](../../accounts/overview.md) is pre-configured with a default +[material](../../materials/overview.md) and [workflow]( +../../workflows/overview.md). Silicon with standard FCC structure is the default +material, and "Total Energy" calculation with Quantum ESPRESSO is the default +workflow added to each account on creation. We also maintain a ["Bank"]( +../../entities-general/bank.md) (collection) of materials and workflows, which +includes both Mat3ra-curated and user contributed material structures and +workflows. + + +## 1. Material structure + +There are several ways, we can add new material structures to our account +collection: + +- Import a material structure from the [Materials Bank]( + ../../entities-general/bank.md) +- Import a material structure from a third-party source such as + [Materials Project](https://materialsproject.org/) using [Import]( + ../../materials/actions/import.md) action +- Upload a material structure from your local computer such as CIF, POSCAR + format files using [Upload](../../materials/actions/upload.md) action +- Create a new material structure from scratch using [Materials Designer]( + ../../materials-designer/overview.md). + +To import a material or workflow from the Bank to user's own account collection, +select the "Bank" option in the [left-hand sidebar](../../ui/left-sidebar.md), +and then select "Materials" or "Workflows" as the user prefers. Then select the +desired material or workflow entry and click "Copy" button in the Actions +column, as explained in more detail [here]( +../../entities-general/actions/copy-bank.md). Readers can find additional +details on how to [import](../../materials/actions/import.md) materials with the +aid of the incorporated Mat3ra Materials Designer tool, as well as further +setting a material as the [default]( +../../entities-general/actions/set-default.md) material for the account. + + +## 2. Workflow steps + +A workflow can be created from scratch or imported from the Workflows Bank. In +the animation below, we demonstrate how to import the "Band Structure + Density +of States" workflow for [Quantum ESPRESSO]( +../../software-directory/modeling/quantum-espresso/overview.md) from the +Workflow Bank to our account collection. -This page explains how to run a simple [density functional theory calculation](../../models-directory/dft/overview.md) to obtain an [electronic band structure](../../properties-directory/non-scalar/bandstructure.md) via our main [Web Interface](../../ui/overview.md). + -Each [account](../../accounts/overview.md) is pre-configured with one default [material](../../materials/overview.md) and [workflow](../../workflows/overview.md). For the sake of this tutorial, we will keep the *default* parameters at each step. We will thus study silicon in the standard face-centered cubic structure and use [Quantum ESPRESSO](../../software-directory/modeling/quantum-espresso/overview.md) as the [simulation engine](../../software-directory/overview.md). +The above task involves following steps: -## Prepare Material and Workflow + 1. Navigate to the [Workflows Bank](../../workflows/bank.md) page by clicking + on the "Bank" option in the [left-hand sidebar](../../ui/left-sidebar.md) + 2. Search with the text "curators" to filter workflows created by the + Mat3ra "Curators" account + 3. Sort workflows by name, and look for the "Band Structure + Density of + States" workflow for Quantum ESPRESSO and click on the "Copy" button to add it + to our account collection. If the copy button is not visible, please click on + the vertical dots in the Actions column to reveal hidden action items. -Users may also add new materials or workflows into their collection from the application-wise ["Bank" collection](../../entities-general/bank.md) that we maintain. To do so, select the "Bank" option in the [left-hand sidebar](../../ui/left-sidebar.md) of the user interface, and then "Materials" or "Workflows" as the user prefers. To import either workflows and material structures from the Bank, select the desired entry and then click "Copy" in the top-right taskbar of the page, as explained in more detail [here](../../entities-general/actions/copy-bank.md). +Now the workflow is added to the account collection, and can be found under the +Workflows tab. Click on the workflow name to open the workflow details page, +where further adjustments can be made to the workflow such as "Important +Settings" or modify the [input files]( +../../workflow-designer/unit-editor/input-templates.md) for individual units. -Silicon FCC is the default material added to each account on creation. In the animation below we demonstrate how to import the "Band Structure" workflow for [Quantum ESPRESSO](../../software-directory/modeling/quantum-espresso/overview.md) from the Bank. +![Edit unit](../../images/getting-started/run-first-simulation-edit-unit.webp "Subworkflow overview in the Workflow Explorer") +![Edit unit](../../images/getting-started/run-first-simulation-edit-unit.webp "Subworkflow overview in the Workflow Explorer") - - -Readers can also learn how to [create](../../materials-designer/overview.md) or [upload](../../materials/actions/upload.md) / [import](../../materials/actions/import.md) materials with the aid of the incorporated Exabyte Materials Designer tool, as well as further setting them as [default](../../entities-general/actions/set-default.md) elsewhere in this documentation. - -## Open Job Designer -Start by clicking "Create Job" link in the [left-hand sidebar](../../ui/left-sidebar.md) to open the ["Job Designer" page](../../jobs-designer/overview.md), where the user can do the following actions via the relevant Tab for each. +## 3. Job Designer + +Once we have a material structure and workflow in hand, we can either use the +"Create Job" button in the [left-hand sidebar](../../ui/left-sidebar.md) or +first navigate to the [Jobs Designer page](../../jobs-designer/overview.md) and +then click on the "Create" job button. + +![Create job button](../../images/getting-started/run-first-simulation-create-job.webp "Create job") + +On the Job creation page, we can: + +- Select a [material](../../jobs-designer/materials-tab.md) or multiple + materials from our account collection +- Click on the "Select Job Actions" dropdown menu, click "Select Workflow" and + select "Band Structure + Density of States" workflow that we imported earlier +- Navigate among "Materials", "Workflow" and "Compute" tabs to review and adjust + various parameters. + +![Materials viewer](../../images/getting-started/run-first-simulation-tab-1-materials.webp "Materials viewer") -- Choose a previously created [material](../../jobs-designer/materials-tab.md) -- Choose and adjust a simulation [Workflow](../../jobs-designer/workflow-tab.md) -- Setup [compute parameters](../../jobs-designer/compute-tab.md) - -## 1. Materials Tab -[Materials Tab](../../jobs-designer/materials-tab.md) lets the user choose one or more previously imported [materials](../../materials/overview.md) for use during the calculation. We will proceed with the default structure of Silicon. +### 3.1. Materials Tab -![Materials viewer](../../images/getting-started/run-first-simulation-tab-1-materials.png "Materials viewer") +[Materials Tab](../../jobs-designer/materials-tab.md) lets the user choose one +or more previously imported [materials](../../materials/overview.md) for use +during the calculation. We will proceed with the default structure of Silicon +for this demonstration. -## 2. Workflow Tab -Simulations usually have multiple steps that need to be executed in a certain order. This step sequence is called a ["Workflow"](../../workflows/overview.md). +### 3.2. Workflow Tab -Open the dropdown menu of the top-level page header (see animation below), click "Select Workflow" and select "Bandstructure" workflow with "espresso" as modeling engine, after [searching](../../entities-general/actions/search.md) for the corresponding keywords in the resulting "Select Workflow" dialog. We divide a workflow into ["Subworkflows"](../../workflows/components/subworkflows.md), such that each individual Subworkflow can only contain one [modeling engine](../../software/overview.md) and one [theoretical model](../../models/overview.md) (eg. [Quantum ESPRESSO](../../software-directory/modeling/quantum-espresso/overview.md), or "espresso", and [density functional theory](../../models-directory/dft/overview.md) respectively). +Simulations usually have multiple steps that need to be executed in a certain +order. This sequence of steps are defined as a ["Workflow"]( +../../workflows/overview.md). -The subworkflow ["Overview" tab](../../workflow-designer/subworkflow-editor/overview-tab.md) contains the basis information about it, including the individual computational building blocks - or ["Units"](../../workflows/components/units.md). Settings that we classify as most important are listed under ["Important Settings"](../../workflow-designer/subworkflow-editor/important-settings.md): [k-point grid](../../models/auxiliary-concepts/reciprocal-space/sampling.md) and [k-point path](../../models/auxiliary-concepts/reciprocal-space/paths.md) within the [reciprocal space](../../models/auxiliary-concepts/reciprocal-space.md) of the crystal are among them for the case of a "Band Structure" calculation considered here. +A workflow consists of one or multiple ["Subworkflows"]( +../../workflows/components/subworkflows.md), as such each Subworkflow can only +contain one [modeling engine](../../software/overview.md) and one +[theoretical model](../../models/overview.md) (eg. [Quantum ESPRESSO]( +../../software-directory/modeling/quantum-espresso/overview.md), or "espresso", +and [density functional theory](../../models-directory/dft/overview.md) +respectively). -One can further modify the input files for each individual part of the subworkflow by clicking on the corresponding unit, and [adjusting its input content](../../workflow-designer/unit-editor/input-templates.md) as the animation below demonstrates. +The subworkflow ["Overview" tab]( +../../workflow-designer/subworkflow-editor/overview-tab.md) contains individual +computational building blocks or ["Units"](../../workflows/components/units.md). +Various simulation parameters can be reviewed and adjusted under the +["Important Settings"]( +../../workflow-designer/subworkflow-editor/important-settings.md), such as: +[k-point grid](../../models/auxiliary-concepts/reciprocal-space/sampling.md) and +[k-point path](../../models/auxiliary-concepts/reciprocal-space/paths.md) +in the [reciprocal space](../../models/auxiliary-concepts/reciprocal-space.md), +relevant for a "Band Structure" calculation. Finally, "Save and Exit" +the job designer. - -## 3. Compute Tab +![Workflow Tab](../../images/getting-started/run-first-simulation-tab-2-workflow.webp "Important Settings in Workflow Tab of Job Designer") -The ["Compute" tab](../../jobs-designer/compute-tab.md) lets the user set up the number of processor cores to be used for the computation, its maximum time limit and other relevant [compute parameters](../../infrastructure/compute/parameters.md). We set the maximum time limit for the calculation to properly schedule the allocation of resources. The format is HH:MM:SS, so that `01:00:00` corresponds to up to 1 hour runtime. -One can also choose to be notified of the job status by clicking on his/her name in the ["Notifications" section](../../infrastructure/compute/parameters.md#notifications). +### 3.3. Compute Tab -For the moment, let us leave all parameters at their default values and click "Save". +The ["Compute" tab](../../jobs-designer/compute-tab.md) lets the user set +various compute parameters, such as the cluster, queue, number of nodes and +processor cores to be used for the computation, maximum time limit and other +relevant [compute parameters](../../infrastructure/compute/parameters.md). We +set the maximum time limit for the calculation to properly schedule the +allocation of resources. The format is HH:MM:SS, so that `01:00:00` corresponds +to up to 1 hour runtime. One can also choose to be notified of the job status by +clicking on his/her name in the ["Notifications" section]( +../../infrastructure/compute/parameters.md#notifications). -![Compute Tab](../../images/getting-started/run-first-simulation-tab-3-compute.png "Compute Tab") +![Compute Tab](../../images/getting-started/run-first-simulation-tab-3-compute.webp "Compute Tab") -!!! Note "Summary" - We have just finished creating our first job. We can now proceed to submit it. -## Run Calculation +## 4. Run Calculation -After saving the job, the user is redirected back to the default ["Project" page](../../jobs/ui/project-page.md). Here, the user can [submit the job](../../jobs/actions/run.md) and track its [status](../../jobs/status.md). +After saving the job, the user is redirected back to the default +["Project" page](../../jobs/ui/project-page.md). Here, the user can +[submit the job](../../jobs/actions/run.md) and track its [status]( +../../jobs/status.md). -### Submit and Track Progress +### 4.1. Submit and Track Progress -The user can run the job by clicking the three vertical dots to the right of its status label ("pre-submission"), and choosing "Run", as explained in more detail [here](../../jobs/actions/run.md). +The user can run the job by clicking on the "Run" button in the Actions column, +or clicking on the three vertical dots and choosing ["Run"]( +../../jobs/actions/run.md) action. -The [status](../../jobs/status.md) will change from "pre-submission" to "submitted". This means that the job is finally submitted to our [computing clusters](../../infrastructure/clusters/overview.md). Depending on the load, it may take some time for it to become "Active" and thus start executing. +The [status](../../jobs/status.md) will change from "pre-submission" to +"submitted". This means that the job is finally submitted to our +[computing clusters](../../infrastructure/clusters/overview.md). Depending on +the load, it may take some time for it to become "Active" and thus start +executing. -The user can click on the job name to monitor the progress of the job in real time within the [Job Viewer Interface](../../jobs/ui/viewer.md). +The user can click on the job name to monitor the progress of the job in real +time within the [Job Viewer Interface](../../jobs/ui/viewer.md). - -### View Results and Access Files +### 4.2. View Results and Access Files -The [Job Viewer screen](../../jobs/ui/viewer.md) tracks the input parameters, output text, and convergence parameters involved in the computation (total energy in this tutorial). It also allows the user to [view the results](../../jobs/ui/results-tab.md) of the calculation, and to [download output files](../../jobs/ui/files-tab.md) when finished. +The [Job Viewer screen](../../jobs/ui/viewer.md) tracks the input parameters, +output text, and convergence parameters involved in the computation (total +energy in this tutorial). Once the job is completed, user can navigate to the +[Results Tab](../../jobs/ui/results-tab.md) to [view summary of results]( +../../jobs/ui/results-tab.md), and preview or download [output files]( +../../jobs/ui/files-tab.md) from the "Files" tab. - -## Done +## 5. Done -We have demonstrated in the present page how a simple electronic band structure calculation can be run using exabyte.io. For a more comprehensive tutorial, readers may refer to the dedicated ["Tutorials" section](../../tutorials/overview.md) of our documentation. +We have demonstrated in the present page how a simple electronic band structure +calculation can be run using Mat3ra web interface. For a more comprehensive +tutorials, readers may refer to the dedicated ["Tutorials" section]( +../../tutorials/overview.md) of our documentation. -![simple electronic band structure calculation](../../images/getting-started/run-first-simulation-view-bandstructure.png "simple electronic band structure calculation") +![simple electronic band structure calculation]( +../../images/getting-started/run-first-simulation-view-bandstructure.webp "simple electronic band structure calculation") diff --git a/lang/en/docs/index.md b/lang/en/docs/index.md index d8162cfa4..81bd3026a 100644 --- a/lang/en/docs/index.md +++ b/lang/en/docs/index.md @@ -36,7 +36,9 @@ documentation. ## Quick start -- [Run your first simulation (web)](getting-started/run-first-simulation/web-interface.md) +New to Mat3ra.com? Start here: + +- [Run your first simulation (web interface)](getting-started/run-first-simulation/web-interface.md) - [Run your first CLI job](getting-started/run-first-simulation/cli-job.md) - [Content highlights](getting-started/content-highlights.md) diff --git a/mkdocs.yml b/mkdocs.yml index e5e70c5fc..7072a59bc 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -30,7 +30,7 @@ extra_javascript: copyright: Exabyte Inc. All rights reserved. | Back to platform extra: - version: "2025.11.27" + version: "2025.12.25" preload_javascript: - /extra/js/preload_hotjar.js - /extra/js/preload.js @@ -48,7 +48,7 @@ extra: property: UA-69270713-5 jupyterlite: origin_url: https://jupyterlite.mat3ra.com/retro/notebooks - # Ucomment to use lab instead of notebook + # Uncomment to use lab instead of notebook # origin_url: https://jupyterlite.mat3ra.com/lab/tree notebooks_path_root: made diff --git a/requirements.txt b/requirements.txt index eeb1786aa..361d84140 100644 --- a/requirements.txt +++ b/requirements.txt @@ -64,7 +64,7 @@ smmap==5.0.2 termcolor==2.5.0 tornado==6.5.2 uritemplate==4.1.1 -urllib3==2.5.0 +urllib3==2.6.3 validators==0.34.0 watchdog==6.0.0 zipp==3.20.2 From d459a0dc0121f8d4585fbb236459c47b4756387f Mon Sep 17 00:00:00 2001 From: Pranab Das <31024886+pranabdas@users.noreply.github.com> Date: Sun, 18 Jan 2026 12:51:50 +0800 Subject: [PATCH 035/147] SOF-7810: update doc pages and screenshots of UI elements (#343) * SOF-7810: update doc pages on UI elements * SOF-7810: update left-sidebar * SOF-7810: update account menu * SOF-7810: update support widget screenshot * SOF-7810: update dashboard screenshot * SOF-7810: update header screenshot * annotate header screenshot * rename right-hand sidebar to account menu * fix a broken link and edits to the jobs via web ui * chore: bump pyasn1 --- images/ui/account-menu.webp | 3 + images/ui/account-snapshot.png | 3 - images/ui/support-widget.png | 3 - images/ui/support-widget.webp | 3 + images/ui/ui-header.png | 3 - images/ui/ui-header.webp | 3 + images/ui/ui-left-sidebar.png | 3 - images/ui/ui-left-sidebar.webp | 3 + images/ui/ui-overview.png | 3 - images/ui/ui-overview.webp | 3 + images/ui/ui-right-sidebar.png | 3 - images/ui/ui-specific.png | 3 - images/ui/ui-specific.webp | 3 + images/ui/user-dashboard.png | 3 - images/ui/user-dashboard.webp | 3 + .../accounting/check-balance-quota.md | 9 ++- .../accounts/accounting/increase-balance.md | 8 +-- .../accounts/accounting/increase-quota.md | 8 +-- lang/en/docs/accounts/balance.md | 6 +- lang/en/docs/accounts/payments-charges.md | 14 ++-- lang/en/docs/accounts/quota.md | 6 +- lang/en/docs/accounts/ui/charges-payments.md | 28 ++++---- lang/en/docs/accounts/ui/overview.md | 8 +-- .../docs/accounts/ui/preferences-overview.md | 4 +- lang/en/docs/accounts/ui/switcher.md | 10 ++- .../actions/organization/create.md | 16 ++--- .../run-first-simulation/cli-job.md | 14 ++-- .../run-first-simulation/web-interface.md | 63 +++++++++-------- lang/en/docs/index.md | 3 + .../remote-connection/actions/open-desktop.md | 4 +- .../actions/open-terminal.md | 2 +- lang/en/docs/ui/account-menu.md | 68 +++++++++++++++++++ lang/en/docs/ui/header-footer.md | 22 ++++-- lang/en/docs/ui/left-sidebar.md | 64 ++++++++++------- lang/en/docs/ui/overview.md | 48 +++++++------ lang/en/docs/ui/right-sidebar.md | 52 -------------- lang/en/docs/ui/specific/dashboard.md | 38 +++++++---- lang/en/docs/ui/specific/homepage.md | 62 ++++++++--------- lang/en/docs/ui/specific/tabs-navigator.md | 10 ++- lang/en/docs/ui/support.md | 27 ++++++-- mkdocs.yml | 2 +- requirements.txt | 2 +- 42 files changed, 364 insertions(+), 279 deletions(-) create mode 100644 images/ui/account-menu.webp delete mode 100644 images/ui/account-snapshot.png delete mode 100644 images/ui/support-widget.png create mode 100644 images/ui/support-widget.webp delete mode 100644 images/ui/ui-header.png create mode 100644 images/ui/ui-header.webp delete mode 100644 images/ui/ui-left-sidebar.png create mode 100644 images/ui/ui-left-sidebar.webp delete mode 100644 images/ui/ui-overview.png create mode 100644 images/ui/ui-overview.webp delete mode 100644 images/ui/ui-right-sidebar.png delete mode 100644 images/ui/ui-specific.png create mode 100644 images/ui/ui-specific.webp delete mode 100644 images/ui/user-dashboard.png create mode 100644 images/ui/user-dashboard.webp create mode 100644 lang/en/docs/ui/account-menu.md delete mode 100644 lang/en/docs/ui/right-sidebar.md diff --git a/images/ui/account-menu.webp b/images/ui/account-menu.webp new file mode 100644 index 000000000..2ad52414c --- /dev/null +++ b/images/ui/account-menu.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e8fa0426af5f4ec1b6935ed7613b523270440e03c16caae79721501e2f340fb +size 33210 diff --git a/images/ui/account-snapshot.png b/images/ui/account-snapshot.png deleted file mode 100644 index d94055a77..000000000 --- a/images/ui/account-snapshot.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:755022eccbffa90d7aa918145d7a96b938f9ca49788f6d94ca979d3ac081c21d -size 116761 diff --git a/images/ui/support-widget.png b/images/ui/support-widget.png deleted file mode 100644 index f2afd62ac..000000000 --- a/images/ui/support-widget.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:b729d8a5ba9534d3c362a91ed681c00d480d2c8580925b055023470c9011c8c6 -size 93807 diff --git a/images/ui/support-widget.webp b/images/ui/support-widget.webp new file mode 100644 index 000000000..6df405b34 --- /dev/null +++ b/images/ui/support-widget.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:84c78e97987a3ac515481fa3b73179a0bf70ca077170d87775e618a4bdc585cc +size 30206 diff --git a/images/ui/ui-header.png b/images/ui/ui-header.png deleted file mode 100644 index 44bdff0e7..000000000 --- a/images/ui/ui-header.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9b2eefecaa3c0c036642ba356ae0cfbd7b5c3aa4217ef05fd47643945723d90d -size 53633 diff --git a/images/ui/ui-header.webp b/images/ui/ui-header.webp new file mode 100644 index 000000000..faae90b3f --- /dev/null +++ b/images/ui/ui-header.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc4d053fd5d8d232a007f98d90b2cdfbc65eae5fa6412e438e65bea8d2c0b2c9 +size 34374 diff --git a/images/ui/ui-left-sidebar.png b/images/ui/ui-left-sidebar.png deleted file mode 100644 index fe7b61ff8..000000000 --- a/images/ui/ui-left-sidebar.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1f0aadb5eac72b3ad6aa9eb9dc25f85134473fa2b73438b756ea6aae7dd92d52 -size 115394 diff --git a/images/ui/ui-left-sidebar.webp b/images/ui/ui-left-sidebar.webp new file mode 100644 index 000000000..a2c96111b --- /dev/null +++ b/images/ui/ui-left-sidebar.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:998047c299b58c4528e354f6346606793d18fb3832021f21b064df7891360f53 +size 49706 diff --git a/images/ui/ui-overview.png b/images/ui/ui-overview.png deleted file mode 100644 index 2bc94f42b..000000000 --- a/images/ui/ui-overview.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0723e0f9302492a9a04e17e6b16186dc798d10a3601311cd6d56c8c905c54ed8 -size 207608 diff --git a/images/ui/ui-overview.webp b/images/ui/ui-overview.webp new file mode 100644 index 000000000..784e50892 --- /dev/null +++ b/images/ui/ui-overview.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fc48bafff90fd3b2f5fd3e9e8bcdbabbad193d02af8db3028e651629187fd08 +size 110830 diff --git a/images/ui/ui-right-sidebar.png b/images/ui/ui-right-sidebar.png deleted file mode 100644 index 0c8e4ed22..000000000 --- a/images/ui/ui-right-sidebar.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c5fe39d88bb3f446f7aea2dc1fdf6c3e1ccd511171c04b47f9c271aa814d4673 -size 169991 diff --git a/images/ui/ui-specific.png b/images/ui/ui-specific.png deleted file mode 100644 index 781f4435c..000000000 --- a/images/ui/ui-specific.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d4f32bb593ebabdbb1ca988d710bf5a31469cab43a703054a26280410e106f22 -size 154757 diff --git a/images/ui/ui-specific.webp b/images/ui/ui-specific.webp new file mode 100644 index 000000000..1700646cf --- /dev/null +++ b/images/ui/ui-specific.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e11ef5ad446bd61488186661ab7e30b90ea0fa816ff4ce447c6929ae158ed03 +size 78208 diff --git a/images/ui/user-dashboard.png b/images/ui/user-dashboard.png deleted file mode 100644 index d97d2ac4c..000000000 --- a/images/ui/user-dashboard.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce954e2225651457f0d420dcd9a9cef247e0a49b7cb1a87d8ba3ea0fbf58c23f -size 149443 diff --git a/images/ui/user-dashboard.webp b/images/ui/user-dashboard.webp new file mode 100644 index 000000000..728c435ea --- /dev/null +++ b/images/ui/user-dashboard.webp @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f9f25448df605616c71a32e6e51c6289baeb315d2dc37ae80fb7bebc0c77988 +size 62006 diff --git a/lang/en/docs/accounts/accounting/check-balance-quota.md b/lang/en/docs/accounts/accounting/check-balance-quota.md index 67d2f01fe..2ab5e0e01 100644 --- a/lang/en/docs/accounts/accounting/check-balance-quota.md +++ b/lang/en/docs/accounts/accounting/check-balance-quota.md @@ -1,12 +1,12 @@ # Account Balance and Storage Quota -This page explains how users can check the current [Account Balance](../balance.md) and [Storage Quota](../quota.md) associated with the account under consideration. +This page explains how users can check the current [Account Balance](../balance.md) and [Storage Quota](../quota.md) associated with the account under consideration. There are two ways through which both pieces of information can be accessed and viewed simultaneously, listed below. The appearance of the interface components exhibiting the balance and quota information in each of these two cases is displayed in the respective images underneath each item. -## In Right-hand sidebar +## In Account Menu -The information about both balance and quota is present in the [Right-hand sidebar](../../ui/right-sidebar.md) as shown in the visual below. +The information about both balance and quota is present in the [Account Menu](../../ui/account-menu.md) as shown in the visual below. ![Account Snapshot](../../images/accounts/account-snapshot.png "Account Snapshot") @@ -27,5 +27,4 @@ Furthermore, the current information about the Storage Quota across all the avai ![Storage Quota](../../images/accounts/storage-quota.png "Storage Quota") -Two buttons are present at the top-right corner of the above interface widget: the first on the left can be used to [increase the Storage Quota](increase-quota.md), and the second on the right to refresh the displayed information. - +Two buttons are present at the top-right corner of the above interface widget: the first on the left can be used to [increase the Storage Quota](increase-quota.md), and the second on the right to refresh the displayed information. diff --git a/lang/en/docs/accounts/accounting/increase-balance.md b/lang/en/docs/accounts/accounting/increase-balance.md index fd2601b80..6f74642e4 100644 --- a/lang/en/docs/accounts/accounting/increase-balance.md +++ b/lang/en/docs/accounts/accounting/increase-balance.md @@ -3,14 +3,14 @@ !!!warning "Warning: content with restricted access" All the information contained under the present documentation page is only relevant for Account Owners or Administrators, since only they have sufficient rights to view the content exposed herein and make the appropriate changes. We remind the reader that a user is always the Owner and full administrator of his own personal Account. -The action of performing a payment in order to add credit to the [Account Balance](../balance.md), using any of the available [Payment Methods](payment-methods.md), can be performed from either the [Service Levels tab](../ui/service-level.md), or from the [right-hand sidebar](../../ui/right-sidebar.md) of the wider User Interface. Under either of these two alternative locations, the account balance can be topped-up with extra credit through their corresponding `Add Credit` (or `Apply Credit`) buttons underneath the current balance indicator, the precise positions of which are encircled in red in the image below: +The action of performing a payment in order to add credit to the [Account Balance](../balance.md), using any of the available [Payment Methods](payment-methods.md), can be performed from either the [Service Levels tab](../ui/service-level.md), or from the [Account Menu](../../ui/account-menu.md) of the wider User Interface. Under either of these two alternative locations, the account balance can be topped-up with extra credit through their corresponding `Add Credit` (or `Apply Credit`) buttons underneath the current balance indicator, the precise positions of which are encircled in red in the image below: ![Increase Balance](../../images/accounts/increase-balance.png "Increase Balance") ## Increase Balance Dialog -Once either of the above-mentioned `Add Credit` or `Apply Credit` buttons have been clicked upon, the user will be greeted with the following "Add credit" screen asking him to select the desired amount of credit to be added to the account balance from a predefined set of options (500, 5,000 or 50,000 dollars). +Once either of the above-mentioned `Add Credit` or `Apply Credit` buttons have been clicked upon, the user will be greeted with the following "Add credit" screen asking him to select the desired amount of credit to be added to the account balance from a predefined set of options (500, 5,000 or 50,000 dollars). ### Custom Amounts @@ -20,9 +20,9 @@ Alternatively, a custom amount of funds can be entered under the `Other` option ## Finalize the "Add Credit" Operation -Once the user has made the desired choice from the above-mentioned list of options under the "Add credit" screen, the bottom `Add Credit` button should be pressed to confirm and finalize the payment operation. The account balance will consequently be updated once the charge is accepted by our payments provider. The account [service level](../../pricing/service-levels.md) will therefore also be updated correspondingly. +Once the user has made the desired choice from the above-mentioned list of options under the "Add credit" screen, the bottom `Add Credit` button should be pressed to confirm and finalize the payment operation. The account balance will consequently be updated once the charge is accepted by our payments provider. The account [service level](../../pricing/service-levels.md) will therefore also be updated correspondingly. -Alternatively, to cancel the operation and revert to the previous screen, the neighbouring `Cancel` button (or the `X` button at the top-right corner of the screen) should be clicked upon. +Alternatively, to cancel the operation and revert to the previous screen, the neighbouring `Cancel` button (or the `X` button at the top-right corner of the screen) should be clicked upon. ## Payments and Service Level diff --git a/lang/en/docs/accounts/accounting/increase-quota.md b/lang/en/docs/accounts/accounting/increase-quota.md index 4d8c39c16..78b934139 100644 --- a/lang/en/docs/accounts/accounting/increase-quota.md +++ b/lang/en/docs/accounts/accounting/increase-quota.md @@ -6,7 +6,7 @@ This page explains how to request an increase to the Account's [Storage Quota](../quota.md) on the available supercomputing clusters, in addition to the storage space already provided under the account's current [service level](../../pricing/service-levels.md). This action can be performed from the following four alternative locations across the platform interface: -- [The Right-hand Sidebar](../../ui/right-sidebar.md) +- [The Account Menu](../../ui/account-menu.md) - [The Service Level Tab](../ui/service-level.md) - [Dashboard](../../ui/specific/dashboard.md) - [The "Bio" tab](../ui/bio.md) @@ -22,11 +22,11 @@ In the latter two cases on the other hand, the same action can be performed thro ## Increase Quota Dialog -Once any of the above-mentioned buttons have been clicked upon, the user will be greeted with the following "Increase Storage Quota" screen asking him to select the desired amount of storage space to be added to the account quota from a predefined set of options (10, 100, 500 GigaBytes, or 1 TeraByte). Next to each entry in this list of options, the associated price that will be charged on a monthly basis to the account balance is indicated. +Once any of the above-mentioned buttons have been clicked upon, the user will be greeted with the following "Increase Storage Quota" screen asking him to select the desired amount of storage space to be added to the account quota from a predefined set of options (10, 100, 500 GigaBytes, or 1 TeraByte). Next to each entry in this list of options, the associated price that will be charged on a monthly basis to the account balance is indicated. ### Custom Amounts -Alternatively, a custom amount of storage space can be entered under the `Other` option of the dialog (in GigaBytes), and the associated monthly price will appear directly underneath. +Alternatively, a custom amount of storage space can be entered under the `Other` option of the dialog (in GigaBytes), and the associated monthly price will appear directly underneath. ![Increase Quota Screen](../../images/accounts/increase-quota-screen.png "Increase Quota Screen") @@ -42,4 +42,4 @@ Alternatively, a custom amount of storage space can be entered under the `Other` Once the user has made the desired choice from the above-mentioned list of options under the "Increase Storage Quota" screen, the bottom `Request Storage` button should be pressed to confirm and finalize the storage increase operation. We will send an email within 24 hours confirming the storage quota upgrade. The user should login again to the corresponding account to [verify the new storage quota](check-balance-quota.md). -Alternatively, to cancel the operation and revert to the previous screen, the neighbouring `Cancel` button (or the `X` button at the top-right corner of the screen) should be clicked upon. +Alternatively, to cancel the operation and revert to the previous screen, the neighbouring `Cancel` button (or the `X` button at the top-right corner of the screen) should be clicked upon. diff --git a/lang/en/docs/accounts/balance.md b/lang/en/docs/accounts/balance.md index 396e71136..caba2c0a2 100644 --- a/lang/en/docs/accounts/balance.md +++ b/lang/en/docs/accounts/balance.md @@ -4,15 +4,15 @@ The Balance associated with an Account indicates the **total combined** amount o ### Reserved Balance -The "Reserved" aspect of the total balance refers to the amount of money which has been **allocated** for a given set of calculations defined by the User. For example, if 100 jobs have to be executed, each costing 1 dollar, then a Reserved Balance of 100 dollars is allocated. +The "Reserved" aspect of the total balance refers to the amount of money which has been **allocated** for a given set of calculations defined by the User. For example, if 100 jobs have to be executed, each costing 1 dollar, then a Reserved Balance of 100 dollars is allocated. ### Available Balance All the **remaining** money that has not been allocated yet as part of any computational task is then referred to as the "Current", or "Available", Balance. - + ## View Balance -Both the Reserved and Available Balances associated with an Account can be inspected by the User through either the [Service Levels](ui/service-level.md) or the [right-hand sidebar](../ui/right-sidebar.md) components. +Both the Reserved and Available Balances associated with an Account can be inspected by the User through either the [Service Levels](ui/service-level.md) or the [Account Menu](../ui/account-menu.md) components. ## Increase Balance diff --git a/lang/en/docs/accounts/payments-charges.md b/lang/en/docs/accounts/payments-charges.md index 7a0d08765..057be9068 100644 --- a/lang/en/docs/accounts/payments-charges.md +++ b/lang/en/docs/accounts/payments-charges.md @@ -8,22 +8,22 @@ An Account is not billed, or "Charged", until the completion of the correspondin ## View Charges and Payments -Inspection of the complete list of all previously-made payments, and of all incurred charges, associated with an Account is rendered possible through the "Billing & Payments" option under the [right-hand sidebar](../ui/right-sidebar.md) interface component, accessible from anywhere across the platform. This particular aspect of the User Interface is reviewed in the following [dedicated page](ui/charges-payments.md). +Inspection of the complete list of all previously-made payments, and of all incurred charges, associated with an Account is rendered possible through the "Billing & Payments" option under the [Account Menu](../ui/account-menu.md) interface component, accessible from anywhere across the platform. This particular aspect of the User Interface is reviewed in the following [dedicated page](ui/charges-payments.md). ## Payment Methods ### Card-based Payments -Payments can be executed through Credit/Debit Cards, by providing the relevant card information as outlined in the following [procedural instructions](accounting/payment-methods.md). +Payments can be executed through Credit/Debit Cards, by providing the relevant card information as outlined in the following [procedural instructions](accounting/payment-methods.md). ### Wire-based Payments For the Enterprise Accounts we naturally establish a different payment protocol: - + 1. After receiving a payment from the customer, we make it available as a "Credit" payment method under the customer account. - - 2. We charge the subscription fee to the payment method - + + 2. We charge the subscription fee to the payment method + 3. Account administrators will then be able to use this payment method to pay for compute allocation or any other resource costs - + For repeated payments the process is repeated correspondingly. diff --git a/lang/en/docs/accounts/quota.md b/lang/en/docs/accounts/quota.md index 4d137ddd2..276557315 100644 --- a/lang/en/docs/accounts/quota.md +++ b/lang/en/docs/accounts/quota.md @@ -4,15 +4,15 @@ The "Quota" associated with an Account indicates the **total combined** amount o ### Consumed Storage Quota -The combined size, in Megabytes (Mb) or Gigabytes (Gb), of all computational data currently stored in the available supercomputing clusters indicated the current level of consumption of the Storage Quota. The total consumption can not exceed the total amount of storage space. If desired, the Owner of the Account may purchase additional space, as explained late in this page. +The combined size, in Megabytes (Mb) or Gigabytes (Gb), of all computational data currently stored in the available supercomputing clusters indicated the current level of consumption of the Storage Quota. The total consumption can not exceed the total amount of storage space. If desired, the Owner of the Account may purchase additional space, as explained late in this page. ### Available Storage Quota -All the available free storage space, that has not been yet occupied by the data generated by the various Account users, constitutes the "Available" storage. It is the responsibility of the Account to ensure that a sufficient amount of available free storage space is present at all times to guarantee the smooth execution of all desired tasks. +All the available free storage space, that has not been yet occupied by the data generated by the various Account users, constitutes the "Available" storage. It is the responsibility of the Account to ensure that a sufficient amount of available free storage space is present at all times to guarantee the smooth execution of all desired tasks. ## View Quota -Both the Consumed and Available storage quotas associated with an Account can be inspected by the user through any of the following user interface components: the [Service Levels](ui/service-level.md) page, the [right-hand sidebar](../ui/right-sidebar.md), the [Bio](ui/bio.md) account interface component, or on the main [Dashboard](../ui/specific/dashboard.md). In the latter three cases, it is possible to visualize such quota information broken down across each individual computing cluster node available to the Account. +Both the Consumed and Available storage quotas associated with an Account can be inspected by the user through any of the following user interface components: the [Service Levels](ui/service-level.md) page, the [Account Menu](../ui/account-menu.md), the [Bio](ui/bio.md) account interface component, or on the main [Dashboard](../ui/specific/dashboard.md). In the latter three cases, it is possible to visualize such quota information broken down across each individual computing cluster node available to the Account. ## Increase Quota diff --git a/lang/en/docs/accounts/ui/charges-payments.md b/lang/en/docs/accounts/ui/charges-payments.md index f6bfbee7a..038deefd2 100644 --- a/lang/en/docs/accounts/ui/charges-payments.md +++ b/lang/en/docs/accounts/ui/charges-payments.md @@ -1,6 +1,6 @@ # Charges, Payments, and Payment Methods -Click `Billing and Payments` in the [right-hand sidebar](../../ui/right-sidebar.md) to review the list of charges incurred by the account, and the payments executed to address them. The possibility to view or add Payment Methods is also offered. +Click `Billing and Payments` in the [Account Menu](../../ui/account-menu.md) to review the list of charges incurred by the account, and the payments executed to address them. The possibility to view or add Payment Methods is also offered. An example of a "Billing" page is exhibited below. We have highlighted in red the tabs for viewing charges, payments, and payments methods. @@ -12,7 +12,7 @@ Under the tab labelled "Charges" t ## Payments -Under the "Payments" tab , the user can review the money paid so far by crediting the [Account Balance](../balance.md). +Under the "Payments" tab , the user can review the money paid so far by crediting the [Account Balance](../balance.md). ## Actions @@ -22,7 +22,7 @@ Both Charges and Payments sheets are presented under the standard [Explorer-type #### Quick Search -A [Search](../../entities-general/actions/search.md) bar is present at the top of both balance sheets. +A [Search](../../entities-general/actions/search.md) bar is present at the top of both balance sheets. #### Advanced Search @@ -30,20 +30,20 @@ An [Advanced Search](../../entities-general/actions/advanced-search.md) -project-year-month-computation". For example "demo-project-2018-10-bandstructures" | -| type | The type of task being charged, for example "Job" | -| wallDuration | Time duration of the computation | -| charge | Charge amount incurred as part of the computational task | -| username | Name of the user that performed the computation | -| description | Short description of what the charge is for, assigned automatically by the accounting system. For example "charge for whole hour", relevant to the [fast queues](../../infrastructure/resource/queues.md) | -| startTime | Date and time at which the Job was submitted, eg. "12-31-2017 22:33:00" | -| endTime | Date and time of Job termination following its completion in a similar format as the startTime above | +| project | [Slug](../../entities-general/data.md#Slug-Representation), or computer-friendly representation of the name of the project containing the Job, in the format "-project-year-month-computation". For example "demo-project-2018-10-bandstructures" | +| type | The type of task being charged, for example "Job" | +| wallDuration | Time duration of the computation | +| charge | Charge amount incurred as part of the computational task | +| username | Name of the user that performed the computation | +| description | Short description of what the charge is for, assigned automatically by the accounting system. For example "charge for whole hour", relevant to the [fast queues](../../infrastructure/resource/queues.md) | +| startTime | Date and time at which the Job was submitted, eg. "12-31-2017 22:33:00" | +| endTime | Date and time of Job termination following its completion in a similar format as the startTime above | ## Payment Methods diff --git a/lang/en/docs/accounts/ui/overview.md b/lang/en/docs/accounts/ui/overview.md index bd1a9c902..1e645f8c7 100644 --- a/lang/en/docs/accounts/ui/overview.md +++ b/lang/en/docs/accounts/ui/overview.md @@ -20,19 +20,19 @@ The image below shows components available under the [left sidebar](../../ui/lef The list of all accounts on our platform can be accessed following [these instructions](explorer.md). -## [Right Sidebar](../../ui/right-sidebar.md) +## [Right Sidebar](../../ui/account-menu.md) -Similarly, more components are present under the [right-hand sidebar](../../ui/right-sidebar.md). They are highlighted and referenced below. +Similarly, more components are present under the [Account Menu](../../ui/account-menu.md). They are highlighted and referenced below. ![Account UI right sidebar](../../images/accounts/right-sidebar-accounts.png "Account UI right sidebar") ### 1. [Badge](account-badge.md) -Some information about the currently employed account is displayed in ["Account Badge"](account-badge.md). The latter also acts as the trigger button for the opening of the right-hand sidebar. +Some information about the currently employed account is displayed in ["Account Badge"](account-badge.md). The latter also acts as the trigger button for the opening of the Account Menu. ### 2. [Link to Switcher](switcher.md) -The user can switch between different accounts that he/she is allowed to use under the ["Switcher"](switcher.md). +The user can switch between different accounts that he/she is allowed to use under the ["Switcher"](switcher.md). ### 3. [Link to Charges and Payments](charges-payments.md) diff --git a/lang/en/docs/accounts/ui/preferences-overview.md b/lang/en/docs/accounts/ui/preferences-overview.md index 7894d1450..6ff4bab2e 100644 --- a/lang/en/docs/accounts/ui/preferences-overview.md +++ b/lang/en/docs/accounts/ui/preferences-overview.md @@ -1,6 +1,6 @@ # Account Preferences -Under the `Preferences` tab of the general "Account Profile" interface, the user can set preferences and settings for the present account that he/she owns or administers. Alternatively, the same Account Preferences can be accessed from the [right-hand sidebar](../../ui/right-sidebar.md) of the general User Interface, under the option labelled "Account Preferences" . +Under the `Preferences` tab of the general "Account Profile" interface, the user can set preferences and settings for the present account that he/she owns or administers. Alternatively, the same Account Preferences can be accessed from the [Account Menu](../../ui/account-menu.md) of the general User Interface, under the option labelled "Account Preferences" . ## [General Information](preferences/profile.md) @@ -8,7 +8,7 @@ This first aspect of the Account Preferences allows the user to insert account-w ## [User Settings](preferences/settings.md) -Under this section, the user is allowed to enter a suffix which will be appended to each job that is cloned via the jobs explorer page, as explained in detail [here](preferences/settings.md). +Under this section, the user is allowed to enter a suffix which will be appended to each job that is cloned via the jobs explorer page, as explained in detail [here](preferences/settings.md). ## [API Tokens](preferences/api.md) diff --git a/lang/en/docs/accounts/ui/switcher.md b/lang/en/docs/accounts/ui/switcher.md index 88635dbce..2c306f451 100644 --- a/lang/en/docs/accounts/ui/switcher.md +++ b/lang/en/docs/accounts/ui/switcher.md @@ -1,16 +1,16 @@ # Account Switcher -The possibility to switch between all Accounts available for login to the user is offered at the top of the [right-hand menu sidebar](../../ui/right-sidebar.md), under the label `My Accounts` . +The possibility to switch between all Accounts available for login to the user is offered at the top of the [right-hand menu sidebar](../../ui/account-menu.md), under the label `My Accounts` . ## Currently Logged-in Account -The name and type of the account that the user is currently logged into is displayed in [header](../../ui/header-footer.md). +The name and type of the account that the user is currently logged into is displayed in [header](../../ui/header-footer.md). ## View My Accounts -If the user is a member of, an [organization](../../collaboration/organizations/overview.md), the "My Accounts" list will contain other accounts, besides his/her personal one. This list is presented using an [Explorer-type interface](../../entities-general/ui/explorer.md), with its associated layout and features. +If the user is a member of, an [organization](../../collaboration/organizations/overview.md), the "My Accounts" list will contain other accounts, besides his/her personal one. This list is presented using an [Explorer-type interface](../../entities-general/ui/explorer.md), with its associated layout and features. -## Switch to Account +## Switch to Account The user is able to switch between the personal account and organizational accounts by clicking on their corresponding names in the list. When switched, the interface will consequently reflect the change by showing the data related specifically to the organizational account, for example storage quota and balance affecting the wider organization as opposed to the user's personal consumption. @@ -19,5 +19,3 @@ The user is able to switch between the personal account and organizational accou In the image below, two accounts are listed in the Account Switcher: a personal account labelled "John Doe", and a wider organizational account called "Exabyte.io". The account under which the user is currently logged in is the personal one. ![Accounts List](../../images/accounts/accounts-list.png "Accounts List") - - diff --git a/lang/en/docs/collaboration/actions/organization/create.md b/lang/en/docs/collaboration/actions/organization/create.md index 8c08fe0ba..99ba6f019 100644 --- a/lang/en/docs/collaboration/actions/organization/create.md +++ b/lang/en/docs/collaboration/actions/organization/create.md @@ -1,6 +1,6 @@ # Create an Organization -New Organizations can be created by first navigating to [My Accounts](../../../accounts/ui/switcher.md) page using the [right-hand sidebar](../../../ui/right-sidebar.md). +New Organizations can be created by first navigating to [My Accounts](../../../accounts/ui/switcher.md) page using the [Account Menu](../../../ui/account-menu.md). ## Open "Create New Organization" Dialog @@ -13,25 +13,25 @@ Next, click on the "Create" button